diff --git a/.editorconfig b/.editorconfig index cfe63dacc02e9660d5950fa56f7b7020002b21a8..d931342dd8cd13a85b8d46a0961566eaa04deafe 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,7 +1,7 @@ # http://editorconfig.org root = true -[*.{json, yaml, yml}] +[*.{json, yaml, yml, md, mdx, js, jsx}] end_of_line = lf indent_size = 2 indent_style = space diff --git a/.gitignore b/.gitignore index ccc3312f137c31086962c00ec64799a357f8e9c5..5ee9554ea9eb8587a8ab2c93109b0ba6425b2f35 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,24 @@ ._* *.iml .idea/ -ui/config.js + +# Dependencies +node_modules/ + +# Production +build/ + +# Generated files +.docusaurus/ +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d4c5add038d303000640157260d600745073ca4c..49c2da3af0cdb5206b32a780b58feb6ab53a6d90 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,23 @@ +.pre-deploy-uber-space-setup: &pre-deploy-uber-space-setup + - apk add rsync openssh-client + - eval $(ssh-agent -s) + - echo "$CI_DEPLOYMENT_PRIVATE_KEY" | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo "$UBERSPACE_KNOWN_HOST" >> ~/.ssh/known_hosts + +.doc-changelist: &doc-changelist + changes: + - docs/* + - versioned_docs/* + - versioned_sidebars/* + - src/* + - static/* + - docusaurus.config.js + - sidebars.js + - versions.json + - .gitlab-ci.yml + stages: - lint - build @@ -12,44 +32,63 @@ lint-job: script: - spectral lint spec/*.yml -build: +build:spec: stage: build image: $CI_REGISTRY/node:current-alpine before_script: - - echo 'http://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories - - apk update - - apk add yq bash - - yq -V - npm install -g @apidevtools/swagger-cli - mkdir dist script: - - ./bundle-docs.sh - - yq e '.info.description.$ref = "../dist/docs.bundled.md"' -i spec/zustelldienst.yml - cp metadata-schema/antragsmetadaten.schema.json dist/ - swagger-cli bundle -t yaml -o dist/zustelldienst.yml spec/zustelldienst.yml - # - yq e '.components.schemas.Antragsmetadaten.$ref = "./antragsmetadaten.schema.json"' -i dist/zustelldienst.yml - # find ./spec -type f -name "*.yml" -exec sh -c 'swagger-cli bundle -t yaml -o dist/$(basename {}) {}' \; artifacts: expose_as: 'Built API spec' paths: - dist/ expire_in: 30 days -upload: +build:doc: + stage: build + image: $CI_REGISTRY/node:current-alpine + variables: + GIT_BRANCH: $CI_COMMIT_REF_NAME + before_script: + - apk add git + - yarn + script: + - export DOCUSAURUS_BASE_URL="/fit-connect/" && [[ "$CI_COMMIT_REF_NAME" != "main" ]] && export DOCUSAURUS_BASE_URL="/preview/fit-connect/$CI_COMMIT_REF_SLUG/" + - yarn build + artifacts: + expose_as: 'Built Documentation' + paths: + - build/ + expire_in: 30 days + rules: + - *doc-changelist + +upload:doc: + stage: upload + image: $CI_REGISTRY/alpine:latest + needs: [ 'build:doc' ] + rules: + - *doc-changelist + before_script: + - *pre-deploy-uber-space-setup + script: + - DEPLOY_PATH="fit-connect" && [[ "$CI_COMMIT_REF_NAME" != "main" ]] && DEPLOY_PATH="preview/fit-connect/$CI_COMMIT_REF_SLUG" + - rsync -rLvz --size-only --checksum -e "ssh -o CheckHostIP=no" --ipv4 --progress ./build/. fitko@dorado.uberspace.de:html/$DEPLOY_PATH + +upload:spec: stage: upload image: $CI_REGISTRY/alpine:latest + needs: [ 'build:spec' ] only: refs: - tags variables: - $CI_COMMIT_TAG before_script: - - apk add rsync openssh-client - - eval $(ssh-agent -s) - - echo "$CI_DEPLOYMENT_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir -p ~/.ssh - - chmod 700 ~/.ssh - - echo "$UBERSPACE_KNOWN_HOST" >> ~/.ssh/known_hosts + - *pre-deploy-uber-space-setup script: - sed "s,API_VERSION,$CI_COMMIT_TAG/zustelldienst.yml,g" ui/config.js.template > ui/config.js - sed -i "s,API_VERSION,$CI_COMMIT_TAG,g" dist/zustelldienst.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 24a9b75a41c1ebe215b1988ab728e03267c45b75..66e128d42db867c1d03393c243c5cfdaa401ffc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,30 +9,30 @@ Das Format dieser Datei basiert auf [Keep a Changelog](https://keepachangelog.co ### Allgemein - Reduktion der Verarbeitung von personenbezogenen Daten -- Daten eines Antrags müssen nun Ende-zu-Ende verschlüsselt übertragen werden +- Daten einer Einreichung müssen nun Ende-zu-Ende verschlüsselt übertragen werden - API-Endpunktstruktur hat sich verändert, um - - die Pfade einfacher und kürzer zu gestalten - - und nur Parameter zu erfassen, die auch benötigt werden + - die Pfade einfacher und kürzer zu gestalten + - und nur Parameter zu erfassen, die auch benötigt werden #### Destinations Der Aufbau & Umfang von Destination-Objekten hat sich geändert: - Das Attribut `publicOrganization` entfällt, weil - - nur Kontaktinformationen für den Fall von technischen Problemen erfasst und hierbei so wenig Informationen wie + - nur Kontaktinformationen für den Fall von technischen Problemen erfasst und hierbei so wenig Informationen wie möglich gespeichert werden sollen. - - Der Name der Organisation ist als Attribut für eine bessere Zuordnung zu `contactInformation` unter `legalName` gewandert. + - Der Name der Organisation ist als Attribut für eine bessere Zuordnung zu `contactInformation` unter `legalName` gewandert. - Das Attribut `technicalContact` wird umbenannt zu `contactInformation` und inhaltlich wie im Beispiel unten geändert - Die Attribute `callback` und `callbackURI` wurden zusammengeführt, - - um die Struktur flacher zu gestalten, - - und weil neben `callbackURI` keine anderen Attribute angeordnet sind. + - um die Struktur flacher zu gestalten, + - und weil neben `callbackURI` keine anderen Attribute angeordnet sind. - Im Attribut `schemas` entfällt das Attribut `encoding`, - - da ab Version 1 jede Kommunikation Ende-zu-Ende verschlüsselt sein muss. + - da ab Version 1 jede Kommunikation Ende-zu-Ende verschlüsselt sein muss. - Das Attribut `publicKey` wurde umbenannt zu `encryptionKid`. Weiterhin wurde ein Feld `keys` eingefügt. - - `encryptionKid`: Die KeyId des Schlüssels der zur Verschlüsselung der an einen Zustellpunkt gesendeten Daten + - `encryptionKid`: Die KeyId des Schlüssels der zur Verschlüsselung der an einen Zustellpunkt gesendeten Daten verwendet wird. Der Schlüssel ist abrufbar im Attribut `keys`. - - `keys`: Hier befinden sich die öffentlichen Schlüssel des Zustellpunktes. - - Der `signingKid` fehlt, da dieser an signierten Nachrichten mit angehängt wird und ebenso im Attribut `keys` + - `keys`: Hier befinden sich die öffentlichen Schlüssel des Zustellpunktes. + - Der `signingKid` fehlt, da dieser an signierten Nachrichten mit angehängt wird und ebenso im Attribut `keys` auffindbar ist. - Ein Schema besteht nun aus einer `schemaURI` und optional einem Feld `mimeType`. - Wurde im Zuge der Vereinfachung so umgesetzt. URLs und URNs können in das Feld `schemaURI` eingetragen werden. @@ -90,18 +90,18 @@ sauber routen kann, liefert er jetzt `{}` anstatt `{ "result": "success" }` zur ### Application Transfer -- Die Grundstruktur eines Antrags wurde angepasst, da der Großteil der Informationen nun verschlüsselt übertragen wird. +- Die Grundstruktur einer Einreichung wurde angepasst, da der Großteil der Informationen nun verschlüsselt übertragen wird. - Einige Endpunkte und HTTP-Methoden wurden angepasst, um den Ablauf kürzer, einfacher, stabiler und sicherer zu gestalten. -- Metadaten eines Antrags: Alle Metadaten eines Antrags werden nun verschlüsselt im Attribut `encryptedMetadata` übertragen. +- Metadaten einer Einreichung: Alle Metadaten einer Einreichung werden nun verschlüsselt im Attribut `encryptedMetadata` übertragen. #### Create Application -- Beim Anlegen eines Antrags muss nun die Id der Destination (Zustellpunktes) mit angegeben werden, da sie nur bei der - Anlage des Antrags notwendig ist und nicht bei den weiteren Aufrufen. +- Beim Anlegen einer Einreichung muss nun die Id der Destination (Zustellpunktes) mit angegeben werden, da sie nur bei der + Anlage der Einreichung notwendig ist und nicht bei den weiteren Aufrufen. - Struktur um eine Application anzulegen ist nun nur noch `{ destinationId: …, announcedContentStructure: … }`, da sich die - Gesamtstruktur geändert hat. In `announcedContentStructure` wird angegeben ob Fachdaten für diesen Antrag hochgeladen - werden als auch eine Liste an UUIDs die für diesen Antrag hochgeladen werden. Die Erstellung der UUIDs ist dem Client + Gesamtstruktur geändert hat. In `announcedContentStructure` wird angegeben ob Fachdaten für diesen Einreichung hochgeladen + werden als auch eine Liste an UUIDs die für diesen Einreichung hochgeladen werden. Die Erstellung der UUIDs ist dem Client überlassen. #### Add Document to Application @@ -113,24 +113,24 @@ sauber routen kann, liefert er jetzt `{}` anstatt `{ "result": "success" }` zur #### Send Application -- Send Application und Application Data hinzuzufügen ist nun in einem Endpunkt kombiniert, da kein Antrag ohne Fachdaten +- Send Application und Application Data hinzuzufügen ist nun in einem Endpunkt kombiniert, da kein Einreichung ohne Fachdaten übertragen werden können soll. -- Der Aufruf des Endpunktes und die Ãœbertragung der verschlüsselten Fachdaten markiert den Antrag dann auch als "final" +- Der Aufruf des Endpunktes und die Ãœbertragung der verschlüsselten Fachdaten markiert den Einreichung dann auch als "final" und löst die Ãœbertragung an den Zustellpunkt aus. - Die Fachdaten sind nun verschlüsselt, wodurch der Content-Type nicht mehr application/json sonder application/jose ist -- Der Response Status ist nicht mehr 200, sondern 202, da die Fachdaten akzeptiert wurden und der Antrag abgeschickt +- Der Response Status ist nicht mehr 200, sondern 202, da die Fachdaten akzeptiert wurden und der Einreichung abgeschickt wird. #### Status Endpunkte - Der `upload-status` entfällt, da alle Informationen verschlüssselt sind und nun nicht bekannt ist, wie viele Dokumente - eines Antrags bereits hochgeladen wurden. -- Die Informationen zum Status eines Antrags und dessen Historie sind nun direkt im Antrag hinterlegt und werden mit zur + einer Einreichung bereits hochgeladen wurden. +- Die Informationen zum Status einer Einreichung und dessen Historie sind nun direkt im Einreichung hinterlegt und werden mit zur Verfügung gestellt, wodurch keine separaten Endpunkte mehr notwendig sind. ### Application Retrieval -Wie oben schon angesprochen hat sich die Struktur eines Antrags verändert, sodass ein Antrag bei der Abholung wie folgt +Wie oben schon angesprochen hat sich die Struktur einer Einreichung verändert, sodass ein Einreichung bei der Abholung wie folgt beispielhaft aufgebaut ist: ```json @@ -154,8 +154,8 @@ beispielhaft aufgebaut ist: } ``` -Die Fachdaten und Metadaten sind verschlüsselt, die Struktur verändert und daher hat sich auch bei der Abholung eines -Antrags der Prozess verändert bzw. reduziert, indem die Endpunkte für die Abholung der Fachdaten und Metadaten nun +Die Fachdaten und Metadaten sind verschlüsselt, die Struktur verändert und daher hat sich auch bei der Abholung einer +Einreichung der Prozess verändert bzw. reduziert, indem die Endpunkte für die Abholung der Fachdaten und Metadaten nun kombiniert sind. #### Dokument abholen @@ -465,8 +465,8 @@ wurden alle Vorkommen von "Source" in "Sender" geändert. `models/common/address-international.json` - Property `lines`: - - Es müssen mindestens zwei Zeilen angegeben werden - - Maximallänge 35 Zeichen + - Es müssen mindestens zwei Zeilen angegeben werden + - Maximallänge 35 Zeichen #### Nationale Adresse @@ -563,11 +563,11 @@ Die Destination wurde in mehrere Modelle zerlegt, um dem Sender einen anderen Um `reference/sender.json` - Vorkommen von "Transfer" in "Application" umbenannt - - Dadurch sind auch Operation-IDs geändert worden (siehe unten) + - Dadurch sind auch Operation-IDs geändert worden (siehe unten) - OAuth2 Scopes ergänzt - Operation "Get Status Entry" (get-application-status-entry) entfernt - Operation "Get Application Upload Status" - - Property `docs/doc-id` ergänzt + - Property `docs/doc-id` ergänzt - Operation "Create Application": ID in create-application geändert - Operation "Send Application" (früher "Commit Application"): ID in commit-application geändert diff --git a/assets/postman/FIT-Connect.postman_collection.json b/assets/postman/FIT-Connect.postman_collection.json deleted file mode 100644 index 9dea421a739bfe041ddc85febe0ab8bc0b65ff23..0000000000000000000000000000000000000000 --- a/assets/postman/FIT-Connect.postman_collection.json +++ /dev/null @@ -1,1792 +0,0 @@ -{ - "info": { - "_postman_id": "aabcbd18-6782-49fb-8a37-5f3feb9857c2", - "name": "FIT-Connect", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "SenderAPI", - "item": [ - { - "name": "Application Transfer", - "item": [ - { - "name": "Create Application", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "8d9e68fe-65d7-49b4-b638-e88d598b726d", - "exec": [ - "" - ], - "type": "text/javascript" - } - }, - { - "listen": "test", - "script": { - "id": "f54c8eae-9e73-4ca1-a02a-a061091db619", - "exec": [ - "pm.test(\"response must be 200 and has a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200);", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - " pm.response.to.have.jsonBody(\"applicationId\");", - "});", - "", - "// extract body", - "var jsonData = JSON.parse(responseBody);", - "// set application-id", - "pm.collectionVariables.set('application_id', jsonData['applicationId']);", - "", - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "value": "application/json", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"additionalReferenceInfo\": {\n \"subject\": \"Anmeldung eines Gewerbes in Musterstadt\",\n \"caseId\": \"DF/8923\"\n },\n \"contentStructure\": {\n \"data\": {\n \"schema\": {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n },\n \"docs\": [\n {\n \"docId\": \"1\",\n \"purpose\": \"form\",\n \"size\": 13046,\n \"mimeType\": \"application/pdf\",\n \"filename\": \"test.pdf\",\n \"description\": \"Das Antragsformular\",\n \"lang\": {\n \"lang\": \"de\",\n \"region\": \"DE\"\n },\n \"hash\": {\n \"algorithm\": \"SHA-256\",\n \"digest\": \"bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9\"\n }\n }\n ]\n },\n \"publicServiceType\": {\n \"name\": \"Gewerbeanmeldung\",\n \"description\": \"Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.\",\n \"leikaId\": \"99050012104000\",\n \"otherIdentifiers\": [\n {\n \"id\": \"8664844\",\n \"schemeId\": \"service.niedersachsen.de\",\n \"schemeName\": \"Serviceportal Niedersachsen\"\n },\n {\n \"id\": \"354824\",\n \"schemeId\": \"buerger.thueringen.de\",\n \"schemeName\": \"Zuständigkeitsfinder Thüringen\"\n }\n ]\n },\n \"applicants\": [\n {\n \t\"type\": \"person\",\n \"authentificationInfo\": {\n \"assuranceLevel\": \"high\",\n \"authentificationMethod\": \"eID\",\n \"timestamp\": \"2020-03-03T12:38:23Z\"\n },\n \"identityInfo\": {\n \"dateOfBirth\": \"1970-09-13\",\n \"gender\": \"m\",\n \"givenName\": \"WERNER\",\n \"familyName\": \"MUSTERMANN\",\n \"placeOfResidence\": {\n \t\"type\": \"national\",\n \"street\": \"KURZER WEG 7\",\n \"postalCode\": \"12345\",\n \"city\": \"ANKH-MORPORK\"\n }\n },\n \"contactInfo\": {\n \"electronicAddresses\": [\n {\n \"channelType\": \"Service-Account-Mailbox\",\n \"address\": \"3b0c9c8c-0801-45f0-a331-2abfc9db78d0\"\n }\n ],\n \"physicalAddress\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ]\n }\n }\n ],\n \"paymentInfo\": {\n \"reference\": \"TP/93/GDP\",\n \"usage\": \"Gewerbeanmeldung\",\n \"amount\": 17.3,\n \"timestamp\": \"2020-03-03T12:38:23Z\",\n \"status\": \"success\",\n \"transaction\": \"1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}" - ] - } - }, - "response": [ - { - "name": "Create Application", - "originalRequest": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "value": "application/json", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"additionalReferenceInfo\": {\n \"subject\": \"Anmeldung eines Gewerbes in Musterstadt\",\n \"caseId\": \"DF/8923\"\n },\n \"contentStructure\": {\n \"data\": {\n \"schema\": {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n },\n \"docs\": [\n {\n \"docId\": \"1\",\n \"purpose\": \"form\",\n \"size\": 13046,\n \"mimeType\": \"application/pdf\",\n \"filename\": \"test.pdf\",\n \"description\": \"Das Antragsformular\",\n \"lang\": {\n \"lang\": \"de\",\n \"region\": \"DE\"\n },\n \"hash\": {\n \"algorithm\": \"SHA-256\",\n \"digest\": \"bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9\"\n }\n }\n ]\n },\n \"publicServiceType\": {\n \"name\": \"Gewerbeanmeldung\",\n \"description\": \"Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.\",\n \"leikaId\": \"99050012104000\",\n \"otherIdentifiers\": [\n {\n \"id\": \"8664844\",\n \"schemeId\": \"service.niedersachsen.de\",\n \"schemeName\": \"Serviceportal Niedersachsen\"\n },\n {\n \"id\": \"354824\",\n \"schemeId\": \"buerger.thueringen.de\",\n \"schemeName\": \"Zuständigkeitsfinder Thüringen\"\n }\n ]\n },\n \"applicants\": [\n {\n \t\"type\": \"person\",\n \"authentificationInfo\": {\n \"assuranceLevel\": \"high\",\n \"authentificationMethod\": \"eID\",\n \"timestamp\": \"2020-03-03T12:38:23Z\"\n },\n \"identityInfo\": {\n \"dateOfBirth\": \"1970-09-13\",\n \"gender\": \"m\",\n \"givenName\": \"WERNER\",\n \"familyName\": \"MUSTERMANN\",\n \"placeOfResidence\": {\n \t\"type\": \"national\",\n \"street\": \"KURZER WEG 7\",\n \"postalCode\": \"12345\",\n \"city\": \"ANKH-MORPORK\"\n }\n },\n \"contactInfo\": {\n \"electronicAddresses\": [\n {\n \"channelType\": \"Service-Account-Mailbox\",\n \"address\": \"3b0c9c8c-0801-45f0-a331-2abfc9db78d0\"\n }\n ],\n \"physicalAddress\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ]\n }\n }\n ],\n \"paymentInfo\": {\n \"reference\": \"TP/93/GDP\",\n \"usage\": \"Gewerbeanmeldung\",\n \"amount\": 17.3,\n \"timestamp\": \"2020-03-03T12:38:23Z\",\n \"status\": \"success\",\n \"transaction\": \"1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}" - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:30:08 GMT" - }, - { - "key": "Content-Length", - "value": "56" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"applicationId\": \"0c508e3f-2353-4206-9a1e-34b2e864d5a8\"\n}" - } - ] - }, - { - "name": "Add Applicaiton Data", - "event": [ - { - "listen": "test", - "script": { - "id": "c110688c-44b0-4b0d-a997-8f5f432ba340", - "exec": [ - "pm.test(\"response must be 202 Accepted and without body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(202); ", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "value": "application/json", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"F99000001\": \"string\",\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 42\n },\n \"G99000002\": [\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 17\n }\n },\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 24\n }\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{sender_url2}}{{sender_id}}/{{destination_id}}/{{application_id}}/data", - "host": [ - "{{sender_url2}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}", - "data" - ] - } - }, - "response": [ - { - "name": "Add Applicaiton Data", - "originalRequest": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "value": "application/json", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"F99000001\": \"string\",\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 42\n },\n \"G99000002\": [\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 17\n }\n },\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 24\n }\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}/{{application_id}}/data", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}", - "data" - ] - } - }, - "status": "Accepted", - "code": 202, - "_postman_previewlanguage": "plain", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-length", - "value": "0" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:30:24 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": null - } - ] - }, - { - "name": "Add Application Document", - "event": [ - { - "listen": "test", - "script": { - "id": "726f1b84-acd9-4bc7-a0cc-78e4d788e5ea", - "exec": [ - "pm.test(\"response must be 202 Accepted and without body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(202);", - "});" - ], - "type": "text/javascript" - } - } - ], - "protocolProfileBehavior": { - "disabledSystemHeaders": {} - }, - "request": { - "method": "PUT", - "header": [ - { - "key": "file", - "value": "", - "type": "text", - "disabled": true - } - ], - "body": { - "mode": "file", - "file": { - "src": "test.pdf" - }, - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{sender_url2}}{{sender_id}}/{{destination_id}}/{{application_id}}/docs/{{doc_id}}", - "host": [ - "{{sender_url2}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}", - "docs", - "{{doc_id}}" - ] - } - }, - "response": [ - { - "name": "Add Application Document", - "originalRequest": { - "method": "PUT", - "header": [ - { - "key": "file", - "value": "", - "type": "text", - "disabled": true - } - ], - "body": { - "mode": "file", - "file": { - "src": "test.pdf" - }, - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{sender_url2}}{{sender_id}}/{{destination_id}}/{{application_id}}/docs/{{doc_id}}", - "host": [ - "{{sender_url2}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}", - "docs", - "{{doc_id}}" - ] - } - }, - "status": "Accepted", - "code": 202, - "_postman_previewlanguage": "plain", - "header": [ - { - "key": "Content-Length", - "value": "0" - }, - { - "key": "Date", - "value": "Wed, 20 May 2020 06:30:50 GMT" - }, - { - "key": "Keep-Alive", - "value": "timeout=60" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": null - } - ] - }, - { - "name": "Send Application", - "event": [ - { - "listen": "test", - "script": { - "id": "c839dbc4-8af9-49ff-940d-95f496a40a5a", - "exec": [ - "pm.test(\"response must be 200 and have a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - "});", - "", - "// extract body", - "var jsonData = JSON.parse(responseBody);", - "// set application-id", - "pm.test(\"Application current status should be Queued\", function(){", - " // assert that application current status is \"queued\"", - " pm.expect(jsonData.code).to.equal(\"queued\");", - "})", - "", - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}/{{application_id}}", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}" - ] - } - }, - "response": [ - { - "name": "Send Application", - "originalRequest": { - "method": "POST", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}/{{application_id}}", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:31:01 GMT" - }, - { - "key": "Content-Length", - "value": "75" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"code\": \"queued\",\n \"timestamp\": \"2020-05-20T08:31:01.135842+02:00\",\n \"number\": 2\n}" - } - ] - } - ], - "protocolProfileBehavior": {}, - "_postman_isSubFolder": true - }, - { - "name": "Transfer Related Information", - "item": [ - { - "name": "Get Application Upload Status", - "event": [ - { - "listen": "test", - "script": { - "id": "c110688c-44b0-4b0d-a997-8f5f432ba340", - "exec": [ - "pm.test(\"response must be 202 Accepted and without body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(202);", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}/{{application_id}}/upload-status", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}", - "upload-status" - ] - } - }, - "response": [ - { - "name": "Get Application Upload Status", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}/{{application_id}}/upload-status", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}", - "{{application_id}}", - "upload-status" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:31:16 GMT" - }, - { - "key": "Content-Length", - "value": "99" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"data\": {\n \"status\": \"complete\",\n \"length\": 0\n },\n \"docs\": [\n {\n \"status\": \"complete\",\n \"docId\": \"1\",\n \"length\": 13046\n }\n ]\n}" - } - ] - }, - { - "name": "Get Destination Info", - "event": [ - { - "listen": "test", - "script": { - "id": "c110688c-44b0-4b0d-a997-8f5f432ba340", - "exec": [ - "pm.test(\"response must be 202 Accepted and without body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(202); ", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}" - ] - } - }, - "response": [ - { - "name": "Get Destination (Sender)", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{destination_id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:35:18 GMT" - }, - { - "key": "Content-Length", - "value": "778" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-0\",\n \"mobile\": false,\n \"description\": \"work\"\n }\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n {\n \"formOfAddress\": \"Herr\",\n \"doctoralDegrees\": \"Dr.\",\n \"firstName\": \"Kunibert\",\n \"lastName\": \"Vonundzu\",\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": false,\n \"description\": \"work\"\n },\n {\n \"number\": \"+49 123 456789\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ],\n \"email\": \"kunibert.vonundzu@example.com\"\n }\n }\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n },\n \"destinationId\": \"7881dba9-4055-4854-8b6d-11ea5b7f3047\"\n}" - } - ] - } - ], - "protocolProfileBehavior": {}, - "_postman_isSubFolder": true - }, - { - "name": "Status", - "item": [ - { - "name": "Get Status", - "event": [ - { - "listen": "test", - "script": { - "id": "c839dbc4-8af9-49ff-940d-95f496a40a5a", - "exec": [ - "pm.test(\"response must be 200 and have a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - "});", - "", - "// extract body", - "var jsonData = JSON.parse(responseBody);", - "// set application-id", - "pm.test(\"Application current status should be Queued\", function(){", - " // assert that application current status is \"queued\"", - " pm.expect(jsonData.code).to.equal(\"queued\");", - "})", - "", - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{application_id}}/status", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{application_id}}", - "status" - ] - } - }, - "response": [ - { - "name": "Get Status", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{sender_url}}{{sender_id}}/{{application_id}}/status", - "host": [ - "{{sender_url}}{{sender_id}}" - ], - "path": [ - "{{application_id}}", - "status" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:31:41 GMT" - }, - { - "key": "Content-Length", - "value": "165" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"current\": {\n \"code\": \"queued\",\n \"timestamp\": \"2020-05-20T08:31:01+02:00\",\n \"number\": 2\n },\n \"history\": [\n {\n \"code\": \"incomplete\",\n \"timestamp\": \"2020-05-20T08:30:08+02:00\",\n \"number\": 1\n }\n ]\n}" - } - ] - } - ], - "protocolProfileBehavior": {}, - "_postman_isSubFolder": true - } - ], - "protocolProfileBehavior": {} - }, - { - "name": "SubscriberAPI", - "item": [ - { - "name": "Destination Management", - "item": [ - { - "name": "Create Destination", - "event": [ - { - "listen": "test", - "script": { - "id": "5b7682e2-fdec-491d-ac53-915809a7062a", - "exec": [ - "pm.test(\"response must be 200 and have a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - " pm.response.to.have.jsonBody(\"destinationId\"); ", - "});", - "", - "// extract body", - "var jsonData = JSON.parse(responseBody);", - "// set application-id", - "pm.collectionVariables.set('destination_id', jsonData['destinationId']);", - "", - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n \t{\n \t\"number\": \"+49 89 32168-0\",\n \t\"mobile\": false,\n \t\"description\": \"work\"\n \t}\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"doctoralDegrees\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephones\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations" - ] - } - }, - "response": [ - { - "name": "Create Destination", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n \t{\n \t\"number\": \"+49 89 32168-0\",\n \t\"mobile\": false,\n \t\"description\": \"work\"\n \t}\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"doctoralDegrees\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephones\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations" - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:16:27 GMT" - }, - { - "key": "Content-Length", - "value": "56" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"destinationId\": \"7881dba9-4055-4854-8b6d-11ea5b7f3047\"\n}" - } - ] - }, - { - "name": "Get Destination", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}" - ] - } - }, - "response": [ - { - "name": "Get Destination", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:38:22 GMT" - }, - { - "key": "Content-Length", - "value": "778" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-0\",\n \"mobile\": false,\n \"description\": \"work\"\n }\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n {\n \"formOfAddress\": \"Herr\",\n \"doctoralDegrees\": \"Dr.\",\n \"firstName\": \"Kunibert\",\n \"lastName\": \"Vonundzu\",\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": false,\n \"description\": \"work\"\n },\n {\n \"number\": \"+49 123 456789\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ],\n \"email\": \"kunibert.vonundzu@example.com\"\n }\n }\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n },\n \"destinationId\": \"7881dba9-4055-4854-8b6d-11ea5b7f3047\"\n}" - } - ] - }, - { - "name": "Update Destination", - "event": [ - { - "listen": "test", - "script": { - "id": "5b7682e2-fdec-491d-ac53-915809a7062a", - "exec": [ - "pm.test(\"response must be 200 and have a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - "});", - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"destinationId\": \"{{destination_id}}\",\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Ankh-Morpork\",\n \"address\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n \t{\n\t \"number\": \"+49 89 32168-0\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t }\n\t ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"doctoralDegrees\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephones\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}" - ] - } - }, - "response": [ - { - "name": "Update Destination", - "originalRequest": { - "method": "PUT", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"destinationId\": \"{{destination_id}}\",\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Ankh-Morpork\",\n \"address\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n \t{\n\t \"number\": \"+49 89 32168-0\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t }\n\t ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"doctoralDegrees\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephones\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "plain", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-length", - "value": "0" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:39:35 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": null - } - ] - }, - { - "name": "Delete Destination", - "request": { - "method": "DELETE", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}" - ] - } - }, - "response": [ - { - "name": "Delete Destination", - "originalRequest": { - "method": "DELETE", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "plain", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-length", - "value": "0" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:39:51 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": null - } - ] - }, - { - "name": "List Destinations", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations" - ] - } - }, - "response": [ - { - "name": "List Destinations", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:38:04 GMT" - }, - { - "key": "Content-Length", - "value": "1559" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "[\n {\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-0\",\n \"mobile\": false,\n \"description\": \"work\"\n }\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n {\n \"formOfAddress\": \"Herr\",\n \"doctoralDegrees\": \"Dr.\",\n \"firstName\": \"Kunibert\",\n \"lastName\": \"Vonundzu\",\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": false,\n \"description\": \"work\"\n },\n {\n \"number\": \"+49 123 456789\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ],\n \"email\": \"kunibert.vonundzu@example.com\"\n }\n }\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n },\n \"destinationId\": \"0ddf3ab5-dd89-4e04-9ecd-b2c50b0b4efd\"\n },\n {\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-0\",\n \"mobile\": false,\n \"description\": \"work\"\n }\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n {\n \"formOfAddress\": \"Herr\",\n \"doctoralDegrees\": \"Dr.\",\n \"firstName\": \"Kunibert\",\n \"lastName\": \"Vonundzu\",\n \"contact\": {\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": false,\n \"description\": \"work\"\n },\n {\n \"number\": \"+49 123 456789\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ],\n \"email\": \"kunibert.vonundzu@example.com\"\n }\n }\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n },\n \"destinationId\": \"7881dba9-4055-4854-8b6d-11ea5b7f3047\"\n }\n]" - } - ] - } - ], - "protocolProfileBehavior": {}, - "_postman_isSubFolder": true - }, - { - "name": "Application Retrieval", - "item": [ - { - "name": "List Applications", - "event": [ - { - "listen": "test", - "script": { - "id": "0d082c8d-1593-4789-babc-b8c04e277f8d", - "exec": [ - "pm.test(\"response must be 200 Ok and has a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - "});", - "", - "var jsonData = pm.response.json();", - "", - "pm.test(\"Content-Type header is present\", function () {", - " pm.expect(jsonData[0], pm.collectionVariables.get(\"application_id\"));", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications" - ] - } - }, - "response": [ - { - "name": "List Applications", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:36:19 GMT" - }, - { - "key": "Content-Length", - "value": "1831" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "[\n {\n \"additionalReferenceInfo\": {\n \"subject\": \"Anmeldung eines Gewerbes in Musterstadt\",\n \"caseId\": \"DF/8923\"\n },\n \"contentStructure\": {\n \"data\": {\n \"schema\": {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n },\n \"docs\": [\n {\n \"docId\": \"1\",\n \"purpose\": \"form\",\n \"size\": 13046,\n \"mimeType\": \"application/pdf\",\n \"filename\": \"test.pdf\",\n \"description\": \"Das Antragsformular\",\n \"lang\": {\n \"lang\": \"de\",\n \"region\": \"DE\"\n },\n \"hash\": {\n \"algorithm\": \"SHA-256\",\n \"digest\": \"bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9\"\n }\n }\n ]\n },\n \"publicServiceType\": {\n \"name\": \"Gewerbeanmeldung\",\n \"description\": \"Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.\",\n \"leikaId\": \"99050012104000\",\n \"otherIdentifiers\": [\n {\n \"id\": \"8664844\",\n \"schemeId\": \"service.niedersachsen.de\",\n \"schemeName\": \"Serviceportal Niedersachsen\"\n },\n {\n \"id\": \"354824\",\n \"schemeId\": \"buerger.thueringen.de\",\n \"schemeName\": \"Zuständigkeitsfinder Thüringen\"\n }\n ]\n },\n \"applicants\": [\n {\n \"type\": \"person\",\n \"authentificationInfo\": {\n \"assuranceLevel\": \"high\",\n \"authentificationMethod\": \"eID\",\n \"timestamp\": \"2020-03-03T12:38:23Z\"\n },\n \"identityInfo\": {\n \"dateOfBirth\": \"1970-09-13\",\n \"gender\": \"m\",\n \"givenName\": \"WERNER\",\n \"familyName\": \"MUSTERMANN\",\n \"placeOfResidence\": {\n \"type\": \"national\",\n \"street\": \"KURZER WEG 7\",\n \"postalCode\": \"12345\",\n \"city\": \"ANKH-MORPORK\"\n }\n },\n \"contactInfo\": {\n \"electronicAddresses\": [\n {\n \"channelType\": \"Service-Account-Mailbox\",\n \"address\": \"3b0c9c8c-0801-45f0-a331-2abfc9db78d0\"\n }\n ],\n \"physicalAddress\": {\n \"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ]\n }\n }\n ],\n \"paymentInfo\": {\n \"reference\": \"TP/93/GDP\",\n \"usage\": \"Gewerbeanmeldung\",\n \"amount\": 17.3,\n \"timestamp\": \"2020-03-03T12:38:23Z\",\n \"status\": \"success\",\n \"transaction\": \"1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82\"\n },\n \"applicationId\": \"0c508e3f-2353-4206-9a1e-34b2e864d5a8\"\n }\n]" - } - ] - }, - { - "name": "Get Application Metadata", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "79511f73-464f-40a7-90c6-2b5176473cce", - "exec": [ - "" - ], - "type": "text/javascript" - } - }, - { - "listen": "test", - "script": { - "id": "bafba620-d3a3-45c3-b3b9-1afabc26885d", - "exec": [ - "pm.test(\"response must be 200 Ok and has a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - "});", - "", - "// extract body", - "var jsonData = pm.response.json();", - "", - "// todo extend tests." - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications/{{application_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications", - "{{application_id}}" - ] - } - }, - "response": [ - { - "name": "Get Application Metadata", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications/{{application_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications", - "{{application_id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:36:36 GMT" - }, - { - "key": "Content-Length", - "value": "1829" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"additionalReferenceInfo\": {\n \"subject\": \"Anmeldung eines Gewerbes in Musterstadt\",\n \"caseId\": \"DF/8923\"\n },\n \"contentStructure\": {\n \"data\": {\n \"schema\": {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n },\n \"docs\": [\n {\n \"docId\": \"1\",\n \"purpose\": \"form\",\n \"size\": 13046,\n \"mimeType\": \"application/pdf\",\n \"filename\": \"test.pdf\",\n \"description\": \"Das Antragsformular\",\n \"lang\": {\n \"lang\": \"de\",\n \"region\": \"DE\"\n },\n \"hash\": {\n \"algorithm\": \"SHA-256\",\n \"digest\": \"bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9\"\n }\n }\n ]\n },\n \"publicServiceType\": {\n \"name\": \"Gewerbeanmeldung\",\n \"description\": \"Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.\",\n \"leikaId\": \"99050012104000\",\n \"otherIdentifiers\": [\n {\n \"id\": \"8664844\",\n \"schemeId\": \"service.niedersachsen.de\",\n \"schemeName\": \"Serviceportal Niedersachsen\"\n },\n {\n \"id\": \"354824\",\n \"schemeId\": \"buerger.thueringen.de\",\n \"schemeName\": \"Zuständigkeitsfinder Thüringen\"\n }\n ]\n },\n \"applicants\": [\n {\n \"type\": \"person\",\n \"authentificationInfo\": {\n \"assuranceLevel\": \"high\",\n \"authentificationMethod\": \"eID\",\n \"timestamp\": \"2020-03-03T12:38:23Z\"\n },\n \"identityInfo\": {\n \"dateOfBirth\": \"1970-09-13\",\n \"gender\": \"m\",\n \"givenName\": \"WERNER\",\n \"familyName\": \"MUSTERMANN\",\n \"placeOfResidence\": {\n \"type\": \"national\",\n \"street\": \"KURZER WEG 7\",\n \"postalCode\": \"12345\",\n \"city\": \"ANKH-MORPORK\"\n }\n },\n \"contactInfo\": {\n \"electronicAddresses\": [\n {\n \"channelType\": \"Service-Account-Mailbox\",\n \"address\": \"3b0c9c8c-0801-45f0-a331-2abfc9db78d0\"\n }\n ],\n \"physicalAddress\": {\n \"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"telephones\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ]\n }\n }\n ],\n \"paymentInfo\": {\n \"reference\": \"TP/93/GDP\",\n \"usage\": \"Gewerbeanmeldung\",\n \"amount\": 17.3,\n \"timestamp\": \"2020-03-03T12:38:23Z\",\n \"status\": \"success\",\n \"transaction\": \"1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82\"\n },\n \"applicationId\": \"0c508e3f-2353-4206-9a1e-34b2e864d5a8\"\n}" - } - ] - }, - { - "name": "Get Application Data", - "event": [ - { - "listen": "test", - "script": { - "id": "ba8692bc-106f-41f6-b484-5a36f655d691", - "exec": [ - "pm.test(\"response must be 200 Ok and has a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - "});", - "", - "// extract body", - "var jsonData = pm.response.json();", - "", - "pm.test(\"correct application-id\", function () {", - " // assert that application-id is correct", - " pm.expect(jsonData['application-id']).to.eql(pm.collectionVariables.get(\"application_id\"));", - "});", - "", - "// todo extend tests." - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications/{{application_id}}/data", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications", - "{{application_id}}", - "data" - ] - } - }, - "response": [ - { - "name": "Get Application Data", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications/{{application_id}}/data", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications", - "{{application_id}}", - "data" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-type", - "value": "application/json" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:37:17 GMT" - }, - { - "key": "Content-Length", - "value": "224" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"F99000001\": \"string\",\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 42\n },\n \"G99000002\": [\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 17\n }\n },\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 24\n }\n }\n ]\n}" - } - ] - }, - { - "name": "Get Application Document", - "event": [ - { - "listen": "test", - "script": { - "id": "eb502bfa-b763-4f16-b76f-c0c8ef5e0228", - "exec": [ - "pm.test(\"response must be 200 Ok and has a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - " // assert that the response has a valid JSON body", - " pm.response.to.be.withBody;", - "});", - "", - "pm.test(\"Content-Type header is present\", function () {", - " pm.response.to.have.header(\"Content-Type\");", - "});", - "", - "pm.test(\"Content-Type header is application/octet-stream\", function () {", - " pm.response.to.have.header(\"Content-Type\");", - " pm.response.to.be.header(\"Content-Type\",\"application/octet-stream\");", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications/{{application_id}}/docs/{{doc_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications", - "{{application_id}}", - "docs", - "{{doc_id}}" - ] - } - }, - "response": [] - }, - { - "name": "Acknowledge Application", - "event": [ - { - "listen": "test", - "script": { - "id": "13f5e55a-6984-4505-bbae-61a229d5d571", - "exec": [ - "pm.test(\"response must be 200 Ok and has a body\", function () {", - " // assert that the status code is 200", - " pm.response.to.have.status(200); ", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"finalDelivery\": false\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications/{{application_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications", - "{{application_id}}" - ] - } - }, - "response": [ - { - "name": "Acknowledge Application", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"finalDelivery\": false\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{subscriber_url}}{{subscriber_id}}/destinations/{{destination_id}}/applications/{{application_id}}", - "host": [ - "{{subscriber_url}}{{subscriber_id}}" - ], - "path": [ - "destinations", - "{{destination_id}}", - "applications", - "{{application_id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "plain", - "header": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Access-Control-Allow-Headers", - "value": "*" - }, - { - "key": "Access-Control-Allow-Credentials", - "value": "true" - }, - { - "key": "Access-Control-Expose-Headers", - "value": "*" - }, - { - "key": "content-length", - "value": "0" - }, - { - "key": "date", - "value": "Wed, 20 May 2020 06:37:50 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": null - } - ] - } - ], - "protocolProfileBehavior": {}, - "_postman_isSubFolder": true - } - ], - "protocolProfileBehavior": {} - } - ], - "auth": { - "type": "oauth2", - "oauth2": [ - { - "key": "accessToken", - "value": "fd37414298594d29a564497a0ee3b11c", - "type": "string" - }, - { - "key": "tokenType", - "value": "Bearer", - "type": "string" - }, - { - "key": "addTokenTo", - "value": "header", - "type": "string" - } - ] - }, - "event": [ - { - "listen": "prerequest", - "script": { - "id": "0e99dc85-2204-4578-8167-86b21566527a", - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "id": "462d5817-f944-4c28-85a8-170e20d9f7b7", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "id": "f31d1881-4303-43e9-b650-d34d4d6128d9", - "key": "doc_id", - "value": "1" - }, - { - "id": "49b52365-5306-4f2f-89bd-11e63298fceb", - "key": "destination_id", - "value": "" - }, - { - "id": "d8b69c30-22da-4914-a919-29d7880a1e45", - "key": "application_id", - "value": "" - } - ], - "protocolProfileBehavior": {} -} \ No newline at end of file diff --git a/assets/postman/FIT-Connect.postman_environment.json b/assets/postman/FIT-Connect.postman_environment.json deleted file mode 100644 index c8dfe2ef2a873d81110da5a754dcb4c7b3ae4c58..0000000000000000000000000000000000000000 --- a/assets/postman/FIT-Connect.postman_environment.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id": "44204631-99ff-4de7-92e1-76fc41b2b798", - "name": "FIT-Connect", - "values": [ - { - "key": "sender_url", - "value": "https://sender.fiep-poc.de/beta6/", - "enabled": true - }, - { - "key": "subscriber_url", - "value": "https://subscriber.fiep-poc.de/beta6/", - "enabled": true - }, - { - "key": "sender_id", - "value": "sender-c94ae37e-dcc5-345e-a530-8651bdfa5f2c", - "enabled": true - }, - { - "key": "subscriber_id", - "value": "subscriber-c94ae37e-dcc5-345e-a530-8651bdfa5f2c", - "enabled": true - }, - { - "key": "sender_url2", - "value": "https://sender.fiep-poc.de/beta6/", - "enabled": true - } - ], - "_postman_variable_scope": "environment", - "_postman_exported_at": "2020-05-19T06:38:54.721Z", - "_postman_exported_using": "Postman/7.24.0" -} \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000000000000000000000000000000000000..675264818915098bad23d59de43011cbbf7209f1 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +} diff --git a/docs/1_Getting_Started.md b/docs/1_Getting_Started.md deleted file mode 100644 index 921aca1388653a848148825a2ebc148f1d3e7b1d..0000000000000000000000000000000000000000 --- a/docs/1_Getting_Started.md +++ /dev/null @@ -1,51 +0,0 @@ -# Erste Schritte zur API Nutzung - -## â‘ Account registrieren - -> Registrieren Sie sich für ein Zugriff, um mit Ihren Client auf die API zuzugreifen. Im Rahmen der Registrierung bekommen Sie für die gewünschte API die Client-ID und Zugriffdaten mitgeteilt. Da zum aktuellen Zeitpunkt keine Sandbox Umgebung bereitstellt, wird empfohlen, sich für beide Seiten zu registieren, um für komplexere Tests mit einem REST Client die API der Gegenseite anzusprechen (Siehe Postman Nutzung in Schritt 2). âž¡ [Registrierung zur API Nutzung](./4_Authentifizierung_und_Autorisierung.md) - -## â‘¡ API ausprobieren - -> In der Navigation auf linken Seite finden Sie die jeweiligen API Referenzen für die Nutzung der APIs unter den Reitern `Application Sender API` und `Application Subscriber API` -Für einen einfachen Einstieg zum Test der API können Sie die bereitgestellte Postman Collection nutzen und mit dem Postman REST Client die Anfragen an die API durchführen. Hiermit können Sie auch die Gegenseite (Sender oder Empfänger von Anträgen simulieren) (âž¡ [Testen mit Postman](./Detailinformationen/Postman.md). Nähere Informationen zu Postman siehe <https://www.postman.com/>) -Alternativ können Sie die Anfragen auch mittels eigener Anwendungen oder alternativer REST Clients durchführen. - -## â‘¢ OAuth Token vor der API Nutzung abrufen - -> Für jede Anfrage an die API Endpunkte ist ein gültiger JWT-Token mit der Anfrage mitzusenden. Für nähere Informationen zum Abruf eines JWT-Token siehe âž¡ [OAuth Details](./Detailinformationen/OAuth.md) - -## â‘£ Spezifikation lokal nutzen - -> Sofern Sie einen lokalen Zugriff auf die Quellen der Spezifikation im OpenAPI Format (bspw. für Code Generatoren) benötigen, finden Sie diese hier: âž¡[FIT-Connect-API-Spec.yml](https://fitko.uber.space/API_VERSION/zustelldienst.yml) - -## Beispiel mit `curl` - -Token holen und in `$TOKEN` speichern: - -```bash -TOKEN=$(curl --silent --location --request POST https://sender-test-token.fiep-poc.de/auth/realms/test/protocol/openid-connect/token \ ---header 'Content-Type: application/x-www-form-urlencoded' \ ---data-urlencode 'client_id=beispiel' \ ---data-urlencode 'client_secret=29e03d25-7999-4e4c-aa9a-bb2b99404d09' \ ---data-urlencode 'scope=destination:send' \ ---data-urlencode 'grant_type=client_credentials' \ -| jq -r .access_token) -``` - -Sie können das Token mit `echo ${TOKEN}` ausgeben lassen. - -Server Version abfragen (API Test): - -```bash -curl --silent --header "Authorization: Bearer ${TOKEN}" https://sender-test.fiep-poc.de/beta7/info -``` - -## Wie geht es weiter? - -<!-- theme: success --> - -> ### Service Desk - -> Für Fragen, Anregungen und sonstiges Feedback steht Ihnen unser -> [FIT-Connect Service Desk](https://jira.fiep-poc.de/servicedesk/customer/portal/1) -> zur Verfügung. diff --git a/docs/2_Quick_Reference.md b/docs/2_Quick_Reference.md deleted file mode 100644 index fb4b6326cd08f6bfc4ade508fa56b74a22995fd6..0000000000000000000000000000000000000000 --- a/docs/2_Quick_Reference.md +++ /dev/null @@ -1,59 +0,0 @@ -# API-Kurzreferenz - -## Der XFall Antrag - - - -Der XFall Antrag (`application`) ist das zentrale Geschäftsobjekt in der XFall API. Der XFall Antrag besteht aus den Fachdaten (`data`) sowie den beigefügten Anhängen (`document`) und wird über die Metadaten ([application metadata](../models/application/metadata.json)) beschrieben. - -Die Metadaten des Antrags entsprechen dem früheren XFall-Container und enthalten übergreifenden Informationen über den Antrag sowie Strukturinformationen zu den enthaltenen Fachdaten und Anhängen. - -Fachdaten bezeichnen in XFall Antrag im einen strukturieren Datensatz in XML oder JSON und können über ein externes Schema (bspw. aus FIM) beschrieben werden. - -Anhänge können entweder klassische Anhänge (bspw. Nachweise) oder oder eine PDF-Repräsentation der Fachdaten des Antrags, falls eine solche alternative Repräsentation aus rechtlichen, technischen oder organisatorischen Gründen notwendig ist. - -## Identifikatoren der XFall Ressourcen - -Um Ressourcen eindeutig zu identifizieren, werden in den URLs der REST Endpunkte eine oder mehrere Identifikatoren (IDs) benutzt. - -### Von der API bereitgestellte IDs -#### applicationId -Der Zustelldienst weist jedem übertragenen Antrag (`application`) eine global eindeutige `applicationId` zu, die diesen Antrag dauerhaft über den gesamten Bearbeitungsverlauf eindeutig identifiziert. - -#### destinationId -Die `destinationId` ist eine vom Zustelldienst vergebene ID für einen durch den Subscriber angelegten Zustellpunkt (`destination`). Diese ID wird dem Sender über externe Systeme (bspw. Zuständigkeitsfinder) oder bilaterale Absprachen zwischen beiden Seiten mitgeteilt. - -### Vom Sender vergebene Identifikatoren -#### docId -Der Sender vergibt für jedes Antragsformular und jede Anlage in einer Ãœbertragung eine `docId`. Diese muss für alle Dokumente (PDF-Antragsformulare und beliebige Anlagen) in der Ãœbertragung eindeutig sein. Es wird empfohlen, die IDs `1`, `2` etc. zu verwenden. - -## Operation der Application Sender API - -Mit folgenden Operationen kann der Sender eine Application übertragen und die Ãœbertragung verwalten: - -- [Create Application](../reference/sender.json/paths/~1destinations~1{destinationId}~1applications/post) - Legt eine neue Ãœbertragung durch Ãœbermittlung der Metadaten an. -- [Add Application Data](../reference/sender.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}~1data/put) - Fügt dem Antrag strukturierte Daten (Fachdaten) hinzu. -- [Add Application Document](../reference/sender.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}~1docs~1{docId}/put) - Ãœbermittelt ein Antragsformular oder eine Anlage. -- [Send Application](../reference/sender.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}/post) - Beendet die Ãœbertragung des Antrags und löst seinen Versand aus. -- [Get Application Upload Status](../reference/sender.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}~1upload-status/get) - Ruft den Status der Uploads der Teile der Ãœbertragung ab. Für die Fachdaten und Dokumente wird jeweils der Status und die auf dem Server vorliegende Länge in Bytes zurückgegegben. - -Darüber hinaus stehen dem Sender folgende weitere Operationen zur Verfügung: - -- [Get Destination Info](../reference/sender.json/paths/~1destinations~1{destinationId}/get) - Ruft übertragungsrelevante Informationen über den Zustellpunkt (bspw. zulässige Schemata oder Datentypen) ab. -- [Get Status](../reference/sender.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}~1status/get) - Ruft den Status sowie die Statushistorie der Zustellung des Antrags ab. - -## Operation der Application Subscriber API - -Mit diesen Operationen kann der Subscriber eine oder mehrere Zustellpunkte (`Destinations`) verwalten: -- [Create Destination](../reference/subscriber.json/paths/~1destinations/post) - Legt ein neues Ãœbertragungsziel (Destination) an. -- [List Destinations](../reference/subscriber.json/paths/~1destinations/get) - Listet alle Ãœbertragungsziele (Destinations) eines Subscribers auf. -- [Get Destination](../reference/subscriber.json/paths/~1destinations~1{destinationId}/get) - Ruf die Daten eines Ãœbertragungsziels (Destination) ab. -- [Update Destination](../reference/subscriber.json/paths/~1destinations~1{destinationId}/put) - Aktualisiert ein Ãœbertragungsziel (Destination). -- [Delete Destination](../reference/subscriber.json/paths/~1destinations~1{destinationId}/delete) - Löscht ein Ãœbertragungsziel (Destination). - -Mit diesen Operationen wird nach wartenden Applications gesucht und diese abgeholt: -- [List Applications](../reference/subscriber.json/paths/~1destinations~1{destinationId}~1applications/get) - Ruft die Liste der wartenden Ãœbertragungen (Applications) ab. -- [Get Application Metadata](../reference/subscriber.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}/get) - Ruft eine wartende Ãœbertragung (Application) ab. -- [Get Application Data](../reference/subscriber.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}~1data/get) - Ruft die Fachdaten einer Ãœbertragung (Application Data) ab. -- [Get Application Document](../reference/subscriber.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}~1docs~1{docId}/get) - Ruf ein Dokument (Formular oder Anlage) der Application ab. -- [Acknowledge Application](../reference/subscriber.json/paths/~1destinations~1{destinationId}~1applications~1{applicationId}/post) - Quittiert die Abholung der Ãœbertragung. diff --git a/docs/3_Use_Cases_der_API.md b/docs/3_Use_Cases_der_API.md deleted file mode 100644 index cf695e45a054fca1a168d00495f2407a3a02fecc..0000000000000000000000000000000000000000 --- a/docs/3_Use_Cases_der_API.md +++ /dev/null @@ -1,86 +0,0 @@ -# Anwendungsfälle der API - -## Gesamtüberblick der Anwendungsfälle und beteiligten Fachsysteme - - - -## Anwendungsfälle für antragssendende Systeme (Sender) - -### Antrag bei einem Zustellpunkt abgeben - -**Vorbedingung:** Es muss zuvor die `destination-id` eines gültigen Zustellpunkts ermittelt worden sein. Im Rahmen des PoC erfolgt die Ãœbermittlung mittels bilateraler Absprachen und Kanäle zwischen dem Subscriber und Sender. Zukünftig soll diese Ermittlung über die API eines Zuständigskeitsfinders für die gewünschte Verwaltungsleistung und den Ortsbezug erfolgen, wenn die `destination-id` in den dortigen Zuständigkeitsinformation durch die zuständige Stelle hinterlegt wurde. - -**Ziel:** Alle Bestandteile des Antrags werden in den Abholbereich des addressierten Zustellpunkts übergeben und liegen dort zur Abholung durch den Subscriber bereit. - -**Beschreibung:** Falls die Parameter des Zustellpunkts (bspw. das zu nutzendes Fachdatenschema des Antrags) nicht bekannt sind, können diese Information über die Angabe der Destination-ID abgerufen werden. Zur Initierung der Ãœbertragung, überträgt der Sender mittels eines POST die Metadaten des Antrags an die Sender API und legt damit den Antrag (`application`) als Ressource und die Fachdaten sowie die in den Metadaten angegebenen Anlagen als Subressourcen an. Für den Antrag bekommt der Sender eine eindeutige `application-id`in der Response mitgeteilt. Der Sender kann anschließend alle Bestandteile des Antrags an die jeweiligen Endpunkte per PUT übermitteln und die Ãœbergabe an in den Abholbereich des Subscribers über einen abschließenden Commit initialisieren. - - - -### Zustellstatus des abgegebenen Antrags abrufen - -**Vorbedingung:** Der Antrag wurde als Ressource angelegt und dem Sender liegt eine `application-id` vor. - -**Ziel:** Den Zustellungsstatus des Antrags abschließend überwachen. - -**Beschreibung:** Der Sender fragt per GET über die `application-id` den `status` der Antrags ab. Als Antwort bekommt dieser den aktuellen Status sowie die Statushistorie übersendet. Diese Statusübergänge sind über standardisierte Codes (`incomplete`, `queued`, `forwarded`, `delivered`) definiert. - -## Anwendungsfälle für antragsempfangende Systeme (Subscriber) - -### Zustellpunkt einrichten - -**Vorbedingung:** Keine - -**Ziel:** Es wird ein Zustellpunkt (`destination`) eingerichtet und verwaltet, über den der Subscriber Anträge empfangen kann. Hierdurch wird grundsätzlich ein Zugang für alle Sender eröffnet, die die `destination-id` kennen. - -**Beschreibung:** Der Subscriber erstellt einen Zustellpunkt per POST und bekommt von der API eine eindeutige `destination-id`. Für diesen Zustellpunkt sind fachliche und technische Ansprechpartner sowie das Schema der Fachdaten zu definieren. Zusätzlich besteht die Möglichkeit, eine Callback URL zu hinterlegen, über die der Zustelldienst den Subscriber über neue Anträge informieren kann. - -### Benachrichtigungen über Anträge erhalten - -**Vorbedingung:** Es wurden in den Zustellpunkten Callback URLs hinterlegt, die durch den XFall Zustelldienst erreichbar sind. - -**Ziel:** Ziel ist, Benachrichtigungen über abholbereite Anträge zu empfangen. Diese Benachrichtigungen ersetzen ein konstantes Polling durch den Subscriber und entlasten damit die verfügbaren Hardware und Netzwerkressourcen. - -**Beschreibung:** Für die Benachrichtung übernimmt der Subscriber die Rolle eines API Providers, indem dieser Requests vom Zustelldienst empfängt. Der Zustelldienst sendet beim Vorliegen einer oder mehrerer Anträge einen POST Request mit allen `application-id's` der abholbereiten Anträge an die hinterlegte Callback URL. - -### Anträge abrufen - -**Vorbedingung:** Der Subscriber hat einen Zustellpunkt erstellt und die dazugehörige `destination-id` einem oder mehreren Sendern mitgeteilt und es liegt einer oder mehrere Anträge zum abholen bereit. - -**Ziel:** Ziel ist es, abholbereite Anträge abzurufen. - -**Beschreibung:** Der Subscriber kann die Metadaten aller vorliegenden Anträge mit einem Request abrufen oder die Metadaten eines spezifischen Antrags abrufen, falls die `application-id` durch eine Callback Benachtigung bereits mitgeteilt wurde. Nach dem Abruf der Metadaten besteht die Möglichkeit, die Fachdaten (`data`) sowie die Anlagen (`document`) abzurufen. Nach dem Abruf aller gewünschten Bestandteile des Antrags, muss der vollständige Abruf durch den Subscriber bestätigt werden. Diese Bestätigung hat zur Folge, dass innerhalb einer definierten Frist der Antrag unwiederruflich gelöscht wird. - - - -### Legende der verwendeten BPMN Symbole - -#### Start- und Endereignisse - - - - - -Startet oder beendet einen Prozessablauf. - -#### Aktivität - - - -Eine Tätigkeit innerhalb einer Prozessablaufs. - -#### Aktivität mit mehrfachen parallelen Instanzen - - - -Eine Tätigkeit innerhalb einer Prozessablaufs, die ab dem aktivierungszeitpunkt mehrfach parallel durchgeführt werden kann. - -#### Exclusive Gateway - - - -Ein Entscheidungspunkt innerhalb des Prozessablaufs im Sinne einer ODER Entscheidung. Es wird nur der weitere Prozessablauf weiterverfolgt, der dem Entscheidungsergebnis entspricht. -#### Parallel Gateway - - - -Parallelisierungspunkt innerhalb des Prozessablauf. Prozessflüsse nach dem parallelen Gateway parallel durchgeführt. diff --git a/docs/4_Authentifizierung_und_Autorisierung.md b/docs/4_Authentifizierung_und_Autorisierung.md deleted file mode 100644 index 71b1fdfab82611c40d43e50f2e7e2d337e6df000..0000000000000000000000000000000000000000 --- a/docs/4_Authentifizierung_und_Autorisierung.md +++ /dev/null @@ -1,32 +0,0 @@ -# Registrierung und Client-Verwaltung - -Der bisherige Proof of Concept ist ausgelaufen und FIT-Connect wird nun als Projekt des IT-Planungsrats aufgebaut. Im Rahmen der Projektumsetzung wird die aktuelle API finalisiert und technisch umgesetzt. - -Bei Interesse an einem Zugang zu einem Testsystem zur technischen Evaluierung der Anbindung von Fachverfahren und Onlinediensten an FIT-Connect melden Sie sich gerne unter fit-connect@fitko.de. - -## Hinweise zum Aufruf der API mit OAuth2 - -Um das von ihnen gewünschte API im Rahmen ihrer Anwendung aufzurufen, Gehen sie wie folgt vor: - - - -Verfahrensschritte: - -1) Die Clientanwendung sendet die Authentifizierungsanforderung an den Autorisierungsserver, um ein Zugriffstoken zu erhalten. - -2) Der Autorisierungsserver überprüft die Anforderung und generiert ein Zugriffstoken für den Client. - -3) Der Client verwendet dieses Zugriffstoken, um HTTP-Anforderungen an das API-Gateway zu senden. - -4) Das API-Gateway führt dann folgendes aus: - - Identifiziert die Anwendung anhand der client_Id. - - Ãœberprüft das Token lokal oder remote, wenn es lokal nicht möglich ist. - - Ãœberprüft, ob die angeforderte Ressource Teil des Bereichs im Token ist. - -Wurden alle Prüfschritte erfolgreich absolviert, wird die Anfrage an den Zustelldienst übergeben. - -Nach Bearbeitung der Anfrage im Zustelldienst wird die Antwort des Zustelldienstes an den Client zurückgesendet. - -FÃœr nähere Details und Beispiele siehe: -âž¡ [OAuth](./Detailinformationen/OAuth.md) - diff --git "a/docs/6_Architektur_\303\234bersicht.md" "b/docs/6_Architektur_\303\234bersicht.md" deleted file mode 100644 index 6902d7316e1ea6740f5c34f5db4d66f9f7904af6..0000000000000000000000000000000000000000 --- "a/docs/6_Architektur_\303\234bersicht.md" +++ /dev/null @@ -1,30 +0,0 @@ -# FIT-Connect Architektur Ãœbersicht - -FIT-Connect ist ein System, das es ermöglicht, Anträge von einem Onlineservice, einer App oder einem anderen digitalen Medium über eine standartisierte Schnittstelle an die zuständige Person bzw. an ein Fachverfahren in der für den Antrag zuständigen Behörde zu versenden. - -Dafür gibt es zwei Schnittstellen zum FIT-Connect-System die Abgabepunkt-API und die Zustellpunkt-API. - -## Einen Antrag an die Abgabepunkt-API versenden - -An die Abgabepunkt-API kann ein Onlineservice, der entweder von einer Behörde, einem Unternehmen oder einer zivilgesesellschaftlichen Organisation betrieben wird, Anträge übermitteln. Der Onlineservice benötigt dazu die Destination-ID eines Antrages. Diese Destination-ID ist einfach eine UUID, die dem FIT-Connect-System sagt, wohin ein Antrag zugestellt werden soll. Die passende Destination-ID kann man über die Schnittstelle des Zuständigkeitsfinders herausbekommen (**todo: link**). - -Mithilfe der Destination-ID kann ein Onlineservice bei FIT-Connect anfragen, in welchem Format die Empfangsbehörde die Daten erwartet. Das können JSON oder XML-Schemata und manchmal auch Binärdateien sein. - -FIT-Connect möchte einen sehr sicheren Ãœbermittlungsweg bereitstellen, deswegen müssen alle Daten immer vom Browser des Users bis in die Behörde Ende-zu-Ende-Verschlüsselt übertragen werden. Das dafür benötigte Schlüsselmaterial wird auch über die FIT-Connect-API bereitgestellt. - -Um Zugang zur Abgabepunkt-API für eine bestimmte Destination-ID zu bekommen, muss man OAuth Credentias über das Developer-Portal beantragen. Mit diesen kann man dann wiederum einen JWT Token bekommen, mit dem man sich gegenüber der Abgabepunkt-API authentifizieren kann. - -Nach Abgabe des Antrags erhält man von dieser API einen "Application ID". Mithilfe dieser Application ID kann man den Event Log des Antrags abrufen. Dieser Eventlog enthält eine Liste von Ereignes, ähnlich wie im Interface einer Paketverfolgung, mit denen der aktuelle Zustellungsstatus des Antrags transparent wird. Also ob und wann ein Antrag abgesendet, bei der Fachanwendung eingegangen bzw. bearbeitet wurde. - -Außerdem gibt es die Möglichkeit beim Absenden eines Antrages einen Verschlüsselungschlüssel mitzugeben. Wenn dieser vorhanden ist, dann können durch die Behörden Antworten auf Anträge im FIT-Connect-System hinterlegt werden. Wenn eine Antwort hinterlegt wird, kann der User per Webhook, E-Mail oder Push-Notification darüber benachtichtigt werden und die verschlüsselte Antwort über die verwendete App oder Onlineservice abrufen. - -## Einen Zustellpunkt bereitstellen - -Behörden können über das FIT-Connect-System Zustellpunkte für Anträge bereitstellen. In der Regel geben sie dabei an, für welches Gebiet sie welchen Antrag aus dem Leistungskatalog entgegennehmen. Darauf erhalten sie eine Destination ID, welche eine Eindeutige Zustelladresse für diese Leistung repräsentiert. Diese Destination ID wird im Diensteverzeichnis zusammen mit der LeiKa-ID und den Gemeindekennungen gelistet und wird somit für Antragsversender auffindbar. - -Beim Anlegen eines Zustellpunktes übermittelt die Behörde außerdem noch einen Verschlüsselungs- und einen Signatur-Key, Informationen ob und wie sie über einen neuen Antrag benachrichtigt werden soll und Datenschemas, denen die Antragsdaten, die an sie übermittelt werden, entsprechen müssen. - -Nachdem ein Zustellpunkt angelegt wurde, können über diesen Anträge empfangen werden. Wenn ein Antrag für die Destination-ID eingegangen ist, wird die Fachanwendung darüber über einen Webhook benachrichtig. Um den Antrag abzurufen muss die Fachanwendung sich zuerst via OAuth2 authentifizieren und kann sich dann mithilfe des JWT gegenüber des Fachverfahrens autorisieren und den Antrag abrufen. - -Nach dem Abruf des Antrags hat die Fachanwendung über die sogenannten Security Event Tokens die Möglichkeit Statusaktualisierungen zum empfangenen Antrag an das FIT-Connect-System zu übermitteln. Dieses benachrichtigt dann den Antragssteller wiederum via Webhook, E-Mail oder Push-Notification über die Statusänderung. Außerdem hat sie die Möglichkeit eine verschlüsselte Antwort auf den Antrag zu hinterlegen, die ebenfalls vom Antragssteller abgerufen werden kann. - diff --git a/docs/Detailinformationen/Antrag_Event_Log.md b/docs/Detailinformationen/Antrag_Event_Log.md deleted file mode 100644 index 975540a7986b30837e6e38d65ab142fe61f67d66..0000000000000000000000000000000000000000 --- a/docs/Detailinformationen/Antrag_Event_Log.md +++ /dev/null @@ -1,35 +0,0 @@ -# Eventlog eines Antrags - -Jeder eingegangene Antrag verfügt über einen Eventlog, indem Statusänderungen am Antrag festgehalten werden. Das ist zu vergleichen mit einem Sendungsverfolgungssystem bei einem Paketdienst und dient einerseits dazu, die Nutzer*innen über den Status ihres Antrags zu informieren und andrerseits stellte ist es eine signierte Nachweiskette, die beweisen kann, das ein Antrag übermittelt und bei der Fachanwendung eingegangen ist. - -Der Eventlog basiert auf dem Prinzip der Security Event Tokens [RFC 8417](https://tools.ietf.org/html/rfc8417). Einträge können einerseits durch de Ãœbermittlungsdienst und andrerseits die Fachanwendung hinzugefügt werden. - -## Format eines Events - -Alle Eventeinträge müssen nach dem in "[Anforderungen an das kryptografische Material](Encryption_Key_Requirements.md)" für Security Event Tokens (SET) festgelegten Vorgaben signiert werden. Außerdem müssen alle Einträge über folgende Felder verfügen: - -| Feld | Inhalt | **Erläuterung** | -| ------ | ----------------------------------------- | ------------------------------------------------------------ | -| iss | Identifizierungsmerkmal des Token Issuers | Dient dazu, um herauszufinden, wer den Token ausgestellt hat. Ist entweder client id der Fachanwendung oder "fitconnect" für den Ãœbermittlungsdienst | -| iat | Timestamp | Zeitpunkt der Ausstellug des SETs | -| sub | UUID des Antrags | Dient dazu um die Events dem Antrag zuzuordnen | -| events | Dict der Events in diesem Event-Token | Key Value mapping von schema zu Inhaltsdaten des eigentlichen Tokens. Liste der erlaubten Schemas befindet sich hier. (**TODO**) | - -### Beispiel - -```json -{ - "iss": "fitconnect", - "sub": "6f7b00f1-2f0c-46da-93c9-ca020aa1758f", - "iat": 1471566154, - "events": { - "http://schemas.fit-connect.fitko.de/event/application-received": {} - } -} -``` - -Zur Ãœbermittlug der Tokens wird das in [RFC 7515, Abschnitt 7.1](https://tools.ietf.org/html/rfc7515#section-7.1) beschriebene Verfahren "JWS Compact Serialization" verwendet, welches auch die Signatur des Tokens beinhaltet. (Siehe auch "[Anforderungen an das kryptografische Material](Encryption_Key_Requirements.md)" ) - -## Darstellen des Eventlogs - -Wenn ein Onlinedienst den Eventlog darstellen möchte, muss dieser sicherstellen, das die im Eventlog enthaltenen Einträge über eine valide Signatur verfügen und falls sich Einträge mit einer invaliden Signatur im Eventlog befinden, muss das für den User erkennbar sein. \ No newline at end of file diff --git a/docs/Detailinformationen/Begrenzung_von_Abrufen.md b/docs/Detailinformationen/Begrenzung_von_Abrufen.md deleted file mode 100644 index f6a21d5a82183f86284ba0620190ae862fac2ede..0000000000000000000000000000000000000000 --- a/docs/Detailinformationen/Begrenzung_von_Abrufen.md +++ /dev/null @@ -1,7 +0,0 @@ -# Begrenzung von Abrufen - -... - -**Noch in Arbeit** - -... \ No newline at end of file diff --git a/docs/Detailinformationen/Encryption.md b/docs/Detailinformationen/Encryption.md deleted file mode 100644 index bae63a420cf65ee77468e950ced9cb28ed403efc..0000000000000000000000000000000000000000 --- a/docs/Detailinformationen/Encryption.md +++ /dev/null @@ -1,347 +0,0 @@ -# Verschlüsselte Ãœbertragung - -## Einleitung - -FIT-Connect verwendet zur Ãœbertragung von Antragsdaten und Antragsmetadaten (abgesehen von den für die Ãœbermittlung zwingend notwendigen Daten, z.B. Destination-ID) eine Ende-zu-Ende-Verschlüsselung. Diese ist auf Basis der Standards [JSON Web Encryption (JWE)](https://tools.ietf.org/html/rfc7516) und [JSON Web Keys (JWK)](https://tools.ietf.org/html/rfc7517) umgesetzt. - -Die Informationen auf dieser Seite sind relevant, wenn man: - -- ein **Fachverfahren** mit FIT-Connect-Anbindung entwickelt oder aufsetzt -- einen **Onlinedienst** mit FIT-Connect-Anbindung entwickelt oder aufsetzt - -### Warum ist Ende-zu-Ende-Verschlüsselung wichtig? - -Im Kontext von Anträgen an Behörden werden häufig höchstsensible Daten übermittelt, die im Rahmen von [Vorgaben des BSI](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03107/TR-03107-1.pdf?__blob=publicationFile&v=4) nur Ende-zu-Ende-verschlüsselt übertragen werden dürfen. -Bei FIT-Connect ist die Zielsetzung einen möglichst einfachen, sicheren und klar definierten Standard zu etablieren. Deshalb ist die verschlüsselte Ãœbertragung von Antragsdaten ein integraler Bestandteil von FIT-Connect. Eine Ãœbertragung von Antragsdaten erfolgt mit FIT-Connect ausschließlich verschlüsselt. - -## Grundlagen zur sicheren Implementierung von FIT-Connect - -### Ende-zu-Ende-Verschlüsselung - -FIT-Connect basiert auf dem Ansatz von Ende-zu-Ende-Verschlüsselung. Das bedeutet, dass Daten immer vom Endgerät der Nutzer*in bis in die Zielbehörde bzw. das Fachverfahren asymmetrisch verschlüsselt sein müssen. - -<img src="../../assets/images/encryption/tls-no-tls.png" alt="Ende-zu-Ende-Verschlüsselung Bedeutung" width="400" height="320"> - -Zur Realisierung einer Ende-zu-Ende-Verschlüsselung vom Endgerät der Anwender:in bis zum Fachverfahren einer Behörde, dürfen Daten nicht unverschlüsselt oder nur per TLS gesichert an ein Backend übermittelt und erst dort die für FIT-Connect spezifizierte Verschlüsselung angewendet werden. Sollte eine längerfristige Speicherung der Antragsdaten nötig sein, so muss diese immer clientseitig (z.B. in der IndexDB des Browsers, per Download, …) erfolgen. - -### Zertifikate von Zustellpunkten müssen der Verwaltungs-PKI entstammen - -Jeder verwendete Public Key (idR. in Form eines JSON Web Keys) muss einem digitalen Zertifikat entstammen und von einer Zertifizierungsstelle innerhalb der Verwaltungs-PKI signiert werden. JSON Web Keys müssen immer mit der komplette Zertifikatskette bis zum Wurzelzertifikat ausgeliefert werden, um clientseitig korrekt validierbar zu sein. - -### Kryptografisches Material muss vor der Verwendung immer geprüft werden - -Die für die Verschlüsselung verwendeten JSON Web Keys müssen vor Verwendung anhand des zugehörigen Zertifikats aus der Verwaltungs-PKI auf Gültigkeit überprüft werden. - -<img src="../../assets/images/encryption/pki-check.png" alt="PKI-um Man-in-the-Middle zu verhindern" width="400" height="320" > - -Nicht vertrauenswürdige Schlüssel dürfen nicht für die Verschlüsselung von Anträgen verwendet werden. Das soll Angriffe wie Man-in-the-middle-Attacken verhindern. - -## Architektur - -Kern von FIT-Connect ist der Zustelldienst, der über die beiden APIs "Application Sender API" und "Application Subscriber API" den Absender (Sender) und Empfänger (Subscriber) eines Antrags verbindet. - -Jedes antragsempfangende System (Fachverfahren / virtuelle Poststelle) verfügt über einen oder mehrere Endpunkt, an den Anträge gesendet werden (Zustellpunkt) und einen oder mehrere Endpunkte von denen Anträge verschlüsselt versendet werden (in der Regel: Onlinedienst, App, …). - -Ein Antrag wird an einen Zustellpunkt (Zielort) geschickt. Diesen Zustellpunkt legt der Empfänger über die "Application Subscriber API" an. Der Absender muss die Destination-ID des Zustellpunktes kennen und kann dann Anträge über die "Application Sender API" an diese Destination-ID senden. - -### Application Sender API - -Der Absender muss die Destination-ID vorliegen haben und erfagt über die Application Sender API die Informationen zum Zustellpunkt. Diesen entnimmt er die Liste der möglichen Schemas und wählt eines aus. Sofern es sich um eine verschlüsselte Ãœbertragung handelt, wählt er einen öffentlichen Schlüssel. - -Derzeit muss die Destination-ID manuell vom Empfänger an den Absender übergeben werden. Dies soll in Zukunft automatisch mithilfe bestehender Mechanismen, z.B. XZufi oder DVDV passieren. - -Das gewählte Schema wird in den Metadaten des Antrags (Application Metadata) eingetragen und legt die Art der Ãœbertragung fest. - -### Application Subscriber API - -Ãœber die Application Subscriber API werden die Destinations verwaltet, an die die Anträge gesendet werden. Eine Destination enthält eine Liste von Schemas, welche Formate der Empfänger akzeptiert. - -Der Empfänger kann in der Destination mehrere Schemas und mehrere öffentliche Schlüssel hinterlegen. Der Absender sucht sich davon für die Ãœbertragung ein Schema und einen öffentlichen Schlüssel aus. Es wird empfohlen, genau ein Schema und genau einen öffentlichen Schlüssel anzubieten. - -Es ist geplant, dass die hinterlegten öffentlichen Schlüssel so organisiert werden, dass ein kontrolliertes Key-Rollover stattfinden kann. Dazu werden zu den Schlüsseln die Gültigkeitszeiträume ergänzt. - -### Ablauf eines Antrags aus Bürger*innen-Client-Perspektive - -Wenn eine Bürger*in nun einen Antrag im Web oder in einer App übermitteln möchte, läuft das in der Regel wie folgt ab: - -- Bürger*in findet den passenden Antrag über einen Zuständigkeitsfinder. -- Die Applikation erhält aus dem Zuständigkeitsfinder die passende Destination-ID zum Antrag. -- Die Applikation ruft über die Sender-API die Formular und Datenstruktur, Verschlüsselungszertifikat, … ab. -- Die Applikation prüft das Verschlüsselungszertifikat. -- Die Applikation übermittelt die Antragsdaten und optional einen Public Key des Users verschlüsselt an die Sender-API und erhält dafür einen Status-Token. -- Mit dem Status-Token ruft die Applikation verschlüsselte Statusinformationen zum Antrag aus der Sender-API ab. - -**TODO: add here some doc links about oauth** - -## Bereitstellung eines Destination-Endpunktes - -### Erstellung eines FIT-Connect-kompatiblen JSON Web Keys - -JSON Web Keys sind das Austauschformat in dem kryptografische Schlüssel in FIT-Connect zwischen der Destination und dem Onlinedienst ausgetauscht werden. Die kryptografischen Anforderungen an die Keys findet man unter **TODO**. Die Keys sollten bereits dort generiert werden, wo sie am Ende eingesetzt werden. Ein unnötiges übertragen von Privat Keys zwischen Servern/Computern sollte vermieden werden. Sollte dies doch notwendig sein, so muss die Ãœbermittlung wenn dann nur verschlüsselt erfolgen. - -Im folgenden eine beispielhafte Schritt-für-Schritt-Anleitung um einen JSON-Web-Key zu generieren: - -1. Lokale Generierung eines X.509 zugrundeliegenden RSA-Keys. `openssl genrsa -out fachverfahren1.meineverwaltung.de.key 4096` -2. Generierung des Zertifikatsrequests `openssl req -new -sha256 -key fachverfahren1.meineverwaltung.de.key -out fachverfahren1.meineverwaltung.de.csr` -3. Dieser Zertifikatsrequest muss nun von einer Verwaltungs-PKI signiert werden. -4. Das von der Verwaltungs-PKI signierte Zertifikat muss nun in einen JWK umgewandelt werden: … **TODO(Lilith): einfügen nachdem wir das einmal gemacht haben** - -Das dabei entstandene Zertifikat muss zur dem Fachverfahren gehörende Destination hinzugefügt werden - -### Anlegen eines Zustellpunktes - -Ein Zustellpunkt benötigt mindestens immer ein erlaubtes Fachdaten-Schema sowie einen Verschlüsselungs- und einen Signaturkey. Diese müssen in das Format JSON Web Key konvertiert und über den Zustelldienst als JSON Web Key bereitgestellt werden. - -#### Beispiel - -```json -{ - "publicKeys": { - "keys": [ - { - "kty": "RSA", - "key_ops": ["wrapKey"], - "n": "……(Public Key)……", - "e": "AQAB", - "alg": "PS512", - "kid": "……(Key ID)……", - "x5t": "……(Fingerprint)……", - "x5c": [ - "……(base64 encoded root cert)……", - "……(base64 encoded intermediate cert)……", - "……(base64 encoded cert)……" - ] - }, - { - "kty": "RSA", - "key_ops": ["verify"], - "n": "……(Public Key)……", - "e": "AQAB", - "alg": "PS512", - "kid": "……(Key ID)……", - "x5t": "……(Fingerprint)……", - "x5c": [ - "……(base64 encoded root cert)……", - "……(base64 encoded intermediate cert)……", - "……(base64 encoded cert)……" - ] - } - ] - }, - "schemas": [ - { - "schemaSource": "none", - "mimeType": "json", - }, - { - "schemaSource": "none", - "mimeType": "xml", - } - ], - "destinationId": "b444a551-74af-4a98-aa65-d1ffccd385d1" -} -``` - -## Implementierung eines Onlinedienstes - -### Abrufen der Endpunktinformationen - -### Ãœberprüfen der Json Web Keys - -Die JSON Web Keys müssen vor der Verwendung im Client auf Gültigkeit geprüft werden. Das umfasst insbesondere folgende Punkte: - -- Ãœberprüfung gegen eine Certificate Revocation List und/oder einen OCSP-Endpunkt mit signierten Antworten. -- Ãœberprüfung der Zertifikats-Kette bis zum Wurzelzertifikat (BSI). - -Weitere Informationen zur Glütigkeitsprüfung finden sich im BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4) und im Abschnitt "[Anforderungen an das kryptografische Material](Encryption_Key_Requirements.md)" . - -### Aufbau der Ãœbertragung - -Eine Ãœbertragung über FIT-Connect besteht aus einem Metadatensatz, optionalen Fachdaten und beliebig vielen (0-∞) Dokumenten (Anlagen). Ein Teil der Metadaten enthälten transportrelevante Informationen und werden deshalb unverschlüsselt übertragen. Alle nicht transportrelevanten Metadaten, die Fachdaten und Anlagen werden verschlüsselt übertragen. - -Die Metadaten, Fachdaten und Anlagen werden gemäß dem Standard JSON Web Encryption RFC 7516) verschlüsselt. Als Datenformat für die Ãœbertragung wird die sogenannte [JWE-Compact Serialisierung](https://tools.ietf.org/html/rfc7516#section-7.1) verwendet. Alle angehängten Dokumente müssen als Binärdateien und nicht als Strings enkodiert verschlüsselt werden. - -Zur Verschlüsselung wird ein JSON Web Key mit dem Typ "wrap_key" verwendet. - -#### Beispiel (Metadaten) - -```json -{ - "contentStructure": { - "data": { - "schema": { - "schemaSource": "none", - "mimeType": "json", - } - }, - "docs": [ - { - "size": 13046, - "purpose": "attachment", - "docId": "1", - "mimeType": "application/pdf" - } - ] - }, - "applicationId": "6f7b00f1-2f0c-46da-93c9-ca020aa1758f" -} -``` - -#### Beispiel (Fachdaten) - -Bei der verschlüsselten Ãœbertragung der Fachdaten und Anlagen wird der Content-Type "application/jose" (Achtung: jose, nicht json) verwendet. - -Beispiel: - -```text -PUT /delivery-service-beta7/sender/destinations/e1009dea-d97e-4104-b389-bf653d8bd30e/applications/6f7b00f1-2f0c-46da-93c9-ca020aa1758f/data HTTP/1.1 -Content-Type: application/jose -Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjM1ZTM2Nzk2LTM1NDAtNDUwMy1iYT... - -eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.yTSVS7re6hZKO46aDriHrRFOyc5- -3TIIrvcKUf2qAfGdH7InufWPCrDyEnazSDI7HtOa5X2MU3iUnmmiEuP-Lef76xTPv2lmL4_lyhW5D8zq -7zbrIaIaVhtg7ekF1r9Oy9nLsEBQWLD4EWda2PfAibV7iQbOVMn1rVk4DzKtCykj5RSrH96i-lbPVFl- -Xw_E2G5XsL0gOHrdbAsjTF1h67bvh2hnojc9SH1GnlD0TlUO30n0GKLgC7tNNiLGtNrRo8ih3LUWYo-m -34Q6NGjaNTycHnWMYZzXHbIcBzYr6WLTsrB07rKXEyrHGLaRL88y2c-ACyEzpgv4qR5DAp98Su2u45ar -pfGU_7HxX4d-PLEoDfIRnh32nprarbaIesj9Ppgiu7QciWRApcyszk0a5rzZ7Dk_6-ydMfD92H2p3tdt -OcFhj3XGUshVKec2nRhtCZPOMPTIjxFpozsiRetjZo9LFHzRcvr1eSS_hpteKJ3ltioY9nzt1IX2JqQm -TGtY.VGOCnGM9LEZP5mUO.LQeKj4SKqsUNsBp4ZRN_56QbS8MQ01YTzRVFStk.Z0YMEua9kvCV7LkeJH -kprA -``` - -## Verschlüsseln von Daten - -### ... im Browser (JavaScript) - -Gegeben, dass ein öffentlicher Teil eines JWK eines Zustellpunktes vorhanden ist, können mit diesem Daten für diesen Zustellpunkt verschlüsselt werden. Ein Beispiel für den öffentlichen Teil eines JWK ist unten aufgeführt. - -```json -{ - "kty": "RSA", - "e": "AQAB", - "keyops": ["wrapKey"], - "x5c": [ - "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVtakNDQW9LZ0F3SUJBZ0lHQVhueVZNOFVNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1BNHhEREFLQmdOVkJBTU0KQTJGelpEQWVGdzB5TVRBMk1Ea3hPVFV4TlRSYUZ3MHlNakEwTURVeE9UVXhOVFJhTUE0eEREQUtCZ05WQkFNTQpBMkZ6WkRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTEY5ZzErNnh1UWFDWGR0CndOSlcrN05oVW1NV1FXYTdFTlVpTlY0aTB2OTNubi8vVUdOYStFa25wdlk0czJVRVVhbnUvSWJLamRpb01MbE4KMzI1dFN0MW13TUpZS1cwT1N4VjVUU3hzdE9GK09OVG1QcDM3UUxRY1J4WVV2dGtPbTZnTCs2eDBuN3BLVlVpYQpORjd5N0NTZXFESWM3YmpQVE9iNDAwYXVGaVlRVlJQbmlWT2tHMWcwdkx5ZEEzU3N5dEhJUDRwa3JveXVFOTd3ClFXcDZqTnZacU5xUWZlNkJEQ21uSU56cFJDV2E1TWxkb1VJcUJsekpSVy9DSTNDcVhkVHRtZlhTeGwzSGF3WkIKQ2VLR3ZoQlRUN05pL0RpY1EwN05JdFYzUndZY2UveFptTHlvOCtPelF5L0k4WTZKU1hiNzR4VGo3OER6WEJvNgpVRUZodDJRVXIwaW80UVAxZTlxaFkwcmtGNDlUR2ZDSk9pUjNWWitzQ0hpNEE0a093VWVaNVM1bnh6SmFjVStpCjVINisrNUdKRkIrdEhmV0V2WWVRdzRsVlZqQkdPNHVvdW0xSVo1dHJyb0tJOHVVNXJ3ZjVHa1h2SkNTK1VyMC8KbVJLVHVQalJkWVEzYnk3NkpUMlR4WXZMRDR2ZzlwUjhVdmZTUW9yMFYzTDlXdE56RXhuMC9UK0pVN0g3cEtIVgp6UDNMT1QzbkgyTjZPbFY4YWd3USt0UlArUlJiVExWM2c0cmlMWHhMaEFMeDJQS1ZlRi92dk1BRFVZT2pnMFIrCndVa3ZRRkFqcGNBZXYwNnpNK1dDMm5FT2lBZVl6UVY5L1pudUdicEhuZWhXb3FJbjRXajQwYzY1b2Z1UEx1T3QKUlpjUjJiZkUrbWFvMFd0VUhCWjVLdC96T1ByWkFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUlaTwpXdWNXQWxYZm5OVGZ5eExvMEEzQXM3ZGs5Rno0bVBzK1h2MW1RYlJSN0F2VnNSQyszeDJQTEJTd09aMDIveXFVCllVbk9WcFgxd2U2b2JHamtGVjJrQUs1NXc2M1poU1B1eXlPOEhBdlkzY1Y1ell6MW9KcmNtenpQblBzRlhJbUoKZTBINXFBYjhwNWx5emovbkJ0RTRkUXRGMlUwUEdadXRqSE82ZDgybytOclhJL1lOOUV5aUtIWUxZNGJTZ0syOAo1TC9jdEJBMmorRDJ4NlJEcjJ3YzlhTjFOUzZ4MXdXWmRpMmkyTXUyeGg4Nmc4cXV1dFNBL2Q1VElIUXpKTnR1CmY1blRMc3lFL3BqZDVnT0dyeGV0REREbW9rQUR0YnV6REFUUUNkaVVnbEliamYvME1Kc3o5QTlMUGhUKzNURGQKWXFOWVVJQ2k2WEhiTTU3bk5FQldwc3doZnl3RDkvWCt1US81OUJoVkFKTEJRT1NQNTdpSHgwUXo1elY0eldTegowcUR5dzVUU3N0U25GNDZrVm0xeHcvdkxNK0FVOE9oZmRlODFyWElydCs5bkdEdUNBWXN4YTRpeWZ3Y2dXaUF4CmIrQm04OHIvL0dZSndvdFEwRnI3SUVkekNaVFM0cm5Sb0lodVpkQ00xQ3BXS0dMOFVjQU9nTnlpR0t1eEY3emcKZjd4NysrWmhBeXBOV2s5OEtxYnZLOG1hcTYzTkt5ck1tNG9KQ3VIVWRzdHMxOU1RODdnekFvRnd1QkYzSEF2eQowVXRvdGY0bGZWNllYay85b3orWHNiS2x4ZlIrV3JYN2J6RkNYcnZueC8zNk1zZEp3UTF3aXhWaGhsYWdnUFF3CnQzUU5iMnBDc0hXdkVLcExWZUk5aHl1L1BqOFIycEhaYUtjN1NGKzQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" - ], - "x5t": "MTg6NTU6RUY6MEY6RkI6NDM6QzM6QTY6QUE6QzI6Nzg6Q0U6Mzk6MDc6NEE6RDk6QjA6OTA6NjU6Qzc6ODE6OTc6RDI6RjQ6NTE6ODQ6MjM6MTA6Qjc6QUU6QjY6NkE6NDU6QTc6RjA6OTE6MUY6NjY6QUU6NEQ6MEM6MTg6RDI6MzI6REU6QzM6RDk6RjY6NTY6REM6MEU6NUM6Q0E6NDk6QkY6OUI6NkY6OUM6MEM6QzM6ODQ6QjA6MkE6RkMK", - "kid": "787f3a1c-7da7-44d7-9b79-9783b1ea9be8", - "alg": "RSA-OAEP-256", - "n": "sX2DX7rG5BoJd23A0lb7s2FSYxZBZrsQ1SI1XiLS_3eef_9QY1r4SSem9jizZQRRqe78hsqN2KgwuU3fbm1K3WbAwlgpbQ5LFXlNLGy04X441OY-nftAtBxHFhS-2Q6bqAv7rHSfukpVSJo0XvLsJJ6oMhztuM9M5vjTRq4WJhBVE-eJU6QbWDS8vJ0DdKzK0cg_imSujK4T3vBBanqM29mo2pB97oEMKacg3OlEJZrkyV2hQioGXMlFb8IjcKpd1O2Z9dLGXcdrBkEJ4oa-EFNPs2L8OJxDTs0i1XdHBhx7_FmYvKjz47NDL8jxjolJdvvjFOPvwPNcGjpQQWG3ZBSvSKjhA_V72qFjSuQXj1MZ8Ik6JHdVn6wIeLgDiQ7BR5nlLmfHMlpxT6Lkfr77kYkUH60d9YS9h5DDiVVWMEY7i6i6bUhnm2uugojy5TmvB_kaRe8kJL5SvT-ZEpO4-NF1hDdvLvolPZPFi8sPi-D2lHxS99JCivRXcv1a03MTGfT9P4lTsfukodXM_cs5PecfY3o6VXxqDBD61E_5FFtMtXeDiuItfEuEAvHY8pV4X--8wANRg6ODRH7BSS9AUCOlwB6_TrMz5YLacQ6IB5jNBX39me4Zuked6FaioifhaPjRzrmh-48u461FlxHZt8T6ZqjRa1QcFnkq3_M4-tk" -} -``` - -Die Umwandelung des JWK in eine Struktur, die für die Bibliothek [panva/jose](https://github.com/panva/jose) nutzbar ist, kann mit Hilfe einer Methode aus dieser durchgeführt werden. - -```javascript -import { parseJwk } from "jose/jwk/parse" -import { CompactEncrypt } from "jose/jwe/compact/encrypt" - -const publicKey = await parseJwk({ - "kty": "RSA", - "e": "AQAB", - "keyops": ["wrapKey"], - "x5c": [ - "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVtakNDQW9LZ0F3SUJBZ0lHQVhueVZNOFVNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1BNHhEREFLQmdOVkJBTU0KQTJGelpEQWVGdzB5TVRBMk1Ea3hPVFV4TlRSYUZ3MHlNakEwTURVeE9UVXhOVFJhTUE0eEREQUtCZ05WQkFNTQpBMkZ6WkRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTEY5ZzErNnh1UWFDWGR0CndOSlcrN05oVW1NV1FXYTdFTlVpTlY0aTB2OTNubi8vVUdOYStFa25wdlk0czJVRVVhbnUvSWJLamRpb01MbE4KMzI1dFN0MW13TUpZS1cwT1N4VjVUU3hzdE9GK09OVG1QcDM3UUxRY1J4WVV2dGtPbTZnTCs2eDBuN3BLVlVpYQpORjd5N0NTZXFESWM3YmpQVE9iNDAwYXVGaVlRVlJQbmlWT2tHMWcwdkx5ZEEzU3N5dEhJUDRwa3JveXVFOTd3ClFXcDZqTnZacU5xUWZlNkJEQ21uSU56cFJDV2E1TWxkb1VJcUJsekpSVy9DSTNDcVhkVHRtZlhTeGwzSGF3WkIKQ2VLR3ZoQlRUN05pL0RpY1EwN05JdFYzUndZY2UveFptTHlvOCtPelF5L0k4WTZKU1hiNzR4VGo3OER6WEJvNgpVRUZodDJRVXIwaW80UVAxZTlxaFkwcmtGNDlUR2ZDSk9pUjNWWitzQ0hpNEE0a093VWVaNVM1bnh6SmFjVStpCjVINisrNUdKRkIrdEhmV0V2WWVRdzRsVlZqQkdPNHVvdW0xSVo1dHJyb0tJOHVVNXJ3ZjVHa1h2SkNTK1VyMC8KbVJLVHVQalJkWVEzYnk3NkpUMlR4WXZMRDR2ZzlwUjhVdmZTUW9yMFYzTDlXdE56RXhuMC9UK0pVN0g3cEtIVgp6UDNMT1QzbkgyTjZPbFY4YWd3USt0UlArUlJiVExWM2c0cmlMWHhMaEFMeDJQS1ZlRi92dk1BRFVZT2pnMFIrCndVa3ZRRkFqcGNBZXYwNnpNK1dDMm5FT2lBZVl6UVY5L1pudUdicEhuZWhXb3FJbjRXajQwYzY1b2Z1UEx1T3QKUlpjUjJiZkUrbWFvMFd0VUhCWjVLdC96T1ByWkFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUlaTwpXdWNXQWxYZm5OVGZ5eExvMEEzQXM3ZGs5Rno0bVBzK1h2MW1RYlJSN0F2VnNSQyszeDJQTEJTd09aMDIveXFVCllVbk9WcFgxd2U2b2JHamtGVjJrQUs1NXc2M1poU1B1eXlPOEhBdlkzY1Y1ell6MW9KcmNtenpQblBzRlhJbUoKZTBINXFBYjhwNWx5emovbkJ0RTRkUXRGMlUwUEdadXRqSE82ZDgybytOclhJL1lOOUV5aUtIWUxZNGJTZ0syOAo1TC9jdEJBMmorRDJ4NlJEcjJ3YzlhTjFOUzZ4MXdXWmRpMmkyTXUyeGg4Nmc4cXV1dFNBL2Q1VElIUXpKTnR1CmY1blRMc3lFL3BqZDVnT0dyeGV0REREbW9rQUR0YnV6REFUUUNkaVVnbEliamYvME1Kc3o5QTlMUGhUKzNURGQKWXFOWVVJQ2k2WEhiTTU3bk5FQldwc3doZnl3RDkvWCt1US81OUJoVkFKTEJRT1NQNTdpSHgwUXo1elY0eldTegowcUR5dzVUU3N0U25GNDZrVm0xeHcvdkxNK0FVOE9oZmRlODFyWElydCs5bkdEdUNBWXN4YTRpeWZ3Y2dXaUF4CmIrQm04OHIvL0dZSndvdFEwRnI3SUVkekNaVFM0cm5Sb0lodVpkQ00xQ3BXS0dMOFVjQU9nTnlpR0t1eEY3emcKZjd4NysrWmhBeXBOV2s5OEtxYnZLOG1hcTYzTkt5ck1tNG9KQ3VIVWRzdHMxOU1RODdnekFvRnd1QkYzSEF2eQowVXRvdGY0bGZWNllYay85b3orWHNiS2x4ZlIrV3JYN2J6RkNYcnZueC8zNk1zZEp3UTF3aXhWaGhsYWdnUFF3CnQzUU5iMnBDc0hXdkVLcExWZUk5aHl1L1BqOFIycEhaYUtjN1NGKzQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" - ], - "x5t": "MTg6NTU6RUY6MEY6RkI6NDM6QzM6QTY6QUE6QzI6Nzg6Q0U6Mzk6MDc6NEE6RDk6QjA6OTA6NjU6Qzc6ODE6OTc6RDI6RjQ6NTE6ODQ6MjM6MTA6Qjc6QUU6QjY6NkE6NDU6QTc6RjA6OTE6MUY6NjY6QUU6NEQ6MEM6MTg6RDI6MzI6REU6QzM6RDk6RjY6NTY6REM6MEU6NUM6Q0E6NDk6QkY6OUI6NkY6OUM6MEM6QzM6ODQ6QjA6MkE6RkMK", - "kid": "787f3a1c-7da7-44d7-9b79-9783b1ea9be8", - "alg": "RSA-OAEP-256", - "n": "sX2DX7rG5BoJd23A0lb7s2FSYxZBZrsQ1SI1XiLS_3eef_9QY1r4SSem9jizZQRRqe78hsqN2KgwuU3fbm1K3WbAwlgpbQ5LFXlNLGy04X441OY-nftAtBxHFhS-2Q6bqAv7rHSfukpVSJo0XvLsJJ6oMhztuM9M5vjTRq4WJhBVE-eJU6QbWDS8vJ0DdKzK0cg_imSujK4T3vBBanqM29mo2pB97oEMKacg3OlEJZrkyV2hQioGXMlFb8IjcKpd1O2Z9dLGXcdrBkEJ4oa-EFNPs2L8OJxDTs0i1XdHBhx7_FmYvKjz47NDL8jxjolJdvvjFOPvwPNcGjpQQWG3ZBSvSKjhA_V72qFjSuQXj1MZ8Ik6JHdVn6wIeLgDiQ7BR5nlLmfHMlpxT6Lkfr77kYkUH60d9YS9h5DDiVVWMEY7i6i6bUhnm2uugojy5TmvB_kaRe8kJL5SvT-ZEpO4-NF1hDdvLvolPZPFi8sPi-D2lHxS99JCivRXcv1a03MTGfT9P4lTsfukodXM_cs5PecfY3o6VXxqDBD61E_5FFtMtXeDiuItfEuEAvHY8pV4X--8wANRg6ODRH7BSS9AUCOlwB6_TrMz5YLacQ6IB5jNBX39me4Zuked6FaioifhaPjRzrmh-48u461FlxHZt8T6ZqjRa1QcFnkq3_M4-tk" -}) -``` - -Mit diesem umgewandelten Schlüssel können nun Texte und Binärdaten verschlüsselt werden. Im großen und ganzen kann alles verschlüsselt werden, was vorher in ein `Uint8Array` umgewandelt wurde. - -Für Texte kann man hier den TextEncoder aus der Browser-Runtime nutzen, der den String in die UTF8-Bytes und damit in ein `Uint8Array` umwandelt. - -```javascript -const encodedText = new TextEncoder().encode("{ \"Hello\": \"World\"}") -const encryptedText = await new CompactEncrypt(encodedText) - .setProtectedHeader({ alg: "RSA-OAEP-256", enc: "A256GCM" }) - .encrypt(publicKey) -``` - -Anhänge, wie PDF-Dateien, Bilder o. ä. liegen meist in einem `Uint8Array` vor bzw. können einfach darin umgewandelt werden. Im Folgenden Beispiel wird eine Datei aus einem HTML-File-Input direkt heraus verschlüsselt. - -```javascript -// .arrayBuffer() => https://developer.mozilla.org/en-US/docs/Web/API/Blob/arrayBuffer -// Verschlüsselung der ersten Datei aus einem Datei-Input: <input type="file" id="my-file-input" /> -const buffer = await document.getElementById("my-file-input").files[0].arrayBuffer() -const encryptedText = await new CompactEncrypt(buffer) - .setProtectedHeader({ alg: "RSA-OAEP-256", enc: "A256GCM" }) - .encrypt(publicKey) -``` - -### ... im Backend (Java) - -TBD - -```xml -<dependency> - <groupId>com.nimbusds</groupId> - <artifactId>nimbus-jose-jwt</artifactId> - <version>9.X.X</version> -</dependency> -``` - -```java -String publicKeyAsString = new String(existingPublicKey.readAllBytes()); -// Only RSA keys with RSA-OAEP-256 and A256GCM are allowed -// => Therefore we need to parse a RSAKey -RSAKey publicKey = RSAKey.parse(publicKeyAsString).toRSAPublicKey(); -``` - -```java -JWEHeader header = new JWEHeader(JWEAlgorithm.RSA_OAEP_256, EncryptionMethod.A256GCM); - -Payload payload = new Payload("{ \"Hello\": \"World\"}"); -/// Alternativ, bei einer Datei -Payload payload = new Payload(aFileInputStream.readAllBytes()); - -JWEObject jweObject = new JWEObject(header, payload); - -try { - jweObject.encrypt(new RSAEncrypter(publicKey)); - // Serialisierung gemäß JWE Compact Serialization, siehe https://datatracker.ietf.org/doc/html/rfc7516#section-3.1 - String encrypted = jweObject.serialize(); - - System.out.println("Encrypted Text:"); - System.out.println(encrypted); -} catch (JOSEException e) { - e.printStackTrace(); -} -``` - -## Entschlüsseln von Daten im antragsempfangenden System (Java) - -Wenn ein antragsempfangendes System (z.B. eine Fachanwendung oder virtuelle Poststelle) einen Antrag erhält, kann es diesen mit Hilfe des privaten Schlüssels und der Java-Bibliothek `nimbus-jose-jwt` entschlüsseln. - -```xml -<dependency> - <groupId>com.nimbusds</groupId> - <artifactId>nimbus-jose-jwt</artifactId> - <version>9.X.X</version> -</dependency> -``` - -Hierfür muss zuerst der private Schlüssel eingelesen werden. Bei `nimbus-jose-jwt` gibt es für RSA Schlüssel die Klasse RSAKey, um diese zu lesen: - -```java -String keyStr = new String(existingPrivateKey.readAllBytes()); -RSAKey jwk = RSAKey.parse(keyStr); -``` - -Nach dem Einlesen können die verschlüsselten Daten (repräsentiert als Base64URL-kodierter String) mit Hilfe des Schlüssels entschlüsselt werden. Auch hier wird wieder abhängig vom Schlüssel eine entsprechende Klasse für die Entschlüsselung verwendet. - -```java -String encryptedStr = new String(jweString.readAllBytes()); -JWEObject jweObject = JWEObject.parse(encryptedStr); - -jweObject.decrypt(new RSADecrypter(jwk)); -``` - -Abschliessend kann die entschlüsselte Payload weiterverarbeitet oder, wie in diesem Fall, ausgegeben werden. - -```java -System.out.println(jweObject.getPayload().toString()); -``` diff --git a/docs/Detailinformationen/Glossar.md b/docs/Detailinformationen/Glossar.md deleted file mode 100644 index 81f04b2daf88585ac6fc98c6854f6eefe25bdb4e..0000000000000000000000000000000000000000 --- a/docs/Detailinformationen/Glossar.md +++ /dev/null @@ -1,17 +0,0 @@ -# Glossar - -<dl> - <dt>Application</dt> - - <dd>Ein Antrag, der von einem Bürgerserviceportal o. ä. Onlinedienst an den Zustelldienst zur Zustellung übergeben wird</dd> - <dd>Der Antrag besteht hierbei aus Fachdaten bzw. Antragsdaten, optionalen Anhängen und allgemeinen Metadaten.</dd> - <dd>Ein Antrag und alle mit ihm verknüpften Informatioen werden verschlüsselt übertragen.</dd> - - <dt>Destination</dt> - <dd>Eine Destination (Zustellpunkt) ist ein adressierbares Ziel einer Antragsübermittlung, d.h. Zustellpunkte sind spezifische Endpunkte für die Zustellung eines Antrags in der zuständigen Fachanwendung oder virtuellen Poststelle.</dd> - <dd>Zustellpunkte bilden damit indirekt die fachliche Zuständigkeit in der zuständigen Stelle ab.</dd> - - <dt>Document</dt> - <dd>Jegliche Art von Dokument, die als Anhang zu einem Antrag angehängt werden kann.</dd> - -</dl> diff --git a/docs/Detailinformationen/Metadaten.md b/docs/Detailinformationen/Metadaten.md deleted file mode 100644 index 51dc7b9a5e2d176a728b2c7c1303287175cab2bf..0000000000000000000000000000000000000000 --- a/docs/Detailinformationen/Metadaten.md +++ /dev/null @@ -1,202 +0,0 @@ -# Antragsmetadaten - -Die Antragsmetadaten beschreiben die Struktur des Antrags und dessen Inhalte, wie beispielsweise Anhänge oder die Fachdaten. Zustätzlich können weitere Informationen über den/die AntragsstellerInnen hinterlegt werden. Eine genaue Definition ist unter XYZ zu finden bzw. direkt im [Schema](/API_VERSION/antragsmetadaten.schema.json) zu finden. - -Im Folgenden wird nun beschrieben, wie für das Versenden eines Antrags das Schema aufgebaut und befüllt wird, sowie beim Empfangen eines Antrags dieser entschlüsselt und gegen das Schema validiert wird. - -## Prozess: Versenden eines Antrages - -### Anlegen eines neuen Antrags - -Das Anlegen eines neuen Antrags kann über die API getätigt werden. Dafür muss ein HTTP POST Nachricht versendet werden, die definiert, an welchen Zustellpunkt der Antrag versendet werden soll und welche Inhalte übermittelt werden sollen. Die Inhalte umfassen hierbei die Identifikatoren der Anhänge als UUIDs und die Information, ob Fachdaten mit versendet werden oder nicht. - -```text -curl --data '{ "destinationId": "<UUID>", "announcedContentStructure": {} }' -H 'Content-Type: application/json' -H 'X-AnwenderId: <Id>' -X POST <URL>/applications/ -``` - -```text -curl --data '{ "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", "announcedContentStructure": {"data": "false", "attachments": []} }' -H 'Content-Type: application/json' -H 'X-AnwenderId: sender' -X POST localhost:8080/applications/ -> { - "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", - "applicationId": "9d618546-0ff7-4e93-9f15-714e5dd1bf12" -} -``` - -### Definition der Antragsmetadaten - -Das Minimum, was an Antragsmetadaten hinterlegt werden muss, ist eine Beschreibung der Struktur des Antrags, sowie die ID des Antrags selbst. -In der Beschreibung der Struktur muss angegeben werden, ob Fachdaten mit versendet werden und in welchem Format diese sind. Des Weiteren können Anhänge mit ihren Metainformationen beschrieben werden, die dem Antrag beigefügt sind. - -Ein Beispiel hierfür ist unten dargestellt: - -```json -{ - "contentStructure": { - "data": { - "schema": { - "mimeType": "application/json", - "schemaSource": "https://schema.fitko.de/fim/fim.S00000147.00000147001002.json" - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 13046, - "mimeType": "application/pdf", - "filename": "test.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9" - } - } - ] - }, - "applicationId": "ce75a6b8-d72f-4b94-b09e-af6be35bc2ae" -} -``` - -Abhängig von den Rahmenbedingungen können die weiteren Felder, die im Antragsmetadatenschema definiert sind, befüllt werden und mitversendet werden. Ob diese jedoch ausgewertet werden oder nicht hängt von dem entsprechenden Empfänger ab. - -### Verschlüsseln - -Nun wird das JSON-Objekt aus dem vorherigen Schritt verschlüsselt und kann dann im nächsten Schritt mit dem Antrag abgesendet werden. -Die Verschlüsselung eines Objektes mit Hilfe von JWE ist im Bereich "[Verschlüsselte Ãœbertragung](#overview--verschlüsselte-übertragung)" genauer beschrieben und kann dort nachgelesen werden. - -### Versenden des Antrags - -Sobald alle Anhänge eines Antrags hochgeladen sind, kann der Antrag abgesendet werden. Hierfür müssen die verschlüsselten Metadaten und, falls angekündigt, die Fachdaten über eine HTTP POST Nachricht gesendet werden. Ein Beispiel hierfür ist im folgenden Ausschnitt aufgezeigt: - -```text -curl --data '{ "encryptedMetadata": "<jose-String>" }' -H 'Content-Type: application/json' -H 'X-AnwenderId: <Id>' -X POST <URL>/applications/<UUID> -``` - -```text -curl --data '{ "encryptedMetadata": "eyJhbGciOiAiUlNBLU9BRVAiLCAiZW5jIjogIkExMjhDQkMtSFMyNTYifQ.SsLgP2bNKYDYGzHvLYY7rsVEBHSms6_jW-WfglHqD9giJhWwrOwqLZOaoOycsf_EBJCkHq9-vbxRb7WiNdy_C9J0_RnRRBGII6z_G4bVb18bkbJMeZMV6vpUut_iuRWoct_weg_VZ3iR2xMbl-yE8Hnc63pAGJcIwngfZ3sMX8rBeni_koxCc88LhioP8zRQxNkoNpvw-kTCz0xv6SU_zL8p79_-_2zilVyMt76Pc7WV46iI3EWIvP6SG04sguaTzrDXCLp6ykLGaXB7NRFJ5PJ9Lmh5yinAJzCdWQ-4XKKkNPorSiVmRiRSQ4z0S2eo2LtvqJhXCrghKpBNgbtnJQ.Awelp3ryBVpdFhRckQ-KKw.1MyZ-3nky1EFO4UgTB-9C2EHpYh1Z-ij0RbiuuMez70nIH7uqL9hlhskutO0oPjqdpmNc9glSmO9pheMH2DVag.Xccck85XZMvG-fAJ6oDnAw" }' -H 'Content-Type: application/json' -H 'X-AnwenderId: sender' -X POST localhost:8080/applications/9d618546-0ff7-4e93-9f15-714e5dd1bf12 -> { - "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", - "applicationId": "9d618546-0ff7-4e93-9f15-714e5dd1bf12", - "attachments": [], - "currentStatus": "forwarded", - "encryptedMetadata": "eyJhbGciOiAiUlNBLU9BRVAiLCAiZW5jIjogIkExMjhDQkMtSFMyNTYifQ.SsLgP2bNKYDYGzHvLYY7rsVEBHSms6_jW-WfglHqD9giJhWwrOwqLZOaoOycsf_EBJCkHq9-vbxRb7WiNdy_C9J0_RnRRBGII6z_G4bVb18bkbJMeZMV6vpUut_iuRWoct_weg_VZ3iR2xMbl-yE8Hnc63pAGJcIwngfZ3sMX8rBeni_koxCc88LhioP8zRQxNkoNpvw-kTCz0xv6SU_zL8p79_-_2zilVyMt76Pc7WV46iI3EWIvP6SG04sguaTzrDXCLp6ykLGaXB7NRFJ5PJ9Lmh5yinAJzCdWQ-4XKKkNPorSiVmRiRSQ4z0S2eo2LtvqJhXCrghKpBNgbtnJQ.Awelp3ryBVpdFhRckQ-KKw.1MyZ-3nky1EFO4UgTB-9C2EHpYh1Z-ij0RbiuuMez70nIH7uqL9hlhskutO0oPjqdpmNc9glSmO9pheMH2DVag.Xccck85XZMvG-fAJ6oDnAw", - "encryptedData": null, - "statusHistory": [ - { - "sourceState": "queued", - "targetState": "forwarded", - "details": "Callback von Destination 7a2668ad-3081-407c-9358-7ce4b6144b02 ausgelöst.", - "timestamp": "2021-05-26T09:12:59.68968+02:00" - }, - { - "sourceState": "incomplete", - "targetState": "queued", - "details": "Antrag versendet durch sender", - "timestamp": "2021-05-26T09:12:58.728397+02:00" - } - ], - "announcedContentStructure": { - "data": false, - "attachments": [] - } -} -``` - -## Prozess: Empfangen und verarbeiten eines Antrags - -### Abfragen des Antrags - -Wenn ein neuer Antrag bereitsteht, kann dieser über mehrere Befehle heruntergeladen werden. Mehrere dahingehend, da erst alle allgemeinen Informationen zum Antrag heruntergeladen werden müssen und dann, falls notwendig alle mit ihm verbundenen Anhänge. - -```text -curl -H 'X-AnwenderId: <Id>' -X GET <URL>/applications/<UUID> - -# Falls ein Antrag noch entsprechend Anhänge besitzt, können diese über folgenden Befehl heruntergeladen werden: -curl -H 'X-AnwenderId: <Id>' -X GET <URL>/applications/<UUID>/attachments/<UUID> -``` - -```text -curl -H 'X-AnwenderId: subscriber' -X GET localhost:8080/applications/9d618546-0ff7-4e93-9f15-714e5dd1bf12 -> { - "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", - "applicationId": "9d618546-0ff7-4e93-9f15-714e5dd1bf12", - "attachments": [], - "currentStatus": "forwarded", - "encryptedMetadata": "eyJhbGciOiAiUlNBLU9BRVAiLCAiZW5jIjogIkExMjhDQkMtSFMyNTYifQ.SsLgP2bNKYDYGzHvLYY7rsVEBHSms6_jW-WfglHqD9giJhWwrOwqLZOaoOycsf_EBJCkHq9-vbxRb7WiNdy_C9J0_RnRRBGII6z_G4bVb18bkbJMeZMV6vpUut_iuRWoct_weg_VZ3iR2xMbl-yE8Hnc63pAGJcIwngfZ3sMX8rBeni_koxCc88LhioP8zRQxNkoNpvw-kTCz0xv6SU_zL8p79_-_2zilVyMt76Pc7WV46iI3EWIvP6SG04sguaTzrDXCLp6ykLGaXB7NRFJ5PJ9Lmh5yinAJzCdWQ-4XKKkNPorSiVmRiRSQ4z0S2eo2LtvqJhXCrghKpBNgbtnJQ.Awelp3ryBVpdFhRckQ-KKw.1MyZ-3nky1EFO4UgTB-9C2EHpYh1Z-ij0RbiuuMez70nIH7uqL9hlhskutO0oPjqdpmNc9glSmO9pheMH2DVag.Xccck85XZMvG-fAJ6oDnAw", - "encryptedData": null, - "statusHistory": [ - { - "sourceState": "queued", - "targetState": "forwarded", - "details": "Callback von Destination 7a2668ad-3081-407c-9358-7ce4b6144b02 ausgelöst.", - "timestamp": "2021-05-26T09:12:59.68968+02:00" - }, - { - "sourceState": "incomplete", - "targetState": "queued", - "details": "Antrag versendet durch sender", - "timestamp": "2021-05-26T09:12:58.728397+02:00" - } - ], - "announcedContentStructure": { - "data": false, - "attachments": [] - } -} -``` - -### Entschlüsseln - -Um den Antrag korrekt verarbeiten und überprüfen zu können müssen zuerst alle verschlüsselten Informationen entschlüsselt werden. Darunter fallen beispielsweise die Antragsmetadaten, die Fachdaten (falls vorhanden) oder Dokumente (falls vorhanden). - -Die Entschlüsselung eines solchen Objektes mit Hilfe von JWE ist im Bereich "[Verschlüsselte Ãœbertragung](#overview--verschlüsselte-übertragung)" genauer beschrieben und kann dort nachgelesen werden. - -### Validierung der Antragsmetadaten - -Das Minimum, was an Information vorhanden sein muss sind die Felder `contentStructure` und `applicationId`. Zustäzlich können je nach Anwendungsfall oder Notwendigkeit weitere Felder auf Existenz überprüft werden. Die gültigen Formate sind im Schema definiert und können mit Hilfe von Bibliotheken für die Validierung einer Instanz von Antragsmetadaten verwendet werden. Beispiele für die Definition von Formaten für Felder sind unten aufgeführt. - -```json -{ - ... - "country": { - "type": "string", - "description": "Staat gemäß Codeliste [https://www.xrepository.de/details/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:staat](Codeliste Staat aus der Staats- und Gebietssystematik des Statistischen Bundesamtes)", - "minLength": 3, - "maxLength": 3, - "pattern": "^[0-9]{3}$" - }, - ... - "postalCode": { - "type": "string", - "description": "Postleitzahl", - "minLength": 5, - "maxLength": 5, - "pattern": "^([0]{1}[1-9]{1}|[1-9]{1}[0-9]{1})[0-9]{3}$" - }, - ... - "applicationId": { - "type": "string", - "format": "uuid", - "pattern": "^[-_.A-Za-z0-9]+$", - "description": "ID des Antrags" - }, - ... -} -``` - -### Verarbeiten des Antrags - -Nachdem nun der Antrag vollständig heruntergeladen wurde und validiert wurde, sollte dieser entsprechend bestätigt werden. Dies muss über ein HTTP PUT, wie unten aufgezeigt, durchgeführt werden. - -```text -curl -H 'X-AnwenderId: <Id>' -X PUT <URL>/applications/<UUID> -``` - -```text -curl -H 'X-AnwenderId: subscriber' -X PUT localhost:8080/applications/9d618546-0ff7-4e93-9f15-714e5dd1bf12 -> {} -``` diff --git a/docs/Detailinformationen/Postman.md b/docs/Detailinformationen/Postman.md deleted file mode 100644 index 3a32dfeb37fd6bba848fd8ab4cef74922fec0bf5..0000000000000000000000000000000000000000 --- a/docs/Detailinformationen/Postman.md +++ /dev/null @@ -1,22 +0,0 @@ -# Testen mit Postman - -Für Tests kann auch SoapUI oder jeder andere REST Client mit OAuth 2.0 Unterstützung eingesetzt werden. -Unter diesen beiden Adressen können Sie eine Postman Collection und eine Postman Environment herunterladen: -- [Collection](https://raw.githubusercontent.com/fiep-poc/assets/master/postman/FIT-Connect.postman_collection.json) -- [Environment](https://raw.githubusercontent.com/fiep-poc/assets/master/postman/FIT-Connect.postman_environment.json) - -## API Aufruf mit Postman OAuth 2.0 Konfiguration - -Mit diesen Angaben können Sie das API z.B. via Postman nutzen. Dazu wählen sie zunächst den Bereich "Authorization" aus. Danach kann der Button "Get New Access Token" genutzt werden. - - - - - - - -Mit diesem Token kann das API erfolgreich aufgerufen werden. - - - -In diesem Beispiel wurde eine neue Destination angelegt. diff --git a/docs/_Overview.md b/docs/_Overview.md deleted file mode 100644 index e6f452f6b750f2e2149fc11a54065c5784243ac9..0000000000000000000000000000000000000000 --- a/docs/_Overview.md +++ /dev/null @@ -1,50 +0,0 @@ -# Ãœberblick über die XFall API -Willkommen auf der API Dokumentation für die XFall REST API von FIT-Connect. Die XFall API baut auf dem bestehenden IT-Planungsrat Standard XFall auf und bietet Lösungsverantwortlichen von antragssendenden und antragsempfangenden Systemen eine einfache Möglichkeit, ihre Software schnell und wirtschaftlich in länder- und ebenenübergreifende Antragsprozesse zu integrieren. - -## Was ist die XFall API und was unterscheidet diese API vom bisherigen XFall Standard? -Die XFall API baut auf den bisherigen Konzepten und Erfahrungen des bestehenden IT-Planungsrats Standards XFall auf. - -> Die übergreifende Zielstellung des Standards XFall besteht darin, Anträge und Berichte, die aus vorgelagerten Systemen (bspw. Onlineantragsdienste, Fachportale oder Berichtssysteme) erstellt werden, in die unterschiedlichen Systeme der elektronischen Verfahrensbearbeitung (bspw. Fachverfahren, Dokumentenmanagementsystem oder Prozessplattformen) zu übergeben. - -Bei der Entwicklung der XFall API wurden viele Konzepte mit Hinblick auf die neuen Erfordernisse des Onlinezugangsgesetzes, der SDG-Verordnung sowie den Anforderungen digitaler Geschäftsmodelle weiterentwickelt. Technisch nutzt die XFall API auf einen leichtgewichtigen RESTful-Architekturstil und baut auf der föderalen Antragsübertragungsarchitektur von FIT-Connect auf. - -## Was macht die XFall API und wie kann diese genutzt werden? -Die XFall API besteht aus zwei getrennt nutzbaren APIs: - -- Für antragsempfangende Systeme wird eine `Application Subscriber API` für den Empfang von Anträgen sowie eine `Callback` / Webhook Funktion für die technische Benachrichtigung über vorliegende Anträge angeboten. -- Für antragssendende Systeme wird eine `Application Sender API` angeboten, um an beliebige antragsempfangende Systeme Anträge zu senden, die sich mit einem Zustellpunkt registriert haben. - -Diese beiden APIs werden durch einen zentralen Intermediär (`XFall Zustelldienst`) bereitgestellt. Um auf diese APIs zuzugreifen, müssen interessierte Entwickler ihre Anwendungen beim FIT-Connect Autorisierungsdienst vorab registrieren. - -### Zusammenspiel der APIs in der Antragsübermittlung - - -Ãœber die `Application Subscriber API` können die zuständigen Stellen für ihre Systeme einen Zustellpunkt eröffnen, der über eine `destination-Id` eindeutig adressierbar ist. Für diese Zustellpunkte legen die zuständigen Stellen alle fachlichen Vorgaben (Zulässige Fachstandards, Verschlüsselung, Datenformate etc.) fest, damit eine medienbruchfreie Weiterverarbeitung in ihren Systemen gewährleistet ist. Ãœber die Angabe der `destination-Id` in der `Application Sender API` können beliebige antragssendende Systemen Anträge an die zuständige Stelle senden. - -Dieser Zustellpunkt ist jedoch vorab für eine Verwaltungsleistung und den jeweiligen örtlichen Antragskontext (bspw. Ort der Antragsstellung) korrekt zu ermitteln. Damit die Ermittlung des korrekten Zustellpunkts skalierbar für das ganze Bundesgebiet funktioniert, ist langfristig vorgesehen, die `destination-Id` in den Leistungs- und Zuständigkeitsinformationen des jeweils bekannten Zuständigkeitsfinders zu hinterlegen. Diese dezentral gepflegten Informationen sollen durch das Online-Gateway (<https://www.onlinezugangsgesetz.de/Webs/OZG/DE/umsetzung/portalverbund/online-gateway/online-gateway-node.html>) gebündelt und über eine offene API im XZuFi Format (<https://www.xrepository.de/details/urn:xoev-de:fim:standard:xzufi>) nutzbar gemacht werden. - - - -## Für wen ist die XFall API gedacht und warum sollte ich sie nutzen? -Die XFall API ist für alle Hersteller, Entwickler und Verfahrensverantwortliche von antragssendenden und antragsempfangenden Systemen gedacht. Insbesondere folgende Systeme mit bundesweiten Nutzungsszenarien sollen mit der XFall API unterstützt werden: - -- **Einer für alle (EfA) Verfahren**: Länderübergreifend entwickelte Antragsverfahren für eine bestimmte Verwaltungsleistung oder ein Leistungsbündel, die entweder in verschiedenen Ländern nachnutzbar betrieben werden oder länderübergreifend als gemeinsamer Antragsdienst für alle zuständigen Stellen betrieben werden. -- **Antragsgeneratoren / Antragsmanagementsysteme**: Standardsoftware zur Erstellung und dem Betrieb von direkt nutzbaren Onlineantragsdiensten, die im ganzen Bundesgebiet bei einzelnen Stellen oder Gebietskörperschaften (bspw. als Basiskomponente) im Einsatz sind. -- **Als Standardsoftware bereitgestellte Fachverfahrenssoftware, Prozessplattformen oder Dokumentenmanagementsysteme**: Bundesweit angebotene und eingesetzte Standardsoftware, die von den zuständigen Stellen für die Antragsbearbeitung eingesetzt wird. - -Für diese Systeme bietet die XFall bei der schnellen und wirtschaftlichen Realisierung medienbruchfreier Antragsprozesse eine Reihe von Mehrwerten: - -- **Plug and Play Anbindung an die föderale Antragsübermittlung**: Durch die zentral bereitgestellten APIs und die Nutzung der bestehenden Zuständigkeitsfinderinfrastruktur können Systeme schnell an eine föderale Antragsübermittlungsinfrastruktur angebunden werden, ohne eigene Infrastrukturen hierfür zu beauftragen oder aufzubauen. -- **Leichgewichtige APIs und Industriestandards**: Die XFall API baut auf leichgewichtigen RESTful API Ansätzen auf und nutzt verbreitete Industriestandards wie die OpenAPI Specification und OAuth 2.0, sodass kein spezialisiertes Know-How und spezifische Softwarekomponenten für die Anbindung erforderlich sind. -- **Flexibilität in der Antragsübermittlung**: Die XFall API verbindet Flexibilität und Standardisierung. Während die XFall API eine einheitliche Metadatenstruktur festlegt, um Anträge strukturiert zu verarbeiten, können beliebige Fachstandards und Anhänge übertragen werden. Auch die Ãœbertragung von Anträgen im PDF Format ist möglich, solange für die Antragsdaten noch kein FIM Schema vorhanden ist. -**Nutzung bestehender Prozesse und Strukturen für die Pflege von Adressierungsinformationen**: Langjährig erprobte Prozesse und Strukturen zur Pflege der Zuständigkeitsinformationen, können in den zuständigen Stellen beibehalten werden. Technische Adressierungsparameter der XFall API werden über die gleichen Systeme und Prozesse gepflegt, die schon heute bei Informationen zu Anschriften, Rufnummern, E-Mail-Adressen oder Ansprechpartnern genutzt werden. -- **Machine2Machine Ready**: Die XFall API und die FIT-Connect Antragsübertragungsarchitektur sind von Grund auf als offene API-Plattform konzipiert. Dadurch können auch verwaltungsexterne Antrags- und Berichtssysteme wie Drittsoftware oder Unternehmenssysteme direkt eingebunden werden, ohne das hierfür eine gesonderte Infrastruktur notwendig ist. - -### Ist die XFall API nur für länder- und behördenübergreifende Antragskontexte gedacht? -Durch die einfache Anbindung und Nutzung bietet sich die XFall API auch dort an, wo das behördeneigene Antragsverfahren mit dem behördeneigenen Fachverfahren verbunden wird. Durch die Nutzung der XFall API werden diese Systeme standardisiert verbunden, ohne das die Behörde in Abhängigkeiten zu proprietären Technologien und Schnittstellen gerät. Dies ermöglicht es der Behörde, ihre Systeme auf beiden Seiten flexibel auszutauschen und weiterzuentwickeln, um somit auf neue technische Trends und Möglichkeit schnell zu reagieren. - -## In welchem Stand befindet sich XFall REST API und wann kann man die API nutzen? -Die Entwicklung und Bereitstellung der XFall REST API erfolgt im Rahmen eines Proof of Concepts für die geplante föderale Integrations- und Entwicklungsplattform FIT-Connect. Seit dem zweiten Quartal 2020 ist es interessierten Parteien möglich, einen Zugang zur XFall API zu bekommen und eine prototypische Anbindung von Verfahren umzusetzen. - -## Ich habe einen Fehler in der Dokumentation oder in der API-Spezifikation gefunden. Wo kann ich diesen melden? -Vielen Dank für das Interesse an unserer Entwickler:innendokumentation! Wir freuen uns immer über Feedback und Anregungen über unser Funktionspostfach fit-connect ät fitko.de. Zudem können wir bei Interesse gerne einen Zugang zu unserem GitLab zur Eröffnung von Issues oder Einreichung von Merge-Requests einrichten. diff --git a/docs/account.md b/docs/account.md new file mode 100644 index 0000000000000000000000000000000000000000..a6c9a1b4b1f7c95998eab8d1d4c6b83714b58ce5 --- /dev/null +++ b/docs/account.md @@ -0,0 +1,3 @@ +# 🚧 Accountregistrierung und Client-Verwaltung + +- Doku zur Nutzung von OAuth und ggf. Nutzung des Self-Service-Portals bzw. Kontaktmöglichkeiten diff --git a/docs/apis/application-metadata.mdx b/docs/apis/application-metadata.mdx new file mode 100644 index 0000000000000000000000000000000000000000..f7e9c39b605e1823846ac93015ac5e7bcbfbfcf4 --- /dev/null +++ b/docs/apis/application-metadata.mdx @@ -0,0 +1,8 @@ +--- +title: 🚧 Metadatenschema +hide_table_of_contents: true +--- + +:::caution Hinweis +Der aktuelle Artikel ist noch in Bearbeitung. :construction: +::: diff --git a/docs/apis/delivery-service.mdx b/docs/apis/delivery-service.mdx new file mode 100644 index 0000000000000000000000000000000000000000..40994d0223e4829bb1f7962644207fdc23f817ff --- /dev/null +++ b/docs/apis/delivery-service.mdx @@ -0,0 +1,11 @@ +--- +title: Zustelldienst-API +hide_table_of_contents: true +--- + +import ApiSpec from '@site/src/components/ApiSpec' +import VersionDisplay from '@site/src/components/VersionDisplay' + +Die aktuell ausgewählte Version der API ist <VersionDisplay artifact={"zustelldienst.yml"}/>. + +<ApiSpec specUrl="https://fitko.uber.space/v1.0.0-alpha16/zustelldienst.yml"/> diff --git a/docs/Detailinformationen/Authentifizierung_von_antragsempfangenden_Systemen.md b/docs/details/authentication/applications.md similarity index 65% rename from docs/Detailinformationen/Authentifizierung_von_antragsempfangenden_Systemen.md rename to docs/details/authentication/applications.md index 5391130e932f32be4253a2cdc7d8af5bb211a42f..e4cc8a7ff3de6ce92ab5d3abbcb284dfdeeb67bd 100644 --- a/docs/Detailinformationen/Authentifizierung_von_antragsempfangenden_Systemen.md +++ b/docs/details/authentication/applications.md @@ -1,7 +1,8 @@ -# Authentifizierung von antragsempfangenden Systemen -Die Authentifizierung von antragsempfangenden Systemen erfolgt bei FIT-Connect auf Basis von OAuth 2.0 Client Credentials gemäß [RFC 6749](https://tools.ietf.org/html/rfc6749) und Access Tokens auf Basis von JSON Web Tokens gemäß [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519). Zum Abruf von Anträgen müssen sich antragsempfangende Systeme mit Hilfe von OAuth 2.0 Client-Credentials beim Authorisierungsdienst authentifizieren. Die hierfür nötigen Client erhalten Behörden und andere Abrufberechtigte, nach einer Anmeldung im Self-Service-Portal der FITKO. (TODO: link) +# Authentifizierung von empfangenden Systemen -Zum Abruf von Anträgen müssen sich antragsempfangende Systeme zunächst mithilfe der OAuth Client-Credentials beim OAuth-Server ein Berechtigungstoken (im Folgenden "Subscriber-Token") nach dem Standard JSON Web Token gemäß [RFC 7519](https://tools.ietf.org/html/rfc7519) abrufen. Dieser vom OAuth-Server signierte Subscriber-Token kann anschließend genutzt werden, um sich gegenüber der Antrags-API eines Zustelldienstes zu authentifizieren. +Die Authentifizierung von empfangenden Systemen erfolgt bei FIT-Connect auf Basis von OAuth 2.0 Client Credentials gemäß [RFC 6749](https://tools.ietf.org/html/rfc6749) und Access Tokens auf Basis von JSON Web Tokens gemäß [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519). Zum Abruf von Anträgen müssen sich empfangende Systeme mit Hilfe von OAuth 2.0 Client-Credentials beim Authorisierungsdienst authentifizieren. Die hierfür nötigen Client erhalten Behörden und andere Abrufberechtigte, nach einer Anmeldung im Self-Service-Portal der FITKO. (TODO: link) + +Zum Abruf von Anträgen müssen sich empfangende Systeme zunächst mithilfe der OAuth Client-Credentials beim OAuth-Server ein Berechtigungstoken (im Folgenden "Subscriber-Token") nach dem Standard JSON Web Token gemäß [RFC 7519](https://tools.ietf.org/html/rfc7519) abrufen. Dieser vom OAuth-Server signierte Subscriber-Token kann anschließend genutzt werden, um sich gegenüber der Antrags-API eines Zustelldienstes zu authentifizieren. Für jede Destination müssen folgende Informationen im Self-Service-Portal bereitgestellt werden @@ -16,27 +17,28 @@ Oder: Außerdem - Der Public Key zur Verschlüsselung der Antragsdaten -- Der Public Key des antragsempfangenden Systems zur Signaturprüfung -- Callback-Endpunkte des antragsempfangenden Systems +- Der Public Key des empfangenden Systems zur Signaturprüfung +- Callback-Endpunkte des empfangenden Systems - Referenzen zu allen von diesem Endpunkt unterstützen Schemas -Bei erfolgreicher Registrierung erhält die für den Zustellpunkt verantwortliche Behörde OAuth2-Zugangsdaten für den Authentifizierungstyp "Client-Credentials" (`client_id` und `client_secret`). Mit diesen kann sich das antragsempfangende System beim Authentifizuerungsdienst authentifizieren und erhält einen Access Token im JSON Web Token-Format (JWT). Mit diesem Access Token ist anschließend ein Abruf der im Zustelldienst hinterlegten Anträge möglich. - -<img src="../../assets/images/oauth/JWT-Konzept-Fachanwendung.png" alt="JWT Konzept" width="400"/> +Bei erfolgreicher Registrierung erhält die für den Zustellpunkt verantwortliche Behörde OAuth2-Zugangsdaten für den Authentifizierungstyp "Client-Credentials" (`client_id` und `client_secret`). Mit diesen kann sich das empfangende System beim Authentifizuerungsdienst authentifizieren und erhält einen Access Token im JSON Web Token-Format (JWT). Mit diesem Access Token ist anschließend ein Abruf der im Zustelldienst hinterlegten Anträge möglich. +<img src="/images/oauth/JWT-Konzept-Fachanwendung.png" alt="JWT Konzept" width="400"/> ## Zugriff auf die Antrags-API mittels Access Token -Der Access Token für antragsempfangende Systeme muss beim Zugriff auf die Antrags-API via HTTP-Header an den Zustelldienst übermittelt werden. + +Der Access Token für empfangende Systeme muss beim Zugriff auf die Antrags-API via HTTP-Header an den Zustelldienst übermittelt werden. **Beispiel** + ```http POST /applications HTTP/1.1 Host: api.zustelldienst-01.example.com Token: XXX ``` +### Payload des Access Tokens für empfangende Systeme -### Payload des Access Tokens für antragsempfangende Systeme Im Payload des signierten Access Token MÃœSSEN mindestens die folgenden [standartisierten Felder](https://www.iana.org/assignments/jwt/jwt.xhtml) gesetzt sein: | Feld | Inhalt | **Erläuterung** | @@ -44,13 +46,14 @@ Im Payload des signierten Access Token MÃœSSEN mindestens die folgenden [standar | `iat` | Unix Timestamp | Zeitpunkt, wann der Token vom Autorisierungsdienst ausgestellt wurde, als Unix Timestamp | | `exp` | Unix Timestamp | Zeitpunkt, wann der Token abläuft, als Unix Timestamp (Token DARF max. 2 Stunden gültig sein; vgl. [BSI APP.3.1](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/Kompendium_Einzel_PDFs/06_APP_Anwendungen/APP_3_1_Webanwendungen_Edition_2020.pdf?__blob=publicationFile&v=1)) | | `iss` (Issuer) | *URL des Authentifizierungsservers* | Die URL des Authentifizierungsservers, der das Token ausgestellt hat. | -| `sub` (Subject) | ID des antragsempfangenden Systems | Wird bei der Anmeldung des antragsempfangenden Systems durch den Authorisierungsdienst festgelegt und dient zur Identifizierung des antragsempfangenden Systems. | +| `sub` (Subject) | ID des empfangenden Systems | Wird bei der Anmeldung des empfangenden Systems durch den Authorisierungsdienst festgelegt und dient zur Identifizierung des empfangenden Systems. | | `jti` (JWT ID) | *UUID des Tokens* | Eindeutige ID des ausgestellten Tokens. | | `aud` (Audience) | *URL der Zustelldienst-API* | Die URL der API des Zustelldienstes, für den der Token ausgestellt wurde, gemäß [RFC 7519, Abschnitt 4.1.3](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3). | | `scope` | *Liste von Zustellberechtigungs-Scopes* | Eine Liste der Zustellberechtigungs-Scopes, für die der Token einen Abruf von Anträgen erlaubt (Präfix `destination:subscribe`), separiert mit Leerzeichen gemäß [RFC 6749, Abschnitt 3.3](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3) | -| `token_type` | `subscriber` | Gibt an, das es sich um einen Token für ein antragsempfangendes System handelt | +| `token_type` | `subscriber` | Gibt an, das es sich um einen Token für ein empfangendes System handelt | **Beispiel-Payload eines Access Tokens mit Token-Typ `subscriber`** + ```json { "iat": "1620072619", @@ -63,9 +66,10 @@ Im Payload des signierten Access Token MÃœSSEN mindestens die folgenden [standar } ``` - ## Kryptographische Vorgaben + ### Kryptographische Vorgaben für JSON Web Tokens + Alle generierten JWT-Tokens MÃœSSEN den Vogaben aus [RFC 7519](https://tools.ietf.org/html/rfc7519) entsprechen und über folgende Header-Attribute verfügen: | Feld | Inhalt | **Erläuterung** | @@ -74,6 +78,7 @@ Alle generierten JWT-Tokens MÃœSSEN den Vogaben aus [RFC 7519](https://tools.iet | `alg` | `PS512` | Zur Signaturerstellung wird der Signaturalgorithmus RSASSA-PSS mit SHA-512 und MGF1 mit SHA-512 verwendet. | **Beispiel** + ```json { "typ": "JWT", @@ -82,10 +87,11 @@ Alle generierten JWT-Tokens MÃœSSEN den Vogaben aus [RFC 7519](https://tools.iet ``` ## Validierung der JWT-Tokens durch den Zustelldienst + Beim Abruf am Zustelldienst muss dieser bzw. das API-Gateway überprüfen, ob der JWT-Token valide ist. Dafür sollten mindestes folgende Ãœberprüfungen durchgeführt werden: 1. Ãœberprüfen, ob es sich um einen JWT mit einer **RSASSA-PSS (PS512)** Signatur handelt. 2. Ãœberprüfen, ob der JWT noch gültig ist. 3. Ãœberprüfen, ob der JWT für max. 2h ausgestellt wurde. -3. Mithilfe des Public Keys des Authentifizierungsservers überprüfen, ob die Signatur des JWT gültig ist. -4. Ãœberprüfen, ob die Destination-ID, die abgerufen werden soll, in den Zustellberechtigungs-Scopes des JWT enthalten ist (*scope* Parameter des JWT). +4. Mithilfe des Public Keys des Authentifizierungsservers überprüfen, ob die Signatur des JWT gültig ist. +5. Ãœberprüfen, ob die Destination-ID, die abgerufen werden soll, in den Zustellberechtigungs-Scopes des JWT enthalten ist (*scope* Parameter des JWT). diff --git a/docs/Detailinformationen/OAuth.md b/docs/details/authentication/cli.md similarity index 80% rename from docs/Detailinformationen/OAuth.md rename to docs/details/authentication/cli.md index fb698d7156d0ebbeb7a2a2744408350612349ef5..e20d32264d66a1c8dee98463baea1ce33e985e6e 100644 --- a/docs/Detailinformationen/OAuth.md +++ b/docs/details/authentication/cli.md @@ -1,6 +1,8 @@ -# OAuth Authentifizierung +# Developer-CLI -Das folgende Dokument beschreibt wie die OAuth-basierte Authentifizierung mithilfe des FIT-Connect Commandline-Tools funktioniert. Dafür werden entweder OAuth-Credentials (Client-ID, Client-Secret) sowie die Adresse des OAuth-Token-Endpunktes oder ein Zugang zum FIT-Connect Developer Portal benötigt. Weitere Informationen dazu wie die OAuth-Authentifizierung selbst implementiert werden kann befinden sich in [Authentifizierung von Fachanwendungen](Authentifizierung_von_Fachanwendungen.md) und [Authentifizierung von Usern an Zustelldiensten](Authentifizierung_von_Usern.md) - außerdem ist hier das Konzept zu [Zustellberechtiungs-Scopes](Zustellberechtigungs-Scopes.md) zu beachten. +Im Folgenden wird beschrieben, wie die OAuth-basierte Authentifizierung mithilfe des FIT-Connect Commandline-Tools funktioniert. +Dafür werden entweder OAuth-Credentials (Client-ID, Client-Secret) sowie die Adresse des OAuth-Token-Endpunktes oder ein Zugang zum FIT-Connect Developer Portal benötigt. +Weitere Informationen dazu wie die OAuth-Authentifizierung selbst implementiert werden kann befinden sich in [Authentifizierung von Fachanwendungen](applications) und [Authentifizierung von Usern an Zustelldiensten](users) - außerdem ist hier das Konzept zu [Zustellberechtiungs-Scopes](scopes) zu beachten. ## Installation CLI-Tool @@ -13,13 +15,13 @@ pip install fitconnect-cli Nach der Installation von fitconnect-cli kann mithilfe des folgenden Kommandos eine neue FIT-Connect API-Konfiguration angelegt werden. ```bash - fitconnect create_config --config=test_sender.json + fitconnect create_config --config=test_sender.json ``` Hierbei muss ausgewählt werden, ob ein Sende- oder Empfangsdienst betrieben werden und ob automatisch RSA-Keys für die Generierung von JWTs angelegt werden sollen. ```bash - fitconnect create_config --config=test_sender.json + fitconnect create_config --config=test_sender.json ? Do you want to setup a config for a sender (e.g. onlineservice) or receiver? sender ? Oauth Token URL: https://fit-connect.de/oauth/token ? Client id: nnXVC6DSPG9BkoMw5NXOur4RPOkEpLMMwYFbycIo @@ -49,13 +51,13 @@ Mithilfe der fitconnect-cli können JWTs zum Abrufen von bzw. Versenden von Antr ### Abrufen von JWTs für antragssendene Systeme (Onlineservices) -Für die Generierung von JWTs zum Versenden von Anträgen muss neben der Konfiguration außerdem über den Parameter *destination* angegeben werden, an welche Destination-IDs Anträge gesendet werden sollen. +Für die Generierung von JWTs zum Versenden von Anträgen muss neben der Konfiguration außerdem über den Parameter *destination* angegeben werden, an welche Destination-IDs Anträge gesendet werden sollen. ```bash fitconnect get_jwt --config=test_sender.json --destination "d771f1d8-6967-4740-9668-82c5a910a29b" ``` -Bei erfolgreicher Generierung erhält man ein JSON-Objekt mit einem User-Token und einen Online-Service-Token zurück. Diese können dann dazu verwendet werden um mithilfe eines FIT-Connect-API-Client oder CURL einen Antrag versenden. +Bei erfolgreicher Generierung erhält man ein JSON-Objekt mit einem User-Token und einen Online-Service-Token zurück. Diese können dann dazu verwendet werden um mithilfe eines FIT-Connect-API-Client oder CURL einen Einreichung versenden. ```json { @@ -86,7 +88,7 @@ Der dekodierte Inhalt eines Online-Service-Tokens sieht z.B. so aus: } ``` -Und der eines Tokens so: +Und der eines User-Tokens so: ```json { @@ -107,12 +109,12 @@ Ein CURL-Request um dann mit diesen Tokens auf die API zuzugreifen, könnte z.B. curl -i -H "Accept: application/json" -H "Content-Type: application/json" -H "token: ...token..." -H "online-service-token: ...online-service-token..." https://fit-connect-url.einfügen ``` -### Abrufen von JWTs für antragsempfangende Systeme (Fachverfahren / virtuelle Poststellen +### Abrufen von JWTs für empfangende Systeme (Fachverfahren / virtuelle Poststellen) Wenn ein JWT zum Abrufen von Anträgen generiert werden soll, kann auf den Parameter destination verzichtet werden. ```bash -fitconnect get_jwt --config=test_receiver.json +fitconnect get_jwt --config=test_receiver.json ``` Als Antwort erhält man einen (vom Authentifizierungsserver via OAuth Client Credentials abgerufenen) JWT, welchen man zur Authentifizierung beim Abrufen von Anträgen verwenden kann. diff --git a/docs/Detailinformationen/Zustellberechtigungs-Scopes.md b/docs/details/authentication/scopes.md similarity index 97% rename from docs/Detailinformationen/Zustellberechtigungs-Scopes.md rename to docs/details/authentication/scopes.md index 68cf573fcf87f01ac22106c4d69f10b802d4421d..df3fbc56b1f2cf3d19bbd9931820046c9ad3262e 100644 --- a/docs/Detailinformationen/Zustellberechtigungs-Scopes.md +++ b/docs/details/authentication/scopes.md @@ -1,6 +1,6 @@ # Zustellberechtigungs-Scope -Die Zustellberechtigungs-Scopes erlauben dem Zustelldienst festzustellen, ob ein dort eingesendeter Antrag vom Versender an eine Destination übermittelt werden darf. +Die Zustellberechtigungs-Scopes erlauben dem Zustelldienst festzustellen, ob ein dort eingesendeter Einreichung vom Versender an eine Destination übermittelt werden darf. ## Zusammensetzung der Zustellberechtigungs-Scopes diff --git a/docs/Detailinformationen/Authentifizierung_von_antragssendenden_Systemen.md b/docs/details/authentication/users.md similarity index 93% rename from docs/Detailinformationen/Authentifizierung_von_antragssendenden_Systemen.md rename to docs/details/authentication/users.md index c908381cbd261b96c7c74bd96fea78e2700858d9..97602ab0a57479616e11433d65dd502f483c3a9b 100644 --- a/docs/Detailinformationen/Authentifizierung_von_antragssendenden_Systemen.md +++ b/docs/details/authentication/users.md @@ -1,23 +1,27 @@ # Authentifizierung von antragssendenden Systemen + Treten die Schlüsselwörter "MUSS"/"MÃœSSEN", "DARF NICHT"/"DÃœRFEN NICHT", "SOLLTE"/"SOLLTEN", "SOLLTE NICHT"/"SOLLTEN NICHT" und "KANN"/"KÖNNEN" in Großbuchstaben auf, handelt es sich um Implementierungsvorgaben, die entsprechen den Begriffen "MUST", "MUST NOT", "SHOULD", "SHOULD NOT" und "MAY" gemäß [RFC 2119](https://tools.ietf.org/html/rfc2119) zu interpretieren sind. Die Authentifizierung von antragssendenden Systemen erfolgt bei FIT-Connect auf Basis von OAuth 2.0 Client Credentials gemäß [RFC 6749](https://tools.ietf.org/html/rfc6749) und Access Tokens auf Basis von JSON Web Tokens gemäß [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519). Im Folgenden sollen die nötigen Schritte zur Registrierung und zum Zugriff auf die Schnittstelle des FIT-Connect Zustelldienstes beschrieben werden. Dieses Dokument dokumentiert die implementierten Authentifizierungsmechanismen und macht Vorgaben zur Implementierung der Authentifizierung von antragssendenden Systemen. Bei der Umsetzung der Authentifizierung kann darüber hinaus auf das vom Projekt FIT-Connect bereitgestellte Software Development Kit (SDK) zurückgegriffen werden, dass die Vorgaben aus diesem Dokument umsetzt bzw. bei deren Umsetzung unterstützt. -<img src="../../assets/images/oauth/JWT_konzept.png" alt="Grafik: JWT Konzept" width="400"/> +<img src="/images/oauth/JWT_konzept.png" alt="Grafik: JWT Konzept" width="400"/> ## Schritt 1: Registrierung + Jedes antragssendende System (z.B. ein Online-Antragsservice) muss bei FIT-Connect als API-Client registriert sein, um über FIT-Connect Anträge einreichen zu können. Bei der Registrierung eines antragssendenden Systems wird festgelegt, welche Anträge das System über welche Domains ausspielen darf. Vor der Registrierung eines antragssendenden Systems muss zunächst ein kryptographisches Schlüsselpaar durch das antragssendende System erzeugt werden (im Folgenden: Onlineservice-Schlüsselpaar). Der öffentliche Schlüssel (Public Key) dieses Schlüsselpaares wird anschließend bei der Registrierung im Self-Service-Portal hinterlegt. Zur Generierung des Schlüsselpaares kann auf das bereitgestellte [Kommandozeilentool zurückgegriffen werden](https://pypi.org/project/fitconnect-cli/). Bei erfolgreicher Registrierung erhält jedes antragssendende System OAuth2-Zugangsdaten für den Authentifizierungstyp "Client-Credentials" (`client_id` und `client_secret`). Bei der Registrierung eines antragssendenden Systems als API-Client über das Self-Service-Portal müssen die folgenden Informationen hinterlegt werden: - Freigegebene Domains, von denen der Online-Antragsservice Formulare übermittelt -- Eine Liste an [Zustellberechtigungs-Scopes](Zustellberechtigungs-Scopes.md), die definiert, an welche Zustellpunkte Anträge durch den registrierten API-Client übermittelt werden dürfen. +- Eine Liste an [Zustellberechtigungs-Scopes](./scopes), die definiert, an welche Zustellpunkte Anträge durch den registrierten API-Client übermittelt werden dürfen. - Der Public Key des Onlineservice-Schlüsselpaar ## Schritt 2: Ausstellung von Berchtigungstokens für Onlineservices (Onlineservice-Token) + Wenn ein Online-Antragsservice einer Antragsteller:in ermöglichen möchte, einen Antrag an die FIT-Connect Antrags-API zu übermitteln, muss dieser zunächst mithilfe der OAuth Client-Credentials beim OAuth-Server ein Berechtigungstoken (im Folgenden "Onlineservice-Token") nach dem Standard *JSON Web Token* gemäß [RFC 7519](https://tools.ietf.org/html/rfc7519)) abrufen. Dieser vom OAuth-Server signierte Onlineservice-Token enthält den Public-Key des Online-Antragsdienstes, der bei der Registrierung im Self-Service-Portal festgelegt wurde. Aus Sicht von API-Clients (antragssendende und -empfangende Systeme) sind die Inhalte dieses Tokens gemäß OAuth-Spezifikation als bedeutungslos anzusehen und SOLLTEN daher NICHT interpretiert werden. Eine Prüfung des Onlineservice-Token auf Korrektkeit und Gültigkeit erfolgt ausschließlich durch den Zustelldienst. ### Payload des Onlineservice-Tokens + Der hier beschriebene Payload des Onlineservice-Tokens dient lediglich der Dokumentation/Spezifikation. Antragssendende Systeme müssen den Payload des Tokens nicht auswerten oder interpretiern können. Im Payload des signierten Onlineservice-Token werden vom Authorisierungsdienst die folgenden [standartisierten Felder](https://www.iana.org/assignments/jwt/jwt.xhtml) gesetzt: @@ -28,13 +32,14 @@ Im Payload des signierten Onlineservice-Token werden vom Authorisierungsdienst d | `iss` (Issuer) | *URL des Authentifizierungsservers* | Die URL des Authentifizierungsservers, der das Token ausgestellt hat. | | `sub` (Subject) | ID des Onlineservice | Wird bei der Registrierung des Online-Antragsdienstes im Self-Service-Portal durch den Autorisierungsdienst festgelegt und dient zur Identifizierung des antragssendenden Systems | | `jti` (JWT ID) | *UUID des Tokens* | Eindeutige ID des ausgestellten Tokens. | -| `scope` | *Liste von Zustellberechtigungs-Scopes* | Eine Liste der [Zustellberechtigungs-Scopes](Zustellberechtigungs-Scopes.md), für die der Token eine Ãœbermittlung erlaubt, separiert mit Leerzeichen gemäß [RFC 6749, Abschnitt 3.3](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3). Die jeweiligen Zustellberechtigungs-Scopes werden im Self-Service-Portal bei der Registrierung des API-Client festgelegt. | +| `scope` | *Liste von Zustellberechtigungs-Scopes* | Eine Liste der [Zustellberechtigungs-Scopes](./scopes), für die der Token eine Ãœbermittlung erlaubt, separiert mit Leerzeichen gemäß [RFC 6749, Abschnitt 3.3](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3). Die jeweiligen Zustellberechtigungs-Scopes werden im Self-Service-Portal bei der Registrierung des API-Client festgelegt. | | `domains` | *Liste von Domains* | Eine Liste der Domains, von denen der Onlineservice Anträge übermitteln kann, separiert mit Leerzeichen (Subdomains müssen explizit aufgeführt werden) | | `publicKey` | *Public Key des Onlineservice* | Der zum Schlüsselpaar des Online-Antragsservice gehörige Public Key, der dem Online-Antragsdienst bei der Registrierung im Self-Service-Portal zugeordnet wurde, im JSON Web Key-Format gemäß [RFC-7517](https://tools.ietf.org/html/rfc7517) | | `token_type` | `sender` | Gibt an, das es sich um einen Token für ein antragssendendes System (typischerweise einen Onlineservice) handelt. | **Beispiel-Payload eines Onlineservice-Token** + ```json { "iat": "1620072619", @@ -56,11 +61,13 @@ Im Payload des signierten Onlineservice-Token werden vom Authorisierungsdienst d ``` ## Schritt 3: Zugriff auf die Antrags-API mittels Access Tokens -Für den Zugriff auf die Antrags-API des Zustelldienstes wird neben dem Onlineservice-Token immer auch ein sog. Access Token benötigt, der die generische [Zugriffsberechtigung des Onlinedienstes](./Zustellberechtigungs-Scopes.md) auf einen konkreten Zustellpunt (Destination) und/oder einen konkreten Antragsvorgang einschränkt. Dies ermöglicht die Weitergabe von eingeschränkten Berechtigungstokens an das Endgerät der Antragsteller:in (Browser bzw. App) und einen direkten, eingeschränkten Zugriff des Endgeräts auf die Antrags-API. + +Für den Zugriff auf die Antrags-API des Zustelldienstes wird neben dem Onlineservice-Token immer auch ein sog. Access Token benötigt, der die generische [Zugriffsberechtigung des Onlinedienstes](./scopes) auf einen konkreten Zustellpunt (Destination) und/oder einen konkreten Antragsvorgang einschränkt. Dies ermöglicht die Weitergabe von eingeschränkten Berechtigungstokens an das Endgerät der Antragsteller:in (Browser bzw. App) und einen direkten, eingeschränkten Zugriff des Endgeräts auf die Antrags-API. Access Token und Onlineservice-Token müssen beim Zugriff auf die Antrags-API via HTTP-Header an den Zustelldienst übermittelt werden. Mithilfe der beiden Tokens kann nachvollzogen werden, von welchem antragssendenden System ein Antrag an welchen Zustellpunkt übermittelt wird und ob das antragssendende System hierzu autorisiert ist. **Beispiel** + ```http POST /applications HTTP/1.1 Host: api.zustelldienst-01.example.com @@ -73,6 +80,7 @@ Access Tokens werden entweder vom Online-Antragssservice mit Hilfe des bei der R Jedes Onlineservice-Backend muss dazu in der Lage sein, Access Tokens für den Zugriff auf die Antrags-API zu erzeugen und an das Endgerät der Antragsteller:in (Browser/App) zu übermitteln. Hierbei SOLLTE der Onlinedienst eine geeignete Form von Rate-Limiting für die Ausstellung der Access Tokens implementieren. Beim Zugriff auf die Antrags-API wird ein Rate-Limiting sowohl pro Online-Antragsdienst, als auch pro Antragsvorgang durchgeführt. In den vom Online-Antragsdienst generierten Access Tokens DÃœRFEN keine Informationen hinterlegt werden, die zur Identifizierung von Antragssteller:innen geeignet sind. ### Payload des Access Tokens + Im Payload des signierten Access Tokens MÃœSSEN mindestens die folgenden [standartisierten Felder](https://www.iana.org/assignments/jwt/jwt.xhtml) gesetzt sein: | Feld | Inhalt | **Erläuterung** | @@ -82,11 +90,12 @@ Im Payload des signierten Access Tokens MÃœSSEN mindestens die folgenden [standa | `iss` (Issuer) | ID des Onlineservice | Die ID des Onlineservice. Der angegebene Wert muss dem Feld `sub` des zugehörigen Onlineservice-Token entsprechen. | | `jti` (JWT ID) | *UUID des Tokens* | Eindeutige ID des ausgestellten Tokens. | | `aud` (Audience) | *URL der Zustelldienst-API* | Die URL der API des Zustelldienstes, für den der Token ausgestellt wurde, gemäß [RFC 7519, Abschnitt 4.1.3](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3). | -| `scope` | Zustellberechtigungs-Scope | Eingeschränkte [Zustellberechtigung](Zustellberechtigungs-Scopes.md) auf *eine* konkrete Destination-ID mit Präfix `destination:` (im Stile der Zustellberechtigungs-Scopes), für die der Token eine Antragseinreichung erlaubt. Der Zustellberechtigungs-Scope des zugehörigen Onlineservice-Token muss zur Antragseinreichung bei dieser Destination-ID berechtigen. | +| `scope` | Zustellberechtigungs-Scope | Eingeschränkte [Zustellberechtigung](./scopes) auf *eine* konkrete Destination-ID mit Präfix `destination:` (im Stile der Zustellberechtigungs-Scopes), für die der Token eine Antragseinreichung erlaubt. Der Zustellberechtigungs-Scope des zugehörigen Onlineservice-Token muss zur Antragseinreichung bei dieser Destination-ID berechtigen. | | `token_type` | *siehe unten* | Der Token-Typ gibt an, welche Funktion der ausgestellte Access Token erfüllt (siehe nächster Abschnitt). | **Beispiel-Payload eines Access Token** + ```json { "iat":"1620072619", @@ -100,6 +109,7 @@ Im Payload des signierten Access Tokens MÃœSSEN mindestens die folgenden [standa ``` ### Verwendung von Access Tokens + Im Folgenden wird der Aufbau der eingesetzten Access Tokens beschrieben. Die hier beschriebenen Implementierungsdetails sollen dem technischen Verständnis dienen und unterstützen bei der Implementierung von Software zur Generierung und Prüfung der Access Tokens. Die im Projekt FIT-Connect bereitgestellten Code-Beispiele und SDKs setzen die hier beschriebenen Vorgaben um und KÖNNEN genutzt werden, um die beschriebene Funktionalität einfach und sicher in antragssendenden Systemen zu implementieren. Je nach Art des Zugriffs MÃœSSEN unterschiedliche Vorgaben für Access Tokens eingehalten werden: @@ -111,6 +121,7 @@ Je nach Art des Zugriffs MÃœSSEN unterschiedliche Vorgaben für Access Tokens ei Dieser Token-Typ berechtigt ausschließlich zum Anlegen von neuen Antragsvorgängen. **Beispiel-Payload eines Access Token mit Token-Typ ```create-submission```** + ```json { "iat":"1620072619", @@ -134,6 +145,7 @@ Anschließend ermöglicht das generierte Schlüsselpaar bzw. ein daraus generier Dieser Access Token wird mithilfe des Schlüsselpaares des Antragsvorgangs signiert. Im Zustelldienst wird die Signatur des Tokens mithilfe des bei der Antragserstellung hinterlegten Public Key geprüft. Der Access Token weist nach, dass der anfragende API-Client berechtigt ist, auf einen spezifischen Vorgang zuzugreifen. Mit Hilfe dieses Access Tokens können nun die Antragsdaten und Anhänge dem eröffneten Antrags hinzugefügt werden. Hierbei ist ein Zugriff auf die Antrags-API direkt durch das Endgerät der Antragsteller:in möglich. **Beispiel-Payload eines Access Token mit Token-Typ ```access-case```** + ```json { "iat":"1620072619", @@ -169,7 +181,9 @@ Mit Hilfe eines Access Tokens vom Typ `access-eventlog` können perspektivische ``` ## Kryptographische Vorgaben + ### Kryptographische Vorgaben für JSON Web Tokens + Alle generierten JWT-Tokens MÃœSSEN den Vogaben aus [RFC 7519](https://tools.ietf.org/html/rfc7519) entsprechen und über folgende Header-Attribute verfügen: | Feld | Inhalt | **Erläuterung** | diff --git a/docs/Detailinformationen/Encryption_Key_Requirements.md b/docs/details/encryption.mdx similarity index 55% rename from docs/Detailinformationen/Encryption_Key_Requirements.md rename to docs/details/encryption.mdx index 1fa50a2887c1a5ecfca4c14c8fc589f033c1268a..ba524549e0021fcf147b3067bc4bbaae3cf2202f 100644 --- a/docs/Detailinformationen/Encryption_Key_Requirements.md +++ b/docs/details/encryption.mdx @@ -1,4 +1,220 @@ -# Vorgaben für kryptographische Verfahren beim Einsatz von FIT-Connect +--- +title: Verschlüsselung +--- + +# Verschlüsselte Ãœbertragung + +## Einleitung + +FIT-Connect verwendet zur Ãœbertragung von Antragsdaten und Antragsmetadaten (abgesehen von den für die Ãœbermittlung zwingend notwendigen Daten, z.B. Destination-ID) eine Ende-zu-Ende-Verschlüsselung. Diese ist auf Basis der Standards [JSON Web Encryption (JWE)](https://tools.ietf.org/html/rfc7516) und [JSON Web Keys (JWK)](https://tools.ietf.org/html/rfc7517) umgesetzt. + +Die Informationen auf dieser Seite sind relevant, wenn man: + +- ein **Fachverfahren** mit FIT-Connect-Anbindung entwickelt oder aufsetzt +- einen **Onlinedienst** mit FIT-Connect-Anbindung entwickelt oder aufsetzt + +### Warum ist Ende-zu-Ende-Verschlüsselung wichtig? + +Im Kontext von Anträgen an Behörden werden häufig höchstsensible Daten übermittelt, die im Rahmen von [Vorgaben des BSI](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03107/TR-03107-1.pdf?__blob=publicationFile&v=4) nur Ende-zu-Ende-verschlüsselt übertragen werden dürfen. +Bei FIT-Connect ist die Zielsetzung einen möglichst einfachen, sicheren und klar definierten Standard zu etablieren. Deshalb ist die verschlüsselte Ãœbertragung von Antragsdaten ein integraler Bestandteil von FIT-Connect. Eine Ãœbertragung von Antragsdaten erfolgt mit FIT-Connect ausschließlich verschlüsselt. + +## Grundlagen zur sicheren Implementierung von FIT-Connect + +### Ende-zu-Ende-Verschlüsselung + +FIT-Connect basiert auf dem Ansatz von Ende-zu-Ende-Verschlüsselung. Das bedeutet, dass Daten immer vom Endgerät der Nutzer*in bis in die Zielbehörde bzw. das Fachverfahren asymmetrisch verschlüsselt sein müssen. + +<img src="/images/encryption/tls-no-tls.png" alt="Ende-zu-Ende-Verschlüsselung Bedeutung" width="400" height="320" /> + +Zur Realisierung einer Ende-zu-Ende-Verschlüsselung vom Endgerät der Anwender:in bis zum Fachverfahren einer Behörde, dürfen Daten nicht unverschlüsselt oder nur per TLS gesichert an ein Backend übermittelt und erst dort die für FIT-Connect spezifizierte Verschlüsselung angewendet werden. Sollte eine längerfristige Speicherung der Antragsdaten nötig sein, so muss diese immer clientseitig (z.B. in der IndexDB des Browsers, per Download, …) erfolgen. + +### Zertifikate von Zustellpunkten müssen der Verwaltungs-PKI entstammen + +Jeder verwendete Public Key (idR. in Form eines JSON Web Keys) muss einem digitalen Zertifikat entstammen und von einer Zertifizierungsstelle innerhalb der Verwaltungs-PKI signiert werden. JSON Web Keys müssen immer mit der komplette Zertifikatskette bis zum Wurzelzertifikat ausgeliefert werden, um clientseitig korrekt validierbar zu sein. + +### Kryptografisches Material muss vor der Verwendung immer geprüft werden + +Die für die Verschlüsselung verwendeten JSON Web Keys müssen vor Verwendung anhand des zugehörigen Zertifikats aus der Verwaltungs-PKI auf Gültigkeit überprüft werden. + +<img src="/images/encryption/pki-check.png" alt="PKI-um Man-in-the-Middle zu verhindern" width="400" height="320" /> + +Nicht vertrauenswürdige Schlüssel dürfen nicht für die Verschlüsselung von Anträgen verwendet werden. Das soll Angriffe wie Man-in-the-middle-Attacken verhindern. + +## Architektur + +Kern von FIT-Connect ist der Zustelldienst, der über die beiden APIs "Application Sender API" und "Application Subscriber API" den Absender (Sender) und Empfänger (Subscriber) einer Einreichung verbindet. + +Jedes empfangende System (Fachverfahren / virtuelle Poststelle) verfügt über einen oder mehrere Endpunkt, an den Anträge gesendet werden (Zustellpunkt) und einen oder mehrere Endpunkte von denen Anträge verschlüsselt versendet werden (in der Regel: Onlinedienst, App, …). + +Ein Einreichung wird an einen Zustellpunkt (Zielort) geschickt. Diesen Zustellpunkt legt der Empfänger über die "Application Subscriber API" an. Der Absender muss die Destination-ID des Zustellpunktes kennen und kann dann Anträge über die "Application Sender API" an diese Destination-ID senden. + +### Application Sender API + +Der Absender muss die Destination-ID vorliegen haben und erfagt über die Application Sender API die Informationen zum Zustellpunkt. Diesen entnimmt er die Liste der möglichen Schemas und wählt eines aus. Sofern es sich um eine verschlüsselte Ãœbertragung handelt, wählt er einen öffentlichen Schlüssel. + +Derzeit muss die Destination-ID manuell vom Empfänger an den Absender übergeben werden. Dies soll in Zukunft automatisch mithilfe bestehender Mechanismen, z.B. XZufi oder DVDV passieren. + +Das gewählte Schema wird in den Metadaten der Einreichung (Application Metadata) eingetragen und legt die Art der Ãœbertragung fest. + +### Application Subscriber API + +Ãœber die Application Subscriber API werden die Destinations verwaltet, an die die Anträge gesendet werden. Eine Destination enthält eine Liste von Schemas, welche Formate der Empfänger akzeptiert. + +Der Empfänger kann in der Destination mehrere Schemas und mehrere öffentliche Schlüssel hinterlegen. Der Absender sucht sich davon für die Ãœbertragung ein Schema und einen öffentlichen Schlüssel aus. Es wird empfohlen, genau ein Schema und genau einen öffentlichen Schlüssel anzubieten. + +Es ist geplant, dass die hinterlegten öffentlichen Schlüssel so organisiert werden, dass ein kontrolliertes Key-Rollover stattfinden kann. Dazu werden zu den Schlüsseln die Gültigkeitszeiträume ergänzt. + +### Ablauf einer Einreichung aus Bürger*innen-Client-Perspektive + +Wenn eine Bürger*in nun einen Einreichung im Web oder in einer App übermitteln möchte, läuft das in der Regel wie folgt ab: + +- Bürger*in findet den passenden Einreichung über einen Zuständigkeitsfinder. +- Die Applikation erhält aus dem Zuständigkeitsfinder die passende Destination-ID zum Einreichung. +- Die Applikation ruft über die Sender-API die Formular und Datenstruktur, Verschlüsselungszertifikat, … ab. +- Die Applikation prüft das Verschlüsselungszertifikat. +- Die Applikation übermittelt die Antragsdaten und optional einen Public Key des Users verschlüsselt an die Sender-API und erhält dafür einen Status-Token. +- Mit dem Status-Token ruft die Applikation verschlüsselte Statusinformationen zum Einreichung aus der Sender-API ab. + +**TODO: add here some doc links about oauth** + +## Bereitstellung eines Destination-Endpunktes + +### Erstellung eines FIT-Connect-kompatiblen JSON Web Keys + +JSON Web Keys sind das Austauschformat in dem kryptografische Schlüssel in FIT-Connect zwischen der Destination und dem Onlinedienst ausgetauscht werden. Die kryptografischen Anforderungen an die Keys findet man unter **TODO**. Die Keys sollten bereits dort generiert werden, wo sie am Ende eingesetzt werden. Ein unnötiges übertragen von Privat Keys zwischen Servern/Computern sollte vermieden werden. Sollte dies doch notwendig sein, so muss die Ãœbermittlung wenn dann nur verschlüsselt erfolgen. + +Im folgenden eine beispielhafte Schritt-für-Schritt-Anleitung um einen JSON-Web-Key zu generieren: + +1. Lokale Generierung eines X.509 zugrundeliegenden RSA-Keys. `openssl genrsa -out fachverfahren1.meineverwaltung.de.key 4096` +2. Generierung des Zertifikatsrequests `openssl req -new -sha256 -key fachverfahren1.meineverwaltung.de.key -out fachverfahren1.meineverwaltung.de.csr` +3. Dieser Zertifikatsrequest muss nun von einer Verwaltungs-PKI signiert werden. +4. Das von der Verwaltungs-PKI signierte Zertifikat muss nun in einen JWK umgewandelt werden: … **TODO(Lilith): einfügen nachdem wir das einmal gemacht haben** + +Das dabei entstandene Zertifikat muss zur dem Fachverfahren gehörende Destination hinzugefügt werden + +### Anlegen eines Zustellpunktes + +Ein Zustellpunkt benötigt mindestens immer ein erlaubtes Fachdaten-Schema sowie einen Verschlüsselungs- und einen Signaturkey. Diese müssen in das Format JSON Web Key konvertiert und über den Zustelldienst als JSON Web Key bereitgestellt werden. + +#### Beispiel + +```json +{ + "publicKeys": { + "keys": [ + { + "kty": "RSA", + "key_ops": ["wrapKey"], + "n": "……(Public Key)……", + "e": "AQAB", + "alg": "PS512", + "kid": "……(Key ID)……", + "x5t": "……(Fingerprint)……", + "x5c": [ + "……(base64 encoded cert)……" + "……(base64 encoded intermediate cert)……", + "……(base64 encoded root cert)……", + ] + }, + { + "kty": "RSA", + "key_ops": ["verify"], + "n": "……(Public Key)……", + "e": "AQAB", + "alg": "PS512", + "kid": "……(Key ID)……", + "x5t": "……(Fingerprint)……", + "x5c": [ + "……(base64 encoded cert)……" + "……(base64 encoded intermediate cert)……", + "……(base64 encoded root cert)……", + ] + } + ] + }, + "schemas": [ + { + "schemaSource": "none", + "mimeType": "json", + }, + { + "schemaSource": "none", + "mimeType": "xml", + } + ], + "destinationId": "b444a551-74af-4a98-aa65-d1ffccd385d1" +} +``` + +## Implementierung eines Onlinedienstes + +### Abrufen der Endpunktinformationen + +### Ãœberprüfen der Json Web Keys + +Die JSON Web Keys müssen vor der Verwendung im Client auf Gültigkeit geprüft werden. Das umfasst insbesondere folgende Punkte: + +- Ãœberprüfung gegen eine Certificate Revocation List und/oder einen OCSP-Endpunkt mit signierten Antworten. +- Ãœberprüfung der Zertifikats-Kette bis zum Wurzelzertifikat (BSI). + +Weitere Informationen zur Glütigkeitsprüfung finden sich im BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4) und im Abschnitt "[Anforderungen an das kryptografische Material](#Vorgaben-für-kryptographische-Verfahren)" . + +### Aufbau der Ãœbertragung + +Eine Ãœbertragung über FIT-Connect besteht aus einem Metadatensatz, optionalen Fachdaten und beliebig vielen (0-∞) Dokumenten (Anlagen). Ein Teil der Metadaten enthälten transportrelevante Informationen und werden deshalb unverschlüsselt übertragen. Alle nicht transportrelevanten Metadaten, die Fachdaten und Anlagen werden verschlüsselt übertragen. + +Die Metadaten, Fachdaten und Anlagen werden gemäß dem Standard JSON Web Encryption RFC 7516) verschlüsselt. Als Datenformat für die Ãœbertragung wird die sogenannte [JWE-Compact Serialisierung](https://tools.ietf.org/html/rfc7516#section-7.1) verwendet. Alle angehängten Dokumente müssen als Binärdateien und nicht als Strings enkodiert verschlüsselt werden. + +Zur Verschlüsselung wird ein JSON Web Key mit dem Typ "wrap_key" verwendet. + +#### Beispiel (Metadaten) + +```json +{ + "contentStructure": { + "data": { + "schema": { + "schemaSource": "none", + "mimeType": "json", + } + }, + "docs": [ + { + "size": 13046, + "purpose": "attachment", + "docId": "1", + "mimeType": "application/pdf" + } + ] + }, + "submissionId": "6f7b00f1-2f0c-46da-93c9-ca020aa1758f" +} +``` + +#### Beispiel (Fachdaten) + +Bei der verschlüsselten Ãœbertragung der Fachdaten und Anlagen wird der Content-Type "application/jose" (Achtung: jose, nicht json) verwendet. + +Beispiel: + +```text +PUT /delivery-service-beta7/sender/destinations/e1009dea-d97e-4104-b389-bf653d8bd30e/applications/6f7b00f1-2f0c-46da-93c9-ca020aa1758f/data HTTP/1.1 +Content-Type: application/jose +Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjM1ZTM2Nzk2LTM1NDAtNDUwMy1iYT... + +eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.yTSVS7re6hZKO46aDriHrRFOyc5- +3TIIrvcKUf2qAfGdH7InufWPCrDyEnazSDI7HtOa5X2MU3iUnmmiEuP-Lef76xTPv2lmL4_lyhW5D8zq +7zbrIaIaVhtg7ekF1r9Oy9nLsEBQWLD4EWda2PfAibV7iQbOVMn1rVk4DzKtCykj5RSrH96i-lbPVFl- +Xw_E2G5XsL0gOHrdbAsjTF1h67bvh2hnojc9SH1GnlD0TlUO30n0GKLgC7tNNiLGtNrRo8ih3LUWYo-m +34Q6NGjaNTycHnWMYZzXHbIcBzYr6WLTsrB07rKXEyrHGLaRL88y2c-ACyEzpgv4qR5DAp98Su2u45ar +pfGU_7HxX4d-PLEoDfIRnh32nprarbaIesj9Ppgiu7QciWRApcyszk0a5rzZ7Dk_6-ydMfD92H2p3tdt +OcFhj3XGUshVKec2nRhtCZPOMPTIjxFpozsiRetjZo9LFHzRcvr1eSS_hpteKJ3ltioY9nzt1IX2JqQm +TGtY.VGOCnGM9LEZP5mUO.LQeKj4SKqsUNsBp4ZRN_56QbS8MQ01YTzRVFStk.Z0YMEua9kvCV7LkeJH +kprA +``` + + +# Vorgaben für kryptographische Verfahren FIT-Connect verwendet zur Ãœbertragung von Antragsdaten und Metadaten mit direktem Bezug zu Anträgen eine Ende-zu-Ende-Verschlüsselung. Diese ist auf Basis des Standards [JSON Web Encryption (JWE)](https://tools.ietf.org/html/rfc7516) unter Verwendung von Schlüsseln gemäß des Standards [JSON Web Keys (JWK)](https://tools.ietf.org/html/rfc7517) umgesetzt. @@ -7,7 +223,7 @@ Zudem bietet FIT-Connect digital signierte Eingangsbestätigungen für Anträge. Die [Liste der standardisierten Algorithmen](https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms) für Signaturen und Verschlüsselung mit JWE/JWS wird für die Nutzung in FIT-Connect unter Berücksichtigung der Vorgaben des BSI gemäß der Richtlinie [TR-02102-1](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html) eingeschränkt. Diese Einschränkung der zu unterstützenden Algorithmen senkt die Komplexität in Implementierungen der angebundenen Systeme und erfolgte unter Berücksichtigung der praktischen Nutzbarkeit der Algorithmen durch eine breite Unterstützung in Implementierungen der Standards. ## Vorgaben für eingesetzte X.509-Zertifikate -Dem JSON Web Key zur *Verschlüsselung von Antragsdaten* muss ein für die Empfangsbehörde des Antrags signiertes X.509 Zertifikat zugrundeliegen. Dem für die *Signaturprüfung von digitalen Eingangsbestätigungen* verwendete JSON Web Key muss ein für die Behörde, die den Antrag im FIT-Connect-System zwischenspeichert oder empfängt, signiertes X.509 Zertifikat zugrundeliegen. Bei der Erstellung von Zertifikaten und der Zertifikatsprüfung sind die Regelungen und Standards aus BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4) zu beachten. +Dem JSON Web Key zur *Verschlüsselung von Antragsdaten* muss ein für die Empfangsbehörde der Einreichung signiertes X.509 Zertifikat zugrundeliegen. Dem für die *Signaturprüfung von digitalen Eingangsbestätigungen* verwendete JSON Web Key muss ein für die Behörde, die den Einreichung im FIT-Connect-System zwischenspeichert oder empfängt, signiertes X.509 Zertifikat zugrundeliegen. Bei der Erstellung von Zertifikaten und der Zertifikatsprüfung sind die Regelungen und Standards aus BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4) zu beachten. Die verwendeten X.509-Zertifikate müssen der Verwaltungs-PKI entstammen. CA-Zertifikate der Zertifizierungsstellen innerhalb der Verwaltungs-PKI werden gemäß den [Vorgaben des BSI zur Verwaltungs-PKI](https://www.bsi.bund.de/VPKI) durch die Wurzelzertifizierungsstelle des BSI ausgestellt. Für Zertifikate müssen CRL Distribution Points (siehe 8.5 BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4)) oder ein OCSP-Endpunkt (siehe 8.5.5 BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4)) mit signierten Antworten nach [RFC 6125](https://tools.ietf.org/html/rfc6125) bereitstehen. diff --git a/docs/details/event-log.md b/docs/details/event-log.md new file mode 100644 index 0000000000000000000000000000000000000000..e4b47613431d45b05edd0fc0301b92e6b30a2e99 --- /dev/null +++ b/docs/details/event-log.md @@ -0,0 +1,141 @@ +# Event Log + +Im Ereignisprotokoll werden relevante Ereignisse (events) aufgezeichnet. +Beim Abruf des Ereignisprotokoll liefert die API ein Array von JSON Web Token (JWT) gemäß [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519). +Der JWT ist einen Security Event Token (SET) gemäß [RFC 8417](https://datatracker.ietf.org/doc/html/rfc8417). + +## Aufbau eines Security Event Token (SET) + +### Header +Alle generierten Security Event Tokens MÃœSSEN den Vogaben aus [RFC 7519](https://tools.ietf.org/html/rfc7519) entsprechen und über folgende Header-Attribute verfügen: + +| Feld | Inhalt | Erläuterung | +| ----- | -------------- | ----------- | +| `typ` | `secevent+jwt` | Wird gemäß [RFC 8417, Abschnitt 2.3](https://datatracker.ietf.org/doc/html/rfc8417#section-2.3) auf den festen Wert "`secevent+jwt`" gesetzt. | +| `alg` | `PS512` | Zur Signaturerstellung wird der Signaturalgorithmus RSASSA-PSS mit SHA-512 und MGF1 mit SHA-512 verwendet. Vorgabe gemäß [BSI TR-02102](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html) in der Version 2021-01 (Stand 24. März 2021). | +| `kid` | *Key-ID des zugehörigen Public Keys* | Die Key-ID des Public Key, mit dem die Signatur des JWT geprüft werden kann. | + +**Beispiel** +```json +{ + "typ": "secevent+jwt" + "alg": "PS512", + "kid": "dd0409e5-410e-4d98-85b6-f81a40b8d980", +} +``` + +### Payload +Im Payload des signierten SET MÃœSSEN mindestens die folgenden [standartisierten Felder](https://www.iana.org/assignments/jwt/jwt.xhtml) gesetzt sein: + +| Feld | Inhalt | **Erläuterung** | +| ------ | ----------------------------------------- | ------------------------------------------------------------ | +| iss | Identifizierungsmerkmal des Token Issuers | Dient dazu, um herauszufinden, wer den Token ausgestellt hat. Für vom Zustelldienst ausgestellt SET wird die Basis-Adresse (API-URL) verwendet. Für die antragsendenden und -empfangenden Systeme wird empfohlen, auch eine dem System zugeordnete URL zu verwenden. Sofern das System keine zur Identifikation nutzbare URL hat, ist eine andere eindeutige URI zu verwenden. | +| iat | Timestamp (UNIX-Format) | Zeitpunkt der Ausstellung des SET. | +| jti | UUID des Token | Die JWT ID ist eine eindeutige ID des SET bzw. JWT. Es wird eine zufällige UUID verwendet. | +| sub | URI, die den Gegenstand des SET identifiziert. | Das Subject eines SWT ist entweder eine Ãœbertragung (submission), eine Antwort (reply) oder eine Vorgangsreferenz (case id). Die Angabe besteht jeweils aus Typ und ID (UUID) der Resource. | +| events | Dict der Events in diesem Event-Token | Das Objekt "events" enthält immer genau ein Event. Das Event selbst ist wieder ein Objekt, welches derzeit immer leer ist. Events könnten in Zukunft um Zusatzinformationen ergänzt werden. Die Liste der möglichen Events befndet sich im Kapitel "Events". | +| txn | URI, die den Vorgang identifiziert | Als "Transaction Identifier" wird die Vorgangsreferenz angegeben, auch wenn das Subject selbst die Vorgangsreferenz ist. In diesem Fall sind Subject und Transaction Identifier gleich. | + +**Hinweis:** Das Ereignisprotokoll darf keine personenbezogenen oder -beziehbaren Daten enthalten. + +**Wichtig**: Ohne Prüfung der Signatur des Security Event Token DARF NICHT auf die Korrektheit (Integrität) der Inhalte des SET-Payload vertraut werden. + +**Beispiel** +```json +{ + "iss": "https://api.fitko.de/fit-connect/", + "iat": 1622796532, + "jti": "0BF6DBF6-CE7E-44A3-889F-82FE74C3E715", + "sub": "submission:F65FEAB2-4883-4DFF-85FB-169448545D9F", + "events": { + "https://schema.fitko.de/fit-connect/events/accept-submission": {} + }, + "txn": "case:F73D30C6-8894-4444-8687-00AE756FEA90" +} +``` + +## Ereignisse (Events) +### Ereignisse einer Einreichung (Submission Events) +| Event | Bedeutung | +| ----- | --------- | +| https://schema.fitko.de/fit-connect/events/create-submission | Die Einreichung wurde durch den Sender angelegt. | +| https://schema.fitko.de/fit-connect/events/submit-submission | Die Einreichung wurde durch den Sender abgesendet. | +| https://schema.fitko.de/fit-connect/events/notify-submission | Der Empfänger wurde per Webhook über die Einreichung informiert. | +| https://schema.fitko.de/fit-connect/events/forward-submission | Ein nachgelagertes System hat die Einreichung zur Weiterleitung übernommen. | +| https://schema.fitko.de/fit-connect/events/reject-submission | Die Einreichung wurde durch den Empfänger zurückgewiesen. | +| https://schema.fitko.de/fit-connect/events/accept-submission | Die Einreichung wurde durch den Empfänger akzeptiert. | +| https://schema.fitko.de/fit-connect/events/delete-submission | Die Einreichung wurde durch den Zustelldienst gelöscht. | + +### Ereignisse einer Antwort (Reply Events) +| Event | Bedeutung | +| ----- | --------- | +| https://schema.fitko.de/fit-connect/events/create-reply | Die Antwort wurde durch den Sender angelegt. | +| https://schema.fitko.de/fit-connect/events/submit-reply | Die Antwort wurde durch den Sender abgesendet. | +| https://schema.fitko.de/fit-connect/events/notify-reply | Der Empfänger wurde per Webhook über die Antwort informiert. | +| https://schema.fitko.de/fit-connect/events/forward-reply | Ein nachgelagertes System hat die Antwort zur Weiterleitung übernommen. | +| https://schema.fitko.de/fit-connect/events/reject-reply | Die Antwort wurde durch den Empfänger zurückgewiesen. | +| https://schema.fitko.de/fit-connect/events/accept-reply | Die Antwort wurde durch den Empfänger akzeptiert. | +| https://schema.fitko.de/fit-connect/events/delete-reply | Die Antwort wurde durch den Zustelldienst gelöscht. | + +Das Akzeptieren oder Zurückweisen von Einreichungen oder Antworten passiert auf einer rein technischen Ebene und trifft keine Aussage über die fachliche Korrektheit der Einreichungen. +Gründe für technische Rückweisungen wären beispielsweise Probleme bei der Entschlüsselung oder Validierungsfehler der Datenstrukturen. + +### Ereignisse eines Vorgangs (Case Events) +| Event | Bedeutung | +| ----- | --------- | +| https://schema.fitko.de/fit-connect/events/close-case | Die Vorgangsreferenz wurde geschlossen, es dürfen keine weiteren Replies mehr erfolgen. | + +## Beispiel + +> **Hinweis:** Folgende Punkte in dieser Dokumentation sind noch nicht final: +- Die in den Beispielen verwendete API-Adresse `https://api.fitko.de/fit-connect/` ist durch die Basis-Adresse der real verwendeten API zu ersetzen. + +Der Sender ruft die Operation "Get Event Log" auf, z.B. `https://api.fitko.de/fit-connect/submissions/F65FEAB2-4883-4DFF-85FB-169448545D9F/log`. +Das Ergebnis könnte wie folgt aussehen. + +```json +{ + "eventLog": [ + "eyJraWQiOiJkZDA0MDllNS00MTBlLTRkOTgtODViNi1mODFhNDBiOGQ5ODAiLCJ0eXAiOiJzZWNldmVudCtqd3QiLCJhbGciOiJQUzUxMiJ9.ewogICJpc3MiOiAiaHR0cHM6Ly9hcGkuZml0a28uZGUvZml0LWNvbm5lY3QvIiwKICAiaWF0IjogMTYyMjc5NDMxOSwKICAianRpIjogIkVEQ0ZCRjIxLTVCMTYtNEQwNi05OUQwLURDNEMyNkY0RkI5RSIsCiAgInN1YiI6ICJzdWJtaXNzaW9uOkY2NUZFQUIyLTQ4ODMtNERGRi04NUZCLTE2OTQ0ODU0NUQ5RiIsCiAgImV2ZW50cyI6IHsKICAgICJodHRwczovL3NjaGVtYS5maXRrby5kZS9maXQtY29ubmVjdC9ldmVudHMvY3JlYXRlLXN1Ym1pc3Npb24iOiB7fQogIH0sCiAgInR4biI6ICJjYXNlOkY3M0QzMEM2LTg4OTQtNDQ0NC04Njg3LTAwQUU3NTZGRUE5MCIKfQ.TQBR_CBsoULi3cGaGg4oqFelQ9GVn8G-cNokzTVDZgZf4D7x_8wjsDcgTd0aamiy8ErlnV1xoAoDcPw81vajrBCaYgf9KI4sNhsW78jlDi_ywK04YhFbkvloDMioGf_5zCNTBreN9bTnU_VYuWB23R_YrYGi2exONft-ZReN_crEvDaKLdG9hqnaCRFwKJ1t8TbLvIyBKLqQYEqP0Oh6m3WA9IRz3EB41S-PZgJCIzmz_GvXdRvw_1B8A_Q7aHr2SQ6Dc-c406UJ5P_7FuypE6tLyuYf5GkmFZSauQ51H4LLl8pLrsW2PJJ28cMavOEx0AWoRLwB7yKK5bAGtcALWw-0W7Wmw1QEX3DZGTpXbEUM0U_7iXeEFrdtfCCbFPMVbmlK-b66IyKK_6yeaOAEjQvCUOrALfa2sSOS6RWiNOKyA1l1L29VoIBXgQ8np72NMV8-AP7UnQO1NPBghBM6LW6tcXceWeP8ayy4eEaZQ639pqH4TJRRkQqnuoTeADpYL9sX2hM9173O4abWiE-Z8zW2AQ1jhUvVXJ8w9ddtMIyjZJZOqoy3TbHxUYpn4UqbedlDyahpUiKCT7-qU2jOjeXAXEPQvWlSzLigNtFvYCEq-fOe1lpeNktoQQrC3Y-szk2vNj5fT_KmJY1QG1bhyrUMoGbA-pe45c-FcCE7ErQ", + "eyJraWQiOiJkZDA0MDllNS00MTBlLTRkOTgtODViNi1mODFhNDBiOGQ5ODAiLCJ0eXAiOiJzZWNldmVudCtqd3QiLCJhbGciOiJQUzUxMiJ9.ewogICJpc3MiOiAiaHR0cHM6Ly9hcGkuZml0a28uZGUvZml0LWNvbm5lY3QvIiwKICAiaWF0IjogMTYyMjc5NTczMiwKICAianRpIjogIjkwRDlCMjlELUMwNUYtNEYwMy04MUMwLUUyMzMxMTZDNTZEOSIsCiAgInN1YiI6ICJzdWJtaXNzaW9uOkY2NUZFQUIyLTQ4ODMtNERGRi04NUZCLTE2OTQ0ODU0NUQ5RiIsCiAgImV2ZW50cyI6IHsKICAgICJodHRwczovL3NjaGVtYS5maXRrby5kZS9maXQtY29ubmVjdC9ldmVudHMvc3VibWl0LXN1Ym1pc3Npb24iOiB7fQogIH0sCiAgInR4biI6ICJjYXNlOkY3M0QzMEM2LTg4OTQtNDQ0NC04Njg3LTAwQUU3NTZGRUE5MCIKfQ.THmHiZoYEMyyWCu2R4nEJtvgtB5PF0KAqtfu_Z-yVjfjSkXW7TtZnX96UAeCGsjpxkBJvXTXAgSB5n378KjZXebAtI7nbFE0gYgt3fwmxmpJitA-4e8v6KfvhwNcdqJHLKDzYRMq_yw7UiwLx1Cxz6nBiOKfR4piL707muKXTgD7DuP0kv-c6V9dGNQ4KzT_sJP5zDWogEzGWSVaLaJZrmDZHoUZMZ6C9kI7SvC-A7Q0ROkFznU_cpjjEAIG74_YCiICvjr91ueQWTdNyc1DBvxpEBtBWq6nWPTg0d91iQlhPUgNKbmC4QtG_tFctTYhX7stO-JbL-4VnAQjQHD5uw4SvvpPrTN4Z3Wz2IjMm8-ClI9imGKThfAqwTaWtJv7Bn_FDiN_nEuGyN2of-M2vZWa-DlZ2iPFct6ESp9PumaO_pIF5cUrX4IBoe3fcmg788-ClReytCMjD13uPVOVoIb3yimUdupOUROxb3MITowHP2-YG1gWqhQp22XSQXktugDHWezAuN0xuimwAJq_OvyoDxj4lsnn6BQkqZYdqD0hJghwqZIytg8PlIi76Cdvh8NFgVw48xZ0WUOFvBPJO2Qe8PiTSVX_P9CIIWxsKlYwg8vJ226qi0eYfD70ynjBDQIPmsOOSut6bFKgOLBFa9ZvCy6HmhyLa-EsgLhS4uc", + "eyJraWQiOiJkZDA0MDllNS00MTBlLTRkOTgtODViNi1mODFhNDBiOGQ5ODAiLCJ0eXAiOiJzZWNldmVudCtqd3QiLCJhbGciOiJQUzUxMiJ9.ewogICJpc3MiOiAiaHR0cHM6Ly9hcGkuZml0a28uZGUvZml0LWNvbm5lY3QvIiwKICAiaWF0IjogMTYyMjc5NjUzMiwKICAianRpIjogIjBCRjZEQkY2LUNFN0UtNDRBMy04ODlGLTgyRkU3NEMzRTcxNSIsCiAgInN1YiI6ICJzdWJtaXNzaW9uOkY2NUZFQUIyLTQ4ODMtNERGRi04NUZCLTE2OTQ0ODU0NUQ5RiIsCiAgImV2ZW50cyI6IHsKICAgICJodHRwczovL3NjaGVtYS5maXRrby5kZS9maXQtY29ubmVjdC9ldmVudHMvYWNjZXB0LXN1Ym1pc3Npb24iOiB7fQogIH0sCiAgInR4biI6ICJjYXNlOkY3M0QzMEM2LTg4OTQtNDQ0NC04Njg3LTAwQUU3NTZGRUE5MCIKfQ.blxz8Tw_Sl8_tomcqxezamX_DVGyGiu61iYGv3mA3yVLLSDlPscjcHm_MCNm5iq-ODUk-FCW1ljOexN2czZJic8wvLhWhcUt8U2kkkjis-CWz4oqhuB4ynAj7Yyn4H4xkLoH7Y6k9pqW9P2mN7984o_578mJJ4mQSNEGcPr_BDbRc2nUKcupG7iS-hx6VTjrRTP7LGPyOblDB8oL_QyT9qY0US7PT35QgiraUSK3RWhDpj6C0I4bOV5cQeSqlXT2xIfeO3sUPeWLYVmGjuB8QWvDsniKz6JqRN-v39FrAppsOufdiRim36wtBZt9o-3txjtz5wu0_eSfjOueGJbfqAeWsbd2TYwZtL-7Z-MPfoe3XInDNmmTfxo4KXkF1GkRnGnjniwrWBHeh18A04NNHYcX-vsoijEreqDN2lEKwks3pDK5Twe5O9RxJ0cYB8oeKB55rJzs15pfla69qVn9zFvCAc_ji_9WaAa_mIG0zimMucG3qA0KrUww88FaS4heh5-Gs1Ik35QoUOCCa7ZMJMKxYArFCgUqHw-gX60U5mp4hy7tVe3hD-RxIRnlTIkEkHgDGmslVc1t8fC9oPgljQirPcTIeWhVyLmk6rJLgR5nqizujz3hDUCdBuRF43fS6qedmYfHq1MyakJzEFe2ht1rpGw4ftAt0kcOBOf2jyQ" + ] +} +``` + +Im Log dieser Submission wurden drei Events aufgezeichnet. +Das erste SET hat folgenden Payload. + +```json +{ + "iss": "https://api.fitko.de/fit-connect/", + "iat": 1622794319, + "jti": "EDCFBF21-5B16-4D06-99D0-DC4C26F4FB9E", + "sub": "submission:F65FEAB2-4883-4DFF-85FB-169448545D9F", + "events": { + "https://schema.fitko.de/fit-connect/events/create-submission": {} + }, + "txn": "case:F73D30C6-8894-4444-8687-00AE756FEA90" +} +``` + +In dem SET ist folgende Information abgelegt: +- Er wurde vom Zustelldienst https://api.fitko.de/fit-connect/ ausgestellt (iss = issuer) +- Er wurde am 04.06.2021 um 10:11:59 (Unixzeit 1622794319) aufgezeichnet (iat = issued at) +- Er hat die eindeutige ID `EDCFBF21-5B16-4D06-99D0-DC4C26F4FB9E` (jti = JWT ID) +- Er betrifft die Submission `F65FEAB2-4883-4DFF-85FB-169448545D9F` (sub = subject) +- Die Submission wurde angelegt "createSubmission" (events) +- Die Submission gehört zur Vorgangsreferenz (case) `F73D30C6-8894-4444-8687-00AE756FEA90` + +## Verarbeitung des Ereignisprotokolls + +Um die Informationen des Security Event Log abzurufen gehen Sie wie folgt vor: + +### 1. Abruf des Ereignisprotokolls über die API + +### 2. Decodierung jedes SET innerhalb des Arrays "securityEventLog" +Ãœbergeben Sie den JWT an die Bibliothek. +Die Bibliothek kümmert sich automatisch um die Dekodierung und Validierung des JWT. +Je verwendeter Bibliothek unterscheidet sich der Zugriff auf den Payload des JWT/SET. + +Wenn ein Onlinedienst den Eventlog darstellen möchte, muss dieser sicherstellen, das die im Eventlog enthaltenen Einträge über eine valide Signatur verfügen und falls sich Einträge mit einer invaliden Signatur im Eventlog befinden, muss das für den User erkennbar sein. diff --git a/docs/getting-started/authentication.mdx b/docs/getting-started/authentication.mdx new file mode 100644 index 0000000000000000000000000000000000000000..01f2ce282c4e83bc8dd52b5a6fdb4b8ae6149eb0 --- /dev/null +++ b/docs/getting-started/authentication.mdx @@ -0,0 +1,76 @@ +# 💬 OAuth Authentifizierung + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +Alle Anfragen an FIT-Connect müssen authentifiziert durchgeführt werden. +Hierfür ist ein Access Token notwendig, den man beim OAuth-Dienst abholen kann. Hierfür ist ein entsprechender API-Client notwendig, der in "[Accountregistrierung](../account)" erstellt wird. +Das Token muss dann bei jeder Anfrage über den `Authentication`-Header mitgeschickt werden. + +Da ein Token **max. 24h** gültig ist, muss dieses rechtzeitig erneuert werden. + +:::caution Generierung eines User-Tokens für sendende Systeme +Für sendende Systeme reicht der OAuth-Access-Token nicht aus, um Zugriff auf die API zu bekommen. +Sendende System müssen für den Zugriff auf die API ein User-Token generieren, welches Sie zusammen mit dem Access-Token an die API übermiteln müssen. +Dieser Access-Token ist mit dem privaten Schlüssel des API Clients zu signieren, der dem öffentlichen Schlüssel des API-Clients entspricht (Siehe [Accountregistrierung](../account)). +Für Aufbau und Beschreibung des User-Tokens siehe "[Generierung der JWT-Tokens](../details/authentication/users#generierung-der-jwt-tokens)" +::: + +<Tabs + defaultValue="curl" + values={[ + { label: 'curl', value: 'curl', }, + { label: 'Java (Spring)', value: 'java', }, + { label: 'C#', value: 'csharp', }, + { label: 'JavaScript', value: 'js', }, + ] +}> +<TabItem value="java"> + +```java +// TBD +``` + +</TabItem> + +<TabItem value="csharp"> + +```csharp +// TBD +``` + +</TabItem> + +<TabItem value="js"> + +```js +// TBD +``` + +</TabItem> + +<TabItem value="curl"> + +```bash +$ export OAUTH_URL=<URL> +$ export CLIENT_ID=<user> +$ export CLIENT_SECRET=<password> +$ curl \ + -H "Content-Type: application/x-www-form-urlencoded" \ + --data "grant_type=client_credentials&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET" \ + -X POST $OAUTH_URL +> { + "access_token": "L1Rn3tCMF...7gU1k1PlU", + "expires_in": 36000, + "token_type": "Bearer", + "scope": "read write", + "access_token_jwt": "eyJ0eXAiOiJKV1...tA0jMk-Dt4lk30lsofc" +} +``` + +Der Inhalt des Attributs `access_token_jwt` ist der JWT, welcher für die im Folgenden beschriebenen API-Requests genutzt werden sollte. + +</TabItem> +</Tabs> + + diff --git a/docs/getting-started/encryption.md b/docs/getting-started/encryption.md new file mode 100644 index 0000000000000000000000000000000000000000..5effb1b6785262e61a64dd2c55e5911c8a10eab3 --- /dev/null +++ b/docs/getting-started/encryption.md @@ -0,0 +1,102 @@ +# Verschlüsselte Ãœbertragung + +FIT-Connect verwendet zur Ãœbertragung von Antragsdaten und Antragsmetadaten, abgesehen von den für die Ãœbermittlung zwingend notwendigen Daten, eine Ende-zu-Ende-Verschlüsselung. +Diese ist auf Basis der Standards [JSON Web Encryption (JWE)](https://tools.ietf.org/html/rfc7516) und [JSON Web Keys (JWK)](https://tools.ietf.org/html/rfc7517) umgesetzt. + +Die JSON Web Keys werden hierbei aber aus Zertifikaten abgeleitet und die öffentlichen Teile in einem Zustellpunkt für die Verwendung durch ein Fachverfahren hinterlegt. +Es können mehrere JWKs hinterlegt werden, welche entweder für die Verschlüsselung oder Signaturprüfung verwendet werden können. + +:::note Hinweis +Die Zertifikate und damit verbundenen JWKs müssen in regelmäßigen Intervallen rolliert werden, was sich an der Gültigkeitsdauer der Zertifikate orientiert. +::: + +## Vorgaben für eingesetzte X.509-Zertifikate + +Die Voraussetzung, damit Clients Daten verschlüsseln bzw. Signaturen prüfen können, ist ein gültiges X.509-Zertifikat aus der Verwaltungs-PKI. Bei der Erstellung von Zertifikaten und der Zertifikatsprüfung sind die Regelungen und Standards aus BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4) zu beachten. + +CA-Zertifikate der Zertifizierungsstellen innerhalb der Verwaltungs-PKI werden gemäß den [Vorgaben des BSI zur Verwaltungs-PKI](https://www.bsi.bund.de/VPKI) durch die Wurzelzertifizierungsstelle des BSI ausgestellt. Für Zertifikate müssen CRL Distribution Points (siehe 8.5 BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4)) oder ein OCSP-Endpunkt (siehe 8.5.5 BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4)) mit signierten Antworten nach [RFC 6125](https://tools.ietf.org/html/rfc6125) bereitstehen. + +Für die X.509-Zertifikate gelten in FIT-Connect die folgenden kryptografischen Vorgaben: + +| Feld | Inhalt | **Erläuterung** | +| -------------------- | ---------- | ------------------------------------------------------------ | +| Hashfunktion | SHA-512 | Hashfunktion, die bei der Signatur des Zertifikats verwendet werden muss. (vgl. [BSI TR-02102-1 Tabelle 4.1](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html)). | +| asym. Schlüssellänge | 4096 Bit | Länge des zugrundeliegenden RSA-Schlüssels (vgl. [BSI TR-02102-1 Tabelle 3.1](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html)) | +| Signaturalgorithmus | RSASSA-PSS | Entspricht dem Standard beschrieben in [RFC 4056](https://tools.ietf.org/html/rfc4056) und vom BSI empfohlen in [BSI TR-02102-1 Abschnitt 5.4.1.](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html) | + +Ein entsprechendes Zertifikat kann über die folgenden Schritte erstellt werden: + +1. Lokale Generierung eines X.509 zugrundeliegenden RSA-Keys. + + ```bash + openssl genrsa -out fachverfahren1.meineverwaltung.de.key 4096 + ``` + +2. Generierung des Zertifikatsrequests + + ```bash + openssl req -new -sha512 -key fachverfahren1.meineverwaltung.de.key -out fachverfahren1.meineverwaltung.de.csr + ``` + + :::note Hinweis + Nicht alle Felder, die `openssl` hier erfragt müssen ausgefüllt werden. Jedoch sollten so viele wie möglich nach bestem Wissen ausgefüllt werden. + ::: + +3. Dieser Zertifikatsrequest muss nun von einer Verwaltungs-PKI signiert werden. Der Ablauf ist je nach zuständiger Verwaltungs-PKI unterschiedlich, wodurch den jeweiligen Anweisungen bzw. Schritten zur Beantragung zu folgen ist. + +## Erstellung eines FIT-Connect-kompatiblen JSON Web Keys + +JSON Web Keys sind das Austauschformat in dem kryptografische Schlüssel in FIT-Connect zwischen der Destination und dem Onlinedienst ausgetauscht werden. Die Schlüssel sollten erst dort generiert werden, wo sie am Ende eingesetzt werden. Ein unnötiges Ãœbertragen von privaten Schlüsseln zwischen Servern/Computern sollte vermieden werden. Sollte dies doch notwendig sein, so muss die Ãœbermittlung nur verschlüsselt erfolgen. + +Im Folgenden eine beispielhafte Schritt-für-Schritt-Anleitung, um aus einem Zertifikat aus der Verwaltungs-PKI einen JSON-Web-Key zu erzeugen: + +1. Das von der Verwaltungs-PKI signierte Zertifikat muss nun in einen JWK umgewandelt werden: + + ```bash + openssl x509 -in certificate.pem -pubkey -noout + ``` + +2. :construction: :warning: *Muss noch geklärt werden* + + ```bash + # pubkey --[into]--> JWK + ``` + +Die JSON Web Keys müssen vor der Verwendung in einem Client immer auf Gültigkeit geprüft werden. Das umfasst insbesondere folgende Punkte: + +- Ãœberprüfung gegen eine Certificate Revocation List und/oder einen OCSP-Endpunkt mit signierten Antworten. +- Ãœberprüfung der Zertifikats-Kette bis zum Wurzelzertifikat (BSI) über das Attribut `x5c` im JWK + +Weitere Informationen zur Gültigkeitsprüfung finden sich im BSI [TR-02103](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02103/BSI-TR-02103.pdf?__blob=publicationFile&v=4) und im Abschnitt "[Anforderungen an das kryptografische Material](#Vorgaben-für-kryptographische-Verfahren)" . + +### Vorgaben für JSON Web Keys zur Verschlüsselung {#encryption-requirements} + +Der resultierende JWK muss, falls er für die Verschlüsselung genutzt werden soll, in FIT-Connect über die folgenden Attribute gemäß [RFC 7517](https://tools.ietf.org/html/rfc7517#section-4) verfügen: + +| Feld | Inhalt | **Erläuterung** | +| ------- | ----------------------------------------- | ------------------------------------------------------------ | +| kty | "RSA" | Keytype gemäß [RFC 7517, Abschnitt 4](https://tools.ietf.org/html/rfc7517#section-4) | +| key_ops | ["wrapKey"] | Funktion des Keys (Verschlüsselung des symmetrischen Verschlüsselungskeys) gemäß [RFC 7517, Abschnitt 4.3](https://tools.ietf.org/html/rfc7517#section-4.3) | +| alg | "RSA-OAEP-256" | Vorgesehener Algorithmus zur Ver- und Entschlüsselung in Kombination mit diesem JWK. Vorgabe gemäß [BSI TR-02102-1, Abschnitt 3.6](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html) | +| x5c | *Die gemäß RFC kodierte Zertifikatskette* | Zertifikatskette vom Teilnehmer:innen-Zertifikat bis zum Wurzelzertifikat einschließlich aller Zwischenzertifikate gemäß [Abschnitt 4.7 RFC 7518](https://tools.ietf.org/html/rfc7517#section-4.7). Hinweis: Gemäß RFC muss das erste Zertifikat der hinterlegten Zertifikatskette dem Teilnehmer:innen-Zertifikat entsprechen. | +| kid | *Eindeutige ID des Keys* | Eindeutige ID zur Referenzierung des JSON Web Key gemäß [RFC 7516, Abschnitt 4.1.6](https://tools.ietf.org/html/rfc7516#section-4.1.6) dar. Es wird empfohlen, hierfür eine UUID gemäß [RFC 4122](https://tools.ietf.org/html/rfc4122) zu verwenden. | +| n | *Modulus des Public Key zum Zertifikat* | Der Modulus des Public Key gemäß [RFC 7518, Abschitt 6.3.1.1](https://tools.ietf.org/html/rfc7518.html#section-6.3.1.1) ("Base64urlUInt" enkodiert) | +| e | "AQAB" | Der Exponent des Public Key gemäß [RFC 7518, Abschitt 6.3.1.2](https://tools.ietf.org/html/rfc7518.html#section-6.3.1.2)) | + +Das bedeutet, der JSON Web Key zur Verschlüsselung muss diesem Format entsprechen: + +```json +{ + "kty": "RSA", + "key_ops": ["wrapKey"], + "alg": "RSA-OAEP-256", + "n": "……(Public Key)……", + "e": "AQAB", + "kid": "……(Key ID)……", + "x5c": [ + "……(base64 encoded cert)……", + "……(base64 encoded intermediate cert)……", + "……(base64 encoded root cert)……" + ] +} +``` diff --git a/docs/getting-started/overview.md b/docs/getting-started/overview.md new file mode 100644 index 0000000000000000000000000000000000000000..813eb6d5a1ed48f2da4e8261f7dc2c308b5e998f --- /dev/null +++ b/docs/getting-started/overview.md @@ -0,0 +1,13 @@ +# Ãœberblick + +Im folgenden "Getting Started"-Guide wird beschrieben, wie die ersten Interaktionen mit FIT-Connect ablaufen und FIT-Connect integriert werden kann. +In den nächsten Abschnitten wird dann beschrieben, wie man sich gegenüber FIT-Connect authentifiziert, Daten für die Ãœbertragung +ver- und entschlüsselt werden, sowie welche Schritte für das einreichen bzw. empfangen von Einreichungen notwendig sind. + +:::note Hinweis + +Als Voraussetzungen hierfür ist es notwendig einen Account zu besitzen, wie in "[Registrierung und Account-Verwaltung](../account.md)" beschrieben ist. + +::: + + diff --git a/docs/getting-started/receiving/decrypt.mdx b/docs/getting-started/receiving/decrypt.mdx new file mode 100644 index 0000000000000000000000000000000000000000..372bafb3a22af6aec8f9556dc81f6927bd91644f --- /dev/null +++ b/docs/getting-started/receiving/decrypt.mdx @@ -0,0 +1,66 @@ +--- +sidebar_position: 5 +title: Entschlüsseln +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +Um eine Einreichung korrekt verarbeiten und überprüfen zu können müssen zuerst alle verschlüsselten Informationen entschlüsselt werden. +Darunter fallen beispielsweise die Metadaten, die Fachdaten (falls vorhanden) oder Anlagen (falls vorhanden). + +## Entschlüsseln von Daten in empfangenden Systemen + +<Tabs + defaultValue="java" + values={[ + { label: 'Java (Spring)', value: 'java', }, + { label: 'C#', value: 'csharp', }, + ] +}> +<TabItem value="java"> + +Wenn ein empfangendes System (z.B. eine Fachanwendung oder virtuelle Poststelle) einen Einreichung erhält, kann es diese +mit Hilfe des privaten Schlüssels und der Java-Bibliothek [`nimbus-jose-jwt`](https://connect2id.com/products/nimbus-jose-jwt) entschlüsseln. + +```xml +<dependency> + <groupId>com.nimbusds</groupId> + <artifactId>nimbus-jose-jwt</artifactId> + <version>9.X.X</version> +</dependency> +``` + +Hierfür muss zuerst der private Schlüssel eingelesen werden. Bei `nimbus-jose-jwt` gibt es für RSA Schlüssel die Klasse `RSAKey`, um diese zu lesen: + +```java +// ⤹ InputStream +String keyStr = new String(existingPrivateKey.readAllBytes()); +RSAKey jwk = RSAKey.parse(keyStr); +``` + +Nach dem Einlesen können die verschlüsselten Daten (repräsentiert als Base64URL-kodierter String) mit Hilfe des Schlüssels entschlüsselt werden. +Auch hier wird wieder abhängig vom Schlüssel eine entsprechende Klasse für die Entschlüsselung verwendet, im Falle der RSA Schlüssel die Klasse `RSADecrypter`. + +```java +// ⤹ InputStream +String encryptedStr = new String(jweString.readAllBytes()); +JWEObject jweObject = JWEObject.parse(encryptedStr); + +jweObject.decrypt(new RSADecrypter(jwk)); +``` + +Abschließend kann die entschlüsselte Payload weiterverarbeitet oder, wie in diesem Fall, einfach ausgegeben werden. + +```java +System.out.println(jweObject.getPayload().toString()); +``` +</TabItem> +<TabItem value="csharp"> + +```csharp +// TBD +``` + +</TabItem> +</Tabs> diff --git a/docs/getting-started/receiving/destination.mdx b/docs/getting-started/receiving/destination.mdx new file mode 100644 index 0000000000000000000000000000000000000000..0cf132afc5943ba51dc9ca785256173e4c679920 --- /dev/null +++ b/docs/getting-started/receiving/destination.mdx @@ -0,0 +1,128 @@ +--- +sidebar_position: 2 +title: Zustellpunkt +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +Behörden können über das FIT-Connect System Zustellpunkte für Anträge bereitstellen. In der Regel geben sie dabei an, für welches Gebiet +sie welche Einreichung aus dem Leistungskatalog entgegennehmen. Darauf erhalten sie eine Id für den Zustellpunkt (`destinationId`), +welche eine eindeutige Zustelladresse in der Zustelldienstinstanz für diese Leistung repräsentiert. Diese Id wird im Dienstverzeichnis +zusammen mit der LeiKa-ID und den Gemeindekennungen gelistet und wird somit für Antragsversender auffindbar. + +Nachdem ein Zustellpunkt angelegt wurde, können über diesen Anträge empfangen werden. Wenn eine Einreichung für diesen eingegangen ist, +wird das empfangende System darüber über einen Callback benachrichtigt. Um die Einreichung abzurufen, muss das empfangende System sich zuerst via OAuth2 authentifizieren +und kann sich dann mithilfe des JWT gegenüber der FIT-Connect API autorisieren und die Einreichung abrufen. + +## Zustellpunkt anlegen + +Ein Zustellpunkt kann entweder programmatisch oder über das Self-Service-Portal angelegt werden. + +<Tabs + defaultValue="curl" + values={[ + { label: 'curl', value: 'curl', }, + { label: 'Self-Service-Portal', value: 'ssp', }, + ] +}> +<TabItem value="curl"> + +Im Falle der programmatischen Variante muss eine [HTTP POST Nachricht](../../apis/delivery-service#post-/destinations) an den Endpunkt des Zustellpunktes gesendet werden, +der alle notwendigen Informationen beinhaltet. Ein exemplarischer Inhalt ist unten abgebildet. + +```json title="myDestination.json" +{ + "contactInformation": { + "legalName": "Batman Ltd.", + "address": "Batmansq. 31, 10000 Berlin, DE", + "phone": "+49111111111", + "email": "max.mustermann@musterstadt.de", + "unit": "Referat Gotham" + }, + "schemas": [ + { + "schemaURI": "urn:x-what:some-schema", + "mimeType": "application/xml" + } + ], + "callback": "https://example.com/callback", + "encryptionKid": "my-key-id-0xfff", + "publicKeys": { + "keys": [ + { + "kty": "RSA", + "kid": "my-key-id-0xfff", + "alg": "RSA-OAEP-256", + "key_ops": ["wrapKey"], + "x5c": [ + "MIID2DCCAkmgAwIBAgIGAXo...w73tI1m1+QAU/6chTyAWvxvATklto2KV+i36lw==" + ], + "e": "AQAB", + "n": "hwAvWxlwpz7sH...2f0u3Ktf1tzzeGTl4UVnUrE35eXF" + } + ] + } +} +``` + +Wenn die JSON-Datei entsprechend befüllt ist und man ein [gültiges JWT](../authentication) hat, kann über den Befehl unten der Zustellpunkt angelegt werden. + +:::note Hinweis + Soll ein Zustellpunkt nur aktualisiert werden, muss anstelle eines POST-Befehls ein [PUT-Befehl](../../apis/delivery-service#put-/destinations/-destinationId-) für den entsprechenden Zustellpunkt gesendet werden. +::: + +```bash +$ export SERVICE_URL=... +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/json" \ + --data "@./myDestination.json" \ + -X POST $SERVICE_URL/destionations +> { + "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047", + "schemas": [ + { + "schemaURI": "urn:x-what:some-schema", + "mimeType": "application/xml" + } + ], + "encryptionKid": "my-key-id-0xfff", + "publicKeys": { + "keys": [ + { + "kty": "RSA", + "kid": "my-key-id-0xfff", + "alg": "RSA-OAEP-256", + "key_ops": ["wrapKey"], + "x5c": [ + "MIID2DCCAkmgAwIBAgIGAXo...w73tI1m1+QAU/6chTyAWvxvATklto2KV+i36lw==" + ], + "e": "AQAB", + "n": "hwAvWxlwpz7sH...2f0u3Ktf1tzzeGTl4UVnUrE35eXF" + } + ] + }, + "contactInformation": { + "legalName": "Batman Ltd.", + "address": "Batmansq. 31, 10000 Berlin, DE", + "phone": "+49111111111", + "email": "max.mustermann@musterstadt.de", + "unit": "Referat Gotham" + }, + "callback": "https://example.com/callback" + } +``` + +</TabItem> + +<TabItem value="ssp"> + +:::caution +Das Self-Service-Portal befindet sich noch in der Konzeption und ist daher noch nicht dokumentiert. +::: + +</TabItem> + +</Tabs> diff --git a/docs/getting-started/receiving/download-submission.mdx b/docs/getting-started/receiving/download-submission.mdx new file mode 100644 index 0000000000000000000000000000000000000000..4d5a45edaf536244949bd5eb8dde17783ceb9418 --- /dev/null +++ b/docs/getting-started/receiving/download-submission.mdx @@ -0,0 +1,46 @@ +--- +sidebar_position: 4 +title: Einreichung herunterladen +--- + +In den Ausschnitten unten wird zuerst gezeigt, wie die allgemeinen Informationen abgefragt werden. +Abhängig von der Struktur `announcedContentStructure` können dann noch weitere Ressourcen geladen werden. +Der Marker `data` gibt an, ob in dem Feld `encryptedData` Inhalt sein sollte oder nicht. +In `attachments` sind die Identifikatoren der Anlagen zu finden, die separat herunterzuladen sind, wie im zweiten Beispiel gezeigt ist. + +```bash title="Abfrage der Einreichung inkl. Fachdaten und Metadaten" +$ export SERVICE_URL=<URL> +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ export SUBMISSION_ID=9d618546-0ff7-4e93-9f15-714e5dd1bf12 +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/json" \ + -X GET $SERVICE_URL/submissions/$SUBMISSION_ID +> { + "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", + "submissionId": "9d618546-0ff7-4e93-9f15-714e5dd1bf12", + "attachments": [], + "currentStatus": "forwarded", + "encryptedMetadata": "eyJhbGciOiA...5XZMvG-fAJ6oDnAw", + "encryptedData": null, + "statusHistory": [...], + "announcedContentStructure": { + "data": false, + "attachments": [ + "122668ad-3081-497c-9358-7ce4b6144b02", + ] + } +} +``` + +```bash title="Herunterladen einer Anlage" +$ export SERVICE_URL=<URL> +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ export SUBMISSION_ID=9d618546-0ff7-4e93-9f15-714e5dd1bf12 +$ export ATTACHMENT_ID=122668ad-3081-497c-9358-7ce4b6144b02 +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/jose" \ + -X GET $SERVICE_URL/submissions/$SUBMISSION_ID/attachments/$ATTACHMENT_ID +> 6r4H2H_WIzCv8Pd-uetmcbK...iVBKF3ylHRUahmZ +``` diff --git a/docs/getting-started/receiving/overview.mdx b/docs/getting-started/receiving/overview.mdx new file mode 100644 index 0000000000000000000000000000000000000000..e6593c0bc74a62bde0d101dd35f8f7a38558b3b4 --- /dev/null +++ b/docs/getting-started/receiving/overview.mdx @@ -0,0 +1,28 @@ +--- +sidebar_position: 1 +title: Ãœberblick +--- + +import Mermaid from '@site/src/components/Mermaid' + +Für den Empfang von Einreichungen und die Verarbeitung dieser werden in diesem und den folgenden Abschnitten alle notwendigen Aktionen beschrieben, um schnell die ersten Schritte machen zu können. +Als Leitlinie dafür ist der unten dargestellte Prozessablauf heranzuziehen, dessen Schritte im Folgenden beschrieben werden. + +<Mermaid> +sequenceDiagram + participant C as Client; + participant F as FIT Connect; + C->>F: Zustellpunkt anlegen; + alt Callback; + F->>C: Ãœber neue Einreichung benachrichtigen; + else Polling; + loop; + C->>F: Vorhandensein neuer Einreichungen abfragen; + end; + end; + C->>F: Einreichung abfragen; + F->>C: Metadaten, Fachdaten erhalten; + C->>C: Anlagen herunterladen; + C->>C: Metadaten, Fachdaten & Anlagen entschlüsseln; + C->>F: Empfang & Validität der Einreichung bestätigen; +</Mermaid> diff --git a/docs/getting-started/receiving/process-and-acknowledge.mdx b/docs/getting-started/receiving/process-and-acknowledge.mdx new file mode 100644 index 0000000000000000000000000000000000000000..b77fd15612030477426b0d4da3e292008a66339c --- /dev/null +++ b/docs/getting-started/receiving/process-and-acknowledge.mdx @@ -0,0 +1,21 @@ +--- +sidebar_position: 7 +title: Empfangsbestätigung +--- + +Der letzte Schritt zum Empfang einer Einreichung ist die Bestätigung des Empfangs und damit auch der Gültigkeit der Einreichung. +Mit Gültigkeit ist hier gemeint, dass alle Informationen erfolgreich heruntergeladen, entschlüsselt und im Falle der Metadaten validiert werden konnten. + +Jede weitere Validierung kann durchgeführt werden, hängt jedoch nicht mehr mit dem Transport, sondern der fachlichen Gültigkeit zusammen. +Der Empfang wird nun über ein HTTP PUT bestätigt, sodass das sendende System benachrichtigt werden kann. + + +```bash +$ export SERVICE_URL=<URL> +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ export SUBMISSION_ID=9d618546-0ff7-4e93-9f15-714e5dd1bf12 +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/json" \ + -X PUT $SERVICE_URL/submissions/$SUBMISSION_ID +``` diff --git a/docs/getting-started/receiving/query.mdx b/docs/getting-started/receiving/query.mdx new file mode 100644 index 0000000000000000000000000000000000000000..251f311c1b8c5592c48214fe224bac50e0f108cf --- /dev/null +++ b/docs/getting-started/receiving/query.mdx @@ -0,0 +1,41 @@ +--- +sidebar_position: 3 +title: Vorhandensein neuer Einreichungen prüfen +--- + +Neue Einreichungen können über zwei Wege erhalten werden. Entweder können neue Einreichungen über Polling abgefragt werden oder der Zustellpunkt wird über einen Callback vom Zustelldienst benachrichtigt. +Letzteres wäre die präferierte Variante, da dadurch unnötige Anfragen vermieden werden können und die Kommunikation so auf ein notwendiges Mindestmaß reduziert wäre. + +## Callback + +Wenn eine neue Einreichung im Zustelldienst bereitsteht und eine Callback-URL im Zustellpunkt hinterlegt ist, kann der Zustelldienst den Zustellpunkt direkt informieren. +Das Format, in welchem der Callback übertragen wird, ist in der [API-Spezifikation](../../apis/delivery-service#post-/destinations) beschrieben. +Im Endeffekt, ist es jedoch ein Array mit UUIDs für jede bereitstehende Einreichung, wie im Beispiel unten. + +```json +[ + "17a3abf4-8980-4000-89cb-dce5cdda9501" +] +``` + +Wenn der Zustellpunkt benachrichtigt wird, dann kann dieser über mehrere Befehle die Einreichung mit allen verbundenen Ressourcen herunterladen. +Mehrere Befehle dahingehend, da erst alle allgemeinen Informationen zur Einreichung heruntergeladen werden müssen und dann, falls notwendig alle mit ihr verbundenen Anlagen. + +## Polling + +Ãœber Polling, regelmäßiges Abfragen der Schnittstelle, können alle Einreichungen abgefragt werden, die zum Abholen bereitstehen. + +```bash +$ export SERVICE_URL=<URL> +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/json" \ + -X GET $SERVICE_URL/submissions +> { + "submissions": [ + ... + ] +} +``` + diff --git a/docs/getting-started/receiving/validate.mdx b/docs/getting-started/receiving/validate.mdx new file mode 100644 index 0000000000000000000000000000000000000000..f1d2467fd25f69380f055035a7e887ceb0aeaa2e --- /dev/null +++ b/docs/getting-started/receiving/validate.mdx @@ -0,0 +1,35 @@ +--- +sidebar_position: 6 +title: Validierung +--- + +Das Minimum, was an Information vorhanden sein muss sind die Felder `contentStructure` und `submissionId`. Zustäzlich können je nach Anwendungsfall oder Notwendigkeit weitere Felder auf Existenz überprüft werden. Die gültigen Formate sind im Schema definiert und können mit Hilfe von Bibliotheken für die Validierung einer Instanz von Antragsmetadaten verwendet werden. Beispiele für die Definition von Formaten für Felder sind unten aufgeführt. + +```json +{ + ... + "country": { + "type": "string", + "description": "Staat gemäß Codeliste [https://www.xrepository.de/details/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:staat](Codeliste Staat aus der Staats- und Gebietssystematik des Statistischen Bundesamtes)", + "minLength": 3, + "maxLength": 3, + "pattern": "^[0-9]{3}$" + }, + ... + "postalCode": { + "type": "string", + "description": "Postleitzahl", + "minLength": 5, + "maxLength": 5, + "pattern": "^([0]{1}[1-9]{1}|[1-9]{1}[0-9]{1})[0-9]{3}$" + }, + ... + "submissionId": { + "type": "string", + "format": "uuid", + "pattern": "^[-_.A-Za-z0-9]+$", + "description": "ID der Einreichung" + }, + ... +} +``` diff --git a/docs/getting-started/sending/attachments.mdx b/docs/getting-started/sending/attachments.mdx new file mode 100644 index 0000000000000000000000000000000000000000..7f03d427c1691998845f30ed7556efe60e5bb6e9 --- /dev/null +++ b/docs/getting-started/sending/attachments.mdx @@ -0,0 +1,78 @@ +--- +title: Anlagen +sidebar_position: 3 +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +Anlagen sind Bestandteil einer Einreichung, die nicht zwingend maschinenlesbar oder an Standards geknüpft sind. +Sie können beim Anlegen einer Einreichung mit angekündigt und dann im weiteren Verlauf hochgeladen werden. + +In dem folgenden Ausschnitt wird dargestellt, wie eine bereits verschlüsselte Datei an eine Einreichung angehängt und hochgeladen werden kann. + +<Tabs + defaultValue="curl" + values={[ + { label: 'curl', value: 'curl', }, + { label: 'JavaScript', value: 'js', }, + { label: 'Java (Spring)', value: 'java', }, + { label: 'C#', value: 'csharp', }, + ] +}> +<TabItem value="curl"> + + ```bash + $ export SERVICE_URL=... + $ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA + $ export SUBMISSION_ID=63f0c991-0635-4e18-8a4b-fb0c01de9f5c + $ export ATTACHMENT_ID=90ae8309-2102-4e81-a325-ceda480d0e9d + $ export ENC_FILE_CONTENT=6r4H2H_WIzCv8Pd-uetmcbK...iVBKF3ylHRUahmZ + $ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/jose" \ + --data "$ENC_FILE_CONTENT" \ + -X PUT $SERVICE_URL/submissions/$SUBMISSION_ID/attachments/$ATTACHMENT_ID + ``` + +</TabItem> +<TabItem value="js"> + + ```js + import axios from 'axios' + + const baseUrl=... + const token="eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA" + const submissionId="63f0c991-0635-4e18-8a4b-fb0c01de9f5c" + const attachmentId="90ae8309-2102-4e81-a325-ceda480d0e9d" + const data="6r4H2H_WIzCv8Pd-uetmcbK...iVBKF3ylHRUahmZ" + + axios.put( + `/submissions/${submissionId}/attachments/${attachmentId}`, + data + { + baseURL, + timeout: 2000, + headers: { + 'Content-Type': 'application/jose', + 'Authentication': `Bearer ${token}`, + } + } + ) + ``` + + +</TabItem> + +<TabItem value="java"> + ```java + // TBD + ``` +</TabItem> + +<TabItem value="csharp"> + ```java + // TBD + ``` +</TabItem> +</Tabs> diff --git a/docs/getting-started/sending/data.mdx b/docs/getting-started/sending/data.mdx new file mode 100644 index 0000000000000000000000000000000000000000..c8438d645402d7740cfc5f5da13c6672ae98aa59 --- /dev/null +++ b/docs/getting-started/sending/data.mdx @@ -0,0 +1,7 @@ +--- +title: Fachdaten +sidebar_position: 4 +--- + +- Wie werden Fachdaten erstellt? +- Wie werden Fachdaten genutzt? diff --git a/docs/getting-started/sending/encrypt.mdx b/docs/getting-started/sending/encrypt.mdx new file mode 100644 index 0000000000000000000000000000000000000000..d285794464259dc938d332d8859c298b8287f23b --- /dev/null +++ b/docs/getting-started/sending/encrypt.mdx @@ -0,0 +1,129 @@ +--- +sidebar_position: 2 +title: Verschlüsseln +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +Viele Daten, die über den Zustelldienst übertragen werden, enthalten schützenswerte Informationen und müssen verschlüsselt werden. Dazu gehören die Metadaten der Einreichung, die Fachdaten selbst, sowie alle zugehörigen Anlagen. +Gegeben, dass ein öffentlicher Teil eines JWK eines Zustellpunktes vorhanden ist, können mit diesem Daten für diesen Zustellpunkt verschlüsselt werden. Ein Beispiel für den öffentlichen Teil eines JWK ist unten aufgeführt. + +```json +{ + "kty": "RSA", + "e": "AQAB", + "keyops": ["wrapKey"], + "x5c": [ + "LS0tLS1CRUdJTiBDRVJU...jN1NGKzQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" + ], + "x5t": "MTg6NTU6RUY6ME...MEM6QzM6ODQ6QjA6MkE6RkMK", + "kid": "787f3a1c-7da7-44d7-9b79-9783b1ea9be8", + "alg": "RSA-OAEP-256", + "n": "sX2DX7rG5BoJd23...FlxHZt8T6ZqjRa1QcFnkq3_M4-tk" +} +``` + +<Tabs + defaultValue="js" + values={[ + { label: 'JavaScript', value: 'js', }, + { label: 'Java', value: 'java', }, + ] +}> +<TabItem value="js"> + +Die Umwandelung des JWK in eine Struktur, die für die Bibliothek [panva/jose](https://github.com/panva/jose) nutzbar ist, kann mithilfe einer Methode aus dieser Bibliothek durchgeführt werden. + +```js +import { parseJwk } from "jose/jwk/parse" +import { CompactEncrypt } from "jose/jwe/compact/encrypt" + +const publicKey = await parseJwk({ + "kty": "RSA", + "e": "AQAB", + "keyops": ["wrapKey"], + "x5c": [ + "LS0tLS1CRUd...LS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" + ], + "x5t": "MTg6NTU6RUY6ME...M6MEM6QzM6ODQ6QjA6MkE6RkMK", + "kid": "787f3a1c-7da7-44d7-9b79-9783b1ea9be8", + "alg": "RSA-OAEP-256", + "n": "sX2DX7rG5BoJd23A0...6ZqjRa1QcFnkq3_M4-tk" +}) +``` + +Mit diesem umgewandelten Schlüssel können nun Zeichenketten und Binärdaten verschlüsselt werden. Im Großen und Ganzen kann alles verschlüsselt werden, was vorher in ein `Uint8Array` umgewandelt wurde. + +Für Texte kann man hier den TextEncoder aus der Browser-Runtime nutzen, der den String in die UTF8-Bytes und damit in ein `Uint8Array` umwandelt. + +```javascript +const data = { + config: 'option1', + age: 42 +} + +const encodedText = new TextEncoder().encode(JSON.stringify(data)) +const encryptedText = await new CompactEncrypt(encodedText) + .setProtectedHeader({ alg: "RSA-OAEP-256", enc: "A256GCM" }) + .encrypt(publicKey) +``` + +Anhänge wie PDF-Dateien, Bilder o. ä. liegen meist in einem `Uint8Array` vor bzw. können einfach darin umgewandelt werden. +Im folgenden Beispiel wird eine Datei aus einem HTML-File-Input direkt heraus verschlüsselt. + +```javascript +// .arrayBuffer() => https://developer.mozilla.org/en-US/docs/Web/API/Blob/arrayBuffer +// Verschlüsselung der ersten Datei aus einem Datei-Input: <input type="file" id="my-file-input" /> +const buffer = await document.getElementById("my-file-input").files[0].arrayBuffer() +const encryptedText = await new CompactEncrypt(buffer) + .setProtectedHeader({ alg: "RSA-OAEP-256", enc: "A256GCM" }) + .encrypt(publicKey) +``` + +</TabItem> +<TabItem value="java"> + +Wenn ein sendendes System Daten einer Einreichung verschlüsseln möchte, kann es dies mit Hilfe der Java-Bibliothek [`nimbus-jose-jwt`](https://connect2id.com/products/nimbus-jose-jwt) durchführen. + +```xml +<dependency> + <groupId>com.nimbusds</groupId> + <artifactId>nimbus-jose-jwt</artifactId> + <version>9.X.X</version> +</dependency> +``` + +Da in FIT-Connect ausschließlich RSA-Schlüssel erlaubt sind, muss der RSAKey-Parser aus der Bibliothek verwendet werden, um den JWK einzulesen. + +```java +// ⤹ InputStream +String publicKeyAsString = new String(existingPublicKey.readAllBytes()); +RSAKey publicKey = RSAKey.parse(publicKeyAsString).toRSAPublicKey(); +``` + +Mit diesem umgewandelten Schlüssel können nun Texte und Binärdaten verschlüsselt werden. +Ãœber die [Payload-Klasse](https://www.javadoc.io/doc/com.nimbusds/nimbus-jose-jwt/latest/com/nimbusds/jose/Payload.html) können verschiedene Typen, +wie `byte[]` oder `String`, verschlüsselt werden. + +```java +JWEHeader header = new JWEHeader(JWEAlgorithm.RSA_OAEP_256, EncryptionMethod.A256GCM); + +Payload payload = new Payload("{ \"Hello\": \"World\"}"); +/// Alternativ, bei einer Datei +Payload payload = new Payload(aFileInputStream.readAllBytes()); + +JWEObject jweObject = new JWEObject(header, payload); + +try { + jweObject.encrypt(new RSAEncrypter(publicKey)); + String encrypted = jweObject.serialize(); + + System.out.println("Encrypted Text:"); + System.out.println(encrypted); +} catch (JOSEException e) { + e.printStackTrace(); +} +``` +</TabItem> +</Tabs> diff --git a/docs/getting-started/sending/metadata.mdx b/docs/getting-started/sending/metadata.mdx new file mode 100644 index 0000000000000000000000000000000000000000..463dd230e998e6615b60125c446a552f79443986 --- /dev/null +++ b/docs/getting-started/sending/metadata.mdx @@ -0,0 +1,47 @@ +--- +title: Metadaten +sidebar_position: 5 +--- + +Die Antragsmetadaten beschreiben die Struktur der Einreichung und dessen Inhalte, wie beispielsweise Anhänge oder die Fachdaten. Zustätzlich können weitere Informationen über den/die AntragsstellerInnen hinterlegt werden. Eine genaue Definition ist unter XYZ zu finden bzw. direkt im [Schema](https://fitko.uber.space/v1.0.0-alpha15/antragsmetadaten.schema.json) zu finden. + +Im Folgenden wird nun beschrieben, wie für das Versenden einer Einreichung das Schema aufgebaut und befüllt wird, sowie beim Empfangen einer Einreichung dieser entschlüsselt und gegen das Schema validiert wird. + +Das Minimum, was an Antragsmetadaten hinterlegt werden muss, ist eine Beschreibung der Struktur der Einreichung, sowie die ID der Einreichung selbst. +In der Beschreibung der Struktur muss angegeben werden, ob Fachdaten mit versendet werden und in welchem Format diese sind. Des Weiteren können Anhänge mit ihren Metainformationen beschrieben werden, die dem Einreichung beigefügt sind. + +Ein Beispiel hierfür ist unten dargestellt: + +```json +{ + "contentStructure": { + "data": { + "schema": { + "mimeType": "application/json", + "schemaSource": "https://schema.fitko.de/fim/fim.S00000147.00000147001002.json" + } + }, + "docs": [ + { + "docId": "1", + "purpose": "form", + "size": 13046, + "mimeType": "application/pdf", + "filename": "test.pdf", + "description": "Das Antragsformular", + "lang": { + "lang": "de", + "region": "DE" + }, + "hash": { + "algorithm": "SHA-256", + "digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9" + } + } + ] + }, + "submissionId": "ce75a6b8-d72f-4b94-b09e-af6be35bc2ae" +} +``` + +Abhängig von den Rahmenbedingungen können die weiteren Felder, die im Antragsmetadatenschema definiert sind, befüllt werden und mitversendet werden. Ob diese jedoch ausgewertet werden oder nicht hängt von dem entsprechenden Empfänger ab. diff --git a/docs/getting-started/sending/overview.mdx b/docs/getting-started/sending/overview.mdx new file mode 100644 index 0000000000000000000000000000000000000000..a8137c8fcab4879b0b2518e82651fcffdf8ddbc8 --- /dev/null +++ b/docs/getting-started/sending/overview.mdx @@ -0,0 +1,178 @@ +--- +sidebar_position: 1 +title: Ãœberblick +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' +import Mermaid from '@site/src/components/Mermaid' + +Bei einer Einreichung z. B. eines Antrags reicht ein Onlineservice im Namen und Auftrag eines Endnutzers Fachdaten und/oder Anlagen bei einem Zustellpunkt ein. +Hierfür benötigt der Onlinedienst die öffentlich verfügbaren Informationen eines Zustellpunktes, wie beispielsweise die Zustellpunkt-Id (`destinationId`) oder den JWK des Zustellpunktes. +Wie man an diese Informationen gelangt ist im [Folgenden](#get-destination-infos) genauer beschrieben. + +FIT-Connect möchte einen sehr sicheren Ãœbermittlungsweg bereitstellen, weswegen alle Daten immer vom Browser des Users bis in die Behörde Ende-zu-Ende-Verschlüsselt übertragen werden müssen. +Das dafür benötigte Schlüsselmaterial wird auch über die FIT-Connect-API bereitgestellt und der Umgang damit im Weiteren erklärt. + +Während der Einreichung erhält man von der API eine `submissionId`, mithilfe welcher man nach der Abgabe den Event Log der Einreichung abrufen kann. +Dieser Event Log enthält eine Liste von Ereignissen, ähnlich wie im Interface einer Paketverfolgung, mit denen der aktuelle Zustellungsstatus der Einreichung transparent wird. + +## Prozessablauf + +<Mermaid> +sequenceDiagram; + participant C as Client; + participant F as FIT Connect; + C->>F: Einreichung anlegen & ankündigen; + C->>C: Anlagen verschlüsseln; + C->>F: Anlagen hochladen; + C->>C: Metadaten befüllen & verschlüsseln; + C->>C: Fachdaten verschlüsseln; + C->>F: Fachdaten & Metadaten hochladen und Einreichung absenden; +</Mermaid> + + +## Informationen des Zustellpunktes erhalten {#get-destination-infos} + +Um an einen Zustellpunkt eine Einreichung zu übermitteln ist es notwendig dessen öffentlichen Informationen zu haben. Dazu gehören seine Id, die unterstützten Schemas und +der öffentliche Schlüssel, der zur Verschlüsselung der Daten genutzt werden soll. + +<Tabs + defaultValue="curl" + values={[ + { label: 'curl', value: 'curl', }, + { label: 'Self-Service-Portal', value: 'ssp', }, + ] + }> +<TabItem value="curl"> + +Ãœber `curl` können diese Information mit dem Folgenden Aufruf erhalten werden. + +```bash +$ export SERVICE_URL=... +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ export DESTINATION_ID=7a2668ad-3081-407c-9358-7ce4b6144b02 +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/json" \ + -X GET $SERVICE_URL/destinations/$DESTINATION_ID + +> { + "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047", + "schemas": [ + { + "schemaURI": "urn:fitko:schema-x" + } + ], + "encryptionKid": "c66e4423-e28d-4a1f-911d-818f9ab60221", + "publicKeys": { + "keys": [{ + "kty": "RSA", + "key_ops": [ + "wrapKey" + ], + "alg": "RSA-OAEP-256", + "x5c": [ + "...(base64 encoded cert)...", + "...(base64 encoded intermediate cert)...", + "...(base64 encoded root cert)..." + ], + "kid": "c66e4423-e28d-4a1f-911d-818f9ab60221", + "n": "hGALqq-nbAymF5M...puHAyo3-iMf3UaBsPj0s", + "e": "AQAB" + }] + } + } +``` + +</TabItem> +<TabItem value="ssp"> + +:::caution +Das Self-Service-Portal befindet sich noch in der Konzeption und ist daher noch nicht dokumentiert. +::: + +</TabItem> +</Tabs> + +## Eine neue Einreichung beginnen + +Das Beginnen einer neuen Einreichung über die API erfordert den Versand einer [HTTP POST Nachricht](../../apis/delivery-service#post-/applications), die definiert, an welchen Zustellpunkt der Einreichung versendet werden soll und welche Inhalte übermittelt werden sollen. +Die Inhalte umfassen hierbei die Identifikatoren der Anhänge als UUIDs und die Information, ob Fachdaten mit versendet werden oder nicht. + +<Tabs + defaultValue="curl" + values={[ + { label: 'curl', value: 'curl', }, + { label: 'Java (Spring)', value: 'java', }, + { label: 'JavaScript', value: 'js', }, + { label: 'C#', value: 'csharp', }, + ] +}> +<TabItem value="curl"> + +```bash +$ export SERVICE_URL=... +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ export DESTINATION_ID=7a2668ad-3081-407c-9358-7ce4b6144b02 +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/json" \ + --data "{ \"destinationId\": \"$DESTINATION_ID\", \"\" { \"data\": false, \"attachments\": [] } }" \ + -X POST $SERVICE_URL/submissions + +> { + "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", + "submissionId": "9d618546-0ff7-4e93-9f15-714e5dd1bf12" +} +``` + +</TabItem> +<TabItem value="java"> + +```java +// TBD +``` + +</TabItem> +<TabItem value="js"> + +```js +import axios from 'axios' + +const url = '/submissions' +const data = { + destinationId: 'a1270669-ea36-4a0c-8f8f-c9d490e7f2bc', + announcedContentStructure: { + data: true, + attachments: [ + '1da99641-2067-4e8b-b049-91b2a6c90544', + '538a1365-092e-4d80-93b9-90eb8c1f5982' + ] + } +} +const token = 'eyJhbGciOiJIUzI1NiJ9.eyJyYW5kb20iOiJyYW5kb20ifQ.lXckRWoWCUBGM4ACZ6wIhYqplJeSw0HMEfE91jD1JPU' + +axios.post( + url, + data + { + baseURL, + timeout: 2000, + headers: { + 'Authentication': `Bearer ${token}` + } + } +) +``` + +</TabItem> +<TabItem value="csharp"> + +```chsarp +TBD +``` + +</TabItem> +</Tabs> + diff --git a/docs/getting-started/sending/query-status.mdx b/docs/getting-started/sending/query-status.mdx new file mode 100644 index 0000000000000000000000000000000000000000..0a57c9add7ad80ec5605b25e8c38515f8062f01e --- /dev/null +++ b/docs/getting-started/sending/query-status.mdx @@ -0,0 +1,28 @@ +--- +title: Status abfragen +sidebar_position: 7 +--- + +import Mermaid from '@site/src/components/Mermaid' + +:::caution Hinweis :construction: + +Die Abfrage des Status einer Einreichung ist noch unter Bearbeitung, da das Statusmodell gerade überarbeitet wird. +Zukünftig wird es eine Möglichkeit geben, bzgl. Statusänderungen über einen Callback benachrichtigt zu werden. + +::: + +Nachdem die Einreichung abgeschlossen wurde, kann der Status der Einreichung abgefragt werden. + +<Mermaid> + stateDiagram-v2 + [*] --> Incomplete + Incomplete --> Submitted + Submitted --> Forwarded + Forwarded --> Rejected + Forwarded --> Accepted + Submitted --> Accepted + Submitted --> Rejected + Accepted --> [*] + Rejected --> [*] +</Mermaid> diff --git a/docs/getting-started/sending/submit.mdx b/docs/getting-started/sending/submit.mdx new file mode 100644 index 0000000000000000000000000000000000000000..87f6f8461aeb81f37585a7d69269939fbd300fea --- /dev/null +++ b/docs/getting-started/sending/submit.mdx @@ -0,0 +1,66 @@ +--- +title: Einreichung abschließen +sidebar_position: 6 +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +Abhängig von der angekündigten Struktur einer Einreichung, kann diese abgeschlossen werden, wenn alle angekündigten Dokumente hochgeladen wurden. +Zusammen mit dem Abschluss können Fachdaten und müssen Metadaten mit hochgeladen werden. Ein Beispiel hierfür ist im folgenden Ausschnitt aufgezeigt: + +<Tabs + defaultValue="curl" + values={[ + { label: 'curl', value: 'curl', }, + { label: 'Java (Spring)', value: 'java', }, + { label: 'JavaScript', value: 'js', }, + ] +}> +<TabItem value="curl"> + +```bash +$ export SERVICE_URL=... +$ export JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA +$ export SUBMISSION_ID=63f0c991-0635-4e18-8a4b-fb0c01de9f5c +$ curl \ + -H "Authentication: Bearer $JWT_TOKEN" \ + -H "Content-Type: application/json" \ + --data '{ "encryptedMetadata": "6r4H2H_WIzCv8Pd-uetmcbK...iVBKF3ylHRUahmZ" }' \ + -X POST $SERVICE_URL/submissions/$SUBMISSION_ID +``` + +</TabItem> + +<TabItem value="js"> + +```js +import axios from 'axios' + +const data = { + encryptedMetadata: 'mt2w8Pd-uetmcbKq0MqCw7zyBYj5HHDV1I7F0...', + encryptedData: 'eyJlbmMiOiJB...' +} +const token = 'eyJhbGciOiJIUzI1NiJ9.eyJyYW5kb20iOiJyYW5kb20ifQ.lXckRWoWCUBG...w0HMEfE91jD1JPU' + +axios.post( + '/submissions/63f0c991-0635-4e18-8a4b-fb0c01de9f5c', + data + { + baseURL, + timeout: 2000, + headers: { + 'Content-Type': 'application/json', + 'Authentication': `Bearer ${token}`, + } + } +) +``` + +</TabItem> +<TabItem value="java"> + ```java + TBD + ``` +</TabItem> +</Tabs> diff --git a/docs/more/glossary.mdx b/docs/more/glossary.mdx new file mode 100644 index 0000000000000000000000000000000000000000..db9f3a2130ef6acd43e0626339c0940f50fd2080 --- /dev/null +++ b/docs/more/glossary.mdx @@ -0,0 +1,26 @@ +--- +title: Glossar +hide_table_of_contents: true +--- + +| Begriff | Beschreibung | +|---------|--------------| +| empfangendes System (subscriber) | Das technische System, das Einreichungen auf Verwaltungsseite entgegennimmt. (z.B. Fachanwendung / virtuelle Poststelle) | +| sendendes System (sender) | Das technische System, das eine Einreichung über die Zustelldienst-API vornimmt. (z.B. Online-Antragsservice oder Unternehmenssystem). Dies ist in der Regel ein Online-Antragsservice (spezialisiertes Webportal für eine bestimmte Fachlichkeit), das Endgerät der Antragsteller:in oder auch ein Verwaltungsportal, das typischerweise mehrere Fachlichkeiten / Antragstypen unterstützt. Perspektivisch wären hier auch andere API-Clients denkbar, z.B. spezialisierte Anwendungen zur Antragseinreichung ohne Webinterface oder Fachverfahren der Verwaltung, über die beim Behördengang durch eine Sachbearbeiter:in stellvertretend für die Antragsteller:in ein Einreichung eingereicht wird. | +| API-Client | Ein technisches System, dass auf die APIs (des Zustelldienstes) zugreift. Dieser Begriff kann verwendet werden, wenn eine Unterscheidung zwischen Fachverfahren, virtueller Poststelle, Onlineservice oder Endgerät der antragstellenden Person nicht nötig ist. | +| API-Gateway | Das API-Gateway ist eine technische Komponente, die die Prüfung von OAuth-Tokens prüft und nicht oder falsch authentifizierte Anfragen blockiert. Ein Zugriff auf die Schnittstellen des Zustelldienstes ist ausschließlich über das API-Gateway möglich. | +| Antragsteller:in (applicant) | Bezeichnung der Person, die den Onlinedienst benutzt. Z.B. eine Verwaltungskund:in, die einen Einreichung absendet. | +| Antwort (reply) | Alle auf eine Einreichung (submission) folgende Ãœbertragungen, egal in welche Richtung (sender → subscriber oder subscriber → sender) | +| Anlage (attachment) | Sind Anlagen zu einer Einreichung. Diese sind nicht zwingend maschinenlesbar oder an Standards geknüpft. | +| Angekündige Anlage | Angabe gegenüber den Zustelldienst, was übermittelt wird. Teilmenge der Angaben in der contentStructure im verschlüsselten Metadatensatz. | +| Einreichung (submission) | Ist eine Einreichung bei einer zuständigen Stelle über die FIT-Connect Ãœbermittlungsinfrastruktur. Eine solche Einreichung kann ein Einreichung, ein Bericht (bspw. Statistikmeldung eines Unternehmens) oder eine sonstige Einreichung für die Initiierung eines Bearbeitungsvorgangs in einem Verwaltungsverfahren sein. Eine Einreichung besteht aus mindestens aus einem Metadatensatz und einem Fachdatensatz und / oder einem oder mehreren Anlagen. Eine Einreichung besitzt immer eine systemübergreifend eindeutige ID (submissionId), um dauerhaft den Einreichungsvorgang zu referenzieren oder zu dokumentieren. Diese ID wird bei jedem Einreichungsvorgang durch ein sendendes System vergeben. | +| Einreichungsstatus (submission status) | Beschreibt den fachlichen Status einer Einreichung für das einreichende System. | +| Fachdatensatz (data) | Ist ein strukturierter Fachdatensatz im Rahmen der Einreichung. Kann JSON, XML oder ein anderes in verwaltungseigenen Datenstandards genutztes Datenformat sein. | +| Kommunikationskanal (communication channel) | Beschreibt einen Kommunikationskanal, um zwischen der zuständigen Stelle und dem Autor der Einreichung (bspw. dem Antragssteller) zu digital zu kommunizieren.<br/>Kommunikationskanäle können sein:<br/>- E-Mail<br/>- De-Mail<br/>- FIT-Connect Rückkanal<br/>- Interoperable Postfächer FINK (AS4)<br />- Elster Transfer des einheitlichen Unternehmenskontos<br />- Postfachplus (OSCI) des einheitlichen Unternehmenskontos<br />Eine zuständige Stelle kommuniziert über die Destination, welche Kommunikationskanäle unterstützt werden und der Autor der Einreichung legt fest, welche Kommunikationskanäle er sich hierfür wünscht. Für die Adressierung des Autors werden alle für den Kommunikationskanal notwendigen Verbindungs- und Adressparameter (einschließlich ggf. notwendiger Schlüssel/Zertifikate) im Metadatensatz mitgeliefert.| +| Metadatensatz (submission metadata) | Ein Metadatensatz beschreibt:<br/>- Fachunabhängige Metadaten der Einreichung: Authentifizierung des Autors einer Einreichung oder Berichts (bspw. über einen eID-Laufzettel, Identifikation Report, Informationen über Signaturnutzung einschließlich Angabe des Signaturformats und ggf. separater Signaturdateien.), Ergebnisse eines Bezahlvorgangs oder digitale Verbindungs- und Adressparameter für die Verfahrensinformationen (falls vom Antragssteller gewünscht).<br/>- Strukturbeschreibung der Einreichung: Art der Leistung oder Einreichungsbestandteile. | +| OAuth-Dienst | Der Authorisierungsdienst / OAuth-Dienst stellt via Client-Credentials-Flow OAuth-Tokens an API-Clients aus, mit denen diese sich anschließend gegenüber den Zustelldienst APIs (d.h. gegenüber dem API-Gateway) authentifizieren können. | +| Onlineservice | Ein Onlineservice kann entweder von einer Behörde, einem Unternehmen oder einer zivilgesesellschaftlichen Organisation betrieben wird. Er interagiert in der Art mit FIT-Connect, dass er Anträge im Namen bzw. Auftrag eines Endnutzers verschlüsselt übermittelt. | +| Self-Service-Portal | Das Self-Service-Portal ist Teil des Authorisierungsdienst und ermöglicht es, Accounts/Berechtigungen für die Anbindung von Onlinediensten und Fachverfahren/virtuellen Poststellen anzulegen. | +| Vorgangsreferenz (caseID) | Systemübergreifend eindeutige ID für einen langlaufenden Kommunikationsvorgang zwischen dem einreichenden System und der Empfangsseite, wenn über die FIT-Connect kommuniziert werden sollen. Innerhalb einem Kommunikationsvorgang können weitere Fachdatensätze und Anlagen zwischen beiden Parteien ausgetauscht werden. | +| Zustellberechtigungs-Scope | Beschreibt die Scopes aus den OAuth-Tokens (JWT), die im Zustelldienst dazu dienen, um zu überprüfen, ob ein Onlinedienst Einreichungen bei einer Destination vornehmen darf. | +| Zustellpunkt (Destination) | Technisch eindeutig adressierbarer Endpunkt zur digitalen Einreichung von Anträgen oder Berichten an die Verwaltung über die FIT-Connect Ãœbermittlungsinfrastruktur. Ein Zustellpunkt repräsentiert typischerweise ein konkretes empfangendes System (Fachverfahren oder virtuelle Poststelle). Für ein empfangendes System können jedoch multiple Zustellpunkte angelegt werden. In der Konfiguration eines Zustellpunkts sind interne und öffentliche Teile hinterlegt. Interne Angaben sind solche, die zu Administrationszwecken dienen. Öffentliche Angaben legen z. B. fest, in welcher Form der Empfänger Einreichungen akzeptiert. Die öffentlichen Angaben sind:<br/>- Zulässige Schemata für einen Fachdatensatz (und die Pflicht, einen Fachdatensatz mit dem definierten Fachdatensatz in einer Einreichung zu nutzen)<br />- Öffentlicher Schlüssel zur Verschlüsselung von Fachdatensatz, Anlage und Metadatensatz | diff --git a/docs/overview.mdx b/docs/overview.mdx new file mode 100644 index 0000000000000000000000000000000000000000..a643831a3ef984efacbac7c712efdad0f511cad1 --- /dev/null +++ b/docs/overview.mdx @@ -0,0 +1,60 @@ +--- +title: Ãœberblick +slug: / +--- + +Willkommen auf der Dokumentation für die FIT-Connect API von FITKO. Die FIT-Connect API baut auf dem bestehenden IT-Planungsrat Standard FIT-Connect auf und bietet Lösungsverantwortlichen von sendenden und empfangenden Systemen eine einfache Möglichkeit, ihre Software schnell und wirtschaftlich in länder- und ebenenübergreifende Antragsprozesse zu integrieren. + +## Was ist die FIT-Connect API und was unterscheidet diese API vom bisherigen XFall Standard? + +Die FIT-Connect API baut auf den bisherigen Konzepten und Erfahrungen des bestehenden IT-Planungsrats Standards XFall auf. + +> Die übergreifende Zielstellung des Standards FIT-Connect besteht darin, Anträge und Berichte, die aus vorgelagerten Systemen (bspw. Onlineantragsdienste, Fachportale oder Berichtssysteme) erstellt werden, in die unterschiedlichen Systeme der elektronischen Verfahrensbearbeitung (bspw. Fachverfahren, Dokumentenmanagementsystem oder Prozessplattformen) zu übergeben. + +Bei der Entwicklung der FIT-Connect API wurden viele Konzepte mit Hinblick auf die neuen Erfordernisse des Onlinezugangsgesetzes, der SDG-Verordnung sowie den Anforderungen digitaler Geschäftsmodelle weiterentwickelt. Technisch nutzt die FIT-Connect API auf einen leichtgewichtigen RESTful-Architekturstil und baut auf der föderalen Antragsübertragungsarchitektur von FIT-Connect auf. + +## Was macht die FIT-Connect API und wie kann diese genutzt werden? + +Die FIT-Connect API besteht aus zwei getrennt nutzbaren APIs: + +- Für empfangende Systeme wird eine `Application Subscriber API` für den Empfang von Anträgen sowie eine `Callback` / Webhook Funktion für die technische Benachrichtigung über vorliegende Anträge angeboten. +- Für sendende Systeme wird eine `Application Sender API` angeboten, um an beliebige empfangende Systeme Anträge zu senden, die sich mit einem Zustellpunkt registriert haben. + +Diese beiden APIs werden durch einen zentralen Intermediär (`FIT-Connect Zustelldienst`) bereitgestellt. Um auf diese APIs zuzugreifen, müssen interessierte Entwickler ihre Anwendungen beim FIT-Connect Autorisierungsdienst vorab registrieren. + +### Zusammenspiel der APIs in der Antragsübermittlung + + + +Ãœber die `Application Subscriber API` können die zuständigen Stellen für ihre Systeme einen Zustellpunkt eröffnen, der über eine `destination-Id` eindeutig adressierbar ist. Für diese Zustellpunkte legen die zuständigen Stellen alle fachlichen Vorgaben (Zulässige Fachstandards, Verschlüsselung, Datenformate etc.) fest, damit eine medienbruchfreie Weiterverarbeitung in ihren Systemen gewährleistet ist. Ãœber die Angabe der `destination-Id` in der `Application Sender API` können beliebige sendende Systemen Anträge an die zuständige Stelle senden. + +Dieser Zustellpunkt ist jedoch vorab für eine Verwaltungsleistung und den jeweiligen örtlichen Antragskontext (bspw. Ort der Antragsstellung) korrekt zu ermitteln. Damit die Ermittlung des korrekten Zustellpunkts skalierbar für das ganze Bundesgebiet funktioniert, ist langfristig vorgesehen, die `destination-Id` in den Leistungs- und Zuständigkeitsinformationen des jeweils bekannten Zuständigkeitsfinders zu hinterlegen. Diese dezentral gepflegten Informationen sollen durch das Online-Gateway (<https://www.onlinezugangsgesetz.de/Webs/OZG/DE/umsetzung/portalverbund/online-gateway/online-gateway-node.html>) gebündelt und über eine offene API im XZuFi Format (<https://www.xrepository.de/details/urn:xoev-de:fim:standard:xzufi>) nutzbar gemacht werden. + + + +## Für wen ist die FIT-Connect API gedacht und warum sollte ich sie nutzen? + +Die FIT-Connect API ist für alle Hersteller, Entwickler und Verfahrensverantwortliche von sendenden und empfangenden Systemen gedacht. Insbesondere folgende Systeme mit bundesweiten Nutzungsszenarien sollen mit der FIT-Connect API unterstützt werden: + +- **Einer für alle (EfA) Verfahren**: Länderübergreifend entwickelte Antragsverfahren für eine bestimmte Verwaltungsleistung oder ein Leistungsbündel, die entweder in verschiedenen Ländern nachnutzbar betrieben werden oder länderübergreifend als gemeinsamer Antragsdienst für alle zuständigen Stellen betrieben werden. +- **Antragsgeneratoren / Antragsmanagementsysteme**: Standardsoftware zur Erstellung und dem Betrieb von direkt nutzbaren Onlineantragsdiensten, die im ganzen Bundesgebiet bei einzelnen Stellen oder Gebietskörperschaften (bspw. als Basiskomponente) im Einsatz sind. +- **Als Standardsoftware bereitgestellte Fachverfahrenssoftware, Prozessplattformen oder Dokumentenmanagementsysteme**: Bundesweit angebotene und eingesetzte Standardsoftware, die von den zuständigen Stellen für die Antragsbearbeitung eingesetzt wird. + +Für diese Systeme bietet die FIT-Connect bei der schnellen und wirtschaftlichen Realisierung medienbruchfreier Antragsprozesse eine Reihe von Mehrwerten: + +- **Plug and Play Anbindung an die föderale Antragsübermittlung**: Durch die zentral bereitgestellten APIs und die Nutzung der bestehenden Zuständigkeitsfinderinfrastruktur können Systeme schnell an eine föderale Antragsübermittlungsinfrastruktur angebunden werden, ohne eigene Infrastrukturen hierfür zu beauftragen oder aufzubauen. +- **Leichgewichtige APIs und Industriestandards**: Die FIT-Connect API baut auf leichgewichtigen RESTful API Ansätzen auf und nutzt verbreitete Industriestandards wie die OpenAPI Specification und OAuth 2.0, sodass kein spezialisiertes Know-How und spezifische Softwarekomponenten für die Anbindung erforderlich sind. +- **Flexibilität in der Antragsübermittlung**: Die FIT-Connect API verbindet Flexibilität und Standardisierung. Während die FIT-Connect API eine einheitliche Metadatenstruktur festlegt, um Anträge strukturiert zu verarbeiten, können beliebige Fachstandards und Anhänge übertragen werden. Auch die Ãœbertragung von Anträgen im PDF Format ist möglich, solange für die Antragsdaten noch kein FIM Schema vorhanden ist. +**Nutzung bestehender Prozesse und Strukturen für die Pflege von Adressierungsinformationen**: Langjährig erprobte Prozesse und Strukturen zur Pflege der Zuständigkeitsinformationen, können in den zuständigen Stellen beibehalten werden. Technische Adressierungsparameter der FIT-Connect API werden über die gleichen Systeme und Prozesse gepflegt, die schon heute bei Informationen zu Anschriften, Rufnummern, E-Mail-Adressen oder Ansprechpartnern genutzt werden. +- **Machine2Machine Ready**: Die FIT-Connect API und die FIT-Connect Antragsübertragungsarchitektur sind von Grund auf als offene API-Plattform konzipiert. Dadurch können auch verwaltungsexterne Antrags- und Berichtssysteme wie Drittsoftware oder Unternehmenssysteme direkt eingebunden werden, ohne das hierfür eine gesonderte Infrastruktur notwendig ist. + +### Ist die FIT-Connect API nur für länder- und behördenübergreifende Antragskontexte gedacht? + +Durch die einfache Anbindung und Nutzung bietet sich die FIT-Connect API auch dort an, wo das behördeneigene Antragsverfahren mit dem behördeneigenen Fachverfahren verbunden wird. Durch die Nutzung der FIT-Connect API werden diese Systeme standardisiert verbunden, ohne das die Behörde in Abhängigkeiten zu proprietären Technologien und Schnittstellen gerät. Dies ermöglicht es der Behörde, ihre Systeme auf beiden Seiten flexibel auszutauschen und weiterzuentwickeln, um somit auf neue technische Trends und Möglichkeit schnell zu reagieren. + +## In welchem Stand befindet sich FIT-Connect API und wann kann man die API nutzen? + +Die Entwicklung und Bereitstellung der FIT-Connect API erfolgt im Rahmen eines Proof of Concepts für die geplante föderale Integrations- und Entwicklungsplattform FIT-Connect. Seit dem zweiten Quartal 2020 ist es interessierten Parteien möglich, einen Zugang zur FIT-Connect API zu bekommen und eine prototypische Anbindung von Verfahren umzusetzen. + +## Ich habe einen Fehler in der Dokumentation oder in der API-Spezifikation gefunden. Wo kann ich diesen melden? +Vielen Dank für das Interesse an unserer Entwickler:innendokumentation! Wir freuen uns immer über Feedback und Anregungen über unser Funktionspostfach fit-connect ät fitko.de. Zudem können wir bei Interesse gerne einen Zugang zu unserem GitLab zur Eröffnung von Issues oder Einreichung von Merge-Requests einrichten. diff --git a/docs/rate-limiting.md b/docs/rate-limiting.md new file mode 100644 index 0000000000000000000000000000000000000000..f8ad8d57cdb41b4feed50c32a2d4592962af832f --- /dev/null +++ b/docs/rate-limiting.md @@ -0,0 +1,9 @@ +--- +title: Begrenzung von Abrufen (Rate-Limiting & Throttling) +--- + +... + +**Noch in Arbeit** + +... \ No newline at end of file diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 0000000000000000000000000000000000000000..d1773ced45de4d1d81d9dc50bfb320cab8cac09c --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,17 @@ +# 🚧 Roadmap + +## Event Log + +TBD + +## Callbacks + +TBD + +## Rückkanal + +TBD + +## Verschiedene Umgebungen + +TBD diff --git a/docs/sdk/c-sharp.mdx b/docs/sdk/c-sharp.mdx new file mode 100644 index 0000000000000000000000000000000000000000..6d9b20ce3c3319819d29c7fb0905c4115488c11f --- /dev/null +++ b/docs/sdk/c-sharp.mdx @@ -0,0 +1,3 @@ +# C & .NET # + +TBD \ No newline at end of file diff --git a/docs/sdk/java.mdx b/docs/sdk/java.mdx new file mode 100644 index 0000000000000000000000000000000000000000..526e9b11903a99f62fc7a80312094986041435ed --- /dev/null +++ b/docs/sdk/java.mdx @@ -0,0 +1 @@ +# Java \ No newline at end of file diff --git a/docs/sdk/javascript.mdx b/docs/sdk/javascript.mdx new file mode 100644 index 0000000000000000000000000000000000000000..0cde967e8393c85f9bc0cf00f5ddacffec36bca2 --- /dev/null +++ b/docs/sdk/javascript.mdx @@ -0,0 +1,3 @@ +# JavaScript + +TBD diff --git a/docs/sdk/overview.mdx b/docs/sdk/overview.mdx new file mode 100644 index 0000000000000000000000000000000000000000..709e341ef8d988c4f37a453c294343cb9d8f2111 --- /dev/null +++ b/docs/sdk/overview.mdx @@ -0,0 +1,3 @@ +# SDK + +TBD \ No newline at end of file diff --git a/docs/sdk/python.mdx b/docs/sdk/python.mdx new file mode 100644 index 0000000000000000000000000000000000000000..2ad3d8ac800eeb7ca4abbc2fde6b50dba8e7ec6e --- /dev/null +++ b/docs/sdk/python.mdx @@ -0,0 +1,2 @@ +# Python + diff --git a/docs/5_Fehlerverhalten_und_Statuscodes.md b/docs/status-and-error-codes.md similarity index 96% rename from docs/5_Fehlerverhalten_und_Statuscodes.md rename to docs/status-and-error-codes.md index 9df7ad5c3426b4d703d7f26bac9cf32d14e55ad0..469e78f7f78f4ef639b42e25d7c3c6e666d1664c 100644 --- a/docs/5_Fehlerverhalten_und_Statuscodes.md +++ b/docs/status-and-error-codes.md @@ -1,8 +1,12 @@ -# Fehlerverhalten und Statuscodes +--- +id: status-and-error-codes +sidebar_position: 1 +title: Fehlerverhalten und Statuscodes +--- > Wo 200 Licht ist, ist auch 403 Schatten. -Göthe -Diese Seite gibt einen Ãœberblick über Fehlerhandling in der XFall RESTful API (nachfolgend nur noch *API* genannt). +Diese Seite gibt einen Ãœberblick über Fehlerhandling in der FIT-Connect API (nachfolgend nur noch *API* genannt). ## Features diff --git a/docusaurus.config.js b/docusaurus.config.js new file mode 100644 index 0000000000000000000000000000000000000000..162fcee2e3c2062c9f1a9f76bfe081f85903c0c7 --- /dev/null +++ b/docusaurus.config.js @@ -0,0 +1,60 @@ +/** @type {import('@docusaurus/types').DocusaurusConfig} */ +const gitBranch = process.env.GIT_BRANCH || 'main' + +const baseUrl = process.env.DOCUSAURUS_BASE_URL || '/' + +module.exports = { + title: 'FIT-Connect', + url: 'https://fitko.uber.space', + baseUrl, + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'throw', + favicon: 'favicon.png', + i18n: { + defaultLocale: 'de', + locales: ['de'], + }, + themeConfig: { + colorMode: { + disableSwitch: true, + }, + prism: { + additionalLanguages: ['java', 'csharp'], + }, + navbar: { + title: 'FIT-Connect Dokumentation', + logo: { + alt: 'FITKO', + src: '/images/logo-fitko.svg', + }, + items: [ + { + type: 'docsVersionDropdown', + position: 'right', + dropdownActiveClassDisabled: true, + docsPluginId: 'default', + }, + ], + }, + footer: { + style: 'light', + copyright: `Copyright © ${new Date().getFullYear()} FITKO (Föderale IT-Kooperation) | Zum Gottschalkhof 3 | 60594 Frankfurt am Mail | E-Mail: poststelle@fitko.de | https://www.fitko.de | Die FITKO ist eine Anstalt des öffentlichen Rechts. Sie wird vertreten durch die Präsidentin Frau Dr. Annette Schmidt.`, + }, + }, + presets: [ + [ + '@docusaurus/preset-classic', + { + docs: { + sidebarPath: require.resolve('./sidebars.js'), + editUrl: ({ version, versionDocsDirPath, docPath }) => + `https://git.fitko.de/fit-connect/api/-/edit/${gitBranch}/`, + routeBasePath: '/', + }, + theme: { + customCss: require.resolve('./src/css/custom.css'), + }, + }, + ], + ], +} diff --git a/models/application/metadata-no-id.json b/models/application/metadata-no-id.json deleted file mode 100644 index 4935f437d7935fdbbfe1c66327b657fdba30d5ec..0000000000000000000000000000000000000000 --- a/models/application/metadata-no-id.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "type": "object", - "title": "Application Metadata without ID", - "description": "Metadaten eines Antrags noch ohne ID, zum Anlegen eines neuen Antrags. Nach dem Zuweisen der `application-id` wird das Modell [Application Metadata](metadata.json) verwendet.", - "x-examples": { - "example-1": { - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "schema": { - "mimeType": "application/json", - "schemaSource": "none" - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 13046, - "mimeType": "application/pdf", - "filename": "test.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9" - } - } - ] - }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeID": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeID": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" - } - ] - } - } - }, - "properties": { - "publicServiceType": { - "$ref": "./public-service-type.json" - }, - "contentStructure": { - "type": "object", - "additionalProperties": false, - "required": [ - "docs" - ], - "properties": { - "data": { - "type": "object", - "additionalProperties": false, - "properties": { - "schema": { - "$ref": "./schema.json" - } - }, - "required": [ - "schema" - ] - }, - "docs": { - "type": "array", - "items": { - "$ref": "./document.json" - } - } - } - }, - "additionalReferenceInfo": { - "type": "object", - "additionalProperties": false, - "properties": { - "subject": { - "type": "string" - }, - "caseId": { - "type": "string" - }, - "applicationDate": { - "type": "string", - "format": "date", - "description": "Antragsdatum" - } - } - } - }, - "required": [ - "contentStructure" - ] -} \ No newline at end of file diff --git a/models/application/metadata.json b/models/application/metadata.json deleted file mode 100644 index 6b4b96872a9e7ee4b4243e3083924cd46806687d..0000000000000000000000000000000000000000 --- a/models/application/metadata.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "title": "Application Metadata", - "allOf": [ - { - "type": "object", - "properties": { - "applicationId": { - "type": "string", - "pattern": "^[-_.A-Za-z0-9]+$", - "description": "ID des Antrags" - } - }, - "required": [ - "applicationId" - ] - }, - { - "$ref": "./metadata-no-id.json" - } - ], - "description": "Metadaten zu einem Antrag.", - "x-examples": { - "example-1": { - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "schema": { - "mimeType": "application/json", - "schemaSource": "none" - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 13046, - "mimeType": "application/pdf", - "filename": "test.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9" - } - } - ] - }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeID": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeID": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" - } - ] - }, - "applicationId": "ce75a6b8-d72f-4b94-b09e-af6be35bc2ae" - } - } -} \ No newline at end of file diff --git a/models/application/schema.json b/models/application/schema.json deleted file mode 100644 index afb2bf5a61d694afa895c5f8be34dfd0bc84dd3c..0000000000000000000000000000000000000000 --- a/models/application/schema.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "type": "object", - "title": "Application Schema", - "description": "Strukturinformationen zu übertragbaren oder übertragenen Daten.", - "additionalProperties": false, - "x-examples": { - "example-1": { - "mimeType": "application/json", - "schemaSource": "none", - "schemaId": "JSON-DOC" - }, - "example-2": { - "mimeType": "application/xml", - "schemaSource": "none", - "schemaId": "XML-DOC" - - }, - "example-3": { - "mimeType": "application/xml", - "schemaSource": "fim", - "schemaId": "S99000001V1.0" - }, - "example-4": { - "mimeType": "application/json", - "schemaSource": "fitconnect", - "schemaId": "applicant-person" - }, - "example-5": { - "mimeType": "application/json", - "schemaSource": "fitconnect", - "schemaId": "payment-info" - } - }, - "properties": { - "schemaId": { - "type": "string", - "description": "ID des Schemas, abhängig von der ausgewählten Quelle." - }, - "schemaSource": { - "type": "string", - "enum": [ - "fim", - "none" - ], - "description": "Quelle, von der das Schema bezogen werden kann." - }, - "mimeType": { - "type": "string", - "enum": [ - "application/json", - "application/xml" - ], - "description": "Gibt das zulässige Format (JSON oder XML) der Fachdaten an." - } - }, - "required": [ - "schemaSource", - "mimeType", - "schemaId" - ] -} \ No newline at end of file diff --git a/models/common/jwe.json b/models/common/jwe.json deleted file mode 100644 index 6266d884ed9e99ae300594e958af81c06c4b1721..0000000000000000000000000000000000000000 --- a/models/common/jwe.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "title": "JSON Web Encryption (JWE)", - "type": "object", - "description": "JSON Web Encryption - JSON Serialization - RFC 7516", - "properties": { - "protected": { - "$ref": "./base64url.json" - }, - "unprotected": { - "type": "object", - "properties": { - "alg": { - "type": "string", - "description": "Algorithm", - "enum": [ - "RSA-OAEP-256" - ] - }, - "enc": { - "type": "string", - "description": "Encryption Algorithm", - "enum": [ - "A256GCM" - ] - }, - "zip": { - "type": "string", - "description": "Compression Algorithm", - "enum": [ - "DEF" - ] - }, - "kid": { - "description": "Key ID" - } - } - }, - "recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "header": { - "$ref": "#/properties/unprotected" - }, - "encrypted_key": { - "$ref": "./base64url.json" - } - } - } - }, - "encrypted_key": { - "type": "object" - }, - "iv": { - "$ref": "./base64url.json" - }, - "aad": { - "$ref": "./base64url.json" - }, - "ciphertext": { - "$ref": "./base64url.json" - }, - "tag": { - "$ref": "./base64url.json" - } - }, - "required": [ - "protected", - "recipients", - "ciphertext" - ] -} \ No newline at end of file diff --git a/models/common/jwk.json b/models/common/jwk.json deleted file mode 100644 index 062688873f57b080d9c3f1f8f2e391ff69942262..0000000000000000000000000000000000000000 --- a/models/common/jwk.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "title": "JSON Web Key (JWK)", - "type": "object", - "description": "JSON Web Key - RFC 7517", - "properties": { - "kty": { - "type": "string", - "description": "Key Type", - "enum": [ - "RSA" - ] - }, - "key_ops": { - "type": "array", - "enum": [ - "verify", - "wrapKey" - ], - "description": "Key Operations", - "items": { - "type": "string" - } - }, - "alg": { - "type": "string", - "description": "Algorithm", - "enum": [ - "PS512", - ] - }, - "kid": { - "description": "Key ID", - "type": "string" - }, - "x5c": { - "description": "X.509 Certificate Chain", - "type": "array", - "items": { - "$ref": "./base64.json" - } - }, - "x5t": { - "$ref": "./base64url.json" - } - }, - "required": [ - "kty", - "kid", - "key_ops", - "alg", - "x5c", - "x5t" - ] -} \ No newline at end of file diff --git a/models/destination-no-id.json b/models/destination-no-id.json deleted file mode 100644 index 158a4b611e6d37ef8917989c67fe842d9e47f496..0000000000000000000000000000000000000000 --- a/models/destination-no-id.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "type": "object", - "title": "Destination without ID", - "description": "Daten eines technischen Ãœbergabepunkts (Ziel der Ãœbertragung - z.B. ein Fachverfahren) noch ohne ID, zum Anlegen eines neuen Ãœbergabepunkts. Nach dem Zuweisen der `destination-id` wird das Modell [Destination](destination.json) verwendet.", - "x-examples": { - "example-1": { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "technicalContact": [ - { - "formOfAddress": "Herr", - "doctoralDegrees": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephones": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "description": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - } - ], - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none" - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - }, - "publicKeys": { - "keys": [ - { - "kty": "RSA", - "alg": "PS512", - "key_ops": ["wrapKey"], - "kid": "d4d3bd67-420f-4b39-85d9-92dd800c57b5", - "x5t": "……(Fingerprint)……", - "x5c": [ - "……(base64 encoded root cert)……", - "……(base64 encoded intermediate cert)……", - "……(base64 encoded cert)……" - ] - }, - { - "kty": "RSA", - "key_ops": ["verify"], - "alg": "PS512", - "kid": "……(Key ID)……", - "x5t": "……(Fingerprint)……", - "x5c": [ - "……(base64 encoded root cert)……", - "……(base64 encoded intermediate cert)……", - "……(base64 encoded cert)……" - ] - } - ] - } - } - }, - "properties": { - "publicOrganization": { - "type": "object", - "properties": { - "organizationName": { - "type": "string" - }, - "address": { - "description": "Adresse als Alternative (Choice) von nationaler und internationaler Adresse.", - "oneOf": [ - { - "$ref": "./common/address-national.json" - }, - { - "$ref": "./common/address-postbox.json" - }, - { - "$ref": "./common/address-international.json" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "national": "./common/address-national.json", - "international": "./common/address-international.json", - "postbox": "./common/address-postbox.json" - } - } - }, - "identifiers": { - "type": "array", - "description": "Externe Identifikatoren der Person", - "items": { - "$ref": "./common/identifier.json" - } - }, - "contact": { - "description": "Kontaktmöglichkeiten der Behörde", - "type": "object", - "properties": { - "telephones": { - "type": "array", - "description": "Liste der Telefonnummern, außer Fax", - "items": { - "$ref": "./common/phone.json" - } - }, - "email": { - "type": "string", - "format": "email", - "description": "E-Mail-Adresse" - }, - "www": { - "type": "string", - "format": "uri", - "description": "Webadresse" - }, - "telefax": { - "$ref": "./common/phone.json#/properties/number" - } - } - } - } - }, - "technicalContact": { - "type": "array", - "description": "Technischer Ansprechpartner", - "items": { - "$ref": "./common/individual.json" - } - }, - "schemas": { - "type": "array", - "description": "Zulässige Schemas, die zu diesem Ziel übertragen werden können. Sofern leer dürfen Anträge (Application) keinen Datensatz (ApplicationData) enthalten.", - "items": { - "$ref": "./application/schema.json" - } - }, - "callback": { - "type": "object", - "description": "Callback zur Benachrichtigung bei neuen Anträgen", - "properties": { - "callbackURI": { - "type": "string", - "description": "URL auf die der Callback als POST durchgeführt wird", - "format": "uri" - } - }, - "required": [ - "callbackURI" - ] - }, - "publicKey": { - "$ref": "./common/jwk.json" - } - } -} \ No newline at end of file diff --git a/models/destination.json b/models/destination.json deleted file mode 100644 index 75497ff6896efabc425ec36a2b0e598c736502e6..0000000000000000000000000000000000000000 --- a/models/destination.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "title": "Destination", - "allOf": [ - { - "type": "object", - "properties": { - "destinationId": { - "description": "Vom Zustelldienst für dieses Ziel vergebene ID. Wird beim Anlegen eines neuen Ziels leer gelassen.", - "pattern": "^[-_.A-Za-z0-9]+$", - "type": "string" - } - }, - "required": [ - "destinationId" - ] - }, - { - "$ref": "./destination-no-id.json" - } - ], - "description": "Beschreibung eines technischen Ãœbergabepunkts", - "x-examples": { - "example-1": { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "technicalContact": [ - { - "formOfAddress": "Herr", - "doctoralDegrees": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephones": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "description": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - } - ], - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none" - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - }, - "publicKeys": { - "keys": [ - { - "kty": "RSA", - "key_ops": ["wrapKey"], - "alg": "PS512", - "kid": "……(Key ID)……", - "x5t": "……(Fingerprint)……", - "x5c": [ - "……(base64 encoded root cert)……", - "……(base64 encoded intermediate cert)……", - "……(base64 encoded cert)……" - ] - }, - { - "kty": "RSA", - "key_ops": ["verify"], - "alg": "PS512", - "kid": "……(Key ID)……", - "x5t": "……(Fingerprint)……", - "x5c": [ - "……(base64 encoded root cert)……", - "……(base64 encoded intermediate cert)……", - "……(base64 encoded cert)……" - ] - } - ] - }, - "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047" - } - } -} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000000000000000000000000000000000000..f64a4c230deaf89112157c732a898fce17cdf7d4 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids" + }, + "dependencies": { + "@docusaurus/core": "2.0.0-beta.0", + "@docusaurus/preset-classic": "2.0.0-beta.0", + "@mdx-js/react": "^1.6.21", + "@svgr/webpack": "^5.5.0", + "clsx": "^1.1.1", + "file-loader": "^6.2.0", + "mermaid": "^8.10.2", + "rapidoc": "git+https://github.com/mrin9/RapiDoc.git#50518f69ff8eaac0686032aa3894f3402abe3ab2", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "remark-collapse": "^0.1.2", + "url-loader": "^4.1.1" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": {} +} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000000000000000000000000000000000000..ad91f0f30f3a36584d6d95b1dcdb75e2576efc99 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,5 @@ +module.exports = { + trailingComma: "es5", + semi: false, + singleQuote: true, +} diff --git a/reference/1_sender.json b/reference/1_sender.json deleted file mode 100644 index ddfa9c29cd7e1ca24b86bb86ee30527c9ca17bf4..0000000000000000000000000000000000000000 --- a/reference/1_sender.json +++ /dev/null @@ -1,1131 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "Application Sender API", - "version": "0.7", - "description": "API vom Onlineantragsdienst zum Zustelldienst", - "contact": { - "name": "FITKO", - "url": "https://www.fitko.de/" - }, - "license": { - "url": "https://creativecommons.org/licenses/by-sa/4.0/", - "name": "Creative Commons Attribution Share Alike 4.0 (CC BY-SA 4.0)" - } - }, - "servers": [ - { - "url": "https://sender-test.fiep-poc.de/beta7", - "description": "Testsystem" - } - ], - "paths": { - "/destinations/{destinationId}": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Destination Info", - "operationId": "get-destination-info", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "../models/destination.json" - }, - "examples": { - "example-1": { - "value": { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "technicalContact": [ - { - "formOfAddress": "Herr", - "doctoralDegrees": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephones": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "description": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - } - ], - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none", - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - }, - "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047" - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Ruft die Information über eine Destination ab", - "tags": [ - "Transfer related Information" - ], - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/docs/{docId}": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "docId", - "in": "path", - "required": true - } - ], - "put": { - "summary": "Add Application Document", - "operationId": "add-application-doc", - "responses": { - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "result": { - "type": "string", - "enum": [ - "success" - ] - } - }, - "required": [ - "result" - ] - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Lädt ein Antragsformuar oder einen Anhang hoch, um ihn dem Antrag hinzuzufügen.", - "requestBody": { - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "tags": [ - "Application Transfer" - ], - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/data": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - } - ], - "put": { - "summary": "Add Application Data", - "operationId": "add-application-data", - "responses": { - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "result": { - "type": "string", - "enum": [ - "success" - ] - } - }, - "required": [ - "result" - ] - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "415": { - "description": "Unsupported Media Type", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Datensatz übertragen", - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": {}, - "type": "object" - }, - "examples": { - "example-1": { - "value": { - "F99000001": "string", - "G99000001": { - "F99000002": "string", - "F99000003": 42 - }, - "G99000002": [ - { - "F99000004": true, - "G99000001": { - "F99000002": "string", - "F99000003": 17 - } - }, - { - "F99000004": true, - "G99000001": { - "F99000002": "string", - "F99000003": 24 - } - } - ] - } - } - } - }, - "application/xml": { - "schema": { - "type": "object", - "properties": {} - } - }, - "application/jose": { - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-_=.]+$", - "description": "JSON Web Encryption Compact Serialization, RFC 7516" - }, - "examples": { - "example-1": { - "value": "eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.nlXGAufYH36IABDy0En0LXEhGfC20IZSSchs27ADalHpRoTZKfXhc7hcMk8Y9V8yTP0jYbmrq6NtEg-QS2O5TQFD9Hluhpb631PBgKjPXHYX1Y6iUcR1sXxSUPjePi8F8PcZUZuUJLnhz6myyc9scdAq9BXG2cDJVgkfLI8eZdrqnrY24Hh32_7d5OKLFSpSDrBlqfyQuY8Wbs2h8Wy4Z4hwT1aWDO7b-SqJA181hUbNcF_rR4Mze3Fdtu-3uOIQYgLBBRmN1ZHDLk0EKNCI4B8MyDKLGPoM0ZomV5lVwVWjAMRI4CgQkIQ9rnm-Adof-GbegQL3yJSoNIWRWgzCnZBYZ638QgPllCMVW3WvEVvsgj0Hj16PbofqXTQ5S73LINfP6FZawfC0yMrYjSV_N2L0Lkp2KI3BkJcy-PcFhBnhwu2IsJGAlyDRCnXdVqig8m5yLHuSMQTpLW69LzPEskfsjhnNDR-CEBZpicjMfc-4CL6U7E7YoGc_99DzE5U5._JfqyKH23GiKsnDW.ZtMMjZ3GgcgHss8qbFRhrjl4L0kAfbco-oXICkk.VBHJ00FyDTYjOA_OYfiz5g" - } - } - }, - "text/plain": { - "schema": { - "$ref": "../models/common/base64.json" - } - } - }, - "description": "JSON oder XML Daten JWE-verschlüsselt" - }, - "tags": [ - "Application Transfer" - ], - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/status/history": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Status History", - "tags": [ - "status" - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "current": { - "$ref": "../models/status-overview.json" - }, - "history": { - "type": "array", - "maxItems": 3, - "minItems": 0, - "items": { - "$ref": "../models/status-overview.json" - } - } - } - }, - "examples": { - "example-1": { - "value": { - "current": { - "code": "queued", - "timestamp": "2020-05-20T08:31:01+02:00", - "number": 2 - }, - "history": [ - { - "code": "incomplete", - "timestamp": "2020-05-20T08:30:08+02:00", - "number": 1 - } - ] - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-application-status-history", - "description": "Ruft den aktuellen Status der Ãœbermittlung sowie einer Ãœbersicht der bisherigen Ãœbertragungshistorie ab.", - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/upload-status": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Application Upload Status", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "data": { - "type": "object", - "additionalProperties": false, - "properties": { - "status": { - "type": "string", - "enum": [ - "missing", - "partial", - "complete" - ] - }, - "length": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "status", - "length" - ] - }, - "docs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "docId": { - "type": "string", - "pattern": "^[-_.A-Za-z0-9]+$", - "description": "Id des Dokuments. Diese muss nur innerhalb des Antrags (Application) eindeutig sein. Es wird daher empfohlen, die IDs fortlaufend (1, 2 etc.) zu vergeben." - }, - "status": { - "type": "string", - "enum": [ - "missing", - "partial", - "complete" - ] - }, - "length": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "docId", - "status", - "length" - ] - } - } - } - }, - "examples": { - "example-1": { - "value": { - "data": { - "status": "complete", - "length": 0 - }, - "docs": [ - { - "status": "complete", - "docId": "1", - "length": 13046 - } - ] - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-application-upload-status", - "description": "Abfrage des Ãœbermittlungsstatus. Listet alle Unterresourcen (data und docs) mit Ãœbermittlungsstatus auf.", - "tags": [ - "Transfer related Information" - ], - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - } - ], - "post": { - "summary": "Create Application", - "operationId": "create-application", - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": [ - "applicationId" - ] - }, - "examples": { - "example-1": { - "value": { - "applicationId": "0c508e3f-2353-4206-9a1e-34b2e864d5a8" - } - } - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found" - }, - "413": { - "description": "Request Entity Too Large", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "../models/application/metadata-no-id.json" - }, - "examples": { - "example-1": { - "value": { - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "schema": { - "mimeType": "application/json", - "schemaSource": "none", - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 13046, - "mimeType": "application/pdf", - "filename": "test.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9" - } - } - ] - }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeId": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeId": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" - } - ] - } - } - } - } - } - }, - "description": "Metadaten des Antrags" - }, - "description": "Ãœbertragung initiieren", - "tags": [ - "Application Transfer" - ], - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/status": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Status (current)", - "tags": [ - "status" - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "../models/status-overview.json" - }, - "examples": { - "example-1": { - "value": { - "code": "queued", - "timestamp": "2020-05-20T08:31:01+02:00", - "number": 2 - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-application-status", - "description": "Ruft den aktuellen Status der Ãœbermittlung ab.", - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - }, - "put": { - "summary": "Send Application", - "operationId": "commit-application", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "../models/status-overview.json" - }, - "examples": { - "example-1": { - "value": { - "code": "queued", - "timestamp": "2020-05-20T08:31:01.135842+02:00", - "number": 2 - } - } - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Ãœbertragung abschließen, Antrag absenden", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "enum": [ - "queued" - ] - } - }, - "required": [ - "code" - ] - }, - "examples": { - "example-1": { - "value": { - "code": "queued" - } - } - } - } - }, - "description": "" - }, - "tags": [ - "Application Transfer" - ], - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ] - } - }, - "/info": { - "get": { - "summary": "Get Info", - "tags": [], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "integer" - } - } - } - } - }, - "examples": { - "example-1": { - "value": { - "version": { - "major": 0, - "minor": 7, - "patch": 0 - } - } - } - } - } - } - } - }, - "operationId": "get-info", - "security": [ - { - "OAuth20": [ - "destination:send" - ] - } - ], - "description": "Gibt Informationen über den Server aus. Kann zu Testzwecken aufgerufen werden (Test der Erreichbarkeit und Zugriffaberechtigung)." - } - } - }, - "tags": [ - { - "name": "Application Transfer" - }, - { - "name": "status" - }, - { - "name": "Transfer related Information" - } - ], - "components": { - "securitySchemes": { - "OAuth20": { - "type": "oauth2", - "flows": { - "clientCredentials": { - "tokenUrl": "https://sender-test-token.fiep-poc.de/auth/realms/test/protocol/openid-connect/token", - "scopes": { - "destination:send": "Dieser Zufriffsbereich erlaubt es Anträge (Applications) an alle Zustellpunkte (Destinations) über die Application Sender API zu senden." - } - } - }, - "description": "Dieses Authentifizierungsmethode wird genutzt, um den Zugriff auf die API zu autorisieren. " - } - } - } -} diff --git a/reference/2_subscriber.json b/reference/2_subscriber.json deleted file mode 100644 index f2a387c9efef1fd0d6c17939ac38b874170844bf..0000000000000000000000000000000000000000 --- a/reference/2_subscriber.json +++ /dev/null @@ -1,1472 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "Application Subscriber API", - "version": "0.7", - "description": "API vom Fachverfahren zum Zustelldienst", - "contact": { - "name": "FITKO", - "url": "https://www.fitko.de/" - }, - "license": { - "name": "Creative Commons Attribution Share Alike 4.0 (CC BY-SA 4.0)", - "url": "https://creativecommons.org/licenses/by-sa/4.0/" - } - }, - "servers": [ - { - "url": "https://subscriber-test.fiep-poc.de/beta7", - "description": "Testsystem" - } - ], - "paths": { - "/destinations": { - "parameters": [], - "get": { - "summary": "List Destinations", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "destinations": { - "type": "array", - "items": { - "$ref": "../models/destination.json" - } - } - } - }, - "examples": { - "example-1": { - "value": { - "destinations": [ - { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none", - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - }, - "destinationId": "0ddf3ab5-dd89-4e04-9ecd-b2c50b0b4efd" - }, - { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - } - }, - "technicalContact": [ - { - "formOfAddress": "Herr", - "doctoralDegrees": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephones": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "description": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - } - ], - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none", - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - }, - "destinationId": "0ddf3ab5-dd89-4e04-9ecd-b2c50b0b4efd" - }, - { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none", - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - }, - "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047" - } - ] - } - } - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "list-destinations", - "description": "Ruft die Liste aller Destinations dieses Accounts auf.", - "tags": [ - "Destination Management" - ], - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ] - }, - "post": { - "summary": "Create Destination", - "operationId": "create-destination", - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "destinationId": { - "type": "string" - } - }, - "required": [ - "destinationId" - ] - }, - "examples": { - "example-1": { - "value": { - "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047" - } - } - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Legt eine neue Destination an.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "../models/destination-no-id.json" - }, - "examples": { - "example-1": { - "value": { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "technicalContact": [ - { - "formOfAddress": "Herr", - "doctoralDegrees": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephones": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "description": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - } - ], - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none", - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - } - } - } - } - } - }, - "description": "Anzulegende Destination" - }, - "tags": [ - "Destination Management" - ], - "security": [ - { - "OAuth20": [ - "destination:manage" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/data": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Application Data", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} - }, - "examples": { - "example-1": { - "value": { - "F99000001": "string", - "G99000001": { - "F99000002": "string", - "F99000003": 42 - }, - "G99000002": [ - { - "F99000004": true, - "G99000001": { - "F99000002": "string", - "F99000003": 17 - } - }, - { - "F99000004": true, - "G99000001": { - "F99000002": "string", - "F99000003": 24 - } - } - ] - } - } - } - }, - "application/xml": { - "schema": { - "type": "object", - "properties": {} - }, - "examples": {} - }, - "application/jose": { - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-_=.]+$", - "description": "JSON Web Encryption Compact Serialization, RFC 7516" - }, - "examples": { - "example-1": { - "value": "eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.nlXGAufYH36IABDy0En0LXEhGfC20IZSSchs27ADalHpRoTZKfXhc7hcMk8Y9V8yTP0jYbmrq6NtEg-QS2O5TQFD9Hluhpb631PBgKjPXHYX1Y6iUcR1sXxSUPjePi8F8PcZUZuUJLnhz6myyc9scdAq9BXG2cDJVgkfLI8eZdrqnrY24Hh32_7d5OKLFSpSDrBlqfyQuY8Wbs2h8Wy4Z4hwT1aWDO7b-SqJA181hUbNcF_rR4Mze3Fdtu-3uOIQYgLBBRmN1ZHDLk0EKNCI4B8MyDKLGPoM0ZomV5lVwVWjAMRI4CgQkIQ9rnm-Adof-GbegQL3yJSoNIWRWgzCnZBYZ638QgPllCMVW3WvEVvsgj0Hj16PbofqXTQ5S73LINfP6FZawfC0yMrYjSV_N2L0Lkp2KI3BkJcy-PcFhBnhwu2IsJGAlyDRCnXdVqig8m5yLHuSMQTpLW69LzPEskfsjhnNDR-CEBZpicjMfc-4CL6U7E7YoGc_99DzE5U5._JfqyKH23GiKsnDW.ZtMMjZ3GgcgHss8qbFRhrjl4L0kAfbco-oXICkk.VBHJ00FyDTYjOA_OYfiz5g" - } - } - }, - "text/plain": { - "schema": { - "$ref": "../models/common/base64.json" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-application-data", - "description": "Ruft die Fachdaten der Application ab.\n\nBeispiele:\n#### JSON\n```json\n{\n \"F99000001\": \"Eins\",\n \"G99000001\": {\n \"F99000002\": \"Zwei\",\n \"F99000003\": \"Drei\"\n }\n}\n```\n\n#### XML\n```xml\n<S99000001>\n <F99000001>Eins</F99000001>\n <G99000001>\n <F99000002>Zwei</F99000002>\n <F99000003>Drei</F99000003>\n </G99000001>\n</S99000001>\n```", - "tags": [ - "Application Retrieval" - ], - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/docs/{docId}": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "docId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Application Document", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-application-document", - "description": "Ruf ein Dokument (Formular oder Anlage) der Application ab.", - "tags": [ - "Application Retrieval" - ], - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Application Metadata", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "../models/application/metadata.json" - }, - "examples": { - "example-1": { - "value": { - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "schema": { - "mimeType": "application/json", - "schemaSource": "none", - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 13046, - "mimeType": "application/pdf", - "filename": "test.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9" - } - } - ] - }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeId": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeId": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" - } - ] - }, - "applicationId": "0c508e3f-2353-4206-9a1e-34b2e864d5a8" - } - } - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-application", - "description": "Ruft eine wartende Application ab.", - "tags": [ - "Application Retrieval" - ], - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "List Applications", - "operationId": "list-applications", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "../models/application/metadata.json" - } - } - } - }, - "examples": { - "example-1": { - "value": { - "applications": [] - } - }, - "example-2": { - "value": { - "applications": [ - { - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "schema": { - "mimeType": "application/json", - "schemaSource": "none", - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 13046, - "mimeType": "application/pdf", - "filename": "test.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9" - } - } - ] - }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeId": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeId": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" - } - ] - }, - "applicationId": "0c508e3f-2353-4206-9a1e-34b2e864d5a8" - } - ] - } - } - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Ruft die Liste der wartenden Applications ab.", - "tags": [ - "Application Retrieval" - ], - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ] - } - }, - "/destinations/{destinationId}": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Destination", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "../models/destination.json" - }, - "examples": { - "example-1": { - "value": { - "publicOrganization": { - "organizationName": "Gewerbeamt Musterstadt", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "technicalContact": [ - { - "formOfAddress": "Herr", - "doctoralDegrees": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephones": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "description": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - } - ], - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none", - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - }, - "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047" - } - } - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-destination", - "description": "Ãœbertragungsziel abfragen", - "tags": [ - "Destination Management" - ], - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ] - }, - "put": { - "summary": "Update Destination", - "operationId": "update-destination", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "result": { - "type": "string", - "enum": [ - "success" - ] - } - }, - "required": [ - "result" - ] - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Ãœbertragungsziel aktualisieren", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "../models/destination.json" - }, - "examples": { - "example-1": { - "value": { - "destinationId": "7881dba9-4055-4854-8b6d-11ea5b7f3047", - "publicOrganization": { - "organizationName": "Gewerbeamt Ankh-Morpork", - "address": { - "type": "national", - "street": "Kurzer Weg", - "houseNumber": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephones": [ - { - "number": "+49 89 32168-0", - "mobile": false, - "description": "work" - } - ], - "email": "behoerde@example.com" - } - }, - "technicalContact": [ - { - "formOfAddress": "Herr", - "doctoralDegrees": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephones": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "description": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - } - ], - "schemas": [ - { - "mimeType": "application/json", - "schemaSource": "none" - } - ], - "callback": { - "callbackURI": "http://127.0.0.1:4010/voluptas" - } - } - } - } - } - } - }, - "tags": [ - "Destination Management" - ], - "security": [ - { - "OAuth20": [ - "destination:manage" - ] - } - ] - }, - "delete": { - "summary": "Delete Destination", - "operationId": "delete-destination", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "result": { - "type": "string", - "enum": [ - "success" - ] - } - }, - "required": [ - "result" - ] - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Ãœbertragungsziel löschen", - "tags": [ - "Destination Management" - ], - "security": [ - { - "OAuth20": [ - "destination:manage" - ] - } - ] - } - }, - "/destinations/{destinationId}/applications/{applicationId}/status": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - } - ], - "put": { - "summary": "Acknowledge Application", - "operationId": "ack-application", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "result": { - "type": "string", - "enum": [ - "success" - ] - } - }, - "required": [ - "result" - ] - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "description": "Bestätigt die Abholung der Application.\n\nDer Parameter `code` zeigt an, ob der Antrag noch weitergesendet wurde (`forwarded`) oder das finale Ziel erreicht hat (`delivered`).\n\nSofern der Wert `forwarded` übergeben wurde, muss zu einem späteren Zeitpunkt, wenn der Antrag final zugestellt wurde, ein weiterer Aufruf mit dem Wert `delivered` erfolgen.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "code": { - "type": "string", - "description": "Zeigt an, ob die Zustellung zum nächsten Hop (`forwarded`) oder bis zum Endpunkt (`delivered`) erfolgt ist.", - "enum": [ - "forwarded", - "delivered" - ] - } - }, - "required": [ - "code" - ] - }, - "examples": { - "example-1": { - "value": { - "code": "forwarded" - } - }, - "example-2": { - "value": { - "code": "delivered" - } - } - } - } - }, - "description": "Details der Quittung" - }, - "tags": [ - "Application Retrieval" - ], - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ] - } - }, - "/info": { - "get": { - "summary": "Get Info", - "tags": [], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "integer" - } - } - } - } - }, - "examples": { - "example-1": { - "value": { - "version": { - "major": 0, - "minor": 7, - "patch": 0 - } - } - } - } - } - } - } - }, - "operationId": "get-info", - "security": [ - { - "OAuth20": [ - "destination:manage", - "destination:subscribe" - ] - } - ], - "description": "Gibt Informationen über den Server aus. Kann zu Testzwecken aufgerufen werden (Test der Erreichbarkeit und Zugriffaberechtigung)." - } - } - }, - "tags": [ - { - "name": "Destination Management" - }, - { - "name": "Application Retrieval" - } - ], - "components": { - "securitySchemes": { - "OAuth20": { - "type": "oauth2", - "flows": { - "clientCredentials": { - "tokenUrl": "https://subscriber-test-token.fiep-poc.de/auth/realms/test/protocol/openid-connect/token", - "scopes": { - "destination:manage": "Dieser Zugriffsbereich alle Destination Endpunkte eines Subscriber genutzt werden.", - "destination:subscribe": "Dieser Zugriffsbereich erlaubt es, Anträge für allen Destinations abzuholen." - } - } - }, - "description": "Dieses Authentifizierungsmethode wird genutzt, um den Zugriff auf die API zu autorisieren. " - } - } - } -} \ No newline at end of file diff --git a/sidebars.js b/sidebars.js new file mode 100644 index 0000000000000000000000000000000000000000..402eda615ed9056351cf7a1545da53f29f6bda57 --- /dev/null +++ b/sidebars.js @@ -0,0 +1,111 @@ +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ + +module.exports = { + defaultSidebar: [ + 'overview', + 'roadmap', + 'account', + 'status-and-error-codes', + { + type: 'link', + label: 'Terms of Service', + href: 'https://www.fitko.de/', + }, + { + type: 'category', + label: 'Getting Started', + items: [ + 'getting-started/overview', + 'getting-started/authentication', + 'getting-started/encryption', + { + type: 'category', + label: 'Versenden', + items: [ + { + type: 'autogenerated', + dirName: 'getting-started/sending', + }, + ], + }, + { + type: 'category', + label: 'Empfangen', + items: [ + { + type: 'autogenerated', + dirName: 'getting-started/receiving', + }, + ], + }, + ], + }, + // { + // type: 'category', + // label: 'SDK', + // items: [{ + // type: 'autogenerated', + // dirName: 'sdk' + // }] + // }, + { + type: 'category', + label: 'Spezifikationen/Schemata', + items: [ + { + type: "autogenerated", + dirName: "apis", + }, + ], + }, + { + type: 'category', + label: 'Detailinformationen', + items: [ + 'details/encryption', + 'details/event-log', + { + type: 'category', + label: 'Authentifizierung', + items: [ + { + type: 'autogenerated', + dirName: 'details/authentication', + }, + ], + }, + ], + }, + { + type: 'category', + label: 'Weiteres', + items: [ + 'more/glossary', + { + type: 'link', + label: '🚧 Feedback', + href: 'https://jira.fiep-poc.de/servicedesk/customer/portal/1', + }, + { + type: 'link', + label: 'Impressum', + href: 'https://www.fitko.de/Impressum', + }, + ], + }, + ], + + // anotherSidebar: [{ + // type: 'autogenerated', + // dirName: '.', // generate sidebar slice from the docs folder (or versioned_docs/<version>) + // }], +} diff --git a/src/components/ApiSpec.js b/src/components/ApiSpec.js new file mode 100644 index 0000000000000000000000000000000000000000..59465b0f0b852926b1d41fe71c5cd946a8d4d10b --- /dev/null +++ b/src/components/ApiSpec.js @@ -0,0 +1,30 @@ +import React from 'react' +import BrowserOnly from '@docusaurus/BrowserOnly' + +export default function ApiSpec(props) { + return ( + <BrowserOnly fallback={<div>Lädt...</div>}> + {() => { + import('rapidoc') + + return ( + <rapi-doc + render-style="view" + layout="column" + spec-url={props.specUrl} + theme="light" + show-info="false" + show-header="false" + show-components="false" + allow-spec-file-load="false" + info-description-headings-in-navbar="false" + allow-try="false" + primary-color="#11171a" + allow-server-selection="false" + server-url="" + /> + ) + }} + </BrowserOnly> + ) +} diff --git a/src/components/Mermaid.js b/src/components/Mermaid.js new file mode 100644 index 0000000000000000000000000000000000000000..a8b2ba6458bbb75508ceb53b7e5b647c202d0e09 --- /dev/null +++ b/src/components/Mermaid.js @@ -0,0 +1,29 @@ +import React, { useEffect } from 'react' +import mermaid from 'mermaid' + +mermaid.initialize({ + startOnLoad: true, + sequence: { showSequenceNumbers: true }, + theme: 'base', + themeVariables: { + textColor: 'rgb(0,0,0)', + primaryBorderColor: 'rgb(87,87,87)', + lineColor: 'rgb(87,87,87)', + mainBkg: 'rgb(125,193,204)', + sequenceNumberColor: 'rgb(255,255,255)', + + } +}) + +const Mermaid = ({ children }) => { + useEffect(() => { + mermaid.contentLoaded() + }, []) + return ( + <div> + <div className="mermaid">{children}</div> + </div> + ) +} + +export default Mermaid diff --git a/src/components/VersionDisplay.js b/src/components/VersionDisplay.js new file mode 100644 index 0000000000000000000000000000000000000000..b6a0e42327910845df5410f2e74f7c3fc01a9ff1 --- /dev/null +++ b/src/components/VersionDisplay.js @@ -0,0 +1,22 @@ +import React from 'react' +import useDocusaurusContext from '@docusaurus/useDocusaurusContext' + +const DownloadLabel = ({ version, artifact }) => { + return <a href={`https://fitko.uber.space/${version}/${artifact}`} download> + herunterladen + </a> +} + +export default function ({ artifact }) { + const { siteMetadata } = useDocusaurusContext() + + return ( + <span> + <code>{siteMetadata.siteVersion || 'next'}</code> + {siteMetadata.siteVersion ? ( + <DownloadLabel version={siteMetadata.siteVersion} artifact={artifact} /> + ) : undefined } + </span> + ) + +} diff --git a/src/css/custom.css b/src/css/custom.css new file mode 100644 index 0000000000000000000000000000000000000000..db02f91008f78a8421d773dc90372c7b1644cb4e --- /dev/null +++ b/src/css/custom.css @@ -0,0 +1,11 @@ +dl dt { + font-weight: bold; +} + +.alert a, +.admonition, +.admonition-icon svg { + color: var(--ifm-font-color-base); + fill: var(--ifm-font-color-base); + stroke: var(--ifm-font-color-base); +} diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..2e08675dff2be3dd85997dbf5349d979138847c6 Binary files /dev/null and b/static/favicon.png differ diff --git a/assets/images/api_overview/FIEP_strategic_vision.png b/static/images/api_overview/FIEP_strategic_vision.png similarity index 100% rename from assets/images/api_overview/FIEP_strategic_vision.png rename to static/images/api_overview/FIEP_strategic_vision.png diff --git a/assets/images/api_overview/PoC_integrationarchitecture.jpg b/static/images/api_overview/PoC_integrationarchitecture.jpg similarity index 100% rename from assets/images/api_overview/PoC_integrationarchitecture.jpg rename to static/images/api_overview/PoC_integrationarchitecture.jpg diff --git a/assets/images/api_overview/XFall_Integration_Architecture.png b/static/images/api_overview/XFall_Integration_Architecture.png similarity index 100% rename from assets/images/api_overview/XFall_Integration_Architecture.png rename to static/images/api_overview/XFall_Integration_Architecture.png diff --git a/assets/images/api_overview/destination-id_publishing_jurisdiction-finder.png b/static/images/api_overview/destination-id_publishing_jurisdiction-finder.png similarity index 100% rename from assets/images/api_overview/destination-id_publishing_jurisdiction-finder.png rename to static/images/api_overview/destination-id_publishing_jurisdiction-finder.png diff --git a/assets/images/api_overview/future_integrationarchitecture.jpg b/static/images/api_overview/future_integrationarchitecture.jpg similarity index 100% rename from assets/images/api_overview/future_integrationarchitecture.jpg rename to static/images/api_overview/future_integrationarchitecture.jpg diff --git a/assets/images/encryption/pki-check.png b/static/images/encryption/pki-check.png similarity index 100% rename from assets/images/encryption/pki-check.png rename to static/images/encryption/pki-check.png diff --git a/assets/images/encryption/tls-no-tls.png b/static/images/encryption/tls-no-tls.png similarity index 100% rename from assets/images/encryption/tls-no-tls.png rename to static/images/encryption/tls-no-tls.png diff --git a/static/images/logo-fitko.svg b/static/images/logo-fitko.svg new file mode 100644 index 0000000000000000000000000000000000000000..f6da5c10287d88b87052840dd8109b17e48e0860 --- /dev/null +++ b/static/images/logo-fitko.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 224.33"><defs><style>.cls-1{fill:#010000;}.cls-2{fill:#bd1818;}.cls-3{fill:#ffd306;}.cls-4{fill:#1d1d1b;}</style></defs><title>Element 1</title><g id="Ebene_2" data-name="Ebene 2"><g id="Ebene_1-2" data-name="Ebene 1"><path class="cls-1" d="M88.89,126a8.76,8.76,0,1,1-8.76,8.75A8.77,8.77,0,0,1,88.89,126m0,22.53a13.78,13.78,0,1,0-13.78-13.78,13.77,13.77,0,0,0,13.78,13.78"/><path class="cls-1" d="M98.82,153.7H80.19a10.09,10.09,0,0,0-10.06,10.05v17.76c0,4.83,3.11,9.72,8.92,9.88h1v32.94h5V186.42H80.19a5.11,5.11,0,0,1-5.1-4.91V163.75a5.1,5.1,0,0,1,5.1-5.08H97.87a5.1,5.1,0,0,1,5.1,5.08v17.68a5.11,5.11,0,0,1-5.18,5H93l0,37.91h5V191.41a10.15,10.15,0,0,0,10-9.89V163.75c0-5.52-3.58-10.05-9.11-10.05"/><path class="cls-2" d="M98.29,89.7a8.76,8.76,0,1,1-8.76-8.76,8.77,8.77,0,0,1,8.76,8.76m-22.54,0A13.78,13.78,0,1,0,89.53,75.92,13.78,13.78,0,0,0,75.75,89.7"/><path class="cls-2" d="M70.63,99.63V81A10.09,10.09,0,0,0,60.57,70.94H42.81c-4.82,0-9.72,3.12-9.87,8.92v1H0v5H37.91V81a5.09,5.09,0,0,1,4.9-5.09H60.57A5.09,5.09,0,0,1,65.66,81V98.69a5.09,5.09,0,0,1-5.09,5.09H42.9a5.1,5.1,0,0,1-5-5.17V93.79L0,93.81v5H32.91a10.18,10.18,0,0,0,9.89,10H60.57c5.53,0,10.06-3.59,10.06-9.12"/><path class="cls-3" d="M130.74,98.29a8.76,8.76,0,1,1,8.76-8.76,8.77,8.77,0,0,1-8.76,8.76m0-22.54a13.78,13.78,0,1,0,13.78,13.78,13.78,13.78,0,0,0-13.78-13.78"/><path class="cls-3" d="M120.82,70.63h18.63a10.09,10.09,0,0,0,10.06-10.06V42.81c0-4.82-3.12-9.72-8.92-9.87h-1.05V0h-5l0,37.91h4.9a5.1,5.1,0,0,1,5.09,4.9V60.57a5.1,5.1,0,0,1-5.09,5.09H121.76a5.09,5.09,0,0,1-5.09-5.09V42.9a5.1,5.1,0,0,1,5.17-5h4.81l0-37.91h-5V32.91a10.18,10.18,0,0,0-10,9.89V60.57c0,5.53,3.59,10.06,9.12,10.06"/><polygon class="cls-4" points="130.65 149.04 135.81 149.04 135.81 149.04 135.81 136.66 135.81 136.65 145.23 136.65 145.23 136.65 145.23 132.34 145.23 132.34 135.81 132.34 135.81 132.34 135.81 126.2 135.81 126.2 152.92 126.2 152.92 126.19 152.92 121.11 152.92 121.1 130.66 121.1 130.65 121.1 130.65 149.04 130.65 149.04"/><polygon class="cls-4" points="173.82 121.12 173.82 149.04 168.63 149.06 168.63 121.12 173.82 121.12 173.82 121.12"/><polygon class="cls-4" points="199.08 149.06 199.08 126.19 189.31 126.19 189.31 126.19 189.31 121.1 189.31 121.1 213.39 121.1 213.39 121.1 213.39 126.19 213.39 126.19 204.27 126.19 204.27 149.06 199.08 149.06 199.08 149.06"/><polygon class="cls-4" points="239.9 145.82 236.22 149.47 221.55 135.1 235.66 120.69 239.35 124.34 228.89 135.1 239.9 145.82 239.9 145.82"/><path class="cls-1" d="M265.91,126.2a8.89,8.89,0,1,1-8.89,8.88,8.9,8.9,0,0,1,8.89-8.88m0,22.86a14,14,0,1,0-14-14,14,14,0,0,0,14,14"/><path class="cls-4" d="M132.08,189.07h-1.63v11.64h1.63V189.07Zm2.85,3.85c0,.25,0,.54,0,.87s0,.6,0,.8v6.12h1.55v-4.14a2.83,2.83,0,0,1,.58-1.87,1.89,1.89,0,0,1,1.5-.7,1.78,1.78,0,0,1,.89.2,1.45,1.45,0,0,1,.54.53,2,2,0,0,1,.28.75,5.33,5.33,0,0,1,.07.91v4.32H142v-4.83a4.18,4.18,0,0,0-.18-1.24,2.75,2.75,0,0,0-.53-1,2.62,2.62,0,0,0-.91-.68,3,3,0,0,0-1.29-.26,2.87,2.87,0,0,0-.83.12,2.92,2.92,0,0,0-.72.32,3,3,0,0,0-.58.48,2.27,2.27,0,0,0-.41.58h-.05c0-.16,0-.37,0-.62s0-.46-.05-.66Zm13.61,0h-2.07v-2.24h-1.53v2.24h-1.5v1.26h1.5v4.23a2.52,2.52,0,0,0,.58,1.82,2.22,2.22,0,0,0,1.69.61,3.85,3.85,0,0,0,.69-.06,3.52,3.52,0,0,0,.62-.15l-.05-1.27a1.89,1.89,0,0,1-.44.14,2.6,2.6,0,0,1-.46,0,1,1,0,0,1-.84-.3,1.51,1.51,0,0,1-.26-1v-4h2.07v-1.26Zm2.82,3.2a2.57,2.57,0,0,1,.24-.86,2.44,2.44,0,0,1,.53-.7,2.39,2.39,0,0,1,.75-.47,2.64,2.64,0,0,1,.93-.17,2.48,2.48,0,0,1,.95.17,1.93,1.93,0,0,1,.67.47,2,2,0,0,1,.41.7,2.73,2.73,0,0,1,.16.86Zm5.95-1.06a3.43,3.43,0,0,0-.75-1.27,3.19,3.19,0,0,0-1.18-.81,4.33,4.33,0,0,0-1.56-.28,4.26,4.26,0,0,0-1.6.31,3.85,3.85,0,0,0-1.28.84,3.9,3.9,0,0,0-.85,1.31,4.55,4.55,0,0,0-.3,1.67,4.37,4.37,0,0,0,.31,1.68,3.7,3.7,0,0,0,2.15,2.12,4.78,4.78,0,0,0,3.53-.1,3.85,3.85,0,0,0,1.47-1.22l-1.09-.87a2.7,2.7,0,0,1-.9.84,2.6,2.6,0,0,1-1.36.35,2.65,2.65,0,0,1-1-.18,2.59,2.59,0,0,1-.79-.5,2.39,2.39,0,0,1-.55-.75,2.28,2.28,0,0,1-.23-.93h6.2a2.11,2.11,0,0,0,0-.26v-.26a5,5,0,0,0-.27-1.69Zm4.15-6.78h-1.55v12.43h1.55V188.28Zm4.44,0h-1.55v12.43h1.55V188.28Zm4.42,4.64h-1.55v7.79h1.55v-7.79Zm-.06-3.53a1,1,0,0,0-.72-.29,1,1,0,0,0-.72.29,1,1,0,0,0,0,1.42,1,1,0,0,0,.72.28,1,1,0,0,0,.72-.28.91.91,0,0,0,.3-.7,1,1,0,0,0-.3-.72Zm2.54,13.85a5.2,5.2,0,0,0,1.77,1,6.11,6.11,0,0,0,2,.37,5.06,5.06,0,0,0,2-.37,3.59,3.59,0,0,0,1.33-1,3.67,3.67,0,0,0,.73-1.38,6.22,6.22,0,0,0,.21-1.63v-7.4h-1.5v1.25h0a2.68,2.68,0,0,0-1.21-1.1,3.58,3.58,0,0,0-1.6-.37A4,4,0,0,0,175,193a3.78,3.78,0,0,0-1.23.88,3.68,3.68,0,0,0-.79,1.29,4.33,4.33,0,0,0-.28,1.57,4.25,4.25,0,0,0,.28,1.57,3.73,3.73,0,0,0,.79,1.28,3.51,3.51,0,0,0,1.24.85,4.07,4.07,0,0,0,1.62.32,3.72,3.72,0,0,0,1.58-.35,2.7,2.7,0,0,0,1.16-1h0v1a4.48,4.48,0,0,1-.14,1.13,2.49,2.49,0,0,1-.46.92,2.35,2.35,0,0,1-.85.61,3.49,3.49,0,0,1-1.3.22,3.78,3.78,0,0,1-1.57-.35,3.62,3.62,0,0,1-1.27-.92l-1,1.2Zm1.62-7.57a2.7,2.7,0,0,1,.51-.87,2.57,2.57,0,0,1,.82-.59,2.53,2.53,0,0,1,1.09-.22,2.58,2.58,0,0,1,1.08.22,2.8,2.8,0,0,1,.84.6,2.77,2.77,0,0,1,.54.87,2.84,2.84,0,0,1,.19,1,3,3,0,0,1-.19,1.08,2.75,2.75,0,0,1-.53.87,2.52,2.52,0,0,1-.85.58,2.58,2.58,0,0,1-1.08.22,2.53,2.53,0,0,1-1.09-.23,2.79,2.79,0,0,1-.82-.61,2.7,2.7,0,0,1-.51-.87,3,3,0,0,1-.17-1,3.14,3.14,0,0,1,.17-1.06Zm10.38.45a2.17,2.17,0,0,1,.24-.86,2.61,2.61,0,0,1,.52-.7,2.56,2.56,0,0,1,.76-.47,2.6,2.6,0,0,1,.93-.17,2.43,2.43,0,0,1,.94.17,1.89,1.89,0,0,1,1.09,1.17,3.45,3.45,0,0,1,.16.86Zm5.95-1.06a3.43,3.43,0,0,0-.75-1.27,3.27,3.27,0,0,0-1.18-.81,4.33,4.33,0,0,0-1.56-.28,4.22,4.22,0,0,0-1.6.31,3.85,3.85,0,0,0-1.28.84,3.76,3.76,0,0,0-.85,1.31,4.35,4.35,0,0,0-.31,1.67,4.57,4.57,0,0,0,.31,1.68,4,4,0,0,0,.86,1.29,3.86,3.86,0,0,0,1.3.83,4.75,4.75,0,0,0,3.52-.1,3.81,3.81,0,0,0,1.48-1.22l-1.09-.87a2.8,2.8,0,0,1-.9.84,2.63,2.63,0,0,1-1.37.35,2.56,2.56,0,0,1-1-.18,2.64,2.64,0,0,1-.8-.5,2.55,2.55,0,0,1-.55-.75,2.44,2.44,0,0,1-.22-.93H191a2.17,2.17,0,0,0,0-.26v-.26a5,5,0,0,0-.26-1.69Zm2.5-2.14c0,.25,0,.54.05.87s0,.6,0,.8v6.12h1.54v-4.14a2.88,2.88,0,0,1,.58-1.87A1.89,1.89,0,0,1,197,194a1.8,1.8,0,0,1,.89.2,1.45,1.45,0,0,1,.54.53,2.23,2.23,0,0,1,.27.75,5.33,5.33,0,0,1,.07.91v4.32h1.55v-4.83a4.53,4.53,0,0,0-.17-1.24,2.93,2.93,0,0,0-.54-1,2.68,2.68,0,0,0-.9-.68,3,3,0,0,0-1.3-.26,2.76,2.76,0,0,0-.82.12,2.84,2.84,0,0,0-.73.32,3,3,0,0,0-.58.48,2.23,2.23,0,0,0-.4.58h-.05c0-.16,0-.37,0-.62s0-.46,0-.66Zm13.61,0h-2.07v-2.24h-1.53v2.24h-1.49v1.26h1.49v4.23a2.56,2.56,0,0,0,.58,1.82,2.23,2.23,0,0,0,1.69.61,4,4,0,0,0,.7-.06,3.4,3.4,0,0,0,.61-.15l0-1.27a2,2,0,0,1-.45.14,2.53,2.53,0,0,1-.46,0,1.08,1.08,0,0,1-.84-.3,1.57,1.57,0,0,1-.26-1v-4h2.07v-1.26Zm15.65,0h-1.64l-2.3,6.13h0l-2.29-6.13h-1.71l3.17,7.79h1.68l3.12-7.79Zm2.73,3.2a2.17,2.17,0,0,1,.24-.86,2.44,2.44,0,0,1,.53-.7,2.39,2.39,0,0,1,.75-.47,2.6,2.6,0,0,1,.93-.17,2.52,2.52,0,0,1,.95.17,1.93,1.93,0,0,1,.67.47,2,2,0,0,1,.41.7,2.73,2.73,0,0,1,.16.86Zm5.95-1.06a3.43,3.43,0,0,0-.75-1.27,3.27,3.27,0,0,0-1.18-.81,4.33,4.33,0,0,0-1.56-.28,4.26,4.26,0,0,0-1.6.31,3.85,3.85,0,0,0-1.28.84,3.9,3.9,0,0,0-.85,1.31,4.55,4.55,0,0,0-.31,1.67,4.37,4.37,0,0,0,.32,1.68,3.7,3.7,0,0,0,2.15,2.12,4.39,4.39,0,0,0,1.64.29,4.47,4.47,0,0,0,1.89-.39,3.85,3.85,0,0,0,1.47-1.22l-1.09-.87a2.8,2.8,0,0,1-.9.84,2.61,2.61,0,0,1-1.37.35,2.56,2.56,0,0,1-1-.18,2.58,2.58,0,0,1-1.35-1.25,2.44,2.44,0,0,1-.22-.93h6.2a2.11,2.11,0,0,0,0-.26v-.26a5,5,0,0,0-.27-1.69Zm2.57-.47v6.12h1.54v-4.09a3.69,3.69,0,0,1,.13-1,2.42,2.42,0,0,1,.41-.8,2,2,0,0,1,.68-.55,2.24,2.24,0,0,1,1-.2,3.22,3.22,0,0,1,.71.08l.06-1.43a2.63,2.63,0,0,0-2,.35,2.72,2.72,0,0,0-1,1.11h-.05c0-.16,0-.37,0-.63s0-.48,0-.68h-1.47c0,.25,0,.54.05.87s0,.6,0,.8Zm6.05-1.67c0,.25,0,.54.05.87s0,.6,0,.8v6.12h1.55v-4.14a2.83,2.83,0,0,1,.58-1.87,1.89,1.89,0,0,1,1.51-.7,1.76,1.76,0,0,1,.88.2,1.55,1.55,0,0,1,.55.53,2.23,2.23,0,0,1,.27.75,5.33,5.33,0,0,1,.07.91v4.32h1.55v-4.83a4.18,4.18,0,0,0-.18-1.24,2.75,2.75,0,0,0-.53-1,2.68,2.68,0,0,0-.9-.68,3.08,3.08,0,0,0-1.3-.26,2.76,2.76,0,0,0-.82.12,2.84,2.84,0,0,0-.73.32,3,3,0,0,0-.58.48,2,2,0,0,0-.4.58h0c0-.16,0-.37,0-.62s0-.46,0-.66Zm10.86,3.2a2.35,2.35,0,0,1,.24-.86,2.44,2.44,0,0,1,.53-.7,2.39,2.39,0,0,1,.75-.47,2.6,2.6,0,0,1,.93-.17,2.52,2.52,0,0,1,.95.17,1.93,1.93,0,0,1,.67.47,2,2,0,0,1,.41.7,2.73,2.73,0,0,1,.16.86Zm6-1.06a3.43,3.43,0,0,0-.75-1.27,3.19,3.19,0,0,0-1.18-.81,4.33,4.33,0,0,0-1.56-.28,4.26,4.26,0,0,0-1.6.31,3.85,3.85,0,0,0-1.28.84,3.9,3.9,0,0,0-.85,1.31,4.55,4.55,0,0,0-.3,1.67,4.37,4.37,0,0,0,.31,1.68,3.7,3.7,0,0,0,2.15,2.12,4.78,4.78,0,0,0,3.53-.1,3.85,3.85,0,0,0,1.47-1.22l-1.09-.87a2.8,2.8,0,0,1-.9.84,2.64,2.64,0,0,1-3.12-.33,2.39,2.39,0,0,1-.55-.75,2.28,2.28,0,0,1-.23-.93h6.2a2.11,2.11,0,0,0,0-.26v-.26a5,5,0,0,0-.27-1.69Zm6.38-2.14h-2.07v-2.24H259.4v2.24h-1.49v1.26h1.49v4.23a2.52,2.52,0,0,0,.59,1.82,2.21,2.21,0,0,0,1.68.61,4,4,0,0,0,.7-.06,3.75,3.75,0,0,0,.62-.15l-.05-1.27a1.83,1.83,0,0,1-.45.14,2.45,2.45,0,0,1-.46,0,1.08,1.08,0,0,1-.84-.3,1.57,1.57,0,0,1-.26-1v-4H263v-1.26Zm7.32,0h-6.13v1.26h4.19L264,199.44v1.27h6.53v-1.3h-4.62l4.44-5.23v-1.26Zm6,0h-2.07v-2.24h-1.53v2.24h-1.49v1.26h1.49v4.23a2.52,2.52,0,0,0,.59,1.82,2.21,2.21,0,0,0,1.68.61,4,4,0,0,0,.7-.06,3.52,3.52,0,0,0,.62-.15l-.05-1.27a1.83,1.83,0,0,1-.45.14,2.45,2.45,0,0,1-.46,0,1,1,0,0,1-.83-.3,1.51,1.51,0,0,1-.27-1v-4h2.07v-1.26Zm3.36,6.05a1.06,1.06,0,0,0-.79-.31,1.08,1.08,0,0,0-1.1,1.08,1,1,0,0,0,.32.75,1.06,1.06,0,0,0,.78.32,1,1,0,0,0,.79-.33,1.06,1.06,0,0,0,.31-.76,1,1,0,0,0-.31-.75Z"/><path class="cls-4" d="M130.45,178.66h4a7.22,7.22,0,0,0,2.23-.36,6.35,6.35,0,0,0,2-1.06,5.43,5.43,0,0,0,1.46-1.81,5.65,5.65,0,0,0,.56-2.59,5.86,5.86,0,0,0-.56-2.65,5.43,5.43,0,0,0-1.46-1.81,6.09,6.09,0,0,0-2-1,7.82,7.82,0,0,0-2.23-.33h-4v11.64Zm1.63-10.23h2a6.43,6.43,0,0,1,1.95.29,4.33,4.33,0,0,1,1.54.84,3.66,3.66,0,0,1,1,1.37,4.58,4.58,0,0,1,.37,1.91,4.45,4.45,0,0,1-.37,1.86,3.86,3.86,0,0,1-1,1.38,4.5,4.5,0,0,1-1.54.85,6.13,6.13,0,0,1-1.95.3h-2v-8.8Zm12.36,2.44H142.9v7.79h1.54v-7.79Zm-.05-3.53a1,1,0,0,0-.73-.29,1,1,0,0,0-.71.29.94.94,0,0,0-.3.71.92.92,0,0,0,.3.7.94.94,0,0,0,.71.29,1,1,0,0,0,.73-.28.91.91,0,0,0,.3-.71.94.94,0,0,0-.3-.71Zm2.37,13.85a5,5,0,0,0,1.77,1,5.92,5.92,0,0,0,2.05.37,5,5,0,0,0,2-.36,3.45,3.45,0,0,0,2.06-2.34,6.3,6.3,0,0,0,.21-1.64v-7.39h-1.49v1.25h0a2.79,2.79,0,0,0-1.2-1.11,3.75,3.75,0,0,0-1.61-.36,4,4,0,0,0-1.61.32,3.91,3.91,0,0,0-1.23.87,4,4,0,0,0-.79,1.29,4.38,4.38,0,0,0-.28,1.58,4.29,4.29,0,0,0,.28,1.57,4,4,0,0,0,.79,1.28,3.65,3.65,0,0,0,1.24.85,4.07,4.07,0,0,0,1.62.31,3.71,3.71,0,0,0,1.58-.34,2.76,2.76,0,0,0,1.16-1h0v1a4.54,4.54,0,0,1-.14,1.13,2.44,2.44,0,0,1-.46.91,2.14,2.14,0,0,1-.85.61,3.29,3.29,0,0,1-1.3.23,3.92,3.92,0,0,1-2.84-1.27l-1,1.2Zm1.62-7.57a2.6,2.6,0,0,1,.51-.87,2.42,2.42,0,0,1,.82-.59,2.53,2.53,0,0,1,1.09-.23,2.58,2.58,0,0,1,1.08.23,2.49,2.49,0,0,1,.84.6,2.6,2.6,0,0,1,.54.87,2.84,2.84,0,0,1,.19,1.05,3,3,0,0,1-.19,1.08,2.58,2.58,0,0,1-.53.87,2.52,2.52,0,0,1-.84.58,2.79,2.79,0,0,1-1.09.22,2.39,2.39,0,0,1-1.09-.24,2.6,2.6,0,0,1-.82-.6,2.93,2.93,0,0,1-.51-.87,3.29,3.29,0,0,1-.17-1,3.36,3.36,0,0,1,.17-1.06Zm10.71-2.75h-1.55v7.79h1.55v-7.79Zm-.05-3.53a1.05,1.05,0,0,0-.73-.29,1,1,0,0,0-.72.29,1,1,0,0,0-.29.71,1,1,0,0,0,.29.7,1,1,0,0,0,.72.29,1,1,0,0,0,.73-.28.91.91,0,0,0,.3-.71.94.94,0,0,0-.3-.71Zm6.56,3.53h-2.07v-2.24H162v2.24h-1.5v1.26H162v4.23a2.52,2.52,0,0,0,.58,1.82,2.22,2.22,0,0,0,1.69.61,4,4,0,0,0,.7-.06,4.54,4.54,0,0,0,.61-.15l-.05-1.27a1.89,1.89,0,0,1-.44.14,2.53,2.53,0,0,1-.46,0,1.08,1.08,0,0,1-.84-.3,1.57,1.57,0,0,1-.26-1v-4.05h2.07v-1.26Zm6.44,2.95c-.65,0-1.31,0-1.95.09a6.79,6.79,0,0,0-1.74.35,2.89,2.89,0,0,0-1.25.79,2,2,0,0,0-.48,1.41,2.22,2.22,0,0,0,.27,1.13,2.31,2.31,0,0,0,.68.74,2.75,2.75,0,0,0,.91.4,4.25,4.25,0,0,0,1,.13,3.2,3.2,0,0,0,1.53-.35,3,3,0,0,0,1.08-1h.05a4.76,4.76,0,0,0,.13,1.12h1.4a3.35,3.35,0,0,1-.09-.72c0-.29,0-.56,0-.83v-3.4a3.59,3.59,0,0,0-.19-1.2,2.69,2.69,0,0,0-.6-1,2.8,2.8,0,0,0-1-.65,4,4,0,0,0-1.45-.24,5.26,5.26,0,0,0-1.79.31,4.19,4.19,0,0,0-1.4.86l.82,1a3,3,0,0,1,1-.65,3.06,3.06,0,0,1,1.24-.26,2.18,2.18,0,0,1,1.4.42,1.55,1.55,0,0,1,.52,1.29v.21Zm0,1.12v.41a2.35,2.35,0,0,1-.58,1.64,2.13,2.13,0,0,1-1.67.65,2.62,2.62,0,0,1-.57-.06,1.65,1.65,0,0,1-.51-.2,1.12,1.12,0,0,1-.37-.38,1.06,1.06,0,0,1-.14-.58,1,1,0,0,1,.33-.79,2.19,2.19,0,0,1,.83-.44,5.79,5.79,0,0,1,1.11-.2c.41,0,.81-.05,1.2-.05Zm5.64-8.71h-1.54v12.43h1.54V166.23Zm3.77,7.84a2.13,2.13,0,0,1,.24-.86,2.41,2.41,0,0,1,.52-.7A2.44,2.44,0,0,1,183,172a2.6,2.6,0,0,1,.93-.17,2.46,2.46,0,0,1,.94.17,2.07,2.07,0,0,1,.68.47,2.12,2.12,0,0,1,.41.7,3,3,0,0,1,.15.86Zm6-1.06a3.72,3.72,0,0,0-.75-1.27,3.31,3.31,0,0,0-1.19-.81,4.29,4.29,0,0,0-1.56-.28,4,4,0,0,0-1.59.31,3.79,3.79,0,0,0-1.29.84,4,4,0,0,0-.85,1.31,4.55,4.55,0,0,0-.3,1.67,4.37,4.37,0,0,0,.31,1.68,3.84,3.84,0,0,0,.86,1.29,3.92,3.92,0,0,0,1.29.83,4.69,4.69,0,0,0,1.65.29,4.42,4.42,0,0,0,1.88-.39,3.87,3.87,0,0,0,1.47-1.22l-1.08-.87a2.74,2.74,0,0,1-.91.84,2.59,2.59,0,0,1-1.36.34,2.56,2.56,0,0,1-1-.18,2.5,2.5,0,0,1-.8-.49,2.6,2.6,0,0,1-.55-.76,2.19,2.19,0,0,1-.22-.92h6.19a2.28,2.28,0,0,0,0-.26v-.26a5.21,5.21,0,0,0-.26-1.69Zm5.08-6h-1.81l4.54,11.64h1.51L201.29,167h-1.76l-3.5,9.53H196l-3.5-9.53Zm10.49,7a2.13,2.13,0,0,1,.24-.86,2.41,2.41,0,0,1,.52-.7,2.56,2.56,0,0,1,.76-.47,2.6,2.6,0,0,1,.93-.17,2.46,2.46,0,0,1,.94.17,1.89,1.89,0,0,1,1.09,1.17,3,3,0,0,1,.15.86Zm5.95-1.06a3.72,3.72,0,0,0-.75-1.27,3.23,3.23,0,0,0-1.19-.81,4.24,4.24,0,0,0-1.55-.28,4,4,0,0,0-1.6.31,3.89,3.89,0,0,0-1.29.84,3.78,3.78,0,0,0-.84,1.31,4.68,4.68,0,0,0,0,3.35,4,4,0,0,0,.86,1.29,3.86,3.86,0,0,0,1.3.83,4.59,4.59,0,0,0,1.64.29,4.42,4.42,0,0,0,1.88-.39,3.8,3.8,0,0,0,1.47-1.22l-1.08-.87a2.74,2.74,0,0,1-.91.84,2.79,2.79,0,0,1-2.32.16,2.39,2.39,0,0,1-1.35-1.25,2.19,2.19,0,0,1-.22-.92h6.2a2.26,2.26,0,0,0,0-.26v-.26a5.21,5.21,0,0,0-.26-1.69Zm2.4-.47v6.12h1.54v-4.1a3.29,3.29,0,0,1,.14-.94,2.23,2.23,0,0,1,.4-.8,2,2,0,0,1,.68-.55,2.13,2.13,0,0,1,1-.2,2.71,2.71,0,0,1,.71.08l.06-1.43a2.06,2.06,0,0,0-.6-.07,2.55,2.55,0,0,0-1.43.42,2.72,2.72,0,0,0-1,1.11h-.05c0-.16,0-.37,0-.63s0-.49-.05-.68h-1.47c0,.25,0,.54.05.87s0,.59,0,.8Zm4.85-1.67,2.6,7.79h1.61l1.9-5.85h0l1.92,5.85h1.61l2.58-7.79H226.8l-1.75,5.95h0l-1.89-5.95H221.5l-1.86,5.95h0l-1.75-5.95Zm18.66,2.95c-.66,0-1.31,0-2,.09a6.79,6.79,0,0,0-1.74.35,3,3,0,0,0-1.25.79,2,2,0,0,0-.48,1.41,2.13,2.13,0,0,0,1,1.87,2.58,2.58,0,0,0,.91.4,4.1,4.1,0,0,0,1,.13,3.27,3.27,0,0,0,1.54-.35,2.92,2.92,0,0,0,1.07-1h0a5.35,5.35,0,0,0,.13,1.12h1.4a5.39,5.39,0,0,1-.09-.72c0-.29,0-.56,0-.83v-3.4a3.6,3.6,0,0,0-.2-1.2,2.67,2.67,0,0,0-.59-1,2.89,2.89,0,0,0-1-.65,4,4,0,0,0-1.46-.24,5.2,5.2,0,0,0-1.78.31,4.23,4.23,0,0,0-1.41.86l.82,1a3.24,3.24,0,0,1,2.22-.91,2.18,2.18,0,0,1,1.4.42,1.56,1.56,0,0,1,.53,1.29v.21Zm0,1.12v.41a2.36,2.36,0,0,1-.59,1.64,2.13,2.13,0,0,1-1.67.65,2.76,2.76,0,0,1-.57-.06,1.65,1.65,0,0,1-.51-.2,1.22,1.22,0,0,1-.37-.38,1.16,1.16,0,0,1-.14-.58,1,1,0,0,1,.33-.79,2.27,2.27,0,0,1,.83-.44,5.9,5.9,0,0,1,1.12-.2c.41,0,.81-.05,1.19-.05Zm5.64-8.71h-1.55v12.43h1.55V166.23Zm6.51,4.64H244.9v-2.24h-1.53v2.24h-1.49v1.26h1.49v4.23a2.52,2.52,0,0,0,.59,1.82,2.21,2.21,0,0,0,1.68.61,4,4,0,0,0,.7-.06,4.7,4.7,0,0,0,.62-.15l-.05-1.27a1.89,1.89,0,0,1-.44.14,2.6,2.6,0,0,1-.46,0,1,1,0,0,1-.84-.3,1.51,1.51,0,0,1-.27-1v-4.05H247v-1.26Zm8.54,7.79c0-.25,0-.54-.05-.87s0-.6,0-.81v-6.11h-1.55V175a2.83,2.83,0,0,1-.57,1.86,1.87,1.87,0,0,1-1.52.7,1.77,1.77,0,0,1-.88-.19,1.64,1.64,0,0,1-.55-.53,2.21,2.21,0,0,1-.27-.76,5.53,5.53,0,0,1-.07-.92v-4.3H248.5v4.83a4.06,4.06,0,0,0,.18,1.23,2.85,2.85,0,0,0,.52,1,2.4,2.4,0,0,0,.91.68,3,3,0,0,0,1.3.25,2.91,2.91,0,0,0,1.56-.43,2.62,2.62,0,0,0,1-1.06h0c0,.16,0,.37,0,.61s0,.47.05.67Zm2.55-7.79c0,.25,0,.54.05.87s0,.59,0,.8v6.12h1.54v-4.14a2.83,2.83,0,0,1,.59-1.87,1.84,1.84,0,0,1,1.5-.7,1.8,1.8,0,0,1,.89.2,1.5,1.5,0,0,1,.54.52,2.29,2.29,0,0,1,.27.76,5.29,5.29,0,0,1,.08.9v4.33h1.54v-4.84a4.51,4.51,0,0,0-.17-1.23,2.84,2.84,0,0,0-.54-1,2.55,2.55,0,0,0-.9-.68,3,3,0,0,0-1.3-.26,2.81,2.81,0,0,0-.82.12,2.47,2.47,0,0,0-.72.32,3,3,0,0,0-.59.47,2.46,2.46,0,0,0-.4.59h0c0-.17,0-.37,0-.62a6,6,0,0,0-.05-.66Zm9.26,10.32a5.07,5.07,0,0,0,1.76,1,6,6,0,0,0,2.05.37,5.1,5.1,0,0,0,2-.36,3.59,3.59,0,0,0,1.33-1,3.51,3.51,0,0,0,.72-1.38,5.9,5.9,0,0,0,.22-1.64v-7.39H274v1.25h0a2.82,2.82,0,0,0-1.21-1.11,3.7,3.7,0,0,0-1.6-.36,4,4,0,0,0-1.61.32,3.85,3.85,0,0,0-1.24.87,4,4,0,0,0-.79,1.29,4.61,4.61,0,0,0-.28,1.58,4.51,4.51,0,0,0,.28,1.57,4,4,0,0,0,.79,1.28,3.75,3.75,0,0,0,1.24.85,4.07,4.07,0,0,0,1.62.31,3.68,3.68,0,0,0,1.58-.34,2.85,2.85,0,0,0,1.17-1h0v1a4.54,4.54,0,0,1-.14,1.13,2.18,2.18,0,0,1-.46.91,2,2,0,0,1-.85.61,3.27,3.27,0,0,1-1.29.23,4,4,0,0,1-2.85-1.27l-1,1.2Zm1.62-7.57a2.46,2.46,0,0,1,1.32-1.46,2.56,2.56,0,0,1,1.09-.23,2.52,2.52,0,0,1,1.08.23,2.31,2.31,0,0,1,.84.6,2.63,2.63,0,0,1,.55.87,3.05,3.05,0,0,1,.19,1.05,3.23,3.23,0,0,1-.19,1.08,2.77,2.77,0,0,1-.54.87,2.52,2.52,0,0,1-.84.58,2.75,2.75,0,0,1-1.09.22,2.54,2.54,0,0,1-1.9-.84,2.56,2.56,0,0,1-.51-.87,3,3,0,0,1-.18-1,3.11,3.11,0,0,1,.18-1.06Zm10.74,3.3a1.1,1.1,0,0,0-1.89.77,1,1,0,0,0,.32.75,1.06,1.06,0,0,0,.78.32,1,1,0,0,0,.79-.33,1.06,1.06,0,0,0,.31-.76,1,1,0,0,0-.31-.75Z"/></g></g></svg> \ No newline at end of file diff --git a/assets/images/oauth/01_portal.png b/static/images/oauth/01_portal.png similarity index 100% rename from assets/images/oauth/01_portal.png rename to static/images/oauth/01_portal.png diff --git a/assets/images/oauth/02_register.png b/static/images/oauth/02_register.png similarity index 100% rename from assets/images/oauth/02_register.png rename to static/images/oauth/02_register.png diff --git a/assets/images/oauth/03_registered.png b/static/images/oauth/03_registered.png similarity index 100% rename from assets/images/oauth/03_registered.png rename to static/images/oauth/03_registered.png diff --git a/assets/images/oauth/04_settings.png b/static/images/oauth/04_settings.png similarity index 100% rename from assets/images/oauth/04_settings.png rename to static/images/oauth/04_settings.png diff --git a/assets/images/oauth/05_language.png b/static/images/oauth/05_language.png similarity index 100% rename from assets/images/oauth/05_language.png rename to static/images/oauth/05_language.png diff --git a/assets/images/oauth/06_apis.png b/static/images/oauth/06_apis.png similarity index 100% rename from assets/images/oauth/06_apis.png rename to static/images/oauth/06_apis.png diff --git a/assets/images/oauth/07_select_api.png b/static/images/oauth/07_select_api.png similarity index 100% rename from assets/images/oauth/07_select_api.png rename to static/images/oauth/07_select_api.png diff --git a/assets/images/oauth/08_register_client.png b/static/images/oauth/08_register_client.png similarity index 100% rename from assets/images/oauth/08_register_client.png rename to static/images/oauth/08_register_client.png diff --git a/assets/images/oauth/09_request_token.png b/static/images/oauth/09_request_token.png similarity index 100% rename from assets/images/oauth/09_request_token.png rename to static/images/oauth/09_request_token.png diff --git a/assets/images/oauth/10_goto_applications.png b/static/images/oauth/10_goto_applications.png similarity index 100% rename from assets/images/oauth/10_goto_applications.png rename to static/images/oauth/10_goto_applications.png diff --git a/assets/images/oauth/11_applications.png b/static/images/oauth/11_applications.png similarity index 100% rename from assets/images/oauth/11_applications.png rename to static/images/oauth/11_applications.png diff --git a/assets/images/oauth/12_application_details.png b/static/images/oauth/12_application_details.png similarity index 100% rename from assets/images/oauth/12_application_details.png rename to static/images/oauth/12_application_details.png diff --git a/assets/images/oauth/13_api_zugriff.png b/static/images/oauth/13_api_zugriff.png similarity index 100% rename from assets/images/oauth/13_api_zugriff.png rename to static/images/oauth/13_api_zugriff.png diff --git a/assets/images/oauth/14_authorization.png b/static/images/oauth/14_authorization.png similarity index 100% rename from assets/images/oauth/14_authorization.png rename to static/images/oauth/14_authorization.png diff --git a/assets/images/oauth/15_request_token.png b/static/images/oauth/15_request_token.png similarity index 100% rename from assets/images/oauth/15_request_token.png rename to static/images/oauth/15_request_token.png diff --git a/assets/images/oauth/16_use_token.png b/static/images/oauth/16_use_token.png similarity index 100% rename from assets/images/oauth/16_use_token.png rename to static/images/oauth/16_use_token.png diff --git a/assets/images/oauth/17_api_call.png b/static/images/oauth/17_api_call.png similarity index 100% rename from assets/images/oauth/17_api_call.png rename to static/images/oauth/17_api_call.png diff --git a/assets/images/oauth/18_zwei_scopes.png b/static/images/oauth/18_zwei_scopes.png similarity index 100% rename from assets/images/oauth/18_zwei_scopes.png rename to static/images/oauth/18_zwei_scopes.png diff --git a/assets/images/oauth/JWT-Konzept-Fachanwendung.png b/static/images/oauth/JWT-Konzept-Fachanwendung.png similarity index 100% rename from assets/images/oauth/JWT-Konzept-Fachanwendung.png rename to static/images/oauth/JWT-Konzept-Fachanwendung.png diff --git a/assets/images/oauth/JWT-Konzept.png b/static/images/oauth/JWT-Konzept.png similarity index 100% rename from assets/images/oauth/JWT-Konzept.png rename to static/images/oauth/JWT-Konzept.png diff --git a/assets/images/oauth/JWT_konzept.png b/static/images/oauth/JWT_konzept.png similarity index 100% rename from assets/images/oauth/JWT_konzept.png rename to static/images/oauth/JWT_konzept.png diff --git a/assets/images/quick_reference/application_structure.png b/static/images/quick_reference/application_structure.png similarity index 100% rename from assets/images/quick_reference/application_structure.png rename to static/images/quick_reference/application_structure.png diff --git a/assets/images/use_case_documentation/BPMN Legend/Activity.png b/static/images/use_case_documentation/BPMN Legend/Activity.png similarity index 100% rename from assets/images/use_case_documentation/BPMN Legend/Activity.png rename to static/images/use_case_documentation/BPMN Legend/Activity.png diff --git a/assets/images/use_case_documentation/BPMN Legend/Activity_Multi_Instance.png b/static/images/use_case_documentation/BPMN Legend/Activity_Multi_Instance.png similarity index 100% rename from assets/images/use_case_documentation/BPMN Legend/Activity_Multi_Instance.png rename to static/images/use_case_documentation/BPMN Legend/Activity_Multi_Instance.png diff --git a/assets/images/use_case_documentation/BPMN Legend/End_Event.png b/static/images/use_case_documentation/BPMN Legend/End_Event.png similarity index 100% rename from assets/images/use_case_documentation/BPMN Legend/End_Event.png rename to static/images/use_case_documentation/BPMN Legend/End_Event.png diff --git a/assets/images/use_case_documentation/BPMN Legend/Exclusive Gateway.png b/static/images/use_case_documentation/BPMN Legend/Exclusive Gateway.png similarity index 100% rename from assets/images/use_case_documentation/BPMN Legend/Exclusive Gateway.png rename to static/images/use_case_documentation/BPMN Legend/Exclusive Gateway.png diff --git a/assets/images/use_case_documentation/BPMN Legend/Parallel_Gateway.png b/static/images/use_case_documentation/BPMN Legend/Parallel_Gateway.png similarity index 100% rename from assets/images/use_case_documentation/BPMN Legend/Parallel_Gateway.png rename to static/images/use_case_documentation/BPMN Legend/Parallel_Gateway.png diff --git a/assets/images/use_case_documentation/BPMN Legend/Start_Event.png b/static/images/use_case_documentation/BPMN Legend/Start_Event.png similarity index 100% rename from assets/images/use_case_documentation/BPMN Legend/Start_Event.png rename to static/images/use_case_documentation/BPMN Legend/Start_Event.png diff --git a/assets/images/use_case_documentation/application_retrieval.png b/static/images/use_case_documentation/application_retrieval.png similarity index 100% rename from assets/images/use_case_documentation/application_retrieval.png rename to static/images/use_case_documentation/application_retrieval.png diff --git a/assets/images/use_case_documentation/application_transfer.png b/static/images/use_case_documentation/application_transfer.png similarity index 100% rename from assets/images/use_case_documentation/application_transfer.png rename to static/images/use_case_documentation/application_transfer.png diff --git a/assets/images/use_case_documentation/use_case_diagramm.png b/static/images/use_case_documentation/use_case_diagramm.png similarity index 100% rename from assets/images/use_case_documentation/use_case_diagramm.png rename to static/images/use_case_documentation/use_case_diagramm.png diff --git a/ui/LICENSE.md b/ui/LICENSE.md deleted file mode 100644 index f1733ebee882fb4302a36a7f64fc140906ff988c..0000000000000000000000000000000000000000 --- a/ui/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ -This license is for `rapidoc-min.js`: - -MIT License -=========== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/ui/config.js.template b/ui/config.js.template deleted file mode 100644 index 51b0c19927e0d6dabde29e7f447355e2ad981324..0000000000000000000000000000000000000000 --- a/ui/config.js.template +++ /dev/null @@ -1,4 +0,0 @@ -// Localhost: python -m http.server -// sed 's,API_VERSION,https://example.com/spec.yml,g' ui/config.js.template > ui/config.js - -export const SPEC_URL = "API_VERSION"; diff --git a/ui/index.html b/ui/index.html deleted file mode 100644 index b18c5ebe61e3a6ff798252cb544a64a9e10c0147..0000000000000000000000000000000000000000 --- a/ui/index.html +++ /dev/null @@ -1,49 +0,0 @@ -<!doctype html> -<html> -<head> - <meta charset="utf-8"> <!-- Important: rapi-doc uses utf8 charecters --> - <title>Zustelldienst - API-Referenz</title> - <script type="module" src="rapidoc-min.js"></script> - <script type="module"> - import {SPEC_URL} from './config.js'; - - console.log('Spec: ' + SPEC_URL); - let docEl = document.getElementById("thedoc"); - docEl.setAttribute("spec-url", SPEC_URL); - </script> -</head> -<body> -<!--<rapi-doc spec-url = "poc/reference/0_xfall_deref_snippets.json" --> -<rapi-doc id="thedoc" - render-style="focused" - - theme="light" - xprimary-color="#11171a" - header-color="#263238" - nav-bg-color="#263238" - - show-info="true" - show-header="true" - show-components="true" - allow-spec-file-load="false" - - info-description-headings-in-navbar="true"> - <!-- content at the top --> - - <!-- content at the bottom --> - <p slot="footer" style="background: #f1f1f1; padding: 24px 100px 12px 100px"> - FITKO (Föderale IT-Kooperation) | Zum Gottschalkhof 3 | 60594 Frankfurt am Mail | E-Mail: poststelle@fitko.de | - https://www.fitko.de | Die FITKO ist eine Anstalt des öffentlichen Rechts. Sie wird vertreten durch die - Präsidentin Frau Dr. Annette Schmidt. - </p> - - <!-- replace logo --> - <!--<p slot="logo"><img src="https://git.fitko.de/uploads/-/system/project/avatar/1/Connect.jpg?width=128" style="height: 1em; margin: 0.3em 0 0 1em; background: white; padding: 0.5em;" alt="Logo"></p>--> - <p slot="logo"></p> - - <!-- header --> - <!--<p slot="header"></p>--> - -</rapi-doc> -</body> -</html> diff --git a/ui/rapidoc-min.js b/ui/rapidoc-min.js deleted file mode 100644 index 3dcfda6f793ffa259ac455e0141367af571e9d3a..0000000000000000000000000000000000000000 --- a/ui/rapidoc-min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! RapiDoc 9.0.0 | Author - Mrinmoy Majumdar | License information can be found in rapidoc-min.js.LICENSE.txt */ -(()=>{var e,t,r={652:(e,t,r)=>{"use strict";const n=new WeakMap,o=e=>"function"==typeof e&&n.has(e),a="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(e,t,r=null)=>{for(;t!==r;){const r=t.nextSibling;e.removeChild(t),t=r}},s={},l={},c=`{{lit-${String(Math.random()).slice(2)}}}`,u=`\x3c!--${c}--\x3e`,p=new RegExp(`${c}|${u}`),d="$lit$";class h{constructor(e,t){this.parts=[],this.element=t;const r=[],n=[],o=document.createTreeWalker(t.content,133,null,!1);let a=0,i=-1,s=0;const{strings:l,values:{length:u}}=e;for(;s<u;){const e=o.nextNode();if(null!==e){if(i++,1===e.nodeType){if(e.hasAttributes()){const t=e.attributes,{length:r}=t;let n=0;for(let e=0;e<r;e++)f(t[e].name,d)&&n++;for(;n-- >0;){const t=l[s],r=y.exec(t)[2],n=r.toLowerCase()+d,o=e.getAttribute(n);e.removeAttribute(n);const a=o.split(p);this.parts.push({type:"attribute",index:i,name:r,strings:a}),s+=a.length-1}}"TEMPLATE"===e.tagName&&(n.push(e),o.currentNode=e.content)}else if(3===e.nodeType){const t=e.data;if(t.indexOf(c)>=0){const n=e.parentNode,o=t.split(p),a=o.length-1;for(let t=0;t<a;t++){let r,a=o[t];if(""===a)r=g();else{const e=y.exec(a);null!==e&&f(e[2],d)&&(a=a.slice(0,e.index)+e[1]+e[2].slice(0,-d.length)+e[3]),r=document.createTextNode(a)}n.insertBefore(r,e),this.parts.push({type:"node",index:++i})}""===o[a]?(n.insertBefore(g(),e),r.push(e)):e.data=o[a],s+=a}}else if(8===e.nodeType)if(e.data===c){const t=e.parentNode;null!==e.previousSibling&&i!==a||(i++,t.insertBefore(g(),e)),a=i,this.parts.push({type:"node",index:i}),null===e.nextSibling?e.data="":(r.push(e),i--),s++}else{let t=-1;for(;-1!==(t=e.data.indexOf(c,t+1));)this.parts.push({type:"node",index:-1}),s++}}else o.currentNode=n.pop()}for(const e of r)e.parentNode.removeChild(e)}}const f=(e,t)=>{const r=e.length-t.length;return r>=0&&e.slice(r)===t},m=e=>-1!==e.index,g=()=>document.createComment(""),y=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;class b{constructor(e,t,r){this.__parts=[],this.template=e,this.processor=t,this.options=r}update(e){let t=0;for(const r of this.__parts)void 0!==r&&r.setValue(e[t]),t++;for(const e of this.__parts)void 0!==e&&e.commit()}_clone(){const e=a?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),t=[],r=this.template.parts,n=document.createTreeWalker(e,133,null,!1);let o,i=0,s=0,l=n.nextNode();for(;i<r.length;)if(o=r[i],m(o)){for(;s<o.index;)s++,"TEMPLATE"===l.nodeName&&(t.push(l),n.currentNode=l.content),null===(l=n.nextNode())&&(n.currentNode=t.pop(),l=n.nextNode());if("node"===o.type){const e=this.processor.handleTextExpression(this.options);e.insertAfterNode(l.previousSibling),this.__parts.push(e)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,o.name,o.strings,this.options));i++}else this.__parts.push(void 0),i++;return a&&(document.adoptNode(e),customElements.upgrade(e)),e}}const v=` ${c} `;class x{constructor(e,t,r,n){this.strings=e,this.values=t,this.type=r,this.processor=n}getHTML(){const e=this.strings.length-1;let t="",r=!1;for(let n=0;n<e;n++){const e=this.strings[n],o=e.lastIndexOf("\x3c!--");r=(o>-1||r)&&-1===e.indexOf("--\x3e",o+1);const a=y.exec(e);t+=null===a?e+(r?v:u):e.substr(0,a.index)+a[1]+a[2]+d+a[3]+c}return t+=this.strings[e],t}getTemplateElement(){const e=document.createElement("template");return e.innerHTML=this.getHTML(),e}}const w=e=>null===e||!("object"==typeof e||"function"==typeof e),k=e=>Array.isArray(e)||!(!e||!e[Symbol.iterator]);class A{constructor(e,t,r){this.dirty=!0,this.element=e,this.name=t,this.strings=r,this.parts=[];for(let e=0;e<r.length-1;e++)this.parts[e]=this._createPart()}_createPart(){return new $(this)}_getValue(){const e=this.strings,t=e.length-1;let r="";for(let n=0;n<t;n++){r+=e[n];const t=this.parts[n];if(void 0!==t){const e=t.value;if(w(e)||!k(e))r+="string"==typeof e?e:String(e);else for(const t of e)r+="string"==typeof t?t:String(t)}}return r+=e[t],r}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class ${constructor(e){this.value=void 0,this.committer=e}setValue(e){e===s||w(e)&&e===this.value||(this.value=e,o(e)||(this.committer.dirty=!0))}commit(){for(;o(this.value);){const e=this.value;this.value=s,e(this)}this.value!==s&&this.committer.commit()}}class E{constructor(e){this.value=void 0,this.__pendingValue=void 0,this.options=e}appendInto(e){this.startNode=e.appendChild(g()),this.endNode=e.appendChild(g())}insertAfterNode(e){this.startNode=e,this.endNode=e.nextSibling}appendIntoPart(e){e.__insert(this.startNode=g()),e.__insert(this.endNode=g())}insertAfterPart(e){e.__insert(this.startNode=g()),this.endNode=e.endNode,e.endNode=this.startNode}setValue(e){this.__pendingValue=e}commit(){if(null===this.startNode.parentNode)return;for(;o(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=s,e(this)}const e=this.__pendingValue;e!==s&&(w(e)?e!==this.value&&this.__commitText(e):e instanceof x?this.__commitTemplateResult(e):e instanceof Node?this.__commitNode(e):k(e)?this.__commitIterable(e):e===l?(this.value=l,this.clear()):this.__commitText(e))}__insert(e){this.endNode.parentNode.insertBefore(e,this.endNode)}__commitNode(e){this.value!==e&&(this.clear(),this.__insert(e),this.value=e)}__commitText(e){const t=this.startNode.nextSibling,r="string"==typeof(e=null==e?"":e)?e:String(e);t===this.endNode.previousSibling&&3===t.nodeType?t.data=r:this.__commitNode(document.createTextNode(r)),this.value=e}__commitTemplateResult(e){const t=this.options.templateFactory(e);if(this.value instanceof b&&this.value.template===t)this.value.update(e.values);else{const r=new b(t,e.processor,this.options),n=r._clone();r.update(e.values),this.__commitNode(n),this.value=r}}__commitIterable(e){Array.isArray(this.value)||(this.value=[],this.clear());const t=this.value;let r,n=0;for(const o of e)r=t[n],void 0===r&&(r=new E(this.options),t.push(r),0===n?r.appendIntoPart(this):r.insertAfterPart(t[n-1])),r.setValue(o),r.commit(),n++;n<t.length&&(t.length=n,this.clear(r&&r.endNode))}clear(e=this.startNode){i(this.startNode.parentNode,e.nextSibling,this.endNode)}}class S{constructor(e,t,r){if(this.value=void 0,this.__pendingValue=void 0,2!==r.length||""!==r[0]||""!==r[1])throw new Error("Boolean attributes can only contain a single expression");this.element=e,this.name=t,this.strings=r}setValue(e){this.__pendingValue=e}commit(){for(;o(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=s,e(this)}if(this.__pendingValue===s)return;const e=!!this.__pendingValue;this.value!==e&&(e?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=e),this.__pendingValue=s}}class D extends A{constructor(e,t,r){super(e,t,r),this.single=2===r.length&&""===r[0]&&""===r[1]}_createPart(){return new O(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class O extends ${}let C=!1;(()=>{try{const e={get capture(){return C=!0,!1}};window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){}})();class _{constructor(e,t,r){this.value=void 0,this.__pendingValue=void 0,this.element=e,this.eventName=t,this.eventContext=r,this.__boundHandleEvent=e=>this.handleEvent(e)}setValue(e){this.__pendingValue=e}commit(){for(;o(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=s,e(this)}if(this.__pendingValue===s)return;const e=this.__pendingValue,t=this.value,r=null==e||null!=t&&(e.capture!==t.capture||e.once!==t.once||e.passive!==t.passive),n=null!=e&&(null==t||r);r&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),n&&(this.__options=j(e),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=e,this.__pendingValue=s}handleEvent(e){"function"==typeof this.value?this.value.call(this.eventContext||this.element,e):this.value.handleEvent(e)}}const j=e=>e&&(C?{capture:e.capture,passive:e.passive,once:e.once}:e.capture);const T=new class{handleAttributeExpressions(e,t,r,n){const o=t[0];if("."===o){return new D(e,t.slice(1),r).parts}if("@"===o)return[new _(e,t.slice(1),n.eventContext)];if("?"===o)return[new S(e,t.slice(1),r)];return new A(e,t,r).parts}handleTextExpression(e){return new E(e)}};function F(e){let t=P.get(e.type);void 0===t&&(t={stringsArray:new WeakMap,keyString:new Map},P.set(e.type,t));let r=t.stringsArray.get(e.strings);if(void 0!==r)return r;const n=e.strings.join(c);return r=t.keyString.get(n),void 0===r&&(r=new h(e,e.getTemplateElement()),t.keyString.set(n,r)),t.stringsArray.set(e.strings,r),r}const P=new Map,B=new WeakMap;"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.2.1");const I=(e,...t)=>new x(e,t,"html",T);window.JSCompiler_renameProperty=(e,t)=>e;const R={toAttribute(e,t){switch(t){case Boolean:return e?"":null;case Object:case Array:return null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){switch(t){case Boolean:return null!==e;case Number:return null===e?null:Number(e);case Object:case Array:return JSON.parse(e)}return e}},N=(e,t)=>t!==e&&(t==t||e==e),L={attribute:!0,type:String,converter:R,reflect:!1,hasChanged:N},q="finalized";class z extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const e=[];return this._classProperties.forEach(((t,r)=>{const n=this._attributeNameForProperty(r,t);void 0!==n&&(this._attributeToPropertyMap.set(n,r),e.push(n))})),e}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const e=Object.getPrototypeOf(this)._classProperties;void 0!==e&&e.forEach(((e,t)=>this._classProperties.set(t,e)))}}static createProperty(e,t=L){if(this._ensureClassProperties(),this._classProperties.set(e,t),t.noAccessor||this.prototype.hasOwnProperty(e))return;const r="symbol"==typeof e?Symbol():`__${e}`,n=this.getPropertyDescriptor(e,r,t);void 0!==n&&Object.defineProperty(this.prototype,e,n)}static getPropertyDescriptor(e,t,r){return{get(){return this[t]},set(n){const o=this[e];this[t]=n,this.requestUpdateInternal(e,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this._classProperties&&this._classProperties.get(e)||L}static finalize(){const e=Object.getPrototypeOf(this);if(e.hasOwnProperty(q)||e.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const e=this.properties,t=[...Object.getOwnPropertyNames(e),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[]];for(const r of t)this.createProperty(r,e[r])}}static _attributeNameForProperty(e,t){const r=t.attribute;return!1===r?void 0:"string"==typeof r?r:"string"==typeof e?e.toLowerCase():void 0}static _valueHasChanged(e,t,r=N){return r(e,t)}static _propertyValueFromAttribute(e,t){const r=t.type,n=t.converter||R,o="function"==typeof n?n:n.fromAttribute;return o?o(e,r):e}static _propertyValueToAttribute(e,t){if(void 0===t.reflect)return;const r=t.type,n=t.converter;return(n&&n.toAttribute||R.toAttribute)(e,r)}initialize(){this._updateState=0,this._updatePromise=new Promise((e=>this._enableUpdatingResolver=e)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((e,t)=>{if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(t,e)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((e,t)=>this[t]=e)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(e,t,r){t!==r&&this._attributeToProperty(e,r)}_propertyToAttribute(e,t,r=L){const n=this.constructor,o=n._attributeNameForProperty(e,r);if(void 0!==o){const e=n._propertyValueToAttribute(t,r);if(void 0===e)return;this._updateState=8|this._updateState,null==e?this.removeAttribute(o):this.setAttribute(o,e),this._updateState=-9&this._updateState}}_attributeToProperty(e,t){if(8&this._updateState)return;const r=this.constructor,n=r._attributeToPropertyMap.get(e);if(void 0!==n){const e=r.getPropertyOptions(n);this._updateState=16|this._updateState,this[n]=r._propertyValueFromAttribute(t,e),this._updateState=-17&this._updateState}}requestUpdateInternal(e,t,r){let n=!0;if(void 0!==e){const o=this.constructor;r=r||o.getPropertyOptions(e),o._valueHasChanged(this[e],t,r.hasChanged)?(this._changedProperties.has(e)||this._changedProperties.set(e,t),!0!==r.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(e,r))):n=!1}!this._hasRequestedUpdate&&n&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(e,t){return this.requestUpdateInternal(e,t),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(e){}const e=this.performUpdate();return null!=e&&await e,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let e=!1;const t=this._changedProperties;try{e=this.shouldUpdate(t),e?this.update(t):this._markUpdated()}catch(t){throw e=!1,this._markUpdated(),t}e&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(t)),this.updated(t))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(e){return!0}update(e){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((e,t)=>this._propertyToAttribute(t,this[t],e))),this._reflectingProperties=void 0),this._markUpdated()}updated(e){}firstUpdated(e){}}z.finalized=!0;const U=Element.prototype;U.msMatchesSelector||U.webkitMatchesSelector;const M=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,H=Symbol();class V{constructor(e,t){if(t!==H)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){return void 0===this._styleSheet&&(M?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const W=e=>new V(String(e),H),Y=(e,...t)=>{const r=t.reduce(((t,r,n)=>t+(e=>{if(e instanceof V)return e.cssText;if("number"==typeof e)return e;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${e}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(r)+e[n+1]),e[0]);return new V(r,H)};(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");const K={};class G extends z{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const e=this.getStyles();if(Array.isArray(e)){const t=(e,r)=>e.reduceRight(((e,r)=>Array.isArray(r)?t(r,e):(e.add(r),e)),r),r=t(e,new Set),n=[];r.forEach((e=>n.unshift(e))),this._styles=n}else this._styles=void 0===e?[]:[e];this._styles=this._styles.map((e=>{if(e instanceof CSSStyleSheet&&!M){const t=Array.prototype.slice.call(e.cssRules).reduce(((e,t)=>e+t.cssText),"");return W(t)}return e}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const e=this.constructor._styles;0!==e.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?M?this.renderRoot.adoptedStyleSheets=e.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(e.map((e=>e.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(e){const t=this.render();super.update(e),t!==K&&this.constructor.render(t,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((e=>{const t=document.createElement("style");t.textContent=e.cssText,this.renderRoot.appendChild(t)})))}render(){return K}}G.finalized=!0,G.render=(e,t,r)=>{let n=B.get(t);void 0===n&&(i(t,t.firstChild),B.set(t,n=new E(Object.assign({templateFactory:F},r))),n.appendInto(t)),n.setValue(e),n.commit()};var J=r(84),Z=r.n(J),X=r(660),Q=r.n(X);r(251),r(358),r(46),r(503),r(277),r(874),r(366),r(57),r(16);const ee=Y`.hover-bg:hover{background:var(--bg3)}::selection{background:var(--selection-bg);color:var(--selection-fg)}.regular-font{font-family:var(--font-regular)}.mono-font{font-family:var(--font-mono)}.title{font-size:calc(var(--font-size-small) + 18px);font-weight:400}.sub-title{font-size:20px}.req-res-title{font-family:var(--font-regular);font-size:calc(var(--font-size-small) + 4px);font-weight:700;margin-bottom:8px}.tiny-title{font-size:calc(var(--font-size-small) + 1px);font-weight:700}.regular-font-size{font-size:var(--font-size-regular)}.small-font-size{font-size:var(--font-size-small)}.upper{text-transform:uppercase}.primary-text{color:var(--primary-color)}.bold-text{font-weight:700}.gray-text{color:var(--light-fg)}.red-text{color:var(--red)}.blue-text{color:var(--blue)}.multiline{overflow:scroll;max-height:var(--resp-area-height,300px);color:var(--fg3)}.method-fg.put{color:var(--orange)}.method-fg.post{color:var(--green)}.method-fg.get{color:var(--blue)}.method-fg.delete{color:var(--red)}.method-fg.head,.method-fg.options,.method-fg.patch{color:var(--yellow)}h1{font-family:var(--font-regular);font-size:28px;padding-top:10px;letter-spacing:normal;font-weight:400}h2{font-family:var(--font-regular);font-size:24px;padding-top:10px;letter-spacing:normal;font-weight:400}h3{font-family:var(--font-regular);font-size:18px;padding-top:10px;letter-spacing:normal;font-weight:400}h4{font-family:var(--font-regular);font-size:16px;padding-top:10px;letter-spacing:normal;font-weight:400}h5{font-family:var(--font-regular);font-size:14px;padding-top:10px;letter-spacing:normal;font-weight:400}h6{font-family:var(--font-regular);font-size:14px;padding-top:10px;letter-spacing:normal;font-weight:400}h1,h2,h3,h4,h5{margin-block-end:.2em}p{margin-block-start:.5em}a{color:var(--blue);cursor:pointer}a.inactive-link{color:var(--fg);text-decoration:none;cursor:text}code,pre{margin:0;font-family:var(--font-mono);font-size:calc(var(--font-size-mono) - 1px)}.m-markdown,.m-markdown-small{display:block}.m-markdown li,.m-markdown p,.m-markdown span{font-size:var(--font-size-regular);line-height:calc(var(--font-size-regular) + 8px)}.m-markdown-small li,.m-markdown-small p,.m-markdown-small span{font-size:var(--font-size-small);line-height:calc(var(--font-size-small) + 6px)}.m-markdown-small li{line-height:calc(var(--font-size-small) + 8px)}.m-markdown p:not(:first-child){margin-block-start:24px}.m-markdown-small p:not(:first-child){margin-block-start:12px}.m-markdown-small p:first-child{margin-block-start:0}.m-markdown p,.m-markdown-small p{margin-block-end:0}.m-markdown code span{font-size:var(--font-size-mono)}.m-markdown code,.m-markdown-small code{padding:1px 6px;border-radius:2px;color:var(--inline-code-fg);background-color:var(--bg3);font-size:calc(var(--font-size-mono));line-height:1.2}.m-markdown-small code{font-size:calc(var(--font-size-mono) - 1px)}.m-markdown pre,.m-markdown-small pre{white-space:pre-wrap;overflow-x:auto;line-height:normal;border-radius:2px;border:1px solid var(--code-border-color)}.m-markdown pre{padding:12px;background-color:var(--code-bg);color:var(--code-fg)}.m-markdown-small pre{margin-top:4px;padding:2px 4px;background-color:var(--bg3);color:var(--fg2)}.m-markdown pre code,.m-markdown-small pre code{border:none;padding:0}.m-markdown pre code{color:var(--code-fg);background-color:var(--code-bg);background-color:transparent}.m-markdown-small pre code{color:var(--fg2);background-color:var(--bg3)}.m-markdown ol,.m-markdown ul{padding-inline-start:30px}.m-markdown-small ol,.m-markdown-small ul{padding-inline-start:20px}.m-markdown a,.m-markdown-small a{color:var(--blue)}.m-markdown img,.m-markdown-small img{max-width:100%}.m-markdown table,.m-markdown-small table{border-spacing:0;margin:10px 0;border-collapse:separate;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:calc(var(--font-size-small) + 1px);line-height:calc(var(--font-size-small) + 4px);max-width:100%}.m-markdown-small table{font-size:var(--font-size-small);line-height:calc(var(--font-size-small) + 2px);margin:8px 0}.m-markdown td,.m-markdown th,.m-markdown-small td,.m-markdown-small th{vertical-align:top;border-top:1px solid var(--border-color);line-height:calc(var(--font-size-small) + 4px)}.m-markdown tr:first-child th,.m-markdown-small tr:first-child th{border-top:0 none}.m-markdown td,.m-markdown th{padding:10px 12px}.m-markdown-small td,.m-markdown-small th{padding:8px 8px}.m-markdown th,.m-markdown-small th{font-weight:600;background-color:var(--bg2);vertical-align:middle}.m-markdown-small table code{font-size:calc(var(--font-size-mono) - 2px)}.m-markdown table code{font-size:calc(var(--font-size-mono) - 1px)}.m-markdown blockquote,.m-markdown-small blockquote{margin-inline-start:0;margin-inline-end:0;border-left:3px solid var(--border-color);padding:6px 0 6px 6px}`,te=Y`.m-btn{border-radius:var(--border-radius);font-weight:600;display:inline-block;padding:6px 16px;font-size:var(--font-size-small);outline:0;line-height:1;text-align:center;white-space:nowrap;border:2px solid var(--primary-color);background-color:transparent;transition:background-color .2s;user-select:none;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.m-btn.primary{background-color:var(--primary-color);color:var(--primary-color-invert)}.m-btn.thin-border{border-width:1px}.m-btn.large{padding:8px 14px}.m-btn.small{padding:5px 12px}.m-btn.tiny{padding:5px 6px}.m-btn.circle{border-radius:50%}.m-btn:hover{background-color:var(--primary-color);color:var(--primary-color-invert)}.m-btn.nav{border:2px solid var(--nav-accent-color)}.m-btn.nav:hover{background-color:var(--nav-accent-color)}.m-btn:disabled{background-color:var(--bg3);color:var(--fg3);border-color:var(--fg3);cursor:not-allowed;opacity:.4}.toolbar-btn{cursor:pointer;padding:4px;margin:0 2px;font-size:var(--font-size-small);min-width:50px;color:var(--primary-color-invert);border-radius:2px;border:none;background-color:var(--primary-color)}button,input,pre,select,textarea{color:var(--fg);outline:0;background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--border-radius)}button{font-family:var(--font-regular)}input[type=file],input[type=password],input[type=text],pre,select,textarea{font-family:var(--font-mono);font-weight:400;font-size:var(--font-size-small);transition:border .2s;padding:6px 5px}select{font-family:var(--font-regular);padding:5px 30px 5px 5px;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cpath%20d%3D%22M10.3%203.3L6%207.6%201.7%203.3A1%201%200%2000.3%204.7l5%205a1%201%200%20001.4%200l5-5a1%201%200%2010-1.4-1.4z%22%20fill%3D%22%23777777%22%2F%3E%3C%2Fsvg%3E");background-position:calc(100% - 5px) center;background-repeat:no-repeat;background-size:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}select:hover{border-color:var(--primary-color)}input[type=password]::placeholder,input[type=text]::placeholder,textarea::placeholder{color:var(--placeholder-color);opacity:1}input[type=password]:active,input[type=password]:focus,input[type=text]:active,input[type=text]:focus,select:focus,textarea:active,textarea:focus{border:1px solid var(--primary-color)}input[type=file]{font-family:var(--font-regular);padding:2px;cursor:pointer;border:1px solid var(--primary-color);min-height:calc(var(--font-size-small) + 18px)}input[type=file]::-webkit-file-upload-button{font-family:var(--font-regular);font-size:var(--font-size-small);outline:0;cursor:pointer;padding:3px 8px;border:1px solid var(--primary-color);background-color:var(--primary-color);color:var(--primary-color-invert);border-radius:var(--border-radius);-webkit-appearance:none}pre,textarea{scrollbar-width:thin;scrollbar-color:var(--border-color) var(--input-bg)}pre::-webkit-scrollbar,textarea::-webkit-scrollbar{width:8px;height:8px}pre::-webkit-scrollbar-track,textarea::-webkit-scrollbar-track{background:var(--input-bg)}pre::-webkit-scrollbar-thumb,textarea::-webkit-scrollbar-thumb{border-radius:2px;background-color:var(--border-color)}.link{font-size:var(--font-size-small);text-decoration:underline;color:var(--blue);font-family:var(--font-mono);margin-bottom:2px}input[type=checkbox]:focus{outline:0}input[type=checkbox]{appearance:none;display:inline-block;background-color:var(--light-bg);border:1px solid var(--light-bg);border-radius:9px;cursor:pointer;height:18px;position:relative;transition:border .25s .15s,box-shadow .25s .3s,padding .25s;min-width:36px;width:36px;vertical-align:top}input[type=checkbox]:after{position:absolute;background-color:var(--bg);border:1px solid var(--light-bg);border-radius:8px;content:'';top:0;left:0;right:16px;display:block;height:16px;transition:border .25s .15s,left .25s .1s,right .15s .175s}input[type=checkbox]:checked{box-shadow:inset 0 0 0 13px var(--green);border-color:var(--green)}input[type=checkbox]:checked:after{border:1px solid var(--green);left:16px;right:1px;transition:border .25s,left .15s .25s,right .25s .175s}`,re=Y`.col,.row{display:flex}.row{align-items:center;flex-direction:row}.col{align-items:stretch;flex-direction:column}`,ne=Y`.m-table{border-spacing:0;border-collapse:separate;border:1px solid var(--light-border-color);border-radius:var(--border-radius);margin:0;max-width:100%}.m-table tr:first-child td,.m-table tr:first-child th{border-top:0 none}.m-table td,.m-table th{font-size:var(--font-size-small);line-height:calc(var(--font-size-small) + 4px);padding:4px 5px 4px;vertical-align:top}.m-table.padded-12 td,.m-table.padded-12 th{padding:12px}.m-table td:not([align]),.m-table th:not([align]){text-align:left}.m-table th{color:var(--fg2);font-size:var(--font-size-small);line-height:calc(var(--font-size-small) + 18px);font-weight:600;letter-spacing:normal;background-color:var(--bg2);vertical-align:bottom;border-bottom:1px solid var(--light-border-color)}.m-table>tbody>tr>td,.m-table>tr>td{border-top:1px solid var(--light-border-color);text-overflow:ellipsis;overflow:hidden}.table-title{font-size:var(--font-size-small);font-weight:700;vertical-align:middle;margin:12px 0 4px 0}`,oe=Y`.only-large-screen{display:none}.endpoint-head .path{display:flex;font-family:var(--font-mono);font-size:var(--font-size-small);align-items:center;overflow-wrap:break-word;word-break:break-all}.endpoint-head .descr{font-size:var(--font-size-small);color:var(--light-fg);font-weight:400;align-items:center;overflow-wrap:break-word;word-break:break-all;display:none}.m-endpoint.expanded{margin-bottom:16px}.m-endpoint>.endpoint-head{border-width:1px 1px 1px 5px;border-style:solid;border-color:transparent;border-top-color:var(--light-border-color);display:flex;padding:6px 16px;align-items:center;cursor:pointer}.m-endpoint>.endpoint-head.put.expanded,.m-endpoint>.endpoint-head.put:hover{border-color:var(--orange);background-color:var(--light-orange)}.m-endpoint>.endpoint-head.post.expanded,.m-endpoint>.endpoint-head.post:hover{border-color:var(--green);background-color:var(--light-green)}.m-endpoint>.endpoint-head.get.expanded,.m-endpoint>.endpoint-head.get:hover{border-color:var(--blue);background-color:var(--light-blue)}.m-endpoint>.endpoint-head.delete.expanded,.m-endpoint>.endpoint-head.delete:hover{border-color:var(--red);background-color:var(--light-red)}.m-endpoint>.endpoint-head.head.expanded,.m-endpoint>.endpoint-head.head:hover,.m-endpoint>.endpoint-head.options.expanded,.m-endpoint>.endpoint-head.options:hover,.m-endpoint>.endpoint-head.patch.expanded,.m-endpoint>.endpoint-head.patch:hover{border-color:var(--yellow);background-color:var(--light-yellow)}.m-endpoint>.endpoint-head.deprecated.expanded,.m-endpoint>.endpoint-head.deprecated:hover{border-color:var(--border-color);filter:opacity(.6)}.m-endpoint .endpoint-body{flex-wrap:wrap;padding:16px 0 0 0;border-width:0 1px 1px 5px;border-style:solid;box-shadow:0 4px 3px -3px rgba(0,0,0,.15)}.m-endpoint .endpoint-body.delete{border-color:var(--red)}.m-endpoint .endpoint-body.put{border-color:var(--orange)}.m-endpoint .endpoint-body.post{border-color:var(--green)}.m-endpoint .endpoint-body.get{border-color:var(--blue)}.m-endpoint .endpoint-body.head,.m-endpoint .endpoint-body.options,.m-endpoint .endpoint-body.patch{border-color:var(--yellow)}.m-endpoint .endpoint-body.deprecated{border-color:var(--border-color);filter:opacity(.6)}.endpoint-head .deprecated{color:var(--light-fg);filter:opacity(.6)}.summary{padding:8px 8px}.summary .title{font-size:calc(var(--font-size-regular) + 2px);margin-bottom:6px;word-break:break-all}.method{padding:2px 5px;vertical-align:middle;font-size:var(--font-size-small);height:calc(var(--font-size-small) + 16px);line-height:calc(var(--font-size-small) + 8px);width:60px;border-radius:2px;display:inline-block;text-align:center;font-weight:700;text-transform:uppercase;margin-right:5px}.method.delete{border:2px solid var(--red)}.method.put{border:2px solid var(--orange)}.method.post{border:2px solid var(--green)}.method.get{border:2px solid var(--blue)}.method.get.deprecated{border:2px solid var(--border-color)}.method.head,.method.options,.method.patch{border:2px solid var(--yellow)}.req-resp-container{display:flex;margin-top:16px;align-items:stretch;flex-wrap:wrap;flex-direction:column;border-top:1px solid var(--light-border-color)}api-request.view-mode,api-response.view-mode{flex:1;min-height:100px;padding:16px 8px;overflow:hidden}api-request.view-mode{border-width:0 0 1px 0;border-style:dashed}.head api-request.view-mode,.options api-request.view-mode,.patch api-request.view-mode{border-color:var(--yellow)}.put api-request.view-mode{border-color:var(--orange)}.post api-request.view-mode{border-color:var(--green)}.get api-request.view-mode{border-color:var(--blue)}.delete api-request.view-mode{border-color:var(--red)}@media only screen and (min-width:1024px){.only-large-screen{display:block}.endpoint-head .path{font-size:var(--font-size-regular);min-width:400px}.endpoint-head .descr{display:flex}.descr .m-markdown-small,.endpoint-head .m-markdown-small{display:block}.req-resp-container{flex-direction:var(--layout,row)}api-response.view-mode{padding:16px}api-request.view-mode{border-width:0 1px 0 0;padding:16px}.summary{padding:8px 16px}}`,ae=Y`code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-]{white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:var(--light-fg)}.token.punctuation{color:var(--fg)}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:var(--pink)}.token.function-name{color:var(--blue)}.token.boolean,.token.function,.token.number{color:var(--red)}.token.class-name,.token.constant,.token.property,.token.symbol{color:var(--code-property-color)}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:var(--code-keyword-color)}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:var(--green)}.token.entity,.token.operator,.token.url{color:var(--code-operator-color)}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}`,ie=Y`.tab-panel{border:none}.tab-buttons{height:30px;border-bottom:1px solid var(--light-border-color);align-items:stretch;overflow-y:hidden;overflow-x:auto;scrollbar-width:thin}.tab-buttons::-webkit-scrollbar{height:1px;background-color:var(--border-color)}.tab-btn{border:none;border-bottom:3px solid transparent;color:var(--light-fg);background-color:transparent;white-space:nowrap;cursor:pointer;outline:0;font-family:var(--font-regular);font-size:var(--font-size-small);margin-right:16px;padding:1px}.tab-btn.active{border-bottom:3px solid var(--primary-color);font-weight:700;color:var(--primary-color)}.tab-btn:hover{color:var(--primary-color)}.tab-content{margin:-1px 0 0 0;position:relative}`,se=Y`.nav-bar{width:0;height:100%;overflow:hidden;color:var(--nav-text-color);background-color:var(--nav-bg-color);background-blend-mode:multiply;line-height:calc(var(--font-size-small) + 4px);display:none;position:relative;flex-direction:column;flex-wrap:nowrap;word-break:break-word}.nav-scroll{overflow-x:hidden;overflow-y:auto;overflow-y:overlay;scrollbar-width:thin;scrollbar-color:var(--nav-hover-bg-color) transparent}.nav-bar-tag{display:flex;align-items:center;justify-content:space-between;flex-direction:row}.nav-bar.read .nav-bar-tag-icon{display:none}.nav-bar-tag-icon{color:var(--nav-text-color);font-size:20px;margin-right:-16px}.nav-bar-tag-icon:hover{color:var(--nav-hover-text-color)}.nav-bar.focused .nav-bar-tag-and-paths.collapsed .nav-bar-paths-under-tag{display:none}.nav-bar.focused .nav-bar-tag-and-paths.collapsed .nav-bar-tag-icon::after{content:'⌵';width:16px;height:16px;text-align:center;display:inline-block;transform:rotate(270deg)}.nav-bar.focused .nav-bar-tag-and-paths.expanded .nav-bar-tag-icon::after{content:'⌵';width:16px;height:16px;text-align:center;display:inline-block}.nav-scroll::-webkit-scrollbar{width:10px}.nav-scroll::-webkit-scrollbar-track{background:0 0}.nav-scroll::-webkit-scrollbar-thumb{background-color:var(--nav-hover-bg-color)}.nav-bar-tag{font-size:var(--font-size-regular);color:var(--nav-accent-color);border-left:4px solid transparent;font-weight:700;padding:15px 30px 15px 10px;text-transform:capitalize}.nav-bar-components,.nav-bar-h1,.nav-bar-h2,.nav-bar-info,.nav-bar-path,.nav-bar-tag{display:flex;cursor:pointer;border-left:4px solid transparent}.nav-bar-h1,.nav-bar-h2,.nav-bar-path{font-size:calc(var(--font-size-small) + 1px);padding:var(--nav-item-padding)}.nav-bar-path.small-font{font-size:var(--font-size-small)}.nav-bar-info{font-size:var(--font-size-regular);padding:16px 10px;font-weight:700}.nav-bar-section{display:flex;flex-direction:row;justify-content:space-between;font-size:var(--font-size-small);color:var(--nav-text-color);padding:15px 15px 5px 5px;filter:opacity(.5);font-weight:700;border-bottom:1px solid var(--nav-text-color)}.nav-bar-section:first-child{display:none}.nav-bar-h2{margin-left:12px}.nav-bar-h1.active,.nav-bar-h2.active,.nav-bar-info.active,.nav-bar-path.active,.nav-bar-tag.active{border-left:4px solid var(--nav-accent-color);color:var(--nav-hover-text-color)}.nav-bar-h1:hover,.nav-bar-h2:hover,.nav-bar-info:hover,.nav-bar-path:hover,.nav-bar-tag:hover{color:var(--nav-hover-text-color);background-color:var(--nav-hover-bg-color)}`,le=Y`#api-info{font-size:calc(var(--font-size-regular) - 1px);margin-top:8px margin-left: -15px}#api-info span:before{content:"|";display:inline-block;opacity:.5;width:15px;text-align:center}#api-info span:first-child:before{content:"";width:0}`,ce=Y``;const ue=new RegExp(/[\s#:?&={}]/,"g"),pe="_rapidoc_api_key";function de(e){return new Promise((t=>setTimeout(t,e)))}function he(e,t){const r=t.currentTarget,n=document.createElement("textarea");n.value=e,n.style.position="fixed",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy"),r.innerText="Copied",setTimeout((()=>{r.innerText="Copy"}),5e3)}catch(e){console.error("Unable to copy",e)}document.body.removeChild(n)}function fe(e,t){return`${t.method} ${t.path} ${t.summary||t.description||""} ${t.operationId||""}`.toLowerCase().includes(e.toLowerCase())}function me(e,t=new Set){return e?(Object.keys(e).forEach((r=>{var n;if(t.add(r),e[r].properties)me(e[r].properties,t);else if(null!==(n=e[r].items)&&void 0!==n&&n.properties){var o;me(null===(o=e[r].items)||void 0===o?void 0:o.properties,t)}})),t):t}var ge=r(764).Buffer;function ye(e){var t={exports:{}};return e(t,t.exports),t.exports}function be(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.')}var ve,xe="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,we="object"==typeof self&&self&&self.Object===Object&&self,ke=xe||we||Function("return this")(),Ae=ke.Symbol,$e=Object.prototype,Ee=$e.hasOwnProperty,Se=$e.toString,De=Ae?Ae.toStringTag:void 0,Oe=Object.prototype.toString,Ce=Ae?Ae.toStringTag:void 0,_e=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ce&&Ce in Object(e)?function(e){var t=Ee.call(e,De),r=e[De];try{e[De]=void 0;var n=!0}catch(e){}var o=Se.call(e);return n&&(t?e[De]=r:delete e[De]),o}(e):function(e){return Oe.call(e)}(e)},je=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},Te=function(e){if(!je(e))return!1;var t=_e(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},Fe=ke["__core-js_shared__"],Pe=(ve=/[^.]+$/.exec(Fe&&Fe.keys&&Fe.keys.IE_PROTO||""))?"Symbol(src)_1."+ve:"",Be=Function.prototype.toString,Ie=function(e){if(null!=e){try{return Be.call(e)}catch(e){}try{return e+""}catch(e){}}return""},Re=/^\[object .+?Constructor\]$/,Ne=Function.prototype,Le=Object.prototype,qe=Ne.toString,ze=Le.hasOwnProperty,Ue=RegExp("^"+qe.call(ze).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Me=function(e){return!(!je(e)||function(e){return!!Pe&&Pe in e}(e))&&(Te(e)?Ue:Re).test(Ie(e))},He=function(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return Me(r)?r:void 0},Ve=function(){try{var e=He(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),We=function(e,t,r){"__proto__"==t&&Ve?Ve(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r},Ye=function(e,t){return e===t||e!=e&&t!=t},Ke=Object.prototype.hasOwnProperty,Ge=function(e,t,r){var n=e[t];Ke.call(e,t)&&Ye(n,r)&&(void 0!==r||t in e)||We(e,t,r)},Je=function(e,t,r,n){var o=!r;r||(r={});for(var a=-1,i=t.length;++a<i;){var s=t[a],l=n?n(r[s],e[s],s,r,e):void 0;void 0===l&&(l=e[s]),o?We(r,s,l):Ge(r,s,l)}return r},Ze=function(e){return e},Xe=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)},Qe=Math.max,et=function(e,t,r){return t=Qe(void 0===t?e.length-1:t,0),function(){for(var n=arguments,o=-1,a=Qe(n.length-t,0),i=Array(a);++o<a;)i[o]=n[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=n[o];return s[t]=r(i),Xe(e,this,s)}},tt=function(e){return function(){return e}},rt=Ve?function(e,t){return Ve(e,"toString",{configurable:!0,enumerable:!1,value:tt(t),writable:!0})}:Ze,nt=Date.now,ot=function(e){var t=0,r=0;return function(){var n=nt(),o=16-(n-r);if(r=n,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(rt),at=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},it=function(e){return null!=e&&at(e.length)&&!Te(e)},st=/^(?:0|[1-9]\d*)$/,lt=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&st.test(e))&&e>-1&&e%1==0&&e<t},ct=Object.prototype,ut=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ct)},pt=function(e){return null!=e&&"object"==typeof e},dt=function(e){return pt(e)&&"[object Arguments]"==_e(e)},ht=Object.prototype,ft=ht.hasOwnProperty,mt=ht.propertyIsEnumerable,gt=dt(function(){return arguments}())?dt:function(e){return pt(e)&&ft.call(e,"callee")&&!mt.call(e,"callee")},yt=Array.isArray,bt=function(){return!1},vt=ye((function(e,t){var r=t&&!t.nodeType&&t,n=r&&e&&!e.nodeType&&e,o=n&&n.exports===r?ke.Buffer:void 0,a=(o?o.isBuffer:void 0)||bt;e.exports=a})),xt={};xt["[object Float32Array]"]=xt["[object Float64Array]"]=xt["[object Int8Array]"]=xt["[object Int16Array]"]=xt["[object Int32Array]"]=xt["[object Uint8Array]"]=xt["[object Uint8ClampedArray]"]=xt["[object Uint16Array]"]=xt["[object Uint32Array]"]=!0,xt["[object Arguments]"]=xt["[object Array]"]=xt["[object ArrayBuffer]"]=xt["[object Boolean]"]=xt["[object DataView]"]=xt["[object Date]"]=xt["[object Error]"]=xt["[object Function]"]=xt["[object Map]"]=xt["[object Number]"]=xt["[object Object]"]=xt["[object RegExp]"]=xt["[object Set]"]=xt["[object String]"]=xt["[object WeakMap]"]=!1;var wt=function(e){return function(t){return e(t)}},kt=ye((function(e,t){var r=t&&!t.nodeType&&t,n=r&&e&&!e.nodeType&&e,o=n&&n.exports===r&&xe.process,a=function(){try{return n&&n.require&&n.require("util").types||o&&o.binding&&o.binding("util")}catch(e){}}();e.exports=a})),At=kt&&kt.isTypedArray,$t=At?wt(At):function(e){return pt(e)&&at(e.length)&&!!xt[_e(e)]},Et=Object.prototype.hasOwnProperty,St=function(e,t){var r=yt(e),n=!r&>(e),o=!r&&!n&&vt(e),a=!r&&!n&&!o&&$t(e),i=r||n||o||a,s=i?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],l=s.length;for(var c in e)!t&&!Et.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||lt(c,l))||s.push(c);return s},Dt=function(e,t){return function(r){return e(t(r))}},Ot=Dt(Object.keys,Object),Ct=Object.prototype.hasOwnProperty,_t=function(e){if(!ut(e))return Ot(e);var t=[];for(var r in Object(e))Ct.call(e,r)&&"constructor"!=r&&t.push(r);return t},jt=function(e){return it(e)?St(e):_t(e)},Tt=Object.prototype.hasOwnProperty,Ft=function(e){return function(e,t){return ot(et(e,t,Ze),e+"")}((function(t,r){var n=-1,o=r.length,a=o>1?r[o-1]:void 0,i=o>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,i&&function(e,t,r){if(!je(r))return!1;var n=typeof t;return!!("number"==n?it(r)&<(t,r.length):"string"==n&&t in r)&&Ye(r[t],e)}(r[0],r[1],i)&&(a=o<3?void 0:a,o=1),t=Object(t);++n<o;){var s=r[n];s&&e(t,s,n,a)}return t}))}((function(e,t){if(ut(t)||it(t))Je(t,jt(t),e);else for(var r in t)Tt.call(t,r)&&Ge(e,r,t[r])})),Pt=function(e){return"symbol"==typeof e||pt(e)&&"[object Symbol]"==_e(e)},Bt=Ae?Ae.prototype:void 0,It=Bt?Bt.toString:void 0,Rt=function e(t){if("string"==typeof t)return t;if(yt(t))return function(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}(t,e)+"";if(Pt(t))return It?It.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r},Nt=/\s/,Lt=/^\s+/,qt=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&Nt.test(e.charAt(t)););return t}(e)+1).replace(Lt,""):e},zt=/^[-+]0x[0-9a-f]+$/i,Ut=/^0b[01]+$/i,Mt=/^0o[0-7]+$/i,Ht=parseInt,Vt=function(e){return e?1/0===(e=function(e){if("number"==typeof e)return e;if(Pt(e))return NaN;if(je(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=je(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=qt(e);var r=Ut.test(e);return r||Mt.test(e)?Ht(e.slice(2),r?2:8):zt.test(e)?NaN:+e}(e))||-1/0===e?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0},Wt=function(e){var t=Vt(e),r=t%1;return t==t?r?t-r:t:0},Yt=function(e){return null==e?"":Rt(e)},Kt=function(e,t,r){return e=Yt(e),r=null==r?0:function(e,t,r){return e==e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}(Wt(r),0,e.length),t=Rt(t),e.slice(r,r+t.length)==t},Gt=ye((function(e,t){!function(n){var o=t&&!t.nodeType&&t,a=e&&!e.nodeType&&e,i="object"==typeof r.g&&r.g;i.global!==i&&i.window!==i&&i.self!==i||(n=i);var s,l,c=2147483647,u=36,p=/^xn--/,d=/[^\x20-\x7E]/,h=/[\x2E\u3002\uFF0E\uFF61]/g,f={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,g=String.fromCharCode;function y(e){throw RangeError(f[e])}function b(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function v(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+b((e=e.replace(h,".")).split("."),t).join(".")}function x(e){for(var t,r,n=[],o=0,a=e.length;o<a;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<a?56320==(64512&(r=e.charCodeAt(o++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),o--):n.push(t);return n}function w(e){return b(e,(function(e){var t="";return e>65535&&(t+=g((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+g(e)})).join("")}function k(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function A(e,t,r){var n=0;for(e=r?m(e/700):e>>1,e+=m(e/t);e>455;n+=u)e=m(e/35);return m(n+36*e/(e+38))}function $(e){var t,r,n,o,a,i,s,l,p,d,h,f=[],g=e.length,b=0,v=128,x=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n<r;++n)e.charCodeAt(n)>=128&&y("not-basic"),f.push(e.charCodeAt(n));for(o=r>0?r+1:0;o<g;){for(a=b,i=1,s=u;o>=g&&y("invalid-input"),((l=(h=e.charCodeAt(o++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:u)>=u||l>m((c-b)/i))&&y("overflow"),b+=l*i,!(l<(p=s<=x?1:s>=x+26?26:s-x));s+=u)i>m(c/(d=u-p))&&y("overflow"),i*=d;x=A(b-a,t=f.length+1,0==a),m(b/t)>c-v&&y("overflow"),v+=m(b/t),b%=t,f.splice(b++,0,v)}return w(f)}function E(e){var t,r,n,o,a,i,s,l,p,d,h,f,b,v,w,$=[];for(f=(e=x(e)).length,t=128,r=0,a=72,i=0;i<f;++i)(h=e[i])<128&&$.push(g(h));for(n=o=$.length,o&&$.push("-");n<f;){for(s=c,i=0;i<f;++i)(h=e[i])>=t&&h<s&&(s=h);for(s-t>m((c-r)/(b=n+1))&&y("overflow"),r+=(s-t)*b,t=s,i=0;i<f;++i)if((h=e[i])<t&&++r>c&&y("overflow"),h==t){for(l=r,p=u;!(l<(d=p<=a?1:p>=a+26?26:p-a));p+=u)w=l-d,v=u-d,$.push(g(k(d+w%v,0))),l=m(w/v);$.push(g(k(l,0))),a=A(r,b,n==o),r=0,++n}++r,++t}return $.join("")}if(s={version:"1.3.2",ucs2:{decode:x,encode:w},decode:$,encode:E,toASCII:function(e){return v(e,(function(e){return d.test(e)?"xn--"+E(e):e}))},toUnicode:function(e){return v(e,(function(e){return p.test(e)?$(e.slice(4).toLowerCase()):e}))}},o&&a)if(e.exports==o)a.exports=s;else for(l in s)s.hasOwnProperty(l)&&(o[l]=s[l]);else n.punycode=s}(this)})),Jt=function(e){return"string"==typeof e},Zt=function(e){return"object"==typeof e&&null!==e},Xt=function(e){return null===e};function Qt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var er=function(e,t,r,n){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var a=/\+/g;e=e.split(t);var i=1e3;n&&"number"==typeof n.maxKeys&&(i=n.maxKeys);var s=e.length;i>0&&s>i&&(s=i);for(var l=0;l<s;++l){var c,u,p,d,h=e[l].replace(a,"%20"),f=h.indexOf(r);f>=0?(c=h.substr(0,f),u=h.substr(f+1)):(c=h,u=""),p=decodeURIComponent(c),d=decodeURIComponent(u),Qt(o,p)?Array.isArray(o[p])?o[p].push(d):o[p]=[o[p],d]:o[p]=d}return o},tr=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},rr=function(e,t,r,n){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){var o=encodeURIComponent(tr(n))+r;return Array.isArray(e[n])?e[n].map((function(e){return o+encodeURIComponent(tr(e))})).join(t):o+encodeURIComponent(tr(e[n]))})).join(t):n?encodeURIComponent(tr(n))+r+encodeURIComponent(tr(e)):""},nr=ye((function(e,t){t.decode=t.parse=er,t.encode=t.stringify=rr})),or=vr,ar=ir;function ir(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var sr=/^([a-z0-9.+-]+:)/i,lr=/:[0-9]*$/,cr=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,ur=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),pr=["'"].concat(ur),dr=["%","/","?",";","#"].concat(pr),hr=["/","?","#"],fr=/^[+a-z0-9A-Z_-]{0,63}$/,mr=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,gr={javascript:!0,"javascript:":!0},yr={javascript:!0,"javascript:":!0},br={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function vr(e,t,r){if(e&&Zt(e)&&e instanceof ir)return e;var n=new ir;return n.parse(e,t,r),n}ir.prototype.parse=function(e,t,r){if(!Jt(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e.indexOf("?"),o=-1!==n&&n<e.indexOf("#")?"?":"#",a=e.split(o);a[0]=a[0].replace(/\\/g,"/");var i=e=a.join(o);if(i=i.trim(),!r&&1===e.split("#").length){var s=cr.exec(i);if(s)return this.path=i,this.href=i,this.pathname=s[1],s[2]?(this.search=s[2],this.query=t?nr.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var l=sr.exec(i);if(l){var c=(l=l[0]).toLowerCase();this.protocol=c,i=i.substr(l.length)}if(r||l||i.match(/^\/\/[^@\/]+@[^@\/]+/)){var u="//"===i.substr(0,2);!u||l&&yr[l]||(i=i.substr(2),this.slashes=!0)}if(!yr[l]&&(u||l&&!br[l])){for(var p,d,h=-1,f=0;f<hr.length;f++)-1!==(m=i.indexOf(hr[f]))&&(-1===h||m<h)&&(h=m);for(-1!==(d=-1===h?i.lastIndexOf("@"):i.lastIndexOf("@",h))&&(p=i.slice(0,d),i=i.slice(d+1),this.auth=decodeURIComponent(p)),h=-1,f=0;f<dr.length;f++){var m;-1!==(m=i.indexOf(dr[f]))&&(-1===h||m<h)&&(h=m)}-1===h&&(h=i.length),this.host=i.slice(0,h),i=i.slice(h),this.parseHost(),this.hostname=this.hostname||"";var g="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!g)for(var y=this.hostname.split(/\./),b=(f=0,y.length);f<b;f++){var v=y[f];if(v&&!v.match(fr)){for(var x="",w=0,k=v.length;w<k;w++)v.charCodeAt(w)>127?x+="x":x+=v[w];if(!x.match(fr)){var A=y.slice(0,f),$=y.slice(f+1),E=v.match(mr);E&&(A.push(E[1]),$.unshift(E[2])),$.length&&(i="/"+$.join(".")+i),this.hostname=A.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),g||(this.hostname=Gt.toASCII(this.hostname));var S=this.port?":"+this.port:"",D=this.hostname||"";this.host=D+S,this.href+=this.host,g&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==i[0]&&(i="/"+i))}if(!gr[c])for(f=0,b=pr.length;f<b;f++){var O=pr[f];if(-1!==i.indexOf(O)){var C=encodeURIComponent(O);C===O&&(C=escape(O)),i=i.split(O).join(C)}}var _=i.indexOf("#");-1!==_&&(this.hash=i.substr(_),i=i.slice(0,_));var j=i.indexOf("?");if(-1!==j?(this.search=i.substr(j),this.query=i.substr(j+1),t&&(this.query=nr.parse(this.query)),i=i.slice(0,j)):t&&(this.search="",this.query={}),i&&(this.pathname=i),br[c]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){S=this.pathname||"";var T=this.search||"";this.path=S+T}return this.href=this.format(),this},ir.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",n=this.hash||"",o=!1,a="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&Zt(this.query)&&Object.keys(this.query).length&&(a=nr.stringify(this.query));var i=this.search||a&&"?"+a||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||br[t])&&!1!==o?(o="//"+(o||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):o||(o=""),n&&"#"!==n.charAt(0)&&(n="#"+n),i&&"?"!==i.charAt(0)&&(i="?"+i),t+o+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(i=i.replace("#","%23"))+n},ir.prototype.resolve=function(e){return this.resolveObject(vr(e,!1,!0)).format()},ir.prototype.resolveObject=function(e){if(Jt(e)){var t=new ir;t.parse(e,!1,!0),e=t}for(var r=new ir,n=Object.keys(this),o=0;o<n.length;o++){var a=n[o];r[a]=this[a]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var i=Object.keys(e),s=0;s<i.length;s++){var l=i[s];"protocol"!==l&&(r[l]=e[l])}return br[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!br[e.protocol]){for(var c=Object.keys(e),u=0;u<c.length;u++){var p=c[u];r[p]=e[p]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||yr[e.protocol])r.pathname=e.pathname;else{for(var d=(e.pathname||"").split("/");d.length&&!(e.host=d.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==d[0]&&d.unshift(""),d.length<2&&d.unshift(""),r.pathname=d.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var h=r.pathname||"",f=r.search||"";r.path=h+f}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var m=r.pathname&&"/"===r.pathname.charAt(0),g=e.host||e.pathname&&"/"===e.pathname.charAt(0),y=g||m||r.host&&e.pathname,b=y,v=r.pathname&&r.pathname.split("/")||[],x=(d=e.pathname&&e.pathname.split("/")||[],r.protocol&&!br[r.protocol]);if(x&&(r.hostname="",r.port=null,r.host&&(""===v[0]?v[0]=r.host:v.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),y=y&&(""===d[0]||""===v[0])),g)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,v=d;else if(d.length)v||(v=[]),v.pop(),v=v.concat(d),r.search=e.search,r.query=e.query;else if(!function(e){return null==e}(e.search))return x&&(r.hostname=r.host=v.shift(),(E=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=E.shift(),r.host=r.hostname=E.shift())),r.search=e.search,r.query=e.query,Xt(r.pathname)&&Xt(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!v.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var w=v.slice(-1)[0],k=(r.host||e.host||v.length>1)&&("."===w||".."===w)||""===w,A=0,$=v.length;$>=0;$--)"."===(w=v[$])?v.splice($,1):".."===w?(v.splice($,1),A++):A&&(v.splice($,1),A--);if(!y&&!b)for(;A--;A)v.unshift("..");!y||""===v[0]||v[0]&&"/"===v[0].charAt(0)||v.unshift(""),k&&"/"!==v.join("/").substr(-1)&&v.push("");var E,S=""===v[0]||v[0]&&"/"===v[0].charAt(0);return x&&(r.hostname=r.host=S?"":v.length?v.shift():"",(E=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=E.shift(),r.host=r.hostname=E.shift())),(y=y||r.host&&v.length)&&!S&&v.unshift(""),v.length?r.pathname=v.join("/"):(r.pathname=null,r.path=null),Xt(r.pathname)&&Xt(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},ir.prototype.parseHost=function(){var e=this.host,t=lr.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};var xr,wr={parse:or,resolve:function(e,t){return vr(e,!1,!0).resolve(t)},resolveObject:function(e,t){return e?vr(e,!1,!0).resolveObject(t):t},format:function(e){return Jt(e)&&(e=vr(e)),e instanceof ir?e.format():ir.prototype.format.call(e)},Url:ar};xr="undefined"!=typeof self?self:void 0,function(e){var t="URLSearchParams"in xr,r="Symbol"in xr&&"iterator"in Symbol,n="FileReader"in xr&&"Blob"in xr&&function(){try{return new Blob,!0}catch(e){return!1}}(),o="FormData"in xr,a="ArrayBuffer"in xr;if(a)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],s=ArrayBuffer.isView||function(e){return e&&i.indexOf(Object.prototype.toString.call(e))>-1};function l(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function c(e){return"string"!=typeof e&&(e=String(e)),e}function u(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return r&&(t[Symbol.iterator]=function(){return t}),t}function p(e){this.map={},e instanceof p?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function d(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function h(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function f(e){var t=new FileReader,r=h(t);return t.readAsArrayBuffer(e),r}function m(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function g(){return this.bodyUsed=!1,this._initBody=function(e){var r;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:n&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:o&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:t&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():a&&n&&(r=e)&&DataView.prototype.isPrototypeOf(r)?(this._bodyArrayBuffer=m(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a&&(ArrayBuffer.prototype.isPrototypeOf(e)||s(e))?this._bodyArrayBuffer=m(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):t&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n&&(this.blob=function(){var e=d(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(f)}),this.text=function(){var e,t,r,n=d(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,r=h(t=new FileReader),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},o&&(this.formData=function(){return this.text().then(v)}),this.json=function(){return this.text().then(JSON.parse)},this}p.prototype.append=function(e,t){e=l(e),t=c(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},p.prototype.delete=function(e){delete this.map[l(e)]},p.prototype.get=function(e){return e=l(e),this.has(e)?this.map[e]:null},p.prototype.has=function(e){return this.map.hasOwnProperty(l(e))},p.prototype.set=function(e,t){this.map[l(e)]=c(t)},p.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},p.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),u(e)},p.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),u(e)},p.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),u(e)},r&&(p.prototype[Symbol.iterator]=p.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(e,t){var r,n,o=(t=t||{}).body;if(e instanceof b){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new p(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,o||null==e._bodyInit||(o=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new p(t.headers)),this.method=(n=(r=t.method||this.method||"GET").toUpperCase(),y.indexOf(n)>-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function v(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(o))}})),t}function x(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new p(t.headers),this.url=t.url||"",this._initBody(e)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},g.call(b.prototype),g.call(x.prototype),x.prototype.clone=function(){return new x(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},x.error=function(){var e=new x(null,{status:0,statusText:""});return e.type="error",e};var w=[301,302,303,307,308];x.redirect=function(e,t){if(-1===w.indexOf(t))throw new RangeError("Invalid status code");return new x(null,{status:t,headers:{location:e}})},e.DOMException=xr.DOMException;try{new e.DOMException}catch(t){e.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function k(t,r){return new Promise((function(o,a){var i=new b(t,r);if(i.signal&&i.signal.aborted)return a(new e.DOMException("Aborted","AbortError"));var s=new XMLHttpRequest;function l(){s.abort()}s.onload=function(){var e,t,r={status:s.status,statusText:s.statusText,headers:(e=s.getAllResponseHeaders()||"",t=new p,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();t.append(n,o)}})),t)};r.url="responseURL"in s?s.responseURL:r.headers.get("X-Request-URL");var n="response"in s?s.response:s.responseText;o(new x(n,r))},s.onerror=function(){a(new TypeError("Network request failed"))},s.ontimeout=function(){a(new TypeError("Network request failed"))},s.onabort=function(){a(new e.DOMException("Aborted","AbortError"))},s.open(i.method,i.url,!0),"include"===i.credentials?s.withCredentials=!0:"omit"===i.credentials&&(s.withCredentials=!1),"responseType"in s&&n&&(s.responseType="blob"),i.headers.forEach((function(e,t){s.setRequestHeader(t,e)})),i.signal&&(i.signal.addEventListener("abort",l),s.onreadystatechange=function(){4===s.readyState&&i.signal.removeEventListener("abort",l)}),s.send(void 0===i._bodyInit?null:i._bodyInit)}))}k.polyfill=!0,xr.fetch||(xr.fetch=k,xr.Headers=p,xr.Request=b,xr.Response=x),e.Headers=p,e.Request=b,e.Response=x,e.fetch=k}({});var kr=String.prototype.replace,Ar=/%20/g,$r="RFC3986",Er={default:$r,formatters:{RFC1738:function(e){return kr.call(e,Ar,"+")},RFC3986:function(e){return String(e)}},RFC1738:"RFC1738",RFC3986:$r},Sr=Object.prototype.hasOwnProperty,Dr=Array.isArray,Or=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),Cr=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r},_r={arrayToObject:Cr,assign:function(e,t){return Object.keys(t).reduce((function(e,r){return e[r]=t[r],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var o=t[n],a=o.obj[o.prop],i=Object.keys(a),s=0;s<i.length;++s){var l=i[s],c=a[l];"object"==typeof c&&null!==c&&-1===r.indexOf(c)&&(t.push({obj:a,prop:l}),r.push(c))}return function(e){for(;e.length>1;){var t=e.pop(),r=t.obj[t.prop];if(Dr(r)){for(var n=[],o=0;o<r.length;++o)void 0!==r[o]&&n.push(r[o]);t.obj[t.prop]=n}}}(t),e},decode:function(e,t,r){var n=e.replace(/\+/g," ");if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(e){return n}},encode:function(e,t,r,n,o){if(0===e.length)return e;var a=e;if("symbol"==typeof e?a=Symbol.prototype.toString.call(e):"string"!=typeof e&&(a=String(e)),"iso-8859-1"===r)return escape(a).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var i="",s=0;s<a.length;++s){var l=a.charCodeAt(s);45===l||46===l||95===l||126===l||l>=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||o===Er.RFC1738&&(40===l||41===l)?i+=a.charAt(s):l<128?i+=Or[l]:l<2048?i+=Or[192|l>>6]+Or[128|63&l]:l<55296||l>=57344?i+=Or[224|l>>12]+Or[128|l>>6&63]+Or[128|63&l]:(s+=1,l=65536+((1023&l)<<10|1023&a.charCodeAt(s)),i+=Or[240|l>>18]+Or[128|l>>12&63]+Or[128|l>>6&63]+Or[128|63&l])}return i},isBuffer:function(e){return!(!e||"object"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(Dr(e)){for(var r=[],n=0;n<e.length;n+=1)r.push(t(e[n]));return r}return t(e)},merge:function e(t,r,n){if(!r)return t;if("object"!=typeof r){if(Dr(t))t.push(r);else{if(!t||"object"!=typeof t)return[t,r];(n&&(n.plainObjects||n.allowPrototypes)||!Sr.call(Object.prototype,r))&&(t[r]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(r);var o=t;return Dr(t)&&!Dr(r)&&(o=Cr(t,n)),Dr(t)&&Dr(r)?(r.forEach((function(r,o){if(Sr.call(t,o)){var a=t[o];a&&"object"==typeof a&&r&&"object"==typeof r?t[o]=e(a,r,n):t.push(r)}else t[o]=r})),t):Object.keys(r).reduce((function(t,o){var a=r[o];return Sr.call(t,o)?t[o]=e(t[o],a,n):t[o]=a,t}),o)}},jr=Object.prototype.hasOwnProperty,Tr={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},Fr=Array.isArray,Pr=Array.prototype.push,Br=function(e,t){Pr.apply(e,Fr(t)?t:[t])},Ir=Date.prototype.toISOString,Rr=Er.default,Nr={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:_r.encode,encodeValuesOnly:!1,format:Rr,formatter:Er.formatters[Rr],indices:!1,serializeDate:function(e){return Ir.call(e)},skipNulls:!1,strictNullHandling:!1},Lr=function e(t,r,n,o,a,i,s,l,c,u,p,d,h,f){var m,g=t;if("function"==typeof s?g=s(r,g):g instanceof Date?g=u(g):"comma"===n&&Fr(g)&&(g=_r.maybeMap(g,(function(e){return e instanceof Date?u(e):e}))),null===g){if(o)return i&&!h?i(r,Nr.encoder,f,"key",p):r;g=""}if("string"==typeof(m=g)||"number"==typeof m||"boolean"==typeof m||"symbol"==typeof m||"bigint"==typeof m||_r.isBuffer(g))return i?[d(h?r:i(r,Nr.encoder,f,"key",p))+"="+d(i(g,Nr.encoder,f,"value",p))]:[d(r)+"="+d(String(g))];var y,b=[];if(void 0===g)return b;if("comma"===n&&Fr(g))y=[{value:g.length>0?g.join(",")||null:void 0}];else if(Fr(s))y=s;else{var v=Object.keys(g);y=l?v.sort(l):v}for(var x=0;x<y.length;++x){var w=y[x],k="object"==typeof w&&void 0!==w.value?w.value:g[w];if(!a||null!==k){var A=Fr(g)?"function"==typeof n?n(r,w):r:r+(c?"."+w:"["+w+"]");Br(b,e(k,A,n,o,a,i,s,l,c,u,p,d,h,f))}}return b},qr=Object.prototype.hasOwnProperty,zr=Array.isArray,Ur={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:_r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},Mr=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},Hr=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},Vr=function(e,t,r,n){if(e){var o=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,i=r.depth>0&&/(\[[^[\]]*])/.exec(o),s=i?o.slice(0,i.index):o,l=[];if(s){if(!r.plainObjects&&qr.call(Object.prototype,s)&&!r.allowPrototypes)return;l.push(s)}for(var c=0;r.depth>0&&null!==(i=a.exec(o))&&c<r.depth;){if(c+=1,!r.plainObjects&&qr.call(Object.prototype,i[1].slice(1,-1))&&!r.allowPrototypes)return;l.push(i[1])}return i&&l.push("["+o.slice(i.index)+"]"),function(e,t,r,n){for(var o=n?t:Hr(t,r),a=e.length-1;a>=0;--a){var i,s=e[a];if("[]"===s&&r.parseArrays)i=[].concat(o);else{i=r.plainObjects?Object.create(null):{};var l="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(l,10);r.parseArrays||""!==l?!isNaN(c)&&s!==l&&String(c)===l&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(i=[])[c]=o:i[l]=o:i={0:o}}o=i}return o}(l,t,r,n)}},Wr={formats:Er,parse:function(e,t){var r=function(e){if(!e)return Ur;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?Ur.charset:e.charset;return{allowDots:void 0===e.allowDots?Ur.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:Ur.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:Ur.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:Ur.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:Ur.comma,decoder:"function"==typeof e.decoder?e.decoder:Ur.decoder,delimiter:"string"==typeof e.delimiter||_r.isRegExp(e.delimiter)?e.delimiter:Ur.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:Ur.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:Ur.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:Ur.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:Ur.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:Ur.strictNullHandling}}(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var n="string"==typeof e?function(e,t){var r,n={},o=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=t.parameterLimit===1/0?void 0:t.parameterLimit,i=o.split(t.delimiter,a),s=-1,l=t.charset;if(t.charsetSentinel)for(r=0;r<i.length;++r)0===i[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===i[r]?l="utf-8":"utf8=%26%2310003%3B"===i[r]&&(l="iso-8859-1"),s=r,r=i.length);for(r=0;r<i.length;++r)if(r!==s){var c,u,p=i[r],d=p.indexOf("]="),h=-1===d?p.indexOf("="):d+1;-1===h?(c=t.decoder(p,Ur.decoder,l,"key"),u=t.strictNullHandling?null:""):(c=t.decoder(p.slice(0,h),Ur.decoder,l,"key"),u=_r.maybeMap(Hr(p.slice(h+1),t),(function(e){return t.decoder(e,Ur.decoder,l,"value")}))),u&&t.interpretNumericEntities&&"iso-8859-1"===l&&(u=Mr(u)),p.indexOf("[]=")>-1&&(u=zr(u)?[u]:u),qr.call(n,c)?n[c]=_r.combine(n[c],u):n[c]=u}return n}(e,r):e,o=r.plainObjects?Object.create(null):{},a=Object.keys(n),i=0;i<a.length;++i){var s=a[i],l=Vr(s,n[s],r,"string"==typeof e);o=_r.merge(o,l,r)}return _r.compact(o)},stringify:function(e,t){var r,n=e,o=function(e){if(!e)return Nr;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||Nr.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=Er.default;if(void 0!==e.format){if(!jr.call(Er.formatters,e.format))throw new TypeError("Unknown format option provided.");r=e.format}var n=Er.formatters[r],o=Nr.filter;return("function"==typeof e.filter||Fr(e.filter))&&(o=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:Nr.addQueryPrefix,allowDots:void 0===e.allowDots?Nr.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:Nr.charsetSentinel,delimiter:void 0===e.delimiter?Nr.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:Nr.encode,encoder:"function"==typeof e.encoder?e.encoder:Nr.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:Nr.encodeValuesOnly,filter:o,format:r,formatter:n,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:Nr.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:Nr.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:Nr.strictNullHandling}}(t);"function"==typeof o.filter?n=(0,o.filter)("",n):Fr(o.filter)&&(r=o.filter);var a,i=[];if("object"!=typeof n||null===n)return"";a=t&&t.arrayFormat in Tr?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var s=Tr[a];r||(r=Object.keys(n)),o.sort&&r.sort(o.sort);for(var l=0;l<r.length;++l){var c=r[l];o.skipNulls&&null===n[c]||Br(i,Lr(n[c],c,s,o.strictNullHandling,o.skipNulls,o.encode?o.encoder:null,o.filter,o.sort,o.allowDots,o.serializeDate,o.format,o.formatter,o.encodeValuesOnly,o.charset))}var u=i.join(o.delimiter),p=!0===o.addQueryPrefix?"?":"";return o.charsetSentinel&&("iso-8859-1"===o.charset?p+="utf8=%26%2310003%3B&":p+="utf8=%E2%9C%93&"),u.length>0?p+u:""}};function Yr(e){return null==e}var Kr={isNothing:Yr,isObject:function(e){return"object"==typeof e&&null!==e},toArray:function(e){return Array.isArray(e)?e:Yr(e)?[]:[e]},repeat:function(e,t){var r,n="";for(r=0;r<t;r+=1)n+=e;return n},isNegativeZero:function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},extend:function(e,t){var r,n,o,a;if(t)for(r=0,n=(a=Object.keys(t)).length;r<n;r+=1)e[o=a[r]]=t[o];return e}};function Gr(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Gr.prototype=Object.create(Error.prototype),Gr.prototype.constructor=Gr,Gr.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};var Jr=Gr;function Zr(e,t,r,n,o){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=o}Zr.prototype.getSnippet=function(e,t){var r,n,o,a,i;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",n=this.position;n>0&&-1==="\0\r\nÂ…\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>t/2-1){r=" ... ",n+=5;break}for(o="",a=this.position;a<this.buffer.length&&-1==="\0\r\nÂ…\u2028\u2029".indexOf(this.buffer.charAt(a));)if((a+=1)-this.position>t/2-1){o=" ... ",a-=5;break}return i=this.buffer.slice(n,a),Kr.repeat(" ",e)+r+i+o+"\n"+Kr.repeat(" ",e+this.position-n+r.length)+"^"},Zr.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r};var Xr=Zr,Qr=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],en=["scalar","sequence","mapping"],tn=function(e,t){var r,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Qr.indexOf(t))throw new Jr('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){n[String(t)]=e}))})),n),-1===en.indexOf(this.kind))throw new Jr('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function rn(e,t,r){var n=[];return e.include.forEach((function(e){r=rn(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function nn(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new Jr("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=rn(this,"implicit",[]),this.compiledExplicit=rn(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(n);return r}(this.compiledImplicit,this.compiledExplicit)}nn.DEFAULT=null,nn.create=function(){var e,t;switch(arguments.length){case 1:e=nn.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new Jr("Wrong number of arguments for Schema.create function")}if(e=Kr.toArray(e),t=Kr.toArray(t),!e.every((function(e){return e instanceof nn})))throw new Jr("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every((function(e){return e instanceof tn})))throw new Jr("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new nn({include:e,explicit:t})};var on=nn,an=new on({explicit:[new tn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}}),new tn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}}),new tn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})]}),sn=new tn("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"}),ln=new tn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function cn(e){return 48<=e&&e<=55}function un(e){return 48<=e&&e<=57}var pn,dn=new tn("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,o=0,a=!1;if(!n)return!1;if("-"!==(t=e[o])&&"+"!==t||(t=e[++o]),"0"===t){if(o+1===n)return!0;if("b"===(t=e[++o])){for(o++;o<n;o++)if("_"!==(t=e[o])){if("0"!==t&&"1"!==t)return!1;a=!0}return a&&"_"!==t}if("x"===t){for(o++;o<n;o++)if("_"!==(t=e[o])){if(!(48<=(r=e.charCodeAt(o))&&r<=57||65<=r&&r<=70||97<=r&&r<=102))return!1;a=!0}return a&&"_"!==t}for(;o<n;o++)if("_"!==(t=e[o])){if(!cn(e.charCodeAt(o)))return!1;a=!0}return a&&"_"!==t}if("_"===t)return!1;for(;o<n;o++)if("_"!==(t=e[o])){if(":"===t)break;if(!un(e.charCodeAt(o)))return!1;a=!0}return!(!a||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(o)))},construct:function(e){var t,r,n=e,o=1,a=[];return-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(t=n[0])&&"+"!==t||("-"===t&&(o=-1),t=(n=n.slice(1))[0]),"0"===n?0:"0"===t?"b"===n[1]?o*parseInt(n.slice(2),2):"x"===n[1]?o*parseInt(n,16):o*parseInt(n,8):-1!==n.indexOf(":")?(n.split(":").forEach((function(e){a.unshift(parseInt(e,10))})),n=0,r=1,a.forEach((function(e){n+=e*r,r*=60})),o*n):o*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!Kr.isNegativeZero(e)},represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),hn=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),fn=/^[-+]?[0-9]+e/,mn=new on({include:[an],implicit:[sn,ln,dn,new tn("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!hn.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,o;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){o.unshift(parseFloat(e,10))})),t=0,n=1,o.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||Kr.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Kr.isNegativeZero(e))return"-0.0";return r=e.toString(10),fn.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})]}),gn=new on({include:[mn]}),yn=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),bn=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),vn=new tn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==yn.exec(e)||null!==bn.exec(e))},construct:function(e){var t,r,n,o,a,i,s,l,c=0,u=null;if(null===(t=yn.exec(e))&&(t=bn.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(r,n,o));if(a=+t[4],i=+t[5],s=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),l=new Date(Date.UTC(r,n,o,a,i,s,c)),u&&l.setTime(l.getTime()-u),l},instanceOf:Date,represent:function(e){return e.toISOString()}}),xn=new tn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{pn=be("buffer").Buffer}catch(e){}var wn,kn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",An=new tn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,o=e.length,a=kn;for(r=0;r<o;r++)if(!((t=a.indexOf(e.charAt(r)))>64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,n=e.replace(/[\r\n=]/g,""),o=n.length,a=kn,i=0,s=[];for(t=0;t<o;t++)t%4==0&&t&&(s.push(i>>16&255),s.push(i>>8&255),s.push(255&i)),i=i<<6|a.indexOf(n.charAt(t));return 0==(r=o%4*6)?(s.push(i>>16&255),s.push(i>>8&255),s.push(255&i)):18===r?(s.push(i>>10&255),s.push(i>>2&255)):12===r&&s.push(i>>4&255),pn?pn.from?pn.from(s):new pn(s):s},predicate:function(e){return pn&&pn.isBuffer(e)},represent:function(e){var t,r,n="",o=0,a=e.length,i=kn;for(t=0;t<a;t++)t%3==0&&t&&(n+=i[o>>18&63],n+=i[o>>12&63],n+=i[o>>6&63],n+=i[63&o]),o=(o<<8)+e[t];return 0==(r=a%3)?(n+=i[o>>18&63],n+=i[o>>12&63],n+=i[o>>6&63],n+=i[63&o]):2===r?(n+=i[o>>10&63],n+=i[o>>4&63],n+=i[o<<2&63],n+=i[64]):1===r&&(n+=i[o>>2&63],n+=i[o<<4&63],n+=i[64],n+=i[64]),n}}),$n=Object.prototype.hasOwnProperty,En=Object.prototype.toString,Sn=new tn("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,a,i=[],s=e;for(t=0,r=s.length;t<r;t+=1){if(n=s[t],a=!1,"[object Object]"!==En.call(n))return!1;for(o in n)if($n.call(n,o)){if(a)return!1;a=!0}if(!a)return!1;if(-1!==i.indexOf(o))return!1;i.push(o)}return!0},construct:function(e){return null!==e?e:[]}}),Dn=Object.prototype.toString,On=new tn("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,a,i=e;for(a=new Array(i.length),t=0,r=i.length;t<r;t+=1){if(n=i[t],"[object Object]"!==Dn.call(n))return!1;if(1!==(o=Object.keys(n)).length)return!1;a[t]=[o[0],n[o[0]]]}return!0},construct:function(e){if(null===e)return[];var t,r,n,o,a,i=e;for(a=new Array(i.length),t=0,r=i.length;t<r;t+=1)n=i[t],o=Object.keys(n),a[t]=[o[0],n[o[0]]];return a}}),Cn=Object.prototype.hasOwnProperty,_n=new on({include:[gn],implicit:[vn,xn],explicit:[An,Sn,On,new tn("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,r=e;for(t in r)if(Cn.call(r,t)&&null!==r[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})]}),jn=new tn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}}),Tn=new tn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),n.length>3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}});try{wn=be("esprima")}catch(e){"undefined"!=typeof window&&(wn=window.esprima)}var Fn=new tn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=wn.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,r="("+e+")",n=wn.parse(r,{range:!0}),o=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),Pn=on.DEFAULT=new on({include:[_n],explicit:[jn,Tn,Fn]}),Bn=Object.prototype.hasOwnProperty,In=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Rn=/[\x85\u2028\u2029]/,Nn=/[,\[\]\{\}]/,Ln=/^(?:!|!!|![a-z\-]+!)$/i,qn=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function zn(e){return Object.prototype.toString.call(e)}function Un(e){return 10===e||13===e}function Mn(e){return 9===e||32===e}function Hn(e){return 9===e||32===e||10===e||13===e}function Vn(e){return 44===e||91===e||93===e||123===e||125===e}function Wn(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function Yn(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"Â…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function Kn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var Gn=new Array(256),Jn=new Array(256),Zn=0;Zn<256;Zn++)Gn[Zn]=Yn(Zn)?1:0,Jn[Zn]=Yn(Zn);function Xn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Pn,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Qn(e,t){return new Jr(t,new Xr(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function eo(e,t){throw Qn(e,t)}function to(e,t){e.onWarning&&e.onWarning.call(null,Qn(e,t))}var ro={YAML:function(e,t,r){var n,o,a;null!==e.version&&eo(e,"duplication of %YAML directive"),1!==r.length&&eo(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&eo(e,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),a=parseInt(n[2],10),1!==o&&eo(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=a<2,1!==a&&2!==a&&to(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,o;2!==r.length&&eo(e,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],Ln.test(n)||eo(e,"ill-formed tag handle (first argument) of the TAG directive"),Bn.call(e.tagMap,n)&&eo(e,'there is a previously declared suffix for "'+n+'" tag handle'),qn.test(o)||eo(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=o}};function no(e,t,r,n){var o,a,i,s;if(t<r){if(s=e.input.slice(t,r),n)for(o=0,a=s.length;o<a;o+=1)9===(i=s.charCodeAt(o))||32<=i&&i<=1114111||eo(e,"expected valid JSON character");else In.test(s)&&eo(e,"the stream contains non-printable characters");e.result+=s}}function oo(e,t,r,n){var o,a,i,s;for(Kr.isObject(r)||eo(e,"cannot merge mappings; the provided source object is unacceptable"),i=0,s=(o=Object.keys(r)).length;i<s;i+=1)a=o[i],Bn.call(t,a)||(t[a]=r[a],n[a]=!0)}function ao(e,t,r,n,o,a,i,s){var l,c;if(Array.isArray(o))for(l=0,c=(o=Array.prototype.slice.call(o)).length;l<c;l+=1)Array.isArray(o[l])&&eo(e,"nested arrays are not supported inside keys"),"object"==typeof o&&"[object Object]"===zn(o[l])&&(o[l]="[object Object]");if("object"==typeof o&&"[object Object]"===zn(o)&&(o="[object Object]"),o=String(o),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(a))for(l=0,c=a.length;l<c;l+=1)oo(e,t,a[l],r);else oo(e,t,a,r);else e.json||Bn.call(r,o)||!Bn.call(t,o)||(e.line=i||e.line,e.position=s||e.position,eo(e,"duplicated mapping key")),t[o]=a,delete r[o];return t}function io(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):eo(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function so(e,t,r){for(var n=0,o=e.input.charCodeAt(e.position);0!==o;){for(;Mn(o);)o=e.input.charCodeAt(++e.position);if(t&&35===o)do{o=e.input.charCodeAt(++e.position)}while(10!==o&&13!==o&&0!==o);if(!Un(o))break;for(io(e),o=e.input.charCodeAt(e.position),n++,e.lineIndent=0;32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position)}return-1!==r&&0!==n&&e.lineIndent<r&&to(e,"deficient indentation"),n}function lo(e){var t,r=e.position;return!(45!==(t=e.input.charCodeAt(r))&&46!==t||t!==e.input.charCodeAt(r+1)||t!==e.input.charCodeAt(r+2)||(r+=3,0!==(t=e.input.charCodeAt(r))&&!Hn(t)))}function co(e,t){1===t?e.result+=" ":t>1&&(e.result+=Kr.repeat("\n",t-1))}function uo(e,t){var r,n,o=e.tag,a=e.anchor,i=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),n=e.input.charCodeAt(e.position);0!==n&&45===n&&Hn(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,so(e,!0,-1)&&e.lineIndent<=t)i.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,fo(e,t,3,!1,!0),i.push(e.result),so(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)eo(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!s&&(e.tag=o,e.anchor=a,e.kind="sequence",e.result=i,!0)}function po(e){var t,r,n,o,a=!1,i=!1;if(33!==(o=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&eo(e,"duplication of a tag property"),60===(o=e.input.charCodeAt(++e.position))?(a=!0,o=e.input.charCodeAt(++e.position)):33===o?(i=!0,r="!!",o=e.input.charCodeAt(++e.position)):r="!",t=e.position,a){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&62!==o);e.position<e.length?(n=e.input.slice(t,e.position),o=e.input.charCodeAt(++e.position)):eo(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==o&&!Hn(o);)33===o&&(i?eo(e,"tag suffix cannot contain exclamation marks"):(r=e.input.slice(t-1,e.position+1),Ln.test(r)||eo(e,"named tag handle cannot contain such characters"),i=!0,t=e.position+1)),o=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),Nn.test(n)&&eo(e,"tag suffix cannot contain flow indicator characters")}return n&&!qn.test(n)&&eo(e,"tag name cannot contain such characters: "+n),a?e.tag=n:Bn.call(e.tagMap,r)?e.tag=e.tagMap[r]+n:"!"===r?e.tag="!"+n:"!!"===r?e.tag="tag:yaml.org,2002:"+n:eo(e,'undeclared tag handle "'+r+'"'),!0}function ho(e){var t,r;if(38!==(r=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&eo(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!Hn(r)&&!Vn(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&eo(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function fo(e,t,r,n,o){var a,i,s,l,c,u,p,d,h=1,f=!1,m=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=i=s=4===r||3===r,n&&so(e,!0,-1)&&(f=!0,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)),1===h)for(;po(e)||ho(e);)so(e,!0,-1)?(f=!0,s=a,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)):s=!1;if(s&&(s=f||o),1!==h&&4!==r||(p=1===r||2===r?t:t+1,d=e.position-e.lineStart,1===h?s&&(uo(e,d)||function(e,t,r){var n,o,a,i,s,l=e.tag,c=e.anchor,u={},p={},d=null,h=null,f=null,m=!1,g=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),s=e.input.charCodeAt(e.position);0!==s;){if(n=e.input.charCodeAt(e.position+1),a=e.line,i=e.position,63!==s&&58!==s||!Hn(n)){if(!fo(e,r,2,!1,!0))break;if(e.line===a){for(s=e.input.charCodeAt(e.position);Mn(s);)s=e.input.charCodeAt(++e.position);if(58===s)Hn(s=e.input.charCodeAt(++e.position))||eo(e,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(ao(e,u,p,d,h,null),d=h=f=null),g=!0,m=!1,o=!1,d=e.tag,h=e.result;else{if(!g)return e.tag=l,e.anchor=c,!0;eo(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!g)return e.tag=l,e.anchor=c,!0;eo(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(m&&(ao(e,u,p,d,h,null),d=h=f=null),g=!0,m=!0,o=!0):m?(m=!1,o=!0):eo(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=n;if((e.line===a||e.lineIndent>t)&&(fo(e,t,4,!0,o)&&(m?h=e.result:f=e.result),m||(ao(e,u,p,d,h,f,a,i),d=h=f=null),so(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)eo(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return m&&ao(e,u,p,d,h,null),g&&(e.tag=l,e.anchor=c,e.kind="mapping",e.result=u),g}(e,d,p))||function(e,t){var r,n,o,a,i,s,l,c,u,p,d=!0,h=e.tag,f=e.anchor,m={};if(91===(p=e.input.charCodeAt(e.position)))o=93,s=!1,n=[];else{if(123!==p)return!1;o=125,s=!0,n={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=n),p=e.input.charCodeAt(++e.position);0!==p;){if(so(e,!0,t),(p=e.input.charCodeAt(e.position))===o)return e.position++,e.tag=h,e.anchor=f,e.kind=s?"mapping":"sequence",e.result=n,!0;d||eo(e,"missed comma between flow collection entries"),u=null,a=i=!1,63===p&&Hn(e.input.charCodeAt(e.position+1))&&(a=i=!0,e.position++,so(e,!0,t)),r=e.line,fo(e,t,1,!1,!0),c=e.tag,l=e.result,so(e,!0,t),p=e.input.charCodeAt(e.position),!i&&e.line!==r||58!==p||(a=!0,p=e.input.charCodeAt(++e.position),so(e,!0,t),fo(e,t,1,!1,!0),u=e.result),s?ao(e,n,m,c,l,u):a?n.push(ao(e,null,m,c,l,u)):n.push(l),so(e,!0,t),44===(p=e.input.charCodeAt(e.position))?(d=!0,p=e.input.charCodeAt(++e.position)):d=!1}eo(e,"unexpected end of the stream within a flow collection")}(e,p)?m=!0:(i&&function(e,t){var r,n,o,a,i,s=1,l=!1,c=!1,u=t,p=0,d=!1;if(124===(a=e.input.charCodeAt(e.position)))n=!1;else{if(62!==a)return!1;n=!0}for(e.kind="scalar",e.result="";0!==a;)if(43===(a=e.input.charCodeAt(++e.position))||45===a)1===s?s=43===a?3:2:eo(e,"repeat of a chomping mode identifier");else{if(!((o=48<=(i=a)&&i<=57?i-48:-1)>=0))break;0===o?eo(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?eo(e,"repeat of an indentation width identifier"):(u=t+o-1,c=!0)}if(Mn(a)){do{a=e.input.charCodeAt(++e.position)}while(Mn(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!Un(a)&&0!==a)}for(;0!==a;){for(io(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!c||e.lineIndent<u)&&32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position);if(!c&&e.lineIndent>u&&(u=e.lineIndent),Un(a))p++;else{if(e.lineIndent<u){3===s?e.result+=Kr.repeat("\n",l?1+p:p):1===s&&l&&(e.result+="\n");break}for(n?Mn(a)?(d=!0,e.result+=Kr.repeat("\n",l?1+p:p)):d?(d=!1,e.result+=Kr.repeat("\n",p+1)):0===p?l&&(e.result+=" "):e.result+=Kr.repeat("\n",p):e.result+=Kr.repeat("\n",l?1+p:p),l=!0,c=!0,p=0,r=e.position;!Un(a)&&0!==a;)a=e.input.charCodeAt(++e.position);no(e,r,e.position,!1)}}return!0}(e,p)||function(e,t){var r,n,o;if(39!==(r=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=o=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39===r){if(no(e,n,e.position,!0),39!==(r=e.input.charCodeAt(++e.position)))return!0;n=e.position,e.position++,o=e.position}else Un(r)?(no(e,n,o,!0),co(e,so(e,!1,t)),n=o=e.position):e.position===e.lineStart&&lo(e)?eo(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);eo(e,"unexpected end of the stream within a single quoted scalar")}(e,p)||function(e,t){var r,n,o,a,i,s,l;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return no(e,r,e.position,!0),e.position++,!0;if(92===s){if(no(e,r,e.position,!0),Un(s=e.input.charCodeAt(++e.position)))so(e,!1,t);else if(s<256&&Gn[s])e.result+=Jn[s],e.position++;else if((i=120===(l=s)?2:117===l?4:85===l?8:0)>0){for(o=i,a=0;o>0;o--)(i=Wn(s=e.input.charCodeAt(++e.position)))>=0?a=(a<<4)+i:eo(e,"expected hexadecimal character");e.result+=Kn(a),e.position++}else eo(e,"unknown escape sequence");r=n=e.position}else Un(s)?(no(e,r,n,!0),co(e,so(e,!1,t)),r=n=e.position):e.position===e.lineStart&&lo(e)?eo(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}eo(e,"unexpected end of the stream within a double quoted scalar")}(e,p)?m=!0:function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!Hn(n)&&!Vn(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&eo(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),Bn.call(e.anchorMap,r)||eo(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],so(e,!0,-1),!0}(e)?(m=!0,null===e.tag&&null===e.anchor||eo(e,"alias node should not have any properties")):function(e,t,r){var n,o,a,i,s,l,c,u,p=e.kind,d=e.result;if(Hn(u=e.input.charCodeAt(e.position))||Vn(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(Hn(n=e.input.charCodeAt(e.position+1))||r&&Vn(n)))return!1;for(e.kind="scalar",e.result="",o=a=e.position,i=!1;0!==u;){if(58===u){if(Hn(n=e.input.charCodeAt(e.position+1))||r&&Vn(n))break}else if(35===u){if(Hn(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&lo(e)||r&&Vn(u))break;if(Un(u)){if(s=e.line,l=e.lineStart,c=e.lineIndent,so(e,!1,-1),e.lineIndent>=t){i=!0,u=e.input.charCodeAt(e.position);continue}e.position=a,e.line=s,e.lineStart=l,e.lineIndent=c;break}}i&&(no(e,o,a,!1),co(e,e.line-s),o=a=e.position,i=!1),Mn(u)||(a=e.position+1),u=e.input.charCodeAt(++e.position)}return no(e,o,a,!1),!!e.result||(e.kind=p,e.result=d,!1)}(e,p,1===r)&&(m=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===h&&(m=s&&uo(e,d))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&eo(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),l=0,c=e.implicitTypes.length;l<c;l+=1)if((u=e.implicitTypes[l]).resolve(e.result)){e.result=u.construct(e.result),e.tag=u.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else Bn.call(e.typeMap[e.kind||"fallback"],e.tag)?(u=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&u.kind!==e.kind&&eo(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):eo(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):eo(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||m}function mo(e){var t,r,n,o,a=e.position,i=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(so(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(i=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!Hn(o);)o=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&eo(e,"directive name must not be less than one character in length");0!==o;){for(;Mn(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!Un(o));break}if(Un(o))break;for(t=e.position;0!==o&&!Hn(o);)o=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==o&&io(e),Bn.call(ro,r)?ro[r](e,r,n):to(e,'unknown document directive "'+r+'"')}so(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,so(e,!0,-1)):i&&eo(e,"directives end mark is expected"),fo(e,e.lineIndent-1,4,!1,!0),so(e,!0,-1),e.checkLineBreaks&&Rn.test(e.input.slice(a,e.position))&&to(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&lo(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,so(e,!0,-1)):e.position<e.length-1&&eo(e,"end of the stream or a document separator is expected")}function go(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var r=new Xn(e,t),n=e.indexOf("\0");for(-1!==n&&(r.position=n,eo(r,"null byte is not allowed in input")),r.input+="\0";32===r.input.charCodeAt(r.position);)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)mo(r);return r.documents}function yo(e,t,r){null!==t&&"object"==typeof t&&void 0===r&&(r=t,t=null);var n=go(e,r);if("function"!=typeof t)return n;for(var o=0,a=n.length;o<a;o+=1)t(n[o])}function bo(e,t){var r=go(e,t);if(0!==r.length){if(1===r.length)return r[0];throw new Jr("expected a single document in the stream, but found more")}}var vo={loadAll:yo,load:bo,safeLoadAll:function(e,t,r){return"object"==typeof t&&null!==t&&void 0===r&&(r=t,t=null),yo(e,t,Kr.extend({schema:_n},r))},safeLoad:function(e,t){return bo(e,Kr.extend({schema:_n},t))}},xo=Object.prototype.toString,wo=Object.prototype.hasOwnProperty,ko={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},Ao=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function $o(e){var t,r,n;if(t=e.toString(16).toUpperCase(),e<=255)r="x",n=2;else if(e<=65535)r="u",n=4;else{if(!(e<=4294967295))throw new Jr("code point within a string may not be greater than 0xFFFFFFFF");r="U",n=8}return"\\"+r+Kr.repeat("0",n-t.length)+t}function Eo(e){this.schema=e.schema||Pn,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=Kr.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var r,n,o,a,i,s,l;if(null===t)return{};for(r={},o=0,a=(n=Object.keys(t)).length;o<a;o+=1)i=n[o],s=String(t[i]),"!!"===i.slice(0,2)&&(i="tag:yaml.org,2002:"+i.slice(2)),(l=e.compiledTypeMap.fallback[i])&&wo.call(l.styleAliases,s)&&(s=l.styleAliases[s]),r[i]=s;return r}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function So(e,t){for(var r,n=Kr.repeat(" ",t),o=0,a=-1,i="",s=e.length;o<s;)-1===(a=e.indexOf("\n",o))?(r=e.slice(o),o=s):(r=e.slice(o,a+1),o=a+1),r.length&&"\n"!==r&&(i+=n),i+=r;return i}function Do(e,t){return"\n"+Kr.repeat(" ",e.indent*t)}function Oo(e){return 32===e||9===e}function Co(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function _o(e,t){return Co(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&(35!==e||t&&function(e){return Co(e)&&!Oo(e)&&65279!==e&&13!==e&&10!==e}(t))}function jo(e){return/^\n* /.test(e)}function To(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==Ao.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,r),a=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),i=n||e.flowLevel>-1&&r>=e.flowLevel;switch(function(e,t,r,n,o){var a,i,s,l,c=!1,u=!1,p=-1!==n,d=-1,h=Co(l=e.charCodeAt(0))&&65279!==l&&!Oo(l)&&45!==l&&63!==l&&58!==l&&44!==l&&91!==l&&93!==l&&123!==l&&125!==l&&35!==l&&38!==l&&42!==l&&33!==l&&124!==l&&61!==l&&62!==l&&39!==l&&34!==l&&37!==l&&64!==l&&96!==l&&!Oo(e.charCodeAt(e.length-1));if(t)for(a=0;a<e.length;a++){if(!Co(i=e.charCodeAt(a)))return 5;s=a>0?e.charCodeAt(a-1):null,h=h&&_o(i,s)}else{for(a=0;a<e.length;a++){if(10===(i=e.charCodeAt(a)))c=!0,p&&(u=u||a-d-1>n&&" "!==e[d+1],d=a);else if(!Co(i))return 5;s=a>0?e.charCodeAt(a-1):null,h=h&&_o(i,s)}u=u||p&&a-d-1>n&&" "!==e[d+1]}return c||u?r>9&&jo(e)?5:u?4:3:h&&!o(e)?1:2}(t,i,e.indent,a,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r<n;r+=1)if(e.implicitTypes[r].resolve(t))return!0;return!1}(e,t)}))){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+Fo(t,e.indent)+Po(So(t,o));case 4:return">"+Fo(t,e.indent)+Po(So(function(e,t){for(var r,n,o,a=/(\n+)([^\n]*)/g,i=(o=-1!==(o=e.indexOf("\n"))?o:e.length,a.lastIndex=o,Bo(e.slice(0,o),t)),s="\n"===e[0]||" "===e[0];n=a.exec(e);){var l=n[1],c=n[2];r=" "===c[0],i+=l+(s||r||""===c?"":"\n")+Bo(c,t),s=r}return i}(t,a),o));case 5:return'"'+function(e){for(var t,r,n,o="",a=0;a<e.length;a++)(t=e.charCodeAt(a))>=55296&&t<=56319&&(r=e.charCodeAt(a+1))>=56320&&r<=57343?(o+=$o(1024*(t-55296)+r-56320+65536),a++):o+=!(n=ko[t])&&Co(t)?e[a]:n||$o(t);return o}(t)+'"';default:throw new Jr("impossible error: invalid scalar style")}}()}function Fo(e,t){var r=jo(e)?String(t):"",n="\n"===e[e.length-1];return r+(!n||"\n"!==e[e.length-2]&&"\n"!==e?n?"":"-":"+")+"\n"}function Po(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function Bo(e,t){if(""===e||" "===e[0])return e;for(var r,n,o=/ [^ ]/g,a=0,i=0,s=0,l="";r=o.exec(e);)(s=r.index)-a>t&&(n=i>a?i:s,l+="\n"+e.slice(a,n),a=n+1),i=s;return l+="\n",e.length-a>t&&i>a?l+=e.slice(a,i)+"\n"+e.slice(i+1):l+=e.slice(a),l.slice(1)}function Io(e,t,r){var n,o,a,i,s,l;for(a=0,i=(o=r?e.explicitTypes:e.implicitTypes).length;a<i;a+=1)if(((s=o[a]).instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=r?s.tag:"?",s.represent){if(l=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===xo.call(s.represent))n=s.represent(t,l);else{if(!wo.call(s.represent,l))throw new Jr("!<"+s.tag+'> tag resolver accepts not "'+l+'" style');n=s.represent[l](t,l)}e.dump=n}return!0}return!1}function Ro(e,t,r,n,o,a){e.tag=null,e.dump=r,Io(e,r,!1)||Io(e,r,!0);var i=xo.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var s,l,c="[object Object]"===i||"[object Array]"===i;if(c&&(l=-1!==(s=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||l||2!==e.indent&&t>0)&&(o=!1),l&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(c&&l&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===i)n&&0!==Object.keys(e.dump).length?(function(e,t,r,n){var o,a,i,s,l,c,u="",p=e.tag,d=Object.keys(r);if(!0===e.sortKeys)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new Jr("sortKeys must be a boolean or a function");for(o=0,a=d.length;o<a;o+=1)c="",n&&0===o||(c+=Do(e,t)),s=r[i=d[o]],Ro(e,t+1,i,!0,!0,!0)&&((l=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&10===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,l&&(c+=Do(e,t)),Ro(e,t+1,s,!0,l)&&(e.dump&&10===e.dump.charCodeAt(0)?c+=":":c+=": ",u+=c+=e.dump));e.tag=p,e.dump=u||"{}"}(e,t,e.dump,o),l&&(e.dump="&ref_"+s+e.dump)):(function(e,t,r){var n,o,a,i,s,l="",c=e.tag,u=Object.keys(r);for(n=0,o=u.length;n<o;n+=1)s="",0!==n&&(s+=", "),e.condenseFlow&&(s+='"'),i=r[a=u[n]],Ro(e,t,a,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ro(e,t,i,!1,!1)&&(l+=s+=e.dump));e.tag=c,e.dump="{"+l+"}"}(e,t,e.dump),l&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===i){var u=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(function(e,t,r,n){var o,a,i="",s=e.tag;for(o=0,a=r.length;o<a;o+=1)Ro(e,t+1,r[o],!0,!0)&&(n&&0===o||(i+=Do(e,t)),e.dump&&10===e.dump.charCodeAt(0)?i+="-":i+="- ",i+=e.dump);e.tag=s,e.dump=i||"[]"}(e,u,e.dump,o),l&&(e.dump="&ref_"+s+e.dump)):(function(e,t,r){var n,o,a="",i=e.tag;for(n=0,o=r.length;n<o;n+=1)Ro(e,t,r[n],!1,!1)&&(0!==n&&(a+=","+(e.condenseFlow?"":" ")),a+=e.dump);e.tag=i,e.dump="["+a+"]"}(e,u,e.dump),l&&(e.dump="&ref_"+s+" "+e.dump))}else{if("[object String]"!==i){if(e.skipInvalid)return!1;throw new Jr("unacceptable kind of an object to dump "+i)}"?"!==e.tag&&To(e,e.dump,t,a)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function No(e,t){var r,n,o=[],a=[];for(Lo(e,o,a),r=0,n=a.length;r<n;r+=1)t.duplicates.push(o[a[r]]);t.usedDuplicates=new Array(n)}function Lo(e,t,r){var n,o,a;if(null!==e&&"object"==typeof e)if(-1!==(o=t.indexOf(e)))-1===r.indexOf(o)&&r.push(o);else if(t.push(e),Array.isArray(e))for(o=0,a=e.length;o<a;o+=1)Lo(e[o],t,r);else for(o=0,a=(n=Object.keys(e)).length;o<a;o+=1)Lo(e[n[o]],t,r)}function qo(e,t){var r=new Eo(t=t||{});return r.noRefs||No(e,r),Ro(r,0,e,!0,!0)?r.dump+"\n":""}var zo={dump:qo,safeDump:function(e,t){return qo(e,Kr.extend({schema:_n},t))}};function Uo(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var Mo={Type:tn,Schema:on,FAILSAFE_SCHEMA:an,JSON_SCHEMA:mn,CORE_SCHEMA:gn,DEFAULT_SAFE_SCHEMA:_n,DEFAULT_FULL_SCHEMA:Pn,load:vo.load,loadAll:vo.loadAll,safeLoad:vo.safeLoad,safeLoadAll:vo.safeLoadAll,dump:zo.dump,safeDump:zo.safeDump,YAMLException:Jr,MINIMAL_SCHEMA:an,SAFE_SCHEMA:_n,DEFAULT_SCHEMA:Pn,scan:Uo("scan"),parse:Uo("parse"),compose:Uo("compose"),addConstructor:Uo("addConstructor")},Ho=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Vo=/^\w*$/,Wo=function(e,t){if(yt(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!Pt(e))||Vo.test(e)||!Ho.test(e)||null!=t&&e in Object(t)},Yo=He(Object,"create"),Ko=Object.prototype.hasOwnProperty,Go=Object.prototype.hasOwnProperty;function Jo(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Jo.prototype.clear=function(){this.__data__=Yo?Yo(null):{},this.size=0},Jo.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Jo.prototype.get=function(e){var t=this.__data__;if(Yo){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return Ko.call(t,e)?t[e]:void 0},Jo.prototype.has=function(e){var t=this.__data__;return Yo?void 0!==t[e]:Go.call(t,e)},Jo.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Yo&&void 0===t?"__lodash_hash_undefined__":t,this};var Zo=Jo,Xo=function(e,t){for(var r=e.length;r--;)if(Ye(e[r][0],t))return r;return-1},Qo=Array.prototype.splice;function ea(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ea.prototype.clear=function(){this.__data__=[],this.size=0},ea.prototype.delete=function(e){var t=this.__data__,r=Xo(t,e);return!(r<0||(r==t.length-1?t.pop():Qo.call(t,r,1),--this.size,0))},ea.prototype.get=function(e){var t=this.__data__,r=Xo(t,e);return r<0?void 0:t[r][1]},ea.prototype.has=function(e){return Xo(this.__data__,e)>-1},ea.prototype.set=function(e,t){var r=this.__data__,n=Xo(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};var ta=ea,ra=He(ke,"Map"),na=function(e,t){var r=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?r["string"==typeof t?"string":"hash"]:r.map};function oa(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}oa.prototype.clear=function(){this.size=0,this.__data__={hash:new Zo,map:new(ra||ta),string:new Zo}},oa.prototype.delete=function(e){var t=na(this,e).delete(e);return this.size-=t?1:0,t},oa.prototype.get=function(e){return na(this,e).get(e)},oa.prototype.has=function(e){return na(this,e).has(e)},oa.prototype.set=function(e,t){var r=na(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this};var aa=oa;function ia(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=e.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(ia.Cache||aa),r}ia.Cache=aa;for(var sa=ia,la=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ca=/\\(\\)?/g,ua=function(e){var t=sa((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(la,(function(e,r,n,o){t.push(n?o.replace(ca,"$1"):r||e)})),t}),(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}(),pa=function(e,t){return yt(e)?e:Wo(e,t)?[e]:ua(Yt(e))},da=function(e){if("string"==typeof e||Pt(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t},ha=function(e,t){for(var r=0,n=(t=pa(t,e)).length;null!=e&&r<n;)e=e[da(t[r++])];return r&&r==n?e:void 0},fa=function(e,t,r,n){if(!je(e))return e;for(var o=-1,a=(t=pa(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=da(t[o]),c=r;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=i){var u=s[l];void 0===(c=n?n(u,l,s):void 0)&&(c=je(u)?u:lt(t[o+1])?[]:{})}Ge(s,l,c),s=s[l]}return e},ma=function(e,t){return null!=e&&t in Object(e)},ga=function(e,t){return null!=e&&function(e,t,r){for(var n=-1,o=(t=pa(t,e)).length,a=!1;++n<o;){var i=da(t[n]);if(!(a=null!=e&&r(e,i)))break;e=e[i]}return a||++n!=o?a:!!(o=null==e?0:e.length)&&at(o)&<(i,o)&&(yt(e)||gt(e))}(e,t,ma)},ya=function(e,t){return function(e,t,r){for(var n=-1,o=t.length,a={};++n<o;){var i=t[n],s=ha(e,i);r(s,i)&&fa(a,pa(i,e),s)}return a}(e,t,(function(t,r){return ga(e,r)}))},ba=function(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e},va=Ae?Ae.isConcatSpreadable:void 0,xa=function(e){return yt(e)||gt(e)||!!(va&&e&&e[va])},wa=function e(t,r,n,o,a){var i=-1,s=t.length;for(n||(n=xa),a||(a=[]);++i<s;){var l=t[i];r>0&&n(l)?r>1?e(l,r-1,n,o,a):ba(a,l):o||(a[a.length]=l)}return a},ka=function(e){return null!=e&&e.length?wa(e,1):[]},Aa=function(e){return ot(et(e,void 0,ka),e+"")}((function(e,t){return null==e?{}:ya(e,t)})),$a=[],Ea=[],Sa="undefined"!=typeof Uint8Array?Uint8Array:Array,Da="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Oa=0,Ca=Da.length;Oa<Ca;++Oa)$a[Oa]=Da[Oa],Ea[Da.charCodeAt(Oa)]=Oa;function _a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function ja(e,t,r){for(var n,o,a=[],i=t;i<r;i+=3)n=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(255&e[i+2]),a.push($a[(o=n)>>18&63]+$a[o>>12&63]+$a[o>>6&63]+$a[63&o]);return a.join("")}Ea["-".charCodeAt(0)]=62,Ea["_".charCodeAt(0)]=63;var Ta=function(e){var t,r,n=_a(e),o=n[0],a=n[1],i=new Sa(function(e,t,r){return 3*(t+r)/4-r}(0,o,a)),s=0,l=a>0?o-4:o;for(r=0;r<l;r+=4)t=Ea[e.charCodeAt(r)]<<18|Ea[e.charCodeAt(r+1)]<<12|Ea[e.charCodeAt(r+2)]<<6|Ea[e.charCodeAt(r+3)],i[s++]=t>>16&255,i[s++]=t>>8&255,i[s++]=255&t;return 2===a&&(t=Ea[e.charCodeAt(r)]<<2|Ea[e.charCodeAt(r+1)]>>4,i[s++]=255&t),1===a&&(t=Ea[e.charCodeAt(r)]<<10|Ea[e.charCodeAt(r+1)]<<4|Ea[e.charCodeAt(r+2)]>>2,i[s++]=t>>8&255,i[s++]=255&t),i},Fa=function(e){for(var t,r=e.length,n=r%3,o=[],a=16383,i=0,s=r-n;i<s;i+=a)o.push(ja(e,i,i+a>s?s:i+a));return 1===n?(t=e[r-1],o.push($a[t>>2]+$a[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],o.push($a[t>>10]+$a[t>>4&63]+$a[t<<2&63]+"=")),o.join("")},Pa=function(e,t,r,n,o){var a,i,s=8*o-n-1,l=(1<<s)-1,c=l>>1,u=-7,p=r?o-1:0,d=r?-1:1,h=e[t+p];for(p+=d,a=h&(1<<-u)-1,h>>=-u,u+=s;u>0;a=256*a+e[t+p],p+=d,u-=8);for(i=a&(1<<-u)-1,a>>=-u,u+=n;u>0;i=256*i+e[t+p],p+=d,u-=8);if(0===a)a=1-c;else{if(a===l)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,n),a-=c}return(h?-1:1)*i*Math.pow(2,a-n)},Ba=function(e,t,r,n,o,a){var i,s,l,c=8*a-o-1,u=(1<<c)-1,p=u>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),(t+=i+p>=1?d/l:d*Math.pow(2,1-p))*l>=2&&(i++,l/=2),i+p>=u?(s=0,i=u):i+p>=1?(s=(t*l-1)*Math.pow(2,o),i+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,o),i=0));o>=8;e[r+h]=255&s,h+=f,s/=256,o-=8);for(i=i<<o|s,c+=o;c>0;e[r+h]=255&i,h+=f,i/=256,c-=8);e[r+h-f]|=128*m},Ia=ye((function(e,t){const r="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=a,t.SlowBuffer=function(e){return+e!=e&&(e=0),a.alloc(+e)},t.INSPECT_MAX_BYTES=50;const n=2147483647;function o(e){if(e>n)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,a.prototype),t}function a(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return i(e,t,r)}function i(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|d(e,t);let n=o(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return u(t.buffer,t.byteOffset,t.byteLength)}return c(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return u(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return u(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return a.from(n,t,r);const i=function(e){if(a.isBuffer(e)){const t=0|p(e.length),r=o(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||Y(e.length)?o(0):c(e):"Buffer"===e.type&&Array.isArray(e.data)?c(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function s(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return s(e),o(e<0?0:0|p(e))}function c(e){const t=e.length<0?0:0|p(e.length),r=o(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function u(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,a.prototype),n}function p(e){if(e>=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return 0|e}function d(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return M(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(o)return n?-1:M(e).length;t=(""+t).toLowerCase(),o=!0}}function h(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return D(this,t,r);case"utf8":case"utf-8":return A(this,t,r);case"ascii":return E(this,t,r);case"latin1":case"binary":return S(this,t,r);case"base64":return k(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function f(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Y(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:g(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):g(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function g(e,t,r,n,o){let a,i=1,s=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,s/=2,l/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){let n=-1;for(a=r;a<s;a++)if(c(e,a)===c(t,-1===n?0:a-n)){if(-1===n&&(n=a),a-n+1===l)return n*i}else-1!==n&&(a-=a-n),n=-1}else for(r+l>s&&(r=s-l),a=r;a>=0;a--){let r=!0;for(let n=0;n<l;n++)if(c(e,a+n)!==c(t,n)){r=!1;break}if(r)return a}return-1}function y(e,t,r,n){r=Number(r)||0;const o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;const a=t.length;let i;for(n>a/2&&(n=a/2),i=0;i<n;++i){const n=parseInt(t.substr(2*i,2),16);if(Y(n))return i;e[r+i]=n}return i}function b(e,t,r,n){return V(M(t,e.length-r),e,r,n)}function v(e,t,r,n){return V(function(e){const t=[];for(let r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function x(e,t,r,n){return V(H(t),e,r,n)}function w(e,t,r,n){return V(function(e,t){let r,n,o;const a=[];for(let i=0;i<e.length&&!((t-=2)<0);++i)r=e.charCodeAt(i),n=r>>8,o=r%256,a.push(o),a.push(n);return a}(t,e.length-r),e,r,n)}function k(e,t,r){return 0===t&&r===e.length?Fa(e):Fa(e.slice(t,r))}function A(e,t,r){r=Math.min(e.length,r);const n=[];let o=t;for(;o<r;){const t=e[o];let a=null,i=t>239?4:t>223?3:t>191?2:1;if(o+i<=r){let r,n,s,l;switch(i){case 1:t<128&&(a=t);break;case 2:r=e[o+1],128==(192&r)&&(l=(31&t)<<6|63&r,l>127&&(a=l));break;case 3:r=e[o+1],n=e[o+2],128==(192&r)&&128==(192&n)&&(l=(15&t)<<12|(63&r)<<6|63&n,l>2047&&(l<55296||l>57343)&&(a=l));break;case 4:r=e[o+1],n=e[o+2],s=e[o+3],128==(192&r)&&128==(192&n)&&128==(192&s)&&(l=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&s,l>65535&&l<1114112&&(a=l))}}null===a?(a=65533,i=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),o+=i}return function(e){const t=e.length;if(t<=$)return String.fromCharCode.apply(String,e);let r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=$));return r}(n)}t.kMaxLength=n,a.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),a.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}}),a.poolSize=8192,a.from=function(e,t,r){return i(e,t,r)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array),a.alloc=function(e,t,r){return function(e,t,r){return s(e),e<=0?o(e):void 0!==t?"string"==typeof r?o(e).fill(t,r):o(e).fill(t):o(e)}(e,t,r)},a.allocUnsafe=function(e){return l(e)},a.allocUnsafeSlow=function(e){return l(e)},a.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==a.prototype},a.compare=function(e,t){if(W(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),W(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let o=0,a=Math.min(r,n);o<a;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);let r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;const n=a.allocUnsafe(t);let o=0;for(r=0;r<e.length;++r){let t=e[r];if(W(t,Uint8Array))o+t.length>n.length?(a.isBuffer(t)||(t=a.from(t)),t.copy(n,o)):Uint8Array.prototype.set.call(n,t,o);else{if(!a.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,o)}o+=t.length}return n},a.byteLength=d,a.prototype._isBuffer=!0,a.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)f(this,t,t+1);return this},a.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)f(this,t,t+3),f(this,t+1,t+2);return this},a.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)f(this,t,t+7),f(this,t+1,t+6),f(this,t+2,t+5),f(this,t+3,t+4);return this},a.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?A(this,0,e):h.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===a.compare(this,e)},a.prototype.inspect=function(){let e="";const r=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),"<Buffer "+e+">"},r&&(a.prototype[r]=a.prototype.inspect),a.prototype.compare=function(e,t,r,n,o){if(W(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;let i=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0);const l=Math.min(i,s),c=this.slice(n,o),u=e.slice(t,r);for(let e=0;e<l;++e)if(c[e]!==u[e]){i=c[e],s=u[e];break}return i<s?-1:s<i?1:0},a.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},a.prototype.indexOf=function(e,t,r){return m(this,e,t,r,!0)},a.prototype.lastIndexOf=function(e,t,r){return m(this,e,t,r,!1)},a.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let a=!1;for(;;)switch(n){case"hex":return y(this,e,t,r);case"utf8":case"utf-8":return b(this,e,t,r);case"ascii":case"latin1":case"binary":return v(this,e,t,r);case"base64":return x(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const $=4096;function E(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function S(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function D(e,t,r){const n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);let o="";for(let n=t;n<r;++n)o+=K[e[n]];return o}function O(e,t,r){const n=e.slice(t,r);let o="";for(let e=0;e<n.length-1;e+=2)o+=String.fromCharCode(n[e]+256*n[e+1]);return o}function C(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function _(e,t,r,n,o,i){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function j(e,t,r,n,o){L(t,n,o,e,r,7);let a=Number(t&BigInt(4294967295));e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,r}function T(e,t,r,n,o){L(t,n,o,e,r,7);let a=Number(t&BigInt(4294967295));e[r+7]=a,a>>=8,e[r+6]=a,a>>=8,e[r+5]=a,a>>=8,e[r+4]=a;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=i,i>>=8,e[r+2]=i,i>>=8,e[r+1]=i,i>>=8,e[r]=i,r+8}function F(e,t,r,n,o,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function P(e,t,r,n,o){return t=+t,r>>>=0,o||F(e,0,r,4),Ba(e,t,r,n,23,4),r+4}function B(e,t,r,n,o){return t=+t,r>>>=0,o||F(e,0,r,8),Ba(e,t,r,n,52,8),r+8}a.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);const n=this.subarray(e,t);return Object.setPrototypeOf(n,a.prototype),n},a.prototype.readUintLE=a.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);let n=this[e],o=1,a=0;for(;++a<t&&(o*=256);)n+=this[e+a]*o;return n},a.prototype.readUintBE=a.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n},a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readBigUInt64LE=G((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(o)<<BigInt(32))})),a.prototype.readBigUInt64BE=G((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<<BigInt(32))+BigInt(o)})),a.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);let n=this[e],o=1,a=0;for(;++a<t&&(o*=256);)n+=this[e+a]*o;return o*=128,n>=o&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);let n=t,o=1,a=this[e+--n];for(;n>0&&(o*=256);)a+=this[e+--n]*o;return o*=128,a>=o&&(a-=Math.pow(2,8*t)),a},a.prototype.readInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||C(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(e,t){e>>>=0,t||C(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readBigInt64LE=G((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),a.prototype.readBigInt64BE=G((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+r)})),a.prototype.readFloatLE=function(e,t){return e>>>=0,t||C(e,4,this.length),Pa(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||C(e,4,this.length),Pa(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||C(e,8,this.length),Pa(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||C(e,8,this.length),Pa(this,e,!1,52,8)},a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||_(this,e,t,r,Math.pow(2,8*r)-1,0);let o=1,a=0;for(this[t]=255&e;++a<r&&(o*=256);)this[t+a]=e/o&255;return t+r},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||_(this,e,t,r,Math.pow(2,8*r)-1,0);let o=r-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+r},a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,1,255,0),this[t]=255&e,t+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigUInt64LE=G((function(e,t=0){return j(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeBigUInt64BE=G((function(e,t=0){return T(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);_(this,e,t,r,n-1,-n)}let o=0,a=1,i=0;for(this[t]=255&e;++o<r&&(a*=256);)e<0&&0===i&&0!==this[t+o-1]&&(i=1),this[t+o]=(e/a>>0)-i&255;return t+r},a.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);_(this,e,t,r,n-1,-n)}let o=r-1,a=1,i=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===i&&0!==this[t+o+1]&&(i=1),this[t+o]=(e/a>>0)-i&255;return t+r},a.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},a.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||_(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigInt64LE=G((function(e,t=0){return j(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeBigInt64BE=G((function(e,t=0){return T(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeFloatLE=function(e,t,r){return P(this,e,t,!0,r)},a.prototype.writeFloatBE=function(e,t,r){return P(this,e,t,!1,r)},a.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},a.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},a.prototype.copy=function(e,t,r,n){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);const o=n-r;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,r,n):Uint8Array.prototype.set.call(e,this.subarray(r,n),t),o},a.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===e.length){const t=e.charCodeAt(0);("utf8"===n&&t<128||"latin1"===n)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;let o;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o<r;++o)this[o]=e;else{const i=a.isBuffer(e)?e:a.from(e,n),s=i.length;if(0===s)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(o=0;o<r-t;++o)this[o+t]=i[o%s]}return this};const I={};function R(e,t,r){I[e]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function N(e){let t="",r=e.length;const n="-"===e[0]?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function L(e,t,r,n,o,a){if(e>r||e<t){const n="bigint"==typeof t?"n":"";let o;throw o=a>3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(a+1)}${n}`:`>= -(2${n} ** ${8*(a+1)-1}${n}) and < 2 ** ${8*(a+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new I.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,r){q(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||z(t,e.length-(r+1))}(n,o,a)}function q(e,t){if("number"!=typeof e)throw new I.ERR_INVALID_ARG_TYPE(t,"number",e)}function z(e,t,r){if(Math.floor(e)!==e)throw q(e,r),new I.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new I.ERR_BUFFER_OUT_OF_BOUNDS;throw new I.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}R("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),R("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),R("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,o=r;return Number.isInteger(r)&&Math.abs(r)>2**32?o=N(String(r)):"bigint"==typeof r&&(o=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(o=N(o)),o+="n"),n+=` It must be ${t}. Received ${o}`,n}),RangeError);const U=/[^+/0-9A-Za-z-_]/g;function M(e,t){let r;t=t||1/0;const n=e.length;let o=null;const a=[];for(let i=0;i<n;++i){if(r=e.charCodeAt(i),r>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&a.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function H(e){return Ta(function(e){if((e=(e=e.split("=")[0]).trim().replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,r,n){let o;for(o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Y(e){return e!=e}const K=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let o=0;o<16;++o)t[n+o]=e[r]+e[o]}return t}();function G(e){return"undefined"==typeof BigInt?J:e}function J(){throw new Error("BigInt not supported")}})),Ra=window.FormData,Na=ye((function(e,t){t.__esModule=!0,t.default=t.patch=void 0;var r=o(Te),n=o(Ra);function o(e){return e&&e.__esModule?e:{default:e}}const a=e=>{const t=(e,t)=>({name:e,value:t});return(0,r.default)(e.prototype.set)||(0,r.default)(e.prototype.get)||(0,r.default)(e.prototype.getAll)||(0,r.default)(e.prototype.has)?e:class extends e{constructor(e){super(e),this.entryList=[]}append(e,r,n){return this.entryList.push(t(e,r)),super.append(e,r,n)}set(e,r){const n=t(e,r);this.entryList=this.entryList.filter((t=>t.name!==e)),this.entryList.push(n)}get(e){const t=this.entryList.find((t=>t.name===e));return void 0===t?null:t}getAll(e){return this.entryList.filter((t=>t.name===e)).map((e=>e.value))}has(e){return this.entryList.some((t=>t.name===e))}}};t.patch=a;var i=a(n.default);t.default=i})),La=za;const{Buffer:qa}=Ia;function za(e,{escape:t}={},r){return"number"==typeof e&&(e=e.toString()),"string"==typeof e&&e.length&&t?r?JSON.parse(e):[...e].map((e=>(e=>/^[a-z0-9\-._~]+$/i.test(e))(e)||(e=>":/?#[]@!$&'()*+,;=".indexOf(e)>-1)(e)&&"unsafe"===t?e:(qa.from(e).toJSON().data||[]).map((e=>`0${e.toString(16).toUpperCase()}`.slice(-2))).map((e=>`%${e}`)).join(""))).join(""):e}var Ua=Object.defineProperty({encodeDisallowedCharacters:La,default:function(e){const{value:t}=e;return Array.isArray(t)?function({key:e,value:t,style:r,explode:n,escape:o}){const a=e=>za(e,{escape:o});if("simple"===r)return t.map((e=>a(e))).join(",");if("label"===r)return`.${t.map((e=>a(e))).join(".")}`;if("matrix"===r)return t.map((e=>a(e))).reduce(((t,r)=>!t||n?`${t||""};${e}=${r}`:`${t},${r}`),"");if("form"===r){const r=n?`&${e}=`:",";return t.map((e=>a(e))).join(r)}if("spaceDelimited"===r){const r=n?`${e}=`:"";return t.map((e=>a(e))).join(` ${r}`)}if("pipeDelimited"===r){const r=n?`${e}=`:"";return t.map((e=>a(e))).join(`|${r}`)}}(e):"object"==typeof t?function({key:e,value:t,style:r,explode:n,escape:o}){const a=e=>za(e,{escape:o}),i=Object.keys(t);return"simple"===r?i.reduce(((e,r)=>{const o=a(t[r]);return`${e?`${e},`:""}${r}${n?"=":","}${o}`}),""):"label"===r?i.reduce(((e,r)=>{const o=a(t[r]);return`${e?`${e}.`:"."}${r}${n?"=":"."}${o}`}),""):"matrix"===r&&n?i.reduce(((e,r)=>`${e?`${e};`:";"}${r}=${a(t[r])}`),""):"matrix"===r?i.reduce(((r,n)=>{const o=a(t[n]);return`${r?`${r},`:`;${e}=`}${n},${o}`}),""):"form"===r?i.reduce(((e,r)=>{const o=a(t[r]);return`${e?`${e}${n?"&":","}`:""}${r}${n?"=":","}${o}`}),""):void 0}(e):function({key:e,value:t,style:r,escape:n}){const o=e=>za(e,{escape:n});return"simple"===r?o(t):"label"===r?`.${o(t)}`:"matrix"===r?`;${e}=${o(t)}`:"form"===r||"deepObject"===r?o(t):void 0}(e)}},"__esModule",{value:!0}),Ma=ye((function(e,t){t.__esModule=!0,t.default=async function(e,t={}){"object"==typeof e&&(e=(t=e).url),t.headers=t.headers||{},l.mergeInQueryOrForm(t),t.headers&&Object.keys(t.headers).forEach((e=>{const r=t.headers[e];"string"==typeof r&&(t.headers[e]=r.replace(/\n+/g," "))})),t.requestInterceptor&&(t=await t.requestInterceptor(t)||t);const r=t.headers["content-type"]||t.headers["Content-Type"];let n;/multipart\/form-data/i.test(r)&&(delete t.headers["content-type"],delete t.headers["Content-Type"]);try{n=await(t.userFetch||fetch)(t.url,t),n=await l.serializeRes(n,e,t),t.responseInterceptor&&(n=await t.responseInterceptor(n)||n)}catch(e){if(!n)throw e;const t=new Error(n.statusText);throw t.status=n.status,t.statusCode=n.status,t.responseError=e,t}if(!n.ok){const e=new Error(n.statusText);throw e.status=n.status,e.statusCode=n.status,e.response=n,e}return n},t.serializeRes=u,t.serializeHeaders=p,t.isFile=d,t.encodeFormOrQuery=b,t.mergeInQueryOrForm=v,t.makeHttp=function(e,t,r){return r=r||(e=>e),t=t||(e=>e),n=>("string"==typeof n&&(n={url:n}),l.mergeInQueryOrForm(n),n=t(n),r(e(n)))},t.shouldDownloadAsText=t.self=void 0;var r=s(Wr),n=s(Mo),o=s(Aa),a=s(Te),i=s(Na);function s(e){return e&&e.__esModule?e:{default:e}}const l={serializeRes:u,mergeInQueryOrForm:v};t.self=l;const c=(e="")=>/(json|xml|yaml|text)\b/.test(e);function u(e,t,{loadSpec:r=!1}={}){const o={ok:e.ok,url:e.url||t,status:e.status,statusText:e.statusText,headers:p(e.headers)},a=o.headers["content-type"],i=r||c(a);return(i?e.text:e.blob||e.buffer).call(e).then((e=>{if(o.text=e,o.data=e,i)try{const t=function(e,t){return t&&(0===t.indexOf("application/json")||t.indexOf("+json")>0)?JSON.parse(e):n.default.safeLoad(e)}(e,a);o.body=t,o.obj=t}catch(e){o.parseError=e}return o}))}function p(e={}){return(0,a.default)(e.entries)?Array.from(e.entries()).reduce(((e,[t,r])=>(e[t]=function(e){return e.includes(", ")?e.split(", "):e}(r),e)),{}):{}}function d(e,t){return t||"undefined"==typeof navigator||(t=navigator),t&&"ReactNative"===t.product?!(!e||"object"!=typeof e||"string"!=typeof e.uri):"undefined"!=typeof File&&e instanceof File||"undefined"!=typeof Blob&&e instanceof Blob||void 0!==Ia.Buffer&&e instanceof Ia.Buffer||null!==e&&"object"==typeof e&&"function"==typeof e.pipe}function h(e,t){return Array.isArray(e)&&e.some((e=>d(e,t)))}t.shouldDownloadAsText=c;const f={form:",",spaceDelimited:"%20",pipeDelimited:"|"},m={csv:",",ssv:"%20",tsv:"%09",pipes:"|"};function g(e,t,r=!1){const{collectionFormat:n,allowEmptyValue:a,serializationOption:i,encoding:s}=t,l="object"!=typeof t||Array.isArray(t)?t:t.value,c=r?e=>e.toString():e=>encodeURIComponent(e),u=c(e);return void 0===l&&a?[[u,""]]:d(l)||h(l)?[[u,l]]:i?y(e,l,r,i):s?[typeof s.style,typeof s.explode,typeof s.allowReserved].some((e=>"undefined"!==e))?y(e,l,r,(0,o.default)(s,["style","explode","allowReserved"])):s.contentType?"application/json"===s.contentType?[[u,c("string"==typeof l?l:JSON.stringify(l))]]:[[u,c(l.toString())]]:"object"!=typeof l?[[u,c(l)]]:Array.isArray(l)&&l.every((e=>"object"!=typeof e))?[[u,l.map(c).join(",")]]:[[u,c(JSON.stringify(l))]]:"object"!=typeof l?[[u,c(l)]]:Array.isArray(l)?"multi"===n?[[u,l.map(c)]]:[[u,l.map(c).join(m[n||"csv"])]]:[[u,""]]}function y(e,t,r,n){const o=n.style||"form",a=void 0===n.explode?"form"===o:n.explode,i=!r&&(n&&n.allowReserved?"unsafe":"reserved"),s=e=>(0,Ua.encodeDisallowedCharacters)(e,{escape:i}),l=r?e=>e:e=>(0,Ua.encodeDisallowedCharacters)(e,{escape:i});return"object"!=typeof t?[[l(e),s(t)]]:Array.isArray(t)?a?[[l(e),t.map(s)]]:[[l(e),t.map(s).join(f[o])]]:"deepObject"===o?Object.keys(t).map((r=>[l(`${e}[${r}]`),s(t[r])])):a?Object.keys(t).map((e=>[l(e),s(t[e])])):[[l(e),Object.keys(t).map((e=>[`${l(e)},${s(t[e])}`])).join(",")]]}function b(e){const t=Object.keys(e).reduce(((t,r)=>{for(const[n,o]of g(r,e[r]))t[n]=o;return t}),{});return r.default.stringify(t,{encode:!1,indices:!1})||""}function v(e={}){const{url:t="",query:n,form:o}=e;if(o){const t=Object.keys(o).some((e=>{const{value:t}=o[e];return d(t)||h(t)})),r=e.headers["content-type"]||e.headers["Content-Type"];t||/multipart\/form-data/i.test(r)?e.body=(a=e.form,Object.entries(a).reduce(((e,[t,r])=>{for(const[n,o]of g(t,r,!0))if(Array.isArray(o))for(const t of o)e.append(n,t);else e.append(n,o);return e}),new i.default)):e.body=b(o),delete e.form}var a;if(n){const[o,a]=t.split("?");let i="";if(a){const e=r.default.parse(a);Object.keys(n).forEach((t=>delete e[t])),i=r.default.stringify(e,{encode:!0})}const s=((...e)=>{const t=e.filter((e=>e)).join("&");return t?`?${t}`:""})(i,b(n));e.url=o+s,delete e.query}return e}}));function Ha(e){var t=this.__data__=new ta(e);this.size=t.size}Ha.prototype.clear=function(){this.__data__=new ta,this.size=0},Ha.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Ha.prototype.get=function(e){return this.__data__.get(e)},Ha.prototype.has=function(e){return this.__data__.has(e)},Ha.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ta){var n=r.__data__;if(!ra||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new aa(n)}return r.set(e,t),this.size=r.size,this};var Va=Ha;function Wa(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new aa;++t<r;)this.add(e[t])}Wa.prototype.add=Wa.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Wa.prototype.has=function(e){return this.__data__.has(e)};var Ya=Wa,Ka=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1},Ga=function(e,t){return e.has(t)},Ja=function(e,t,r,n,o,a){var i=1&r,s=e.length,l=t.length;if(s!=l&&!(i&&l>s))return!1;var c=a.get(e),u=a.get(t);if(c&&u)return c==t&&u==e;var p=-1,d=!0,h=2&r?new Ya:void 0;for(a.set(e,t),a.set(t,e);++p<s;){var f=e[p],m=t[p];if(n)var g=i?n(m,f,p,t,e,a):n(f,m,p,e,t,a);if(void 0!==g){if(g)continue;d=!1;break}if(h){if(!Ka(t,(function(e,t){if(!Ga(h,t)&&(f===e||o(f,e,r,n,a)))return h.push(t)}))){d=!1;break}}else if(f!==m&&!o(f,m,r,n,a)){d=!1;break}}return a.delete(e),a.delete(t),d},Za=ke.Uint8Array,Xa=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r},Qa=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r},ei=Ae?Ae.prototype:void 0,ti=ei?ei.valueOf:void 0,ri=function(e,t,r){var n=t(e);return yt(e)?n:ba(n,r(e))},ni=function(){return[]},oi=Object.prototype.propertyIsEnumerable,ai=Object.getOwnPropertySymbols,ii=ai?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[o++]=i)}return a}(ai(e),(function(t){return oi.call(e,t)})))}:ni,si=function(e){return ri(e,jt,ii)},li=Object.prototype.hasOwnProperty,ci=He(ke,"DataView"),ui=He(ke,"Promise"),pi=He(ke,"Set"),di=He(ke,"WeakMap"),hi=Ie(ci),fi=Ie(ra),mi=Ie(ui),gi=Ie(pi),yi=Ie(di),bi=_e;(ci&&"[object DataView]"!=bi(new ci(new ArrayBuffer(1)))||ra&&"[object Map]"!=bi(new ra)||ui&&"[object Promise]"!=bi(ui.resolve())||pi&&"[object Set]"!=bi(new pi)||di&&"[object WeakMap]"!=bi(new di))&&(bi=function(e){var t=_e(e),r="[object Object]"==t?e.constructor:void 0,n=r?Ie(r):"";if(n)switch(n){case hi:return"[object DataView]";case fi:return"[object Map]";case mi:return"[object Promise]";case gi:return"[object Set]";case yi:return"[object WeakMap]"}return t});var vi,xi=bi,wi=Object.prototype.hasOwnProperty,ki=function(e,t,r,n,o,a){var i=yt(e),s=yt(t),l=i?"[object Array]":xi(e),c=s?"[object Array]":xi(t),u="[object Object]"==(l="[object Arguments]"==l?"[object Object]":l),p="[object Object]"==(c="[object Arguments]"==c?"[object Object]":c),d=l==c;if(d&&vt(e)){if(!vt(t))return!1;i=!0,u=!1}if(d&&!u)return a||(a=new Va),i||$t(e)?Ja(e,t,r,n,o,a):function(e,t,r,n,o,a,i){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new Za(e),new Za(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Ye(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var s=Xa;case"[object Set]":var l=1&n;if(s||(s=Qa),e.size!=t.size&&!l)return!1;var c=i.get(e);if(c)return c==t;n|=2,i.set(e,t);var u=Ja(s(e),s(t),n,o,a,i);return i.delete(e),u;case"[object Symbol]":if(ti)return ti.call(e)==ti.call(t)}return!1}(e,t,l,r,n,o,a);if(!(1&r)){var h=u&&wi.call(e,"__wrapped__"),f=p&&wi.call(t,"__wrapped__");if(h||f){var m=h?e.value():e,g=f?t.value():t;return a||(a=new Va),o(m,g,r,n,a)}}return!!d&&(a||(a=new Va),function(e,t,r,n,o,a){var i=1&r,s=si(e),l=s.length;if(l!=si(t).length&&!i)return!1;for(var c=l;c--;){var u=s[c];if(!(i?u in t:li.call(t,u)))return!1}var p=a.get(e),d=a.get(t);if(p&&d)return p==t&&d==e;var h=!0;a.set(e,t),a.set(t,e);for(var f=i;++c<l;){var m=e[u=s[c]],g=t[u];if(n)var y=i?n(g,m,u,t,e,a):n(m,g,u,e,t,a);if(!(void 0===y?m===g||o(m,g,r,n,a):y)){h=!1;break}f||(f="constructor"==u)}if(h&&!f){var b=e.constructor,v=t.constructor;b==v||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof v&&v instanceof v||(h=!1)}return a.delete(e),a.delete(t),h}(e,t,r,n,o,a))},Ai=function e(t,r,n,o,a){return t===r||(null==t||null==r||!pt(t)&&!pt(r)?t!=t&&r!=r:ki(t,r,n,o,e,a))},$i=function(e){return e==e&&!je(e)},Ei=function(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}},Si=function(e){var t=function(e){for(var t=jt(e),r=t.length;r--;){var n=t[r],o=e[n];t[r]=[n,o,$i(o)]}return t}(e);return 1==t.length&&t[0][2]?Ei(t[0][0],t[0][1]):function(r){return r===e||function(e,t,r,n){var o=r.length,a=o,i=!n;if(null==e)return!a;for(e=Object(e);o--;){var s=r[o];if(i&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++o<a;){var l=(s=r[o])[0],c=e[l],u=s[1];if(i&&s[2]){if(void 0===c&&!(l in e))return!1}else{var p=new Va;if(n)var d=n(c,u,l,e,t,p);if(!(void 0===d?Ai(u,c,3,n,p):d))return!1}}return!0}(r,e,t)}},Di=function(e,t,r){var n=null==e?void 0:ha(e,t);return void 0===n?r:n},Oi=function(e){return Wo(e)?function(e){return function(t){return null==t?void 0:t[e]}}(da(e)):function(e){return function(t){return ha(t,e)}}(e)},Ci=function(e){return"function"==typeof e?e:null==e?Ze:"object"==typeof e?yt(e)?function(e,t){return Wo(e)&&$i(t)?Ei(da(e),t):function(r){var n=Di(r,e);return void 0===n&&n===t?ga(r,e):Ai(t,n,3)}}(e[0],e[1]):Si(e):Oi(e)},_i=Math.max,ji=function(e){return function(t,r,n){var o=Object(t);if(!it(t)){var a=Ci(r);t=jt(t),r=function(e){return a(o[e],e,o)}}var i=e(t,r,n);return i>-1?o[a?t[i]:i]:void 0}}((function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var o=null==r?0:Wt(r);return o<0&&(o=_i(n+o,0)),function(e,t,r,n){for(var o=e.length,a=r+(n?1:-1);n?a--:++a<o;)if(t(e[a],a,e))return a;return-1}(e,Ci(t),o)})),Ti=function(){},Fi=(vi=function(e,t){return(vi=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}vi(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),Pi=Object.prototype.hasOwnProperty;function Bi(e,t){return Pi.call(e,t)}function Ii(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r<t.length;r++)t[r]=""+r;return t}if(Object.keys)return Object.keys(e);for(var n in t=[],e)Bi(e,n)&&t.push(n);return t}function Ri(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}}function Ni(e){for(var t,r=0,n=e.length;r<n;){if(!((t=e.charCodeAt(r))>=48&&t<=57))return!1;r++}return!0}function Li(e){return-1===e.indexOf("/")&&-1===e.indexOf("~")?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function qi(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function zi(e){if(void 0===e)return!0;if(e)if(Array.isArray(e)){for(var t=0,r=e.length;t<r;t++)if(zi(e[t]))return!0}else if("object"==typeof e){var n=Ii(e),o=n.length;for(t=0;t<o;t++)if(zi(e[n[t]]))return!0}return!1}function Ui(e,t){var r=[e];for(var n in t){var o="object"==typeof t[n]?JSON.stringify(t[n],null,2):t[n];void 0!==o&&r.push(n+": "+o)}return r.join("\n")}var Mi=function(e){function t(t,r,n,o,a){var i=this.constructor,s=e.call(this,Ui(t,{name:r,index:n,operation:o,tree:a}))||this;return s.name=r,s.index=n,s.operation=o,s.tree=a,Object.setPrototypeOf(s,i.prototype),s.message=Ui(t,{name:r,index:n,operation:o,tree:a}),s}return Fi(t,e),t}(Error),Hi=Mi,Vi=Ri,Wi={add:function(e,t,r){return e[t]=this.value,{newDocument:r}},remove:function(e,t,r){var n=e[t];return delete e[t],{newDocument:r,removed:n}},replace:function(e,t,r){var n=e[t];return e[t]=this.value,{newDocument:r,removed:n}},move:function(e,t,r){var n=Ki(r,this.path);n&&(n=Ri(n));var o=Gi(r,{op:"remove",path:this.from}).removed;return Gi(r,{op:"add",path:this.path,value:o}),{newDocument:r,removed:n}},copy:function(e,t,r){var n=Ki(r,this.from);return Gi(r,{op:"add",path:this.path,value:Ri(n)}),{newDocument:r}},test:function(e,t,r){return{newDocument:r,test:es(e[t],this.value)}},_get:function(e,t,r){return this.value=e[t],{newDocument:r}}},Yi={add:function(e,t,r){return Ni(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:r,index:t}},remove:function(e,t,r){return{newDocument:r,removed:e.splice(t,1)[0]}},replace:function(e,t,r){var n=e[t];return e[t]=this.value,{newDocument:r,removed:n}},move:Wi.move,copy:Wi.copy,test:Wi.test,_get:Wi._get};function Ki(e,t){if(""==t)return e;var r={op:"_get",path:t};return Gi(e,r),r.value}function Gi(e,t,r,n,o,a){if(void 0===r&&(r=!1),void 0===n&&(n=!0),void 0===o&&(o=!0),void 0===a&&(a=0),r&&("function"==typeof r?r(t,0,e,t.path):Xi(t,0)),""===t.path){var i={newDocument:e};if("add"===t.op)return i.newDocument=t.value,i;if("replace"===t.op)return i.newDocument=t.value,i.removed=e,i;if("move"===t.op||"copy"===t.op)return i.newDocument=Ki(e,t.from),"move"===t.op&&(i.removed=e),i;if("test"===t.op){if(i.test=es(e,t.value),!1===i.test)throw new Hi("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return i.newDocument=e,i}if("remove"===t.op)return i.removed=e,i.newDocument=null,i;if("_get"===t.op)return t.value=e,i;if(r)throw new Hi("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",a,t,e);return i}n||(e=Ri(e));var s=(t.path||"").split("/"),l=e,c=1,u=s.length,p=void 0,d=void 0,h=void 0;for(h="function"==typeof r?r:Xi;;){if(d=s[c],o&&"__proto__"==d)throw new TypeError("JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&void 0===p&&(void 0===l[d]?p=s.slice(0,c).join("/"):c==u-1&&(p=t.path),void 0!==p&&h(t,0,e,p)),c++,Array.isArray(l)){if("-"===d)d=l.length;else{if(r&&!Ni(d))throw new Hi("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a,t,e);Ni(d)&&(d=~~d)}if(c>=u){if(r&&"add"===t.op&&d>l.length)throw new Hi("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a,t,e);if(!1===(i=Yi[t.op].call(t,l,d,e)).test)throw new Hi("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return i}}else if(d&&-1!=d.indexOf("~")&&(d=qi(d)),c>=u){if(!1===(i=Wi[t.op].call(t,l,d,e)).test)throw new Hi("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return i}l=l[d]}}function Ji(e,t,r,n,o){if(void 0===n&&(n=!0),void 0===o&&(o=!0),r&&!Array.isArray(t))throw new Hi("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");n||(e=Ri(e));for(var a=new Array(t.length),i=0,s=t.length;i<s;i++)a[i]=Gi(e,t[i],r,!0,o,i),e=a[i].newDocument;return a.newDocument=e,a}function Zi(e,t,r){var n=Gi(e,t);if(!1===n.test)throw new Hi("Test operation failed","TEST_OPERATION_FAILED",r,t,e);return n.newDocument}function Xi(e,t,r,n){if("object"!=typeof e||null===e||Array.isArray(e))throw new Hi("Operation is not an object","OPERATION_NOT_AN_OBJECT",t,e,r);if(!Wi[e.op])throw new Hi("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r);if("string"!=typeof e.path)throw new Hi("Operation `path` property is not a string","OPERATION_PATH_INVALID",t,e,r);if(0!==e.path.indexOf("/")&&e.path.length>0)throw new Hi('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if(("move"===e.op||"copy"===e.op)&&"string"!=typeof e.from)throw new Hi("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new Hi("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&zi(e.value))throw new Hi("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r)if("add"==e.op){var o=e.path.split("/").length,a=n.split("/").length;if(o!==a+1&&o!==a)throw new Hi("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==n)throw new Hi("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if("move"===e.op||"copy"===e.op){var i=Qi([{op:"_get",path:e.from,value:void 0}],r);if(i&&"OPERATION_PATH_UNRESOLVABLE"===i.name)throw new Hi("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}function Qi(e,t,r){try{if(!Array.isArray(e))throw new Hi("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)Ji(Ri(t),Ri(e),r||!0);else{r=r||Xi;for(var n=0;n<e.length;n++)r(e[n],n,t,void 0)}}catch(e){if(e instanceof Hi)return e;throw e}}function es(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){var r,n,o,a=Array.isArray(e),i=Array.isArray(t);if(a&&i){if((n=e.length)!=t.length)return!1;for(r=n;0!=r--;)if(!es(e[r],t[r]))return!1;return!0}if(a!=i)return!1;var s=Object.keys(e);if((n=s.length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!t.hasOwnProperty(s[r]))return!1;for(r=n;0!=r--;)if(!es(e[o=s[r]],t[o]))return!1;return!0}return e!=e&&t!=t}var ts=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",JsonPatchError:Hi,deepClone:Vi,getValueByPointer:Ki,applyOperation:Gi,applyPatch:Ji,applyReducer:Zi,validator:Xi,validate:Qi,_areEquals:es}),rs=new WeakMap,ns=function(e){this.observers=new Map,this.obj=e},os=function(e,t){this.callback=e,this.observer=t};function as(e,t){t.unobserve()}function is(e,t){var r,n=function(e){return rs.get(e)}(e);if(n){var o=function(e,t){return e.observers.get(t)}(n,t);r=o&&o.observer}else n=new ns(e),rs.set(e,n);if(r)return r;if(r={},n.value=Ri(e),t){r.callback=t,r.next=null;var a=function(){ss(r)},i=function(){clearTimeout(r.next),r.next=setTimeout(a)};"undefined"!=typeof window&&(window.addEventListener("mouseup",i),window.addEventListener("keyup",i),window.addEventListener("mousedown",i),window.addEventListener("keydown",i),window.addEventListener("change",i))}return r.patches=[],r.object=e,r.unobserve=function(){ss(r),clearTimeout(r.next),function(e,t){e.observers.delete(t.callback)}(n,r),"undefined"!=typeof window&&(window.removeEventListener("mouseup",i),window.removeEventListener("keyup",i),window.removeEventListener("mousedown",i),window.removeEventListener("keydown",i),window.removeEventListener("change",i))},n.observers.set(t,new os(t,r)),r}function ss(e,t){void 0===t&&(t=!1);var r=rs.get(e.object);ls(r.value,e.object,e.patches,"",t),e.patches.length&&Ji(r.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function ls(e,t,r,n,o){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var a=Ii(t),i=Ii(e),s=!1,l=i.length-1;l>=0;l--){var c=e[p=i[l]];if(!Bi(t,p)||void 0===t[p]&&void 0!==c&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(o&&r.push({op:"test",path:n+"/"+Li(p),value:Ri(c)}),r.push({op:"remove",path:n+"/"+Li(p)}),s=!0):(o&&r.push({op:"test",path:n,value:e}),r.push({op:"replace",path:n,value:t}));else{var u=t[p];"object"==typeof c&&null!=c&&"object"==typeof u&&null!=u?ls(c,u,r,n+"/"+Li(p),o):c!==u&&(o&&r.push({op:"test",path:n+"/"+Li(p),value:Ri(c)}),r.push({op:"replace",path:n+"/"+Li(p),value:Ri(u)}))}}if(s||a.length!=i.length)for(l=0;l<a.length;l++){var p;Bi(e,p=a[l])||void 0===t[p]||r.push({op:"add",path:n+"/"+Li(p),value:Ri(t[p])})}}}function cs(e,t,r){void 0===r&&(r=!1);var n=[];return ls(e,t,n,"",r),n}var us=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",unobserve:as,observe:is,generate:ss,compare:cs}),ps=Object.assign({},ts,us,{JsonPatchError:Mi,deepClone:Ri,escapePathComponent:Li,unescapePathComponent:qi}),ds=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:ps,JsonPatchError:Mi,deepClone:Ri,escapePathComponent:Li,unescapePathComponent:qi,getValueByPointer:Ki,applyOperation:Gi,applyPatch:Ji,applyReducer:Zi,validator:Xi,validate:Qi,_areEquals:es,unobserve:as,observe:is,generate:ss,compare:cs}),hs=ye((function(e){function t(e){return e instanceof ge||e instanceof Date||e instanceof RegExp}function r(e){if(e instanceof ge){var t=ge.alloc?ge.alloc(e.length):new ge(e.length);return e.copy(t),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);throw new Error("Unexpected situation")}function n(e){var o=[];return e.forEach((function(e,i){"object"==typeof e&&null!==e?Array.isArray(e)?o[i]=n(e):t(e)?o[i]=r(e):o[i]=a({},e):o[i]=e})),o}function o(e,t){return"__proto__"===t?void 0:e[t]}var a=e.exports=function(){if(arguments.length<1||"object"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var e,i,s=arguments[0],l=Array.prototype.slice.call(arguments,1);return l.forEach((function(l){"object"!=typeof l||null===l||Array.isArray(l)||Object.keys(l).forEach((function(c){return i=o(s,c),(e=o(l,c))===s?void 0:"object"!=typeof e||null===e?void(s[c]=e):Array.isArray(e)?void(s[c]=n(e)):t(e)?void(s[c]=r(e)):"object"!=typeof i||null===i||Array.isArray(i)?void(s[c]=a({},e)):void(s[c]=a(i,e))}))})),s}})),fs=Object.prototype.hasOwnProperty,ms=function(e){if(!je(e))return function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}(e);var t=ut(e),r=[];for(var n in e)("constructor"!=n||!t&&fs.call(e,n))&&r.push(n);return r},gs=function(e){return it(e)?St(e,!0):ms(e)},ys=ye((function(e,t){var r=t&&!t.nodeType&&t,n=r&&e&&!e.nodeType&&e,o=n&&n.exports===r?ke.Buffer:void 0,a=o?o.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var r=e.length,n=a?a(r):new e.constructor(r);return e.copy(n),n}})),bs=Dt(Object.getPrototypeOf,Object),vs=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)ba(t,ii(e)),e=bs(e);return t}:ni,xs=function(e){return ri(e,gs,vs)},ws=Object.prototype.hasOwnProperty,ks=function(e){var t=new e.constructor(e.byteLength);return new Za(t).set(new Za(e)),t},As=/\w*$/,$s=Ae?Ae.prototype:void 0,Es=$s?$s.valueOf:void 0,Ss=function(e,t,r){var n=e.constructor;switch(t){case"[object ArrayBuffer]":return ks(e);case"[object Boolean]":case"[object Date]":return new n(+e);case"[object DataView]":return function(e,t){var r=t?ks(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(e,t){var r=t?ks(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}(e,r);case"[object Map]":return new n;case"[object Number]":case"[object String]":return new n(e);case"[object RegExp]":return function(e){var t=new e.constructor(e.source,As.exec(e));return t.lastIndex=e.lastIndex,t}(e);case"[object Set]":return new n;case"[object Symbol]":return function(e){return Es?Object(Es.call(e)):{}}(e)}},Ds=Object.create,Os=function(){function e(){}return function(t){if(!je(t))return{};if(Ds)return Ds(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}(),Cs=kt&&kt.isMap,_s=Cs?wt(Cs):function(e){return pt(e)&&"[object Map]"==xi(e)},js=kt&&kt.isSet,Ts=js?wt(js):function(e){return pt(e)&&"[object Set]"==xi(e)},Fs={};Fs["[object Arguments]"]=Fs["[object Array]"]=Fs["[object ArrayBuffer]"]=Fs["[object DataView]"]=Fs["[object Boolean]"]=Fs["[object Date]"]=Fs["[object Float32Array]"]=Fs["[object Float64Array]"]=Fs["[object Int8Array]"]=Fs["[object Int16Array]"]=Fs["[object Int32Array]"]=Fs["[object Map]"]=Fs["[object Number]"]=Fs["[object Object]"]=Fs["[object RegExp]"]=Fs["[object Set]"]=Fs["[object String]"]=Fs["[object Symbol]"]=Fs["[object Uint8Array]"]=Fs["[object Uint8ClampedArray]"]=Fs["[object Uint16Array]"]=Fs["[object Uint32Array]"]=!0,Fs["[object Error]"]=Fs["[object Function]"]=Fs["[object WeakMap]"]=!1;var Ps=function e(t,r,n,o,a,i){var s,l=1&r,c=2&r,u=4&r;if(n&&(s=a?n(t,o,a,i):n(t)),void 0!==s)return s;if(!je(t))return t;var p=yt(t);if(p){if(s=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&ws.call(e,"index")&&(r.index=e.index,r.input=e.input),r}(t),!l)return function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}(t,s)}else{var d=xi(t),h="[object Function]"==d||"[object GeneratorFunction]"==d;if(vt(t))return ys(t,l);if("[object Object]"==d||"[object Arguments]"==d||h&&!a){if(s=c||h?{}:function(e){return"function"!=typeof e.constructor||ut(e)?{}:Os(bs(e))}(t),!l)return c?function(e,t){return Je(e,vs(e),t)}(t,function(e,t){return e&&Je(t,gs(t),e)}(s,t)):function(e,t){return Je(e,ii(e),t)}(t,function(e,t){return e&&Je(t,jt(t),e)}(s,t))}else{if(!Fs[d])return a?t:{};s=Ss(t,d,l)}}i||(i=new Va);var f=i.get(t);if(f)return f;i.set(t,s),Ts(t)?t.forEach((function(o){s.add(e(o,r,n,o,t,i))})):_s(t)&&t.forEach((function(o,a){s.set(a,e(o,r,n,a,t,i))}));var m=p?void 0:(u?c?xs:si:c?gs:jt)(t);return function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););}(m||t,(function(o,a){m&&(o=t[a=o]),Ge(s,a,e(o,r,n,a,t,i))})),s},Bs=function(e){return Ps(e,5)},Is=function(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t}(ds),Rs=ye((function(e,t){t.__esModule=!0,t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(Is),n=a(hs),o=a(Bs);function a(e){return e&&e.__esModule?e:{default:e}}function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var u={add:function(e,t){return{op:"add",path:e,value:t}},replace:d,remove:function(e){return{op:"remove",path:e}},merge:function(e,t){return{type:"mutation",op:"merge",path:e,value:t}},mergeDeep:function(e,t){return{type:"mutation",op:"mergeDeep",path:e,value:t}},context:function(e,t){return{type:"context",path:e,value:t}},getIn:function(e,t){return t.reduce(((e,t)=>void 0!==t&&e?e[t]:e),e)},applyPatch:function(e,t,a){if(a=a||{},"merge"===(t=l(l({},t),{},{path:t.path&&p(t.path)})).op){const n=E(e,t.path);Object.assign(n,t.value),r.applyPatch(e,[d(t.path,n)])}else if("mergeDeep"===t.op){const r=E(e,t.path);for(const e in t.value){const a=t.value[e],i=Array.isArray(a);if(i){const t=r[e]||[];r[e]=t.concat(a)}else if(v(a)&&!i){let t=l({},r[e]);for(const e in a){if(Object.prototype.hasOwnProperty.call(t,e)){t=(0,n.default)((0,o.default)(t),a);break}Object.assign(t,{[e]:a[e]})}r[e]=t}else r[e]=a}}else if("add"===t.op&&""===t.path&&v(t.value)){const n=Object.keys(t.value).reduce(((e,r)=>(e.push({op:"add",path:`/${p(r)}`,value:t.value[r]}),e)),[]);r.applyPatch(e,n)}else if("replace"===t.op&&""===t.path){let{value:r}=t;a.allowMetaPatches&&t.meta&&A(t)&&(Array.isArray(t.value)||v(t.value))&&(r=l(l({},r),t.meta)),e=r}else if(r.applyPatch(e,[t]),a.allowMetaPatches&&t.meta&&A(t)&&(Array.isArray(t.value)||v(t.value))){const n=l(l({},E(e,t.path)),t.meta);r.applyPatch(e,[d(t.path,n)])}return e},parentPathMatch:function(e,t){if(!Array.isArray(t))return!1;for(let r=0,n=t.length;r<n;r+=1)if(t[r]!==e[r])return!1;return!0},flatten:y,fullyNormalizeArray:function(e){return b(y(g(e)))},normalizeArray:g,isPromise:function(e){return v(e)&&x(e.then)},forEachNew:function(e,t){try{return h(e,m,t)}catch(e){return e}},forEachNewPrimitive:function(e,t){try{return h(e,f,t)}catch(e){return e}},isJsonPatch:w,isContextPatch:function(e){return $(e)&&"context"===e.type},isPatch:$,isMutation:k,isAdditiveMutation:A,isGenerator:function(e){return"[object GeneratorFunction]"===Object.prototype.toString.call(e)},isFunction:x,isObject:v,isError:function(e){return e instanceof Error}};function p(e){return Array.isArray(e)?e.length<1?"":`/${e.map((e=>(e+"").replace(/~/g,"~0").replace(/\//g,"~1"))).join("/")}`:e}function d(e,t,r){return{op:"replace",path:e,value:t,meta:r}}function h(e,t,r){return b(y(e.filter(A).map((e=>t(e.value,r,e.path)))||[]))}function f(e,t,r){return r=r||[],Array.isArray(e)?e.map(((e,n)=>f(e,t,r.concat(n)))):v(e)?Object.keys(e).map((n=>f(e[n],t,r.concat(n)))):t(e,r[r.length-1],r)}function m(e,t,r){let n=[];if((r=r||[]).length>0){const o=t(e,r[r.length-1],r);o&&(n=n.concat(o))}if(Array.isArray(e)){const o=e.map(((e,n)=>m(e,t,r.concat(n))));o&&(n=n.concat(o))}else if(v(e)){const o=Object.keys(e).map((n=>m(e[n],t,r.concat(n))));o&&(n=n.concat(o))}return n=y(n),n}function g(e){return Array.isArray(e)?e:[e]}function y(e){return[].concat(...e.map((e=>Array.isArray(e)?y(e):e)))}function b(e){return e.filter((e=>void 0!==e))}function v(e){return e&&"object"==typeof e}function x(e){return e&&"function"==typeof e}function w(e){if($(e)){const{op:t}=e;return"add"===t||"remove"===t||"replace"===t}return!1}function k(e){return w(e)||$(e)&&"mutation"===e.type}function A(e){return k(e)&&("add"===e.op||"replace"===e.op||"merge"===e.op||"mergeDeep"===e.op)}function $(e){return e&&"object"==typeof e}function E(e,t){try{return r.getValueByPointer(e,t)}catch(e){return console.error(e),{}}}t.default=u})),Ns=ye((function(e,t){var r=function(e){function t(){this.fetch=!1,this.DOMException=e.DOMException}return t.prototype=e,new t}("undefined"!=typeof self?self:this);!function(e){!function(t){var r="URLSearchParams"in e,n="Symbol"in e&&"iterator"in Symbol,o="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),a="FormData"in e,i="ArrayBuffer"in e;if(i)var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],l=ArrayBuffer.isView||function(e){return e&&s.indexOf(Object.prototype.toString.call(e))>-1};function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function u(e){return"string"!=typeof e&&(e=String(e)),e}function p(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return n&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function h(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function f(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function m(e){var t=new FileReader,r=f(t);return t.readAsArrayBuffer(e),r}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:o&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:a&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():i&&o&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):i&&(ArrayBuffer.prototype.isPrototypeOf(e)||l(e))?this._bodyArrayBuffer=g(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var e=h(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,r,n=h(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,r=f(t=new FileReader),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a&&(this.formData=function(){return this.text().then(x)}),this.json=function(){return this.text().then(JSON.parse)},this}d.prototype.append=function(e,t){e=c(e),t=u(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},d.prototype.delete=function(e){delete this.map[c(e)]},d.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},d.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},d.prototype.set=function(e,t){this.map[c(e)]=u(t)},d.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},d.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),p(e)},d.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),p(e)},d.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),p(e)},n&&(d.prototype[Symbol.iterator]=d.prototype.entries);var b=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function v(e,t){var r,n,o=(t=t||{}).body;if(e instanceof v){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new d(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,o||null==e._bodyInit||(o=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new d(t.headers)),this.method=(n=(r=t.method||this.method||"GET").toUpperCase(),b.indexOf(n)>-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function x(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(o))}})),t}function w(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}v.prototype.clone=function(){return new v(this,{body:this._bodyInit})},y.call(v.prototype),y.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},w.error=function(){var e=new w(null,{status:0,statusText:""});return e.type="error",e};var k=[301,302,303,307,308];w.redirect=function(e,t){if(-1===k.indexOf(t))throw new RangeError("Invalid status code");return new w(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function A(e,r){return new Promise((function(n,a){var i=new v(e,r);if(i.signal&&i.signal.aborted)return a(new t.DOMException("Aborted","AbortError"));var s=new XMLHttpRequest;function l(){s.abort()}s.onload=function(){var e,t,r={status:s.status,statusText:s.statusText,headers:(e=s.getAllResponseHeaders()||"",t=new d,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();t.append(n,o)}})),t)};r.url="responseURL"in s?s.responseURL:r.headers.get("X-Request-URL");var o="response"in s?s.response:s.responseText;n(new w(o,r))},s.onerror=function(){a(new TypeError("Network request failed"))},s.ontimeout=function(){a(new TypeError("Network request failed"))},s.onabort=function(){a(new t.DOMException("Aborted","AbortError"))},s.open(i.method,i.url,!0),"include"===i.credentials?s.withCredentials=!0:"omit"===i.credentials&&(s.withCredentials=!1),"responseType"in s&&o&&(s.responseType="blob"),i.headers.forEach((function(e,t){s.setRequestHeader(t,e)})),i.signal&&(i.signal.addEventListener("abort",l),s.onreadystatechange=function(){4===s.readyState&&i.signal.removeEventListener("abort",l)}),s.send(void 0===i._bodyInit?null:i._bodyInit)}))}A.polyfill=!0,e.fetch||(e.fetch=A,e.Headers=d,e.Request=v,e.Response=w),t.Headers=d,t.Request=v,t.Response=w,t.fetch=A}({})}(r),delete r.fetch.polyfill,(t=r.fetch).default=r.fetch,t.fetch=r.fetch,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,e.exports=t})),Ls=ye((function(e,t){var r=t,n=Ia.Buffer;function o(e,t){try{return decodeURIComponent(e)}catch(n){return r.unescapeBuffer(e,t).toString()}}r.unescapeBuffer=function(e,t){for(var r,o,a,i=new n(e.length),s=0,l=0,c=0;l<=e.length;l++){var u=l<e.length?e.charCodeAt(l):NaN;switch(s){case 0:switch(u){case 37:r=0,o=0,s=1;break;case 43:t&&(u=32);default:i[c++]=u}break;case 1:if(a=u,u>=48&&u<=57)r=u-48;else if(u>=65&&u<=70)r=u-65+10;else{if(!(u>=97&&u<=102)){i[c++]=37,i[c++]=u,s=0;break}r=u-97+10}s=2;break;case 2:if(s=0,u>=48&&u<=57)o=u-48;else if(u>=65&&u<=70)o=u-65+10;else{if(!(u>=97&&u<=102)){i[c++]=37,i[c++]=a,i[c++]=u;break}o=u-97+10}i[c++]=16*r+o}}return i.slice(0,c-1)},r.unescape=o;for(var a=new Array(256),i=0;i<256;++i)a[i]="%"+((i<16?"0":"")+i.toString(16)).toUpperCase();r.escape=function(e){"string"!=typeof e&&(e+="");for(var t="",r=0,n=0;n<e.length;++n){var o=e.charCodeAt(n);if(!(33===o||45===o||46===o||95===o||126===o||o>=39&&o<=42||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122))if(n-r>0&&(t+=e.slice(r,n)),o<128)r=n+1,t+=a[o];else if(o<2048)r=n+1,t+=a[192|o>>6]+a[128|63&o];else if(o<55296||o>=57344)r=n+1,t+=a[224|o>>12]+a[128|o>>6&63]+a[128|63&o];else{var i;if(!(++n<e.length))throw new URIError("URI malformed");i=1023&e.charCodeAt(n),r=n+1,t+=a[240|(o=65536+((1023&o)<<10|i))>>18]+a[128|o>>12&63]+a[128|o>>6&63]+a[128|63&o]}}return 0===r?e:r<e.length?t+e.slice(r):t};var s=function(e){return"string"==typeof e?e:"number"==typeof e&&isFinite(e)?""+e:"boolean"==typeof e?e?"true":"false":""};function l(e,t){try{return t(e)}catch(t){return r.unescape(e,!0)}}r.stringify=r.encode=function(e,t,n,o){t=t||"&",n=n||"=";var a=r.escape;if(o&&"function"==typeof o.encodeURIComponent&&(a=o.encodeURIComponent),null!==e&&"object"==typeof e){for(var i=Object.keys(e),l=i.length,c=l-1,u="",p=0;p<l;++p){var d=i[p],h=e[d],f=a(s(d))+n;if(Array.isArray(h)){for(var m=h.length,g=m-1,y=0;y<m;++y)u+=f+a(s(h[y])),y<g&&(u+=t);m&&p<c&&(u+=t)}else u+=f+a(s(h)),p<c&&(u+=t)}return u}return""},r.parse=r.decode=function(e,t,n,a){t=t||"&",n=n||"=";var i={};if("string"!=typeof e||0===e.length)return i;"string"!=typeof t&&(t+="");var s=n.length,c=t.length,u=1e3;a&&"number"==typeof a.maxKeys&&(u=a.maxKeys);var p=1/0;u>0&&(p=u);var d=r.unescape;a&&"function"==typeof a.decodeURIComponent&&(d=a.decodeURIComponent);for(var h=d!==o,f=[],m=0,g=0,y=0,b="",v="",x=h,w=h,k=0,A=0;A<e.length;++A){var $=e.charCodeAt(A);if($!==t.charCodeAt(g)){if(g=0,w||(37===$?k=1:k>0&&($>=48&&$<=57||$>=65&&$<=70||$>=97&&$<=102)?3==++k&&(w=!0):k=0),y<s){if($===n.charCodeAt(y)){++y===s&&(m<(S=A-y+1)&&(b+=e.slice(m,S)),k=0,m=A+1);continue}y=0,x||(37===$?k=1:k>0&&($>=48&&$<=57||$>=65&&$<=70||$>=97&&$<=102)?3==++k&&(x=!0):k=0)}43===$&&(y<s?(A-m>0&&(b+=e.slice(m,A)),b+="%20",x=!0):(A-m>0&&(v+=e.slice(m,A)),v+="%20",w=!0),m=A+1)}else if(++g===c){var E,S=A-g+1;if(y<s?m<S&&(b+=e.slice(m,S)):m<S&&(v+=e.slice(m,S)),x&&(b=l(b,d)),w&&(v=l(v,d)),-1===f.indexOf(b)?(i[b]=v,f[f.length]=b):(E=i[b])instanceof Array?E[E.length]=v:i[b]=[E,v],0==--p)break;x=w=h,k=0,b=v="",m=A+1,g=y=0}}return p>0&&(m<e.length||y>0)&&(m<e.length&&(y<s?b+=e.slice(m):g<c&&(v+=e.slice(m))),x&&(b=l(b,d)),w&&(v=l(v,d)),-1===f.indexOf(b)?(i[b]=v,f[f.length]=b):(E=i[b])instanceof Array?E[E.length]=v:i[b]=[E,v]),i}})),qs=Object.defineProperty({default:function(e,t){function r(...e){Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,[this.message]=e,t&&t.apply(this,e)}return r.prototype=new Error,r.prototype.name=e,r.prototype.constructor=r,r}},"__esModule",{value:!0}),zs=Js,Us=Vs(ye((function(e){var t=e.exports=function(e){return new r(e)};function r(e){this.value=e}function n(e,t,r){var n=[],i=[],u=!0;return function e(p){var d=r?o(p):p,h={},f=!0,m={node:d,node_:p,path:[].concat(n),parent:i[i.length-1],parents:i,key:n.slice(-1)[0],isRoot:0===n.length,level:n.length,circular:null,update:function(e,t){m.isRoot||(m.parent.node[m.key]=e),m.node=e,t&&(f=!1)},delete:function(e){delete m.parent.node[m.key],e&&(f=!1)},remove:function(e){s(m.parent.node)?m.parent.node.splice(m.key,1):delete m.parent.node[m.key],e&&(f=!1)},keys:null,before:function(e){h.before=e},after:function(e){h.after=e},pre:function(e){h.pre=e},post:function(e){h.post=e},stop:function(){u=!1},block:function(){f=!1}};if(!u)return m;function g(){if("object"==typeof m.node&&null!==m.node){m.keys&&m.node_===m.node||(m.keys=a(m.node)),m.isLeaf=0==m.keys.length;for(var e=0;e<i.length;e++)if(i[e].node_===p){m.circular=i[e];break}}else m.isLeaf=!0,m.keys=null;m.notLeaf=!m.isLeaf,m.notRoot=!m.isRoot}g();var y=t.call(m,m.node);return void 0!==y&&m.update&&m.update(y),h.before&&h.before.call(m,m.node),f?("object"!=typeof m.node||null===m.node||m.circular||(i.push(m),g(),l(m.keys,(function(t,o){n.push(t),h.pre&&h.pre.call(m,m.node[t],t);var a=e(m.node[t]);r&&c.call(m.node,t)&&(m.node[t]=a.node),a.isLast=o==m.keys.length-1,a.isFirst=0==o,h.post&&h.post.call(m,a),n.pop()})),i.pop()),h.after&&h.after.call(m,m.node),m):m}(e).node}function o(e){if("object"==typeof e&&null!==e){var t;if(s(e))t=[];else if("[object Date]"===i(e))t=new Date(e.getTime?e.getTime():e);else if(function(e){return"[object RegExp]"===i(e)}(e))t=new RegExp(e);else if(function(e){return"[object Error]"===i(e)}(e))t={message:e.message};else if(function(e){return"[object Boolean]"===i(e)}(e))t=new Boolean(e);else if(function(e){return"[object Number]"===i(e)}(e))t=new Number(e);else if(function(e){return"[object String]"===i(e)}(e))t=new String(e);else if(Object.create&&Object.getPrototypeOf)t=Object.create(Object.getPrototypeOf(e));else if(e.constructor===Object)t={};else{var r=e.constructor&&e.constructor.prototype||e.__proto__||{},n=function(){};n.prototype=r,t=new n}return l(a(e),(function(r){t[r]=e[r]})),t}return e}r.prototype.get=function(e){for(var t=this.value,r=0;r<e.length;r++){var n=e[r];if(!t||!c.call(t,n)){t=void 0;break}t=t[n]}return t},r.prototype.has=function(e){for(var t=this.value,r=0;r<e.length;r++){var n=e[r];if(!t||!c.call(t,n))return!1;t=t[n]}return!0},r.prototype.set=function(e,t){for(var r=this.value,n=0;n<e.length-1;n++){var o=e[n];c.call(r,o)||(r[o]={}),r=r[o]}return r[e[n]]=t,t},r.prototype.map=function(e){return n(this.value,e,!0)},r.prototype.forEach=function(e){return this.value=n(this.value,e,!1),this.value},r.prototype.reduce=function(e,t){var r=1===arguments.length,n=r?this.value:t;return this.forEach((function(t){this.isRoot&&r||(n=e.call(this,n,t))})),n},r.prototype.paths=function(){var e=[];return this.forEach((function(t){e.push(this.path)})),e},r.prototype.nodes=function(){var e=[];return this.forEach((function(t){e.push(this.node)})),e},r.prototype.clone=function(){var e=[],t=[];return function r(n){for(var i=0;i<e.length;i++)if(e[i]===n)return t[i];if("object"==typeof n&&null!==n){var s=o(n);return e.push(n),t.push(s),l(a(n),(function(e){s[e]=r(n[e])})),e.pop(),t.pop(),s}return n}(this.value)};var a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};function i(e){return Object.prototype.toString.call(e)}var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},l=function(e,t){if(e.forEach)return e.forEach(t);for(var r=0;r<e.length;r++)t(e[r],r,e)};l(a(r.prototype),(function(e){t[e]=function(t){var n=[].slice.call(arguments,1),o=new r(t);return o[e].apply(o,n)}}));var c=Object.hasOwnProperty||function(e,t){return t in e}}))),Ms=Vs(wr),Hs=Vs((function(e){return"string"==typeof e||!yt(e)&&pt(e)&&"[object String]"==_e(e)}));function Vs(e){return e&&e.__esModule?e:{default:e}}const Ws=["properties"],Ys=["properties"],Ks=["definitions","parameters","responses","securityDefinitions","components/schemas","components/responses","components/parameters","components/securitySchemes"],Gs=["schema/example","items/example"];function Js(e,t){const[r,n]=e.split("#"),o=Ms.default.resolve(r||"",t||"");return n?`${o}#${n}`:o}var Zs=Object.defineProperty({isFreelyNamed:function(e){const t=e[e.length-1],r=e[e.length-2],n=e.join("/");return Ws.indexOf(t)>-1&&-1===Ys.indexOf(r)||Ks.indexOf(n)>-1||Gs.some((e=>n.indexOf(e)>-1))},generateAbsoluteRefPatches:function(e,t,{specmap:r,getBaseUrlForNodePath:n=(e=>r.getContext([...t,...e]).baseDoc),targetKeys:o=["$ref","$$ref"]}={}){const a=[];return(0,Us.default)(e).forEach((function(){if(o.includes(this.key)&&(0,Hs.default)(this.node)){const e=this.path,o=t.concat(this.path),i=Js(this.node,n(e));a.push(r.replace(o,i))}})),a},absolutifyPointer:zs},"__esModule",{value:!0}),Xs=ye((function(e,t){t.__esModule=!0,t.ACCEPT_HEADER_VALUE_FOR_DOCUMENTS=void 0,t.ACCEPT_HEADER_VALUE_FOR_DOCUMENTS="application/json, application/yaml"})),Qs=ye((function(e,t){t.__esModule=!0,t.default=void 0;var r=s(Mo),n=s(Ls),o=s(wr),a=s(Rs),i=s(qs);function s(e){return e&&e.__esModule?e:{default:e}}const l=new RegExp("^([a-z]+://|//)","i"),c=(0,i.default)("JSONRefError",(function(e,t,r){this.originalError=r,Object.assign(this,t||{})})),u={},p=new WeakMap,d=[e=>"paths"===e[0]&&"responses"===e[3]&&"examples"===e[5],e=>"paths"===e[0]&&"responses"===e[3]&&"content"===e[5]&&"example"===e[7],e=>"paths"===e[0]&&"responses"===e[3]&&"content"===e[5]&&"examples"===e[7]&&"value"===e[9],e=>"paths"===e[0]&&"requestBody"===e[3]&&"content"===e[4]&&"example"===e[6],e=>"paths"===e[0]&&"requestBody"===e[3]&&"content"===e[4]&&"examples"===e[6]&&"value"===e[8],e=>"paths"===e[0]&&"parameters"===e[2]&&"example"===e[4],e=>"paths"===e[0]&&"parameters"===e[3]&&"example"===e[5],e=>"paths"===e[0]&&"parameters"===e[2]&&"examples"===e[4]&&"value"===e[6],e=>"paths"===e[0]&&"parameters"===e[3]&&"examples"===e[5]&&"value"===e[7],e=>"paths"===e[0]&&"parameters"===e[2]&&"content"===e[4]&&"example"===e[6],e=>"paths"===e[0]&&"parameters"===e[2]&&"content"===e[4]&&"examples"===e[6]&&"value"===e[8],e=>"paths"===e[0]&&"parameters"===e[3]&&"content"===e[4]&&"example"===e[7],e=>"paths"===e[0]&&"parameters"===e[3]&&"content"===e[5]&&"examples"===e[7]&&"value"===e[9]],h={key:"$ref",plugin:(e,t,r,n)=>{const o=n.getInstance(),i=r.slice(0,-1);if((0,Zs.isFreelyNamed)(i)||(s=i,d.some((e=>e(s)))))return;var s;const{baseDoc:l}=n.getContext(r);if("string"!=typeof e)return new c("$ref: must be a string (JSON-Ref)",{$ref:e,baseDoc:l,fullPath:r});const u=b(e),h=u[0],f=u[1]||"";let m,x,w;try{m=l||h?g(h,l):null}catch(t){return y(t,{pointer:f,$ref:e,basePath:m,fullPath:r})}if(function(e,t,r,n){let o=p.get(n);o||(o={},p.set(n,o));const a=function(e){return 0===e.length?"":`/${e.map($).join("/")}`}(r),i=`${t||"<specmap-base>"}#${e}`,s=a.replace(/allOf\/\d+\/?/g,"");if(t==n.contextTree.get([]).baseDoc&&E(s,e))return!0;let l="";if(r.some((e=>(l=`${l}/${$(e)}`,o[l]&&o[l].some((e=>E(e,i)||E(i,e)))))))return!0;o[s]=(o[s]||[]).concat(i)}(f,m,i,n)&&!o.useCircularStructures){const t=(0,Zs.absolutifyPointer)(e,m);return e===t?null:a.default.replace(r,t)}if(null==m?(w=k(f),x=n.get(w),void 0===x&&(x=new c(`Could not resolve reference: ${e}`,{pointer:f,$ref:e,baseDoc:l,fullPath:r}))):(x=v(m,f),x=null!=x.__value?x.__value:x.catch((t=>{throw y(t,{pointer:f,$ref:e,baseDoc:l,fullPath:r})}))),x instanceof Error)return[a.default.remove(r),x];const A=(0,Zs.absolutifyPointer)(e,m),S=a.default.replace(i,x,{$$ref:A});if(m&&m!==l)return[S,a.default.context(i,{baseDoc:m})];try{if(!function(e,t){const r=[e];return t.path.reduce(((e,t)=>(r.push(e[t]),e[t])),e),function e(t){return a.default.isObject(t)&&(r.indexOf(t)>=0||Object.keys(t).some((r=>e(t[r]))))}(t.value)}(n.state,S)||o.useCircularStructures)return S}catch(e){return null}}},f=Object.assign(h,{docCache:u,absoluteify:g,clearCache:function(e){void 0!==e?delete u[e]:Object.keys(u).forEach((e=>{delete u[e]}))},JSONRefError:c,wrapError:y,getDoc:x,split:b,extractFromDoc:v,fetchJSON:function(e){return(0,Ns.fetch)(e,{headers:{Accept:Xs.ACCEPT_HEADER_VALUE_FOR_DOCUMENTS},loadSpec:!0}).then((e=>e.text())).then((e=>r.default.safeLoad(e)))},extract:w,jsonPointerToArray:k,unescapeJsonPointerToken:A});var m=f;function g(e,t){if(!l.test(e)){if(!t)throw new c(`Tried to resolve a relative URL, without having a basePath. path: '${e}' basePath: '${t}'`);return o.default.resolve(t,e)}return e}function y(e,t){let r;return r=e&&e.response&&e.response.body?`${e.response.body.code} ${e.response.body.message}`:e.message,new c(`Could not resolve reference: ${r}`,t,e)}function b(e){return(e+"").split("#")}function v(e,t){const r=u[e];if(r&&!a.default.isPromise(r))try{const e=w(t,r);return Object.assign(Promise.resolve(e),{__value:e})}catch(e){return Promise.reject(e)}return x(e).then((e=>w(t,e)))}function x(e){const t=u[e];return t?a.default.isPromise(t)?t:Promise.resolve(t):(u[e]=f.fetchJSON(e).then((t=>(u[e]=t,t))),u[e])}function w(e,t){const r=k(e);if(r.length<1)return t;const n=a.default.getIn(t,r);if(void 0===n)throw new c(`Could not resolve pointer: ${e} does not exist in document`,{pointer:e});return n}function k(e){if("string"!=typeof e)throw new TypeError("Expected a string, got a "+typeof e);return"/"===e[0]&&(e=e.substr(1)),""===e?[]:e.split("/").map(A)}function A(e){return"string"!=typeof e?e:n.default.unescape(e.replace(/~1/g,"/").replace(/~0/g,"~"))}function $(e){return n.default.escape(e.replace(/~/g,"~0").replace(/\//g,"~1"))}function E(e,t){if(!(r=t)||"/"===r||"#"===r)return!0;var r;const n=e.charAt(t.length),o=t.slice(-1);return 0===e.indexOf(t)&&(!n||"/"===n||"#"===n)&&"#"!==o}t.default=m})),el=Object.prototype.hasOwnProperty,tl=function(e){if(null==e)return!0;if(it(e)&&(yt(e)||"string"==typeof e||"function"==typeof e.splice||vt(e)||$t(e)||gt(e)))return!e.length;var t=xi(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(ut(e))return!_t(e).length;for(var r in e)if(el.call(e,r))return!1;return!0},rl=ye((function(e,t){t.__esModule=!0,t.default=void 0;var r,n=(r=tl)&&r.__esModule?r:{default:r};function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i={key:"allOf",plugin:(e,t,r,i,s)=>{if(s.meta&&s.meta.$$ref)return;const l=r.slice(0,-1);if((0,Zs.isFreelyNamed)(l))return;if(!Array.isArray(e)){const e=new TypeError("allOf must be an array");return e.fullPath=r,e}let c=!1,u=s.value;if(l.forEach((e=>{u&&(u=u[e])})),u=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},u),(0,n.default)(u))return;delete u.allOf;const p=[];return p.push(i.replace(l,{})),e.forEach(((e,t)=>{if(!i.isObject(e)){if(c)return null;c=!0;const e=new TypeError("Elements in allOf must be objects");return e.fullPath=r,p.push(e)}p.push(i.mergeDeep(l,e));const n=r.slice(0,-1),o=(0,Zs.generateAbsoluteRefPatches)(e,n,{getBaseUrlForNodePath:e=>i.getContext([...r,t,...e]).baseDoc,specmap:i});p.push(...o)})),p.push(i.mergeDeep(l,u)),u.$$ref||p.push(i.remove([].concat(l,"$$ref"))),p}};t.default=i})),nl=ye((function(e,t){t.__esModule=!0,t.default=void 0;var r,n=(r=Rs)&&r.__esModule?r:{default:r};function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i={key:"parameters",plugin:(e,t,r,i)=>{if(Array.isArray(e)&&e.length){const t=Object.assign([],e),s=r.slice(0,-1),l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},n.default.getIn(i.spec,s));return e.forEach(((e,n)=>{try{t[n].default=i.parameterMacro(l,e)}catch(e){const t=new Error(e);return t.fullPath=r,t}})),n.default.replace(r,t)}return n.default.replace(r,e)}};t.default=i})),ol=ye((function(e,t){t.__esModule=!0,t.default=void 0;var r,n=(r=Rs)&&r.__esModule?r:{default:r};function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i={key:"properties",plugin:(e,t,r,i)=>{const s=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e);for(const t in e)try{s[t].default=i.modelPropertyMacro(s[t])}catch(e){const t=new Error(e);return t.fullPath=r,t}return n.default.replace(r,s)}};t.default=i})),al=ye((function(e,t){function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return i({children:{}},e,t)}function i(e,t,r){return e.value=t||{},e.protoValue=r?n(n({},r.protoValue),e.value):e.value,Object.keys(e.children).forEach((t=>{const r=e.children[t];e.children[t]=i(r,r.value,e)})),e}t.__esModule=!0,t.default=void 0,t.default=class{constructor(e){this.root=a(e||{})}set(e,t){const r=this.getParent(e,!0);if(!r)return void i(this.root,t,null);const n=e[e.length-1],{children:o}=r;o[n]?i(o[n],t,r):o[n]=a(t,r)}get(e){if((e=e||[]).length<1)return this.root.value;let t,r,n=this.root;for(let o=0;o<e.length&&(r=e[o],t=n.children,t[r]);o+=1)n=t[r];return n&&n.protoValue}getParent(e,t){return!e||e.length<1?null:e.length<2?this.root:e.slice(0,-1).reduce(((e,r)=>{if(!e)return e;const{children:n}=e;return!n[r]&&t&&(n[r]=a(null,e)),n[r]}),this.root)}}})),il=ye((function(e,t){t.__esModule=!0,t.default=function(e){return new f(e).dispatch()},t.plugins=t.SpecMap=void 0;var r=u(ji),n=u(Ti),o=u(Rs),a=u(Qs),i=u(rl),s=u(nl),l=u(ol),c=u(al);function u(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class f{static getPluginName(e){return e.pluginName}static getPatchesOfType(e,t){return e.filter(t)}constructor(e){Object.assign(this,{spec:"",debugLevel:"info",plugins:[],pluginHistory:{},errors:[],mutations:[],promisedPatches:[],state:{},patches:[],context:{},contextTree:new c.default,showDebug:!1,allPatches:[],pluginProp:"specMap",libMethods:Object.assign(Object.create(this),o.default,{getInstance:()=>this}),allowMetaPatches:!1},e),this.get=this._get.bind(this),this.getContext=this._getContext.bind(this),this.hasRun=this._hasRun.bind(this),this.wrappedPlugins=this.plugins.map(this.wrapPlugin.bind(this)).filter(o.default.isFunction),this.patches.push(o.default.add([],this.spec)),this.patches.push(o.default.context([],this.context)),this.updatePatches(this.patches)}debug(e,...t){this.debugLevel===e&&console.log(...t)}verbose(e,...t){"verbose"===this.debugLevel&&console.log(`[${e}] `,...t)}wrapPlugin(e,t){const{pathDiscriminator:r}=this;let n,a=null;return e[this.pluginProp]?(a=e,n=e[this.pluginProp]):o.default.isFunction(e)?n=e:o.default.isObject(e)&&(n=function(e){const t=(e,t)=>!Array.isArray(e)||e.every(((e,r)=>e===t[r]));return function*(n,a){const i={};for(const e of n.filter(o.default.isAdditiveMutation))yield*s(e.value,e.path,e);function*s(n,l,c){if(o.default.isObject(n)){const u=l.length-1,p=l[u],d=l.indexOf("properties"),h="properties"===p&&u===d,f=a.allowMetaPatches&&i[n.$$ref];for(const u of Object.keys(n)){const p=n[u],d=l.concat(u),m=o.default.isObject(p),g=n.$$ref;if(f||m&&(a.allowMetaPatches&&g&&(i[g]=!0),yield*s(p,d,c)),!h&&u===e.key){const n=t(r,l);r&&!n||(yield e.plugin(p,u,d,a,c))}}}else e.key===l[l.length-1]&&(yield e.plugin(n,e.key,l,a))}}}(e)),Object.assign(n.bind(a),{pluginName:e.name||t,isGenerator:o.default.isGenerator(n)})}nextPlugin(){return(0,r.default)(this.wrappedPlugins,(e=>this.getMutationsForPlugin(e).length>0))}nextPromisedPatch(){if(this.promisedPatches.length>0)return Promise.race(this.promisedPatches.map((e=>e.value)))}getPluginHistory(e){const t=this.constructor.getPluginName(e);return this.pluginHistory[t]||[]}getPluginRunCount(e){return this.getPluginHistory(e).length}getPluginHistoryTip(e){const t=this.getPluginHistory(e);return t&&t[t.length-1]||{}}getPluginMutationIndex(e){const t=this.getPluginHistoryTip(e).mutationIndex;return"number"!=typeof t?-1:t}updatePluginHistory(e,t){const r=this.constructor.getPluginName(e);this.pluginHistory[r]=this.pluginHistory[r]||[],this.pluginHistory[r].push(t)}updatePatches(e){o.default.normalizeArray(e).forEach((e=>{if(e instanceof Error)this.errors.push(e);else try{if(!o.default.isObject(e))return void this.debug("updatePatches","Got a non-object patch",e);if(this.showDebug&&this.allPatches.push(e),o.default.isPromise(e.value))return this.promisedPatches.push(e),void this.promisedPatchThen(e);if(o.default.isContextPatch(e))return void this.setContext(e.path,e.value);if(o.default.isMutation(e))return void this.updateMutations(e)}catch(e){console.error(e),this.errors.push(e)}}))}updateMutations(e){"object"==typeof e.value&&!Array.isArray(e.value)&&this.allowMetaPatches&&(e.value=d({},e.value));const t=o.default.applyPatch(this.state,e,{allowMetaPatches:this.allowMetaPatches});t&&(this.mutations.push(e),this.state=t)}removePromisedPatch(e){const t=this.promisedPatches.indexOf(e);t<0?this.debug("Tried to remove a promisedPatch that isn't there!"):this.promisedPatches.splice(t,1)}promisedPatchThen(e){return e.value=e.value.then((t=>{const r=d(d({},e),{},{value:t});this.removePromisedPatch(e),this.updatePatches(r)})).catch((t=>{this.removePromisedPatch(e),this.updatePatches(t)})),e.value}getMutations(e,t){return e=e||0,"number"!=typeof t&&(t=this.mutations.length),this.mutations.slice(e,t)}getCurrentMutations(){return this.getMutationsForPlugin(this.getCurrentPlugin())}getMutationsForPlugin(e){const t=this.getPluginMutationIndex(e);return this.getMutations(t+1)}getCurrentPlugin(){return this.currentPlugin}getLib(){return this.libMethods}_get(e){return o.default.getIn(this.state,e)}_getContext(e){return this.contextTree.get(e)}setContext(e,t){return this.contextTree.set(e,t)}_hasRun(e){return this.getPluginRunCount(this.getCurrentPlugin())>(e||0)}dispatch(){const e=this,t=this.nextPlugin();if(!t){const e=this.nextPromisedPatch();if(e)return e.then((()=>this.dispatch())).catch((()=>this.dispatch()));const t={spec:this.state,errors:this.errors};return this.showDebug&&(t.patches=this.allPatches),Promise.resolve(t)}if(e.pluginCount=e.pluginCount||{},e.pluginCount[t]=(e.pluginCount[t]||0)+1,e.pluginCount[t]>100)return Promise.resolve({spec:e.state,errors:e.errors.concat(new Error("We've reached a hard limit of 100 plugin runs"))});if(t!==this.currentPlugin&&this.promisedPatches.length){const e=this.promisedPatches.map((e=>e.value));return Promise.all(e.map((e=>e.then(n.default,n.default)))).then((()=>this.dispatch()))}return function(){e.currentPlugin=t;const n=e.getCurrentMutations(),o=e.mutations.length-1;try{if(t.isGenerator)for(const o of t(n,e.getLib()))r(o);else r(t(n,e.getLib()))}catch(e){console.error(e),r([Object.assign(Object.create(e),{plugin:t})])}finally{e.updatePluginHistory(t,{mutationIndex:o})}return e.dispatch()}();function r(r){r&&(r=o.default.fullyNormalizeArray(r),e.updatePatches(r,t))}}}t.SpecMap=f;const m={refs:a.default,allOf:i.default,parameters:s.default,properties:l.default};t.plugins=m})),sl=yl,ll=bl,cl=vl,ul=xl,pl=wl,dl=fl(je),hl=fl(Kt);function fl(e){return e&&e.__esModule?e:{default:e}}const ml=e=>String.prototype.toLowerCase.call(e),gl=e=>e.replace(/[^\w]/gi,"_");function yl(e,t,r="",{v2OperationIdCompatibilityMode:n}={}){return e&&"object"==typeof e?(e.operationId||"").replace(/\s/g,"").length?gl(e.operationId):bl(t,r,{v2OperationIdCompatibilityMode:n}):null}function bl(e,t,{v2OperationIdCompatibilityMode:r}={}){if(r){let r=`${t.toLowerCase()}_${e}`.replace(/[\s!@#$%^&*()_+=[{\]};:<>|./?,\\'""-]/g,"_");return r=r||`${e.substring(1)}_${t}`,r.replace(/((_){2,})/g,"_").replace(/^(_)*/g,"").replace(/([_])*$/g,"")}return`${ml(t)}${gl(e)}`}function vl(e,t){return`${ml(t)}-${e}`}function xl(e,t){return wl(e,t,!0)||null}function wl(e,t,r){if(!e||"object"!=typeof e||!e.paths||"object"!=typeof e.paths)return null;const{paths:n}=e;for(const o in n)for(const a in n[o]){if("PARAMETERS"===a.toUpperCase())continue;const i=n[o][a];if(!i||"object"!=typeof i)continue;const s={spec:e,pathName:o,method:a.toUpperCase(),operation:i},l=t(s);if(r&&l)return s}}var kl,Al=Object.defineProperty({isOAS3:function(e){const t=e.openapi;return!!t&&(0,hl.default)(t,"3")},isSwagger2:function(e){const t=e.swagger;return!!t&&(0,hl.default)(t,"2")},opId:sl,idFromPathMethod:ll,legacyIdFromPathMethod:cl,getOperationRaw:function(e,t){return e&&e.paths?xl(e,(({pathName:e,method:r,operation:n})=>{if(!n||"object"!=typeof n)return!1;const o=n.operationId;return[yl(n,e,r),vl(e,r),o].some((e=>e&&e===t))})):null},findOperation:ul,eachOperation:pl,normalizeSwagger:function(e){const{spec:t}=e,{paths:r}=t,n={};if(!r||t.$$normalized)return e;for(const e in r){const o=r[e];if(!(0,dl.default)(o))continue;const a=o.parameters;for(const r in o){const i=o[r];if(!(0,dl.default)(i))continue;const s=yl(i,e,r);if(s){n[s]?n[s].push(i):n[s]=[i];const e=n[s];if(e.length>1)e.forEach(((e,t)=>{e.__originalOperationId=e.__originalOperationId||e.operationId,e.operationId=`${s}${t+1}`}));else if(void 0!==i.operationId){const t=e[0];t.__originalOperationId=t.__originalOperationId||i.operationId,t.operationId=s}}if("parameters"!==r){const e=[],r={};for(const n in t)"produces"!==n&&"consumes"!==n&&"security"!==n||(r[n]=t[n],e.push(r));if(a&&(r.parameters=a,e.push(r)),e.length)for(const t of e)for(const e in t)if(i[e]){if("parameters"===e)for(const r of t[e])i[e].some((e=>e.name&&e.name===r.name||e.$ref&&e.$ref===r.$ref||e.$$ref&&e.$$ref===r.$$ref||e===r))||i[e].push(r)}else i[e]=t[e]}}}return t.$$normalized=!0,e}},"__esModule",{value:!0}),$l=Ol,El=(kl=Ma)&&kl.__esModule?kl:{default:kl},Sl=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=Dl();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(il);function Dl(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return Dl=function(){return e},e}function Ol(e,t={}){const{requestInterceptor:r,responseInterceptor:n}=t,o=e.withCredentials?"include":"same-origin";return t=>e({url:t,loadSpec:!0,requestInterceptor:r,responseInterceptor:n,headers:{Accept:Xs.ACCEPT_HEADER_VALUE_FOR_DOCUMENTS},credentials:o}).then((e=>e.body))}var Cl=Object.defineProperty({makeFetchJSON:$l,clearCache:function(){Sl.plugins.refs.clearCache()},default:function(e){const{fetch:t,spec:r,url:n,mode:o,allowMetaPatches:a=!0,pathDiscriminator:i,modelPropertyMacro:s,parameterMacro:l,requestInterceptor:c,responseInterceptor:u,skipNormalization:p,useCircularStructures:d}=e;let{http:h,baseDoc:f}=e;return f=f||n,h=t||h||El.default,r?m(r):Ol(h,{requestInterceptor:c,responseInterceptor:u})(f).then(m);function m(e){f&&(Sl.plugins.refs.docCache[f]=e),Sl.plugins.refs.fetchJSON=Ol(h,{requestInterceptor:c,responseInterceptor:u});const t=[Sl.plugins.refs];return"function"==typeof l&&t.push(Sl.plugins.parameters),"function"==typeof s&&t.push(Sl.plugins.properties),"strict"!==o&&t.push(Sl.plugins.allOf),(0,Sl.default)({spec:e,context:{baseDoc:f},plugins:t,allowMetaPatches:a,pathDiscriminator:i,parameterMacro:l,modelPropertyMacro:s,useCircularStructures:d}).then(p?async e=>e:Al.normalizeSwagger)}}},"__esModule",{value:!0}),_l=Tl(Di),jl=Tl(Cl);function Tl(e){return e&&e.__esModule?e:{default:e}}function Fl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pl(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Fl(Object(r),!0).forEach((function(t){Bl(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fl(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Bl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Il=Object.defineProperty({default:async function(e,t,r={}){const{returnEntireTree:n,baseDoc:o,requestInterceptor:a,responseInterceptor:i,parameterMacro:s,modelPropertyMacro:l,useCircularStructures:c}=r,u={pathDiscriminator:t,baseDoc:o,requestInterceptor:a,responseInterceptor:i,parameterMacro:s,modelPropertyMacro:l,useCircularStructures:c},{spec:p}=(0,Al.normalizeSwagger)({spec:e}),d=await(0,jl.default)(Pl(Pl({},u),{},{spec:p,allowMetaPatches:!0,skipNormalization:!0}));return!n&&Array.isArray(t)&&t.length&&(d.spec=(0,_l.default)(d.spec,t)||null),d}},"__esModule",{value:!0}),Rl=ye((function(e,t){t.__esModule=!0,t.makeExecute=l,t.makeApisTagOperationsOperationExecute=function(e={}){const t=s.makeExecute(e),r=s.mapTagOperations({v2OperationIdCompatibilityMode:e.v2OperationIdCompatibilityMode,spec:e.spec,cb:t}),n={};for(const e in r){n[e]={operations:{}};for(const t in r[e])n[e].operations[t]={execute:r[e][t]}}return{apis:n}},t.makeApisTagOperation=function(e={}){const t=s.makeExecute(e);return{apis:s.mapTagOperations({v2OperationIdCompatibilityMode:e.v2OperationIdCompatibilityMode,spec:e.spec,cb:t})}},t.mapTagOperations=c,t.self=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(Aa);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const i=()=>null,s={mapTagOperations:c,makeExecute:l};function l(e={}){return({pathName:t,method:n,operationId:a})=>(i,s={})=>e.execute(o(o({spec:e.spec},(0,r.default)(e,"requestInterceptor","responseInterceptor","userFetch")),{},{pathName:t,method:n,parameters:i,operationId:a},s))}function c({spec:e,cb:t=i,defaultTag:r="default",v2OperationIdCompatibilityMode:n}){const o={},a={};return(0,Al.eachOperation)(e,(({pathName:i,method:s,operation:l})=>{var c;(l.tags?(c=l.tags,Array.isArray(c)?c:[c]):[r]).forEach((r=>{if("string"!=typeof r)return;a[r]=a[r]||{};const c=a[r],u=(0,Al.opId)(l,i,s,{v2OperationIdCompatibilityMode:n}),p=t({spec:e,pathName:i,method:s,operation:l,operationId:u});if(o[u])o[u]+=1,c[`${u}${o[u]}`]=p;else if(void 0!==c[u]){const e=o[u]||1;o[u]=e+1,c[`${u}${o[u]}`]=p;const t=c[u];delete c[u],c[`${u}${e}`]=t}else c[u]=p}))})),a}t.self=s})),Nl=Function.prototype,Ll=Object.prototype,ql=Nl.toString,zl=Ll.hasOwnProperty,Ul=ql.call(Object),Ml=function(e){if(!pt(e)||"[object Object]"!=_e(e))return!1;var t=bs(e);if(null===t)return!0;var r=zl.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&ql.call(r)==Ul},Hl=decodeURIComponent,Vl=encodeURIComponent,Wl=/; */,Yl=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function Kl(e,t){try{return t(e)}catch(t){return e}}var Gl={parse:function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var r={},n=t||{},o=e.split(Wl),a=n.decode||Hl,i=0;i<o.length;i++){var s=o[i],l=s.indexOf("=");if(!(l<0)){var c=s.substr(0,l).trim(),u=s.substr(++l,s.length).trim();'"'==u[0]&&(u=u.slice(1,-1)),null==r[c]&&(r[c]=Kl(u,a))}}return r},serialize:function(e,t,r){var n=r||{},o=n.encode||Vl;if("function"!=typeof o)throw new TypeError("option encode is invalid");if(!Yl.test(e))throw new TypeError("argument name is invalid");var a=o(t);if(a&&!Yl.test(a))throw new TypeError("argument val is invalid");var i=e+"="+a;if(null!=n.maxAge){var s=n.maxAge-0;if(isNaN(s)||!isFinite(s))throw new TypeError("option maxAge is invalid");i+="; Max-Age="+Math.floor(s)}if(n.domain){if(!Yl.test(n.domain))throw new TypeError("option domain is invalid");i+="; Domain="+n.domain}if(n.path){if(!Yl.test(n.path))throw new TypeError("option path is invalid");i+="; Path="+n.path}if(n.expires){if("function"!=typeof n.expires.toUTCString)throw new TypeError("option expires is invalid");i+="; Expires="+n.expires.toUTCString()}if(n.httpOnly&&(i+="; HttpOnly"),n.secure&&(i+="; Secure"),n.sameSite)switch("string"==typeof n.sameSite?n.sameSite.toLowerCase():n.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i}},Jl=ye((function(e,t){t.__esModule=!0,t.default=void 0;var r={body:function({req:e,value:t}){e.body=t},header:function({req:e,parameter:t,value:r}){e.headers=e.headers||{},void 0!==r&&(e.headers[t.name]=r)},query:function({req:e,value:t,parameter:r}){if(e.query=e.query||{},!1===t&&"boolean"===r.type&&(t="false"),0===t&&["number","integer"].indexOf(r.type)>-1&&(t="0"),t)e.query[r.name]={collectionFormat:r.collectionFormat,value:t};else if(r.allowEmptyValue&&void 0!==t){const t=r.name;e.query[t]=e.query[t]||{},e.query[t].allowEmptyValue=!0}},path:function({req:e,value:t,parameter:r}){e.url=e.url.split(`{${r.name}}`).join(encodeURIComponent(t))},formData:function({req:e,value:t,parameter:r}){(t||r.allowEmptyValue)&&(e.form=e.form||{},e.form[r.name]={value:t,allowEmptyValue:r.allowEmptyValue,collectionFormat:r.collectionFormat})}};t.default=r})),Zl=Object.defineProperty({default:function(e,t){return t.includes("application/json")?"string"==typeof e?e:JSON.stringify(e):e.toString()}},"__esModule",{value:!0}),Xl=rc(Aa),Ql=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=tc();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(Ua),ec=rc(Zl);function tc(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return tc=function(){return e},e}function rc(e){return e&&e.__esModule?e:{default:e}}const nc=["accept","authorization","content-type"];var oc=Object.defineProperty({path:function({req:e,value:t,parameter:r}){const{name:n,style:o,explode:a,content:i}=r;if(i){const r=Object.keys(i)[0];return void(e.url=e.url.split(`{${n}}`).join((0,Ql.encodeDisallowedCharacters)((0,ec.default)(t,r),{escape:!0})))}const s=(0,Ql.default)({key:r.name,value:t,style:o||"simple",explode:a||!1,escape:!0});e.url=e.url.split(`{${n}}`).join(s)},query:function({req:e,value:t,parameter:r}){if(e.query=e.query||{},r.content){const n=Object.keys(r.content)[0];e.query[r.name]=(0,ec.default)(t,n)}else if(!1===t&&(t="false"),0===t&&(t="0"),t)e.query[r.name]={value:t,serializationOption:(0,Xl.default)(r,["style","explode","allowReserved"])};else if(r.allowEmptyValue&&void 0!==t){const t=r.name;e.query[t]=e.query[t]||{},e.query[t].allowEmptyValue=!0}},header:function({req:e,parameter:t,value:r}){if(e.headers=e.headers||{},!(nc.indexOf(t.name.toLowerCase())>-1))if(t.content){const n=Object.keys(t.content)[0];e.headers[t.name]=(0,ec.default)(r,n)}else void 0!==r&&(e.headers[t.name]=(0,Ql.default)({key:t.name,value:r,style:t.style||"simple",explode:void 0!==t.explode&&t.explode,escape:!1}))},cookie:function({req:e,parameter:t,value:r}){e.headers=e.headers||{};const n=typeof r;if(t.content){const n=Object.keys(t.content)[0];e.headers.Cookie=`${t.name}=${(0,ec.default)(r,n)}`}else if("undefined"!==n){const o="object"===n&&!Array.isArray(r)&&t.explode?"":`${t.name}=`;e.headers.Cookie=o+(0,Ql.default)({key:t.name,value:r,escape:!1,style:t.style||"form",explode:void 0!==t.explode&&t.explode})}}},"__esModule",{value:!0}),ac=ye((function(e){e.exports=function(e){return(e instanceof ge?e:ge.from(e.toString(),"binary")).toString("base64")}})),ic=pc,sc=uc(Ft),lc=uc(Di),cc=uc(ac);function uc(e){return e&&e.__esModule?e:{default:e}}function pc({request:e,securities:t={},operation:r={},spec:n}){const o=(0,sc.default)({},e),{authorized:a={}}=t,i=r.security||n.security||[],s=a&&!!Object.keys(a).length,l=(0,lc.default)(n,["components","securitySchemes"])||{};return o.headers=o.headers||{},o.query=o.query||{},Object.keys(t).length&&s&&i&&(!Array.isArray(r.security)||r.security.length)?(i.forEach((e=>{Object.keys(e).forEach((e=>{const t=a[e],r=l[e];if(!t)return;const n=t.value||t,{type:i}=r;if(t)if("apiKey"===i)"query"===r.in&&(o.query[r.name]=n),"header"===r.in&&(o.headers[r.name]=n),"cookie"===r.in&&(o.cookies[r.name]=n);else if("http"===i){if(/^basic$/i.test(r.scheme)){const e=n.username||"",t=n.password||"",r=(0,cc.default)(`${e}:${t}`);o.headers.Authorization=`Basic ${r}`}/^bearer$/i.test(r.scheme)&&(o.headers.Authorization=`Bearer ${n}`)}else if("oauth2"===i||"openIdConnect"===i){const e=t.token||{},n=e[r["x-tokenName"]||"access_token"];let a=e.token_type;a&&"bearer"!==a.toLowerCase()||(a="Bearer"),o.headers.Authorization=`${a} ${n}`}}))})),o):e}var dc=Object.defineProperty({default:function(e,t){const{operation:r,requestBody:n,securities:o,spec:a,attachContentTypeForEmptyPayload:i}=e;let{requestContentType:s}=e;t=pc({request:t,securities:o,operation:r,spec:a});const l=r.requestBody||{},c=Object.keys(l.content||{}),u=s&&c.indexOf(s)>-1;if(n||i){if(s&&u)t.headers["Content-Type"]=s;else if(!s){const e=c[0];e&&(t.headers["Content-Type"]=e,s=e)}}else s&&u&&(t.headers["Content-Type"]=s);if(n)if(s){if(c.indexOf(s)>-1)if("application/x-www-form-urlencoded"===s||"multipart/form-data"===s)if("object"==typeof n){const e=(l.content[s]||{}).encoding||{};t.form={},Object.keys(n).forEach((r=>{t.form[r]={value:n[r],encoding:e[r]||{}}}))}else t.form=n;else t.body=n}else t.body=n;return t},applySecurities:ic},"__esModule",{value:!0}),hc=yc,fc=gc(ac),mc=gc(Ft);function gc(e){return e&&e.__esModule?e:{default:e}}function yc({request:e,securities:t={},operation:r={},spec:n}){const o=(0,mc.default)({},e),{authorized:a={},specSecurity:i=[]}=t,s=r.security||i,l=a&&!!Object.keys(a).length,c=n.securityDefinitions;return o.headers=o.headers||{},o.query=o.query||{},Object.keys(t).length&&l&&s&&(!Array.isArray(r.security)||r.security.length)?(s.forEach((e=>{Object.keys(e).forEach((e=>{const t=a[e];if(!t)return;const{token:r}=t,n=t.value||t,i=c[e],{type:s}=i,l=i["x-tokenName"]||"access_token",u=r&&r[l];let p=r&&r.token_type;if(t)if("apiKey"===s){const e="query"===i.in?"query":"headers";o[e]=o[e]||{},o[e][i.name]=n}else if("basic"===s)if(n.header)o.headers.authorization=n.header;else{const e=n.username||"",t=n.password||"";n.base64=(0,fc.default)(`${e}:${t}`),o.headers.authorization=`Basic ${n.base64}`}else"oauth2"===s&&u&&(p=p&&"bearer"!==p.toLowerCase()?p:"Bearer",o.headers.authorization=`${p} ${u}`)}))})),o):e}var bc=Object.defineProperty({default:function(e,t){const{spec:r,operation:n,securities:o,requestContentType:a,attachContentTypeForEmptyPayload:i}=e;if((t=yc({request:t,securities:o,operation:n,spec:r})).body||t.form||i)a?t.headers["Content-Type"]=a:Array.isArray(n.consumes)?[t.headers["Content-Type"]]=n.consumes:Array.isArray(r.consumes)?[t.headers["Content-Type"]]=r.consumes:n.parameters&&n.parameters.filter((e=>"file"===e.type)).length?t.headers["Content-Type"]="multipart/form-data":n.parameters&&n.parameters.filter((e=>"formData"===e.in)).length&&(t.headers["Content-Type"]="application/x-www-form-urlencoded");else if(a){const e=n.parameters&&n.parameters.filter((e=>"body"===e.in)).length>0,r=n.parameters&&n.parameters.filter((e=>"formData"===e.in)).length>0;(e||r)&&(t.headers["Content-Type"]=a)}return t},applySecurities:hc},"__esModule",{value:!0}),vc=ye((function(e,t){t.__esModule=!0,t.execute=function(e){let{http:t,fetch:r,spec:a,operationId:i,pathName:l,method:c,parameters:u,securities:p}=e,d=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["http","fetch","spec","operationId","pathName","method","parameters","securities"]);const h=t||r||s.default;l&&c&&!i&&(i=(0,Al.legacyIdFromPathMethod)(l,c));const f=w.buildRequest(y({spec:a,operationId:i,parameters:u,securities:p,http:h},d));return f.body&&((0,n.default)(f.body)||(0,o.default)(f.body))&&(f.body=JSON.stringify(f.body)),h(f)},t.buildRequest=k,t.baseUrl=$,t.self=void 0;var r=m(Di),n=m(Ml),o=m(yt),a=m(wr),i=m(Gl),s=f(Ma),l=m(qs),c=m(Jl),u=f(oc),p=m(dc),d=m(bc);function h(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return h=function(){return e},e}function f(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=h();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}function m(e){return e&&e.__esModule?e:{default:e}}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const v=e=>Array.isArray(e)?e:[],x=(0,l.default)("OperationNotFoundError",(function(e,t,r){this.originalError=r,Object.assign(this,t||{})})),w={buildRequest:k};function k(e){const{spec:t,operationId:r,responseContentType:n,scheme:o,requestInterceptor:a,responseInterceptor:l,contextUrl:h,userFetch:f,server:m,serverVariables:g,http:b}=e;let{parameters:w,parameterBuilders:k}=e;const A=(0,Al.isOAS3)(t);k||(k=A?u:c.default);let E={url:"",credentials:b&&b.withCredentials?"include":"same-origin",headers:{},cookies:{}};a&&(E.requestInterceptor=a),l&&(E.responseInterceptor=l),f&&(E.userFetch=f);const S=(0,Al.getOperationRaw)(t,r);if(!S)throw new x(`Operation ${r} not found`);const{operation:D={},method:O,pathName:C}=S;if(E.url+=$({spec:t,scheme:o,contextUrl:h,server:m,serverVariables:g,pathName:C,method:O}),!r)return delete E.cookies,E;E.url+=C,E.method=`${O}`.toUpperCase(),w=w||{};const _=t.paths[C]||{};n&&(E.headers.accept=n);const j=(e=>{const t={};e.forEach((e=>{t[e.in]||(t[e.in]={}),t[e.in][e.name]=e}));const r=[];return Object.keys(t).forEach((e=>{Object.keys(t[e]).forEach((n=>{r.push(t[e][n])}))})),r})([].concat(v(D.parameters)).concat(v(_.parameters)));j.forEach((e=>{const r=k[e.in];let n;if("body"===e.in&&e.schema&&e.schema.properties&&(n=w),n=e&&e.name&&w[e.name],void 0===n?n=e&&e.name&&w[`${e.in}.${e.name}`]:((e,t)=>t.filter((t=>t.name===e)))(e.name,j).length>1&&console.warn(`Parameter '${e.name}' is ambiguous because the defined spec has more than one parameter with the name: '${e.name}' and the passed-in parameter values did not define an 'in' value.`),null!==n){if(void 0!==e.default&&void 0===n&&(n=e.default),void 0===n&&e.required&&!e.allowEmptyValue)throw new Error(`Required parameter ${e.name} is not provided`);if(A&&e.schema&&"object"===e.schema.type&&"string"==typeof n)try{n=JSON.parse(n)}catch(e){throw new Error("Could not parse object parameter value string as JSON")}r&&r({req:E,parameter:e,value:n,operation:D,spec:t})}}));const T=y(y({},e),{},{operation:D});if(E=A?(0,p.default)(T,E):(0,d.default)(T,E),E.cookies&&Object.keys(E.cookies).length){const e=Object.keys(E.cookies).reduce(((e,t)=>{const r=E.cookies[t];return e+(e?"&":"")+i.default.serialize(t,r)}),"");E.headers.Cookie=e}return E.cookies&&delete E.cookies,(0,s.mergeInQueryOrForm)(E),E}t.self=w;const A=e=>e?e.replace(/\W/g,""):null;function $(e){return(0,Al.isOAS3)(e.spec)?function({spec:e,pathName:t,method:n,server:o,contextUrl:i,serverVariables:s={}}){const l=(0,r.default)(e,["paths",t,(n||"").toLowerCase(),"servers"])||(0,r.default)(e,["paths",t,"servers"])||(0,r.default)(e,["servers"]);let c="",u=null;if(o&&l&&l.length){const e=l.map((e=>e.url));e.indexOf(o)>-1&&(c=o,u=l[e.indexOf(o)])}return!c&&l&&l.length&&(c=l[0].url,[u]=l),c.indexOf("{")>-1&&function(e){const t=[],r=/{([^}]+)}/g;let n;for(;n=r.exec(e);)t.push(n[1]);return t}(c).forEach((e=>{if(u.variables&&u.variables[e]){const t=u.variables[e],r=s[e]||t.default,n=new RegExp(`{${e}}`,"g");c=c.replace(n,r)}})),function(e="",t=""){const r=e&&t?a.default.parse(a.default.resolve(t,e)):a.default.parse(e),n=a.default.parse(t),o=A(r.protocol)||A(n.protocol)||"",i=r.host||n.host,s=r.pathname||"";let l;return l=o&&i?`${o}://${i+s}`:s,"/"===l[l.length-1]?l.slice(0,-1):l}(c,i)}(e):function({spec:e,scheme:t,contextUrl:r=""}){const n=a.default.parse(r),o=Array.isArray(e.schemes)?e.schemes[0]:null,i=t||o||A(n.protocol)||"http",s=e.host||n.host||"",l=e.basePath||"";let c;return c=i&&s?`${i}://${s+l}`:l,"/"===c[c.length-1]?c.slice(0,-1):c}(e)}})),xc=function(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}(ye((function(e,t){t.__esModule=!0,t.default=t.helpers=void 0;var r=u(Ft),n=u(Kt),o=u(wr),a=c(Ma),i=c(Cl),s=u(Il);function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function c(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}function u(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t={}){if("string"==typeof e?t.url=e:t=e,!(this instanceof f))return new f(t);(0,r.default)(this,t);const n=this.resolve().then((()=>(this.disableInterfaces||(0,r.default)(this,f.makeApisTagOperation(this)),this)));return n.client=this,n}f.http=a.default,f.makeHttp=a.makeHttp.bind(null,f.http),f.resolve=i.default,f.resolveSubtree=s.default,f.execute=vc.execute,f.serializeRes=a.serializeRes,f.serializeHeaders=a.serializeHeaders,f.clearCache=i.clearCache,f.makeApisTagOperation=Rl.makeApisTagOperation,f.buildRequest=vc.buildRequest,f.helpers={opId:Al.opId},f.getBaseUrl=vc.baseUrl,f.prototype={http:a.default,execute(e){return this.applyDefaults(),f.execute(d({spec:this.spec,http:this.http,securities:{authorized:this.authorizations},contextUrl:"string"==typeof this.url?this.url:void 0,requestInterceptor:this.requestInterceptor||null,responseInterceptor:this.responseInterceptor||null},e))},resolve(e={}){return f.resolve(d({spec:this.spec,url:this.url,http:this.http||this.fetch,allowMetaPatches:this.allowMetaPatches,useCircularStructures:this.useCircularStructures,requestInterceptor:this.requestInterceptor||null,responseInterceptor:this.responseInterceptor||null},e)).then((e=>(this.originalSpec=this.spec,this.spec=e.spec,this.errors=e.errors,this)))}},f.prototype.applyDefaults=function(){const{spec:e}=this,t=this.url;if(t&&(0,n.default)(t,"http")){const r=o.default.parse(t);e.host||(e.host=r.host),e.schemes||(e.schemes=[r.protocol.replace(":","")]),e.basePath||(e.basePath="/")}};const{helpers:m}=f;t.helpers=m;var g=f;t.default=g})));function wc(e){const t=(e=e.replace("[]","Array")).split("/");return t[0]=t[0].replace(/[^A-Za-z0-9_\-\.]+|\s+/gm,"_"),t.join("/")}var kc={parameterTypeProperties:["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],arrayProperties:["items","minItems","maxItems","uniqueItems"],httpMethods:["get","post","put","delete","patch","head","options","trace"],uniqueOnly:function(e,t,r){return r.indexOf(e)===t},createHash:function(e){let t,r=0;if(0===e.length)return r;for(let n=0;n<e.length;n++)t=e.charCodeAt(n),r=(r<<5)-r+t,r|=0;return r},sanitise:wc,sanitiseAll:function(e){return wc(e.split("/").join("_"))},camelize:function(e){return e.toLowerCase().replace(/[-_ \/\.](.)/g,((e,t)=>t.toUpperCase()))},clone:function(e){return JSON.parse(JSON.stringify(e))},circularClone:function e(t,r){if(r||(r=new WeakMap),Object(t)!==t||t instanceof Function)return t;if(r.has(t))return r.get(t);let n;try{n=new t.constructor}catch(e){n=Object.create(Object.getPrototypeOf(t))}return r.set(t,n),Object.assign(n,...Object.keys(t).map((n=>({[n]:e(t[n],r)}))))}};function Ac(){return{depth:0,seen:new WeakMap,top:!0,combine:!1,allowRefSiblings:!1}}var $c=function e(t,r,n,o){if(void 0===n.depth&&(n=Ac()),null==t)return t;if(n.combine&&(t.allOf&&Array.isArray(t.allOf)&&1===t.allOf.length&&delete(t={...t.allOf[0],...t}).allOf,t.anyOf&&Array.isArray(t.anyOf)&&1===t.anyOf.length&&delete(t={...t.anyOf[0],...t}).anyOf,t.oneOf&&Array.isArray(t.oneOf)&&1===t.oneOf.length&&delete(t={...t.oneOf[0],...t}).oneOf),o(t,r,n),n.seen.has(t))return t;if("object"==typeof t&&null!==t&&n.seen.set(t,!0),n.top=!1,n.depth++,void 0!==t.items&&(n.property="items",e(t.items,t,n,o)),t.additionalItems&&"object"==typeof t.additionalItems&&(n.property="additionalItems",e(t.additionalItems,t,n,o)),t.additionalProperties&&"object"==typeof t.additionalProperties&&(n.property="additionalProperties",e(t.additionalProperties,t,n,o)),t.properties)for(const r in t.properties){const a=t.properties[r];n.property=`properties/${r}`,e(a,t,n,o)}if(t.patternProperties)for(const r in t.patternProperties){const a=t.patternProperties[r];n.property=`patternProperties/${r}`,e(a,t,n,o)}if(t.allOf)for(const r in t.allOf){const a=t.allOf[r];n.property=`allOf/${r}`,e(a,t,n,o)}if(t.anyOf)for(const r in t.anyOf){const a=t.anyOf[r];n.property=`anyOf/${r}`,e(a,t,n,o)}if(t.oneOf)for(const r in t.oneOf){const a=t.oneOf[r];n.property=`oneOf/${r}`,e(a,t,n,o)}return t.not&&(n.property="not",e(t.not,t,n,o)),n.depth--,t};function Ec(e,t,r){if(t||(t={depth:0}),t.depth||(t={path:"#",depth:0,pkey:"",parent:{},payload:{},seen:new WeakMap,identity:!1,identityDetection:!1,...t}),"object"!=typeof e)return;const n=t.path;for(const o in e){if(t.key=o,t.path=`${t.path}/${encodeURIComponent(o)}`,t.identityPath=t.seen.get(e[o]),t.identity=void 0!==t.identityPath,e.hasOwnProperty(o)&&r(e,o,t),"object"==typeof e[o]&&!t.identity){t.identityDetection&&!Array.isArray(e[o])&&null!==e[o]&&t.seen.set(e[o],t.path);const n={};n.parent=e,n.path=t.path,n.depth=t.depth?t.depth+1:1,n.pkey=o,n.payload=t.payload,n.seen=t.seen,n.identity=!1,n.identityDetection=t.identityDetection,Ec(e[o],n,r)}t.path=n}}let Sc;function Dc(e,t){for(const r in e)r.startsWith("x-")&&!r.startsWith("x-s2o")&&(t[r]=e[r])}function Oc(e,t){$c(e,{},{},((e,r)=>{!function(e){if(e["x-required"]&&Array.isArray(e["x-required"])&&(e.required||(e.required=[]),e.required=e.required.concat(e["x-required"]),delete e["x-required"]),e["x-anyOf"]&&(e.anyOf=e["x-anyOf"],delete e["x-anyOf"]),e["x-oneOf"]&&(e.oneOf=e["x-oneOf"],delete e["x-oneOf"]),e["x-not"]&&(e.not=e["x-not"],delete e["x-not"]),"boolean"==typeof e["x-nullable"]&&(e.nullable=e["x-nullable"],delete e["x-nullable"]),"object"==typeof e["x-discriminator"]&&"string"==typeof e["x-discriminator"].propertyName){e.discriminator=e["x-discriminator"],delete e["x-discriminator"];for(const t in e.discriminator.mapping){const r=e.discriminator.mapping[t];r.startsWith("#/definitions/")&&(e.discriminator.mapping[t]=r.replace("#/definitions/","#/components/schemas/"))}}}(e),function(e,t,r){if(e.nullable&&r.patches++,e.discriminator&&"string"==typeof e.discriminator&&(e.discriminator={propertyName:e.discriminator}),e.items&&Array.isArray(e.items)&&(0===e.items.length?e.items={}:1===e.items.length?e.items=e.items[0]:e.items={anyOf:e.items}),e.type&&Array.isArray(e.type)){if(r.patches++,r.warnings.push("(Patchable) schema type must not be an array"),0===e.type.length)delete e.type;else{e.oneOf||(e.oneOf=[]);for(const t of e.type){const r={};if("null"===t)e.nullable=!0;else{r.type=t;for(const t of kc.arrayProperties)void 0!==e.prop&&(r[t]=e[t],delete e[t])}r.type&&e.oneOf.push(r)}delete e.type,0===e.oneOf.length?delete e.oneOf:e.oneOf.length<2&&(e.type=e.oneOf[0].type,Object.keys(e.oneOf[0]).length>1&&(r.patches++,r.warnings.push("Lost properties from oneOf")),delete e.oneOf)}e.type&&Array.isArray(e.type)&&1===e.type.length&&(e.type=e.type[0])}e.type&&"null"===e.type&&(delete e.type,e.nullable=!0),"array"!==e.type||e.items||(e.items={}),"file"===e.type&&(e.type="string",e.format="binary"),"boolean"==typeof e.required&&(e.required&&e.name&&(void 0===t.required&&(t.required=[]),Array.isArray(t.required)&&t.required.push(e.name)),delete e.required),e.xml&&"string"==typeof e.xml.namespace&&(e.xml.namespace||delete e.xml.namespace),e.allowEmptyValue&&(delete e.allowEmptyValue,r.patches++,r.warnings.push("(Patchable): deleted schema.allowEmptyValue"))}(e,r,t)}))}function Cc(e){for(const t in e)for(const r in e[t]){const n=kc.sanitise(r);r!==n&&(e[t][n]=e[t][r],delete e[t][r])}}function _c(e,t){if("basic"===e.type&&(e.type="http",e.scheme="basic"),"oauth2"===e.type){const r={};let n=e.flow;"application"===e.flow&&(n="clientCredentials"),"accessCode"===e.flow&&(n="authorizationCode"),"string"==typeof e.authorizationUrl&&(r.authorizationUrl=e.authorizationUrl.split("?")[0].trim()||"/"),"string"==typeof e.tokenUrl&&(r.tokenUrl=e.tokenUrl.split("?")[0].trim()||"/"),r.scopes=e.scopes||{},e.flows={},e.flows[n]=r,delete e.flow,delete e.authorizationUrl,delete e.tokenUrl,delete e.scopes,e.name&&(delete e.name,t.patches++,t.warnings.push("(Patchable) oauth2 securitySchemes should not have name property"))}}function jc(e){return e&&!e["x-s2o-delete"]}function Tc(e,t){if(e.type&&!e.schema&&(e.schema={}),e.type&&(e.schema.type=e.type),e.items&&"array"!==e.items.type){if(e.items.collectionFormat!==e.collectionFormat)return t.errCount++,void t.errors.push({message:"Nested collectionFormats are not supported",pointer:"/.../responses/header"});delete e.items.collectionFormat}"array"===e.type?("ssv"===e.collectionFormat?(t.patches++,t.warnings.push("collectionFormat:ssv is no longer supported for headers")):"pipes"===e.collectionFormat?(t.patches++,t.warnings.push("collectionFormat:pipes is no longer supported for headers")):"multi"===e.collectionFormat?e.explode=!0:"tsv"===e.collectionFormat?(e["x-collectionFormat"]="tsv",t.patches++,t.warnings.push("collectionFormat:tsv is no longer supported")):e.style="simple",delete e.collectionFormat):e.collectionFormat&&(delete e.collectionFormat,t.patches++,t.warnings.push("(Patchable) collectionFormat is only applicable to header.type array")),delete e.type;for(const t of kc.parameterTypeProperties)void 0!==e[t]&&(e.schema[t]=e[t],delete e[t]);for(const t of kc.arrayProperties)void 0!==e[t]&&(e.schema[t]=e[t],delete e[t])}function Fc(e,t,r,n,o,a,i){const s={};let l,c=!0;t&&t.consumes&&"string"==typeof t.consumes&&(t.consumes=[t.consumes],i.patches++,i.warnings.push("(Patchable) operation.consumes must be an array")),Array.isArray(a.consumes)||delete a.consumes;const u=((t?t.consumes:null)||a.consumes||[]).filter(kc.uniqueOnly);if(e&&(e.name||e.in)){"boolean"==typeof e["x-deprecated"]&&(e.deprecated=e["x-deprecated"],delete e["x-deprecated"]),void 0!==e["x-example"]&&(e.example=e["x-example"],delete e["x-example"]),"body"===e.in||e.type||(e.type="string",i.patches++,i.warnings.push("(Patchable) parameter.type is mandatory for non-body parameters")),"file"===e.type&&(e["x-s2o-originalType"]=e.type,l=e.type),null===e.description&&delete e.description;let t=e.collectionFormat;if("array"!==e.type||t||(t="csv"),t&&("array"!==e.type&&(delete e.collectionFormat,i.patches++,i.warnings.push("(Patchable) collectionFormat is only applicable to param.type array")),"csv"!==t||"query"!==e.in&&"cookie"!==e.in||(e.style="form",e.explode=!1),"csv"!==t||"path"!==e.in&&"header"!==e.in||(e.style="simple"),"ssv"===t&&("query"===e.in?e.style="spaceDelimited":i.warnings.push(`${e.name} collectionFormat:ssv is no longer supported except for in:query parameters`)),"pipes"===t&&("query"===e.in?e.style="pipeDelimited":i.warnings.push(`${e.name} collectionFormat:pipes is no longer supported except for in:query parameters`)),"multi"===t&&(e.explode=!0),"tsv"===t&&(i.warnings.push("collectionFormat:tsv is no longer supported"),e["x-collectionFormat"]="tsv"),delete e.collectionFormat),e.type&&"body"!==e.type&&"formData"!==e.in)if(e.items&&e.schema)i.warnings.push(`${e.name} parameter has array,items and schema`);else{e.schema&&i.patches++,e.schema&&"object"==typeof e.schema||(e.schema={}),e.schema.type=e.type,e.items&&(e.schema.items=e.items,delete e.items,Ec(e.schema.items,null,((r,n)=>{"collectionFormat"===n&&"string"==typeof r[n]&&(t&&r[n]!==t&&i.warnings.push(`${e.name} Nested collectionFormats are not supported`),delete r[n])})));for(const t of kc.parameterTypeProperties)void 0!==e[t]&&(e.schema[t]=e[t]),delete e[t]}e.schema&&Oc(e.schema,i),e["x-ms-skip-url-encoding"]&&"query"===e.in&&(e.allowReserved=!0,delete e["x-ms-skip-url-encoding"])}if(e&&"formData"===e.in){c=!1,s.content={};let t="application/x-www-form-urlencoded";if(u.length&&u.indexOf("multipart/form-data")>=0&&(t="multipart/form-data"),s.content[t]={},e.schema)s.content[t].schema=e.schema;else{s.content[t].schema={},s.content[t].schema.type="object",s.content[t].schema.properties={},s.content[t].schema.properties[e.name]={};const r=s.content[t].schema,n=s.content[t].schema.properties[e.name];e.description&&(n.description=e.description),e.example&&(n.example=e.example),e.type&&(n.type=e.type);for(const t of kc.parameterTypeProperties)void 0!==e[t]&&(n[t]=e[t]);!0===e.required&&(r.required||(r.required=[]),r.required.push(e.name),s.required=!0),void 0!==e.default&&(n.default=e.default),n.properties&&(n.properties=e.properties),e.allOf&&(n.allOf=e.allOf),"array"===e.type&&e.items&&(n.items=e.items,n.items.collectionFormat&&delete n.items.collectionFormat),"file"!==l&&"file"!==e["x-s2o-originalType"]||(n.type="string",n.format="binary"),Dc(e,n)}}else e&&"file"===e.type&&(e.required&&(s.required=e.required),s.content={},s.content["application/octet-stream"]={},s.content["application/octet-stream"].schema={},s.content["application/octet-stream"].schema.type="string",s.content["application/octet-stream"].schema.format="binary",Dc(e,s));if(e&&"body"===e.in){s.content={},e.name&&(s["x-s2o-name"]=(t&&t.operationId?kc.sanitiseAll(t.operationId):"")+kc.camelize(`_${e.name}`)),e.description&&(s.description=e.description),e.required&&(s.required=e.required),u.length||u.push("application/json");for(const t of u)s.content[t]={},s.content[t].schema=kc.clone(e.schema||{}),Oc(s.content[t].schema,i);Dc(e,s)}if(Object.keys(s).length>0&&(e["x-s2o-delete"]=!0,t))if(t.requestBody&&c){t.requestBody["x-s2o-overloaded"]=!0;const e=t.operationId||o;i.warnings.push(`Operation ${e} has multiple requestBodies`)}else t.requestBody||(t=function(e,t){const r={};for(const n of Object.keys(e))r[n]=e[n],"parameters"===n&&(r.requestBody={},t.rbname&&(r[t.rbname]=""));return r.requestBody={},r}(t,i),r[n]=t),t.requestBody.content&&t.requestBody.content["multipart/form-data"]&&t.requestBody.content["multipart/form-data"].schema&&t.requestBody.content["multipart/form-data"].schema.properties&&s.content["multipart/form-data"]&&s.content["multipart/form-data"].schema&&s.content["multipart/form-data"].schema.properties?(t.requestBody.content["multipart/form-data"].schema.properties=Object.assign(t.requestBody.content["multipart/form-data"].schema.properties,s.content["multipart/form-data"].schema.properties),t.requestBody.content["multipart/form-data"].schema.required=(t.requestBody.content["multipart/form-data"].schema.required||[]).concat(s.content["multipart/form-data"].schema.required||[]),t.requestBody.content["multipart/form-data"].schema.required.length||delete t.requestBody.content["multipart/form-data"].schema.required):t.requestBody.content&&t.requestBody.content["application/x-www-form-urlencoded"]&&t.requestBody.content["application/x-www-form-urlencoded"].schema&&t.requestBody.content["application/x-www-form-urlencoded"].schema.properties&&s.content["application/x-www-form-urlencoded"]&&s.content["application/x-www-form-urlencoded"].schema&&s.content["application/x-www-form-urlencoded"].schema.properties?(t.requestBody.content["application/x-www-form-urlencoded"].schema.properties=Object.assign(t.requestBody.content["application/x-www-form-urlencoded"].schema.properties,s.content["application/x-www-form-urlencoded"].schema.properties),t.requestBody.content["application/x-www-form-urlencoded"].schema.required=(t.requestBody.content["application/x-www-form-urlencoded"].schema.required||[]).concat(s.content["application/x-www-form-urlencoded"].schema.required||[]),t.requestBody.content["application/x-www-form-urlencoded"].schema.required.length||delete t.requestBody.content["application/x-www-form-urlencoded"].schema.required):(t.requestBody=Object.assign(t.requestBody,s),t.requestBody["x-s2o-name"]||t.operationId&&(t.requestBody["x-s2o-name"]=kc.sanitiseAll(t.operationId)));if(e&&!e["x-s2o-delete"]){delete e.type;for(const t of kc.parameterTypeProperties)delete e[t];"path"!==e.in||void 0!==e.required&&!0===e.required||(e.required=!0,i.patches++,i.warnings.push(`(Patchable) path parameters must be required:true [${e.name} in ${o}]`))}return t}function Pc(e,t,r,n,o){if(!e)return!1;if(e.description||"object"!=typeof e||Array.isArray(e)||(o.patches++,o.warnings.push("(Patchable) response.description is mandatory")),void 0!==e.schema){Oc(e.schema,o),r&&r.produces&&"string"==typeof r.produces&&(r.produces=[r.produces],o.patches++,o.warnings.push("(Patchable) operation.produces must be an array")),n.produces&&!Array.isArray(n.produces)&&delete n.produces;const t=((r?r.produces:null)||n.produces||[]).filter(kc.uniqueOnly);t.length||t.push("*/*"),e.content={};for(const r of t){if(e.content[r]={},e.content[r].schema=kc.clone(e.schema),e.examples&&e.examples[r]){const t={};t.value=e.examples[r],e.content[r].examples={},e.content[r].examples.response=t,delete e.examples[r]}"file"===e.content[r].schema.type&&(e.content[r].schema={type:"string",format:"binary"})}delete e.schema}for(const t in e.examples)e.content||(e.content={}),e.content[t]||(e.content[t]={}),e.content[t].examples={},e.content[t].examples.response={},e.content[t].examples.response.value=e.examples[t];if(delete e.examples,e.headers)for(const t in e.headers)"status code"===t.toLowerCase()?(delete e.headers[t],o.patches++,o.warnings.push('(Patchable) "Status Code" is not a valid header')):Tc(e.headers[t],o)}function Bc(e,t,r,n,o){for(const a in e){const i=e[a];i&&i["x-trace"]&&"object"==typeof i["x-trace"]&&(i.trace=i["x-trace"],delete i["x-trace"]),i&&i["x-summary"]&&"string"==typeof i["x-summary"]&&(i.summary=i["x-summary"],delete i["x-summary"]),i&&i["x-description"]&&"string"==typeof i["x-description"]&&(i.description=i["x-description"],delete i["x-description"]),i&&i["x-servers"]&&Array.isArray(i["x-servers"])&&(i.servers=i["x-servers"],delete i["x-servers"]);for(const e in i)if(kc.httpMethods.indexOf(e)>=0||"x-amazon-apigateway-any-method"===e){let s=i[e];if(s&&s.parameters&&Array.isArray(s.parameters)){if(i.parameters)for(const t of i.parameters)s.parameters.find((e=>e.name===t.name&&e.in===t.in))||"formData"!==t.in&&"body"!==t.in&&"file"!==t.type||(s=Fc(t,s,i,e,a,o,r));for(const t of s.parameters)s=Fc(t,s,i,e,`${e}: ${a}`,o,r);s.parameters&&(s.parameters=s.parameters.filter(jc))}if(s&&s.security&&Cc(s.security),"object"==typeof s){if(!s.responses){const e={description:"Default response"};s.responses={default:e}}for(const e in s.responses)Pc(s.responses[e],0,s,o,r)}if(s&&s["x-servers"]&&Array.isArray(s["x-servers"]))s.servers=s["x-servers"],delete s["x-servers"];else if(s&&s.schemes&&s.schemes.length)for(const e of s.schemes)if((!o.schemes||o.schemes.indexOf(e)<0)&&(s.servers||(s.servers=[]),Array.isArray(o.servers)))for(const e of o.servers){const t=kc.clone(e);s.servers.push(t)}if(s){if(delete s.consumes,delete s.produces,delete s.schemes,s["x-ms-examples"]){for(const e in s["x-ms-examples"]){const t=s["x-ms-examples"][e],r=kc.sanitiseAll(e);if(t.parameters)for(const r in t.parameters){const n=t.parameters[r];for(const t of(s.parameters||[]).concat(i.parameters||[]))t.name!==r||t.example||(t.examples||(t.examples={}),t.examples[e]={value:n})}if(t.responses)for(const n in t.responses){if(t.responses[n].headers)for(const e in t.responses[n].headers){const r=t.responses[n].headers[e];for(const t in s.responses[n].headers)t===e&&(s.responses[n].headers[t].example=r)}if(t.responses[n].body&&(o.components.examples[r]={value:kc.clone(t.responses[n].body)},s.responses[n]&&s.responses[n].content))for(const t in s.responses[n].content){const o=s.responses[n].content[t];o.examples||(o.examples={}),o.examples[e]={$ref:`#/components/examples/${r}`}}}}delete s["x-ms-examples"]}if(s.parameters&&0===s.parameters.length&&delete s.parameters,s.requestBody){const r=s.operationId?kc.sanitiseAll(s.operationId):kc.camelize(kc.sanitiseAll(e+a)),o=kc.sanitise(s.requestBody["x-s2o-name"]||r||"");delete s.requestBody["x-s2o-name"];const i=JSON.stringify(s.requestBody),l=kc.createHash(i);if(!n[l]){const e={};e.name=o,e.body=s.requestBody,e.refs=[],n[l]=e}const c=`#/${t}/${encodeURIComponent(a)}/${e}/requestBody`;n[l].refs.push(c)}}}if(i&&i.parameters){for(const e in i.parameters)Fc(i.parameters[e],null,i,null,a,o,r);Array.isArray(i.parameters)&&(i.parameters=i.parameters.filter(jc))}}}function Ic(e){return e&&e.url&&"string"==typeof e.url?(e.url=e.url.split("{{").join("{"),e.url=e.url.split("}}").join("}"),e.url.replace(/\{(.+?)\}/g,((t,r)=>{e.variables||(e.variables={}),e.variables[r]={default:"unknown"}})),e):e}function Rc(e,t){var r,n;void 0!==e.info&&null!==e.info||(e.info={version:"",title:""},t.patches++,t.warnings.push("(Patchable) info object is mandatory")),("object"!=typeof e.info||Array.isArray(e.info))&&(t.errCount++,t.errors.push({message:"info must be an object",pointer:"/info"})),void 0===(null==(r=e.info)?void 0:r.title)&&(t.patches++,e.info.title="",t.warnings.push({message:"(Patchable) info.title cannot be null",pointer:"/info/title",patchable:!0})),void 0===(null==(n=e.info)?void 0:n.version)?(t.patches++,e.info.version="",t.warnings.push("(Patchable) info.version cannot be null")):"string"!=typeof e.info.version&&(t.patches++,e.info.version=e.info.version.toString(),t.warnings.push("(Patchable) info.version must be a string"))}function Nc(e,t){e.paths||(t.patches++,e.paths={},t.warnings.push("(Patchable) paths object is mandatory"))}function Lc(e={}){const t={original:e,openapi:{},patches:0,warnings:[],errCount:0,errors:[]};if(e.openapi&&"string"==typeof e.openapi&&e.openapi.startsWith("3."))return t.openapi=kc.circularClone(e),Rc(t.openapi,t),Nc(t.openapi,t),t;if("2.0"!==e.swagger)return t.errCount++,t.errors.push({message:`Unsupported swagger/OpenAPI version: ${e.openapi?e.openapi:e.swagger}`,pointer:"/swagger"}),t;if(t.openapi=kc.circularClone(e),t.openapi.openapi="3.0.0",delete t.openapi.swagger,Ec(t.openapi,{},((e,t,r)=>{null===e[t]&&!t.startsWith("x-")&&"default"!==t&&r.path.indexOf("/example")<0&&delete e[t]})),e.host)(e.schemes||[]).forEach((r=>{const n={},o=(e.basePath||"").replace(/\/$/,"");n.url=`${r?`${r}:`:""}//${e.host}${o}`,Ic(n),t.openapi.servers||(t.openapi.servers=[]),t.openapi.servers.push(n)}));else if(e.basePath){const r={};r.url=e.basePath,Ic(r),t.openapi.servers||(t.openapi.servers=[]),t.openapi.servers.push(r)}if(delete t.openapi.host,delete t.openapi.basePath,e["x-ms-parameterized-host"]){const r=e["x-ms-parameterized-host"],n={};n.url=r.hostTemplate+(e.basePath?e.basePath:""),n.variables={};const o=n.url.match(/\{\w+\}/g);for(const e in r.parameters){const t=r.parameters[e];e.startsWith("x-")||(delete t.required,delete t.type,delete t.in,void 0===t.default&&(t.enum?t.default=t.enum[0]:t.default="none"),t.name||(t.name=o[e].replace("{","").replace("}","")),n.variables[t.name]=t,delete t.name)}t.openapi.servers||(t.openapi.servers=[]),!1===r.useSchemePrefix?t.openapi.servers.push(n):e.schemes.forEach((e=>{t.openapi.servers.push({...n,url:`${e}://${n.url}`})})),delete t.openapi["x-ms-parameterized-host"]}return Rc(t.openapi,t),Nc(t.openapi,t),"string"==typeof t.openapi.consumes&&(t.openapi.consumes=[t.openapi.consumes]),"string"==typeof t.openapi.produces&&(t.openapi.produces=[t.openapi.produces]),t.openapi.components={},t.openapi["x-callbacks"]&&(t.openapi.components.callbacks=t.openapi["x-callbacks"],delete t.openapi["x-callbacks"]),t.openapi.components.examples={},t.openapi.components.headers={},t.openapi["x-links"]&&(t.openapi.components.links=t.openapi["x-links"],delete t.openapi["x-links"]),t.openapi.components.parameters=t.openapi.parameters||{},t.openapi.components.responses=t.openapi.responses||{},t.openapi.components.requestBodies={},t.openapi.components.securitySchemes=t.openapi.securityDefinitions||{},t.openapi.components.schemas=t.openapi.definitions||{},delete t.openapi.definitions,delete t.openapi.responses,delete t.openapi.parameters,delete t.openapi.securityDefinitions,function(e){const t=e.openapi,r={};Sc={schemas:{}},t.security&&Cc(t.security);for(const r in t.components.securitySchemes){const n=kc.sanitise(r);if(r!==n){if(t.components.securitySchemes[n])return e.errCount++,e.errors.push({message:`Duplicate sanitised securityScheme name ${n}`,pointer:`/components/securitySchemes/${n}`}),e;t.components.securitySchemes[n]=t.components.securitySchemes[r],delete t.components.securitySchemes[r]}_c(t.components.securitySchemes[n],e)}for(const r in t.components.schemas){const n=kc.sanitiseAll(r);let o="";if(r!==n){for(;t.components.schemas[n+o];)o=o?++o:2;t.components.schemas[n+o]=t.components.schemas[r],delete t.components.schemas[r]}Sc.schemas[r]=n+o,Oc(t.components.schemas[`${n}${o}`],e)}for(const r in t.components.parameters){const n=kc.sanitise(r);if(r!==n){if(t.components.parameters[n])return e.errCount++,e.errors.push({message:`Duplicate sanitised parameter name ${n}`,pointer:`/components/parameters/${n}`}),e;t.components.parameters[n]=t.components.parameters[r],delete t.components.parameters[r]}Fc(t.components.parameters[n],null,null,null,n,t,e)}for(const r in t.components.responses){const n=kc.sanitise(r);if(r!==n){if(t.components.responses[n])return e.errCount++,e.errors.push({message:`Duplicate sanitised response name ${n}`,pointer:`/components/responses/${n}`}),e;t.components.responses[n]=t.components.responses[r],delete t.components.responses[r]}const o=t.components.responses[n];if(Pc(o,0,null,t,e),o.headers)for(const t in o.headers)"status code"===t.toLowerCase()?(delete o.headers[t],e.patches++,e.warnings.push('(Patchable) "Status Code" is not a valid header')):Tc(o.headers[t],e)}for(const e in t.components.requestBodies){const n=t.components.requestBodies[e],o=JSON.stringify(n),a=kc.createHash(o),i={};i.name=e,i.body=n,i.refs=[],r[a]=i}Bc(t.paths,"paths",e,r,t),t["x-ms-paths"]&&Bc(t["x-ms-paths"],"x-ms-paths",e,r,t);for(const e in t.components.parameters)t.components.parameters[e]["x-s2o-delete"]&&delete t.components.parameters[e];return delete t.consumes,delete t.produces,delete t.schemes,t.components.requestBodies={},t.components.responses&&0===Object.keys(t.components.responses).length&&delete t.components.responses,t.components.parameters&&0===Object.keys(t.components.parameters).length&&delete t.components.parameters,t.components.examples&&0===Object.keys(t.components.examples).length&&delete t.components.examples,t.components.requestBodies&&0===Object.keys(t.components.requestBodies).length&&delete t.components.requestBodies,t.components.securitySchemes&&0===Object.keys(t.components.securitySchemes).length&&delete t.components.securitySchemes,t.components.headers&&0===Object.keys(t.components.headers).length&&delete t.components.headers,t.components.schemas&&0===Object.keys(t.components.schemas).length&&delete t.components.schemas,t.components&&0===Object.keys(t.components).length&&delete t.components,e}(t)}const qc={convertObj:Lc,resolve:function(e){return new Promise((async t=>{var r,n,o;try{const a=await xc.resolve(e);if((null==(r=a.errors)?void 0:r.length)>0)t(a);else{a.spec.openapi&&(a.resolvedSpec=a.spec,t(a));const e=Lc(a.spec);(null==(n=e.errors)?void 0:n.length)>0&&(Array.isArray(a.errors)?a.errors.concat(a.errors):a.errors=e.errors),(null==(o=e.warnings)?void 0:o.length)>0&&(a.warnings=e.warnings),a.resolvedSpec=a.spec,a.spec=e.openapi,t(a)}}catch(e){t(e)}}))}};async function zc(e,t=!1,r=!1,n="",o="",a="",i="",s=""){var l;let c;try{let t;t="string"==typeof e?await qc.resolve({url:e}):await qc.resolve({spec:e}),c=t.spec,this.dispatchEvent(new CustomEvent("before-render",{detail:{spec:c}}))}catch(e){console.info("RapiDoc: %c There was an issue while parsing the spec %o ","color:orangered",e)}const u=function(e,t=!1,r=!1,n){const o=["get","put","post","delete","patch","head","options"],a=e.tags&&Array.isArray(e.tags)?e.tags.map((e=>({show:!0,elementId:`tag--${e.name.replace(ue,"-")}`,name:e.name,description:e.description||"",headers:e.description?Uc(e.description):[],paths:[],expanded:!1!==e["x-tag-expanded"]}))):[],i=e.paths||{};if(e.webhooks)for(const[t,r]of Object.entries(e.webhooks))r._type="webhook",i[t]=r;for(const r in i){const n=i[r].parameters,s={servers:i[r].servers||[],parameters:i[r].parameters||[]},l="webhook"===i[r]._type;o.forEach((o=>{if(i[r][o]){const i=e.paths[r][o],c=i.tags||[];if(0===c.length)if(t){const e=r.replace(/^\/+|\/+$/g,""),t=e.indexOf("/");-1===t?c.push(e):c.push(e.substr(0,t))}else c.push("General ⦂");c.forEach((t=>{let c,u;var p,d;(e.tags&&(u=e.tags.find((e=>e.name.toLowerCase()===t.toLowerCase()))),c=a.find((e=>e.name===t)),c)||(c={show:!0,elementId:`tag--${t.replace(ue,"-")}`,name:t,description:(null===(p=u)||void 0===p?void 0:p.description)||"",headers:null!==(d=u)&&void 0!==d&&d.description?Uc(u.description):[],paths:[],expanded:!u||!1!==u["x-tag-expanded"]},a.push(c));let h=(i.summary||i.description||`${o.toUpperCase()} ${r}`).trim();h.length>100&&(h=h.split(/[.|!|?]\s|[\r?\n]/)[0]);let f=[];f=n?i.parameters?n.filter((e=>{if(!i.parameters.some((t=>e.name===t.name&&e.in===t.in)))return e})).concat(i.parameters):n.slice(0):i.parameters?i.parameters.slice(0):[],c.paths.push({show:!0,expanded:!1,isWebhook:l,expandedAtLeastOnce:!1,summary:i.summary||"",description:i.description||"",shortSummary:h,method:o,path:r,operationId:i.operationId,elementId:`${o}-${r.replace(ue,"-")}`,servers:i.servers?s.servers.concat(i.servers):s.servers,parameters:f,requestBody:i.requestBody,responses:i.responses,callbacks:i.callbacks,deprecated:i.deprecated,security:i.security,xCodeSamples:i["x-codeSamples"]||i["x-code-samples"]||""})}))}}))}const s=a.filter((e=>e.paths&&e.paths.length>0));return s.forEach((e=>{"method"===n?e.paths.sort(((e,t)=>o.indexOf(e.method).toString().localeCompare(o.indexOf(t.method)))):"summary"===n?e.paths.sort(((e,t)=>e.shortSummary.localeCompare(t.shortSummary))):e.paths.sort(((e,t)=>e.path.localeCompare(t.path))),e.firstPathId=e.paths[0].elementId})),r?s.sort(((e,t)=>e.name.localeCompare(t.name))):s}(c,t,r,n),p=function(e){if(!e.components)return[];const t=[];for(const r in e.components){const n=[];for(const t in e.components[r]){const o={show:!0,id:`${r.toLowerCase()}-${t.toLowerCase()}`.replace(ue,"-"),name:t,component:e.components[r][t]};n.push(o)}let o=r,a=r;switch(r){case"schemas":a="Schemas",o="Schemas allows the definition of input and output data types. These types can be objects, but also primitives and arrays.";break;case"responses":a="Responses",o="Describes responses from an API Operation, including design-time, static links to operations based on the response.";break;case"parameters":a="Parameters",o="Describes operation parameters. A unique parameter is defined by a combination of a name and location.";break;case"examples":a="Examples",o="List of Examples for operations, can be requests, responses and objects examples.";break;case"requestBodies":a="Request Bodies",o="Describes common request bodies that are used across the API operations.";break;case"headers":a="Headers",o='Headers follows the structure of the Parameters but they are explicitly in "header"';break;case"securitySchemes":a="Security Schemes",o="Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), OAuth2's common flows(implicit, password, client credentials and authorization code) as defined in RFC6749, and OpenID Connect Discovery.";break;case"links":a="Links",o="Links represent a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.";break;case"callbacks":a="Callbacks",o="A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the path item object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.";break;default:a=r,o=r}const i={show:!0,name:a,description:o,subComponents:n};t.push(i)}return t||[]}(c),d=null!==(l=c.info)&&void 0!==l&&l.description?Uc(c.info.description):[],h=[];c.components&&c.components.securitySchemes&&Object.entries(c.components.securitySchemes).forEach((e=>{const t={apiKeyId:e[0],...e[1]};t.value="",t.finalKeyValue="","apiKey"===e[1].type||"http"===e[1].type?(t.in=e[1].in||"header",t.name=e[1].name||"Authorization",t.user="",t.password=""):"oauth2"===e[1].type&&(t.in="header",t.name="Authorization",t.clientId="",t.clientSecret=""),h.push(t)})),o&&a&&i&&h.push({apiKeyId:pe,description:"api-key provided in rapidoc element attributes",type:"apiKey",oAuthFlow:"",name:o,in:a,value:i,finalKeyValue:i}),h.forEach((e=>{"http"===e.type?e.typeDisplay="basic"===e.scheme?"HTTP Basic":"HTTP Bearer":"apiKey"===e.type?e.typeDisplay=`API Key (${e.name})`:"oauth2"===e.type?e.typeDisplay=`OAuth (${e.apiKeyId})`:e.typeDisplay=e.type}));let f=[];c.servers&&Array.isArray(c.servers)?(c.servers.forEach((e=>{let t=e.url.trim();t.startsWith("http")||t.startsWith("//")||t.startsWith("{")||window.location.origin.startsWith("http")&&(e.url=window.location.origin+e.url,t=e.url),e.variables&&Object.entries(e.variables).forEach((e=>{const r=new RegExp(`{${e[0]}}`,"g");t=t.replace(r,e[1].default||""),e[1].value=e[1].default||""})),e.computedUrl=t})),s&&c.servers.push({url:s,computedUrl:s})):s?c.servers=[{url:s,computedUrl:s}]:window.location.origin.startsWith("http")?c.servers=[{url:window.location.origin,computedUrl:window.location.origin}]:c.servers=[{url:"http://localhost",computedUrl:"http://localhost"}],f=c.servers;return{info:c.info,infoDescriptionHeaders:d,tags:u,components:p,externalDocs:c.externalDocs,securitySchemes:h,servers:f}}function Uc(e){return Z().lexer(e).filter((e=>"heading"===e.type&&e.depth<=2))||[]}const Mc=new WeakMap,Hc=(e=>(...t)=>{const r=e(...t);return n.set(r,!0),r})((e=>t=>{if(!(t instanceof E))throw new Error("unsafeHTML can only be used in text bindings");const r=Mc.get(t);if(void 0!==r&&w(e)&&e===r.value&&t.value===r.fragment)return;const n=document.createElement("template");n.innerHTML=e;const o=document.importNode(n.content,!0);t.setValue(o),Mc.set(t,{value:e,fragment:o})}));function Vc(e,t){let r="";const n=this.resolvedSpec.securitySchemes.find((t=>t.apiKeyId===e));if(n){const e=t.target.closest("tr");if(n.type&&n.scheme&&"http"===n.type&&"basic"===n.scheme.toLowerCase()){const t=e.querySelector(".api-key-user").value.trim(),n=e.querySelector(".api-key-password").value.trim();t&&n&&(r=`Basic ${btoa(`${t}:${n}`)}`)}else r=e.querySelector(".api-key-input").value.trim(),r&&n.scheme&&"bearer"===n.scheme.toLowerCase()&&(r=`Bearer ${r}`);n.finalKeyValue=r}this.requestUpdate()}function Wc(){this.resolvedSpec.securitySchemes.forEach((e=>{e.user="",e.password="",e.value="",e.finalKeyValue=""})),this.requestUpdate()}function Yc(e,t="Bearer",r){this.resolvedSpec.securitySchemes.find((t=>t.apiKeyId===e)).finalKeyValue=`${"bearer"===t.toLowerCase()?"Bearer":"mac"===t.toLowerCase()?"MAC":t} ${r}`,this.requestUpdate()}async function Kc(e,t,r,n,o,a,i="header",s,l,c=null){const u=l?l.querySelector(".oauth-resp-display"):void 0,p=new URLSearchParams,d=new Headers;p.append("grant_type",o),"client_credentials"!==o&&p.append("redirect_uri",n),a&&(p.append("code",a),p.append("code_verifier","731DB1C3F7EA533B85E29492D26AA-1234567890-1234567890")),"header"===i?d.set("Authorization",`Basic ${btoa(`${t}:${r}`)}`):(p.append("client_id",t),p.append("client_secret",r)),c&&p.append("scope",c);try{const t=await fetch(e,{method:"POST",headers:d,body:p}),r=await t.json();if(!t.ok)return u&&(u.innerHTML=`<span style="color:var(--red)">${r.error_description||r.error_description||"Unable to get access token"}</span>`),!1;if(r.token_type&&r.access_token)return Yc.call(this,s,r.token_type,r.access_token),u&&(u.innerHTML='<span style="color:var(--green)">Access Token Received</span>'),!0}catch(e){return u&&(u.innerHTML='<span style="color:var(--red)">Failed to get access token</span>'),!1}}async function Gc(e,t,r,n,o,a,i,s,l,c){sessionStorage.removeItem("winMessageEventActive"),t.close(),e.data.fake||(e.data||console.warn("RapiDoc: Received no data with authorization message"),e.data.error&&console.warn("RapiDoc: Error while receiving data"),e.data&&("code"===e.data.responseType?Kc.call(this,r,n,o,a,i,e.data.code,s,l,c):"token"===e.data.responseType&&Yc.call(this,l,e.data.token_type,e.data.access_token)))}async function Jc(e,t,r,n,o){const a=o.target.closest(".oauth-flow"),i=a.querySelector(".oauth-client-id")?a.querySelector(".oauth-client-id").value.trim():"",s=a.querySelector(".oauth-client-secret")?a.querySelector(".oauth-client-secret").value.trim():"",l=a.querySelector(".oauth-send-client-secret-in")?a.querySelector(".oauth-send-client-secret-in").value.trim():"header",c=[...a.querySelectorAll(".scope-checkbox:checked")],u=a.querySelector(`#${e}-pkce`),p=`${Math.random().toString(36)}random`.slice(2,9),d=new URL(`${window.location.origin}${window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))}/${this.oauthReceiver}`);let h,f="",m="";if([...a.parentNode.querySelectorAll(".oauth-resp-display")].forEach((e=>{e.innerHTML=""})),"authorizationCode"===t||"implicit"===t){const o=new URL(r);"authorizationCode"===t?(f="authorization_code",m="code"):"implicit"===t&&(m="token");const g=new URLSearchParams(o.search),y=c.map((e=>e.value)).join(" ");y&&g.set("scope",y),g.set("client_id",i),g.set("redirect_uri",d.toString()),g.set("response_type",m),g.set("state",p),u&&u.checked&&(g.set("code_challenge","4FatVDBJKPAo4JgLLaaQFMUcQPn5CrPRvLlaob9PTYc"),g.set("code_challenge_method","S256")),g.set("show_dialog",!0),o.search=g.toString(),"true"===sessionStorage.getItem("winMessageEventActive")&&window.postMessage({fake:!0},this),setTimeout((()=>{h=window.open(o.toString()),h?(sessionStorage.setItem("winMessageEventActive","true"),window.addEventListener("message",(t=>Gc.call(this,t,h,n,i,s,d.toString(),f,l,e,a)),{once:!0})):console.error(`RapiDoc: Unable to open ${o.toString()} in a new window`)}),10)}else if("clientCredentials"===t){f="client_credentials";const t=c.map((e=>e.value)).join(" ");Kc.call(this,n,i,s,d.toString(),f,"",l,e,a,t)}}function Zc(e,t,r,n,o){let a=o.authorizationUrl,i=o.tokenUrl,s=o.refreshUrl;const l=e=>e.indexOf("://")>0||0===e.indexOf("//");let c;return s&&!l(s)&&(s=`${this.selectedServer.computedUrl}/${s.replace(/^\//,"")}`),i&&!l(i)&&(i=`${this.selectedServer.computedUrl}/${i.replace(/^\//,"")}`),a&&!l(a)&&(a=`${this.selectedServer.computedUrl}/${a.replace(/^\//,"")}`),c="authorizationCode"===e?"Authorization Code Flow":"clientCredentials"===e?"Client Credentials Flow":"implicit"===e?"Implicit Flow":"password"===e?"Password Flow":e,I` <div class="oauth-flow" style="padding:12px 0;margin-bottom:12px"> <div class="tiny-title upper" style="margin-bottom:8px">${c}</div> ${a?I`<div style="margin-bottom:5px"><span style="width:75px;display:inline-block">Auth URL</span> <span class="mono-font"> ${a} </span></div>`:""} ${i?I`<div style="margin-bottom:5px"><span style="width:75px;display:inline-block">Token URL</span> <span class="mono-font">${i}</span></div>`:""} ${s?I`<div style="margin-bottom:5px"><span style="width:75px;display:inline-block">Refresh URL</span> <span class="mono-font">${s}</span></div>`:""} ${"authorizationCode"===e||"clientCredentials"===e||"implicit"===e||"password"===e?I` ${o.scopes?I` <span> Scopes </span> <div class="oauth-scopes" part="section-auth-scopes" style="width:100%;display:flex;flex-direction:column;flex-wrap:wrap;margin:0 0 10px 24px"> ${Object.entries(o.scopes).map(((t,r)=>I` <div class="m-checkbox" style="display:inline-flex;align-items:center"> <input type="checkbox" part="checkbox checkbox-auth-scope" class="scope-checkbox" id="${n}${e}${r}" value="${t[0]}"> <label for="${n}${e}${r}" style="margin-left:5px;cursor:pointer"> <span class="mono-font">${t[0]}</span> ${t[0]!==t[1]?` - ${t[1]||""}`:""} </label> </div> `))} </div> `:""} <div> ${"authorizationCode"===e?I` <div style="margin:16px 0 4px"> <input type="checkbox" part="checkbox checkbox-auth-scope" id="${n}-pkce" checked="checked"> <label for="${n}-pkce" style="margin:0 16px 0 4px;line-height:24px;cursor:pointer"> Send Proof Key for Code Exchange (PKCE) </label> </div> `:""} <input type="text" part="textbox textbox-auth-client-id" value="${t||""}" placeholder="client-id" spellcheck="false" class="oauth-client-id"> ${"authorizationCode"===e||"clientCredentials"===e||"password"===e?I` <input type="password" part="textbox textbox-auth-client-secret" value="${r||""}" placeholder="client-secret" spellcheck="false" class="oauth-client-secret" style="margin:0 5px"> ${"authorizationCode"===e||"clientCredentials"===e?I` <select style="margin-right:5px" class="oauth-send-client-secret-in"> <option value="header" selected="selected"> Authorization Header </option> <option value="request-body"> Request Body </option> </select>`:""} `:I`<div style="width:5px"></div>`} ${"authorizationCode"===e||"clientCredentials"===e||"implicit"===e?I` <button class="m-btn thin-border" part="btn btn-outline" @click="${t=>{Jc.call(this,n,e,a,i,t)}}"> GET TOKEN </button>`:""} </div> ${"password"===e?I` <div style="display:flex;max-height:28px;margin-top:2px"> <input type="text" value="" placeholder="username" spellcheck="false" class="api-key-user" part="textbox textbox-username"> <input type="password" value="" placeholder="password" spellcheck="false" class="api-key-password" style="margin:0 5px" part="textbox textbox-password"> </div>`:""} <div class="oauth-resp-display red-text small-font-size"></div> `:""} </div> `}function Xc(){var e;if(!this.resolvedSpec)return"";const t=null===(e=this.resolvedSpec.securitySchemes)||void 0===e?void 0:e.filter((e=>e.finalKeyValue));return t?I` <section id="auth" part="section-auth" style="margin-top:24px;margin-bottom:24px" class="observe-me ${"read focused".includes(this.renderStyle)?"section-gap--read-mode":"section-gap "}"> <div class="sub-title regular-font"> AUTHENTICATION </div> <div class="small-font-size" style="display:flex;align-items:center;min-height:30px"> ${t.length>0?I` <div class="blue-text"> ${t.length} API key applied </div> <div style="flex:1"></div> <button class="m-btn thin-border" part="btn btn-outline" @click="${()=>{Wc.call(this)}}">CLEAR ALL API KEYS</button>`:I`<div class="red-text">No API key applied</div>`} </div> ${this.resolvedSpec.securitySchemes&&this.resolvedSpec.securitySchemes.length>0?I` <table class="m-table padded-12" style="width:100%"> ${this.resolvedSpec.securitySchemes.map((e=>I` <tr> <td style="max-width:500px;overflow-wrap:break-word"> <div style="line-height:28px;margin-bottom:5px"> <span style="font-weight:700;font-size:var(--font-size-regular)">${e.typeDisplay}</span> ${e.finalKeyValue?I` <span class="blue-text"> ${e.finalKeyValue?"Key Applied":""} </span> <button class="m-btn thin-border small" part="btn btn-outline" @click="${()=>{e.finalKeyValue="",this.requestUpdate()}}">REMOVE</button> `:""} </div> ${e.description?I` <div class="m-markdown"> ${Hc(Z()(e.description||""))} </div>`:""} ${"apikey"===e.type.toLowerCase()||"http"===e.type.toLowerCase()&&"bearer"===e.scheme.toLowerCase()?I` <div style="margin-bottom:5px"> ${"apikey"===e.type.toLowerCase()?I`Send <code>${e.name}</code> in <code>${e.in}</code> with the given value`:I`Send <code>Authorization</code> in <code>header</code> containing the word <code>Bearer</code> followed by a space and a Token String.`} </div> <div style="max-height:28px"> ${"cookie"!==e.in?I` <input type="text" value="${e.value}" class="api-key-input" placeholder="api-token" spellcheck="false"> <button class="m-btn thin-border" style="margin-left:5px" part="btn btn-outline" @click="${t=>{Vc.call(this,e.apiKeyId,t)}}"> ${e.finalKeyValue?"UPDATE":"SET"} </button>`:""} </div>`:""} ${"http"===e.type.toLowerCase()&&"basic"===e.scheme.toLowerCase()?I` <div style="margin-bottom:5px"> Send <code>Authorization</code> in <code>header</code> containing the word <code>Basic</code> followed by a space and a base64 encoded string of <code>username:password</code>. </div> <div> <input type="text" value="${e.user}" placeholder="username" spellcheck="false" class="api-key-user" style="width:100px"> <input type="password" value="${e.password}" placeholder="password" spellcheck="false" class="api-key-password" style="width:100px;margin:0 5px"> <button class="m-btn thin-border" @click="${t=>{Vc.call(this,e.apiKeyId,t)}}" part="btn btn-outline"> ${e.finalKeyValue?"UPDATE":"SET"} </button> </div>`:""} </td> </tr> ${"oauth2"===e.type.toLowerCase()?I` <tr> <td style="border:none;padding-left:48px"> ${Object.keys(e.flows).map((t=>Zc.call(this,t,e["x-client-id"],e["x-client-secret"],e.apiKeyId,e.flows[t])))} </td> </tr> `:""} `))} </table>`:""} <slot name="auth"></slot> </section> `:void 0}function Qc(e){if(this.resolvedSpec.securitySchemes&&e){const t=[];return e.forEach((e=>{const r=[],n=[];let o="";Object.keys(e).forEach((t=>{const a=this.resolvedSpec.securitySchemes.find((e=>e.apiKeyId===t));!o&&Array.isArray(e[t])&&(o=e[t].join(", ")),a&&(n.push(a.typeDisplay),r.push(a))})),t.push({pathScopes:o,securityTypes:n.length>1?`${n[0]} + ${n.length-1} more`:n[0],securityDefs:r})})),I`<div style="position:absolute;top:3px;right:2px;font-size:var(--font-size-small);line-height:1.5"> <div style="position:relative;display:flex;min-width:350px;max-width:700px;justify-content:flex-end"> <svg width="16" height="24"> <g> <path style="fill:var(--fg3)" d="m13.8,8.5l0,-2.6l0,0c0,-3.2 -2.6,-5.8 -5.8,-5.8s-5.8,2.6 -5.8,5.8l0,0l0,2.6l-2.1,0l0,11.2l16,0l0,-11.2l-2.1,0l-0,0l0,0l0,0l-0,0zm-9.8,-2.6c0,0 0,0 0,0c0,-2.2 1.8,-4 4,-4c2.2,0 4,1.8 4,4c0,0 0,0 0,0l0,2.6l-8.03,0l0,-2.6l0,0l0,0z"/> </g> </svg> ${t.map(((e,t)=>I` ${e.securityTypes?I` ${0!==t?I`<div style="padding:3px 4px"> OR </div>`:""} <div class="tooltip"> <div style="padding:2px 4px;white-space:nowrap;text-overflow:ellipsis;max-width:150px;overflow:hidden"> <a part="anchor anchor-operation-security" href="#auth"> ${e.securityTypes} </a> </div> <div class="tooltip-text" style="position:absolute;color:var(--fg);top:26px;right:0;border:1px solid var(--border-color);padding:2px 4px;display:block"> ${e.securityDefs.length>1?I`<div>Requires <b>all</b> of the following </div>`:""} <div style="padding-left:8px"> ${e.securityDefs.map(((t,r)=>I` ${"oauth2"===t.type?I` <div> ${e.securityDefs.length>1?I`<b>${r+1}.</b> `:"Needs"} OAuth Token <span style="font-family:var(--font-mono);color:var(--primary-color)">${t.apiKeyId}</span> in <b>Authorization header</b> ${""!==e.pathScopes?I` <div> <b>Required scopes:</b> <br> <div style="margin-left:8px"> ${e.pathScopes.split(",").map(((e,t)=>I`${0===t?"":"┃"}<span>${e}</span>`))} </div> </div>`:""} </div>`:"http"===t.type?I` <div> ${e.securityDefs.length>1?I`<b>${r+1}.</b> `:I`Requires`} ${"basic"===t.scheme?"Base 64 encoded username:password":"Bearer Token"} in <b>Authorization header</b> </div>`:I` <div> ${e.securityDefs.length>1?I`<b>${r+1}.</b> `:I`Requires`} Token in <b>${t.name} ${t.in}</b> </div>`} `))} </div> </div> </div> `:""} `))} </div> </div>`}return""}function eu(e){return I` <section class="table-title" style="margin-top:24px">CODE SAMPLES <div class="tab-panel col" @click="${e=>{if(!e.target.classList.contains("tab-btn"))return;const t=e.target.dataset.tab,r=[...e.currentTarget.querySelectorAll(".tab-btn")],n=[...e.currentTarget.querySelectorAll(".tab-content")];r.forEach((e=>e.classList[e.dataset.tab===t?"add":"remove"]("active"))),n.forEach((e=>{e.style.display=e.dataset.tab===t?"block":"none"}))}}"> <div class="tab-buttons row" style="width:100"> ${e.map(((e,t)=>I`<button class="tab-btn ${0===t?"active":""}" data-tab="${e.lang}${t}"> ${e.label||e.lang} </button>`))} </div> ${e.map(((e,t)=>{var r,n,o;return I` <div class="tab-content m-markdown" style="display:${0===t?"block":"none"}" data-tab="${e.lang}${t}"> <button class="toolbar-btn" style="position:absolute;top:12px;right:8px" @click="${t=>{he(e.source,t)}}"> Copy </button> <pre><code class="language">${Q().languages[null===(r=e.lang)||void 0===r?void 0:r.toLowerCase()]?Hc(Q().highlight(e.source,Q().languages[null===(n=e.lang)||void 0===n?void 0:n.toLowerCase()],null===(o=e.lang)||void 0===o?void 0:o.toLowerCase())):e.source}</code></pre> </div>`}))} </div></section>`}function tu(e){return I` <div class="req-res-title" style="margin-top:12px">CALLBACKS</div> ${Object.entries(e).map((e=>I` <div class="tiny-title" style="padding:12px;border:1px solid var(--light-border-color)"> ${e[0]} ${Object.entries(e[1]).map((e=>I` <div class="mono-font small-font-size" style="display:flex;margin-left:16px"> <div> ${Object.entries(e[1]).map((t=>{var r,n,o;return I` <div> <div style="margin-top:12px"> <div class="method method-fg ${t[0]}" style="width:70px;border:none;margin:0;padding:0;line-height:20px;vertical-align:baseline;text-align:left"> <span style="font-size:20px"> ⥄ </span> ${t[0]} </div> <span style="line-height:20px;vertical-align:baseline">${e[0]} </span> </div> <div class="expanded-req-resp-container"> <api-request class="${this.renderStyle}-mode callback" style="width:100%" callback="true" method="${t[0]||""}" , path="${e[0]||""}" .parameters="${(null===(r=t[1])||void 0===r?void 0:r.parameters)||""}" .request_body="${(null===(n=t[1])||void 0===n?void 0:n.requestBody)||""}" fill-request-fields-with-example="${this.fillRequestFieldsWithExample}" allow-try="false" render-style="${this.renderStyle}" schema-style="${this.schemaStyle}" active-schema-tab="${this.defaultSchemaTab}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" , schema-hide-read-only="${this.schemaHideReadOnly}" fetch-credentials="${this.fetchCredentials}" exportparts="btn btn-fill btn-outline btn-try"> </api-request> <api-response style="width:100%" class="${this.renderStyle}-mode" callback="true" .responses="${null===(o=t[1])||void 0===o?void 0:o.responses}" render-style="${this.renderStyle}" schema-style="${this.schemaStyle}" active-schema-tab="${this.defaultSchemaTab}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" exportparts="btn--resp btn-fill--resp btn-outline--resp"> </api-response> </div> </div> `}))} </div> </div> `))} </div> `))} `}const ru=Y`.border-top{border-top:1px solid var(--border-color)}.border{border:1px solid var(--border-color);border-radius:var(--border-radius)}.light-border{border:1px solid var(--light-border-color);border-radius:var(--border-radius)}.pad-8-16{padding:8px 16px}.pad-top-8{padding-top:8px}.mar-top-8{margin-top:8px}`;function nu(e){if(!e)return;let t="",r="";if(e.$ref){const r=e.$ref.lastIndexOf("/");t=`{recursive: ${e.$ref.substring(r+1)}} `}else e.type?(t=Array.isArray(e.type)?e.type.join("┃"):e.type,(e.format||e.enum)&&(t=t.replace("string",e.enum?"enum":e.format)),e.nullable&&(t+="┃null")):t="{missing-type-info}";const n={type:t,format:e.format||"",pattern:e.pattern&&!e.enum?e.pattern:"",readOrWriteOnly:e.readOnly?"ðŸ†":e.writeOnly?"🆆":"",deprecated:e.deprecated?"âŒ":"",examples:e.examples||e.example,default:e.default||"",description:e.description||"",constrain:"",allowedValues:"",arrayType:"",html:""};if("{recursive}"===n.type?n.description=e.$ref.substring(e.$ref.lastIndexOf("/")+1):"{missing-type-info}"===n.type&&(n.description=n.description||""),n.allowedValues=Array.isArray(e.enum)?e.enum.join("┃"):"","array"===t&&e.items){var o,a,i;const t=null===(o=e.items)||void 0===o?void 0:o.type,r=void 0!==(null===(a=e.items)||void 0===a?void 0:a.default)?e.items.default:"";n.arrayType=`${e.type} of ${Array.isArray(t)?t.join(""):t}`,n.default=r,n.allowedValues=Array.isArray(null===(i=e.items)||void 0===i?void 0:i.enum)?e.items.enum.join("┃"):""}return t.match(/integer|number/g)&&(void 0===e.minimum&&void 0===e.exclusiveMinimum||(r+=void 0!==e.minimum?`Min ${e.minimum}`:`More than ${e.exclusiveMinimum}`),void 0===e.maximum&&void 0===e.exclusiveMaximum||(r+=void 0!==e.maximum?`${r?"┃":""}Max ${e.maximum}`:`${r?"┃":""}Less than ${e.exclusiveMaximum}`),void 0!==e.multipleOf&&(r+=`${r?"┃":""} multiple of ${e.multipleOf}`)),t.match(/string/g)&&(void 0!==e.minLength&&void 0!==e.maxLength?r+=`${r?"┃":""}${e.minLength} to ${e.maxLength} chars`:void 0!==e.minLength?r+=`${r?"┃":""}Min ${e.minLength} chars`:void 0!==e.maxLength&&(r+=`Max ${r?"┃":""}${e.maxLength} chars`)),n.constrain=r,n.html=`${n.type}~|~${n.readOrWriteOnly}~|~${n.constrain}~|~${n.default}~|~${n.allowedValues}~|~${n.pattern}~|~${n.description}~|~${e.title||""}~|~${n.deprecated?"deprecated":""}`,n}function ou(e,t="string"){let r,n;if(e){if(e.constructor===Object){const t=Object.values(e);r=t.length>0?"boolean"==typeof t[0].value||"number"==typeof t[0].value?t[0].value.toString():t[0].value:"",n=Object.values(e).map((e=>({value:"boolean"==typeof e.value||"number"==typeof e.value?e.value.toString():e.value,description:e.description||e.summary||e.value})))}else Array.isArray(e)||(e=e?[e]:[]),e.length>0&&("array"===t?(r=e[0],n=e.map((e=>({value:e,description:Array.isArray(e)?e.join(" , "):e})))):(r=e[0].toString(),n=e.map((e=>({value:e.toString(),description:e})))));return{exampleVal:r,exampleList:n}}return{exampleVal:"",exampleList:[]}}function au(e){const t=e.examples?e.examples[0]:e.example?e.example:void 0;if(""===t)return"";if(null===t)return null;if(0===t)return 0;if(t)return t;if(0===Object.keys(e).length)return null;if(e.$ref)return e.$ref;const r=Array.isArray(e.type)?e.type[0]:e.type;if(!r)return"?";if(r.match(/^integer|^number/g)){const t=Number.isNaN(Number(e.multipleOf))?void 0:Number(e.multipleOf),n=Number.isNaN(Number(e.maximum))?void 0:Number(e.maximum),o=Number.isNaN(Number(e.minimum))?Number.isNaN(Number(e.exclusiveMinimum))?n||0:Number(e.exclusiveMinimum)+(r.startsWith("integer")?1:.001):Number(e.minimum);return t?t>=o?t:o%t==0?o:Math.ceil(o/t)*t:o}if(r.match(/^boolean/g))return!1;if(r.match(/^null/g))return null;if(r.match(/^string/g)){if(e.enum)return e.enum[0];if(e.pattern)return e.pattern;if(!e.format){const t=Number.isNaN(e.minLength)?void 0:Number(e.minLength),r=Number.isNaN(e.maxLength)?void 0:Number(e.maxLength),n=t||(r>6?6:r||void 0);return n?"A".repeat(n):"string"}switch(e.format.toLowerCase()){case"url":case"uri":return"http://example.com";case"date":return new Date(0).toISOString().split("T")[0];case"time":return new Date(0).toISOString().split("T")[1];case"date-time":return new Date(0).toISOString();case"duration":return"P3Y6M4DT12H30M5S";case"email":case"idn-email":return"user@example.com";case"hostname":case"idn-hostname":return"www.example.com";case"ipv4":return"198.51.100.42";case"ipv6":return"2001:0db8:5b96:0000:0000:426f:8e17:642a";default:return e.format}}return"?"}function iu(e,t=1){const r=" ".repeat(t);let n="";if(1===t&&"object"!=typeof e)return`\n${r}${e.toString()}`;for(const o in e)n=Array.isArray(e[o])||"object"==typeof e[o]?`${n}\n${r}<${o}> ${iu(e[o],t+1)}\n${r}</${o}>`:`${n}\n${r}<${o}> ${e[o].toString()} </${o}>`;return n}function su(e,t){"object"==typeof t&&null!==t&&(e.title&&(t["::TITLE"]=e.title),e.description&&(t["::DESCRIPTION"]=e.description))}function lu(e){if("object"==typeof e&&null!==e){delete e["::TITLE"],delete e["::DESCRIPTION"];for(const t in e)lu(e[t])}}function cu(e,t,r){for(const n in t)t[n][r]=e}function uu(e,t,r){let n=0;const o={};for(const a in e){for(const i in r)if(o[`example-${n}`]={...e[a]},o[`example-${n}`][t]=r[i],n++,n>=10)break;if(n>=10)break}return o}function pu(e,t={}){let r={};if(e){if(e.allOf){const n={};if(1===e.allOf.length&&!e.allOf[0].properties&&!e.allOf[0].items){if(e.allOf[0].$ref)return"{ }";if(e.allOf[0].readOnly&&t.includeReadOnly){return au(e.allOf[0])}return}e.allOf.forEach((e=>{if("object"===e.type||e.properties||e.allOf||e.anyOf||e.oneOf){const r=pu(e,t);Object.assign(n,r)}else if("array"===e.type||e.items){const r=[pu(e,t)];Object.assign(n,r)}else{if(!e.type)return"";{const t=`prop${Object.keys(n).length}`;n[t]=au(e)}}})),r=n}else if(e.oneOf){if(e.oneOf.length>0){let n=0;for(const o in e.oneOf){const a=pu(e.oneOf[o],t);for(const t in a)r[`example-${n}`]=a[t],su(e.oneOf[o],r[`example-${n}`]),n++}}}else if(e.anyOf){let n;if("object"===e.type||e.properties){n={"example-0":{}};for(const r in e.properties){if(e.example){n=e;break}e.properties[r].deprecated&&!t.includeDeprecated||(e.properties[r].readOnly&&!t.includeReadOnly||e.properties[r].writeOnly&&!t.includeWriteOnly||(n=uu(n,r,pu(e.properties[r],t))))}}let o=0;for(const a in e.anyOf){const i=pu(e.anyOf[a],t);for(const t in i){if(void 0!==n)for(const e in n)r[`example-${o}`]={...n[e],...i[t]};else r[`example-${o}`]=i[t];su(e.anyOf[a],r[`example-${o}`]),o++}}}else if("object"===e.type||e.properties)if(r["example-0"]={},su(e,r["example-0"]),e.example)r["example-0"]=e.example;else for(const a in e.properties){var n,o;if(!e.properties[a].deprecated||t.includeDeprecated)if(!e.properties[a].readOnly||t.includeReadOnly)if(!e.properties[a].writeOnly||t.includeWriteOnly)if("array"===e.properties[a].type||e.properties[a].items)if(e.properties[a].example)cu(e.properties[a].example,r,a);else if(null!==(n=e.properties[a])&&void 0!==n&&null!==(o=n.items)&&void 0!==o&&o.example)cu([e.properties[a].items.example],r,a);else{const n=pu(e.properties[a].items,t),o=[];for(const e in n)o[e]=[n[e]];r=uu(r,a,o)}else r=uu(r,a,pu(e.properties[a],t))}else{if("array"!==e.type&&!e.items)return{"example-0":au(e)};var a;if(e.example)r["example-0"]=e.example;else if(null!==(a=e.items)&&void 0!==a&&a.example)r["example-0"]=[e.items.example];else{const n=pu(e.items,t);let o=0;for(const t in n)r[`example-${o}`]=[n[t]],su(e.items,r[`example-${o}`]),o++}}return r}}function du(e,t,r=0,n=""){if(e){if(e.allOf){const n={};if(1===e.allOf.length&&!e.allOf[0].properties&&!e.allOf[0].items){return`${nu(e.allOf[0]).html}`}e.allOf.map(((e,t)=>{if("object"===e.type||e.properties||e.allOf||e.anyOf||e.oneOf){const o=(e.anyOf||e.oneOf)&&t>0?t:"",a=du(e,{},r+1,o);Object.assign(n,a)}else if("array"===e.type||e.items){const t=du(e,{},r+1);Object.assign(n,t)}else{if(!e.type)return"";{const t=`prop${Object.keys(n).length}`,r=nu(e);n[t]=`${r.html}`}}})),t=n}else if(e.anyOf||e.oneOf){if(t["::description"]=e.description||"","object"===e.type||e.properties){t["::description"]=e.description||"",t["::type"]="object";for(const n in e.properties)e.required&&e.required.includes(n)?t[`${n}*`]=du(e.properties[n],{},r+1):t[n]=du(e.properties[n],{},r+1)}const o={},a=e.anyOf?"anyOf":"oneOf";e[a].forEach(((e,t)=>{if("object"===e.type||e.properties||e.allOf||e.anyOf||e.oneOf){const r=du(e,{});o[`::OPTION~${t+1}${e.title?`~${e.title}`:""}`]=r,o["::type"]="xxx-of-option"}else if("array"===e.type||e.items){const r=du(e,{});o[`::OPTION~${t+1}${e.title?`~${e.title}`:""}`]=r,o["::type"]="xxx-of-array"}else{const r=`::OPTION~${t+1}${e.title?`~${e.title}`:""}`;o[r]=`${nu(e).html}`,o["::type"]="xxx-of-option"}})),t[e.anyOf?`::ANY~OF ${n}`:`::ONE~OF ${n}`]=o,t["::type"]="xxx-of"}else if(Array.isArray(e.type)){const n=JSON.parse(JSON.stringify(e)),i=[],s=[];let l;var o;if(n.type.forEach((e=>{var t,r;e.match(/integer|number|string|null|boolean/g)?i.push(e):"array"===e&&"string"==typeof(null===(t=n.items)||void 0===t?void 0:t.type)&&null!==(r=n.items)&&void 0!==r&&r.type.match(/integer|number|string|null|boolean/g)?"string"===n.items.type&&n.items.format?i.push(`[${n.items.format}]`):i.push(`[${n.items.type}]`):s.push(e)})),i.length>0)if(n.type=i.join("┃"),l=nu(n),0===s.length)return`${(null===(o=l)||void 0===o?void 0:o.html)||""}`;if(s.length>0){var a;t["::type"]="xxx-of";const o={"::type":"xxx-of-option"};s.forEach(((t,a)=>{if("null"===t)o[`::OPTION~${a+1}`]="NULL~|~~|~~|~~|~~|~~|~~|~~|~";else if("integer, number, string, boolean,".includes(`${t},`)){n.type=Array.isArray(t)?t.join("┃"):t;const e=nu(n);o[`::OPTION~${a+1}`]=e.html}else if("object"===t){const t={"::description":e.description||"","::type":"object","::deprecated":e.deprecated||!1};for(const n in e.properties)e.required&&e.required.includes(n)?t[`${n}*`]=du(e.properties[n],{},r+1):t[n]=du(e.properties[n],{},r+1);o[`::OPTION~${a+1}`]=t}else"array"===t&&(o[`::OPTION~${a+1}`]={"::description":e.description||"","::type":"array","::props":du(e.items,{},r+1)})})),o[`::OPTION~${s.length+1}`]=(null===(a=l)||void 0===a?void 0:a.html)||"",t["::ONE~OF"]=o}}else if("object"===e.type||e.properties){t["::description"]=e.description||"",t["::type"]="object",t["::deprecated"]=e.deprecated||!1;for(const n in e.properties)e.required&&e.required.includes(n)?t[`${n}*`]=du(e.properties[n],{},r+1):t[n]=du(e.properties[n],{},r+1);e.additionalProperties&&(t["<any-key>"]=du(e.additionalProperties,{}))}else{if("array"!==e.type&&!e.items){const t=nu(e);return null!=t&&t.html?`${t.html}`:""}var i;t["::description"]=e.description?e.description:null!==(i=e.items)&&void 0!==i&&i.description?`array<${e.items.description}>`:"",t["::type"]="array",t["::props"]=du(e.items,{},r+1)}return t}}function hu(e="",t="",r,n,o=!0,a=!0,i){const s=[];if(e)for(const t in e){let r="",o="json";if(n.toLowerCase().includes("json")){if("text"===i)r="string"==typeof e[t].value?e[t].value:JSON.stringify(e[t].value,void 0,2),o="text";else if(r=e[t].value,"string"==typeof e[t].value)try{const n=e[t].value.replace(/([\w]+)(:)/g,'"$1"$2').replace(/'/g,'"');r=JSON.parse(n),o="json"}catch(n){o="text",r=e[t].value}}else r=e[t].value,o="text";s.push({exampleId:t,exampleSummary:e[t].summary||t,exampleDescription:e[t].description||"",exampleType:n,exampleValue:r,exampleFormat:o})}else if(t){let e="",r="json";if(n.toLowerCase().includes("json")){if("text"===i)e="string"==typeof t?t:JSON.stringify(t,void 0,2),r="text";else if("object"==typeof t)e=t,r="json";else if("string"==typeof t)try{e=JSON.parse(t),r="json"}catch(n){r="text",e=t}}else e=t,r="text";s.push({exampleId:"Example",exampleSummary:"",exampleDescription:"",exampleType:n,exampleValue:e,exampleFormat:r})}if(0===s.length)if(r)if(r.example)s.push({exampleId:"Example",exampleSummary:"",exampleDescription:"",exampleType:n,exampleValue:r.example,exampleFormat:n.toLowerCase().includes("json")&&"object"==typeof r.example?"json":"text"});else if(n.toLowerCase().includes("json")||n.toLowerCase().includes("text")||n.toLowerCase().includes("*/*")||n.toLowerCase().includes("xml")){let e="",t="",l="",c="";n.toLowerCase().includes("xml")?(e=r.xml&&r.xml.name?`<${r.xml.name}>`:"<root>",t=r.xml&&r.xml.name?`</${r.xml.name}>`:"</root>",l="text"):l=i;const u=pu(r,{includeReadOnly:o,includeWriteOnly:a,deprecated:!0});let p=0;for(const r in u){if(!u[r])continue;const o=u[r]["::TITLE"]||"Example "+ ++p,a=u[r]["::DESCRIPTION"]||"";lu(u[r]),c=n.toLowerCase().includes("xml")?`${e}${iu(u[r])}\n${t}`:"text"===i?JSON.stringify(u[r],null,2):u[r],s.push({exampleId:r,exampleSummary:o,exampleDescription:a,exampleType:n,exampleFormat:l,exampleValue:c})}}else s.push({exampleId:"Example",exampleSummary:"",exampleDescription:"",exampleType:n,exampleValue:"",exampleFormat:"text"});else s.push({exampleId:"Example",exampleSummary:"",exampleDescription:"",exampleType:n,exampleValue:"",exampleFormat:"text"});return s}customElements.define("json-tree",class extends G{static get properties(){return{data:{type:Object},renderStyle:{type:String,attribute:"render-style"}}}static get styles(){return[ee,ru,te,Y`:host{display:flex}.json-tree{font-family:var(--font-mono);font-size:var(--font-size-small);display:inline-block;overflow:hidden;word-break:break-all;flex:1;line-height:calc(var(--font-size-small) + 6px)}.open-bracket{display:inline-block;padding:0 20px 0 0;cursor:pointer;border:1px solid transparent;border-radius:3px}.open-bracket:hover{color:var(--primary-color);background-color:var(--hover-color);border:1px solid var(--border-color)}.inside-bracket{padding-left:12px;border-left:1px dotted var(--border-color)}.open-bracket.collapsed+.inside-bracket,.open-bracket.collapsed+.inside-bracket+.close-bracket{display:none}.string{color:var(--green)}.number{color:var(--blue)}.null{color:var(--red)}.boolean{color:var(--purple)}.object{color:var(--fg)}.toolbar{position:absolute;top:5px;right:6px;display:flex;padding:2px;align-items:center}`,ce]}render(){return I` <div class="json-tree"> <div class="toolbar"> <button class="toolbar-btn" part="btn btn-fill" @click="${e=>{he(JSON.stringify(this.data,null,2),e)}}"> Copy </button> </div> ${this.generateTree(this.data,!0)} </div> `}generateTree(e,t=!1){if(null===e)return I`<div class="null" style="display:inline">null</div>`;if("object"==typeof e&&e instanceof Date==!1){const r=Array.isArray(e)?"array":"pure_object";return 0===Object.keys(e).length?I`${Array.isArray(e)?"[ ],":"{ },"}`:I` <div class="open-bracket expanded ${"array"===r?"array":"object"}" @click="${this.toggleExpand}"> ${"array"===r?"[":"{"}</div> <div class="inside-bracket"> ${Object.keys(e).map(((t,n,o)=>I` <div class="item"> ${"pure_object"===r?I`${t}:`:""} ${this.generateTree(e[t],n===o.length-1)} </div>`))} </div> <div class="close-bracket">${"array"===r?"]":"}"}${t?"":","}</div> `}return"string"==typeof e||e instanceof Date?I`<span class="${typeof e}">"${e}"</span>${t?"":","}`:I`<span class="${typeof e}">${e}</span>${t?"":","}`}toggleExpand(e){const t=e.target;t.classList.contains("expanded")?(t.classList.replace("expanded","collapsed"),e.target.innerHTML=e.target.classList.contains("array")?"[...]":"{...}"):(t.classList.replace("collapsed","expanded"),e.target.innerHTML=e.target.classList.contains("array")?"[":"{")}});const fu=Y`*,:after,:before{box-sizing:border-box}.tr{display:flex;flex:none;width:100%;box-sizing:content-box;border-bottom:1px dotted transparent}.td{display:block;flex:0 0 auto}.key{font-family:var(--font-mono);white-space:normal;word-break:break-all}.collapsed-descr .key{overflow:hidden}.key-descr{font-family:var(--font-regular);color:var(--light-fg);flex-shrink:1;text-overflow:ellipsis;overflow:hidden;display:none}.expanded-descr .key-descr{max-height:auto;overflow:hidden;display:none}.collapsed-descr .tr{max-height:20px}.tr.xxx-of{border-top:1px dotted var(--primary-color)}.xxx-of-key{font-size:calc(var(--font-size-small) - 2px);font-weight:700;background-color:var(--primary-color);color:var(--primary-color-invert);border-radius:2px;line-height:calc(var(--font-size-small) + 6px);padding:0 5px;margin-bottom:1px;display:inline-block}.xxx-of-descr{font-family:var(--font-regular);color:var(--primary-color);font-size:calc(var(--font-size-small) - 1px);margin-left:2px}.bina,.byte,.date,.emai,.host,.ipv4,.pass,.stri,.string,.uri,.url,.uuid{color:var(--green)}.deci .blue,.doub,.floa,.int3,.int6,.inte,.numb,.number{color:var(--blue)}.null{color:var(--red)}.bool,.boolean{color:var(--orange)}.enum{color:var(--purple)}.recu{color:var(--brown)}.toolbar{display:flex;width:100%;padding:2px 0;color:var(--primary-color)}.toolbar-item{cursor:pointer;padding:5px 0;margin:0 2px}.schema-root-type{cursor:auto;color:var(--fg2);font-weight:700;text-transform:uppercase}.schema-root-type.xxx-of{display:none}.toolbar-item:first-of-type{margin:0 2px 0 0}@media only screen and (min-width:500px){.key-descr{display:block}.expanded-descr .key-descr{display:block}}`;customElements.define("schema-tree",class extends G{static get properties(){return{data:{type:Object},schemaExpandLevel:{type:Number,attribute:"schema-expand-level"},schemaDescriptionExpanded:{type:String,attribute:"schema-description-expanded"},allowSchemaDescriptionExpandToggle:{type:String,attribute:"allow-schema-description-expand-toggle"},schemaHideReadOnly:{type:String,attribute:"schema-hide-read-only"},schemaHideWriteOnly:{type:String,attribute:"schema-hide-write-only"}}}connectedCallback(){super.connectedCallback(),(!this.schemaExpandLevel||this.schemaExpandLevel<1)&&(this.schemaExpandLevel=99999),this.schemaDescriptionExpanded&&"true false".includes(this.schemaDescriptionExpanded)||(this.schemaDescriptionExpanded="false"),this.schemaHideReadOnly&&"true false".includes(this.schemaHideReadOnly)||(this.schemaHideReadOnly="true"),this.schemaHideWriteOnly&&"true false".includes(this.schemaHideWriteOnly)||(this.schemaHideWriteOnly="true")}static get styles(){return[ee,fu,ru,Y`.tree{font-size:var(--font-size-small);text-align:left;line-height:calc(var(--font-size-small) + 6px)}.tree .tr:hover{background-color:var(--hover-color)}.collapsed-descr .tr{max-height:calc(var(--font-size-small) + 8px)}.collapsed-descr .m-markdown-small p{line-height:calc(var(--font-size-small) + 6px)}.tree .key{max-width:300px}.key.deprecated .key-label{text-decoration:line-through}.open-bracket{display:inline-block;padding:0 20px 0 0;cursor:pointer;border:1px solid transparent;border-radius:3px}.open-bracket:hover{color:var(--primary-color);background-color:var(--hover-color);border:1px solid var(--border-color)}.close-bracket{display:inline-block;font-family:var(--font-mono)}.tr.collapsed+.inside-bracket,.tr.collapsed+.inside-bracket+.close-bracket{display:none}.inside-bracket.array,.inside-bracket.object{border-left:1px dotted var(--border-color)}.inside-bracket.xxx-of{padding:5px 0;border-style:dotted;border-width:0 0 1px 0;border-color:var(--primary-color)}`,ce]}render(){var e,t,r;return I` <div class="tree ${"true"===this.schemaDescriptionExpanded?"expanded-descr":"collapsed-descr"}"> <div class="toolbar"> <div class="toolbar-item schema-root-type ${(null===(e=this.data)||void 0===e?void 0:e["::type"])||""}"> ${(null===(t=this.data)||void 0===t?void 0:t["::type"])||""} </div> ${"true"===this.allowSchemaDescriptionExpandToggle?I` <div style="flex:1"></div> <div class="toolbar-item" @click="${()=>{this.schemaDescriptionExpanded="true"===this.schemaDescriptionExpanded?"false":"true"}}"> ${"true"===this.schemaDescriptionExpanded?"Single line description":"Multiline description"} </div> `:""} </div> ${null!==(r=this.data)&&void 0!==r&&r["::description"]?I`<span class="m-markdown"> ${Hc(Z()(this.data["::description"]||""))}</span>`:""} ${this.data?I` ${this.generateTree("array"===this.data["::type"]?this.data["::props"]:this.data,this.data["::type"])}`:I`<span class="mono-font" style="color:var(--red)"> Schema not found </span>`} </div> `}generateTree(e,t="object",r="",n="",o=0,a=0){var i;if(!e)return I`<div class="null" style="display:inline">null</div>`;if(0===Object.keys(e).length)return I`<span class="key object">${r}:{ }</span>`;let s="",l="";if(r.startsWith("::ONE~OF")||r.startsWith("::ANY~OF"))s=r.replace("::","").replace("~"," ");else if(r.startsWith("::OPTION")){const e=r.split("~");s=e[1],l=e[2]}else s=r;const c=400-12*a;let u="",p="";const d=null!==(i=e["::type"])&&void 0!==i&&i.startsWith("xxx-of")?o:o+1,h="xxx-of-option"===t||"xxx-of-option"===e["::type"]||r.startsWith("::OPTION")?a:a+1;var f;if("object"===e["::type"]?"array"===t?(u=o<this.schemaExpandLevel?I`<span class="open-bracket array-of-object" @click="${this.toggleObjectExpand}">[{</span>`:I`<span class="open-bracket array-of-object" @click="${this.toggleObjectExpand}">[{...}]</span>`,p="}]"):(u=o<this.schemaExpandLevel?I`<span class="open-bracket object" @click="${this.toggleObjectExpand}">{</span>`:I`<span class="open-bracket object" @click="${this.toggleObjectExpand}">{...}</span>`,p="}"):"array"===e["::type"]&&("array"===t?(u=o<this.schemaExpandLevel?I`<span class="open-bracket array-of-array" @click="${this.toggleObjectExpand}">[[</span>`:I`<span class="open-bracket array-of-array" @click="${this.toggleObjectExpand}">[[...]]</span>`,p="]]"):(u=o<this.schemaExpandLevel?I`<span class="open-bracket array" @click="${this.toggleObjectExpand}">[</span>`:I`<span class="open-bracket array" @click="${this.toggleObjectExpand}">[...]</span>`,p="]")),"object"==typeof e)return I` <div class="tr ${o<this.schemaExpandLevel||null!==(f=e["::type"])&&void 0!==f&&f.startsWith("xxx-of")?"expanded":"collapsed"} ${e["::type"]||"no-type-info"}"> <div class="td key ${e["::deprecated"]?"deprecated":""}" style="min-width:${c}px"> ${"xxx-of-option"===e["::type"]||"xxx-of-array"===e["::type"]||r.startsWith("::OPTION")?I`<span class="key-label xxx-of-key">${s}</span><span class="xxx-of-descr">${l}</span>`:s.endsWith("*")?I`<span class="key-label">${s.substring(0,s.length-1)}</span><span style="color:var(--red)">*</span>`:"::props"===s||"::ARRAY~OF"===s?"":o>0?I`<span class="key-label">${s}:</span>`:""} ${"xxx-of"===e["::type"]&&"array"===t?I`<span style="color:var(--primary-color)">ARRAY</span>`:""} ${u} </div> <div class="td key-descr m-markdown-small">${Hc(Z()(n||""))}</div> </div> <div class="inside-bracket ${e["::type"]||"no-type-info"}" style="padding-left:${"xxx-of-option"===e["::type"]||"xxx-of-array"===e["::type"]?0:12}px"> ${Array.isArray(e)&&e[0]?I`${this.generateTree(e[0],"xxx-of-option","::ARRAY~OF","",d,h)}`:I` ${Object.keys(e).map((t=>I` ${["::description","::type","::props","::deprecated"].includes(t)?"array"===e[t]["::type"]||"object"===e[t]["::type"]?I`${this.generateTree("array"===e[t]["::type"]?e[t]["::props"]:e[t],e[t]["::type"],t,e[t]["::description"],d,h)}`:"":I`${this.generateTree("array"===e[t]["::type"]?e[t]["::props"]:e[t],e[t]["::type"],t,e[t]["::description"],d,h)}`} `))} `} </div> ${e["::type"]&&e["::type"].includes("xxx-of")?"":I`<div class="close-bracket"> ${p} </div>`} `;const[m,g,y,b,v,x,w,,k]=e.split("~|~");if("ðŸ†"===g&&"true"===this.schemaHideReadOnly)return;if("🆆"===g&&"true"===this.schemaHideWriteOnly)return;const A=m.replace(/┃.*/g,"").replace(/[^a-zA-Z0-9+]/g,"").substring(0,4).toLowerCase();return I` <div class="tr primitive"> <div class="td key ${k}" style="min-width:${c}px"> ${s.endsWith("*")?I`<span class="key-label">${s.substring(0,s.length-1)}</span><span style="color:var(--red)">*</span>:`:r.startsWith("::OPTION")?I`<span class="key-label xxx-of-key">${s}</span><span class="xxx-of-descr">${l}</span>`:o>0?I`<span class="key-label">${s}:</span>`:""} <span class="${A}"> ${"array"===t?`[${m}]`:`${m}`} ${g} </span> </div> <div class="td key-descr"> ${"array"===t?n:""} ${y?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Constraints: </span>${y}</div>`:""} ${b?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Default: </span>${b}</div>`:""} ${v?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Allowed: </span>${v}</div>`:""} ${x?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Pattern: </span>${x}</div>`:""} ${w?I`<span class="m-markdown-small">${Hc(Z()(w))}</span>`:""} </div> </div> `}toggleObjectExpand(e){const t=e.target.closest(".tr");t.classList.contains("expanded")?(t.classList.replace("expanded","collapsed"),e.target.innerHTML=e.target.classList.contains("array-of-object")?"[{...}]":e.target.classList.contains("array-of-array")?"[[...]]":e.target.classList.contains("array")?"[...]":"{...}"):(t.classList.replace("collapsed","expanded"),e.target.innerHTML=e.target.classList.contains("array-of-object")?"[{":e.target.classList.contains("array-of-array")?"[[":e.target.classList.contains("object")?"{":"[")}});customElements.define("tag-input",class extends G{render(){let e="";return Array.isArray(this.value)&&(e=I`${this.value.filter((e=>""!==e.trim())).map((e=>I`<span class="tag">${e}</span>`))}`),I` <div class="tags" tabindex="0"> ${e} <input type="text" class="editor" @paste="${e=>this.afterPaste(e)}" @keydown="${this.afterKeyDown}" placeholder="${this.placeholder||""}"> </div> `}static get properties(){return{placeholder:{type:String},value:{type:Array,attribute:"value"}}}attributeChangedCallback(e,t,r){"value"===e&&r&&t!==r&&(this.value=r.split(",").filter((e=>""!==e.trim()))),super.attributeChangedCallback(e,t,r)}afterPaste(e){const t=(e.clipboardData||window.clipboardData).getData("Text");this.value=t?t.split(",").filter((e=>""!==e.trim())):"",e.preventDefault()}afterKeyDown(e){13===e.keyCode?(e.stopPropagation(),e.preventDefault(),e.target.value&&(Array.isArray(this.value)?this.value=[...this.value,e.target.value]:this.value=[e.target.value],e.target.value="")):8===e.keyCode&&0===e.target.value.length&&Array.isArray(this.value)&&this.value.length>0&&(this.value.splice(-1),this.value=[...this.value])}static get styles(){return[Y`.tags{display:flex;flex-wrap:wrap;outline:0;padding:0;border-radius:var(--border-radius);border:1px solid var(--border-color);cursor:text;overflow:hidden;background:var(--input-bg)}.editor,.tag{padding:3px;margin:2px}.tag{border:1px solid var(--border-color);background-color:var(--bg3);color:var(--fg3);border-radius:var(--border-radius);word-break:break-all;font-size:var(--font-size-small)}.tag:hover~#cursor{display:block}.editor{flex:1;border:1px solid transparent;color:var(--fg);min-width:60px;outline:0;line-height:inherit;font-family:inherit;background:0 0;font-size:calc(var(--font-size-small) + 1px)}.editor::placeholder{color:var(--placeholder-color);opacity:1}`]}});customElements.define("api-request",class extends G{constructor(){super(),this.responseMessage="",this.responseStatus="success",this.responseHeaders="",this.responseText="",this.responseUrl="",this.curlSyntax="",this.activeResponseTab="response",this.selectedRequestBodyType="",this.selectedRequestBodyExample=""}static get properties(){return{serverUrl:{type:String,attribute:"server-url"},servers:{type:Array},method:{type:String},path:{type:String},parameters:{type:Array},request_body:{type:Object},api_keys:{type:Array},parser:{type:Object},accept:{type:String},callback:{type:String},responseMessage:{type:String,attribute:!1},responseText:{type:String,attribute:!1},responseHeaders:{type:String,attribute:!1},responseStatus:{type:String,attribute:!1},responseUrl:{type:String,attribute:!1},fillRequestFieldsWithExample:{type:String,attribute:"fill-request-fields-with-example"},allowTry:{type:String,attribute:"allow-try"},renderStyle:{type:String,attribute:"render-style"},schemaStyle:{type:String,attribute:"schema-style"},activeSchemaTab:{type:String,attribute:"active-schema-tab"},schemaExpandLevel:{type:Number,attribute:"schema-expand-level"},schemaDescriptionExpanded:{type:String,attribute:"schema-description-expanded"},allowSchemaDescriptionExpandToggle:{type:String,attribute:"allow-schema-description-expand-toggle"},schemaHideReadOnly:{type:String,attribute:"schema-hide-read-only"},fetchCredentials:{type:String,attribute:"fetch-credentials"},activeResponseTab:{type:String},selectedRequestBodyType:{type:String,attribute:"selected-request-body-type"},selectedRequestBodyExample:{type:String,attribute:"selected-request-body-example"}}}static get styles(){return[ne,te,ee,re,ru,ie,ae,Y`*,:after,:before{box-sizing:border-box}.read-mode{margin-top:24px}.param-name,.param-type{margin:1px 0;text-align:right;line-height:var(--font-size-small)}.param-name{color:var(--fg);font-family:var(--font-mono)}.param-type{color:var(--light-fg);font-family:var(--font-regular)}.param-constraint{min-width:100px}.param-constraint:empty{display:none}.top-gap{margin-top:24px}.textarea{min-height:220px;padding:5px;resize:vertical}.example:first-child{margin-top:-9px}.response-message{font-weight:700;text-overflow:ellipsis}.response-message.error{color:var(--red)}.response-message.success{color:var(--blue)}.file-input-container{align-items:flex-end}.file-input-container .input-set:first-child .file-input-remove-btn{visibility:hidden}.file-input-remove-btn{font-size:16px;color:var(--red);outline:0;border:none;background:0 0;cursor:pointer}.v-tab-btn{font-size:var(--smal-font-size);height:24px;border:none;background:0 0;opacity:.3;cursor:pointer;padding:4px 8px}.v-tab-btn.active{font-weight:700;background:var(--bg);opacity:1}@media only screen and (min-width:768px){.textarea{padding:8px}}@media only screen and (max-width:470px){.hide-in-small-screen{display:none}}`,ce]}render(){return I` <div class="col regular-font request-panel ${"read focused".includes(this.renderStyle)||"true"===this.callback?"read-mode":"view-mode"}"> <div class="${"true"===this.callback?"tiny-title":"req-res-title"}"> ${"true"===this.callback?"CALLBACK REQUEST":"REQUEST"} </div> <div> ${this.inputParametersTemplate("path")} ${this.inputParametersTemplate("query")} ${this.requestBodyTemplate()} ${this.inputParametersTemplate("header")} ${this.inputParametersTemplate("cookie")} ${"false"===this.allowTry?"":I`${this.apiCallTemplate()}`} </div> </div> `}updated(e){if("focused"===this.renderStyle)if(1===e.size&&e.has("activeSchemaTab"));else{[...this.shadowRoot.querySelectorAll('textarea[data-ptype="form-data"]')].forEach((e=>{const t=this.shadowRoot.querySelector(`textarea[data-pname='hidden-${e.dataset.pname}']`);t&&(e.value=t.value)}))}}exampleListTemplate(e,t,r=[]){return I` ${r.length>0?I`<span style="font-weight:700">Example: </span> ${r.map(((r,n)=>{var o;return I` ${0===n?"":"┃"} ${"array"===t?"[":""} <a part="anchor anchor-param-example" class="${"true"===this.allowTry?"":"inactive-link"}" data-example-type="${"array"===t?t:"string"}" data-example="${r.value&&Array.isArray(r.value)?null===(o=r.value)||void 0===o?void 0:o.join("~|~"):r.value||""}" @click="${t=>{const r=t.target.closest("table").querySelector(`[data-pname="${e}"]`);r&&("array"===t.target.dataset.exampleType?r.value=t.target.dataset.example.split("~|~"):r.value=t.target.dataset.example)}}">${r.description||r.summary||r.value}</a> ${"array"===t?"] ":""} `}))} `:""}`}inputParametersTemplate(e){const t=this.parameters?this.parameters.filter((t=>t.in===e)):[];if(0===t.length)return"";let r="";"path"===e?r="PATH PARAMETERS":"query"===e?r="QUERY-STRING PARAMETERS":"header"===e?r="REQUEST HEADERS":"cookie"===e&&(r="COOKIES");const n=[];for(const r of t){if(!r.schema)continue;const t=nu(r.schema);if(!t)continue;let o="form",a=!0;"query"===e&&(r.style&&"form spaceDelimited pipeDelimited".includes(r.style)&&(o=r.style),"boolean"==typeof r.explode&&(a=r.explode));const i=ou(r.examples||r.example||t.examples||t.example,t.type),s="read focused".includes(this.renderStyle)?"200px":"160px";n.push(I` <tr> <td rowspan="${"true"===this.allowTry?"1":"2"}" style="width:${s};min-width:100px"> <div class="param-name"> ${r.required?I`<span style="color:var(--red)">*</span>`:""}${r.name} </div> <div class="param-type"> ${"array"===t.type?`${t.arrayType}`:`${t.format?t.format:t.type}`} </div> </td> ${"true"===this.allowTry?I` <td style="min-width:100px"> ${"array"===t.type?I` <tag-input class="request-param" style="width:100%" data-ptype="${e}" data-pname="${r.name}" data-example="${Array.isArray(i.exampleVal)?i.exampleVal.join("~|~"):i.exampleVal}" data-param-serialize-style="${o}" data-param-serialize-explode="${a}" data-array="true" placeholder="add-multiple ↩" .value="${Array.isArray(i.exampleVal),i.exampleVal}"> </tag-input>`:"object"===t.type?I` <textarea class="textarea request-param" part="textarea textarea-param" data-ptype="${e}-object" data-pname="${r.name}" data-example="${i.exampleVal}" data-param-serialize-style="${o}" data-param-serialize-explode="${a}" spellcheck="false" style="resize:vertical;width:100%;height:${"read focused".includes(this.renderStyle)?"180px":"120px"}">${"true"===this.fillRequestFieldsWithExample?i.exampleVal:""}</textarea>`:I` <input type="${"password"===t.format?"password":"text"}" spellcheck="false" style="width:100%" class="request-param" part="textbox textbox-param" data-ptype="${e}" data-pname="${r.name}" data-example="${Array.isArray(i.exampleVal)?i.exampleVal.join("~|~"):i.exampleVal}" data-array="false" .value="${"true"===this.fillRequestFieldsWithExample?i.exampleVal:""}">`} </td>`:""} <td colspan="${"true"===this.allowTry?"1":"2"}"> ${t.default||t.constrain||t.allowedValues||t.pattern?I` <div class="param-constraint"> ${t.default?I`<span style="font-weight:700">Default: </span>${t.default}<br>`:""} ${t.pattern?I`<span style="font-weight:700">Pattern: </span>${t.pattern}<br>`:""} ${t.constrain?I`${t.constrain}<br>`:""} ${t.allowedValues&&t.allowedValues.split("┃").map(((e,n)=>I` ${n>0?"┃":I`<span style="font-weight:700">Allowed: </span>`} ${I` <a part="anchor anchor-param-constraint" class="${"true"===this.allowTry?"":"inactive-link"}" data-type="${"array"===t.type?t.type:"string"}" data-enum="${e.trim()}" @click="${e=>{const t=e.target.closest("table").querySelector(`[data-pname="${r.name}"]`);t&&("array"===e.target.dataset.type?t.value=[e.target.dataset.enum]:t.value=e.target.dataset.enum)}}">${e}</a>`}`))} </div>`:""} </td> </tr> <tr> ${"true"===this.allowTry?I`<td style="border:none"> </td>`:""} <td colspan="2" style="border:none;margin-top:0;padding:0 5px 8px 5px"> <span class="m-markdown-small">${Hc(Z()(r.description||""))}</span> ${this.exampleListTemplate.call(this,r.name,t.type,i.exampleList)} </td> </tr> `)}return I` <div class="table-title top-gap">${r}</div> <div style="display:block;overflow-x:auto;max-width:100%"> <table class="m-table" style="width:100%;word-break:break-word"> ${n} </table> </div>`}resetRequestBodySelection(){this.selectedRequestBodyType="",this.selectedRequestBodyExample="",this.clearResponseData()}onSelectExample(e){this.selectedRequestBodyExample=e.target.value;const t=e.target;window.setTimeout((e=>{const t=e.closest(".example-panel").querySelector(".request-body-param");e.closest(".example-panel").querySelector(".request-body-param-user-input").value=t.innerText}),0,t)}onMimeTypeChange(e){this.selectedRequestBodyType=e.target.value;const t=e.target;this.selectedRequestBodyExample="",window.setTimeout((e=>{const t=e.closest(".request-body-container").querySelector(".request-body-param");if(t){e.closest(".request-body-container").querySelector(".request-body-param-user-input").value=t.innerText}}),0,t)}requestBodyTemplate(){if(!this.request_body)return"";if(0===Object.keys(this.request_body).length)return"";let e="",t="",r="",n="",o="";const a=[],i=this.request_body.content;for(const e in i)a.push({mimeType:e,schema:i[e].schema,example:i[e].example,examples:i[e].examples}),this.selectedRequestBodyType||(this.selectedRequestBodyType=e);return e=1===a.length?"":I` <select style="min-width:100px;max-width:100%;margin-bottom:-1px" @change="${e=>this.onMimeTypeChange(e)}"> ${a.map((e=>I` <option value="${e.mimeType}" ?selected="${e.mimeType===this.selectedRequestBodyType}"> ${e.mimeType} </option> `))} </select> `,a.forEach((e=>{let a,i=[];if(this.selectedRequestBodyType.includes("json")||this.selectedRequestBodyType.includes("xml")||this.selectedRequestBodyType.includes("text"))e.mimeType===this.selectedRequestBodyType&&(i=hu(e.examples,e.example,e.schema,e.mimeType,!1,!0,"text"),this.selectedRequestBodyExample||(this.selectedRequestBodyExample=i.length>0?i[0].exampleId:""),o=I` ${o} <div class="example-panel border-top pad-top-8"> ${1===i.length?"":I` <select style="min-width:100px;max-width:100%;margin-bottom:-1px" @change="${e=>this.onSelectExample(e)}"> ${i.map((e=>I`<option value="${e.exampleId}" ?selected="${e.exampleId===this.selectedRequestBodyExample}"> ${e.exampleSummary.length>80?e.exampleId:e.exampleSummary?e.exampleSummary:e.exampleId} </option>`))} </select> `} ${i.filter((e=>e.exampleId===this.selectedRequestBodyExample)).map((t=>I` <div class="example ${t.exampleId===this.selectedRequestBodyExample?"example-selected":""}" data-example="${t.exampleId}"> ${t.exampleSummary&&t.exampleSummary.length>80?I`<div style="padding:4px 0"> ${t.exampleSummary} </div>`:""} ${t.exampleDescription?I`<div class="m-markdown-small" style="padding:4px 0"> ${Hc(Z()(t.exampleDescription||""))} </div>`:""} <pre class="textarea is-hidden request-body-param ${e.mimeType.substring(e.mimeType.indexOf("/")+1)}" spellcheck="false" data-ptype="${e.mimeType}" style="width:100%;resize:vertical;display:none">${"text"===t.exampleFormat?t.exampleValue:JSON.stringify(t.exampleValue,null,2)}</pre> <textarea class="textarea request-body-param-user-input" part="textarea textarea-param" spellcheck="false" data-ptype="${e.mimeType}" data-example="${"text"===t.exampleFormat?t.exampleValue:JSON.stringify(t.exampleValue,null,2)}" data-example-format="${t.exampleFormat}" style="width:100%;resize:vertical">${"true"===this.fillRequestFieldsWithExample?"text"===t.exampleFormat?t.exampleValue:JSON.stringify(t.exampleValue,null,2):""}</textarea> </div> `))} </div> `);else if(this.selectedRequestBodyType.includes("form-urlencoded")||this.selectedRequestBodyType.includes("form-data")){if(e.mimeType===this.selectedRequestBodyType){const t=hu(e.examples,e.example,e.schema,e.mimeType,!1,!0,"text");e.schema&&(r=this.formDataTemplate(e.schema,e.mimeType,t[0]?t[0].exampleValue:""))}}else RegExp("^audio/|^image/|^video/|^font/|tar$|zip$|7z$|rtf$|msword$|excel$|/pdf$|/octet-stream$").test(this.selectedRequestBodyType)&&e.mimeType===this.selectedRequestBodyType&&(t=I` <div class="small-font-size bold-text row"> <input type="file" part="file-input" style="max-width:100%" class="request-body-param-file" data-ptype="${e.mimeType}" spellcheck="false"> </div> `);(e.mimeType.includes("json")||e.mimeType.includes("xml")||e.mimeType.includes("text"))&&(a=du(e.schema,{}),"table"===this.schemaStyle?n=I` ${n} <schema-table class="${e.mimeType.substring(e.mimeType.indexOf("/")+1)}" style="display:${this.selectedRequestBodyType===e.mimeType?"block":"none"}" .data="${a}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" , schema-hide-read-only="${this.schemaHideReadOnly.includes(this.method)}" schema-hide-write-only="false"> </schema-table> `:"tree"===this.schemaStyle&&(n=I` ${n} <schema-tree class="${e.mimeType.substring(e.mimeType.indexOf("/")+1)}" style="display:${this.selectedRequestBodyType===e.mimeType?"block":"none"}" .data="${a}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" , schema-hide-read-only="${this.schemaHideReadOnly.includes(this.method)}" schema-hide-write-only="false"> </schema-tree> `))})),I` <div class="request-body-container" data-selected-request-body-type="${this.selectedRequestBodyType}"> <div class="table-title top-gap row"> REQUEST BODY ${this.request_body.required?I`<span class="mono-font" style="color:var(--red)">*</span>`:""} <span style="font-weight:400;margin-left:5px"> ${this.selectedRequestBodyType}</span> <span style="flex:1"></span> ${e} </div> ${this.request_body.description?I`<div class="m-markdown" style="margin-bottom:12px">${Hc(Z()(this.request_body.description))}</div>`:""} ${this.selectedRequestBodyType.includes("json")||this.selectedRequestBodyType.includes("xml")||this.selectedRequestBodyType.includes("text")?I` <div class="tab-panel col" style="border-width:0 0 1px 0"> <div class="tab-buttons row" @click="${e=>{"button"===e.target.tagName.toLowerCase()&&(this.activeSchemaTab=e.target.dataset.tab)}}"> <button class="tab-btn ${"schema"===this.activeSchemaTab?"active":""}" data-tab="schema">SCHEMA</button> <button class="tab-btn ${"example"===this.activeSchemaTab?"active":""}" data-tab="example">EXAMPLE </button> </div> ${I`<div class="tab-content col" style="display:${"schema"===this.activeSchemaTab?"block":"none"}"> ${n}</div>`} ${I`<div class="tab-content col" style="display:${"schema"===this.activeSchemaTab?"none":"block"}"> ${o}</div>`} </div>`:I` ${t} ${r}`} </div> `}formDataParamAsObjectTemplate(e,t,r){var n;const o=du(t,{}),a=hu(t.examples,t.example,t,"json",!1,!0,"text");return I` <div class="tab-panel row" style="min-height:220px;border-left:6px solid var(--light-border-color);align-items:stretch"> <div style="width:24px;background-color:var(--light-border-color)"> <div class="row" style="flex-direction:row-reverse;width:160px;height:24px;transform:rotate(270deg) translateX(-160px);transform-origin:top left;display:block" @click="${e=>{if(e.target.classList.contains("v-tab-btn")){const t=e.target.dataset.tab;if(t){const r=e.target.closest(".tab-panel"),n=r.querySelector(`.v-tab-btn[data-tab="${t}"]`),o=[...r.querySelectorAll(`.v-tab-btn:not([data-tab="${t}"])`)],a=r.querySelector(`.tab-content[data-tab="${t}"]`),i=[...r.querySelectorAll(`.tab-content:not([data-tab="${t}"])`)];n.classList.add("active"),a.style.display="block",o.forEach((e=>{e.classList.remove("active")})),i.forEach((e=>{e.style.display="none"}))}}"button"===e.target.tagName.toLowerCase()&&(this.activeSchemaTab=e.target.dataset.tab)}}"> <button class="v-tab-btn ${"schema"===this.activeSchemaTab?"active":""}" data-tab="schema">SCHEMA</button> <button class="v-tab-btn ${"example"===this.activeSchemaTab?"active":""}" data-tab="example">EXAMPLE</button> </div> </div> ${I` <div class="tab-content col" data-tab="schema" style="display:${"schema"===this.activeSchemaTab?"block":"none"};padding-left:5px;width:100%"> <schema-tree .data="${o}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" ,> </schema-tree> </div>`} ${I` <div class="tab-content col" data-tab="example" style="display:${"example"===this.activeSchemaTab?"block":"none"};padding-left:5px;width:100%"> <textarea class="textarea" part="textarea textarea-param" style="width:100%;border:none;resize:vertical" data-array="false" data-ptype="${r.includes("form-urlencode")?"form-urlencode":"form-data"}" data-pname="${e}" data-example="${(null===(n=a[0])||void 0===n?void 0:n.exampleValue)||""}" spellcheck="false">${"true"===this.fillRequestFieldsWithExample?a[0].exampleValue:""}</textarea> <textarea data-pname="hidden-${e}" data-ptype="${r.includes("form-urlencode")?"hidden-form-urlencode":"hidden-form-data"}" class="is-hidden" style="display:none">${a[0].exampleValue}</textarea> </div>`} </div> `}formDataTemplate(e,t,r=""){const n=[];if(e.properties){for(const r in e.properties){var o;const a=e.properties[r],i=a.examples||a.example||"",s=a.type,l=nu(a),c="read focused".includes(this.renderStyle)?"200px":"160px",u=ou(l.examples||l.example,l.type);n.push(I` <tr> <td style="width:${c};min-width:100px"> <div class="param-name"> ${a.required?I`<span style="color:var(--red)">*</span>${r}`:I`${r}`} </div> <div class="param-type">${l.type}</div> </td> <td style="${"object"===s?"width:100%; padding:0;":"true"===this.allowTry?"":"display:none;"} min-width:100px" colspan="${"object"===s?2:1}"> ${"array"===s?"binary"===(null===(o=a.items)||void 0===o?void 0:o.format)?I` <div class="file-input-container col" style="align-items:flex-end" @click="${e=>this.onAddRemoveFileInput(e,r,t)}"> <div class="input-set row"> <input type="file" part="file-input" style="width:100%" data-pname="${r}" data-ptype="${t.includes("form-urlencode")?"form-urlencode":"form-data"}" data-array="false" data-file-array="true"> <button class="file-input-remove-btn"> ✕ </button> </div> <button class="m-btn primary file-input-add-btn" part="btn btn-fill" style="margin:2px 25px 0 0;padding:2px 6px">ADD</button> </div> `:I` <tag-input style="width:100%" data-ptype="${t.includes("form-urlencode")?"form-urlencode":"form-data"}" data-pname="${r}" data-example="${Array.isArray(i)?i.join("~|~"):i}" data-array="true" placeholder="add-multiple ↩" .value="${Array.isArray(i)?Array.isArray(i[0])?i[0]:[i[0]]:[i]}"> </tag-input> `:I` ${"object"===s?this.formDataParamAsObjectTemplate.call(this,r,a,t):I` ${"true"===this.allowTry?I`<input .value="${"true"===this.fillRequestFieldsWithExample?Array.isArray(i)?i[0]:i:""}" spellcheck="false" type="${"binary"===a.format?"file":"password"===a.format?"password":"text"}" part="textbox textbox-param" style="width:100%" data-ptype="${t.includes("form-urlencode")?"form-urlencode":"form-data"}" data-pname="${r}" data-example="${Array.isArray(i)?i[0]:i}" data-array="false">`:""} `}`} </td> ${"object"===s?"":I` <td> ${l.default||l.constrain||l.allowedValues||l.pattern?I` <div class="param-constraint"> ${l.default?I`<span style="font-weight:700">Default: </span>${l.default}<br>`:""} ${l.pattern?I`<span style="font-weight:700">Pattern: </span>${l.pattern}<br>`:""} ${l.constrain?I`${l.constrain}<br>`:""} ${l.allowedValues&&l.allowedValues.split("┃").map(((e,t)=>I` ${t>0?"┃":I`<span style="font-weight:700">Allowed: </span>`} ${I` <a part="anchor anchor-param-constraint" class="${"true"===this.allowTry?"":"inactive-link"}" data-type="${"array"===l.type?l.type:"string"}" data-enum="${e.trim()}" @click="${e=>{const t=e.target.closest("table").querySelector(`[data-pname="${r}"]`);t&&("array"===e.target.dataset.type?t.value=[e.target.dataset.enum]:t.value=e.target.dataset.enum)}}"> ${e} </a>`}`))} </div>`:""} </td>`} </tr> ${"object"===s?"":I` <tr> <td style="border:none"> </td> <td colspan="2" style="border:none;margin-top:0;padding:0 5px 8px 5px"> <span class="m-markdown-small">${Hc(Z()(a.description||""))}</span> ${this.exampleListTemplate.call(this,r,l.type,u.exampleList)} </td> </tr> `}`)}return I` <table style="width:100%" class="m-table"> ${n} </table> `}return I` <textarea class="textarea dynamic-form-param ${t}" part="textarea textarea-param" spellcheck="false" data-pname="dynamic-form" data-ptype="${t}" style="width:100%">${r}</textarea> ${e.description?I`<span class="m-markdown-small">${Hc(Z()(e.description))}</span>`:""} `}apiResponseTabTemplate(){const e=this.responseHeaders.includes("json")?"json":this.responseHeaders.includes("html")||this.responseHeaders.includes("xml")?"html":"";return I` <div class="row" style="font-size:var(--font-size-small);margin:5px 0"> <div class="response-message ${this.responseStatus}">Response Status: ${this.responseMessage}</div> <div style="flex:1"></div> <button class="m-btn" part="btn btn-outline" @click="${this.clearResponseData}">CLEAR RESPONSE</button> </div> <div class="tab-panel col" style="border-width:0 0 1px 0"> <div id="tab_buttons" class="tab-buttons row" @click="${e=>{!1!==e.target.classList.contains("tab-btn")&&(this.activeResponseTab=e.target.dataset.tab)}}"> <button class="tab-btn ${"response"===this.activeResponseTab?"active":""}" data-tab="response"> RESPONSE</button> <button class="tab-btn ${"headers"===this.activeResponseTab?"active":""}" data-tab="headers"> RESPONSE HEADERS</button> <button class="tab-btn ${"curl"===this.activeResponseTab?"active":""}" data-tab="curl">CURL</button> </div> ${this.responseIsBlob?I` <div class="tab-content col" style="flex:1;display:${"response"===this.activeResponseTab?"flex":"none"}"> <button class="m-btn thin-border mar-top-8" style="width:135px" @click="${this.downloadResponseBlob}" part="btn btn-outline">DOWNLOAD</button> ${"view"===this.responseBlobType?I`<button class="m-btn thin-border mar-top-8" style="width:135px" @click="${this.viewResponseBlob}" part="btn btn-outline">VIEW (NEW TAB)</button>`:""} </div>`:I` <div class="tab-content col m-markdown" style="flex:1;display:${"response"===this.activeResponseTab?"flex":"none"}"> <button class="toolbar-btn" style="position:absolute;top:12px;right:8px" @click="${e=>{he(this.responseText,e)}}" part="btn btn-fill"> Copy </button> <pre style="white-space:pre;max-height:400px;overflow:auto">${e?I`<code>${Hc(Q().highlight(this.responseText,Q().languages[e],e))}</code>`:`${this.responseText}`} - </pre> </div>`} <div class="tab-content col m-markdown" style="flex:1;display:${"headers"===this.activeResponseTab?"flex":"none"}"> <button class="toolbar-btn" style="position:absolute;top:12px;right:8px" @click="${e=>{he(this.responseHeaders,e)}}" part="btn btn-fill"> Copy </button> <pre style="white-space:pre"><code>${Hc(Q().highlight(this.responseHeaders,Q().languages.css,"css"))}</code></pre> </div> <div class="tab-content col m-markdown" style="flex:1;display:${"curl"===this.activeResponseTab?"flex":"none"}"> <button class="toolbar-btn" style="position:absolute;top:12px;right:8px" @click="${e=>{he(this.curlSyntax.replace(/\\$/,""),e)}}" part="btn btn-fill"> Copy </button> <pre style="white-space:pre"><code>${Hc(Q().highlight(this.curlSyntax.trim().replace(/\\$/,""),Q().languages.shell,"shell"))}</code></pre> </div> </div>`}apiCallTemplate(){var e;let t="";this.servers&&this.servers.length>0&&(t=I` <select style="min-width:100px" @change="${e=>{this.serverUrl=e.target.value}}"> ${this.servers.map((e=>I`<option value="${e.url}"> ${e.url} - ${e.description} </option>`))} </select> `);const r=I` <div style="display:flex;flex-direction:column"> ${t} ${this.serverUrl?I` <div style="display:flex;align-items:baseline"> <div style="font-weight:700;padding-right:5px">API Server</div> <span class="gray-text"> ${this.serverUrl} </span> </div> `:""} </div> `;return I` <div style="display:flex;align-items:flex-end;margin:16px 0;font-size:var(--font-size-small)"> <div class="hide-in-small-screen" style="flex-direction:column;margin:0;width:calc(100% - 60px)"> <div style="display:flex;flex-direction:row;align-items:center;overflow:hidden"> ${r} </div> <div style="display:flex"> <div style="font-weight:700;padding-right:5px">Authentication</div> ${this.api_keys.length>0?I`<div style="color:var(--blue);overflow:hidden"> ${1===this.api_keys.length?`${null===(e=this.api_keys[0])||void 0===e?void 0:e.typeDisplay} in ${this.api_keys[0].in}`:`${this.api_keys.length} API keys applied`} </div>`:I`<div style="color:var(--red)">No API key applied</div>`} </div> </div> ${this.parameters.length>0||this.request_body?I` <button class="m-btn thin-border" part="btn btn-outline" style="margin-right:5px" @click="${this.onFillRequestData}" title="Fills with example data (if provided)"> FILL EXAMPLE </button> <button class="m-btn thin-border" part="btn btn-outline" style="margin-right:5px" @click="${this.onClearRequestData}"> CLEAR </button>`:""} <button class="m-btn primary thin-border" part="btn btn-fill btn-try" @click="${this.onTryClick}">TRY</button> </div> ${""===this.responseMessage?"":this.apiResponseTabTemplate()} `}async onFillRequestData(e){[...e.target.closest(".request-panel").querySelectorAll("input, tag-input, textarea:not(.is-hidden)")].forEach((e=>{e.dataset.example&&("TAG-INPUT"===e.tagName.toUpperCase()?e.value=e.dataset.example.split("~|~"):e.value=e.dataset.example)}))}async onClearRequestData(e){[...e.target.closest(".request-panel").querySelectorAll("input, tag-input, textarea:not(.is-hidden)")].forEach((e=>{e.value=""}))}async onTryClick(e){var t;const r=e.target;let n,o,a="",i="",s="",l="";const c=null===(t=this.closest(".expanded-req-resp-container, .req-resp-container"))||void 0===t?void 0:t.getElementsByTagName("api-response")[0],u=null==c?void 0:c.selectedMimeType,p=e.target.closest(".request-panel"),d=[...p.querySelectorAll("[data-ptype='path']")],h=[...p.querySelectorAll("[data-ptype='query']")],f=[...p.querySelectorAll("[data-ptype='query-object']")],m=[...p.querySelectorAll("[data-ptype='header']")],g=p.querySelector(".request-body-container");n=this.path;const y={method:this.method.toUpperCase(),headers:{}};if(d.map((e=>{n=n.replace(`{${e.dataset.pname}}`,encodeURIComponent(e.value))})),h.length>0){const e=new URLSearchParams;h.forEach((t=>{if("false"===t.dataset.array)""!==t.value&&e.append(t.dataset.pname,t.value);else{const r=t.dataset.paramSerializeStyle,n=t.dataset.paramSerializeExplode;let o=t.value&&Array.isArray(t.value)?t.value:[];o=Array.isArray(o)?o.filter((e=>""!==e)):[],o.length>0&&("spaceDelimited"===r?e.append(t.dataset.pname,o.join(" ").replace(/^\s|\s$/g,"")):"pipeDelimited"===r?e.append(t.dataset.pname,o.join("|").replace(/^\||\|$/g,"")):"true"===n?o.forEach((r=>{e.append(t.dataset.pname,r)})):e.append(t.dataset.pname,o.join(",").replace(/^,|,$/g,"")))}})),n=`${n}${e.toString()?"?":""}${e.toString()}`}if(f.length>0){const e=new URLSearchParams;f.map((t=>{try{let r={};const o=t.dataset.paramSerializeStyle,a=t.dataset.paramSerializeExplode;r=Object.assign(r,JSON.parse(t.value.replace(/\s+/g," ")));for(const t in r)"object"==typeof r[t]?Array.isArray(r[t])&&("spaceDelimited"===o?e.append(t,r[t].join(" ")):"pipeDelimited"===o?e.append(t,r[t].join("|")):"true"===a?r[t].forEach((r=>{e.append(t,r)})):e.append(t,r[t])):e.append(t,r[t]);n=`${n}${e.toString()?"?":""}${e.toString()}`}catch(e){console.log("RapiDoc: unable to parse %s into object",t.value)}}))}if(this.api_keys.filter((e=>"query"===e.in)).forEach((e=>{n=`${n}${n.includes("?")?"&":"?"}${e.name}=${encodeURIComponent(e.finalKeyValue)}`})),n=`${this.serverUrl.replace(/\/$/,"")}${n}`,!1===n.startsWith("http")){o=new URL(n,window.location.href).href}else o=n;if(a=`curl -X ${this.method.toUpperCase()} "${o}" \\\n`,u?(y.headers.Accept=u,i+=` -H "Accept: ${u}" \\\n`):this.accept&&(y.headers.Accept=this.accept,i+=` -H "Accept: ${this.accept}" \\\n`),this.api_keys.filter((e=>"header"===e.in)).forEach((e=>{y.headers[e.name]=e.finalKeyValue,i+=` -H "${e.name}: ${e.finalKeyValue}" \\\n`})),m.map((e=>{e.value&&(y.headers[e.dataset.pname]=e.value,i+=` -H "${e.dataset.pname}: ${e.value}" \\\n`)})),g){const e=g.dataset.selectedRequestBodyType;if(e.includes("form-urlencoded")){const e=p.querySelector("[data-ptype='dynamic-form']");if(e){const t=e.value,r=new URLSearchParams;let n,o=!0;if(t)try{n=JSON.parse(t)}catch(e){o=!1,console.warn("RapiDoc: Invalid JSON provided",e)}else o=!1;if(o){for(const e in n)r.append(e,JSON.stringify(n[e]));y.body=r,s=` -d ${r.toString()} \\\n`}}else{const e=[...p.querySelectorAll("[data-ptype='form-urlencode']")],t=new URLSearchParams;e.filter((e=>"file"!==e.type)).forEach((e=>{if("false"===e.dataset.array)e.value&&t.append(e.dataset.pname,e.value);else{const r=e.value&&Array.isArray(e.value)?e.value.join(","):"";t.append(e.dataset.pname,r)}})),y.body=t,s=` -d ${t.toString()} \\\n`}}else if(e.includes("form-data")){const e=new FormData;[...p.querySelectorAll("[data-ptype='form-data']")].forEach((t=>{"false"===t.dataset.array?"file"===t.type&&t.files[0]?(e.append(t.dataset.pname,t.files[0],t.files[0].name),l+=` -F "${t.dataset.pname}=@${t.files[0].name}" \\\n`):t.value&&(e.append(t.dataset.pname,t.value),l+=` -F "${t.dataset.pname}=${t.value}" \\\n`):t.value&&Array.isArray(t.value)&&(t.value.forEach((e=>{l=`${l} -F "${t.dataset.pname}[]=${e}" \\\n`})),e.append(t.dataset.pname,t.value.join(",")))})),y.body=e}else if(RegExp("^audio/|^image/|^video/|^font/|tar$|zip$|7z$|rtf$|msword$|excel$|/pdf$|/octet-stream$").test(e)){const e=p.querySelector(".request-body-param-file");null!=e&&e.files[0]&&(y.body=e.files[0],s=` --data-binary @${e.files[0].name} \\\n`)}else if(e.includes("json")||e.includes("xml")||e.includes("text")){const e=p.querySelector(".request-body-param-user-input");if(null!=e&&e.value){y.body=e.value;try{s=` -d '${JSON.stringify(JSON.parse(e.value))}' \\\n`}catch(t){s=` -d '${e.value.replace(/(\r\n|\n|\r)/gm,"")}' \\\n`}}}e.includes("form-data")||(y.headers["Content-Type"]=e),i+=` -H "Content-Type: ${e}" \\\n`}this.responseUrl="",this.responseHeaders=[],this.curlSyntax="",this.responseStatus="success",this.responseIsBlob=!1,this.respContentDisposition="",this.responseBlobUrl&&(URL.revokeObjectURL(this.responseBlobUrl),this.responseBlobUrl=""),this.curlSyntax=`${a}${i}${s}${l}`,this.fetchCredentials&&(y.credentials=this.fetchCredentials);const b=new Request(n,y);let v,x;this.dispatchEvent(new CustomEvent("before-try",{bubbles:!0,composed:!0,detail:{request:b}}));try{let e,t,n;r.disabled=!0,v=await fetch(b),x=v.clone(),r.disabled=!1,this.responseMessage=v.statusText?`${v.statusText}:${v.status}`:v.status,this.responseUrl=v.url;const o={};v.headers.forEach(((e,t)=>{o[t]=e,this.responseHeaders=`${this.responseHeaders}${t}: ${e}\n`}));const a=v.headers.get("content-type");if(0===(await v.clone().text()).length)this.responseText="";else if(a){if(a.includes("json"))if(/charset=[^"']+/.test(a)){const e=a.split("charset=")[1],r=await v.arrayBuffer();try{n=new TextDecoder(e).decode(r)}catch{n=new TextDecoder("utf-8").decode(r)}try{t=JSON.parse(n),this.responseText=JSON.stringify(t,null,2)}catch{this.responseText=n}}else t=await v.json(),this.responseText=JSON.stringify(t,null,2);else RegExp("^font/|tar$|zip$|7z$|rtf$|msword$|excel$|/pdf$|/octet-stream$").test(a)?(this.responseIsBlob=!0,this.responseBlobType="download"):RegExp("^audio|^image|^video").test(a)?(this.responseIsBlob=!0,this.responseBlobType="view"):(n=await v.text(),a.includes("xml")&&(this.responseText=function(e){const t=(new DOMParser).parseFromString(e,"text/xml"),r=(new DOMParser).parseFromString(['<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\n <xsl:strip-space elements="*"/>\n <xsl:template match="para[content-style][not(text())]">\n <xsl:value-of select="normalize-space(.)"/>\n </xsl:template>\n <xsl:template match="node()|@*">\n <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>\n </xsl:template>\n <xsl:output indent="yes"/>\n </xsl:stylesheet>'].join("\n"),"application/xml"),n=new XSLTProcessor;n.importStylesheet(r);const o=n.transformToDocument(t);return(new XMLSerializer).serializeToString(o)}(n)),this.responseText=n);if(this.responseIsBlob){const t=v.headers.get("content-disposition");this.respContentDisposition=t?t.split("filename=")[1]:"filename",e=await v.blob(),this.responseBlobUrl=URL.createObjectURL(e)}}else n=await v.text(),this.responseText=n;this.dispatchEvent(new CustomEvent("after-try",{bubbles:!0,composed:!0,detail:{request:b,response:x,responseHeaders:o,responseBody:t||n||e,responseStatus:x.ok}}))}catch(e){r.disabled=!1,this.responseMessage=`${e.message} (CORS or Network Issue)`,document.dispatchEvent(new CustomEvent("after-try",{bubbles:!0,composed:!0,detail:{err:e,request:b,response:x,responseStatus:x.ok}}))}}onAddRemoveFileInput(e,t,r){if("button"!==e.target.tagName.toLowerCase())return;if(e.target.classList.contains("file-input-remove-btn")){return void e.target.closest(".input-set").remove()}const n=e.target.closest(".file-input-container"),o=document.createElement("div");o.setAttribute("class","input-set row");const a=document.createElement("input");a.type="file",a.style="width:200px; margin-top:2px;",a.setAttribute("data-pname",t),a.setAttribute("data-ptype",r.includes("form-urlencode")?"form-urlencode":"form-data"),a.setAttribute("data-array","false"),a.setAttribute("data-file-array","true");const i=document.createElement("button");i.setAttribute("class","file-input-remove-btn"),i.innerHTML="✕",o.appendChild(a),o.appendChild(i),n.insertBefore(o,e.target)}downloadResponseBlob(){if(this.responseBlobUrl){const e=document.createElement("a");document.body.appendChild(e),e.style="display: none",e.href=this.responseBlobUrl,e.download=this.respContentDisposition,e.click(),e.remove()}}viewResponseBlob(){if(this.responseBlobUrl){const e=document.createElement("a");document.body.appendChild(e),e.style="display: none",e.href=this.responseBlobUrl,e.target="_blank",e.click(),e.remove()}}clearResponseData(){this.responseUrl="",this.responseHeaders="",this.responseText="",this.responseStatus="success",this.responseMessage="",this.responseIsBlob=!1,this.responseBlobType="",this.respContentDisposition="",this.responseBlobUrl&&(URL.revokeObjectURL(this.responseBlobUrl),this.responseBlobUrl="")}disconnectedCallback(){this.responseBlobUrl&&(URL.revokeObjectURL(this.responseBlobUrl),this.responseBlobUrl=""),super.disconnectedCallback()}});customElements.define("schema-table",class extends G{static get properties(){return{schemaExpandLevel:{type:Number,attribute:"schema-expand-level"},schemaDescriptionExpanded:{type:String,attribute:"schema-description-expanded"},allowSchemaDescriptionExpandToggle:{type:String,attribute:"allow-schema-description-expand-toggle"},schemaHideReadOnly:{type:String,attribute:"schema-hide-read-only"},schemaHideWriteOnly:{type:String,attribute:"schema-hide-write-only"},data:{type:Object}}}connectedCallback(){super.connectedCallback(),(!this.schemaExpandLevel||this.schemaExpandLevel<1)&&(this.schemaExpandLevel=99999),this.schemaDescriptionExpanded&&"true false".includes(this.schemaDescriptionExpanded)||(this.schemaDescriptionExpanded="false"),this.schemaHideReadOnly&&"true false".includes(this.schemaHideReadOnly)||(this.schemaHideReadOnly="true"),this.schemaHideWriteOnly&&"true false".includes(this.schemaHideWriteOnly)||(this.schemaHideWriteOnly="true")}static get styles(){return[ee,fu,Y`.table{font-size:var(--font-size-small);text-align:left;line-height:calc(var(--font-size-small) + 6px)}.table .tr{width:calc(100% - 5px);padding:0 0 0 5px;border-bottom:1px dotted var(--light-border-color)}.table .td{padding:4px 0}.table .key{width:240px}.key.deprecated .key-label{text-decoration:line-through}.table .key-type{white-space:normal;width:150px}.collapsed-descr .tr{max-height:calc(var(--font-size-small) + var(--font-size-small) + 4px)}.obj-toggle{padding:0 2px;border-radius:2px;border:1px solid transparent;display:inline-block;margin-left:-16px;color:var(--primary-color);cursor:pointer;font-size:calc(var(--font-size-small) + 4px);font-family:var(--font-mono);background-clip:border-box}.obj-toggle:hover{border-color:var(--primary-color)}.tr.expanded+.object-body{display:block}.tr.collapsed+.object-body{display:none}`,ce]}render(){var e,t,r;return I` <div class="table ${"true"===this.schemaDescriptionExpanded?"expanded-descr":"collapsed-descr"}"> <div class="toolbar"> <div class="toolbar-item schema-root-type ${(null===(e=this.data)||void 0===e?void 0:e["::type"])||""}"> ${(null===(t=this.data)||void 0===t?void 0:t["::type"])||""} </div> ${"true"===this.allowSchemaDescriptionExpandToggle?I` <div style="flex:1"></div> <div class="toolbar-item" @click="${()=>{this.schemaDescriptionExpanded="true"===this.schemaDescriptionExpanded?"false":"true"}}"> ${"true"===this.schemaDescriptionExpanded?"Single line description":"Multiline description"} </div> `:""} </div> ${null!==(r=this.data)&&void 0!==r&&r["::description"]?I`<span class="m-markdown"> ${Hc(Z()(this.data["::description"]||""))}</span>`:""} <div style="border:1px solid var(--light-border-color)"> <div style="display:flex;background-color:var(--bg2);padding:8px 4px;border-bottom:1px solid var(--light-border-color)"> <div class="key" style="font-family:var(--font-regular);font-weight:700;color:var(--fg)"> Field </div> <div class="key-type" style="font-family:var(--font-regular);font-weight:700;color:var(--fg)"> Type </div> <div class="key-descr" style="font-family:var(--font-regular);font-weight:700;color:var(--fg)"> Description </div> </div> ${this.data?I` ${this.generateTree("array"===this.data["::type"]?this.data["::props"]:this.data,this.data["::type"])}`:""} </div> </div> `}generateTree(e,t="object",r="",n="",o=0,a=0){var i,s;const l=null!==(i=e["::type"])&&void 0!==i&&i.startsWith("xxx-of")?o:o+1,c="xxx-of-option"===t||"xxx-of-option"===e["::type"]||r.startsWith("::OPTION")?a:a+1,u=16*c;if(!e)return I`<div class="null" style="display:inline">null</div>`;if(0===Object.keys(e).length)return I`<span class="td key object" style="padding-left:${u}px">${r}</span>`;let p="",d="",h=!1;if(r.startsWith("::ONE~OF")||r.startsWith("::ANY~OF"))p=r.replace("::","").replace("~"," "),h=!0;else if(r.startsWith("::OPTION")){const e=r.split("~");p=e[1],d=e[2]}else p=r;let f="";if("object"===e["::type"]?f="array"===t?"array":"object":"array"===e["::type"]&&(f="array"===t?"array of array":"array"),"object"==typeof e)return I` ${l>=0&&r?I` <div class="tr ${l<=this.schemaExpandLevel?"expanded":"collapsed"} ${e["::type"]}" data-obj="${p}"> <div class="td key ${e["::deprecated"]?"deprecated":""}" style="padding-left:${u}px"> ${p||d?I` <span class="obj-toggle ${l<this.schemaExpandLevel?"expanded":"collapsed"}" data-obj="${p}" @click="${e=>this.toggleObjectExpand(e,p)}"> ${o<this.schemaExpandLevel?"-":"+"} </span>`:""} ${"xxx-of-option"===e["::type"]||"xxx-of-array"===e["::type"]||r.startsWith("::OPTION")?I`<span class="xxx-of-key" style="margin-left:-6px">${p}</span><span class="${h?"xxx-of-key":"xxx-of-descr"}">${d}</span>`:p.endsWith("*")?I`<span class="key-label" style="display:inline-block;margin-left:-6px"> ${p.substring(0,p.length-1)}</span><span style="color:var(--red)">*</span>`:I`<span class="key-label" style="display:inline-block;margin-left:-6px">${"::props"===p?"":p}</span>`} ${"xxx-of"===e["::type"]&&"array"===t?I`<span style="color:var(--primary-color)">ARRAY</span>`:""} </div> <div class="td key-type">${(e["::type"]||"").includes("xxx-of")?"":f}</div> <div class="td key-descr m-markdown-small" style="line-height:1.7">${Hc(Z()(n||""))}</div> </div>`:I` ${"array"===e["::type"]&&"array"===t?I`<div class="tr"> <div class="td"> ${t} </div> </div>`:""} `} <div class="object-body"> ${Array.isArray(e)&&e[0]?I`${this.generateTree(e[0],"xxx-of-option","::ARRAY~OF","",l,c)}`:I` ${Object.keys(e).map((t=>I` ${["::description","::type","::props","::deprecated"].includes(t)?"array"===e[t]["::type"]||"object"===e[t]["::type"]?I`${this.generateTree("array"===e[t]["::type"]?e[t]["::props"]:e[t],e[t]["::type"],t,e[t]["::description"],l,c)}`:"":I`${this.generateTree("array"===e[t]["::type"]?e[t]["::props"]:e[t],e[t]["::type"],t,e[t]["::description"],l,c)}`} `))} `} <div> </div></div>`;const[m,g,y,b,v,x,w,k,A]=e.split("~|~");if("ðŸ†"===g&&"true"===this.schemaHideReadOnly)return;if("🆆"===g&&"true"===this.schemaHideWriteOnly)return;const $=m.replace(/┃.*/g,"").replace(/[^a-zA-Z0-9+]/g,"").substring(0,4).toLowerCase();return I` <div class="tr primitive"> <div class="td key ${A}" style="padding-left:${u}px"> ${null!==(s=p)&&void 0!==s&&s.endsWith("*")?I`<span class="key-label">${p.substring(0,p.length-1)}</span><span style="color:var(--red)">*</span>`:r.startsWith("::OPTION")?I`<span class="xxx-of-key">${p}</span><span class="xxx-of-descr">${d}</span>`:I`${p?I`<span class="key-label"> ${p}</span>`:I`<span class="xxx-of-descr">${k}</span>`}`} </div> <div class="td key-type ${$}"> ${"array"===t?`[${m}]`:m} <span style="font-family:var(--font-mono)">${g} </span> </div> <div class="td key-descr"> ${"array"===t?n:""} ${y?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"> <span class="bold-text">Constraints: </span> ${y}</div>`:""} ${b?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"> <span class="bold-text">Default: </span>${b}</div>`:""} ${v?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"> <span class="bold-text">Allowed: </span>${v}</div>`:""} ${x?I`<div style="display:inline-block;line-break:anywhere;margin-right:8px"> <span class="bold-text">Pattern: </span>${x}</div>`:""} ${w?I`<span class="m-markdown-small">${Hc(Z()(w))}</span>`:""} </div> </div> `}toggleObjectExpand(e){const t=e.target.closest(".tr");t.classList.contains("expanded")?(t.classList.add("collapsed"),t.classList.remove("expanded"),e.target.innerText="+"):(t.classList.remove("collapsed"),t.classList.add("expanded"),e.target.innerText="-")}});function mu(e){const t=new(Z().Renderer);return t.heading=(t,r,n,o)=>`<h${r} class="observe-me" id="${e}--${o.slug(n)}">${t}</h${r}>`,t}function gu(e,t=""){var r,n;const o=new Set;for(const t in e.responses)for(const r in null===(a=e.responses[t])||void 0===a?void 0:a.content){var a;o.add(r.trim())}const i=[...o].join(", "),s=this.resolvedSpec.securitySchemes.filter((t=>{var r;return t.finalKeyValue&&(null===(r=e.security)||void 0===r?void 0:r.some((e=>t.apiKeyId in e)))}))||[],l=this.resolvedSpec.securitySchemes.find((e=>e.apiKeyId===pe&&"-"!==e.value));l&&s.push(l);const c=e.xCodeSamples?eu.call(this,e.xCodeSamples):"";return I` ${"read"===this.renderStyle?I`<div class="divider" part="operation-divider"></div>`:""} <div class="expanded-endpoint-body observe-me ${e.method} ${e.deprecated?"deprecated":""}" part="section-operation ${e.elementId}" id="${e.elementId}"> ${"focused"===this.renderStyle&&"General ⦂"!==t?I`<h3 class="upper" style="font-weight:700"> ${t} </h3>`:""} ${e.deprecated?I`<div class="bold-text red-text"> DEPRECATED </div>`:""} ${I` <h2> ${e.shortSummary||`${e.method.toUpperCase()} ${e.path}`}</h2> ${e.isWebhook?I`<span style="color:var(--primary-color);font-weight:700;font-size:var(--font-size-regular)"> WEBHOOK </span>`:I` <div class='mono-font part="section-operation-url" regular-font-size' style="padding:8px 0;color:var(--fg3)"> <span part="label-operation-method" class="regular-font upper method-fg bold-text ${e.method}">${e.method}</span> <span part="label-operation-path">${e.path}</span> </div> `} <slot name="${e.elementId}"></slot>`} ${e.description?I`<div class="m-markdown"> ${Hc(Z()(e.description))}</div>`:""} ${Qc.call(this,e.security)} ${c} <div class="expanded-req-resp-container"> <api-request class="${this.renderStyle}-mode" style="width:100%" method="${e.method}" path="${e.path}" .parameters="${e.parameters}" .request_body="${e.requestBody}" .api_keys="${s}" .servers="${e.servers}" server-url="${(null===(r=e.servers)||void 0===r||null===(n=r[0])||void 0===n?void 0:n.url)||this.selectedServer.computedUrl}" fill-request-fields-with-example="${this.fillRequestFieldsWithExample}" allow-try="${this.allowTry}" accept="${i}" render-style="${this.renderStyle}" schema-style="${this.schemaStyle}" active-schema-tab="${this.defaultSchemaTab}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" schema-hide-read-only="${this.schemaHideReadOnly}" fetch-credentials="${this.fetchCredentials}" exportparts="btn btn-fill btn-outline btn-try"> </api-request> ${e.callbacks?tu.call(this,e.callbacks):""} <api-response class="${this.renderStyle}-mode" style="width:100%" .responses="${e.responses}" render-style="${this.renderStyle}" schema-style="${this.schemaStyle}" active-schema-tab="${this.defaultSchemaTab}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" schema-hide-write-only="${this.schemaHideWriteOnly}" selected-status="${Object.keys(e.responses||{})[0]||""}" exportparts="btn--resp btn-fill--resp btn-outline--resp"> </api-response> </div> </div> `}function yu(){return this.resolvedSpec?I` ${this.resolvedSpec.tags.map((e=>I` <section id="${e.elementId}" part="section-tag" class="regular-font section-gap--read-mode observe-me" style="border-top:1px solid var(--primary-color)"> <div class="title tag" part="label-tag-title">${e.name}</div> <slot name="${e.elementId}"></slot> <div class="regular-font-size"> ${Hc(`\n <div class="m-markdown regular-font">\n ${Z()(e.description||"","true"===this.infoDescriptionHeadingsInNavBar?{renderer:mu(e.elementId)}:void 0)}\n </div>`)} </div> </section> <section class="regular-font section-gap--read-mode" part="section-operations-in-tag"> ${e.paths.map((e=>gu.call(this,e,"BBB")))} </section> `))} `:""}function bu(e){return I` <div class="divider"></div> <div class="expanded-endpoint-body observe-me ${e.name}" id="cmp--${e.id}"> ${I` <h1> ${e.name} </h1> ${e.component?I` <div class="mono-font regular-font-size" style="padding:8px 0;color:var(--fg2)"> <json-tree class="border tree" render-style="${this.renderStyle}" .data="${e.component}"> </json-tree> </div>`:""} `} </div> `}function vu(){return this.resolvedSpec?I` ${this.resolvedSpec.components.map((e=>I` <div id="cmp--${e.name.toLowerCase()}" class="regular-font section-gap--read-mode observe-me" style="border-top:1px solid var(--primary-color)"> <div class="title tag">${e.name}</div> <div class="regular-font-size"> ${Hc(`<div class='m-markdown regular-font'>${Z()(e.description?e.description:"")}</div>`)} </div> </div> <div class="regular-font section-gap--read-mode"> ${e.subComponents.map((e=>bu.call(this,e)))} </div> `))} `:""}function xu(){const e=new(Z().Renderer);return e.heading=(e,t,r,n)=>`<h${t} class="observe-me" id="overview--${n.slug(r)}">${e}</h${t}>`,e}function wu(){var e,t,r;return I` <section id="overview" part="section-overview" class="observe-me ${"view"===this.renderStyle?"section-gap":"section-gap--read-mode"}"> ${null!==(e=this.resolvedSpec)&&void 0!==e&&e.info?I` <div id="api-title" part="label-overview-title" style="font-size:32px"> ${this.resolvedSpec.info.title} ${this.resolvedSpec.info.version?I` <span style="font-size:var(--font-size-small);font-weight:700"> ${this.resolvedSpec.info.version} </span>`:""} </div> <div id="api-info" style="font-size:calc(var(--font-size-regular) - 1px);margin-top:8px"> ${null!==(t=this.resolvedSpec.info.contact)&&void 0!==t&&t.email?I`<span>${this.resolvedSpec.info.contact.name||"Email"}: <a href="mailto:${this.resolvedSpec.info.contact.email}" part="anchor anchor-overview">${this.resolvedSpec.info.contact.email}</a> </span>`:""} ${null!==(r=this.resolvedSpec.info.contact)&&void 0!==r&&r.url?I`<span>URL: <a href="${this.resolvedSpec.info.contact.url}" part="anchor anchor-overview">${this.resolvedSpec.info.contact.url}</a></span>`:""} ${this.resolvedSpec.info.license?I`<span>License: ${this.resolvedSpec.info.license.url?I`<a href="${this.resolvedSpec.info.license.url}" part="anchor anchor-overview">${this.resolvedSpec.info.license.name}</a>`:this.resolvedSpec.info.license.name} </span>`:""} ${this.resolvedSpec.info.termsOfService?I`<span><a href="${this.resolvedSpec.info.termsOfService}" part="anchor anchor-overview">Terms of Service</a></span>`:""} </div> <slot name="overview"></slot> <div id="api-description"> ${this.resolvedSpec.info.description?I`${Hc(`\n <div class="m-markdown regular-font">\n ${Z()(this.resolvedSpec.info.description,"true"===this.infoDescriptionHeadingsInNavBar?{renderer:xu()}:void 0)}\n </div>`)}`:""} </div> `:""} </section> `}function ku(e,t){e&&e.target.checked&&(this.selectedServer=t,this.requestUpdate())}function Au(e,t){const r=[...e.currentTarget.closest("table").querySelectorAll("input, select")];let n=t.url;r.forEach((e=>{const t=new RegExp(`{${e.dataset.var}}`,"g");n=n.replace(t,e.value)})),t.computedUrl=n,this.requestUpdate()}function $u(){return this.selectedServer&&this.selectedServer.variables?I` <div class="table-title"> SERVER VARIABLES</div> <table class="m-table"> ${Object.entries(this.selectedServer.variables).map((e=>I` <tr> <td style="vertical-align:middle">${e[0]}</td> <td> ${e[1].enum?I` <select data-var="${e[0]}" @input="${e=>{Au.call(this,e,this.selectedServer)}}"> ${Object.entries(e[1].enum).map((t=>e[1].default===t[1]?I` <option selected="selected" label="${t[1]}" value="${t[1]}">`:I` <option label="${t[1]}" value="${t[1]}">`))} </select>`:I` <input type="text" part="textbox textbox-server-var" spellcheck="false" data-var="${e[0]}" value="${e[1].default}" @input="${e=>{Au.call(this,e,this.selectedServer)}}">`} </td> </tr> ${e[1].description?I`<tr><td colspan="2" style="border:none"><span class="m-markdown-small"> ${Hc(Z()(e[1].description))} </span></td></tr>`:""} `))} </table> `:""}function Eu(){var e,t,r;return this.resolvedSpec?I` <section id="servers" part="section-servers" style="margin-top:24px;margin-bottom:24px" class="regular-font observe-me ${"read focused".includes(this.renderStyle)?"section-gap--read-mode":"section-gap"}"> <div class="sub-title">API SERVER</div> <div class="mono-font" style="margin:12px 0;font-size:calc(var(--font-size-small) + 1px)"> ${0===(null===(e=this.resolvedSpec.servers)||void 0===e?void 0:e.length)?"":I` ${null===(t=this.resolvedSpec)||void 0===t?void 0:t.servers.map(((e,t)=>I` <input type="radio" name="api_server" id="srvr-opt-${t}" value="${e.url}" @change="${t=>{ku.call(this,t,e)}}" .checked="${this.selectedServer.url===e.url}" style="margin:4px 0;cursor:pointer"> <label style="cursor:pointer" for="srvr-opt-${t}"> ${e.url} ${e.description?I`- <span class="regular-font">${e.description} </span>`:""} </label> <br> `))} `} <div class="table-title primary-text" part="label-selected-server"> SELECTED: ${null===(r=this.selectedServer)||void 0===r?void 0:r.computedUrl}</div> </div> <slot name="servers"></slot> ${$u.call(this)} </section>`:""}function Su(e,t="toggle"){const r=null==e?void 0:e.closest(".nav-bar-tag-and-paths");if(r){const e=r.classList.contains("expanded");!e||"toggle"!==t&&"collapse"!==t?e||"toggle"!==t&&"expand"!==t||r.classList.replace("collapsed","expanded"):r.classList.replace("expanded","collapsed")}}function Du(e){Su(e.target,"toggle")}function Ou(e,t="expand-all"){!function(e,t="expand-all"){const r=[...e.querySelectorAll(".nav-bar-tag-and-paths")];"expand-all"===t?r.map((e=>{e.classList.replace("collapsed","expanded")})):r.map((e=>{e.classList.replace("expanded","collapsed")}))}(e.target.closest(".nav-scroll"),t)}function Cu(){return I` <nav class="nav-bar ${this.renderStyle}" part="section-navbar"> <div style="padding:16px 30px 0 16px"> <slot name="nav-logo" class="logo"></slot> </div> ${"false"===this.allowSearch&&"false"===this.allowAdvancedSearch?"":I` <div style="display:flex;flex-direction:row;justify-content:center;align-items:center;padding:24px;${"false"===this.allowAdvancedSearch?"border-bottom: 1px solid var(--nav-hover-bg-color)":""}"> ${"false"===this.allowSearch?"":I` <div style="display:flex;flex:1;line-height:22px"> <input id="nav-bar-search" part="textbox textbox-nav-filter" style="width:100%;padding-right:20px;color:var(--nav-hover-text-color);border-color:var(--nav-accent-color);background-color:var(--nav-hover-bg-color)" type="text" placeholder="Filter" @change="${this.onSearchChange}" spellcheck="false"> <div style="margin:6px 5px 0 -24px;font-size:var(--font-size-regular);cursor:pointer">↩</div> </div> ${this.matchPaths?I` <div @click="${this.onClearSearch}" style="margin-left:5px;cursor:pointer;align-self:center;color:var(--nav-text-color)" class="small-font-size primary-text bold-text"> CLEAR </div>`:""} `} ${"false"===this.allowAdvancedSearch||this.matchPaths?"":I` <button class="m-btn primary" part="btn btn-fill btn-search" style="margin-left:5px" @click="${this.onShowSearchModalClicked}"> Search </button> `} </div> `} ${I`<nav class="nav-scroll"> ${"false"!==this.showInfo&&this.resolvedSpec.info?I` ${"true"===this.infoDescriptionHeadingsInNavBar?I` ${this.resolvedSpec.infoDescriptionHeaders.length>0?I`<div class="nav-bar-info" id="link-overview" data-content-id="overview" @click="${e=>this.scrollToEventTarget(e,!1)}"> Overview </div>`:""} <div class="overview-headers"> ${this.resolvedSpec.infoDescriptionHeaders.map((e=>I` <div class="nav-bar-h${e.depth}" id="link-overview--${(new(Z().Slugger)).slug(e.text)}" data-content-id="overview--${(new(Z().Slugger)).slug(e.text)}" @click="${e=>this.scrollToEventTarget(e,!1)}"> ${e.text} </div>`))} </div> ${this.resolvedSpec.infoDescriptionHeaders.length>0?I`<hr style="border-top:1px solid var(--nav-hover-bg-color);border-width:1px 0 0 0;margin:15px 0 0 0">`:""} `:I`<div class="nav-bar-info" id="link-overview" data-content-id="overview" @click="${e=>this.scrollToEventTarget(e,!1)}"> Overview </div>`} `:""} ${"false"===this.allowServerSelection?"":I`<div class="nav-bar-info" id="link-servers" data-content-id="servers" @click="${e=>this.scrollToEventTarget(e,!1)}"> API Servers </div>`} ${"false"!==this.allowAuthentication&&this.resolvedSpec.securitySchemes?I`<div class="nav-bar-info" id="link-auth" data-content-id="auth" @click="${e=>this.scrollToEventTarget(e,!1)}"> Authentication </div>`:""} <div id="link-paths" class="nav-bar-section"> <div style="font-size:16px;display:flex;margin-left:10px"> ${"focused"===this.renderStyle?I` <div @click="${e=>{Ou.call(this,e,"expand-all")}}" title="Expand all" style="transform:rotate(90deg);cursor:pointer;margin-right:10px">â–¸</div> <div @click="${e=>{Ou.call(this,e,"collapse-all")}}" title="Collapse all" style="transform:rotate(270deg);cursor:pointer">â–¸</div>`:""} </div> <div class="nav-bar-section-title"> OPERATIONS </div> </div> ${this.resolvedSpec.tags.filter((e=>e.paths.filter((e=>fe(this.matchPaths,e))).length)).map((e=>I` <div class="nav-bar-tag-and-paths ${e.expanded?"expanded":"collapsed"}"> ${"General ⦂"===e.name?I`<hr style="border:none;border-top:1px dotted var(--nav-text-color);opacity:.4;margin-top:-1px">`:I` <div class="nav-bar-tag" id="link-${e.elementId}" data-content-id="${e.elementId}" data-first-path-id="${e.firstPathId}" @click="${e=>{"focused"===this.renderStyle&&"expand-collapse"===this.onNavTagClick?Du.call(this,e):this.scrollToEventTarget(e,!1)}}"> <div>${e.name}</div> <div class="nav-bar-tag-icon" @click="${e=>{"focused"===this.renderStyle&&"show-description"===this.onNavTagClick&&Du.call(this,e)}}"> </div> </div> `} ${"true"===this.infoDescriptionHeadingsInNavBar?I` ${"focused"===this.renderStyle&&"expand-collapse"===this.onNavTagClick?"":I` <div class="tag-headers"> ${e.headers.map((t=>I` <div class="nav-bar-h${t.depth}" id="link-${e.elementId}--${(new(Z().Slugger)).slug(t.text)}" data-content-id="${e.elementId}--${(new(Z().Slugger)).slug(t.text)}" @click="${e=>this.scrollToEventTarget(e,!1)}"> ${t.text}</div>`))} </div>`}`:""} <div class="nav-bar-paths-under-tag"> ${e.paths.filter((e=>!this.matchPaths||fe(this.matchPaths,e))).map((e=>I` <div class="nav-bar-path ${"true"===this.usePathInNavBar?"small-font":""}" data-content-id="${e.elementId}" id="link-${e.elementId}" @click="${e=>{this.scrollToEventTarget(e,!1)}}"> <span style="${e.deprecated?"filter:opacity(0.5)":""}"> ${e.isWebhook?I`<span style="font-weight:700;margin-right:8px;font-size:calc(var(--font-size-small) - 2px)">WEBHOOK</span>`:""} ${"true"===this.usePathInNavBar?I`<span class="mono-font">${e.method.toUpperCase()} ${e.path}</span>`:e.summary||e.shortSummary} </span> </div>`))} </div> </div> `))} ${this.resolvedSpec.components&&"true"===this.showComponents?I` <div id="link-components" class="nav-bar-section"> <div></div> <div class="nav-bar-section-title">COMPONENTS</div> </div> ${this.resolvedSpec.components.map((e=>e.subComponents.length?I` <div class="nav-bar-tag" data-content-id="cmp--${e.name.toLowerCase()}" id="link-cmp--${e.name.toLowerCase()}" @click="${e=>this.scrollToEventTarget(e,!1)}"> ${e.name} </div> ${e.subComponents.map((e=>I` <div class="nav-bar-path" data-content-id="cmp--${e.id}" id="link-cmp--${e.id}" @click="${e=>this.scrollToEventTarget(e,!1)}"> <span> ${e.name} </span> </div>`))}`:""))}`:""} </nav>`} </nav> `}function _u(e){const t=new(Z().Renderer);return t.heading=(t,r,n,o)=>`<h${r} class="observe-me" id="${e}--${o.slug(n)}">${t}</h${r}>`,t}function ju(e){return I` <div class="regular-font section-gap--focused-mode" part="section-operations-in-tag"> ${e} </div>`}function Tu(){var e;if("true"===this.showInfo)return ju(wu.call(this));const t=this.resolvedSpec.tags[0],r=null===(e=this.resolvedSpec.tags[0])||void 0===e?void 0:e.paths[0];return ju(t&&r?gu.call(this,r,t.name):"")}function Fu(e){return I` <h1 id="${e.elementId}">${e.name}</h1> ${"show-description"===this.onNavTagClick&&e.description?I` <div class="m-markdown"> ${Hc(`\n <div class="m-markdown regular-font">\n ${Z()(e.description||"","true"===this.infoDescriptionHeadingsInNavBar?{renderer:_u(e.elementId)}:void 0)}\n </div>`)} </div>`:""} `}function Pu(){if(!this.focusedElementId||!this.resolvedSpec)return;const e=this.focusedElementId;let t,r=null,n=null,o=0;if(e.startsWith("overview")&&"true"===this.showInfo)t=wu.call(this);else if("auth"===e&&"true"===this.allowAuthentication)t=Xc.call(this);else if("servers"===e&&"true"===this.allowServerSelection)t=Eu.call(this);else if(e.startsWith("cmp--")&&"true"===this.showComponents)t=vu.call(this);else if(e.startsWith("tag--")){const r=e.indexOf("--",4)>0?e.substring(0,e.indexOf("--",5)):e;n=this.resolvedSpec.tags.find((e=>e.elementId===r)),t=n?ju.call(this,Fu.call(this,n)):Tu.call(this)}else{for(o=0;o<this.resolvedSpec.tags.length&&(n=this.resolvedSpec.tags[o],r=this.resolvedSpec.tags[o].paths.find((t=>`${t.elementId}`===e)),!r);o+=1);if(r){Su(this.shadowRoot.getElementById(`link-${e}`),"expand"),t=ju.call(this,gu.call(this,r,n.name))}else t=Tu.call(this)}return t}function Bu(e){if(e.expanded)e.expanded=!1,window.history.replaceState(null,null,`${window.location.href.split("#")[0]}`);else{e.expanded=!0;const t=`#${e.elementId}`;window.location.hash!==t&&window.history.replaceState(null,null,`${window.location.href.split("#")[0]}${t}`)}this.requestUpdate()}function Iu(e,t="expand-all"){const r=[...e.querySelectorAll(".section-tag")];"expand-all"===t?r.map((e=>{e.classList.replace("collapsed","expanded")})):r.map((e=>{e.classList.replace("expanded","collapsed")}))}function Ru(e,t="expand-all"){Iu.call(this,e.target.closest(".operations-root"),t)}function Nu(e){return I` <summary @click="${t=>{Bu.call(this,e,t)}}" class="endpoint-head ${e.method} ${e.deprecated?"deprecated":""} ${e.expanded?"expanded":"collapsed"}"> <div class="method ${e.method} ${e.deprecated?"deprecated":""}"> ${e.method} </div> <div class="path ${e.deprecated?"deprecated":""}"> ${e.path} ${e.isWebhook?I`<span style="font-family:var(--font-regular);font-size:var(--);font-size:var(--font-size-small);color:var(--primary-color);margin-left:16px"> Webhook</span>`:""} </div> ${e.deprecated?I` <span style="font-size:var(--font-size-small);text-transform:uppercase;font-weight:700;color:var(--red);margin:2px 0 0 5px"> deprecated </span>`:""} <div class="only-large-screen" style="min-width:60px;flex:1"></div> <div class="descr">${e.summary||e.shortSummary} </div> </summary> `}function Lu(e){const t=new Set;for(const n in e.responses)for(const o in null===(r=e.responses[n])||void 0===r?void 0:r.content){var r;t.add(o.trim())}const n=[...t].join(", "),o=this.resolvedSpec.securitySchemes.filter((t=>{var r;return t.finalKeyValue&&(null===(r=e.security)||void 0===r?void 0:r.some((e=>t.apiKeyId in e)))}))||[],a=this.resolvedSpec.securitySchemes.find((e=>e.apiKeyId===pe&&"-"!==e.value));a&&o.push(a);const i=e.xCodeSamples?eu(e.xCodeSamples):"";return I` <div class="endpoint-body ${e.method} ${e.deprecated?"deprecated":""}"> <slot name="${e.elementId}"></slot> <div class="summary"> ${e.summary?I`<div class="title">${e.summary}<div></div></div>`:e.shortSummary!==e.description?I`<div class="title">${e.shortSummary}</div>`:""} ${e.description?I`<div class="m-markdown"> ${Hc(Z()(e.description))}</div>`:""} ${Qc.call(this,e.security)} ${i} </div> <div class="req-resp-container"> <api-request class="${this.renderStyle}-mode" style="width:100%" method="${e.method}" , path="${e.path}" .parameters="${e.parameters}" .request_body="${e.requestBody}" .api_keys="${o}" .servers="${e.servers}" server-url="${e.servers&&e.servers.length>0?e.servers[0].url:this.selectedServer.computedUrl}" active-schema-tab="${this.defaultSchemaTab}" fill-request-fields-with-example="${this.fillRequestFieldsWithExample}" allow-try="${this.allowTry}" accept="${n}" render-style="${this.renderStyle}" schema-style="${this.schemaStyle}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" schema-hide-read-only="${this.schemaHideReadOnly}" fetch-credentials="${this.fetchCredentials}" exportparts="btn btn-fill btn-outline btn-try"> ${e.callbacks?tu.call(this,e.callbacks):""} </api-request> <api-response class="${this.renderStyle}-mode" style="width:100%" .responses="${e.responses}" active-schema-tab="${this.defaultSchemaTab}" render-style="${this.renderStyle}" schema-style="${this.schemaStyle}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" schema-hide-write-only="${this.schemaHideWriteOnly}" selected-status="${Object.keys(e.responses||{})[0]||""}" exportparts="btn--resp btn-fill--resp btn-outline--resp"> </api-response> </div> </div>`}function qu(){return this.resolvedSpec?I` <div style="display:flex;justify-content:flex-end"> <span @click="${e=>Ru(e,"expand-all")}" style="color:var(--primary-color);cursor:pointer"> Expand all </span> | <span @click="${e=>Ru(e,"collapse-all")}" style="color:var(--primary-color);cursor:pointer"> Collapse all </span> sections </div> ${this.resolvedSpec.tags.map((e=>I` <div class="regular-font section-gap section-tag ${e.expanded?"expanded":"collapsed"}"> <div class="section-tag-header" @click="${()=>{e.expanded=!e.expanded,this.requestUpdate()}}"> <div id="${e.elementId}" class="sub-title tag" style="color:var(--primary-color)">${e.name}</div> </div> <div class="section-tag-body"> <slot name="${e.elementId}"></slot> <div class="regular-font regular-font-size m-markdown" style="padding-bottom:12px"> ${Hc(Z()(e.description||""))} </div> ${e.paths.filter((e=>!this.matchPaths||fe(this.matchPaths,e))).map((e=>I` <section id="${e.elementId}" class="m-endpoint regular-font ${e.method} ${e.expanded?"expanded":"collapsed"}"> ${Nu.call(this,e)} ${e.expanded?Lu.call(this,e):""} </section>`))} </div> </div> `))}`:""}function zu(){return I` <header class="row header regular-font" part="section-header" style="padding:8px 4px 8px 4px;min-height:48px"> <div class="only-large-screen-flex" style="align-items:center"> <slot name="logo" class="logo" part="section-logo"> ${e="height:36px;width:36px;margin-left:5px",I` <div style="${e}"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="1 0 511 512"> <path d="M351 411a202 202 0 01-350 0 203 203 0 01333-24 203 203 0 0117 24zm0 0" fill="#adc165"/> <path d="M334 387a202 202 0 01-216-69 202 202 0 01216 69zm78 32H85a8 8 0 01-8-8 8 8 0 018-8h327a8 8 0 017 8 8 8 0 01-7 8zm0 0" fill="#99aa52"/> <path d="M374 338l-5 30a202 202 0 01-248-248 203 203 0 01253 218zm0 0" fill="#ffc73b"/> <path d="M374 338a202 202 0 01-100-197 203 203 0 01100 197zm38 81l-6-2-231-231a8 8 0 0111-11l231 230a8 8 0 01-5 14zm0 0" fill="#efb025"/> <path d="M311 175c0 75 40 140 101 175a202 202 0 000-350 202 202 0 00-101 175zm0 0" fill="#ff903e"/> <path d="M412 419a8 8 0 01-8-8V85a8 8 0 0115 0v326a8 8 0 01-7 8zm0 0" fill="#e87425"/> </svg> </div> `} </slot> <div class="header-title" part="label-header-title">${this.headingText}</div> </div> <div style="margin:0 8px;display:flex;flex:1"> ${"false"===this.allowSpecUrlLoad?"":I` <input id="spec-url" type="text" style="font-size:var(--font-size-small)" class="header-input mono-font" part="textbox textbox-spec-url" placeholder="Spec URL" value="${this.specUrl||""}" @change="${this.onSepcUrlChange}" spellcheck="false"> <div style="margin:6px 5px 0 -24px;font-size:var(--font-size-regular);cursor:pointer">↩</div> `} ${"false"===this.allowSpecFileLoad?"":I` <input id="spec-file" part="file-input" type="file" style="display:none" value="${this.specFile||""}" @change="${this.onSepcFileChange}" spellcheck="false"> <button class="m-btn primary only-large-screen" style="margin-left:10px" part="btn btn-fill" @click="${this.onFileLoadClick}"> LOCAL JSON FILE </button> `} <slot name="header"></slot> ${"false"===this.allowSearch||"read focused".includes(this.renderStyle)?"":I` <input id="search" class="header-input" type="text" part="textbox textbox-header-filter" placeholder="Filter" @change="${this.onSearchChange}" style="max-width:130px;margin-left:10px" spellcheck="false"> <div style="margin:6px 5px 0 -24px;font-size:var(--font-size-regular);cursor:pointer">↩</div> `} ${"false"===this.allowSearch||"false"===this.allowAdvancedSearch||"read focused".includes(this.renderStyle)?"":I` <button class="m-btn primary only-large-screen" part="btn btn-fill btn-search" style="margin-left:10px" @click="${this.onShowSearchModalClicked}"> Search </button> `} </div> </header>`;var e}customElements.define("api-response",class extends G{constructor(){super(),this.selectedStatus="",this.headersForEachRespStatus={},this.mimeResponsesForEachStatus={},this.activeSchemaTab="schema"}static get properties(){return{callback:{type:String},responses:{type:Object},parser:{type:Object},schemaStyle:{type:String,attribute:"schema-style"},renderStyle:{type:String,attribute:"render-style"},selectedStatus:{type:String,attribute:"selected-status"},selectedMimeType:{type:String,attribute:"selected-mime-type"},activeSchemaTab:{type:String,attribute:"active-schema-tab"},schemaExpandLevel:{type:Number,attribute:"schema-expand-level"},schemaDescriptionExpanded:{type:String,attribute:"schema-description-expanded"},allowSchemaDescriptionExpandToggle:{type:String,attribute:"allow-schema-description-expand-toggle"},schemaHideWriteOnly:{type:String,attribute:"schema-hide-write-only"}}}static get styles(){return[ee,re,ie,ne,te,ru,Y`.resp-head{vertical-align:middle;padding:16px 0 8px}.resp-head.divider{border-top:1px solid var(--border-color);margin-top:10px}.resp-status{font-weight:700;font-size:calc(var(--font-size-small) + 1px)}.resp-descr{font-size:calc(var(--font-size-small) + 1px);color:var(--light-fg)}.top-gap{margin-top:16px}.example-panel{font-size:var(--font-size-small);margin:0}.focused-mode,.read-mode{padding-top:24px;margin-top:12px;border-top:1px dashed var(--border-color)}`,ce]}render(){return I` <div class="col regular-font response-panel ${this.renderStyle}-mode"> <div class="${"true"===this.callback?"tiny-title":"req-res-title"}"> ${"true"===this.callback?"CALLBACK RESPONSE":"RESPONSE"} </div> <div> ${this.responseTemplate()} <div> </div> </div></div>`}resetSelection(){this.selectedStatus="",this.selectedMimeType=""}responseTemplate(){if(!this.responses)return"";for(const n in this.responses){this.selectedStatus||(this.selectedStatus=n);const o={};for(const r in null===(e=this.responses[n])||void 0===e?void 0:e.content){var e,t;const a=this.responses[n].content[r];this.selectedMimeType||(this.selectedMimeType=r);const i=du(a.schema,{}),s=hu(a.examples,a.example,a.schema,r,!0,!1,r.includes("json")?"json":"text");o[r]={description:this.responses[n].description,examples:s,selectedExample:(null===(t=s[0])||void 0===t?void 0:t.exampleId)||"",schemaTree:i}}const a=[];for(const e in null===(r=this.responses[n])||void 0===r?void 0:r.headers){var r;a.push({name:e,...this.responses[n].headers[e]})}this.headersForEachRespStatus[n]=a,this.mimeResponsesForEachStatus[n]=o}return I` ${Object.keys(this.responses).length>1?I`<div class="row" style="flex-wrap:wrap"> ${Object.keys(this.responses).map((e=>I` ${"$$ref"===e?"":I` <button @click="${()=>{this.selectedStatus=e,this.responses[e].content&&Object.keys(this.responses[e].content)[0]?this.selectedMimeType=Object.keys(this.responses[e].content)[0]:this.selectedMimeType=void 0}}" class="m-btn small ${this.selectedStatus===e?"primary":""}" part="btn--resp ${this.selectedStatus===e?"btn-fill--resp":"btn-outline--resp"} btn-response-status" style="margin:8px 4px 0 0"> ${e} </button>`}`))}</div>`:I`<span>${Object.keys(this.responses)[0]}</span>`} ${Object.keys(this.responses).map((e=>{var t,r;return I` <div style="display:${e===this.selectedStatus?"block":"none"}"> <div class="top-gap"> <span class="resp-descr m-markdown">${Hc(Z()((null===(t=this.responses[e])||void 0===t?void 0:t.description)||""))}</span> ${this.headersForEachRespStatus[e]&&(null===(r=this.headersForEachRespStatus[e])||void 0===r?void 0:r.length)>0?I`${this.responseHeaderListTemplate(this.headersForEachRespStatus[e])}`:""} </div> ${0===Object.keys(this.mimeResponsesForEachStatus[e]).length?"":I` <div class="tab-panel col"> <div class="tab-buttons row" @click="${e=>{"button"===e.target.tagName.toLowerCase()&&(this.activeSchemaTab=e.target.dataset.tab)}}"> <button class="tab-btn ${"schema"===this.activeSchemaTab?"active":""}" data-tab="schema">SCHEMA</button> <button class="tab-btn ${"example"===this.activeSchemaTab?"active":""}" data-tab="example">EXAMPLE </button> <div style="flex:1"></div> ${1===Object.keys(this.mimeResponsesForEachStatus[e]).length?I`<span class="small-font-size gray-text" style="align-self:center;margin-top:8px"> ${Object.keys(this.mimeResponsesForEachStatus[e])[0]} </span>`:I`${this.mimeTypeDropdownTemplate(Object.keys(this.mimeResponsesForEachStatus[e]))}`} </div> ${"example"===this.activeSchemaTab?I`<div class="tab-content col" style="flex:1"> ${this.mimeExampleTemplate(this.mimeResponsesForEachStatus[e][this.selectedMimeType])} </div>`:I`<div class="tab-content col" style="flex:1"> ${this.mimeSchemaTemplate(this.mimeResponsesForEachStatus[e][this.selectedMimeType])} </div>`} </div> `}</div>`}))} `}responseHeaderListTemplate(e){return I` <div style="padding:16px 0 8px 0" class="resp-headers small-font-size bold-text">RESPONSE HEADERS</div> <table style="border-collapse:collapse;margin-bottom:16px;border:1px solid var(--border-color);border-radius:var(--border-radius)" class="small-font-size mono-font"> ${e.map((e=>I` <tr> <td style="padding:8px;vertical-align:baseline;min-width:120px;border-top:1px solid var(--light-border-color);text-overflow:ellipsis"> ${e.name||""} </td> <td style="padding:4px;vertical-align:baseline;padding:0 5px;border-top:1px solid var(--light-border-color);text-overflow:ellipsis"> ${e.schema.type||""} </td> <td style="padding:8px;vertical-align:baseline;border-top:1px solid var(--light-border-color);text-overflow:ellipsis"> <div class="m-markdown-small regular-font">${Hc(Z()(e.description||""))}</div> </td> <td style="padding:8px;vertical-align:baseline;border-top:1px solid var(--light-border-color);text-overflow:ellipsis"> ${e.schema.example||""} </td> </tr> `))} </table>`}mimeTypeDropdownTemplate(e){return I` <select @change="${e=>{this.selectedMimeType=e.target.value}}" style="margin-bottom:-1px;z-index:1"> ${e.map((e=>I`<option value="${e}" ?selected="${e===this.selectedMimeType}"> ${e} </option>`))} </select>`}onSelectExample(e){[...e.target.closest(".example-panel").querySelectorAll(".example")].forEach((t=>{t.style.display=t.dataset.example===e.target.value?"block":"none"}))}mimeExampleTemplate(e){return e?I` ${1===e.examples.length?I` ${"json"===e.examples[0].exampleFormat?I` <json-tree render-style="${this.renderStyle}" .data="${e.examples[0].exampleValue}" class="example-panel ${"read"===this.renderStyle?"border pad-8-16":"border-top pad-top-8"}"></json-tree>`:I` <pre class="example-panel ${"read"===this.renderStyle?"border pad-8-16":"border-top pad-top-8"}">${e.examples[0].exampleValue}</pre> `}`:I` <span class="example-panel ${"read"===this.renderStyle?"border pad-8-16":"border-top pad-top-8"}"> <select style="min-width:100px;max-width:100%" @change="${e=>this.onSelectExample(e)}"> ${e.examples.map((t=>I`<option value="${t.exampleId}" ?selected="${t.exampleId===e.selectedExample}"> ${t.exampleSummary.length>80?t.exampleId:t.exampleSummary} </option>`))} </select> ${e.examples.map((t=>I` <div class="example" data-example="${t.exampleId}" style="display:${t.exampleId===e.selectedExample?"block":"none"}"> ${t.exampleSummary&&t.exampleSummary.length>80?I`<div style="padding:4px 0"> ${t.exampleSummary} </div>`:""} ${t.exampleDescription?I`<div class="m-markdown-small" style="padding:4px 0"> ${Hc(Z()(t.exampleDescription||""))} </div>`:""} ${"json"===t.exampleFormat?I` <json-tree render-style="${this.renderStyle}" .data="${t.exampleValue}"></json-tree>`:I`<pre>${t.exampleValue}</pre>`} </div> `))} </span> `} `:I` <pre style="color:var(--red)" class="${"read"===this.renderStyle?"read example-panel border pad-8-16":"example-panel border-top"}"> No example provided </pre> `}mimeSchemaTemplate(e){return e?I` ${"table"===this.schemaStyle?I` <schema-table render-style="${this.renderStyle}" .data="${e.schemaTree}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" , schema-hide-read-only="false" schema-hide-write-only="${this.schemaHideWriteOnly}"> </schema-table>`:I` <schema-tree render-style="${this.renderStyle}" .data="${e.schemaTree}" schema-expand-level="${this.schemaExpandLevel}" schema-description-expanded="${this.schemaDescriptionExpanded}" allow-schema-description-expand-toggle="${this.allowSchemaDescriptionExpandToggle}" , schema-hide-read-only="false" schema-hide-write-only="${this.schemaHideWriteOnly}"> </schema-tree>`}`:I` <pre style="color:var(--red)" class="${"read"===this.renderStyle?"border pad-8-16":"border-top"}"> Schema not found</pre> `}});const Uu=Y`*,:after,:before{box-sizing:border-box}.dialog-box-overlay{background-color:var(--overlay-bg);position:fixed;left:0;top:0;width:100vw;height:100vh;overflow:hidden;z-index:var(--dialog-z-index)}.dialog-box{position:fixed;top:100px;left:50%;transform:translate(-50%,0);display:flex;flex-direction:column;width:70vw;background-color:var(--bg2);color:var(--fg2);border-radius:4px;max-height:500px;overflow:hidden;border:1px solid var(--border-color);box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.dialog-box-header{position:sticky;top:0;align-self:stretch;display:flex;align-items:center;padding:0 16px;min-height:60px;max-height:60px;border-bottom:1px solid var(--light-border-color);overflow:hidden}.dialog-box-header button{font-size:1.5rem;font-weight:700;line-height:1;color:var(--fg);border:none;outline:0;background-color:transparent;cursor:pointer;border:1px solid transparent;border-radius:50%;margin-right:-8px}.dialog-box-header button:hover{border-color:var(--primary-color)}.dialog-box-content{padding:16px;display:block;overflow:auto;height:100%}.dialog-box-title{flex-grow:1;font-size:24px}`;function Mu(){var e;return document.addEventListener("close",(()=>{this.showAdvancedSearchDialog=!1})),document.addEventListener("open",this.onOpenSearchDialog),I` <dialog-box heading="Advanced Search" show="${!!this.showAdvancedSearchDialog}"> <span class="advanced-search-options"> <input style="width:100%;padding-right:20px" type="text" part="textbox textbox-search-dialog" placeholder="search text..." spellcheck="false" @keyup="${e=>this.onAdvancedSearch(e,400)}"> <div style="display:flex;margin:8px 0 24px"> <div> <input style="cursor:pointer" type="checkbox" part="checkbox checkbox-search-dialog" id="search-api-path" checked="checked" @change="${e=>this.onAdvancedSearch(e,0)}"> <label for="search-api-path" style="cursor:pointer"> API Path </label> </div> <div style="margin-left:16px"> <input style="cursor:pointer" type="checkbox" part="checkbox checkbox-search-dialog" id="search-api-descr" checked="checked" @change="${e=>this.onAdvancedSearch(e,0)}"> <label style="cursor:pointer" for="search-api-descr"> API Description </label> </div> <div style="margin-left:16px"> <input style="cursor:pointer" type="checkbox" part="checkbox checkbox-search-dialog" id="search-api-params" @change="${e=>this.onAdvancedSearch(e,0)}"> <label style="cursor:pointer" for="search-api-params"> API Parameters </label> </div> <div style="margin-left:16px"> <input style="cursor:pointer" type="checkbox" part="checkbox checkbox-search-dialog" id="search-api-request-body" @change="${e=>this.onAdvancedSearch(e,0)}"> <label style="cursor:pointer" for="search-api-request-body"> Request Body Parameters </label> </div> <div style="margin-left:16px"> <input style="cursor:pointer" type="checkbox" part="checkbox checkbox-search-dialog" id="search-api-resp-descr" @change="${e=>this.onAdvancedSearch(e,0)}"> <label style="cursor:pointer" for="search-api-resp-descr"> Response Description </label> </div> </div> </span> ${null===(e=this.advancedSearchMatches)||void 0===e?void 0:e.map((e=>I` <div class="mono-font small-font-size hover-bg" style="padding:5px;cursor:pointer;border-bottom:1px solid var(--light-border-color);${e.deprecated?"filter:opacity(0.5);":""}" data-content-id="${e.elementId}" tabindex="0" @click="${e=>{this.matchPaths="",this.showAdvancedSearchDialog=!1,this.requestUpdate(),this.scrollToEventTarget(e,!0)}}"> <span class="upper bold-text method-fg ${e.method}">${e.method}</span> <span>${e.path}</span> <span class="regular-font gray-text">${e.summary}</span> </div> `))} </dialog-box> `}customElements.define("dialog-box",class extends G{static get properties(){return{heading:{type:String,attribute:"heading"},show:{type:String,attribute:"show"}}}static get styles(){return[Uu]}connectedCallback(){super.connectedCallback(),document.addEventListener("keydown",(e=>{"Escape"===e.code&&this.onClose()}))}attributeChangedCallback(e,t,r){t!==r&&("heading"===e&&(this.heading=r),"show"===e&&(this.show=r,"true"===r&&document.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0,detail:this})))),super.attributeChangedCallback(e,t,r)}render(){return I` ${"true"===this.show?I` <div class="dialog-box-overlay"> <div class="dialog-box"> <header class="dialog-box-header"> <span class="dialog-box-title">${this.heading}</span> <button type="button" @click="${this.onClose}">×</button> </header> <div class="dialog-box-content"> <slot></slot> </div> </div> </div>`:""}`}onClose(){document.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))}});const Hu={color:{inputReverseFg:"#fff",inputReverseBg:"#333",headerBg:"#444",getRgb(e){if(0===e.indexOf("#")&&(e=e.slice(1,7)),3!==e.length&&4!==e.length||(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),6!==e.length)throw new Error("Invalid HEX color.");return{r:parseInt(e.slice(0,2),16),g:parseInt(e.slice(2,4),16),b:parseInt(e.slice(4,6),16)}},luminanace(e){const t=this.getRgb(e);return.299*t.r+.587*t.g+.114*t.b},invert(e){return this.luminanace(e)>135?"#000":"#fff"},opacity(e,t){const r=this.getRgb(e);return`rgba(${r.r}, ${r.g}, ${r.b}, ${t})`},brightness(e,t){const r=this.getRgb(e);return r.r+=t,r.g+=t,r.b+=t,r.r>255?r.r=255:r.r<0&&(r.r=0),r.g>255?r.g=255:r.g<0&&(r.g=0),r.b>255?r.b=255:r.b<0&&(r.b=0),`#${r.r.toString(16).padStart(2,"0")}${r.g.toString(16).padStart(2,"0")}${r.b.toString(16).padStart(2,"0")}`},hasGoodContrast(e,t){return this.luminanace(e)-this.luminanace(t)}}};function Vu(e){return/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}|[A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/i.test(e)}function Wu(e,t={}){let r={};const n=t.primaryColor?t.primaryColor:"dark"===e?"#f76b39":"#ff591e",o=Hu.color.invert(n),a=Hu.color.opacity(n,"0.8");if("dark"===e){const e=t.bg1?t.bg1:"#333",i=t.fg1?t.fg1:"#bbb",s=t.bg2?t.bg2:Hu.color.brightness(e,5),l=t.bg3?t.bg3:Hu.color.brightness(e,17),c=t.bg3?t.bg3:Hu.color.brightness(e,35),u=t.fg2?t.fg2:Hu.color.brightness(i,-15),p=t.fg3?t.fg3:Hu.color.brightness(i,-20),d=t.fg3?t.fg3:Hu.color.brightness(i,-65),h=t.inlineCodeFg?t.inlineCodeFg:"#aaa",f="#bbb",m="#eee",g=t.headerColor?t.headerColor:Hu.color.brightness(e,10),y=t.navBgColor?t.navBgColor:Hu.color.brightness(e,10);r={bg1:e,bg2:s,bg3:l,lightBg:c,fg1:i,fg2:u,fg3:p,lightFg:d,inlineCodeFg:h,primaryColor:n,primaryColorTrans:a,primaryColorInvert:o,selectionBg:f,selectionFg:m,overlayBg:"rgba(80, 80, 80, 0.4)",navBgColor:y,navTextColor:t.navTextColor?t.navTextColor:Hu.color.opacity(Hu.color.invert(y),"0.65"),navHoverBgColor:t.navHoverBgColor?t.navHoverBgColor:Hu.color.brightness(y,-15),navHoverTextColor:t.navHoverTextColor?t.navHoverTextColor:Hu.color.invert(y),navAccentColor:t.navAccentColor?t.navAccentColor:Hu.color.brightness(n,25),headerColor:g,headerColorInvert:Hu.color.invert(g),headerColorDarker:Hu.color.brightness(g,-20),headerColorBorder:Hu.color.brightness(g,10),borderColor:t.borderColor||Hu.color.brightness(e,20),lightBorderColor:t.lightBorderColor||Hu.color.brightness(e,15),codeBorderColor:t.codeBorderColor||Hu.color.brightness(e,30),inputBg:t.inputBg||Hu.color.brightness(e,-5),placeHolder:t.placeHolder||Hu.color.opacity(i,"0.3"),hoverColor:t.hoverColor||Hu.color.brightness(e,-10),red:t.red?t.red:"#F06560",lightRed:t.lightRed?t.lightRed:Hu.color.brightness(e,-10),pink:t.pink?t.pink:"#ffb2b2",lightPink:t.lightPink||Hu.color.brightness(e,-10),green:t.green||"#7ec699",lightGreen:t.lightGreen||Hu.color.brightness(e,-10),blue:t.blue||"#71b7ff",lightBlue:t.lightBlue||Hu.color.brightness(e,-10),orange:t.orange?t.orange:"#f08d49",lightOrange:t.lightOrange||Hu.color.brightness(e,-10),yellow:t.yellow||"#827717",lightYellow:t.lightYellow||Hu.color.brightness(e,-10),purple:t.purple||"#786FF1",brown:t.brown||"#D4AC0D",codeBg:t.codeBg||Hu.color.opacity(Hu.color.brightness(e,-15),.7),codeFg:t.codeFg||"#aaa",codePropertyColor:t.codePropertyColor||"#f8c555",codeKeywordColor:t.codeKeywordColor||"#cc99cd",codeOperatorColor:t.codeOperatorColor||"#67cdcc"}}else{const e=t.bg1?t.bg1:"#ffffff",i=t.fg1?t.fg1:"#444444",s=t.bg2?t.bg2:Hu.color.brightness(e,-5),l=t.bg3?t.bg3:Hu.color.brightness(e,-15),c=t.bg3?t.bg3:Hu.color.brightness(e,-45),u=t.fg2?t.fg2:Hu.color.brightness(i,17),p=t.fg3?t.fg3:Hu.color.brightness(i,30),d=t.fg3?t.fg3:Hu.color.brightness(i,70),h=t.inlineCodeFg?t.inlineCodeFg:"brown",f="#444",m="#eee",g=t.headerColor?t.headerColor:Hu.color.brightness(e,-180),y=t.navBgColor?t.navBgColor:Hu.color.brightness(e,-180);r={bg1:e,bg2:s,bg3:l,lightBg:c,fg1:i,fg2:u,fg3:p,lightFg:d,inlineCodeFg:h,primaryColor:n,primaryColorTrans:a,primaryColorInvert:o,selectionBg:f,selectionFg:m,overlayBg:"rgba(0, 0, 0, 0.4)",navBgColor:y,navTextColor:t.navTextColor?t.navTextColor:Hu.color.opacity(Hu.color.invert(y),"0.65"),navHoverBgColor:t.navHoverBgColor?t.navHoverBgColor:Hu.color.brightness(y,-15),navHoverTextColor:t.navHoverTextColor?t.navHoverTextColor:Hu.color.invert(y),navAccentColor:t.navAccentColor?t.navAccentColor:Hu.color.brightness(n,25),headerColor:g,headerColorInvert:Hu.color.invert(g),headerColorDarker:Hu.color.brightness(g,-20),headerColorBorder:Hu.color.brightness(g,10),borderColor:t.borderColor||Hu.color.brightness(e,-38),lightBorderColor:t.lightBorderColor||Hu.color.brightness(e,-23),codeBorderColor:t.codeBorderColor||"transparent",inputBg:t.inputBg||Hu.color.brightness(e,10),placeHolder:t.placeHolder||Hu.color.brightness(d,20),hoverColor:t.hoverColor||Hu.color.brightness(e,-5),red:t.red||"#F06560",lightRed:t.lightRed||"#fff0f0",pink:t.pink?t.pink:"#990055",lightPink:t.lightPink?t.lightPink:"#ffb2b2",green:t.green||"#690",lightGreen:t.lightGreen||"#fbfff0",blue:t.blue||"#47AFE8",lightBlue:t.lightBlue||"#eff8fd",orange:t.orange||"#FF9900",lightOrange:t.lightOrange||"#fff5e6",yellow:t.yellow||"#827717",lightYellow:t.lightYellow||"#fff5cc",purple:t.purple||"#786FF1",brown:t.brown||"#D4AC0D",codeBg:t.codeBg||Hu.color.opacity(Hu.color.brightness(e,-15),.7),codeFg:t.codeFg||"#666",codePropertyColor:t.codePropertyColor||"#905",codeKeywordColor:t.codeKeywordColor||"#07a",codeOperatorColor:t.codeOperatorColor||"#9a6e3a"}}return I` <style>*,:after,:before{box-sizing:border-box}:host{--border-radius:2px;--layout:${this.layout||"row"};--font-mono:${this.monoFont||'Monaco, "Andale Mono", "Roboto Mono", Consolas, monospace'};--font-regular:${this.regularFont||'"Open Sans", Avenir, "Segoe UI", Arial, sans-serif'};--nav-item-padding:${"relaxed"===this.navItemSpacing?"10px":"compact"===this.navItemSpacing?"5px 10px":"7px 10px"};--resp-area-height:${this.responseAreaHeight};--font-size-small:${"default"===this.fontSize?"12px":"large"===this.fontSize?"13px":"14px"};--font-size-mono:${"default"===this.fontSize?"13px":"large"===this.fontSize?"14px":"15px"};--font-size-regular:${"default"===this.fontSize?"14px":"large"===this.fontSize?"15px":"16px"};--dialog-z-index:1000;--bg:${r.bg1};--bg2:${r.bg2};--bg3:${r.bg3};--light-bg:${r.lightBg};--fg:${r.fg1};--fg2:${r.fg2};--fg3:${r.fg3};--light-fg:${r.lightFg};--selection-bg:${r.selectionBg};--selection-fg:${r.selectionFg};--overlay-bg:${r.overlayBg};--border-color:${r.borderColor};--light-border-color:${r.lightBorderColor};--code-border-color:${r.codeBorderColor};--input-bg:${r.inputBg};--placeholder-color:${r.placeHolder};--hover-color:${r.hoverColor};--red:${r.red};--light-red:${r.lightRed};--pink:${r.pink};--light-pink:${r.lightPink};--green:${r.green};--light-green:${r.lightGreen};--blue:${r.blue};--light-blue:${r.lightBlue};--orange:${r.orange};--light-orange:${r.lightOrange};--yellow:${r.yellow};--light-yellow:${r.lightYellow};--purple:${r.purple};--brown:${r.brown};--header-bg:${r.headerColor};--header-fg:${r.headerColorInvert};--header-color-darker:${r.headerColorDarker};--header-color-border:${r.headerColorBorder};--nav-bg-color:${r.navBgColor};--nav-text-color:${r.navTextColor};--nav-hover-bg-color:${r.navHoverBgColor};--nav-hover-text-color:${r.navHoverTextColor};--nav-accent-color:${r.navAccentColor};--primary-color:${r.primaryColor};--primary-color-invert:${r.primaryColorInvert};--primary-color-trans:${r.primaryColorTrans};--code-bg:${r.codeBg};--code-fg:${r.codeFg};--inline-code-fg:${r.inlineCodeFg};--code-property-color:${r.codePropertyColor};--code-keyword-color:${r.codeKeywordColor};--code-operator-color:${r.codeOperatorColor}}</style>`}function Yu(){if(!this.resolvedSpec)return"";const e={bg1:Vu(this.bgColor)?this.bgColor:"",fg1:Vu(this.textColor)?this.textColor:"",headerColor:Vu(this.headerColor)?this.headerColor:"",primaryColor:Vu(this.primaryColor)?this.primaryColor:"",navBgColor:Vu(this.navBgColor)?this.navBgColor:"",navTextColor:Vu(this.navTextColor)?this.navTextColor:"",navHoverBgColor:Vu(this.navHoverBgColor)?this.navHoverBgColor:"",navHoverTextColor:Vu(this.navHoverTextColor)?this.navHoverTextColor:"",navAccentColor:Vu(this.navAccentColor)?this.navAccentColor:""};return I` ${"dark"===this.theme?Wu.call(this,"dark",e):Wu.call(this,"light",e)} ${"false"===this.showHeader?"":zu.call(this)} ${"false"===this.allowAdvancedSearch?"":Mu.call(this)} <div id="the-main-body" class="body"> ${"read"!==this.renderStyle&&"focused"!==this.renderStyle||"true"!==this.showSideNav||!this.resolvedSpec?"":Cu.call(this)} <main class="main-content regular-font" part="section-main-content"> <slot></slot> <div class="main-content-inner--${this.renderStyle}-mode"> ${!0===this.loading?I`<div class="loader"></div>`:I` ${!0===this.loadFailed?I`<div style="text-align:center;margin:16px"> Unable to load the Spec</div>`:I` <div class="operations-root" @click="${e=>{this.handleHref(e)}}"> ${"focused"===this.renderStyle?I`${Pu.call(this)}`:I` ${"true"===this.showInfo?wu.call(this):""} ${"true"===this.allowServerSelection?Eu.call(this):""} ${"true"===this.allowAuthentication?Xc.call(this):""} ${"read"===this.renderStyle?yu.call(this):qu.call(this)} `} </div> `}`} </div> <slot name="footer"></slot> </main> </div> `}class Ku extends G{constructor(){super();const e={root:this.getRootNode().host,rootMargin:"-50px 0px -50px 0px",threshold:0};this.isIntersectionObserverActive=!0,this.intersectionObserver=new IntersectionObserver((e=>{this.onIntersect(e)}),e)}static get properties(){return{headingText:{type:String,attribute:"heading-text"},gotoPath:{type:String,attribute:"goto-path"},specUrl:{type:String,attribute:"spec-url"},sortTags:{type:String,attribute:"sort-tags"},generateMissingTags:{type:String,attribute:"generate-missing-tags"},sortEndpointsBy:{type:String,attribute:"sort-endpoints-by"},specFile:{type:String,attribute:!1},layout:{type:String},renderStyle:{type:String,attribute:"render-style"},defaultSchemaTab:{type:String,attribute:"default-schema-tab"},responseAreaHeight:{type:String,attribute:"response-area-height"},fillRequestFieldsWithExample:{type:String,attribute:"fill-request-fields-with-example"},onNavTagClick:{type:String,attribute:"on-nav-tag-click"},schemaStyle:{type:String,attribute:"schema-style"},schemaExpandLevel:{type:Number,attribute:"schema-expand-level"},schemaDescriptionExpanded:{type:String,attribute:"schema-description-expanded"},schemaHideReadOnly:{type:String,attribute:"schema-hide-read-only"},schemaHideWriteOnly:{type:String,attribute:"schema-hide-write-only"},apiKeyName:{type:String,attribute:"api-key-name"},apiKeyLocation:{type:String,attribute:"api-key-location"},apiKeyValue:{type:String,attribute:"api-key-value"},defaultApiServerUrl:{type:String,attribute:"default-api-server"},serverUrl:{type:String,attribute:"server-url"},oauthReceiver:{type:String,attribute:"oauth-receiver"},showHeader:{type:String,attribute:"show-header"},showSideNav:{type:String,attribute:"show-side-nav"},showInfo:{type:String,attribute:"show-info"},allowAuthentication:{type:String,attribute:"allow-authentication"},allowTry:{type:String,attribute:"allow-try"},allowSpecUrlLoad:{type:String,attribute:"allow-spec-url-load"},allowSpecFileLoad:{type:String,attribute:"allow-spec-file-load"},allowSearch:{type:String,attribute:"allow-search"},allowAdvancedSearch:{type:String,attribute:"allow-advanced-search"},allowServerSelection:{type:String,attribute:"allow-server-selection"},allowSchemaDescriptionExpandToggle:{type:String,attribute:"allow-schema-description-expand-toggle"},showComponents:{type:String,attribute:"show-components"},theme:{type:String},bgColor:{type:String,attribute:"bg-color"},textColor:{type:String,attribute:"text-color"},headerColor:{type:String,attribute:"header-color"},primaryColor:{type:String,attribute:"primary-color"},fontSize:{type:String,attribute:"font-size"},regularFont:{type:String,attribute:"regular-font"},monoFont:{type:String,attribute:"mono-font"},loadFonts:{type:String,attribute:"load-fonts"},navBgColor:{type:String,attribute:"nav-bg-color"},navTextColor:{type:String,attribute:"nav-text-color"},navHoverBgColor:{type:String,attribute:"nav-hover-bg-color"},navHoverTextColor:{type:String,attribute:"nav-hover-text-color"},navAccentColor:{type:String,attribute:"nav-accent-color"},navItemSpacing:{type:String,attribute:"nav-item-spacing"},usePathInNavBar:{type:String,attribute:"use-path-in-nav-bar"},infoDescriptionHeadingsInNavBar:{type:String,attribute:"info-description-headings-in-navbar"},fetchCredentials:{type:String,attribute:"fetch-credentials"},matchPaths:{type:String,attribute:"match-paths"},loading:{type:Boolean},focusedElementId:{type:String},showAdvancedSearchDialog:{type:Boolean},advancedSearchMatches:{type:Object}}}static get styles(){return[ee,te,re,ne,oe,ae,ie,se,le,Y`:host{display:flex;flex-direction:column;min-width:360px;width:100%;height:100%;margin:0;padding:0;overflow:hidden;letter-spacing:normal;color:var(--fg);background-color:var(--bg);font-family:var(--font-regular)}.body{display:flex;height:100%;width:100%;overflow:hidden}.main-content{margin:0;padding:0;display:block;flex:1;height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.main-content-inner--view-mode{padding:0 8px}.main-content::-webkit-scrollbar{width:8px;height:8px}.main-content::-webkit-scrollbar-track{background:0 0}.main-content::-webkit-scrollbar-thumb{background-color:var(--border-color)}.section-gap.section-tag{border-bottom:1px solid var(--border-color)}.section-gap,.section-gap--focused-mode,.section-gap--read-mode{padding:0 4px}.section-tag-header{position:relative;cursor:n-resize;padding:12px 0}.collapsed .section-tag-header:hover{cursor:s-resize}.section-tag-header:hover{background-image:linear-gradient(to right,rgba(0,0,0,0),var(--border-color),rgba(0,0,0,0))}.section-tag-header:hover::after{position:absolute;margin-left:-24px;font-size:20px;top:calc(50% - 14px);color:var(--primary-color);content:'⬆'}.collapsed .section-tag-header::after{position:absolute;margin-left:-24px;font-size:20px;top:calc(50% - 14px);color:var(--border-color);content:'⬇'}.collapsed .section-tag-header:hover::after{color:var(--primary-color)}.collapsed .section-tag-body{display:none}.logo{height:36px;width:36px;margin-left:5px}.only-large-screen,.only-large-screen-flex{display:none}.header-title{font-size:calc(var(--font-size-regular) + 8px);padding:0 8px}.tag.title{text-transform:uppercase}.header{background-color:var(--header-bg);color:var(--header-fg);width:100%}input.header-input{background:var(--header-color-darker);color:var(--header-fg);border:1px solid var(--header-color-border);flex:1;padding-right:24px;border-radius:3px}input.header-input::placeholder{opacity:.4}.loader{margin:16px auto 16px auto;border:4px solid var(--bg3);border-radius:50%;border-top:4px solid var(--primary-color);width:36px;height:36px;animation:spin 2s linear infinite}.expanded-endpoint-body{position:relative;padding:6px 0}.expanded-endpoint-body.deprecated{filter:opacity(.6)}.divider{border-top:2px solid var(--border-color);margin:24px 0;width:100%}.tooltip{cursor:pointer;border:1px solid var(--border-color);border-left-width:4px;margin-left:2px}.tooltip a{color:var(--fg2);text-decoration:none}.tooltip-text{color:var(--fg2);max-width:400px;position:absolute;z-index:1;background-color:var(--bg2);visibility:hidden;overflow-wrap:break-word}.tooltip:hover{color:var(--primary-color);border-color:var(--primary-color)}.tooltip:hover a:hover{color:var(--primary-color)}.tooltip:hover .tooltip-text{visibility:visible}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@media only screen and (min-width:768px){.nav-bar{width:260px;display:flex}.only-large-screen{display:block}.only-large-screen-flex{display:flex}.section-gap{padding:0 0 0 24px}.section-gap--focused-mode{padding:24px 8px}.section-gap--read-mode{padding:24px 8px}.endpoint-body{position:relative;padding:36px 0 48px 0}}@media only screen and (min-width:1024px){.nav-bar{width:${W("default"===this.fontSize?"300px":"large"===this.fontSize?"315px":"330px")};display:flex}.section-gap--focused-mode{padding:12px 80px 12px 80px}.section-gap--read-mode{padding:24px 80px 12px 80px}}`,ce]}connectedCallback(){super.connectedCallback();const e=this.parentElement;if(e&&(0===e.offsetWidth&&""===e.style.width&&(e.style.width="100vw"),0===e.offsetHeight&&""===e.style.height&&(e.style.height="100vh"),"BODY"===e.tagName&&(e.style.marginTop||(e.style.marginTop="0"),e.style.marginRight||(e.style.marginRight="0"),e.style.marginBottom||(e.style.marginBottom="0"),e.style.marginLeft||(e.style.marginLeft="0"))),"false"!==this.loadFonts){const e={family:"Open Sans",style:"normal",weight:"300",unicodeRange:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD"},t=new FontFace("Open Sans","url(https://fonts.gstatic.com/s/opensans/v18/mem5YaGs126MiZpBA-UN_r8OUuhpKKSTjw.woff2) format('woff2')",e);e.weight="600";const r=new FontFace("Open Sans","url(https://fonts.gstatic.com/s/opensans/v18/mem5YaGs126MiZpBA-UNirkOUuhpKKSTjw.woff2) format('woff2')",e);t.load().then((e=>{document.fonts.add(e)})),r.load().then((e=>{document.fonts.add(e)}))}this.renderStyle&&"read, view, focused,".includes(`${this.renderStyle},`)||(this.renderStyle="read"),this.schemaStyle&&"tree, table,".includes(`${this.schemaStyle},`)||(this.schemaStyle="tree"),this.theme&&"light, dark,".includes(`${this.theme},`)||(this.theme=window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"),this.defaultSchemaTab&&"example, schema, model,".includes(`${this.defaultSchemaTab},`)?"model"===this.defaultSchemaTab&&(this.defaultSchemaTab="schema"):this.defaultSchemaTab="schema",(!this.schemaExpandLevel||this.schemaExpandLevel<1)&&(this.schemaExpandLevel=99999),this.schemaDescriptionExpanded&&"true, false,".includes(`${this.schemaDescriptionExpanded},`)||(this.schemaDescriptionExpanded="false");const t=["post","put","patch"];this.schemaHideReadOnly?"never"!==this.schemaHideReadOnly&&(this.schemaHideReadOnly=t.filter((e=>this.schemaHideReadOnly.includes(e))),0===this.schemaHideReadOnly.length&&(this.schemaHideReadOnly=t)):this.schemaHideReadOnly=t,this.schemaHideReadOnly+=["get","head","delete","options"],this.schemaHideWriteOnly="never"!==this.schemaHideWriteOnly,this.fillRequestFieldsWithExample&&"true, false,".includes(`${this.fillRequestFieldsWithExample},`)||(this.fillRequestFieldsWithExample="true"),this.onNavTagClick&&"expand-collapse, show-description,".includes(`${this.onNavTagClick},`)||(this.onNavTagClick="expand-collapse"),this.responseAreaHeight||(this.responseAreaHeight="300px"),this.allowSearch&&"true, false,".includes(`${this.allowSearch},`)||(this.allowSearch="true"),this.allowAdvancedSearch&&"true, false,".includes(`${this.allowAdvancedSearch},`)||(this.allowAdvancedSearch="true"),this.allowTry&&"true, false,".includes(`${this.allowTry},`)||(this.allowTry="true"),this.apiKeyValue||(this.apiKeyValue="-"),this.apiKeyLocation||(this.apiKeyLocation="header"),this.apiKeyName||(this.apiKeyName=""),this.oauthReceiver||(this.oauthReceiver="oauth-receiver.html"),this.sortTags&&"true, false,".includes(`${this.sortTags},`)||(this.sortTags="false"),this.generateMissingTags&&"true, false,".includes(`${this.generateMissingTags},`)||(this.generateMissingTags="false"),this.sortEndpointsBy&&"method, path, summary,".includes(`${this.sortEndpointsBy},`)||(this.sortEndpointsBy="path"),this.navItemSpacing&&"compact, relaxed, default,".includes(`${this.navItemSpacing},`)||(this.navItemSpacing="default"),this.usePathInNavBar&&"true, false,".includes(`${this.usePathInNavBar},`)||(this.usePathInNavBar="false"),this.fontSize&&"default, large, largest,".includes(`${this.fontSize},`)||(this.fontSize="default"),this.showInfo&&"true, false,".includes(`${this.showInfo},`)||(this.showInfo="true"),this.allowServerSelection&&"true, false,".includes(`${this.allowServerSelection},`)||(this.allowServerSelection="true"),this.allowAuthentication&&"true, false,".includes(`${this.allowAuthentication},`)||(this.allowAuthentication="true"),this.allowSchemaDescriptionExpandToggle&&"true, false,".includes(`${this.allowSchemaDescriptionExpandToggle},`)||(this.allowSchemaDescriptionExpandToggle="true"),this.showSideNav&&"true false".includes(this.showSideNav)||(this.showSideNav="true"),this.showComponents&&"true false".includes(this.showComponents)||(this.showComponents="false"),this.infoDescriptionHeadingsInNavBar&&"true, false,".includes(`${this.infoDescriptionHeadingsInNavBar},`)||(this.infoDescriptionHeadingsInNavBar="false"),this.fetchCredentials&&"omit, same-origin, include,".includes(`${this.fetchCredentials},`)||(this.fetchCredentials=""),this.showAdvancedSearchDialog||(this.showAdvancedSearchDialog=!1),Z().setOptions({highlight:(e,t)=>Q().languages[t]?Q().highlight(e,Q().languages[t],t):e}),window.addEventListener("hashchange",(()=>{this.scrollTo(window.location.hash.substring(1))}),!0)}disconnectedCallback(){this.intersectionObserver&&this.intersectionObserver.disconnect(),super.disconnectedCallback()}infoDescriptionHeadingRenderer(){const e=new(Z().Renderer);return e.heading=(e,t,r,n)=>`<h${t} class="observe-me" id="${n.slug(r)}">${e}</h${t}>`,e}render(){return Yu.call(this)}observeExpandedContent(){this.shadowRoot.querySelectorAll(".observe-me").forEach((e=>{this.intersectionObserver.observe(e)}))}attributeChangedCallback(e,t,r){if("spec-url"===e&&t!==r&&window.setTimeout((async()=>{await this.loadSpec(r),this.gotoPath&&!window.location.hash&&this.scrollTo(this.gotoPath)}),0),"render-style"===e&&("read"===r?window.setTimeout((()=>{this.observeExpandedContent()}),100):this.intersectionObserver.disconnect()),"api-key-name"===e||"api-key-location"===e||"api-key-value"===e){let t=!1,n="",o="",a="";if("api-key-name"===e?this.getAttribute("api-key-location")&&this.getAttribute("api-key-value")&&(n=r,o=this.getAttribute("api-key-location"),a=this.getAttribute("api-key-value"),t=!0):"api-key-location"===e?this.getAttribute("api-key-name")&&this.getAttribute("api-key-value")&&(o=r,n=this.getAttribute("api-key-name"),a=this.getAttribute("api-key-value"),t=!0):"api-key-value"===e&&this.getAttribute("api-key-name")&&this.getAttribute("api-key-location")&&(a=r,o=this.getAttribute("api-key-location"),n=this.getAttribute("api-key-name"),t=!0),t&&this.resolvedSpec){const e=this.resolvedSpec.securitySchemes.find((e=>e.apiKeyId===pe));e?(e.name=n,e.in=o,e.value=a,e.finalKeyValue=a):this.resolvedSpec.securitySchemes.push({apiKeyId:pe,description:"api-key provided in rapidoc element attributes",type:"apiKey",name:n,in:o,value:a,finalKeyValue:a}),this.requestUpdate()}}super.attributeChangedCallback(e,t,r)}onSepcUrlChange(){this.setAttribute("spec-url",this.shadowRoot.getElementById("spec-url").value)}onSepcFileChange(e){this.setAttribute("spec-file",this.shadowRoot.getElementById("spec-file").value);const t=e.target.files[0],r=new FileReader;r.onload=()=>{try{const e=JSON.parse(r.result);this.loadSpec(e),this.shadowRoot.getElementById("spec-url").value=""}catch(e){console.error("RapiDoc: Unable to read or parse json")}},r.readAsText(t)}onFileLoadClick(){this.shadowRoot.getElementById("spec-file").click()}onSearchChange(e){this.matchPaths=e.target.value,this.resolvedSpec.tags.forEach((e=>e.paths.filter((t=>{this.matchPaths&&fe(this.matchPaths,t)&&(e.expanded=!0)})))),this.requestUpdate()}onClearSearch(){this.shadowRoot.getElementById("nav-bar-search").value="",this.matchPaths=""}onShowSearchModalClicked(){this.showAdvancedSearchDialog=!0}async onOpenSearchDialog(e){const t=e.detail.querySelector("input");await de(0),t&&t.focus()}async loadSpec(e){if(e){this.matchPaths="";try{this.resolvedSpec=null,this.loading=!0,this.loadFailed=!1;const t=await zc.call(this,e,"true"===this.generateMissingTags,"true"===this.sortTags,this.getAttribute("sort-endpoints-by"),this.getAttribute("api-key-name"),this.getAttribute("api-key-location"),this.getAttribute("api-key-value"),this.getAttribute("server-url"));this.loading=!1,null==t&&console.error("Unable to resolve the API spec. "),this.afterSpecParsedAndValidated(t)}catch(e){this.loading=!1,this.loadFailed=!0,this.resolvedSpec=null,console.error(`RapiDoc: Unable to resolve the API spec.. ${e.message}`)}}}async afterSpecParsedAndValidated(e){var t;this.resolvedSpec=e,this.defaultApiServerUrl&&(this.defaultApiServerUrl===this.serverUrl?this.selectedServer={url:this.serverUrl,computedUrl:this.serverUrl}:this.resolvedSpec.servers&&(this.selectedServer=this.resolvedSpec.servers.find((e=>e.url===this.defaultApiServerUrl)))),this.selectedServer||this.resolvedSpec.servers&&(this.selectedServer=this.resolvedSpec.servers[0]),this.requestUpdate();const r=new CustomEvent("spec-loaded",{detail:e});this.dispatchEvent(r),this.intersectionObserver.disconnect(),"read"===this.renderStyle&&(await de(100),this.observeExpandedContent());const n=null===(t=window.location.hash)||void 0===t?void 0:t.substring(1);if(n)"view"===this.renderStyle?this.expandAndGotoOperation(n,!0,!0):"focused"===this.renderStyle&&this.scrollTo(n);else if("focused"===this.renderStyle){var o;const e=this.showInfo?"overview":null===(o=this.resolvedSpec.tags[0])||void 0===o?void 0:o.paths[0];this.scrollTo(e)}}expandAndGotoOperation(e,t=!0){if(!this.resolvedSpec)return;let r=!0;const n=-1===e.indexOf("#")?e:e.substring(1);if(n.startsWith("overview")||"servers"===n||"auth"===n)r=!1;else for(let t=0;t<(null===(o=this.resolvedSpec.tags)||void 0===o?void 0:o.length);t++){var o,a;const n=this.resolvedSpec.tags[t],i=null===(a=n.paths)||void 0===a?void 0:a.find((t=>t.elementId===e));i&&(i.expanded&&n.expanded?r=!1:(i.expanded=!0,n.expanded=!0))}t&&(r&&this.requestUpdate(),window.setTimeout((()=>{const e=this.shadowRoot.getElementById(n);e&&(e.scrollIntoView({behavior:"auto",block:"start"}),window.history.replaceState(null,null,`#${n}`))}),r?150:0))}isValidTopId(e){return e.startsWith("overview")||"servers"===e||"auth"===e}isValidPathId(e){var t,r,n,o;return!("overview"!==e||!this.showInfo)||(!("servers"!==e||!this.allowServerSelection)||(!("auth"!==e||!this.allowAuthentication)||(e.startsWith("tag--")?null===(n=this.resolvedSpec)||void 0===n||null===(o=n.tags)||void 0===o?void 0:o.find((t=>t.elementId===e)):null===(t=this.resolvedSpec)||void 0===t||null===(r=t.tags)||void 0===r?void 0:r.find((t=>t.paths.find((t=>t.elementId===e)))))))}onIntersect(e){!1!==this.isIntersectionObserverActive&&e.forEach((e=>{if(e.isIntersecting&&e.intersectionRatio>0){const t=this.shadowRoot.querySelector(".nav-bar-tag.active, .nav-bar-path.active, .nav-bar-info.active, .nav-bar-h1.active, .nav-bar-h2.active"),r=this.shadowRoot.getElementById(`link-${e.target.id}`);r&&(window.history.replaceState(null,null,`${window.location.href.split("#")[0]}#${e.target.id}`),r.scrollIntoView({behavior:"auto",block:"center"}),r.classList.add("active")),t&&t.classList.remove("active")}}))}handleHref(e){if("a"===e.target.tagName.toLowerCase()&&e.target.getAttribute("href").startsWith("#")){const t=this.shadowRoot.getElementById(e.target.getAttribute("href").replace("#",""));t&&t.scrollIntoView({behavior:"auto",block:"start"})}}async scrollToEventTarget(e,t=!0){const r=e.currentTarget;r.dataset.contentId&&(this.isIntersectionObserverActive=!1,this.scrollTo(r.dataset.contentId,!0,t),setTimeout((()=>{this.isIntersectionObserverActive=!0}),300))}async scrollTo(e,t=!0,r=!0){if("focused"===this.renderStyle&&(this.focusedElementId=e,await de(0)),"view"===this.renderStyle)this.expandAndGotoOperation(e,t,!0);else{let t=!1;const n=this.shadowRoot.getElementById(e);if(n?(t=!0,("read"===this.renderStyle||e.startsWith("overview")||e.startsWith("tag--"))&&n.scrollIntoView({behavior:"auto",block:"start"})):t=!1,t){if("focused"===this.renderStyle){const e=this.shadowRoot.querySelector("api-request");e&&e.resetRequestBodySelection();const t=this.shadowRoot.querySelector("api-response");t&&t.resetSelection()}window.history.replaceState(null,null,`#${e}`);const t=this.shadowRoot.getElementById(`link-${e}`);if(t){r&&t.scrollIntoView({behavior:"auto",block:"center"}),await de(0);const e=this.shadowRoot.querySelector(".nav-bar-tag.active, .nav-bar-path.active, .nav-bar-info.active, .nav-bar-h1.active, .nav-bar-h2.active");e&&e.classList.remove("active"),t.classList.add("active")}}}}onAdvancedSearch(e,t){const r=e.target;clearTimeout(this.timeoutId),this.timeoutId=setTimeout((()=>{let e;e="text"===r.type?r:r.closest(".advanced-search-options").querySelector("input[type=text]");const t=[...r.closest(".advanced-search-options").querySelectorAll("input:checked")].map((e=>e.id));this.advancedSearchMatches=function(e,t,r=[]){if(!e.trim()||0===r.length)return;const n=[];return t.forEach((t=>{t.paths.forEach((t=>{let o="";var a;if(r.includes("search-api-path")&&(o=t.path),r.includes("search-api-descr")&&(o=`${o} ${t.summary||t.description||""}`),r.includes("search-api-params")&&(o=`${o} ${(null===(a=t.parameters)||void 0===a?void 0:a.map((e=>e.name)).join(" "))||""}`),r.includes("search-api-request-body")&&t.requestBody){let e=new Set;for(const r in null===(i=t.requestBody)||void 0===i?void 0:i.content){var i,s,l;null!==(s=t.requestBody.content[r].schema)&&void 0!==s&&s.properties&&(e=me(null===(l=t.requestBody.content[r].schema)||void 0===l?void 0:l.properties)),o=`${o} ${[...e].join(" ")}`}}r.includes("search-api-resp-descr")&&(o=`${o} ${Object.values(t.responses).map((e=>e.description||"")).join(" ")}`),o.toLowerCase().includes(e.trim().toLowerCase())&&n.push({elementId:t.elementId,method:t.method,path:t.path,summary:t.summary||t.description||"",deprecated:t.deprecated})}))})),n}(e.value,this.resolvedSpec.tags,t)}),t)}}customElements.define("rapi-doc",Ku);class Gu extends HTMLElement{connectedCallback(){this.receiveAuthParms(),window.addEventListener("storage",(e=>this.receiveStorage(e)),!0)}receiveAuthParms(){let e={};if(document.location.search){const t=new URLSearchParams(document.location.search);e={code:t.get("code"),error:t.get("error"),state:t.get("state"),responseType:"code"}}else if(window.location.hash){e={token_type:this.parseQueryString(window.location.hash.substring(1),"token_type"),access_token:this.parseQueryString(window.location.hash.substring(1),"access_token"),responseType:"token"}}window.opener?window.opener.postMessage(e,this.target):sessionStorage.setItem("rapidoc-oauth-data",JSON.stringify(e))}relayAuthParams(e){if(window.parent&&"rapidoc-oauth-data"===e.key){const t=JSON.parse(e.newValue);window.parent.postMessage(t,this.target)}}parseQueryString(e,t){const r=e.split("&");for(let e=0;e<r.length;e++){const n=r[e].split("=");if(decodeURIComponent(n[0])===t)return decodeURIComponent(n[1])}}}customElements.define("oauth-receiver",Gu)},742:(e,t)=>{"use strict";t.byteLength=function(e){var t=l(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,a=l(e),i=a[0],s=a[1],c=new o(function(e,t,r){return 3*(t+r)/4-r}(0,i,s)),u=0,p=s>0?i-4:i;for(r=0;r<p;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],c[u++]=t>>16&255,c[u++]=t>>8&255,c[u++]=255&t;2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[u++]=255&t);1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,a=[],i=16383,s=0,l=n-o;s<l;s+=i)a.push(c(e,s,s+i>l?l:s+i));1===o?(t=e[n-1],a.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],a.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return a.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,s=a.length;i<s;++i)r[i]=a[i],n[a.charCodeAt(i)]=i;function l(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var o,a,i=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),i.push(r[(a=o)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return i.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},764:(e,t,r)=>{"use strict";var n=r(742),o=r(645),a=r(826);function i(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return l.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=l.prototype:(null===e&&(e=new l(t)),e.length=t),e}function l(e,t,r){if(!(l.TYPED_ARRAY_SUPPORT||this instanceof l))return new l(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return p(this,e)}return c(this,e,t,r)}function c(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);l.TYPED_ARRAY_SUPPORT?(e=t).__proto__=l.prototype:e=d(e,t);return e}(e,t,r,n):"string"==typeof t?function(e,t,r){"string"==typeof r&&""!==r||(r="utf8");if(!l.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|f(t,r),o=(e=s(e,n)).write(t,r);o!==n&&(e=e.slice(0,o));return e}(e,t,r):function(e,t){if(l.isBuffer(t)){var r=0|h(t.length);return 0===(e=s(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?s(e,0):d(e,t);if("Buffer"===t.type&&a(t.data))return d(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function p(e,t){if(u(t),e=s(e,t<0?0:0|h(t)),!l.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function d(e,t){var r=t.length<0?0:0|h(t.length);e=s(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function h(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function f(e,t){if(l.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return U(e).length;default:if(n)return z(e).length;t=(""+t).toLowerCase(),n=!0}}function m(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _(this,t,r);case"utf8":case"utf-8":return S(this,t,r);case"ascii":return O(this,t,r);case"latin1":case"binary":return C(this,t,r);case"base64":return E(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function y(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=l.from(t,n)),l.isBuffer(t))return 0===t.length?-1:b(e,t,r,n,o);if("number"==typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):b(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,r,n,o){var a,i=1,s=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,s/=2,l/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var u=-1;for(a=r;a<s;a++)if(c(e,a)===c(t,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===l)return u*i}else-1!==u&&(a-=a-u),u=-1}else for(r+l>s&&(r=s-l),a=r;a>=0;a--){for(var p=!0,d=0;d<l;d++)if(c(e,a+d)!==c(t,d)){p=!1;break}if(p)return a}return-1}function v(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var i=0;i<n;++i){var s=parseInt(t.substr(2*i,2),16);if(isNaN(s))return i;e[r+i]=s}return i}function x(e,t,r,n){return M(z(t,e.length-r),e,r,n)}function w(e,t,r,n){return M(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function k(e,t,r,n){return w(e,t,r,n)}function A(e,t,r,n){return M(U(t),e,r,n)}function $(e,t,r,n){return M(function(e,t){for(var r,n,o,a=[],i=0;i<e.length&&!((t-=2)<0);++i)n=(r=e.charCodeAt(i))>>8,o=r%256,a.push(o),a.push(n);return a}(t,e.length-r),e,r,n)}function E(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function S(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var a,i,s,l,c=e[o],u=null,p=c>239?4:c>223?3:c>191?2:1;if(o+p<=r)switch(p){case 1:c<128&&(u=c);break;case 2:128==(192&(a=e[o+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=e[o+1],i=e[o+2],128==(192&a)&&128==(192&i)&&(l=(15&c)<<12|(63&a)<<6|63&i)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=e[o+1],i=e[o+2],s=e[o+3],128==(192&a)&&128==(192&i)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&i)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,p=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),o+=p}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=D));return r}(n)}t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50,l.TYPED_ARRAY_SUPPORT=void 0!==r.g.TYPED_ARRAY_SUPPORT?r.g.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=i(),l.poolSize=8192,l._augment=function(e){return e.__proto__=l.prototype,e},l.from=function(e,t,r){return c(null,e,t,r)},l.TYPED_ARRAY_SUPPORT&&(l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0})),l.alloc=function(e,t,r){return function(e,t,r,n){return u(t),t<=0?s(e,t):void 0!==r?"string"==typeof n?s(e,t).fill(r,n):s(e,t).fill(r):s(e,t)}(null,e,t,r)},l.allocUnsafe=function(e){return p(null,e)},l.allocUnsafeSlow=function(e){return p(null,e)},l.isBuffer=function(e){return!(null==e||!e._isBuffer)},l.compare=function(e,t){if(!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,a=Math.min(r,n);o<a;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},l.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(e,t){if(!a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return l.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=l.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var i=e[r];if(!l.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(n,o),o+=i.length}return n},l.byteLength=f,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},l.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},l.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},l.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?S(this,0,e):m.apply(this,arguments)},l.prototype.equals=function(e){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===l.compare(this,e)},l.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},l.prototype.compare=function(e,t,r,n,o){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var a=(o>>>=0)-(n>>>=0),i=(r>>>=0)-(t>>>=0),s=Math.min(a,i),c=this.slice(n,o),u=e.slice(t,r),p=0;p<s;++p)if(c[p]!==u[p]){a=c[p],i=u[p];break}return a<i?-1:i<a?1:0},l.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},l.prototype.indexOf=function(e,t,r){return y(this,e,t,r,!0)},l.prototype.lastIndexOf=function(e,t,r){return y(this,e,t,r,!1)},l.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return v(this,e,t,r);case"utf8":case"utf-8":return x(this,e,t,r);case"ascii":return w(this,e,t,r);case"latin1":case"binary":return k(this,e,t,r);case"base64":return A(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function O(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function C(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function _(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",a=t;a<r;++a)o+=q(e[a]);return o}function j(e,t,r){for(var n=e.slice(t,r),o="",a=0;a<n.length;a+=2)o+=String.fromCharCode(n[a]+256*n[a+1]);return o}function T(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function F(e,t,r,n,o,a){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function P(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,a=Math.min(e.length-r,2);o<a;++o)e[r+o]=(t&255<<8*(n?o:1-o))>>>8*(n?o:1-o)}function B(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,a=Math.min(e.length-r,4);o<a;++o)e[r+o]=t>>>8*(n?o:3-o)&255}function I(e,t,r,n,o,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function R(e,t,r,n,a){return a||I(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function N(e,t,r,n,a){return a||I(e,0,r,8),o.write(e,t,r,n,52,8),r+8}l.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),l.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=l.prototype;else{var o=t-e;r=new l(o,void 0);for(var a=0;a<o;++a)r[a]=this[a+e]}return r},l.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||T(e,t,this.length);for(var n=this[e],o=1,a=0;++a<t&&(o*=256);)n+=this[e+a]*o;return n},l.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||T(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},l.prototype.readUInt8=function(e,t){return t||T(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||T(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||T(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||T(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||T(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||T(e,t,this.length);for(var n=this[e],o=1,a=0;++a<t&&(o*=256);)n+=this[e+a]*o;return n>=(o*=128)&&(n-=Math.pow(2,8*t)),n},l.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||T(e,t,this.length);for(var n=t,o=1,a=this[e+--n];n>0&&(o*=256);)a+=this[e+--n]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*t)),a},l.prototype.readInt8=function(e,t){return t||T(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||T(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(e,t){t||T(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(e,t){return t||T(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||T(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||T(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||T(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||T(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||T(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||F(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,a=0;for(this[t]=255&e;++a<r&&(o*=256);)this[t+a]=e/o&255;return t+r},l.prototype.writeUIntBE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||F(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+r},l.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);F(this,e,t,r,o-1,-o)}var a=0,i=1,s=0;for(this[t]=255&e;++a<r&&(i*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/i>>0)-s&255;return t+r},l.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);F(this,e,t,r,o-1,-o)}var a=r-1,i=1,s=0;for(this[t+a]=255&e;--a>=0&&(i*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/i>>0)-s&255;return t+r},l.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,r){return R(this,e,t,!0,r)},l.prototype.writeFloatBE=function(e,t,r){return R(this,e,t,!1,r)},l.prototype.writeDoubleLE=function(e,t,r){return N(this,e,t,!0,r)},l.prototype.writeDoubleBE=function(e,t,r){return N(this,e,t,!1,r)},l.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o,a=n-r;if(this===e&&r<t&&t<n)for(o=a-1;o>=0;--o)e[o+t]=this[o+r];else if(a<1e3||!l.TYPED_ARRAY_SUPPORT)for(o=0;o<a;++o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+a),t);return a},l.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var a;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var i=l.isBuffer(e)?e:z(new l(e,n).toString()),s=i.length;for(a=0;a<r-t;++a)this[a+t]=i[a%s]}return this};var L=/[^+\/0-9A-Za-z-_]/g;function q(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){var r;t=t||1/0;for(var n=e.length,o=null,a=[],i=0;i<n;++i){if((r=e.charCodeAt(i))>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&a.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function U(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(L,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function M(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}},645:(e,t)=>{t.read=function(e,t,r,n,o){var a,i,s=8*o-n-1,l=(1<<s)-1,c=l>>1,u=-7,p=r?o-1:0,d=r?-1:1,h=e[t+p];for(p+=d,a=h&(1<<-u)-1,h>>=-u,u+=s;u>0;a=256*a+e[t+p],p+=d,u-=8);for(i=a&(1<<-u)-1,a>>=-u,u+=n;u>0;i=256*i+e[t+p],p+=d,u-=8);if(0===a)a=1-c;else{if(a===l)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,n),a-=c}return(h?-1:1)*i*Math.pow(2,a-n)},t.write=function(e,t,r,n,o,a){var i,s,l,c=8*a-o-1,u=(1<<c)-1,p=u>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),(t+=i+p>=1?d/l:d*Math.pow(2,1-p))*l>=2&&(i++,l/=2),i+p>=u?(s=0,i=u):i+p>=1?(s=(t*l-1)*Math.pow(2,o),i+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,o),i=0));o>=8;e[r+h]=255&s,h+=f,s/=256,o-=8);for(i=i<<o|s,c+=o;c>0;e[r+h]=255&i,h+=f,i/=256,c-=8);e[r+h-f]|=128*m}},826:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},84:function(e){e.exports=function(){"use strict";function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function t(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}function r(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=r(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function a(e){var t={exports:{}};return e(t,t.exports),t.exports}var i=a((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}function r(t){e.exports.defaults=t}e.exports={defaults:t(),getDefaults:t,changeDefaults:r}})),s=/[&<>"']/,l=/[&<>"']/g,c=/[<>"']|&(?!#?\w+;)/,u=/[<>"']|&(?!#?\w+;)/g,p={"&":"&","<":"<",">":">",'"':""","'":"'"},d=function(e){return p[e]};function h(e,t){if(t){if(s.test(e))return e.replace(l,d)}else if(c.test(e))return e.replace(u,d);return e}var f=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function m(e){return e.replace(f,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var g=/(^|[^\[])\^/g;function y(e,t){e=e.source||e,t=t||"";var r={replace:function(t,n){return n=(n=n.source||n).replace(g,"$1"),e=e.replace(t,n),r},getRegex:function(){return new RegExp(e,t)}};return r}var b=/[^\w:]/g,v=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function x(e,t,r){if(e){var n;try{n=decodeURIComponent(m(r)).replace(b,"").toLowerCase()}catch(e){return null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return null}t&&!v.test(r)&&(r=E(t,r));try{r=encodeURI(r).replace(/%25/g,"%")}catch(e){return null}return r}var w={},k=/^[^:]+:\/*[^/]*$/,A=/^([^:]+:)[\s\S]*$/,$=/^([^:]+:\/*[^/]*)[\s\S]*$/;function E(e,t){w[" "+e]||(k.test(e)?w[" "+e]=e+"/":w[" "+e]=O(e,"/",!0));var r=-1===(e=w[" "+e]).indexOf(":");return"//"===t.substring(0,2)?r?t:e.replace(A,"$1")+t:"/"===t.charAt(0)?r?t:e.replace($,"$1")+t:e+t}function S(e){for(var t,r,n=1;n<arguments.length;n++)for(r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}function D(e,t){var r=e.replace(/\|/g,(function(e,t,r){for(var n=!1,o=t;--o>=0&&"\\"===r[o];)n=!n;return n?"|":" |"})).split(/ \|/),n=0;if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(/\\\|/g,"|");return r}function O(e,t,r){var n=e.length;if(0===n)return"";for(var o=0;o<n;){var a=e.charAt(n-o-1);if(a!==t||r){if(a===t||!r)break;o++}else o++}return e.substr(0,n-o)}function C(e,t){if(-1===e.indexOf(t[1]))return-1;for(var r=e.length,n=0,o=0;o<r;o++)if("\\"===e[o])o++;else if(e[o]===t[0])n++;else if(e[o]===t[1]&&--n<0)return o;return-1}function _(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function j(e,t){if(t<1)return"";for(var r="";t>1;)1&t&&(r+=e),t>>=1,e+=e;return r+e}var T={escape:h,unescape:m,edit:y,cleanUrl:x,resolveUrl:E,noopTest:{exec:function(){}},merge:S,splitCells:D,rtrim:O,findClosingBracket:C,checkSanitizeDeprecation:_,repeatString:j},F=i.defaults,P=T.rtrim,B=T.splitCells,I=T.escape,R=T.findClosingBracket;function N(e,t,r){var n=t.href,o=t.title?I(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?{type:"link",raw:r,href:n,title:o,text:a}:{type:"image",raw:r,href:n,title:o,text:I(a)}}function L(e,t){var r=e.match(/^(\s+)(?:```)/);if(null===r)return t;var n=r[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=n.length?e.slice(n.length):e})).join("\n")}var q=function(){function e(e){this.options=e||F}var t=e.prototype;return t.space=function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e){var t=this.rules.block.code.exec(e);if(t){var r=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?r:P(r,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var r=t[0],n=L(r,t[3]||"");return{type:"code",raw:r,lang:t[2]?t[2].trim():t[2],text:n}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var r=t[2].trim();if(/#$/.test(r)){var n=P(r,"#");this.options.pedantic?r=n.trim():n&&!/ $/.test(n)||(r=n.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:r}}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var r={type:"table",header:B(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(r.header.length===r.align.length){var n,o=r.align.length;for(n=0;n<o;n++)/^ *-+: *$/.test(r.align[n])?r.align[n]="right":/^ *:-+: *$/.test(r.align[n])?r.align[n]="center":/^ *:-+ *$/.test(r.align[n])?r.align[n]="left":r.align[n]=null;for(o=r.cells.length,n=0;n<o;n++)r.cells[n]=B(r.cells[n],r.header.length);return r}}},t.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},t.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var r=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],text:r}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){var r,n,o,a,i,s,l,c,u,p=t[0],d=t[2],h=d.length>1,f={type:"list",raw:p,ordered:h,start:h?+d.slice(0,-1):"",loose:!1,items:[]},m=t[0].match(this.rules.block.item),g=!1,y=m.length;o=this.rules.block.listItemStart.exec(m[0]);for(var b=0;b<y;b++){if(p=r=m[b],this.options.pedantic||(u=r.match(new RegExp("\\n\\s*\\n {0,"+(o[0].length-1)+"}\\S")))&&(i=r.length-u.index+m.slice(b+1).join("\n").length,f.raw=f.raw.substring(0,f.raw.length-i),p=r=r.substring(0,u.index),y=b+1),b!==y-1){if(a=this.rules.block.listItemStart.exec(m[b+1]),this.options.pedantic?a[1].length>o[1].length:a[1].length>=o[0].length||a[1].length>3){m.splice(b,2,m[b]+(!this.options.pedantic&&a[1].length<o[0].length&&!m[b].match(/\n$/)?"":"\n")+m[b+1]),b--,y--;continue}(!this.options.pedantic||this.options.smartLists?a[2][a[2].length-1]!==d[d.length-1]:h===(1===a[2].length))&&(i=m.slice(b+1).join("\n").length,f.raw=f.raw.substring(0,f.raw.length-i),b=y-1),o=a}n=r.length,~(r=r.replace(/^ *([*+-]|\d+[.)]) ?/,"")).indexOf("\n ")&&(n-=r.length,r=this.options.pedantic?r.replace(/^ {1,4}/gm,""):r.replace(new RegExp("^ {1,"+n+"}","gm"),"")),r=P(r,"\n"),b!==y-1&&(p+="\n"),s=g||/\n\n(?!\s*$)/.test(p),b!==y-1&&(g="\n\n"===p.slice(-2),s||(s=g)),s&&(f.loose=!0),this.options.gfm&&(c=void 0,(l=/^\[[ xX]\] /.test(r))&&(c=" "!==r[1],r=r.replace(/^\[[ xX]\] +/,""))),f.items.push({type:"list_item",raw:p,task:l,checked:c,loose:s,text:r})}return f}},t.html=function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):I(t[0]):t[0]}},t.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},t.table=function(e){var t=this.rules.block.table.exec(e);if(t){var r={type:"table",header:B(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(r.header.length===r.align.length){r.raw=t[0];var n,o=r.align.length;for(n=0;n<o;n++)/^ *-+: *$/.test(r.align[n])?r.align[n]="right":/^ *:-+: *$/.test(r.align[n])?r.align[n]="center":/^ *:-+ *$/.test(r.align[n])?r.align[n]="left":r.align[n]=null;for(o=r.cells.length,n=0;n<o;n++)r.cells[n]=B(r.cells[n].replace(/^ *\| *| *\| *$/g,""),r.header.length);return r}}},t.lheading=function(e){var t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1]}},t.paragraph=function(e){var t=this.rules.block.paragraph.exec(e);if(t)return{type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1]}},t.text=function(e){var t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0]}},t.escape=function(e){var t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:I(t[1])}},t.tag=function(e,t,r){var n=this.rules.inline.tag.exec(e);if(n)return!t&&/^<a /i.test(n[0])?t=!0:t&&/^<\/a>/i.test(n[0])&&(t=!1),!r&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?r=!0:r&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(r=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:t,inRawBlock:r,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):I(n[0]):n[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var r=t[2].trim();if(!this.options.pedantic&&/^</.test(r)){if(!/>$/.test(r))return;var n=P(r.slice(0,-1),"\\");if((r.length-n.length)%2==0)return}else{var o=R(t[2],"()");if(o>-1){var a=(0===t[0].indexOf("!")?5:4)+t[1].length+o;t[2]=t[2].substring(0,o),t[0]=t[0].substring(0,a).trim(),t[3]=""}}var i=t[2],s="";if(this.options.pedantic){var l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);l&&(i=l[1],s=l[3])}else s=t[3]?t[3].slice(1,-1):"";return i=i.trim(),/^</.test(i)&&(i=this.options.pedantic&&!/>$/.test(r)?i.slice(1):i.slice(1,-1)),N(t,{href:i?i.replace(this.rules.inline._escapes,"$1"):i,title:s?s.replace(this.rules.inline._escapes,"$1"):s},t[0])}},t.reflink=function(e,t){var r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){var n=(r[2]||r[1]).replace(/\s+/g," ");if(!(n=t[n.toLowerCase()])||!n.href){var o=r[0].charAt(0);return{type:"text",raw:o,text:o}}return N(r,n,r[0])}},t.emStrong=function(e,t,r){void 0===r&&(r="");var n=this.rules.inline.emStrong.lDelim.exec(e);if(n&&(!n[3]||!r.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var o=n[1]||n[2]||"";if(!o||o&&(""===r||this.rules.inline.punctuation.exec(r))){var a,i,s=n[0].length-1,l=s,c=0,u="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+s);null!=(n=u.exec(t));)if(a=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])if(i=a.length,n[3]||n[4])l+=i;else if(!((n[5]||n[6])&&s%3)||(s+i)%3){if(!((l-=i)>0)){if(l+c-i<=0&&!t.slice(u.lastIndex).match(u)&&(i=Math.min(i,i+l+c)),Math.min(s,i)%2)return{type:"em",raw:e.slice(0,s+n.index+i+1),text:e.slice(1,s+n.index+i)};if(Math.min(s,i)%2==0)return{type:"strong",raw:e.slice(0,s+n.index+i+1),text:e.slice(2,s+n.index+i-1)}}}else c+=i}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var r=t[2].replace(/\n/g," "),n=/[^ ]/.test(r),o=/^ /.test(r)&&/ $/.test(r);return n&&o&&(r=r.substring(1,r.length-1)),r=I(r,!0),{type:"codespan",raw:t[0],text:r}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2]}},t.autolink=function(e,t){var r,n,o=this.rules.inline.autolink.exec(e);if(o)return n="@"===o[2]?"mailto:"+(r=I(this.options.mangle?t(o[1]):o[1])):r=I(o[1]),{type:"link",raw:o[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}},t.url=function(e,t){var r;if(r=this.rules.inline.url.exec(e)){var n,o;if("@"===r[2])o="mailto:"+(n=I(this.options.mangle?t(r[0]):r[0]));else{var a;do{a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])[0]}while(a!==r[0]);n=I(r[0]),o="www."===r[1]?"http://"+n:n}return{type:"link",raw:r[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}},t.inlineText=function(e,t,r){var n,o=this.rules.inline.text.exec(e);if(o)return n=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):I(o[0]):o[0]:I(this.options.smartypants?r(o[0]):o[0]),{type:"text",raw:o[0],text:n}},e}(),z=T.noopTest,U=T.edit,M=T.merge,H={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:z,table:z,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};H.def=U(H.def).replace("label",H._label).replace("title",H._title).getRegex(),H.bullet=/(?:[*+-]|\d{1,9}[.)])/,H.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/,H.item=U(H.item,"gm").replace(/bull/g,H.bullet).getRegex(),H.listItemStart=U(/^( *)(bull) */).replace("bull",H.bullet).getRegex(),H.list=U(H.list).replace(/bull/g,H.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+H.def.source+")").getRegex(),H._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",H._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,H.html=U(H.html,"i").replace("comment",H._comment).replace("tag",H._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),H.paragraph=U(H._paragraph).replace("hr",H.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",H._tag).getRegex(),H.blockquote=U(H.blockquote).replace("paragraph",H.paragraph).getRegex(),H.normal=M({},H),H.gfm=M({},H.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),H.gfm.nptable=U(H.gfm.nptable).replace("hr",H.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",H._tag).getRegex(),H.gfm.table=U(H.gfm.table).replace("hr",H.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",H._tag).getRegex(),H.pedantic=M({},H.normal,{html:U("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",H._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:z,paragraph:U(H.normal._paragraph).replace("hr",H.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",H.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var V={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:z,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/\_\_[^_]*?\*[^_]*?\_\_|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/\*\*[^*]*?\_[^*]*?\*\*|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:z,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/,_punctuation:"!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~"};V.punctuation=U(V.punctuation).replace(/punctuation/g,V._punctuation).getRegex(),V.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,V.escapedEmSt=/\\\*|\\_/g,V._comment=U(H._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),V.emStrong.lDelim=U(V.emStrong.lDelim).replace(/punct/g,V._punctuation).getRegex(),V.emStrong.rDelimAst=U(V.emStrong.rDelimAst,"g").replace(/punct/g,V._punctuation).getRegex(),V.emStrong.rDelimUnd=U(V.emStrong.rDelimUnd,"g").replace(/punct/g,V._punctuation).getRegex(),V._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,V._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,V._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,V.autolink=U(V.autolink).replace("scheme",V._scheme).replace("email",V._email).getRegex(),V._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,V.tag=U(V.tag).replace("comment",V._comment).replace("attribute",V._attribute).getRegex(),V._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,V._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,V._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,V.link=U(V.link).replace("label",V._label).replace("href",V._href).replace("title",V._title).getRegex(),V.reflink=U(V.reflink).replace("label",V._label).getRegex(),V.reflinkSearch=U(V.reflinkSearch,"g").replace("reflink",V.reflink).replace("nolink",V.nolink).getRegex(),V.normal=M({},V),V.pedantic=M({},V.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:U(/^!?\[(label)\]\((.*?)\)/).replace("label",V._label).getRegex(),reflink:U(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",V._label).getRegex()}),V.gfm=M({},V.normal,{escape:U(V.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),V.gfm.url=U(V.gfm.url,"i").replace("email",V.gfm._extended_email).getRegex(),V.breaks=M({},V.gfm,{br:U(V.br).replace("{2,}","*").getRegex(),text:U(V.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var W={block:H,inline:V},Y=i.defaults,K=W.block,G=W.inline,J=T.repeatString;function Z(e){return e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"â€").replace(/\.{3}/g,"…")}function X(e){var t,r,n="",o=e.length;for(t=0;t<o;t++)r=e.charCodeAt(t),Math.random()>.5&&(r="x"+r.toString(16)),n+="&#"+r+";";return n}var Q=function(){function e(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Y,this.options.tokenizer=this.options.tokenizer||new q,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var t={block:K.normal,inline:G.normal};this.options.pedantic?(t.block=K.pedantic,t.inline=G.pedantic):this.options.gfm&&(t.block=K.gfm,this.options.breaks?t.inline=G.breaks:t.inline=G.gfm),this.tokenizer.rules=t}e.lex=function(t,r){return new e(r).lex(t)},e.lexInline=function(t,r){return new e(r).inlineTokens(t)};var r=e.prototype;return r.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens},r.blockTokens=function(e,t,r){var n,o,a,i;for(void 0===t&&(t=[]),void 0===r&&(r=!0),this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(n=this.tokenizer.space(e))e=e.substring(n.raw.length),n.type&&t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),(i=t[t.length-1])&&"paragraph"===i.type?(i.raw+="\n"+n.raw,i.text+="\n"+n.text):t.push(n);else if(n=this.tokenizer.fences(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.nptable(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),n.tokens=this.blockTokens(n.text,[],r),t.push(n);else if(n=this.tokenizer.list(e)){for(e=e.substring(n.raw.length),a=n.items.length,o=0;o<a;o++)n.items[o].tokens=this.blockTokens(n.items[o].text,[],!1);t.push(n)}else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(r&&(n=this.tokenizer.def(e)))e=e.substring(n.raw.length),this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});else if(n=this.tokenizer.table(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else if(r&&(n=this.tokenizer.paragraph(e)))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),(i=t[t.length-1])&&"text"===i.type?(i.raw+="\n"+n.raw,i.text+="\n"+n.text):t.push(n);else if(e){var s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(s);break}throw new Error(s)}return t},r.inline=function(e){var t,r,n,o,a,i,s=e.length;for(t=0;t<s;t++)switch((i=e[t]).type){case"paragraph":case"text":case"heading":i.tokens=[],this.inlineTokens(i.text,i.tokens);break;case"table":for(i.tokens={header:[],cells:[]},o=i.header.length,r=0;r<o;r++)i.tokens.header[r]=[],this.inlineTokens(i.header[r],i.tokens.header[r]);for(o=i.cells.length,r=0;r<o;r++)for(a=i.cells[r],i.tokens.cells[r]=[],n=0;n<a.length;n++)i.tokens.cells[r][n]=[],this.inlineTokens(a[n],i.tokens.cells[r][n]);break;case"blockquote":this.inline(i.tokens);break;case"list":for(o=i.items.length,r=0;r<o;r++)this.inline(i.items[r].tokens)}return e},r.inlineTokens=function(e,t,r,n){var o,a;void 0===t&&(t=[]),void 0===r&&(r=!1),void 0===n&&(n=!1);var i,s,l,c=e;if(this.tokens.links){var u=Object.keys(this.tokens.links);if(u.length>0)for(;null!=(i=this.tokenizer.rules.inline.reflinkSearch.exec(c));)u.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,i.index)+"["+J("a",i[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(i=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,i.index)+"["+J("a",i[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(i=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,i.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(s||(l=""),s=!1,o=this.tokenizer.escape(e))e=e.substring(o.raw.length),t.push(o);else if(o=this.tokenizer.tag(e,r,n)){e=e.substring(o.raw.length),r=o.inLink,n=o.inRawBlock;var p=t[t.length-1];p&&"text"===o.type&&"text"===p.type?(p.raw+=o.raw,p.text+=o.text):t.push(o)}else if(o=this.tokenizer.link(e))e=e.substring(o.raw.length),"link"===o.type&&(o.tokens=this.inlineTokens(o.text,[],!0,n)),t.push(o);else if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);var d=t[t.length-1];"link"===o.type?(o.tokens=this.inlineTokens(o.text,[],!0,n),t.push(o)):d&&"text"===o.type&&"text"===d.type?(d.raw+=o.raw,d.text+=o.text):t.push(o)}else if(o=this.tokenizer.emStrong(e,c,l))e=e.substring(o.raw.length),o.tokens=this.inlineTokens(o.text,[],r,n),t.push(o);else if(o=this.tokenizer.codespan(e))e=e.substring(o.raw.length),t.push(o);else if(o=this.tokenizer.br(e))e=e.substring(o.raw.length),t.push(o);else if(o=this.tokenizer.del(e))e=e.substring(o.raw.length),o.tokens=this.inlineTokens(o.text,[],r,n),t.push(o);else if(o=this.tokenizer.autolink(e,X))e=e.substring(o.raw.length),t.push(o);else if(r||!(o=this.tokenizer.url(e,X))){if(o=this.tokenizer.inlineText(e,n,Z))e=e.substring(o.raw.length),"_"!==o.raw.slice(-1)&&(l=o.raw.slice(-1)),s=!0,(a=t[t.length-1])&&"text"===a.type?(a.raw+=o.raw,a.text+=o.text):t.push(o);else if(e){var h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}throw new Error(h)}}else e=e.substring(o.raw.length),t.push(o);return t},t(e,null,[{key:"rules",get:function(){return{block:K,inline:G}}}]),e}(),ee=i.defaults,te=T.cleanUrl,re=T.escape,ne=function(){function e(e){this.options=e||ee}var t=e.prototype;return t.code=function(e,t,r){var n=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,n);null!=o&&o!==e&&(r=!0,e=o)}return e=e.replace(/\n$/,"")+"\n",n?'<pre><code class="'+this.options.langPrefix+re(n,!0)+'">'+(r?e:re(e,!0))+"</code></pre>\n":"<pre><code>"+(r?e:re(e,!0))+"</code></pre>\n"},t.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},t.html=function(e){return e},t.heading=function(e,t,r,n){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+n.slug(r)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"},t.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},t.list=function(e,t,r){var n=t?"ol":"ul";return"<"+n+(t&&1!==r?' start="'+r+'"':"")+">\n"+e+"</"+n+">\n"},t.listitem=function(e){return"<li>"+e+"</li>\n"},t.checkbox=function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},t.paragraph=function(e){return"<p>"+e+"</p>\n"},t.table=function(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"},t.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},t.tablecell=function(e,t){var r=t.header?"th":"td";return(t.align?"<"+r+' align="'+t.align+'">':"<"+r+">")+e+"</"+r+">\n"},t.strong=function(e){return"<strong>"+e+"</strong>"},t.em=function(e){return"<em>"+e+"</em>"},t.codespan=function(e){return"<code>"+e+"</code>"},t.br=function(){return this.options.xhtml?"<br/>":"<br>"},t.del=function(e){return"<del>"+e+"</del>"},t.link=function(e,t,r){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return r;var n='<a href="'+re(e)+'"';return t&&(n+=' title="'+t+'"'),n+=">"+r+"</a>"},t.image=function(e,t,r){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return r;var n='<img src="'+e+'" alt="'+r+'"';return t&&(n+=' title="'+t+'"'),n+=this.options.xhtml?"/>":">"},t.text=function(e){return e},e}(),oe=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,r){return""+r},t.image=function(e,t,r){return""+r},t.br=function(){return""},e}(),ae=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var r=e,n=0;if(this.seen.hasOwnProperty(r)){n=this.seen[e];do{r=e+"-"+ ++n}while(this.seen.hasOwnProperty(r))}return t||(this.seen[e]=n,this.seen[r]=0),r},t.slug=function(e,t){void 0===t&&(t={});var r=this.serialize(e);return this.getNextSafeSlug(r,t.dryrun)},e}(),ie=i.defaults,se=T.unescape,le=function(){function e(e){this.options=e||ie,this.options.renderer=this.options.renderer||new ne,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new oe,this.slugger=new ae}e.parse=function(t,r){return new e(r).parse(t)},e.parseInline=function(t,r){return new e(r).parseInline(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var r,n,o,a,i,s,l,c,u,p,d,h,f,m,g,y,b,v,x="",w=e.length;for(r=0;r<w;r++)switch((p=e[r]).type){case"space":continue;case"hr":x+=this.renderer.hr();continue;case"heading":x+=this.renderer.heading(this.parseInline(p.tokens),p.depth,se(this.parseInline(p.tokens,this.textRenderer)),this.slugger);continue;case"code":x+=this.renderer.code(p.text,p.lang,p.escaped);continue;case"table":for(c="",l="",a=p.header.length,n=0;n<a;n++)l+=this.renderer.tablecell(this.parseInline(p.tokens.header[n]),{header:!0,align:p.align[n]});for(c+=this.renderer.tablerow(l),u="",a=p.cells.length,n=0;n<a;n++){for(l="",i=(s=p.tokens.cells[n]).length,o=0;o<i;o++)l+=this.renderer.tablecell(this.parseInline(s[o]),{header:!1,align:p.align[o]});u+=this.renderer.tablerow(l)}x+=this.renderer.table(c,u);continue;case"blockquote":u=this.parse(p.tokens),x+=this.renderer.blockquote(u);continue;case"list":for(d=p.ordered,h=p.start,f=p.loose,a=p.items.length,u="",n=0;n<a;n++)y=(g=p.items[n]).checked,b=g.task,m="",g.task&&(v=this.renderer.checkbox(y),f?g.tokens.length>0&&"text"===g.tokens[0].type?(g.tokens[0].text=v+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=v+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:v}):m+=v),m+=this.parse(g.tokens,f),u+=this.renderer.listitem(m,b,y);x+=this.renderer.list(u,d,h);continue;case"html":x+=this.renderer.html(p.text);continue;case"paragraph":x+=this.renderer.paragraph(this.parseInline(p.tokens));continue;case"text":for(u=p.tokens?this.parseInline(p.tokens):p.text;r+1<w&&"text"===e[r+1].type;)u+="\n"+((p=e[++r]).tokens?this.parseInline(p.tokens):p.text);x+=t?this.renderer.paragraph(u):u;continue;default:var k='Token with "'+p.type+'" type was not found.';if(this.options.silent)return void console.error(k);throw new Error(k)}return x},t.parseInline=function(e,t){t=t||this.renderer;var r,n,o="",a=e.length;for(r=0;r<a;r++)switch((n=e[r]).type){case"escape":o+=t.text(n.text);break;case"html":o+=t.html(n.text);break;case"link":o+=t.link(n.href,n.title,this.parseInline(n.tokens,t));break;case"image":o+=t.image(n.href,n.title,n.text);break;case"strong":o+=t.strong(this.parseInline(n.tokens,t));break;case"em":o+=t.em(this.parseInline(n.tokens,t));break;case"codespan":o+=t.codespan(n.text);break;case"br":o+=t.br();break;case"del":o+=t.del(this.parseInline(n.tokens,t));break;case"text":o+=t.text(n.text);break;default:var i='Token with "'+n.type+'" type was not found.';if(this.options.silent)return void console.error(i);throw new Error(i)}return o},e}(),ce=T.merge,ue=T.checkSanitizeDeprecation,pe=T.escape,de=i.getDefaults,he=i.changeDefaults,fe=i.defaults;function me(e,t,r){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"==typeof t&&(r=t,t=null),t=ce({},me.defaults,t||{}),ue(t),r){var n,o=t.highlight;try{n=Q.lex(e,t)}catch(e){return r(e)}var a=function(e){var a;if(!e)try{a=le.parse(n,t)}catch(t){e=t}return t.highlight=o,e?r(e):r(null,a)};if(!o||o.length<3)return a();if(delete t.highlight,!n.length)return a();var i=0;return me.walkTokens(n,(function(e){"code"===e.type&&(i++,setTimeout((function(){o(e.text,e.lang,(function(t,r){if(t)return a(t);null!=r&&r!==e.text&&(e.text=r,e.escaped=!0),0==--i&&a()}))}),0))})),void(0===i&&a())}try{var s=Q.lex(e,t);return t.walkTokens&&me.walkTokens(s,t.walkTokens),le.parse(s,t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+pe(e.message+"",!0)+"</pre>";throw e}}return me.options=me.setOptions=function(e){return ce(me.defaults,e),he(me.defaults),me},me.getDefaults=de,me.defaults=fe,me.use=function(e){var t=ce({},e);if(e.renderer&&function(){var r=me.defaults.renderer||new ne,n=function(t){var n=r[t];r[t]=function(){for(var o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];var s=e.renderer[t].apply(r,a);return!1===s&&(s=n.apply(r,a)),s}};for(var o in e.renderer)n(o);t.renderer=r}(),e.tokenizer&&function(){var r=me.defaults.tokenizer||new q,n=function(t){var n=r[t];r[t]=function(){for(var o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];var s=e.tokenizer[t].apply(r,a);return!1===s&&(s=n.apply(r,a)),s}};for(var o in e.tokenizer)n(o);t.tokenizer=r}(),e.walkTokens){var r=me.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens(t),r&&r(t)}}me.setOptions(t)},me.walkTokens=function(e,t){for(var r,n=o(e);!(r=n()).done;){var a=r.value;switch(t(a),a.type){case"table":for(var i,s=o(a.tokens.header);!(i=s()).done;){var l=i.value;me.walkTokens(l,t)}for(var c,u=o(a.tokens.cells);!(c=u()).done;)for(var p,d=o(c.value);!(p=d()).done;){var h=p.value;me.walkTokens(h,t)}break;case"list":me.walkTokens(a.items,t);break;default:a.tokens&&me.walkTokens(a.tokens,t)}}},me.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=ce({},me.defaults,t||{}),ue(t);try{var r=Q.lexInline(e,t);return t.walkTokens&&me.walkTokens(r,t.walkTokens),le.parseInline(r,t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+pe(e.message+"",!0)+"</pre>";throw e}},me.Parser=le,me.parser=le.parse,me.Renderer=ne,me.TextRenderer=oe,me.Lexer=Q,me.lexer=Q.lex,me.Tokenizer=q,me.Slugger=ae,me.parse=me,me}()},874:()=>{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",r={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:r,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:r}},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|(?!\2)[^\\`$])*\2/,lookbehind:!0,greedy:!0,inside:n}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},r.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=n.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(Prism)},16:()=>{!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,r){return"(?:"+t[+r]+")"}))}function r(e,r,n){return RegExp(t(e,r),n||"")}function n(e,t){for(var r=0;r<t;r++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var o="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",a="class enum interface struct",i="add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(a),u=RegExp(l(o+" "+a+" "+i+" "+s)),p=l(a+" "+i+" "+s),d=l(o+" "+a+" "+s),h=n(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),f=n(/\((?:[^()]|<<self>>)*\)/.source,2),m=/@?\b[A-Za-z_]\w*\b/.source,g=t(/<<0>>(?:\s*<<1>>)?/.source,[m,h]),y=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[p,g]),b=/\[\s*(?:,\s*)*\]/.source,v=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[y,b]),x=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[h,f,b]),w=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[x]),k=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[w,y,b]),A={keyword:u,punctuation:/[<>()?,.:[\]]/},$=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,E=/"(?:\\.|[^\\"\r\n])*"/.source,S=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:r(/(^|[^$\\])<<0>>/.source,[S]),lookbehind:!0,greedy:!0},{pattern:r(/(^|[^@$\\])<<0>>/.source,[E]),lookbehind:!0,greedy:!0},{pattern:RegExp($),greedy:!0,alias:"character"}],"class-name":[{pattern:r(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[y]),lookbehind:!0,inside:A},{pattern:r(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[m,k]),lookbehind:!0,inside:A},{pattern:r(/(\busing\s+)<<0>>(?=\s*=)/.source,[m]),lookbehind:!0},{pattern:r(/(\b<<0>>\s+)<<1>>/.source,[c,g]),lookbehind:!0,inside:A},{pattern:r(/(\bcatch\s*\(\s*)<<0>>/.source,[y]),lookbehind:!0,inside:A},{pattern:r(/(\bwhere\s+)<<0>>/.source,[m]),lookbehind:!0},{pattern:r(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[v]),lookbehind:!0,inside:A},{pattern:r(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[k,d,m]),inside:A}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:r(/([(,]\s*)<<0>>(?=\s*:)/.source,[m]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:r(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[m]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:r(/(\b(?:default|typeof|sizeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[f]),lookbehind:!0,alias:"class-name",inside:A},"return-type":{pattern:r(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[k,y]),inside:A,alias:"class-name"},"constructor-invocation":{pattern:r(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[k]),lookbehind:!0,inside:A,alias:"class-name"},"generic-method":{pattern:r(/<<0>>\s*<<1>>(?=\s*\()/.source,[m,h]),inside:{function:r(/^<<0>>/.source,[m]),generic:{pattern:RegExp(h),alias:"class-name",inside:A}}},"type-list":{pattern:r(/\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,g,m,k,u.source]),lookbehind:!0,inside:{keyword:u,"class-name":{pattern:RegExp(k),greedy:!0,inside:A},punctuation:/,/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var D=E+"|"+$,O=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[D]),C=n(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[O]),2),_=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,j=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[y,C]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:r(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[_,j]),lookbehind:!0,greedy:!0,inside:{target:{pattern:r(/^<<0>>(?=\s*:)/.source,[_]),alias:"keyword"},"attribute-arguments":{pattern:r(/\(<<0>>*\)/.source,[C]),inside:e.languages.csharp},"class-name":{pattern:RegExp(y),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var T=/:[^}\r\n]+/.source,F=n(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[O]),2),P=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[F,T]),B=n(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[D]),2),I=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[B,T]);function R(t,n){return{interpolation:{pattern:r(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:r(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[n,T]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:r(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[P]),lookbehind:!0,greedy:!0,inside:R(P,F)},{pattern:r(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[I]),lookbehind:!0,greedy:!0,inside:R(I,B)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},251:()=>{!function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:RegExp("[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var r=e.languages.markup;r&&(r.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/(^|["'\s])style\s*=\s*(?:"[^"]*"|'[^']*')/i,lookbehind:!0,inside:{"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{style:{pattern:/(["'])[\s\S]+(?=["']$)/,lookbehind:!0,alias:"language-css",inside:e.languages.css},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},"attr-name":/^style/i}}},r.tag))}(Prism)},46:()=>{Prism.languages.go=Prism.languages.extend("clike",{string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,number:/(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/}),delete Prism.languages.go["class-name"]},57:()=>{!function(e){e.languages.http={"request-line":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] \d.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )\d.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var t,r=e.languages,n={"application/javascript":r.javascript,"application/json":r.json||r.javascript,"application/xml":r.xml,"text/xml":r.xml,"text/html":r.html,"text/css":r.css},o={"application/json":!0,"application/xml":!0};function a(e){var t=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|"+("\\w+/(?:[\\w.-]+\\+)+"+t+"(?![+\\w.-])")+")"}for(var i in n)if(n[i]){t=t||{};var s=o[i]?a(i):i;t[i.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+s+".*)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:n[i]}}t&&e.languages.insertBefore("http","header-name",t)}(Prism)},503:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,r=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,n={pattern:RegExp(r+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{"class-name":[n,{pattern:RegExp(r+/[A-Z]\w*(?=\s+\w+\s*[;,=())])/.source),lookbehind:!0,inside:n.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},277:()=>{Prism.languages.json={property:{pattern:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},366:()=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern://,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},358:()=>{!function(e){var t=/[*&][^\s[\]{},]+/,r=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,n="(?:"+r.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+r.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var r=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|]|}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return n})).replace(/<<value>>/g,(function(){return e}));return RegExp(r,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return n}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return n})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/true|false/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:r,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism)},660:(e,t,r)=>{var n=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,r=0,n={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++r}),e.__id},clone:function e(t,r){var o,a;switch(r=r||{},n.util.type(t)){case"Object":if(a=n.util.objId(t),r[a])return r[a];for(var i in o={},r[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],r));return o;case"Array":return a=n.util.objId(t),r[a]?r[a]:(o=[],r[a]=o,t.forEach((function(t,n){o[n]=e(t,r)})),o);default:return t}},getLanguage:function(e){for(;e&&!t.test(e.className);)e=e.parentElement;return e?(e.className.match(t)||[,"none"])[1].toLowerCase():"none"},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(n){var e=(/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(n.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var r in t)if(t[r].src==e)return t[r]}return null}},isActive:function(e,t,r){for(var n="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(n))return!1;e=e.parentElement}return!!r}},languages:{extend:function(e,t){var r=n.util.clone(n.languages[e]);for(var o in t)r[o]=t[o];return r},insertBefore:function(e,t,r,o){var a=(o=o||n.languages)[e],i={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var l in r)r.hasOwnProperty(l)&&(i[l]=r[l]);r.hasOwnProperty(s)||(i[s]=a[s])}var c=o[e];return o[e]=i,n.languages.DFS(n.languages,(function(t,r){r===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,r,o,a){a=a||{};var i=n.util.objId;for(var s in t)if(t.hasOwnProperty(s)){r.call(t,s,t[s],o||s);var l=t[s],c=n.util.type(l);"Object"!==c||a[i(l)]?"Array"!==c||a[i(l)]||(a[i(l)]=!0,e(l,r,s,a)):(a[i(l)]=!0,e(l,r,null,a))}}},plugins:{},highlightAll:function(e,t){n.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,r){var o={callback:r,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};n.hooks.run("before-highlightall",o),o.elements=Array.prototype.slice.apply(o.container.querySelectorAll(o.selector)),n.hooks.run("before-all-elements-highlight",o);for(var a,i=0;a=o.elements[i++];)n.highlightElement(a,!0===t,o.callback)},highlightElement:function(r,o,a){var i=n.util.getLanguage(r),s=n.languages[i];r.className=r.className.replace(t,"").replace(/\s+/g," ")+" language-"+i;var l=r.parentElement;l&&"pre"===l.nodeName.toLowerCase()&&(l.className=l.className.replace(t,"").replace(/\s+/g," ")+" language-"+i);var c={element:r,language:i,grammar:s,code:r.textContent};function u(e){c.highlightedCode=e,n.hooks.run("before-insert",c),c.element.innerHTML=c.highlightedCode,n.hooks.run("after-highlight",c),n.hooks.run("complete",c),a&&a.call(c.element)}if(n.hooks.run("before-sanity-check",c),!c.code)return n.hooks.run("complete",c),void(a&&a.call(c.element));if(n.hooks.run("before-highlight",c),c.grammar)if(o&&e.Worker){var p=new Worker(n.filename);p.onmessage=function(e){u(e.data)},p.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else u(n.highlight(c.code,c.grammar,c.language));else u(n.util.encode(c.code))},highlight:function(e,t,r){var a={code:e,grammar:t,language:r};return n.hooks.run("before-tokenize",a),a.tokens=n.tokenize(a.code,a.grammar),n.hooks.run("after-tokenize",a),o.stringify(n.util.encode(a.tokens),a.language)},tokenize:function(e,t){var r=t.rest;if(r){for(var n in r)t[n]=r[n];delete t.rest}var o=new s;return l(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],r=e.head.next;for(;r!==e.tail;)t.push(r.value),r=r.next;return t}(o)},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var o,a=0;o=r[a++];)o(t)}},Token:o};function o(e,t,r,n){this.type=e,this.content=t,this.alias=r,this.length=0|(n||"").length}function a(e,t,r,n){e.lastIndex=t;var o=e.exec(r);if(o&&n&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,r,s,u,p){for(var d in r)if(r.hasOwnProperty(d)&&r[d]){var h=r[d];h=Array.isArray(h)?h:[h];for(var f=0;f<h.length;++f){if(p&&p.cause==d+","+f)return;var m=h[f],g=m.inside,y=!!m.lookbehind,b=!!m.greedy,v=m.alias;if(b&&!m.pattern.global){var x=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,x+"g")}for(var w=m.pattern||m,k=s.next,A=u;k!==t.tail&&!(p&&A>=p.reach);A+=k.value.length,k=k.next){var $=k.value;if(t.length>e.length)return;if(!($ instanceof o)){var E,S=1;if(b){if(!(E=a(w,A,e,y)))break;var D=E.index,O=E.index+E[0].length,C=A;for(C+=k.value.length;D>=C;)C+=(k=k.next).value.length;if(A=C-=k.value.length,k.value instanceof o)continue;for(var _=k;_!==t.tail&&(C<O||"string"==typeof _.value);_=_.next)S++,C+=_.value.length;S--,$=e.slice(A,C),E.index-=A}else if(!(E=a(w,0,$,y)))continue;D=E.index;var j=E[0],T=$.slice(0,D),F=$.slice(D+j.length),P=A+$.length;p&&P>p.reach&&(p.reach=P);var B=k.prev;T&&(B=l(t,B,T),A+=T.length),c(t,B,S),k=l(t,B,new o(d,g?n.tokenize(j,g):j,v,j)),F&&l(t,k,F),S>1&&i(e,t,r,k.prev,A,{cause:d+","+f,reach:P})}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,r){var n=t.next,o={value:r,prev:t,next:n};return t.next=o,n.prev=o,e.length++,o}function c(e,t,r){for(var n=t.next,o=0;o<r&&n!==e.tail;o++)n=n.next;t.next=n,n.prev=t,e.length-=o}if(e.Prism=n,o.stringify=function e(t,r){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,r)})),o}var a={type:t.type,content:e(t.content,r),tag:"span",classes:["token",t.type],attributes:{},language:r},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),n.hooks.run("wrap",a);var s="";for(var l in a.attributes)s+=" "+l+'="'+(a.attributes[l]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},!e.document)return e.addEventListener?(n.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var r=JSON.parse(t.data),o=r.language,a=r.code,i=r.immediateClose;e.postMessage(n.highlight(a,n.languages[o],o)),i&&e.close()}),!1),n):n;var u=n.util.currentScript();function p(){n.manual||n.highlightAll()}if(u&&(n.filename=u.src,u.hasAttribute("data-manual")&&(n.manual=!0)),!n.manual){var d=document.readyState;"loading"===d||"interactive"===d&&u&&u.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return n}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=n),void 0!==r.g&&(r.g.Prism=n),n.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside["internal-subset"].inside=n.languages.markup,n.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(e,t){var r={};r["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:n.languages[t]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var o={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};o["language-"+t]={pattern:/[\s\S]+/,inside:n.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:o},n.languages.insertBefore("markup","cdata",a)}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend("markup",{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:RegExp("[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var r=e.languages.markup;r&&(r.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/(^|["'\s])style\s*=\s*(?:"[^"]*"|'[^']*')/i,lookbehind:!0,inside:{"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{style:{pattern:/(["'])[\s\S]+(?=["']$)/,lookbehind:!0,alias:"language-css",inside:e.languages.css},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},"attr-name":/^style/i}}},r.tag))}(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{"class-name":[n.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,n.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:n.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}}}),n.languages.markup&&n.languages.markup.tag.addInlined("script","javascript"),n.languages.js=n.languages.javascript,function(){if("undefined"!=typeof self&&self.Prism&&self.document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e=window.Prism,t={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},r="data-src-status",n="loading",o="loaded",a='pre[data-src]:not([data-src-status="loaded"]):not([data-src-status="loading"])',i=/\blang(?:uage)?-([\w-]+)\b/i;e.hooks.add("before-highlightall",(function(e){e.selector+=", "+a})),e.hooks.add("before-sanity-check",(function(i){var s=i.element;if(s.matches(a)){i.code="",s.setAttribute(r,n);var c=s.appendChild(document.createElement("CODE"));c.textContent="Loading…";var u=s.getAttribute("data-src"),p=i.language;if("none"===p){var d=(/\.(\w+)$/.exec(u)||[,"none"])[1];p=t[d]||d}l(c,p),l(s,p);var h=e.plugins.autoloader;h&&h.loadLanguages(p);var f=new XMLHttpRequest;f.open("GET",u,!0),f.onreadystatechange=function(){var t,n;4==f.readyState&&(f.status<400&&f.responseText?(s.setAttribute(r,o),c.textContent=f.responseText,e.highlightElement(c)):(s.setAttribute(r,"failed"),f.status>=400?c.textContent=(t=f.status,n=f.statusText,"✖ Error "+t+" while fetching file: "+n):c.textContent="✖ Error: File does not exist or is empty"))},f.send(null)}})),e.plugins.fileHighlight={highlight:function(t){for(var r,n=(t||document).querySelectorAll(a),o=0;r=n[o++];)e.highlightElement(r)}};var s=!1;e.fileHighlight=function(){s||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),s=!0),e.plugins.fileHighlight.highlight.apply(this,arguments)}}function l(e,t){var r=e.className;r=r.replace(i," ")+" language-"+t,e.className=r.replace(/\s+/g," ").trim()}}()}},n={};function o(e){var t=n[e];if(void 0!==t){if(void 0!==t.error)throw t.error;return t.exports}var a=n[e]={exports:{}};try{var i={id:e,module:a,factory:r[e],require:o};o.i.forEach((function(e){e(i)})),a=i.module,i.factory.call(a.exports,a,a.exports,i.require)}catch(e){throw a.error=e,e}return a.exports}o.m=r,o.c=n,o.i=[],o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.hu=e=>e+"."+o.h()+".hot-update.js",o.hmrF=()=>"main."+o.h()+".hot-update.json",o.h=()=>"bc26c7823f8a4a97df6d",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="rapidoc:",o.l=(r,n,a,i)=>{if(e[r])e[r].push(n);else{var s,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var p=c[u];if(p.getAttribute("src")==r||p.getAttribute("data-webpack")==t+a){s=p;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",t+a),s.src=r),e[r]=[n];var d=(t,n)=>{s.onerror=s.onload=null,clearTimeout(h);var o=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),t)return t(n)},h=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),l&&document.head.appendChild(s)}},(()=>{var e,t,r,n,a={},i=o.c,s=[],l=[],c="idle";function u(e){c=e;for(var t=0;t<l.length;t++)l[t].call(null,e)}function p(e){if(0===t.length)return e();var r=t;return t=[],Promise.all(r).then((function(){return p(e)}))}function d(e){if("idle"!==c)throw new Error("check() is only allowed in idle status");return u("check"),o.hmrM().then((function(n){if(!n)return u(m()?"ready":"idle"),null;u("prepare");var a=[];return t=[],r=[],Promise.all(Object.keys(o.hmrC).reduce((function(e,t){return o.hmrC[t](n.c,n.r,n.m,e,r,a),e}),[])).then((function(){return p((function(){return e?f(e):(u("ready"),a)}))}))}))}function h(e){return"ready"!==c?Promise.resolve().then((function(){throw new Error("apply() is only allowed in ready status")})):f(e)}function f(e){e=e||{},m();var t=r.map((function(t){return t(e)}));r=void 0;var o,a=t.map((function(e){return e.error})).filter(Boolean);if(a.length>0)return u("abort"),Promise.resolve().then((function(){throw a[0]}));u("dispose"),t.forEach((function(e){e.dispose&&e.dispose()})),u("apply");var i=function(e){o||(o=e)},s=[];return t.forEach((function(e){if(e.apply){var t=e.apply(i);if(t)for(var r=0;r<t.length;r++)s.push(t[r])}})),o?(u("fail"),Promise.resolve().then((function(){throw o}))):n?f(e).then((function(e){return s.forEach((function(t){e.indexOf(t)<0&&e.push(t)})),e})):(u("idle"),Promise.resolve(s))}function m(){if(n)return r||(r=[]),Object.keys(o.hmrI).forEach((function(e){n.forEach((function(t){o.hmrI[e](t,r)}))})),n=void 0,!0}o.hmrD=a,o.i.push((function(f){var m,g,y,b=f.module,v=function(r,n){var o=i[n];if(!o)return r;var a=function(t){if(o.hot.active){if(i[t]){var a=i[t].parents;-1===a.indexOf(n)&&a.push(n)}else s=[n],e=t;-1===o.children.indexOf(t)&&o.children.push(t)}else console.warn("[HMR] unexpected require("+t+") from disposed module "+n),s=[];return r(t)},l=function(e){return{configurable:!0,enumerable:!0,get:function(){return r[e]},set:function(t){r[e]=t}}};for(var d in r)Object.prototype.hasOwnProperty.call(r,d)&&"e"!==d&&Object.defineProperty(a,d,l(d));return a.e=function(e){return function(e){switch(c){case"ready":return u("prepare"),t.push(e),p((function(){u("ready")})),e;case"prepare":return t.push(e),e;default:return e}}(r.e(e))},a}(f.require,f.id);b.hot=(m=f.id,g=b,y={_acceptedDependencies:{},_acceptedErrorHandlers:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_selfInvalidated:!1,_disposeHandlers:[],_main:e!==m,_requireSelf:function(){s=g.parents.slice(),e=m,o(m)},active:!0,accept:function(e,t,r){if(void 0===e)y._selfAccepted=!0;else if("function"==typeof e)y._selfAccepted=e;else if("object"==typeof e&&null!==e)for(var n=0;n<e.length;n++)y._acceptedDependencies[e[n]]=t||function(){},y._acceptedErrorHandlers[e[n]]=r;else y._acceptedDependencies[e]=t||function(){},y._acceptedErrorHandlers[e]=r},decline:function(e){if(void 0===e)y._selfDeclined=!0;else if("object"==typeof e&&null!==e)for(var t=0;t<e.length;t++)y._declinedDependencies[e[t]]=!0;else y._declinedDependencies[e]=!0},dispose:function(e){y._disposeHandlers.push(e)},addDisposeHandler:function(e){y._disposeHandlers.push(e)},removeDisposeHandler:function(e){var t=y._disposeHandlers.indexOf(e);t>=0&&y._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,c){case"idle":r=[],Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](m,r)})),u("ready");break;case"ready":Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](m,r)}));break;case"prepare":case"check":case"dispose":case"apply":(n=n||[]).push(m)}},check:d,apply:h,status:function(e){if(!e)return c;l.push(e)},addStatusHandler:function(e){l.push(e)},removeStatusHandler:function(e){var t=l.indexOf(e);t>=0&&l.splice(t,1)},data:a[m]},e=void 0,y),b.parents=s,b.children=[],s=[],f.require=v})),o.hmrC={},o.hmrI={}})(),o.p="",(()=>{var e,t,r,n,a={179:0},i={};function s(e){return new Promise(((t,r)=>{i[e]=t;var n=o.p+o.hu(e),a=new Error;o.l(n,(t=>{if(i[e]){i[e]=void 0;var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;a.message="Loading hot update chunk "+e+" failed.\n("+n+": "+o+")",a.name="ChunkLoadError",a.type=n,a.request=o,r(a)}}))}))}function l(i){function s(e){for(var t=[e],r={},n=t.map((function(e){return{chain:[e],id:e}}));n.length>0;){var a=n.pop(),i=a.id,s=a.chain,c=o.c[i];if(c&&(!c.hot._selfAccepted||c.hot._selfInvalidated)){if(c.hot._selfDeclined)return{type:"self-declined",chain:s,moduleId:i};if(c.hot._main)return{type:"unaccepted",chain:s,moduleId:i};for(var u=0;u<c.parents.length;u++){var p=c.parents[u],d=o.c[p];if(d){if(d.hot._declinedDependencies[i])return{type:"declined",chain:s.concat([p]),moduleId:i,parentId:p};-1===t.indexOf(p)&&(d.hot._acceptedDependencies[i]?(r[p]||(r[p]=[]),l(r[p],[i])):(delete r[p],t.push(p),n.push({chain:s.concat([p]),id:p})))}}}}return{type:"accepted",moduleId:e,outdatedModules:t,outdatedDependencies:r}}function l(e,t){for(var r=0;r<t.length;r++){var n=t[r];-1===e.indexOf(n)&&e.push(n)}}o.f&&delete o.f.jsonpHmr,e=void 0;var c={},u=[],p={},d=function(e){console.warn("[HMR] unexpected require("+e.id+") to disposed module")};for(var h in t)if(o.o(t,h)){var f,m=t[h],g=!1,y=!1,b=!1,v="";switch((f=m?s(h):{type:"disposed",moduleId:h}).chain&&(v="\nUpdate propagation: "+f.chain.join(" -> ")),f.type){case"self-declined":i.onDeclined&&i.onDeclined(f),i.ignoreDeclined||(g=new Error("Aborted because of self decline: "+f.moduleId+v));break;case"declined":i.onDeclined&&i.onDeclined(f),i.ignoreDeclined||(g=new Error("Aborted because of declined dependency: "+f.moduleId+" in "+f.parentId+v));break;case"unaccepted":i.onUnaccepted&&i.onUnaccepted(f),i.ignoreUnaccepted||(g=new Error("Aborted because "+h+" is not accepted"+v));break;case"accepted":i.onAccepted&&i.onAccepted(f),y=!0;break;case"disposed":i.onDisposed&&i.onDisposed(f),b=!0;break;default:throw new Error("Unexception type "+f.type)}if(g)return{error:g};if(y)for(h in p[h]=m,l(u,f.outdatedModules),f.outdatedDependencies)o.o(f.outdatedDependencies,h)&&(c[h]||(c[h]=[]),l(c[h],f.outdatedDependencies[h]));b&&(l(u,[f.moduleId]),p[h]=d)}t=void 0;for(var x,w=[],k=0;k<u.length;k++){var A=u[k],$=o.c[A];$&&$.hot._selfAccepted&&p[A]!==d&&!$.hot._selfInvalidated&&w.push({module:A,require:$.hot._requireSelf,errorHandler:$.hot._selfAccepted})}return{dispose:function(){var e;r.forEach((function(e){delete a[e]})),r=void 0;for(var t,n=u.slice();n.length>0;){var i=n.pop(),s=o.c[i];if(s){var l={},p=s.hot._disposeHandlers;for(k=0;k<p.length;k++)p[k].call(null,l);for(o.hmrD[i]=l,s.hot.active=!1,delete o.c[i],delete c[i],k=0;k<s.children.length;k++){var d=o.c[s.children[k]];d&&((e=d.parents.indexOf(i))>=0&&d.parents.splice(e,1))}}}for(var h in c)if(o.o(c,h)&&(s=o.c[h]))for(x=c[h],k=0;k<x.length;k++)t=x[k],(e=s.children.indexOf(t))>=0&&s.children.splice(e,1)},apply:function(e){for(var t in p)o.o(p,t)&&(o.m[t]=p[t]);for(var r=0;r<n.length;r++)n[r](o);for(var a in c)if(o.o(c,a)){var s=o.c[a];if(s){x=c[a];for(var l=[],d=[],h=[],f=0;f<x.length;f++){var m=x[f],g=s.hot._acceptedDependencies[m],y=s.hot._acceptedErrorHandlers[m];if(g){if(-1!==l.indexOf(g))continue;l.push(g),d.push(y),h.push(m)}}for(var b=0;b<l.length;b++)try{l[b].call(null,x)}catch(t){if("function"==typeof d[b])try{d[b](t,{moduleId:a,dependencyId:h[b]})}catch(r){i.onErrored&&i.onErrored({type:"accept-error-handler-errored",moduleId:a,dependencyId:h[b],error:r,originalError:t}),i.ignoreErrored||(e(r),e(t))}else i.onErrored&&i.onErrored({type:"accept-errored",moduleId:a,dependencyId:h[b],error:t}),i.ignoreErrored||e(t)}}}for(var v=0;v<w.length;v++){var k=w[v],A=k.module;try{k.require(A)}catch(t){if("function"==typeof k.errorHandler)try{k.errorHandler(t,{moduleId:A,module:o.c[A]})}catch(r){i.onErrored&&i.onErrored({type:"self-accept-error-handler-errored",moduleId:A,error:r,originalError:t}),i.ignoreErrored||(e(r),e(t))}else i.onErrored&&i.onErrored({type:"self-accept-errored",moduleId:A,error:t}),i.ignoreErrored||e(t)}}return u}}}self.webpackHotUpdaterapidoc=(e,r,a)=>{for(var s in r)o.o(r,s)&&(t[s]=r[s]);a&&n.push(a),i[e]&&(i[e](),i[e]=void 0)},o.hmrI.jsonp=function(e,a){t||(t={},n=[],r=[],a.push(l)),o.o(t,e)||(t[e]=o.m[e])},o.hmrC.jsonp=function(i,c,u,p,d,h){d.push(l),e={},r=c,t=u.reduce((function(e,t){return e[t]=!1,e}),{}),n=[],i.forEach((function(t){o.o(a,t)&&void 0!==a[t]&&(p.push(s(t)),e[t]=!0)})),o.f&&(o.f.jsonpHmr=function(t,r){e&&!o.o(e,t)&&o.o(a,t)&&void 0!==a[t]&&(r.push(s(t)),e[t]=!0)})},o.hmrM=()=>{if("undefined"==typeof fetch)throw new Error("No browser support: need fetch API");return fetch(o.p+o.hmrF()).then((e=>{if(404!==e.status){if(!e.ok)throw new Error("Failed to fetch update manifest "+e.statusText);return e.json()}}))}})();o(652)})(); -//# sourceMappingURL=rapidoc-min.js.map \ No newline at end of file diff --git a/versioned_docs/.gitkeep b/versioned_docs/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/versioned_sidebars/.gitkeep b/versioned_sidebars/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/versions.json b/versions.json new file mode 100644 index 0000000000000000000000000000000000000000..0d4f101c7a37a4c875e6999bee1a287fdb733380 --- /dev/null +++ b/versions.json @@ -0,0 +1,2 @@ +[ +] diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000000000000000000000000000000000..99e35946beebd89fe6b4b049ef6af5336eacd69a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,9388 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@algolia/autocomplete-core@1.0.0-alpha.44": + version "1.0.0-alpha.44" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.0.0-alpha.44.tgz#e626dba45f5f3950d6beb0ab055395ef0f7e8bb2" + integrity sha512-2iMXthldMIDXtlbg9omRKLgg1bLo2ZzINAEqwhNjUeyj1ceEyL1ck6FY0VnJpf2LsjmNthHCz2BuFk+nYUeDNA== + dependencies: + "@algolia/autocomplete-shared" "1.0.0-alpha.44" + +"@algolia/autocomplete-preset-algolia@1.0.0-alpha.44": + version "1.0.0-alpha.44" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.44.tgz#0ea0b255d0be10fbe262e281472dd6e4619b62ba" + integrity sha512-DCHwo5ovzg9k2ejUolGNTLFnIA7GpsrkbNJTy1sFbMnYfBmeK8egZPZnEl7lBTr27OaZu7IkWpTepLVSztZyng== + dependencies: + "@algolia/autocomplete-shared" "1.0.0-alpha.44" + +"@algolia/autocomplete-shared@1.0.0-alpha.44": + version "1.0.0-alpha.44" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.0.0-alpha.44.tgz#db13902ad1667e455711b77d08cae1a0feafaa48" + integrity sha512-2oQZPERYV+yNx/yoVWYjZZdOqsitJ5dfxXJjL18yczOXH6ujnsq+DTczSrX+RjzjQdVeJ1UAG053EJQF/FOiMg== + +"@algolia/cache-browser-local-storage@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.9.3.tgz#44e6306a548a76c410b5f64a8a0a1b65f63183c9" + integrity sha512-t9yKMfPNxxEUk/PPbZtXj0GCttDk1pk0wV2eA5udIOgf+Wqb/77yH75zz1u8EmCBGPe+FWXjSVT/wS1tlQz7SA== + dependencies: + "@algolia/cache-common" "4.9.3" + +"@algolia/cache-common@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.9.3.tgz#0b3ca07c9af108433b4d3423a03511c3d053fed5" + integrity sha512-4dvzz28ESs7lRHmpBIjlmRloD9oGeD90E2C0QWNQYuAYosSdXGwW7vw4vdGRdPoL32t6u6S+47Bk6Dhcbw2ftA== + +"@algolia/cache-in-memory@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.9.3.tgz#0bae2ad1de6537ca28efaf5280051265903bfca5" + integrity sha512-e1eRpP/Ht9qmLw5Sp674N6Y0c59K0L2LBI71EBOlq1j+kVc+JxVO03he5g+nQ7JOwLijyJPrkbm3RvXb5CX0sA== + dependencies: + "@algolia/cache-common" "4.9.3" + +"@algolia/client-account@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.9.3.tgz#af9bf3612d05e87aa36372da50a2f0a9265de201" + integrity sha512-mSF0jiAo/tWKf/Z7mqhz6ETltrl+L+Zt2xuM3W5y1UOZvj47fn2ZcMRce8MQ+dd54t9iA8qIa+0XGlCSQf9lxA== + dependencies: + "@algolia/client-common" "4.9.3" + "@algolia/client-search" "4.9.3" + "@algolia/transporter" "4.9.3" + +"@algolia/client-analytics@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.9.3.tgz#cddb4a97d796291d91bd15735de008b2d80a0b1b" + integrity sha512-Z3EjegxsdTMRmOLoDBnCZJjdL3ZM4J/G7TMe2PIArdCJFWM4iDnO7/MvYasqpK0PPOCHRh0wS4yKG9rZOz6Vsw== + dependencies: + "@algolia/client-common" "4.9.3" + "@algolia/client-search" "4.9.3" + "@algolia/requester-common" "4.9.3" + "@algolia/transporter" "4.9.3" + +"@algolia/client-common@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.9.3.tgz#167a6863b55ffe7788ab9ac98b1b6fd0078f79df" + integrity sha512-6GAfuNqMrBN3094H0DzvQyxJoKUkyQpEr5OiFhH8I3lihI1rTtjEUrNDTsVp6e9VsR2OCRpnL9EEDv2HcGe8cw== + dependencies: + "@algolia/requester-common" "4.9.3" + "@algolia/transporter" "4.9.3" + +"@algolia/client-recommendation@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.9.3.tgz#e2031237b2904c9d9b946fc846c87a21ad67bc5a" + integrity sha512-r+MNluwnUTr1tgHWQ5BPRw0A0YJZp9sXjSVxPCY3a+N6BgLaX4E02+FA8VrqVs8uR7mMQSLaJHoeCKnmNPrk9w== + dependencies: + "@algolia/client-common" "4.9.3" + "@algolia/requester-common" "4.9.3" + "@algolia/transporter" "4.9.3" + +"@algolia/client-search@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.9.3.tgz#6259645ad5a7e7388727343806bcf2d0cf3e343a" + integrity sha512-8C6woYf6bY4Fh9H9nKY5IDDeBPwQ3nZn9QMQdgUj9ffDU8UzPqSivtLER1A+I81p1j9h+aBADRifwzIYtSXOkA== + dependencies: + "@algolia/client-common" "4.9.3" + "@algolia/requester-common" "4.9.3" + "@algolia/transporter" "4.9.3" + +"@algolia/logger-common@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.9.3.tgz#d9b976524313b11f11c6ec546e2ed451c7964a11" + integrity sha512-8hGQ5HQvjx2kr7GWOmpON1tcRX2+VHqVg4p+qJqCBsPFlXbAshUyRJkxuen20eem2EAA5Cmmo1fPy/jlqdMMHA== + +"@algolia/logger-console@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.9.3.tgz#f690bf8d5262a82425da26b42a519d7ec6c3784a" + integrity sha512-7FGulrAjS/oCVRShKJw5qFuyHOZk/44jolEtNtXvO/tZRR8hPPiow16Vrd3ByRSIhghkC5zj6at4nQhoPK+KqA== + dependencies: + "@algolia/logger-common" "4.9.3" + +"@algolia/requester-browser-xhr@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.9.3.tgz#1c0fd594e253b41786b3408ade9f63862fe0c577" + integrity sha512-hP4YgxcY1kol0d+joXpO4BJuXjgF+vy3eBPk8WCXvZucv8hl5Vqb4BLccDMck+sTqP4Tqglwh/KwVTQrpmi/wA== + dependencies: + "@algolia/requester-common" "4.9.3" + +"@algolia/requester-common@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.9.3.tgz#58fb72ca3f4f7714d75287ff568000ee6c2afac6" + integrity sha512-AgUw1iA/JkanZC+dhkSLyeiVgBhaaM3bI20f3cokuuDdz4X6F+hzi0vEpUZrEuNfnMLbUg8gxq3Vcg1/L9+9MA== + +"@algolia/requester-node-http@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.9.3.tgz#a2bf0e7048fe3b81c6b6b170f8f68a5789dadafe" + integrity sha512-+nz7rRnI9qNcdZjHpyAyvcDLAO9mGobqsAi0aicxMka/szU1HVUX6+pvSOiiOsD8ST3R13rJuufgHfWdDUysQg== + dependencies: + "@algolia/requester-common" "4.9.3" + +"@algolia/transporter@4.9.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.9.3.tgz#5a0933d4e59acdf88712156b2ab6f1b46c0a7f88" + integrity sha512-oJ68VSSpmUyB9EByqoyx25wgcrO9fgXtjH+pOtKoKmCW+RfxHW5agltJoQ808N8uq/AvP5ugMkRLGL3xf4WdzQ== + dependencies: + "@algolia/cache-common" "4.9.3" + "@algolia/logger-common" "4.9.3" + "@algolia/requester-common" "4.9.3" + +"@apitools/openapi-parser@^0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@apitools/openapi-parser/-/openapi-parser-0.0.8.tgz#256a2b6c77a10595c7637f21729b60de4dbe86a5" + integrity sha512-j2mtstcjoDwHUfrK9d5mnBi7ZNNO8igMr8WU5hYJgmCmKBZOiDNlcuB+3gzyJ6nctXmgs5Ph25W73wj9T7z3/A== + dependencies: + swagger-client "^3.13.2" + +"@babel/code-frame@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.5.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" + integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== + +"@babel/core@7.12.9": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.12.16", "@babel/core@^7.12.3": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" + integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helpers" "^7.14.6" + "@babel/parser" "^7.14.6" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.12.15", "@babel/generator@^7.12.5", "@babel/generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" + integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== + dependencies: + "@babel/types" "^7.14.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" + integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" + integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz#d5c70e4ad13b402c95156c7a53568f504e2fb7b8" + integrity sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" + integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-replace-supers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" + integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-simple-access@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" + integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.12.5", "@babel/helpers@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" + integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.12.16", "@babel/parser@^7.12.7", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2" + integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + +"@babel/plugin-proposal-async-generator-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz#4024990e3dd74181f4f426ea657769ff49a2df39" + integrity sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.1" + +"@babel/plugin-proposal-object-rest-spread@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz#e581d5ccdfa187ea6ed73f56c6a21c1580b90fbf" + integrity sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoping@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" + integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" + integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-destructuring@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz#d32ad19ff1a6da1e861dc62720d80d9776e3bf35" + integrity sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" + integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== + dependencies: + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz#d537e8ee083ee6f6aa4f4eef9d2081d555746e4c" + integrity sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.14.5.tgz#41790d856f7c5cec82d2bcf5d0e5064d682522ed" + integrity sha512-NBqLEx1GxllIOXJInJAQbrnwwYJsV3WaMHIcOwD8rhYS0AabTWn7kHdHgPgu5RmHLU0q4DMxhAMu8ue/KampgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-display-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.5.tgz#baa92d15c4570411301a85a74c13534873885b65" + integrity sha512-07aqY1ChoPgIxsuDviptRpVkWCSbXWmzQqcgy65C6YSFOfPFvb/DX3bBRHh7pCd/PMEEYHYWUTSVkCbkVainYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-jsx-development@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af" + integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.14.5" + +"@babel/plugin-transform-react-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.5.tgz#39749f0ee1efd8a1bd729152cf5f78f1d247a44a" + integrity sha512-7RylxNeDnxc1OleDm0F5Q/BSL+whYRbOAR+bwgCxIr0L32v7UFh/pz1DLMZideAUxKT6eMoS2zQH6fyODLEi8Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/plugin-transform-react-pure-annotations@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc" + integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-runtime@^7.12.15": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz#30491dad49c6059f8f8fa5ee8896a0089e987523" + integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typescript@^7.14.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz#6e9c2d98da2507ebe0a883b100cde3c7279df36c" + integrity sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.6" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.12.16": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.5.tgz#c0c84e763661fd0e74292c3d511cb33b0c668997" + integrity sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.5" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.5" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.5" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.14.5" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.5" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.5" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.14.0" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.12.13", "@babel/preset-react@^7.12.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" + integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-react-display-name" "^7.14.5" + "@babel/plugin-transform-react-jsx" "^7.14.5" + "@babel/plugin-transform-react-jsx-development" "^7.14.5" + "@babel/plugin-transform-react-pure-annotations" "^7.14.5" + +"@babel/preset-typescript@^7.12.16": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz#aa98de119cf9852b79511f19e7f44a2d379bcce0" + integrity sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-typescript" "^7.14.5" + +"@babel/runtime-corejs3@^7.11.2", "@babel/runtime-corejs3@^7.12.13": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.6.tgz#066b966eda40481740180cb3caab861a3f208cd3" + integrity sha512-Xl8SPYtdjcMoCsIM4teyVRg7jIcgl8F2kRtoCcXuHzXswt9UxZCS6BzRo8fcnCuP6u2XtPgvyonmEPF57Kxo9Q== + dependencies: + core-js-pure "^3.14.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" + integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.12.7", "@babel/template@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.12.13", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870" + integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.14.5", "@babel/types@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" + integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + to-fast-properties "^2.0.0" + +"@braintree/sanitize-url@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd" + integrity sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg== + +"@docsearch/css@3.0.0-alpha.36": + version "3.0.0-alpha.36" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.0.0-alpha.36.tgz#0af69a86b845974d0f8cab62db0218f66b6ad2d6" + integrity sha512-zSN2SXuZPDqQaSFzYa1kOwToukqzhLHG7c66iO+/PlmWb6/RZ5cjTkG6VCJynlohRWea7AqZKWS/ptm8kM2Dmg== + +"@docsearch/react@^3.0.0-alpha.33": + version "3.0.0-alpha.36" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.0.0-alpha.36.tgz#f2dbd53ba9c389bc19aea89a3ad21782fa6b4bb5" + integrity sha512-synYZDHalvMzesFiy7kK+uoz4oTdWSTbe2cU+iiUjwFMyQ+WWjWwGVnvcvk+cjj9pRCVaZo5y5WpqNXq1j8k9Q== + dependencies: + "@algolia/autocomplete-core" "1.0.0-alpha.44" + "@algolia/autocomplete-preset-algolia" "1.0.0-alpha.44" + "@docsearch/css" "3.0.0-alpha.36" + algoliasearch "^4.0.0" + +"@docusaurus/core@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.0.tgz#05506ee02e7d40e9f4c8d7b4f918d26d3b191159" + integrity sha512-xWwpuEwFRKJmZvNGOpr/dyRDnx/psckLPsozQTg2hu3u81Wqu9gigWgYK/C2fPlEjxMcVw0/2WH+zwpbyWmF2Q== + dependencies: + "@babel/core" "^7.12.16" + "@babel/generator" "^7.12.15" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.12.15" + "@babel/preset-env" "^7.12.16" + "@babel/preset-react" "^7.12.13" + "@babel/preset-typescript" "^7.12.16" + "@babel/runtime" "^7.12.5" + "@babel/runtime-corejs3" "^7.12.13" + "@babel/traverse" "^7.12.13" + "@docusaurus/cssnano-preset" "2.0.0-beta.0" + "@docusaurus/react-loadable" "5.5.0" + "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/utils-validation" "2.0.0-beta.0" + "@endiliey/static-site-generator-webpack-plugin" "^4.0.0" + "@svgr/webpack" "^5.5.0" + autoprefixer "^10.2.5" + babel-loader "^8.2.2" + babel-plugin-dynamic-import-node "2.3.0" + boxen "^5.0.0" + chalk "^4.1.0" + chokidar "^3.5.1" + clean-css "^5.1.1" + commander "^5.1.0" + copy-webpack-plugin "^8.1.0" + core-js "^3.9.1" + css-loader "^5.1.1" + css-minimizer-webpack-plugin "^2.0.0" + cssnano "^5.0.1" + del "^6.0.0" + detect-port "^1.3.0" + eta "^1.12.1" + express "^4.17.1" + file-loader "^6.2.0" + fs-extra "^9.1.0" + github-slugger "^1.3.0" + globby "^11.0.2" + html-minifier-terser "^5.1.1" + html-tags "^3.1.0" + html-webpack-plugin "^5.2.0" + import-fresh "^3.3.0" + is-root "^2.1.0" + leven "^3.1.0" + lodash "^4.17.20" + mini-css-extract-plugin "^1.4.0" + module-alias "^2.2.2" + nprogress "^0.2.0" + postcss "^8.2.10" + postcss-loader "^5.2.0" + prompts "^2.4.0" + react-dev-utils "^11.0.1" + react-error-overlay "^6.0.9" + react-helmet "^6.1.0" + react-loadable "^5.5.0" + react-loadable-ssr-addon-v5-slorber "^1.0.1" + react-router "^5.2.0" + react-router-config "^5.1.1" + react-router-dom "^5.2.0" + resolve-pathname "^3.0.0" + rtl-detect "^1.0.2" + semver "^7.3.4" + serve-handler "^6.1.3" + shelljs "^0.8.4" + std-env "^2.2.1" + strip-ansi "^6.0.0" + terser-webpack-plugin "^5.1.1" + tslib "^2.1.0" + update-notifier "^5.1.0" + url-loader "^4.1.1" + wait-on "^5.2.1" + webpack "^5.28.0" + webpack-bundle-analyzer "^4.4.0" + webpack-dev-server "^3.11.2" + webpack-merge "^5.7.3" + webpackbar "^5.0.0-3" + +"@docusaurus/cssnano-preset@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.0.tgz#a79223479666059565d60a505bed2bbcac770384" + integrity sha512-gqQHeQCDHZDd5NaiKZwDiyg75sBCqDyAsvmFukkDAty8xE7u9IhzbOQKvCAtwseuvzu2BNN41gnJ8bz7vZzQiw== + dependencies: + cssnano-preset-advanced "^5.0.0" + postcss "^8.2.10" + postcss-sort-media-queries "^3.8.9" + +"@docusaurus/mdx-loader@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.0.tgz#7a58933994b2face62e34698db2f9c88c53c6d61" + integrity sha512-oQLS2ZeUnqw79CV37glglZpaYgFfA5Az5lT83m5tJfMUZjoK4ehG1XWBeUzWy8QQNI452yAID8jz8jihEQeCcw== + dependencies: + "@babel/parser" "^7.12.16" + "@babel/traverse" "^7.12.13" + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@mdx-js/mdx" "^1.6.21" + "@mdx-js/react" "^1.6.21" + escape-html "^1.0.3" + file-loader "^6.2.0" + fs-extra "^9.1.0" + github-slugger "^1.3.0" + gray-matter "^4.0.2" + mdast-util-to-string "^2.0.0" + remark-emoji "^2.1.0" + stringify-object "^3.3.0" + unist-util-visit "^2.0.2" + url-loader "^4.1.1" + webpack "^5.28.0" + +"@docusaurus/plugin-content-blog@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.0.tgz#ea7d3679ab252e8f0e58aaf80f1fc6001c72c755" + integrity sha512-lz63i5k/23RJ3Rk/2fIsYAoD8Wua3b5b0AbH2JoOhQu1iAIQiV8m91Z3XALBSzA3nBtAOIweNI7yzWL+JFSTvw== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/mdx-loader" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/utils-validation" "2.0.0-beta.0" + chalk "^4.1.0" + feed "^4.2.2" + fs-extra "^9.1.0" + globby "^11.0.2" + loader-utils "^2.0.0" + lodash "^4.17.20" + reading-time "^1.3.0" + remark-admonitions "^1.2.1" + tslib "^2.1.0" + webpack "^5.28.0" + +"@docusaurus/plugin-content-docs@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.0.tgz#a5a1e0e95e499eefee53e4f61aeb99ac4a669648" + integrity sha512-WdDQUh2rRCbfJswVc0vY9EaAspxgziqpVEZja8+BmQR/TZh7HuLplT6GJbiFbE4RvwM3+PwG/jHMPglYDK60kw== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/mdx-loader" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/utils-validation" "2.0.0-beta.0" + chalk "^4.1.0" + combine-promises "^1.1.0" + execa "^5.0.0" + fs-extra "^9.1.0" + globby "^11.0.2" + import-fresh "^3.2.2" + js-yaml "^4.0.0" + loader-utils "^1.2.3" + lodash "^4.17.20" + remark-admonitions "^1.2.1" + shelljs "^0.8.4" + tslib "^2.1.0" + utility-types "^3.10.0" + webpack "^5.28.0" + +"@docusaurus/plugin-content-pages@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.0.tgz#1cab3ebe0a08be74576f10c95675291bf84f848e" + integrity sha512-mk5LVVSvn+HJPKBaAs/Pceq/hTGxF2LVBvJEquuQz0NMAW3QdBWaYRRpOrL9CO8v+ygn5RuLslXsyZBsDNuhww== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/mdx-loader" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/utils-validation" "2.0.0-beta.0" + globby "^11.0.2" + lodash "^4.17.20" + minimatch "^3.0.4" + remark-admonitions "^1.2.1" + slash "^3.0.0" + tslib "^2.1.0" + webpack "^5.28.0" + +"@docusaurus/plugin-debug@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.0.tgz#bee672b8858d88bdb229d4301785ff4692ebd17f" + integrity sha512-m75sZdF8Yccxfih3qfdQg9DucMTrYBnmeTA8GNmdVaK701Ip8t50d1pDJchtu0FSEh6vzVB9C6D2YD5YgVFp8A== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + react-json-view "^1.21.1" + tslib "^2.1.0" + +"@docusaurus/plugin-google-analytics@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.0.tgz#ee287fb991202d8e9b792129dcc5542ef3ccd6c9" + integrity sha512-7lHrg1L+adc8VbiaLexa15i4fdq4MRPUTLMxRPAWz+QskhisW89Ryi2/gDmfMNqLblX84Qg2RASa+2gqO4wepw== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + +"@docusaurus/plugin-google-gtag@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.0.tgz#4836770130cf54ff2cd83affbff9644ee7293e9e" + integrity sha512-V7zaYbhAMv0jexm5H/5sAnoM1GHibcn9QQk5UWC++x1kE0KRuLDZHV+9OyvW5wr0wWFajod/b88SpUpSMF5u+g== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + +"@docusaurus/plugin-sitemap@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.0.tgz#985d4cc3af86499f616ced024ba1fab8329e601d" + integrity sha512-dvmk8Sr+6pBkiKDb7Rjdp0GeFDWPUlayoJWK3fN3g0Fno6uxFfYhNZyXJ+ObyCA7HoW5rzeBMiO+uAja19JXTg== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/utils-validation" "2.0.0-beta.0" + fs-extra "^9.1.0" + sitemap "^6.3.6" + tslib "^2.1.0" + +"@docusaurus/preset-classic@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.0.tgz#79eb4366e6b5eb7061370019127e40172432d770" + integrity sha512-cFpR0UaAeUt5qVx1bpidhlar6tiRNITIQlxP4bOVsjbxVTZhZ/cNuIz7C+2zFPCuKIflGXdTIQOrucPmd7z51Q== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/plugin-content-blog" "2.0.0-beta.0" + "@docusaurus/plugin-content-docs" "2.0.0-beta.0" + "@docusaurus/plugin-content-pages" "2.0.0-beta.0" + "@docusaurus/plugin-debug" "2.0.0-beta.0" + "@docusaurus/plugin-google-analytics" "2.0.0-beta.0" + "@docusaurus/plugin-google-gtag" "2.0.0-beta.0" + "@docusaurus/plugin-sitemap" "2.0.0-beta.0" + "@docusaurus/theme-classic" "2.0.0-beta.0" + "@docusaurus/theme-search-algolia" "2.0.0-beta.0" + +"@docusaurus/react-loadable@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.0.tgz#6d6f0c8fd9a434b62a1ab1f8645ee7bde5a9ec21" + integrity sha512-Ld/kwUE6yATIOTLq3JCsWiTa/drisajwKqBQ2Rw6IcT+sFsKfYek8F2jSH8f68AT73xX97UehduZeCSlnuCBIg== + dependencies: + prop-types "^15.6.2" + +"@docusaurus/theme-classic@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.0.tgz#0ad74264dc592590bd7d8a6f6327cb83bbabc665" + integrity sha512-cBNtwAyg3be7Gk41FazMtgyibAcfuYaGHhGHIDRsXfc/qp3RhbiGiei7tyh200QT0NgKZxiVQy/r4d0mtjC++Q== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/plugin-content-blog" "2.0.0-beta.0" + "@docusaurus/plugin-content-docs" "2.0.0-beta.0" + "@docusaurus/plugin-content-pages" "2.0.0-beta.0" + "@docusaurus/theme-common" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/utils-validation" "2.0.0-beta.0" + "@mdx-js/mdx" "^1.6.21" + "@mdx-js/react" "^1.6.21" + chalk "^4.1.0" + clsx "^1.1.1" + copy-text-to-clipboard "^3.0.0" + fs-extra "^9.1.0" + globby "^11.0.2" + infima "0.2.0-alpha.23" + lodash "^4.17.20" + parse-numeric-range "^1.2.0" + postcss "^8.2.10" + prism-react-renderer "^1.1.1" + prismjs "^1.23.0" + prop-types "^15.7.2" + react-router-dom "^5.2.0" + rtlcss "^3.1.2" + +"@docusaurus/theme-common@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.0.tgz#3674ef6482cc39efa034fd8d8b1c831588896329" + integrity sha512-2rcVmQpvbdAgnzTWuM7Bfpu+2TQm928bhlvxn226jQy7IYz8ySRlIode63HhCtpx03hpdMCkrK6HxhfEcvHjQg== + dependencies: + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/plugin-content-blog" "2.0.0-beta.0" + "@docusaurus/plugin-content-docs" "2.0.0-beta.0" + "@docusaurus/plugin-content-pages" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.0" + tslib "^2.1.0" + +"@docusaurus/theme-search-algolia@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.0.tgz#bfdee3981d8da72377b9045459950686d28a01fd" + integrity sha512-/GhgAm4yuwqTXWTsWnqpFYxpjTv+t45Wk8q/LmTVINa+A7b6jkMkch2lygagIt69/ufDm2Uw6eYhgrmF4DJqfQ== + dependencies: + "@docsearch/react" "^3.0.0-alpha.33" + "@docusaurus/core" "2.0.0-beta.0" + "@docusaurus/theme-common" "2.0.0-beta.0" + "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/utils-validation" "2.0.0-beta.0" + algoliasearch "^4.8.4" + algoliasearch-helper "^3.3.4" + clsx "^1.1.1" + eta "^1.12.1" + lodash "^4.17.20" + +"@docusaurus/types@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.0.tgz#f473f417bdf690cfd52611ddf6d89ff939d1f2a4" + integrity sha512-z9PI+GbtYwqTXnkX4/a/A6psDX2p8N2uWlN2f4ifrm8WY4WhR9yiTOh0uo0pIqqaUQQvkEq3o5hOXuXLECEs+w== + dependencies: + commander "^5.1.0" + joi "^17.4.0" + querystring "0.2.0" + webpack "^5.28.0" + webpack-merge "^5.7.3" + +"@docusaurus/utils-validation@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.0.tgz#3e6491c269a397fed29717a1cb69109df9483461" + integrity sha512-ELl/FVJ6xBz35TisZ1NmJhjbiVXDeU++K531PEFPCPmwnQPh7S6hZXdPnR71/Kc3BmuN9X2ZkwGOqNKVfys2Bg== + dependencies: + "@docusaurus/utils" "2.0.0-beta.0" + chalk "^4.1.0" + joi "^17.4.0" + tslib "^2.1.0" + +"@docusaurus/utils@2.0.0-beta.0": + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.0.tgz#6f2690fd6fcd942f0d690db1dffb96742762deb3" + integrity sha512-bvrT1EQu0maavr0Hb/lke9jmpzgVL/9tn5VQtbyahf472eJFY0bQDExllDrHK+l784SUvucqX0iaQeg0q6ySUw== + dependencies: + "@docusaurus/types" "2.0.0-beta.0" + "@types/github-slugger" "^1.3.0" + chalk "^4.1.0" + escape-string-regexp "^4.0.0" + fs-extra "^9.1.0" + gray-matter "^4.0.2" + lodash "^4.17.20" + resolve-pathname "^3.0.0" + tslib "^2.1.0" + +"@endiliey/static-site-generator-webpack-plugin@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz#94bfe58fd83aeda355de797fcb5112adaca3a6b1" + integrity sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng== + dependencies: + bluebird "^3.7.1" + cheerio "^0.22.0" + eval "^0.1.4" + url "^0.11.0" + webpack-sources "^1.4.3" + +"@hapi/hoek@^9.0.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131" + integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug== + +"@hapi/topo@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" + integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@mdx-js/mdx@^1.6.21": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" + integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== + dependencies: + "@babel/core" "7.12.9" + "@babel/plugin-syntax-jsx" "7.12.1" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@mdx-js/util" "1.6.22" + babel-plugin-apply-mdx-type-prop "1.6.22" + babel-plugin-extract-import-names "1.6.22" + camelcase-css "2.0.1" + detab "2.0.4" + hast-util-raw "6.0.1" + lodash.uniq "4.5.0" + mdast-util-to-hast "10.0.1" + remark-footnotes "2.0.0" + remark-mdx "1.6.22" + remark-parse "8.0.3" + remark-squeeze-paragraphs "4.0.0" + style-to-object "0.3.0" + unified "9.2.0" + unist-builder "2.0.3" + unist-util-visit "2.0.3" + +"@mdx-js/react@^1.6.21": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" + integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== + +"@mdx-js/util@1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" + integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2" + integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@polka/url@^1.0.0-next.15": + version "1.0.0-next.15" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" + integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== + +"@sideway/address@^4.1.0": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.2.tgz#811b84333a335739d3969cfc434736268170cad1" + integrity sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@trysound/sax@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" + integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== + +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.2.13" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.13.tgz#e0ca7219ba5ded402062ad6f926d491ebb29dd53" + integrity sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "0.0.48" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" + integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== + +"@types/estree@^0.0.47": + version "0.0.47" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" + integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== + +"@types/github-slugger@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@types/github-slugger/-/github-slugger-1.3.0.tgz#16ab393b30d8ae2a111ac748a015ac05a1fc5524" + integrity sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g== + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/hast@^2.0.0": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" + integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q== + dependencies: + "@types/unist" "*" + +"@types/html-minifier-terser@^5.0.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" + integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== + +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + +"@types/mdast@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== + dependencies: + "@types/unist" "*" + +"@types/minimatch@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + +"@types/node@*": + version "15.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" + integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== + +"@types/node@^14.14.28": + version "14.17.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.3.tgz#6d327abaa4be34a74e421ed6409a0ae2f47f4c3d" + integrity sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + +"@types/sax@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.1.tgz#e0248be936ece791a82db1a57f3fb5f7c87e8172" + integrity sha512-dqYdvN7Sbw8QT/0Ci5rhjE4/iCMJEM0Y9rHpCu+gGXD9Lwbz28t6HI2yegsB6BoV1sShRMU6lAmAcgRjmFy7LA== + dependencies: + "@types/node" "*" + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + +"@webassemblyjs/ast@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" + integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + +"@webassemblyjs/floating-point-hex-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" + integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== + +"@webassemblyjs/helper-api-error@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" + integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== + +"@webassemblyjs/helper-buffer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" + integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== + +"@webassemblyjs/helper-numbers@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" + integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" + integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== + +"@webassemblyjs/helper-wasm-section@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" + integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + +"@webassemblyjs/ieee754@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" + integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" + integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" + integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== + +"@webassemblyjs/wasm-edit@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" + integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-wasm-section" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-opt" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + "@webassemblyjs/wast-printer" "1.11.0" + +"@webassemblyjs/wasm-gen@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" + integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + +"@webassemblyjs/wasm-opt@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" + integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + +"@webassemblyjs/wasm-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" + integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + +"@webassemblyjs/wast-printer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" + integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-walk@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.0.tgz#d3c6a9faf00987a5e2b9bdb506c2aa76cd707f83" + integrity sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg== + +acorn@^8.0.4, acorn@^8.2.1: + version "8.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.0.tgz#af53266e698d7cffa416714b503066a82221be60" + integrity sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w== + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +algoliasearch-helper@^3.3.4: + version "3.5.3" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.5.3.tgz#fbf8b328bc103efdefde59a7d25eaffe85b2490f" + integrity sha512-DtSlOKAJ6TGkQD6u58g6/ABdMmHf3pAj6xVL5hJF+D4z9ldDRf/f5v6puNIxGOlJRwGVvFGyz34beYNqhLDUbQ== + dependencies: + events "^1.1.1" + +algoliasearch@^4.0.0, algoliasearch@^4.8.4: + version "4.9.3" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.9.3.tgz#b22ef0ae0450304cdf5264369a29cefa71ea2b30" + integrity sha512-VLl9pYXhVB397xTW369sy13qw3m1hHzCfj9zSdeDDYVwTxHiiok/QvhPKAMIzjqyUoY07O8j+941UxYZjugsMQ== + dependencies: + "@algolia/cache-browser-local-storage" "4.9.3" + "@algolia/cache-common" "4.9.3" + "@algolia/cache-in-memory" "4.9.3" + "@algolia/client-account" "4.9.3" + "@algolia/client-analytics" "4.9.3" + "@algolia/client-common" "4.9.3" + "@algolia/client-recommendation" "4.9.3" + "@algolia/client-search" "4.9.3" + "@algolia/logger-common" "4.9.3" + "@algolia/logger-console" "4.9.3" + "@algolia/requester-browser-xhr" "4.9.3" + "@algolia/requester-common" "4.9.3" + "@algolia/requester-node-http" "4.9.3" + "@algolia/transporter" "4.9.3" + +alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.0.tgz#a20e2bb5710e82950a516b3f933fee5ed478be90" + integrity sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^10.2.0, autoprefixer@^10.2.5: + version "10.2.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.6.tgz#aadd9ec34e1c98d403e01950038049f0eb252949" + integrity sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg== + dependencies: + browserslist "^4.16.6" + caniuse-lite "^1.0.30001230" + colorette "^1.2.2" + fraction.js "^4.1.1" + normalize-range "^0.1.2" + postcss-value-parser "^4.1.0" + +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + +babel-loader@^8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-apply-mdx-type-prop@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" + integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + "@mdx-js/util" "1.6.22" + +babel-plugin-dynamic-import-node@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-extract-import-names@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" + integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" + integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base16@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" + integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= + +base64-arraybuffer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" + integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bluebird@^3.7.1: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" + integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== + dependencies: + caniuse-lite "^1.0.30001125" + electron-to-chromium "^1.3.564" + escalade "^3.0.2" + node-releases "^1.1.61" + +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + +btoa@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" + integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001230: + version "1.0.30001237" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz#4b7783661515b8e7151fc6376cfd97f0e427b9e5" + integrity sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw== + +ccount@^1.0.0, ccount@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +cheerio@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@^4.1.6, clean-css@^4.2.1, clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +clean-css@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.1.2.tgz#6ea0da7286b4ddc2469a1b776e2461a5007eed54" + integrity sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +clipboard@^2.0.0: + version "2.0.8" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" + integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colord@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.1.tgz#1e7fb1f9fa1cf74f42c58cb9c20320bab8435aa0" + integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== + +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +combine-promises@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.1.0.tgz#72db90743c0ca7aab7d0d8d2052fd7b0f674de71" + integrity sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg== + +combined-stream@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + +commander@2, commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +consola@^2.15.0: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-text-to-clipboard@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz#8cbf8f90e0a47f12e4a24743736265d157bce69c" + integrity sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q== + +copy-webpack-plugin@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz#3f697e162764925c2f0d235f380676125508fd26" + integrity sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ== + dependencies: + fast-glob "^3.2.5" + glob-parent "^5.1.1" + globby "^11.0.3" + normalize-path "^3.0.0" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + +core-js-compat@^3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5" + integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A== + dependencies: + browserslist "^4.16.6" + semver "7.0.0" + +core-js-pure@^3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.14.0.tgz#72bcfacba74a65ffce04bf94ae91d966e80ee553" + integrity sha512-YVh+LN2FgNU0odThzm61BsdkwrbrchumFq3oztnE9vTKC4KS2fvnPmcx8t6jnqAyOTCTF4ZSiuK8Qhh7SNcL4g== + +core-js@^3.9.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c" + integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA== + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cross-fetch@^3.0.4, cross-fetch@^3.0.6: + version "3.1.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" + integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== + dependencies: + node-fetch "2.6.1" + +cross-spawn@7.0.3, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-b64-images@~0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/css-b64-images/-/css-b64-images-0.2.5.tgz#42005d83204b2b4a5d93b6b1a5644133b5927a02" + integrity sha1-QgBdgyBLK0pdk7axpWRBM7WSegI= + +css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-color-names@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" + integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== + +css-declaration-sorter@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz#9dfd8ea0df4cc7846827876fafb52314890c21a9" + integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw== + dependencies: + timsort "^0.3.0" + +css-loader@^5.1.1: + version "5.2.6" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" + integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + +css-minimizer-webpack-plugin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz#3c42f6624ed4cf4780dd963e23ee649e5a25c1a8" + integrity sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw== + dependencies: + cssnano "^5.0.0" + jest-worker "^26.3.0" + p-limit "^3.0.2" + postcss "^8.2.9" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-advanced@^5.0.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.1.3.tgz#a2c6cf2fe39108b81e88810e3c399d1c0fe030ea" + integrity sha512-pS4+Q2Hoo/FevZs2JqA2BG8Vn5o5VeXgj+z6kGndKTq3RFYvlKeJ1ZPnLXo9zyYKwmSqWW0rWqtGxxmigIte0Q== + dependencies: + autoprefixer "^10.2.0" + cssnano-preset-default "^5.1.3" + postcss-discard-unused "^5.0.1" + postcss-merge-idents "^5.0.1" + postcss-reduce-idents "^5.0.1" + postcss-zindex "^5.0.1" + +cssnano-preset-default@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz#caa54183a8c8df03124a9e23f374ab89df5a9a99" + integrity sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.2.0" + postcss-convert-values "^5.0.1" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.2" + postcss-merge-rules "^5.0.2" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.1" + postcss-minify-params "^5.0.1" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.2" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.2" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.2" + postcss-unique-selectors "^5.0.1" + +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== + +cssnano@^5.0.0, cssnano@^5.0.1: + version "5.0.6" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.6.tgz#2a91ad34c6521ae31eab3da9c90108ea3093535d" + integrity sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw== + dependencies: + cosmiconfig "^7.0.0" + cssnano-preset-default "^5.1.3" + is-resolvable "^1.1.0" + +csso@^4.0.2, csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-axis@1: + version "1.0.12" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" + integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== + +d3-brush@1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" + integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA== + dependencies: + d3-dispatch "1" + d3-drag "1" + d3-interpolate "1" + d3-selection "1" + d3-transition "1" + +d3-chord@1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" + integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== + dependencies: + d3-array "1" + d3-path "1" + +d3-collection@1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" + integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== + +d3-color@1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" + integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== + +d3-contour@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" + integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== + dependencies: + d3-array "^1.1.1" + +d3-dispatch@1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" + integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== + +d3-drag@1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" + integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== + dependencies: + d3-dispatch "1" + d3-selection "1" + +d3-dsv@1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" + integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== + dependencies: + commander "2" + iconv-lite "0.4" + rw "1" + +d3-ease@1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" + integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== + +d3-fetch@1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7" + integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA== + dependencies: + d3-dsv "1" + +d3-force@1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" + integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== + dependencies: + d3-collection "1" + d3-dispatch "1" + d3-quadtree "1" + d3-timer "1" + +d3-format@1: + version "1.4.5" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" + integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== + +d3-geo@1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" + integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== + dependencies: + d3-array "1" + +d3-hierarchy@1: + version "1.1.9" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== + +d3-interpolate@1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" + integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== + dependencies: + d3-color "1" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-polygon@1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" + integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== + +d3-quadtree@1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" + integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== + +d3-random@1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" + integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== + +d3-scale-chromatic@1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" + integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== + dependencies: + d3-color "1" + d3-interpolate "1" + +d3-scale@2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" + integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== + dependencies: + d3-array "^1.2.0" + d3-collection "1" + d3-format "1" + d3-interpolate "1" + d3-time "1" + d3-time-format "2" + +d3-selection@1, d3-selection@^1.1.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" + integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== + +d3-shape@1: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +d3-time-format@2: + version "2.3.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" + integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== + dependencies: + d3-time "1" + +d3-time@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" + integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== + +d3-timer@1: + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== + +d3-transition@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" + integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== + dependencies: + d3-color "1" + d3-dispatch "1" + d3-ease "1" + d3-interpolate "1" + d3-selection "^1.1.0" + d3-timer "1" + +d3-voronoi@1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" + integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== + +d3-zoom@1: + version "1.8.3" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" + integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== + dependencies: + d3-dispatch "1" + d3-drag "1" + d3-interpolate "1" + d3-selection "1" + d3-transition "1" + +d3@^5.14, d3@^5.7.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" + integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== + dependencies: + d3-array "1" + d3-axis "1" + d3-brush "1" + d3-chord "1" + d3-collection "1" + d3-color "1" + d3-contour "1" + d3-dispatch "1" + d3-drag "1" + d3-dsv "1" + d3-ease "1" + d3-fetch "1" + d3-force "1" + d3-format "1" + d3-geo "1" + d3-hierarchy "1" + d3-interpolate "1" + d3-path "1" + d3-polygon "1" + d3-quadtree "1" + d3-random "1" + d3-scale "2" + d3-scale-chromatic "1" + d3-selection "1" + d3-shape "1" + d3-time "1" + d3-time-format "2" + d3-timer "1" + d3-transition "1" + d3-voronoi "1" + d3-zoom "1" + +dagre-d3@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29" + integrity sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ== + dependencies: + d3 "^5.14" + dagre "^0.8.5" + graphlib "^2.1.8" + lodash "^4.17.15" + +dagre@^0.8.4, dagre@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" + integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== + dependencies: + graphlib "^2.1.8" + lodash "^4.17.15" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@^0.6.0, deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +del@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" + integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detab@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" + integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== + dependencies: + repeat-string "^1.5.4" + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.4.3, domutils@^2.5.2, domutils@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1, duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.723: + version "1.3.752" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09" + integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A== + +"emoji-regex@>=6.0.0 <=6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" + integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emoticon@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" + integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entity-decode@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/entity-decode/-/entity-decode-2.0.2.tgz#e4f807e52c3294246e9347d1f2b02b07fd5f92e7" + integrity sha512-5CCY/3ci4MC1m2jlumNjWd7VBFt4VfFnmSqSNmVcXq4gxM3Vmarxtt+SvmBnzwLS669MWdVuXboNVj1qN2esVg== + dependencies: + he "^1.1.1" + +errno@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-module-lexer@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" + integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.0.2, escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eta@^1.12.1: + version "1.12.2" + resolved "https://registry.yarnpkg.com/eta/-/eta-1.12.2.tgz#ac4425d4f9478a8b4110c7d02c94f6d382cac517" + integrity sha512-Z05sK2DRWAfBhG/2cwAOWuMoQIYaVYJCQrz2g2O/ekUjzWHNBv9L1pnblVDoDkKSb/AZ5tWZ0N/v4iaIU4+HjA== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eval@^0.1.4: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.6.tgz#9620d7d8c85515e97e6b47c5814f46ae381cb3cc" + integrity sha512-o0XUw+5OGkXw4pJZzQoXUk+H87DHuC+7ZE//oSrRGtatTmr12oTnLfg6QOq9DyTt0c/p4TwzgmkKrBzWTSizyQ== + dependencies: + require-like ">= 0.1.1" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== + dependencies: + original "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1, fast-glob@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-patch@^3.0.0-1: + version "3.0.0-1" + resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz#4c68f2e7acfbab6d29d1719c44be51899c93dabb" + integrity sha512-6pdFb07cknxvPzCeLsFHStEy+MysPJPgZQ9LbQ/2O67unQF93SNqfdSqnPPl71YMHX+AD8gbl7iuoGFzHEdDuw== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= + dependencies: + punycode "^1.3.2" + +fastq@^1.6.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" + integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fbemitter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" + integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== + dependencies: + fbjs "^3.0.0" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" + integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== + dependencies: + cross-fetch "^3.0.4" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" + integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@4.1.0, find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flux@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.1.tgz#7843502b02841d4aaa534af0b373034a1f75ee5c" + integrity sha512-emk4RCvJ8RzNP2lNpphKnG7r18q8elDYNAPx7xn+bDeOIo9FFfxEfIQ2y6YbQNmnsGD3nH1noxtLE64Puz1bRQ== + dependencies: + fbemitter "^3.0.0" + fbjs "^3.0.0" + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +fork-ts-checker-webpack-plugin@4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" + integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@^2.3.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.1.tgz#ac4e520473dae67012d618aab91eda09bcb400ff" + integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +github-slugger@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" + integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== + dependencies: + emoji-regex ">=6.0.0 <=6.1.1" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.3: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^11.0.1, globby@^11.0.2, globby@^11.0.3: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +graphlib@^2.1.7, graphlib@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" + integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== + dependencies: + lodash "^4.17.15" + +gray-matter@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz#3089dc0ee2ccf6ec8bc416919b51a54a589e097c" + integrity sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA== + dependencies: + ccount "^1.0.3" + hastscript "^5.0.0" + property-information "^5.0.0" + web-namespaces "^1.1.2" + xtend "^4.0.1" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hast-util-raw@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" + integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hastscript@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" + integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +he@^1.1.1, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-minifier@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" + integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== + dependencies: + camel-case "^3.0.0" + clean-css "^4.2.1" + commander "^2.19.0" + he "^1.2.0" + param-case "^2.1.1" + relateurl "^0.2.7" + uglify-js "^3.5.1" + +html-tags@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + +html-webpack-plugin@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz#8797327548e3de438e3494e0c6d06f181a7f20d1" + integrity sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + html-minifier-terser "^5.0.1" + lodash "^4.17.20" + pretty-error "^2.1.1" + tapable "^2.0.0" + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4, iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immer@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" + integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== + +import-fresh@^3.2.1, import-fresh@^3.2.2, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infima@0.2.0-alpha.23: + version "0.2.0-alpha.23" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.23.tgz#2c17b473784ae8244fd985f126f9c27a49b24523" + integrity sha512-V0RTjB1otjpH3E2asbydx3gz7ovdSJsuV7r9JTdBggqRilnelTJUcXxLawBQQKsjQi5qPcRTjxnlaV8xyyKhhw== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + dependencies: + call-bind "^1.0.2" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number-object@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4, is-regex@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.2" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-root@2.1.0, is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isomorphic-form-data@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec" + integrity sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg== + dependencies: + form-data "^2.3.2" + +jest-worker@^26.3.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05" + integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +joi@^17.3.0, joi@^17.4.0: + version "17.4.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.0.tgz#b5c2277c8519e016316e49ababd41a1908d9ef20" + integrity sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.0" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1, js-yaml@^3.14.0: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json3@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +khroma@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.4.1.tgz#ad6a5b6a972befc5112ce5129887a1a83af2c003" + integrity sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q== + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +lit-element@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-2.5.1.tgz#3fa74b121a6cd22902409ae3859b7847d01aa6b6" + integrity sha512-ogu7PiJTA33bEK0xGu1dmaX5vhcRjBXCFexPja0e7P7jqLhTpNKYRPmE+GmiCaRVAbiQKGkUgkh/i6+bh++dPQ== + dependencies: + lit-html "^1.1.1" + +lit-html@1.4.1, lit-html@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.4.1.tgz#0c6f3ee4ad4eb610a49831787f0478ad8e9ae5e0" + integrity sha512-B9btcSgPYb1q4oSOb/PrOT6Z/H+r6xuNzfH4lFli/AWhYwdtrgQkQWBbIc6mdnf6E2IL3gDXdkkqNktpU0OZQA== + +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.curry@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.flow@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + +lodash.uniq@4.5.0, lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loglevel@^1.6.8: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + +marked@^2.0.6: + version "2.1.1" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.1.1.tgz#b7c27f520fc4de0ddd049d9b4be3b04e06314923" + integrity sha512-5XFS69o9CzDpQDSpUYC+AN2xvq8yl1EGa5SG/GI1hP78/uTeo3PDfiDNmsUyiahpyhToDDJhQk7fNtJsga+KVw== + +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-heading-range@^2.0.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/mdast-util-heading-range/-/mdast-util-heading-range-2.1.5.tgz#9a8e07bd46d07d40ad1596b0b6ab8535337725c3" + integrity sha512-jXbFD0C+MfRkwsaze+btzG9CmVrxnc5kpcJLtx3SvSlPWnNdGMlDRHKDB9/TIPEq9nRHnkixppT8yvaUJ5agJg== + dependencies: + mdast-util-to-string "^1.0.0" + +mdast-util-to-hast@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" + integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" + integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +mermaid@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.10.2.tgz#e039df2e42faba08743f167fff85bdccff241f76" + integrity sha512-Za5MrbAOMbEsyY4ONgGjfYz06sbwF1iNGRzp1sQqpOtvXxjxGu/J1jRJ8QyE9kD/D9zj1/KlRrYegWEvA7eZ5Q== + dependencies: + "@braintree/sanitize-url" "^3.1.0" + d3 "^5.7.0" + dagre "^0.8.4" + dagre-d3 "^0.6.4" + entity-decode "^2.0.2" + graphlib "^2.1.7" + he "^1.2.0" + khroma "^1.1.0" + minify "^4.1.1" + moment-mini "^2.22.1" + stylis "^3.5.2" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.48.0, "mime-db@>= 1.43.0 < 2": + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== + dependencies: + mime-db "1.48.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.3.1, mime@^2.4.4: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + +mini-css-extract-plugin@^1.4.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz#b4db2525af2624899ed64a23b0016e0036411893" + integrity sha512-nPFKI7NSy6uONUo9yn2hIfb9vyYvkFu95qki0e21DQ9uaqNKDP15DGpK0KnV6wDroWxPHtExrdEwx/yDQ8nVRw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minify@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/minify/-/minify-4.1.3.tgz#58467922d14303f55a3a28fa79641371955b8fbd" + integrity sha512-ykuscavxivSmVpcCzsXmsVTukWYLUUtPhHj0w2ILvHDGqC+hsuTCihBn9+PJBd58JNvWTNg9132J9nrrI2anzA== + dependencies: + clean-css "^4.1.6" + css-b64-images "~0.2.5" + debug "^4.1.0" + html-minifier "^4.0.0" + terser "^4.0.0" + try-catch "^2.0.0" + try-to-catch "^1.0.2" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +module-alias@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.2.tgz#151cdcecc24e25739ff0aa6e51e1c5716974c0e0" + integrity sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q== + +moment-mini@^2.22.1: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.24.0.tgz#fa68d98f7fe93ae65bf1262f6abb5fb6983d8d18" + integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-emoji@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + dependencies: + lodash.toarray "^4.4.0" + +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-releases@^1.1.61, node-releases@^1.1.71: + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.0.1.tgz#a4f27f58cf8c7b287b440b8a8201f42d0b00d256" + integrity sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.10.3, object-inspect@^1.9.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +param-case@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-numeric-range@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.2.0.tgz#aa70b00f29624ed13e9f943e9461b306e386b0fa" + integrity sha512-1q2tXpAOplPxcl8vrIGPWz1dJxxfmdRkCFcpxxMBerDnGuuHalOWF/xj9L8Nn5XoTUoB/6F0CeQBp2fMgkOYFg== + +parse5@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@1.0.2, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== + dependencies: + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.0.tgz#2b620b88c0ff19683f3349f4cf9e24ebdafb2c88" + integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-convert-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" + integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== + +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== + +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== + +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== + +postcss-discard-unused@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-5.0.1.tgz#63e35a74a154912f93d4e75a1e6ff3cc146f934b" + integrity sha512-tD6xR/xyZTwfhKYRw0ylfCY8wbfhrjpKAMnDKRTLMy2fNW5hl0hoV6ap5vo2JdCkuHkP3CHw72beO4Y8pzFdww== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-loader@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.3.0.tgz#1657f869e48d4fdb018a40771c235e499ee26244" + integrity sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.4" + semver "^7.3.4" + +postcss-merge-idents@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-5.0.1.tgz#6b5856fc28f2571f28ecce49effb9b0e64be9437" + integrity sha512-xu8ueVU0RszbI2gKkxR6mluupsOSSLvt8q4gA2fcKFkA+x6SlH3cb4cFHpDvcRCNFbUmCR/VUub+Y6zPOjPx+Q== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-merge-longhand@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" + integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== + dependencies: + css-color-names "^1.0.1" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" + +postcss-merge-rules@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" + integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" + vendors "^1.0.3" + +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-minify-gradients@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" + integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== + dependencies: + cssnano-utils "^2.0.1" + is-color-stop "^1.1.0" + postcss-value-parser "^4.1.0" + +postcss-minify-params@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" + integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== + +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-url@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz#ddcdfb7cede1270740cf3e4dfc6008bd96abc763" + integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ== + dependencies: + is-absolute-url "^3.0.3" + normalize-url "^6.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-ordered-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" + integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-reduce-idents@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-5.0.1.tgz#99b49ce8ee6f9c179447671cc9693e198e877bb7" + integrity sha512-6Rw8iIVFbqtaZExgWK1rpVgP7DPFRPh0DDFZxJ/ADNqPiH10sPCoq5tgo6kLiTyfh9sxjKYjXdc8udLEcPOezg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-reduce-initial@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" + integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== + dependencies: + browserslist "^4.16.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-sort-media-queries@^3.8.9: + version "3.11.12" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-3.11.12.tgz#bfc449fadedfe2765ca4566c30b24694635ad182" + integrity sha512-PNhEOWR/btZ0bNNRqqdW4TWxBPQ1mu2I6/Zpco80vBUDSyEjtduUAorY0Vm68rvDlGea3+sgEnQ36iQ1A/gG8Q== + dependencies: + sort-css-media-queries "1.5.4" + +postcss-svgo@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.2.tgz#bc73c4ea4c5a80fbd4b45e29042c34ceffb9257f" + integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.3.0" + +postcss-unique-selectors@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" + integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + uniqs "^2.0.0" + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss-zindex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.0.1.tgz#c585724beb69d356af8c7e68847b28d6298ece03" + integrity sha512-nwgtJJys+XmmSGoYCcgkf/VczP8Mp/0OfSv3v0+fw0uABY4yxw+eFs0Xp9nAZHIKnS5j+e9ywQ+RD+ONyvl5pA== + +postcss@^8.2.10, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.2.9: + version "8.3.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" + integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +pretty-error@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89" + integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== + +prismjs@^1.23.0: + version "1.23.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" + integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== + optionalDependencies: + clipboard "^2.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prompts@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prompts@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +property-information@^5.0.0, property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +pure-color@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" + integrity sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4= + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.9.4: + version "6.10.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" + integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + dependencies: + side-channel "^1.0.4" + +querystring-browser@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6" + integrity sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +"rapidoc@git+https://github.com/mrin9/RapiDoc.git#50518f69ff8eaac0686032aa3894f3402abe3ab2": + version "9.0.1-beta" + resolved "git+https://github.com/mrin9/RapiDoc.git#50518f69ff8eaac0686032aa3894f3402abe3ab2" + dependencies: + "@apitools/openapi-parser" "^0.0.8" + base64-arraybuffer "^0.2.0" + lit-element "2.5.1" + lit-html "1.4.1" + marked "^2.0.6" + prismjs "^1.23.0" + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-base16-styling@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" + integrity sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw= + dependencies: + base16 "^1.0.0" + lodash.curry "^4.0.1" + lodash.flow "^3.3.0" + pure-color "^1.2.0" + +react-dev-utils@^11.0.1: + version "11.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" + integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== + dependencies: + "@babel/code-frame" "7.10.4" + address "1.1.2" + browserslist "4.14.2" + chalk "2.4.2" + cross-spawn "7.0.3" + detect-port-alt "1.1.6" + escape-string-regexp "2.0.0" + filesize "6.1.0" + find-up "4.1.0" + fork-ts-checker-webpack-plugin "4.1.6" + global-modules "2.0.0" + globby "11.0.1" + gzip-size "5.1.1" + immer "8.0.1" + is-root "2.1.0" + loader-utils "2.0.0" + open "^7.0.2" + pkg-up "3.1.0" + prompts "2.4.0" + react-error-overlay "^6.0.9" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + strip-ansi "6.0.0" + text-table "0.2.0" + +react-dom@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-error-overlay@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" + integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== + +react-fast-compare@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== + +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + +react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-json-view@^1.21.1: + version "1.21.3" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" + integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== + dependencies: + flux "^4.0.1" + react-base16-styling "^0.6.0" + react-lifecycles-compat "^3.0.4" + react-textarea-autosize "^8.3.2" + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-loadable-ssr-addon-v5-slorber@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" + integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== + dependencies: + "@babel/runtime" "^7.10.3" + +react-loadable@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/react-loadable/-/react-loadable-5.5.0.tgz#582251679d3da86c32aae2c8e689c59f1196d8c4" + integrity sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg== + dependencies: + prop-types "^15.5.0" + +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.2.0, react-router@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-side-effect@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" + integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== + +react-textarea-autosize@^8.3.2: + version "8.3.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz#f70913945369da453fd554c168f6baacd1fa04d8" + integrity sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ== + dependencies: + "@babel/runtime" "^7.10.2" + use-composed-ref "^1.0.0" + use-latest "^1.0.0" + +react@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +readable-stream@^2.0.1, readable-stream@^2.0.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reading-time@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.3.0.tgz#d13e74431589a4a9038669f24d5acbc08bbb015d" + integrity sha512-RJ8J5O6UvrclfZpcPSPuKusrdRfoY7uXXoYOOdeswZNtSkQaewT3919yz6RyloDBR+iwcUyz5zGOUjhgvfuv3g== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== + dependencies: + jsesc "~0.5.0" + +rehype-parse@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.2.tgz#aeb3fdd68085f9f796f1d3137ae2b85a98406964" + integrity sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug== + dependencies: + hast-util-from-parse5 "^5.0.0" + parse5 "^5.0.0" + xtend "^4.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remark-admonitions@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/remark-admonitions/-/remark-admonitions-1.2.1.tgz#87caa1a442aa7b4c0cafa04798ed58a342307870" + integrity sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow== + dependencies: + rehype-parse "^6.0.2" + unified "^8.4.2" + unist-util-visit "^2.0.1" + +remark-collapse@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/remark-collapse/-/remark-collapse-0.1.2.tgz#7ebf0b0e0932f39a8599a754906e0a097906070b" + integrity sha1-fr8LDgky85qFmadUkG4KCXkGBws= + dependencies: + mdast-util-heading-range "^2.0.1" + mdast-util-to-string "^1.0.2" + +remark-emoji@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.2.0.tgz#1c702090a1525da5b80e15a8f963ef2c8236cac7" + integrity sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w== + dependencies: + emoticon "^3.2.0" + node-emoji "^1.10.0" + unist-util-visit "^2.0.3" + +remark-footnotes@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" + integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== + +remark-mdx@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" + integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== + dependencies: + "@babel/core" "7.12.9" + "@babel/helper-plugin-utils" "7.10.4" + "@babel/plugin-proposal-object-rest-spread" "7.12.1" + "@babel/plugin-syntax-jsx" "7.12.1" + "@mdx-js/util" "1.6.22" + is-alphabetical "1.0.4" + remark-parse "8.0.3" + unified "9.2.0" + +remark-parse@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" + integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.5.4, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6, resolve@^1.14.2, resolve@^1.3.2: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rtl-detect@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.3.tgz#42145b9a4f9cf0b94c4542aba90d57f0d18559bf" + integrity sha512-2sMcZO60tL9YDEFe24gqddg3hJ+xSmJFN8IExcQUxeHxQzydQrN6GHPL+yAWgzItXSI7es53hcZC9pJneuZDKA== + +rtlcss@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.2.0.tgz#2139734ac45302891182f23f13448c51c07fccaf" + integrity sha512-nV3UmaTmA5TkP2dYOR16ULu6FkMOqZRbiXbFZnmWIN9coPfx3gin31VGOPV7vrVMPjNds7pCS2UYy0mwQUdFCQ== + dependencies: + chalk "^4.1.0" + find-up "^5.0.0" + mkdirp "^1.0.4" + postcss "^8.2.4" + strip-json-comments "^3.1.1" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= + +rxjs@^6.6.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +selfsigned@^1.10.8: + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + dependencies: + node-forge "^0.10.0" + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serve-handler@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" + integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.0.4" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shelljs@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sirv@^1.0.7: + version "1.0.12" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" + integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== + dependencies: + "@polka/url" "^1.0.0-next.15" + mime "^2.3.1" + totalist "^1.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^6.3.6: + version "6.4.0" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-6.4.0.tgz#b4bc4edf36de742405a7572bc3e467ba484b852e" + integrity sha512-DoPKNc2/apQZTUnfiOONWctwq7s6dZVspxAZe2VPMNtoqNq7HgXRvlRnbIpKjf+8+piQdWncwcy+YhhTGY5USQ== + dependencies: + "@types/node" "^14.14.28" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== + dependencies: + debug "^3.2.6" + eventsource "^1.0.7" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.5.1" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +sort-css-media-queries@1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-1.5.4.tgz#24182b12002a13d01ba943ddf74f5098d7c244ce" + integrity sha512-YP5W/h4Sid/YP7Lp87ejJ5jP13/Mtqt2vx33XyhO+IAugKlufRPbOrPlIiEUuxmpNBSBd3EeeQpFhdu3RfI2Ag== + +source-list-map@^2.0.0, source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +std-env@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.3.0.tgz#66d4a4a4d5224242ed8e43f5d65cfa9095216eee" + integrity sha512-4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw== + dependencies: + ci-info "^3.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== + dependencies: + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" + +stylis@^3.5.2: + version "3.5.4" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" + integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +svgo@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" + integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== + dependencies: + "@trysound/sax" "0.1.1" + chalk "^4.1.0" + commander "^7.1.0" + css-select "^3.1.2" + css-tree "^1.1.2" + csso "^4.2.0" + stable "^0.1.8" + +swagger-client@^3.13.2: + version "3.13.5" + resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.13.5.tgz#39528db74007a2b3c946fa5392ee2d1a64aa9414" + integrity sha512-n4+yS0+jvx7PNq95TulWhjN+v9Cz6GRkdloF3LL0JV2eQ8E8a3a+0/XEppsYGIzb7i2/h7ZMcM5hIxIr7Gr1RA== + dependencies: + "@babel/runtime-corejs3" "^7.11.2" + btoa "^1.2.1" + buffer "^6.0.3" + cookie "~0.4.1" + cross-fetch "^3.0.6" + deep-extend "~0.6.0" + fast-json-patch "^3.0.0-1" + isomorphic-form-data "~2.0.0" + js-yaml "^3.14.0" + lodash "^4.17.19" + qs "^6.9.4" + querystring-browser "^1.0.4" + traverse "~0.6.6" + url "~0.11.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +terser-webpack-plugin@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.3.tgz#30033e955ca28b55664f1e4b30a1347e61aa23af" + integrity sha512-cxGbMqr6+A2hrIB5ehFIF+F/iST5ZOxvOmy9zih9ySbP1C2oEWQSOUS+2SNBTjzx5xLKO4xnod9eywdfq1Nb9A== + dependencies: + jest-worker "^27.0.2" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.7.0" + +terser@^4.0.0, terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-invariant@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +traverse@~0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + +trim-trailing-lines@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +try-catch@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/try-catch/-/try-catch-2.0.1.tgz#a35d354187c422f291a0bcfd9eb77e3a4f90c1e5" + integrity sha512-LsOrmObN/2WdM+y2xG+t16vhYrQsnV8wftXIcIOWZhQcBJvKGYuamJGwnU98A7Jxs2oZNkJztXlphEOoA0DWqg== + +try-to-catch@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/try-to-catch/-/try-to-catch-1.1.1.tgz#770162dd13b9a0e55da04db5b7f888956072038a" + integrity sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA== + +ts-essentials@^2.0.3: + version "2.0.12" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" + integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3, tslib@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +ua-parser-js@^0.7.18: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + +uglify-js@^3.5.1: + version "3.13.9" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.9.tgz#4d8d21dcd497f29cfd8e9378b9df123ad025999b" + integrity sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +unified@9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +unified@^8.4.2: + version "8.4.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" + integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" + integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== + dependencies: + unist-util-is "^4.0.0" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.1, unist-util-visit@^2.0.2, unist-util-visit@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.3, url-parse@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0, url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use-composed-ref@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.1.0.tgz#9220e4e94a97b7b02d7d27eaeab0b37034438bbc" + integrity sha512-my1lNHGWsSDAhhVAT4MKs6IjBUtG6ZG11uUqexPH9PptiIZDQOzaF4f5tEbJ2+7qvNbtXNBbU3SfmN+fXlWDhg== + dependencies: + ts-essentials "^2.0.3" + +use-isomorphic-layout-effect@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz#7bb6589170cd2987a152042f9084f9effb75c225" + integrity sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ== + +use-latest@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.0.tgz#a44f6572b8288e0972ec411bdd0840ada366f232" + integrity sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw== + dependencies: + use-isomorphic-layout-effect "^1.0.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utility-types@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" + integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +vfile-location@^3.0.0, vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + +wait-on@^5.2.1: + version "5.3.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-5.3.0.tgz#584e17d4b3fe7b46ac2b9f8e5e102c005c2776c7" + integrity sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg== + dependencies: + axios "^0.21.1" + joi "^17.3.0" + lodash "^4.17.21" + minimist "^1.2.5" + rxjs "^6.6.3" + +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^1.0.0, web-namespaces@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + +webpack-bundle-analyzer@^4.4.0: + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^6.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.11.2: + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.0.tgz#9ed2de69b25143a4c18847586ad9eccb19278cfa" + integrity sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack@^5.28.0: + version "5.39.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.39.1.tgz#d1e014b6d71e1aef385316ad528f21cd5b1f9784" + integrity sha512-ulOvoNCh2PvTUa+zbpRuEb1VPeQnhxpnHleMPVVCq3QqnaFogjsLyps+o42OviQFoaGtTQYrUqDXu1QNkvUPzw== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.47" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/wasm-edit" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + acorn "^8.2.1" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.4.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.0.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.1" + watchpack "^2.2.0" + webpack-sources "^2.3.0" + +webpackbar@^5.0.0-3: + version "5.0.0-3" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.0-3.tgz#f4f96c8fb13001b2bb1348252db4c980ab93aaac" + integrity sha512-viW6KCYjMb0NPoDrw2jAmLXU2dEOhRrtku28KmOfeE1vxbfwCYuTbTaMhnkrCZLFAFyY9Q49Z/jzYO80Dw5b8g== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.1.0" + consola "^2.15.0" + figures "^3.2.0" + pretty-time "^1.1.0" + std-env "^2.2.1" + text-table "^0.2.0" + wrap-ansi "^7.0.0" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + +ws@^7.3.1: + version "7.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" + integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +xtend@^4.0.0, xtend@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==