diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..97c4a8b --- /dev/null +++ b/.eslintrc @@ -0,0 +1,69 @@ +{ + "env": { + "es2021": true + }, + "parser": "@typescript-eslint/parser", + "extends": [ + "@open-wc", + "prettier", + "plugin:@typescript-eslint/recommended" + ], + "plugins": [ + "@typescript-eslint" + ], + "rules": { + "no-unused-vars": "off", + "no-continue": "off", + "no-plusplus": "off", + "no-shadow": "off", + "class-methods-use-this": "off", + "@typescript-eslint/no-shadow": "error", + "@typescript-eslint/explicit-function-return-type": "error", + "@typescript-eslint/no-unused-vars": [ + "error" + ], + "import/no-unresolved": "off", + "import/extensions": [ + "error", + "always", + { + "ignorePackages": true + } + ] + }, + "overrides": [ + { + "files": [ "src/**/*.ts" ], + "rules": { + "no-useless-constructor": "off", + "no-empty-function": "off", + "no-use-before-define": "off", + "no-dupe-class-members": "off" + } + }, + { + "files": [ "**/*.js" ], + "rules": { + "@typescript-eslint/explicit-function-return-type": "off" + } + }, + { + "files": ["demo/**", "dev/**", "test/**"], + "rules": { + "import/no-extraneous-dependencies": "off", + "no-console": "off" + } + } + ], + "globals": { + "EventListener": true, + "Prism": true, + "RequestInit": true, + "WorkerType": true, + "FormDataEntryValue": true, + "MutationObserverInit": true, + "ScrollToOptions": true, + "NodeListOf": true, + "GlobalEventHandlers": true + } +} diff --git a/.gitignore b/.gitignore index f19881a..cea01cc 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ demo/vendor.js demo/models/ .idea/ +tsconfig.tsbuildinfo diff --git a/commitlint.config.js b/commitlint.config.cjs similarity index 100% rename from commitlint.config.js rename to commitlint.config.cjs diff --git a/define/api-annotation-document.js b/define/api-annotation-document.js deleted file mode 100644 index 67f92a9..0000000 --- a/define/api-annotation-document.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiAnnotationDocumentElement.js'; - -window.customElements.define('api-annotation-document', Element); diff --git a/define/api-annotation-document.d.ts b/define/api-annotation-document.ts similarity index 68% rename from define/api-annotation-document.d.ts rename to define/api-annotation-document.ts index 7ba112f..6eeb8f3 100644 --- a/define/api-annotation-document.d.ts +++ b/define/api-annotation-document.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/ApiAnnotationDocumentElement'; +import Element from '../src/elements/ApiAnnotationDocumentElement.js'; + +window.customElements.define('api-annotation-document', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/api-authorization-editor.js b/define/api-authorization-editor.js deleted file mode 100644 index 79cbf26..0000000 --- a/define/api-authorization-editor.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiAuthorizationEditorElement.js'; - -window.customElements.define('api-authorization-editor', Element); diff --git a/define/api-authorization-editor.d.ts b/define/api-authorization-editor.ts similarity index 68% rename from define/api-authorization-editor.d.ts rename to define/api-authorization-editor.ts index 384cbd3..903cf6b 100644 --- a/define/api-authorization-editor.d.ts +++ b/define/api-authorization-editor.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/ApiAuthorizationEditorElement'; +import Element from '../src/elements/ApiAuthorizationEditorElement.js'; + +window.customElements.define('api-authorization-editor', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/api-authorization-method.js b/define/api-authorization-method.js deleted file mode 100644 index 3ca16e0..0000000 --- a/define/api-authorization-method.js +++ /dev/null @@ -1,4 +0,0 @@ - -import Element from '../src/elements/ApiAuthorizationMethodElement.js'; - -window.customElements.define('api-authorization-method', Element); diff --git a/define/api-authorization-method.d.ts b/define/api-authorization-method.ts similarity index 71% rename from define/api-authorization-method.d.ts rename to define/api-authorization-method.ts index a125863..a91efc0 100644 --- a/define/api-authorization-method.d.ts +++ b/define/api-authorization-method.ts @@ -1,5 +1,8 @@ + import Element from '../src/elements/ApiAuthorizationMethodElement.js'; +window.customElements.define('api-authorization-method', Element); + declare global { interface HTMLElementTagNameMap { "api-authorization-method": Element; diff --git a/define/api-channel-document.d.ts b/define/api-channel-document.d.ts deleted file mode 100644 index e0fee2f..0000000 --- a/define/api-channel-document.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiChannelDocumentElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-channel-document": Element; - } -} diff --git a/define/api-channel-document.js b/define/api-channel-document.ts similarity index 57% rename from define/api-channel-document.js rename to define/api-channel-document.ts index f6b3caa..37c6e02 100644 --- a/define/api-channel-document.js +++ b/define/api-channel-document.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiChannelDocumentElement.js'; window.customElements.define('api-channel-document', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-channel-document": Element; + } +} diff --git a/define/api-documentation-document.js b/define/api-documentation-document.js deleted file mode 100644 index 42d21fc..0000000 --- a/define/api-documentation-document.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiDocumentationDocumentElement.js'; - -window.customElements.define('api-documentation-document', Element); diff --git a/define/api-documentation-document.d.ts b/define/api-documentation-document.ts similarity index 67% rename from define/api-documentation-document.d.ts rename to define/api-documentation-document.ts index 300194f..0d18222 100644 --- a/define/api-documentation-document.d.ts +++ b/define/api-documentation-document.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/ApiDocumentationDocumentElement'; +import Element from '../src/elements/ApiDocumentationDocumentElement.js'; + +window.customElements.define('api-documentation-document', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/api-documentation.d.ts b/define/api-documentation.d.ts deleted file mode 100644 index 7d82afe..0000000 --- a/define/api-documentation.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiDocumentationElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-documentation": Element; - } -} diff --git a/define/api-documentation.js b/define/api-documentation.ts similarity index 57% rename from define/api-documentation.js rename to define/api-documentation.ts index ba53594..77443c7 100644 --- a/define/api-documentation.js +++ b/define/api-documentation.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiDocumentationElement.js'; window.customElements.define('api-documentation', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-documentation": Element; + } +} diff --git a/define/api-navigation-legacy.d.ts b/define/api-navigation-legacy.d.ts deleted file mode 100644 index a75cf56..0000000 --- a/define/api-navigation-legacy.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiNavigationLegacyElement.js'; - -declare global { - interface HTMLElementTagNameMap { - "api-navigation-legacy": Element; - } -} diff --git a/define/api-navigation-legacy.js b/define/api-navigation-legacy.js deleted file mode 100644 index 30a0335..0000000 --- a/define/api-navigation-legacy.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiNavigationLegacyElement.js'; - -window.customElements.define('api-navigation-legacy', Element); diff --git a/define/api-navigation.d.ts b/define/api-navigation.d.ts deleted file mode 100644 index aaebbd3..0000000 --- a/define/api-navigation.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiNavigationElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-navigation": Element; - } -} diff --git a/define/api-navigation.js b/define/api-navigation.ts similarity index 57% rename from define/api-navigation.js rename to define/api-navigation.ts index e680504..4be3895 100644 --- a/define/api-navigation.js +++ b/define/api-navigation.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiNavigationElement.js'; window.customElements.define('api-navigation', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-navigation": Element; + } +} diff --git a/define/api-operation-document.js b/define/api-operation-document.js deleted file mode 100644 index 06b3a8b..0000000 --- a/define/api-operation-document.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiOperationDocumentElement.js'; - -window.customElements.define('api-operation-document', Element); diff --git a/define/api-operation-document.d.ts b/define/api-operation-document.ts similarity index 69% rename from define/api-operation-document.d.ts rename to define/api-operation-document.ts index d4d3812..3323266 100644 --- a/define/api-operation-document.d.ts +++ b/define/api-operation-document.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/ApiOperationDocumentElement'; +import Element from '../src/elements/ApiOperationDocumentElement.js'; + +window.customElements.define('api-operation-document', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/api-parameter-document.js b/define/api-parameter-document.js deleted file mode 100644 index f368728..0000000 --- a/define/api-parameter-document.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiParameterDocumentElement.js'; - -window.customElements.define('api-parameter-document', Element); diff --git a/define/api-parameter-document.d.ts b/define/api-parameter-document.ts similarity index 69% rename from define/api-parameter-document.d.ts rename to define/api-parameter-document.ts index 5fc8af7..8ce6fdd 100644 --- a/define/api-parameter-document.d.ts +++ b/define/api-parameter-document.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/ApiParameterDocumentElement'; +import Element from '../src/elements/ApiParameterDocumentElement.js'; + +window.customElements.define('api-parameter-document', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/api-parametrized-security-scheme.js b/define/api-parametrized-security-scheme.js deleted file mode 100644 index cae2a26..0000000 --- a/define/api-parametrized-security-scheme.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiParametrizedSecuritySchemeElement.js'; - -window.customElements.define('api-parametrized-security-scheme', Element); diff --git a/define/api-parametrized-security-scheme.d.ts b/define/api-parametrized-security-scheme.ts similarity index 65% rename from define/api-parametrized-security-scheme.d.ts rename to define/api-parametrized-security-scheme.ts index 67d8687..3989e06 100644 --- a/define/api-parametrized-security-scheme.d.ts +++ b/define/api-parametrized-security-scheme.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/ApiParametrizedSecuritySchemeElement'; +import Element from '../src/elements/ApiParametrizedSecuritySchemeElement.js'; + +window.customElements.define('api-parametrized-security-scheme', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/api-payload-document.d.ts b/define/api-payload-document.d.ts deleted file mode 100644 index 6aa13d7..0000000 --- a/define/api-payload-document.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiPayloadDocumentElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-payload-document": Element; - } -} diff --git a/define/api-payload-document.js b/define/api-payload-document.ts similarity index 57% rename from define/api-payload-document.js rename to define/api-payload-document.ts index 169d4c3..5acdfbe 100644 --- a/define/api-payload-document.js +++ b/define/api-payload-document.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiPayloadDocumentElement.js'; window.customElements.define('api-payload-document', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-payload-document": Element; + } +} diff --git a/define/api-request-document.d.ts b/define/api-request-document.d.ts deleted file mode 100644 index 5abc50f..0000000 --- a/define/api-request-document.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiRequestDocumentElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-request-document": Element; - } -} diff --git a/define/api-request-document.js b/define/api-request-document.ts similarity index 57% rename from define/api-request-document.js rename to define/api-request-document.ts index 3a1cd1b..5dec87c 100644 --- a/define/api-request-document.js +++ b/define/api-request-document.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiRequestDocumentElement.js'; window.customElements.define('api-request-document', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-request-document": Element; + } +} diff --git a/define/api-request-editor.d.ts b/define/api-request-editor.d.ts deleted file mode 100644 index 94bc49d..0000000 --- a/define/api-request-editor.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiRequestEditorElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-request-editor": Element; - } -} diff --git a/define/api-request-editor.js b/define/api-request-editor.ts similarity index 57% rename from define/api-request-editor.js rename to define/api-request-editor.ts index 55ff5a8..468e132 100644 --- a/define/api-request-editor.js +++ b/define/api-request-editor.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiRequestEditorElement.js'; window.customElements.define('api-request-editor', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-request-editor": Element; + } +} diff --git a/define/api-request.d.ts b/define/api-request.d.ts deleted file mode 100644 index c5a55b0..0000000 --- a/define/api-request.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiRequestElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-request": Element; - } -} diff --git a/define/api-request.js b/define/api-request.ts similarity index 56% rename from define/api-request.js rename to define/api-request.ts index 43d877d..6509c5e 100644 --- a/define/api-request.js +++ b/define/api-request.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiRequestElement.js'; window.customElements.define('api-request', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-request": Element; + } +} diff --git a/define/api-resource-document.d.ts b/define/api-resource-document.d.ts deleted file mode 100644 index ca06a07..0000000 --- a/define/api-resource-document.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiResourceDocumentElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-resource-document": Element; - } -} diff --git a/define/api-resource-document.js b/define/api-resource-document.ts similarity index 57% rename from define/api-resource-document.js rename to define/api-resource-document.ts index 275dde7..974a333 100644 --- a/define/api-resource-document.js +++ b/define/api-resource-document.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiResourceDocumentElement.js'; window.customElements.define('api-resource-document', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-resource-document": Element; + } +} diff --git a/define/api-response-document.d.ts b/define/api-response-document.d.ts deleted file mode 100644 index 1b4c097..0000000 --- a/define/api-response-document.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiResponseDocumentElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-response-document": Element; - } -} diff --git a/define/api-response-document.js b/define/api-response-document.ts similarity index 57% rename from define/api-response-document.js rename to define/api-response-document.ts index 3c76178..0031056 100644 --- a/define/api-response-document.js +++ b/define/api-response-document.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiResponseDocumentElement.js'; window.customElements.define('api-response-document', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-response-document": Element; + } +} diff --git a/define/api-response-view.js b/define/api-response-view.js deleted file mode 100644 index 4a654bc..0000000 --- a/define/api-response-view.js +++ /dev/null @@ -1,3 +0,0 @@ -import { ApiResponseViewElement } from '../src/elements/ApiResponseViewElement.js'; - -window.customElements.define('api-response-view', ApiResponseViewElement); diff --git a/define/api-response-view.d.ts b/define/api-response-view.ts similarity index 71% rename from define/api-response-view.d.ts rename to define/api-response-view.ts index f45f50a..ec0d099 100644 --- a/define/api-response-view.d.ts +++ b/define/api-response-view.ts @@ -1,5 +1,7 @@ import { ApiResponseViewElement } from '../src/elements/ApiResponseViewElement.js'; +window.customElements.define('api-response-view', ApiResponseViewElement); + declare global { interface HTMLElementTagNameMap { "api-response-view": ApiResponseViewElement; diff --git a/define/api-schema-document.d.ts b/define/api-schema-document.d.ts deleted file mode 100644 index d20a450..0000000 --- a/define/api-schema-document.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiSchemaDocumentElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-schema-document": Element; - } -} diff --git a/define/api-schema-document.js b/define/api-schema-document.ts similarity index 57% rename from define/api-schema-document.js rename to define/api-schema-document.ts index cf614dd..55d46fe 100644 --- a/define/api-schema-document.js +++ b/define/api-schema-document.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiSchemaDocumentElement.js'; window.customElements.define('api-schema-document', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-schema-document": Element; + } +} diff --git a/define/api-security-document.d.ts b/define/api-security-document.d.ts deleted file mode 100644 index e14d940..0000000 --- a/define/api-security-document.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiSecurityDocumentElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-security-document": Element; - } -} diff --git a/define/api-security-document.js b/define/api-security-document.ts similarity index 57% rename from define/api-security-document.js rename to define/api-security-document.ts index 5b7571f..7616e79 100644 --- a/define/api-security-document.js +++ b/define/api-security-document.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiSecurityDocumentElement.js'; window.customElements.define('api-security-document', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-security-document": Element; + } +} diff --git a/define/api-security-requirement-document.js b/define/api-security-requirement-document.js deleted file mode 100644 index 40bf048..0000000 --- a/define/api-security-requirement-document.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/ApiSecurityRequirementDocumentElement.js'; - -window.customElements.define('api-security-requirement-document', Element); diff --git a/define/api-security-requirement-document.d.ts b/define/api-security-requirement-document.ts similarity index 65% rename from define/api-security-requirement-document.d.ts rename to define/api-security-requirement-document.ts index 61659c4..4a15c9a 100644 --- a/define/api-security-requirement-document.d.ts +++ b/define/api-security-requirement-document.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/ApiSecurityRequirementDocumentElement'; +import Element from '../src/elements/ApiSecurityRequirementDocumentElement.js'; + +window.customElements.define('api-security-requirement-document', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/api-server-selector.d.ts b/define/api-server-selector.d.ts deleted file mode 100644 index de19838..0000000 --- a/define/api-server-selector.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiServerSelectorElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-server-selector": Element; - } -} diff --git a/define/api-server-selector.js b/define/api-server-selector.ts similarity index 57% rename from define/api-server-selector.js rename to define/api-server-selector.ts index 8a130be..c56fa4f 100644 --- a/define/api-server-selector.js +++ b/define/api-server-selector.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiServerSelectorElement.js'; window.customElements.define('api-server-selector', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-server-selector": Element; + } +} diff --git a/define/api-summary.d.ts b/define/api-summary.d.ts deleted file mode 100644 index a0328ec..0000000 --- a/define/api-summary.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/ApiSummaryElement'; - -declare global { - interface HTMLElementTagNameMap { - "api-summary": Element; - } -} diff --git a/define/api-summary.js b/define/api-summary.ts similarity index 56% rename from define/api-summary.js rename to define/api-summary.ts index b098360..cea209d 100644 --- a/define/api-summary.js +++ b/define/api-summary.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/ApiSummaryElement.js'; window.customElements.define('api-summary', Element); + +declare global { + interface HTMLElementTagNameMap { + "api-summary": Element; + } +} diff --git a/define/xhr-simple-request-transport.js b/define/xhr-simple-request-transport.js deleted file mode 100644 index dc60596..0000000 --- a/define/xhr-simple-request-transport.js +++ /dev/null @@ -1,3 +0,0 @@ -import Element from '../src/elements/XhrSimpleRequestTransportElement.js'; - -window.customElements.define('xhr-simple-request-transport', Element); diff --git a/define/xhr-simple-request-transport.d.ts b/define/xhr-simple-request-transport.ts similarity index 67% rename from define/xhr-simple-request-transport.d.ts rename to define/xhr-simple-request-transport.ts index e313ecf..1defc92 100644 --- a/define/xhr-simple-request-transport.d.ts +++ b/define/xhr-simple-request-transport.ts @@ -1,4 +1,6 @@ -import Element from '../src/elements/XhrSimpleRequestTransportElement'; +import Element from '../src/elements/XhrSimpleRequestTransportElement.js'; + +window.customElements.define('xhr-simple-request-transport', Element); declare global { interface HTMLElementTagNameMap { diff --git a/define/xhr-simple-request.d.ts b/define/xhr-simple-request.d.ts deleted file mode 100644 index 7d40b69..0000000 --- a/define/xhr-simple-request.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Element from '../src/elements/XhrSimpleRequestElement'; - -declare global { - interface HTMLElementTagNameMap { - "xhr-simple-request": Element; - } -} diff --git a/define/xhr-simple-request.js b/define/xhr-simple-request.ts similarity index 57% rename from define/xhr-simple-request.js rename to define/xhr-simple-request.ts index c819e8e..cbe50cc 100644 --- a/define/xhr-simple-request.js +++ b/define/xhr-simple-request.ts @@ -1,3 +1,9 @@ import Element from '../src/elements/XhrSimpleRequestElement.js'; window.customElements.define('xhr-simple-request', Element); + +declare global { + interface HTMLElementTagNameMap { + "xhr-simple-request": Element; + } +} diff --git a/demo/api-channel.js b/demo/api-channel.js index c82624b..bca8f15 100644 --- a/demo/api-channel.js +++ b/demo/api-channel.js @@ -1,6 +1,6 @@ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-channel-document.js'; diff --git a/demo/api-console.js b/demo/api-console.js index 47fa738..dcda5df 100644 --- a/demo/api-console.js +++ b/demo/api-console.js @@ -1,9 +1,9 @@ import { html } from 'lit-html'; import { classMap } from 'lit-html/directives/class-map.js'; -import '@anypoint-web-components/awc/anypoint-icon-button.js'; -import '@anypoint-web-components/awc/anypoint-menu-button.js'; -import '@anypoint-web-components/awc/anypoint-listbox.js'; -import '@anypoint-web-components/awc/anypoint-item.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-icon-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-menu-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-listbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-item.js'; import '@advanced-rest-client/icons/arc-icon.js'; import { MonacoLoader } from "@advanced-rest-client/monaco-support"; import { ApplicationPage } from "./lib/ApplicationPage.js"; diff --git a/demo/api-documentation-partial.js b/demo/api-documentation-partial.js index bdaf293..649b07b 100644 --- a/demo/api-documentation-partial.js +++ b/demo/api-documentation-partial.js @@ -1,8 +1,8 @@ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; -import '@anypoint-web-components/awc/anypoint-dialog.js'; -import '@anypoint-web-components/awc/anypoint-dialog-scrollable.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog-scrollable.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import { AmfPartialGraphStore } from './lib/AmfPartialGraphStore.js'; import '../define/api-documentation.js'; diff --git a/demo/api-documentation.js b/demo/api-documentation.js index 6cb71a9..234977c 100644 --- a/demo/api-documentation.js +++ b/demo/api-documentation.js @@ -1,8 +1,8 @@ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; -import '@anypoint-web-components/awc/anypoint-dialog.js'; -import '@anypoint-web-components/awc/anypoint-dialog-scrollable.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog-scrollable.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-request.js'; import '../define/xhr-simple-request.js'; diff --git a/demo/api-editor.js b/demo/api-editor.js index 695271a..63eb729 100644 --- a/demo/api-editor.js +++ b/demo/api-editor.js @@ -1,9 +1,9 @@ import { html } from 'lit-html'; import { classMap } from 'lit-html/directives/class-map.js'; -import '@anypoint-web-components/awc/anypoint-icon-button.js'; -import '@anypoint-web-components/awc/anypoint-menu-button.js'; -import '@anypoint-web-components/awc/anypoint-listbox.js'; -import '@anypoint-web-components/awc/anypoint-item.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-icon-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-menu-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-listbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-item.js'; import '@advanced-rest-client/icons/arc-icon.js'; import { MonacoTheme, MonacoStyles, MonacoLoader } from '@advanced-rest-client/monaco-support'; import { DomEventsAmfStore } from "../src/store/DomEventsAmfStore.js"; diff --git a/demo/api-navigation.js b/demo/api-navigation.js index a706186..7747b9b 100644 --- a/demo/api-navigation.js +++ b/demo/api-navigation.js @@ -1,8 +1,8 @@ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; -import '@anypoint-web-components/awc/anypoint-radio-button.js'; -import '@anypoint-web-components/awc/anypoint-radio-group.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-radio-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-radio-group.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import { NavigationContextMenu, NavigationContextMenuCommands } from '../index.js'; import '../define/api-navigation.js'; diff --git a/demo/api-operation.js b/demo/api-operation.js index 42cec01..b64310a 100644 --- a/demo/api-operation.js +++ b/demo/api-operation.js @@ -1,8 +1,8 @@ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; -import '@anypoint-web-components/awc/anypoint-dialog.js'; -import '@anypoint-web-components/awc/anypoint-dialog-scrollable.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog-scrollable.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-operation-document.js'; import '../define/api-request.js'; @@ -32,7 +32,7 @@ class ComponentPage extends AmfDemoBase { this.renderSecurity = true; this.renderCodeSnippets = true; this.componentName = 'api-operation-document'; - this.redirectUri = `${window.location.origin}/node_modules/@advanced-rest-client/oauth/oauth-popup.html`; + this.redirectUri = `${window.location.origin}/demo/oauth-popup.html`; } get baseUri() { diff --git a/demo/api-request.js b/demo/api-request.js index 44cd45d..e0cc634 100644 --- a/demo/api-request.js +++ b/demo/api-request.js @@ -1,5 +1,5 @@ import { html } from 'lit-html'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-navigation.js'; diff --git a/demo/api-resource.js b/demo/api-resource.js index deed9b8..bd3ac56 100644 --- a/demo/api-resource.js +++ b/demo/api-resource.js @@ -1,8 +1,8 @@ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; -import '@anypoint-web-components/awc/anypoint-dialog.js'; -import '@anypoint-web-components/awc/anypoint-dialog-scrollable.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dialog-scrollable.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-resource-document.js'; import '../define/api-request.js'; diff --git a/demo/api-schema-documentation.js b/demo/api-schema-documentation.js index 45c03d5..ab640ec 100644 --- a/demo/api-schema-documentation.js +++ b/demo/api-schema-documentation.js @@ -2,7 +2,7 @@ import { html } from 'lit-html'; import { ifDefined } from 'lit-html/directives/if-defined.js'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-schema-document.js'; import '../define/api-navigation.js'; diff --git a/demo/api-security-documentation.js b/demo/api-security-documentation.js index 1aef71e..5e7b4b3 100644 --- a/demo/api-security-documentation.js +++ b/demo/api-security-documentation.js @@ -1,7 +1,7 @@ /* eslint-disable lit-a11y/click-events-have-key-events */ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-security-document.js'; diff --git a/demo/api-summary.js b/demo/api-summary.js index eefc2b8..af3e78b 100644 --- a/demo/api-summary.js +++ b/demo/api-summary.js @@ -1,6 +1,6 @@ import { html } from 'lit-html'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-summary.js'; diff --git a/demo/apis/not-schema/not-schema.yaml b/demo/apis/not-schema/not-schema.yaml new file mode 100644 index 0000000..ba1a9d6 --- /dev/null +++ b/demo/apis/not-schema/not-schema.yaml @@ -0,0 +1,38 @@ +openapi: '3.0.2' +info: + title: Not schema + version: '1.0' + description: Test API for testing AMF service + contact: + name: API Support + url: http://www.example.com/support + email: support@example.com + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + +components: + schemas: + PetByType: + type: object + properties: + pet_type: + not: + type: integer + required: + - pet_type + +paths: + /pets: + patch: + description: Tests the behavior of the "not" schema + summary: Not schema + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PetByType' + responses: + '200': + description: Updated + \ No newline at end of file diff --git a/demo/lib/AmfDemoBase.js b/demo/lib/AmfDemoBase.js index 9300c5f..6b5bd1c 100644 --- a/demo/lib/AmfDemoBase.js +++ b/demo/lib/AmfDemoBase.js @@ -1,11 +1,11 @@ -import { html } from 'lit-html'; +import { html } from 'lit'; import { DemoPage } from "@advanced-rest-client/arc-demo-helper"; import { MonacoLoader } from "@advanced-rest-client/monaco-support"; -import '@anypoint-web-components/awc/anypoint-dropdown-menu.js'; -import '@anypoint-web-components/awc/anypoint-listbox.js'; -import '@anypoint-web-components/awc/anypoint-item.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-dropdown-menu.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-listbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-item.js'; import { EventTypes as ArcEventTypes } from '@advanced-rest-client/events'; -import { OAuth2Authorization, OidcAuthorization } from '@advanced-rest-client/oauth'; +import { OAuth2Authorization, OidcAuthorization } from '@api-client/core/build/browser.js'; import { DomEventsAmfStore } from "../../src/store/DomEventsAmfStore.js"; import { AmfHelperMixin } from "../../src/helpers/AmfHelperMixin.js"; import { EventTypes } from '../../src/events/EventTypes.js'; @@ -103,7 +103,7 @@ export class AmfDemoBase extends AmfHelperMixin(DemoPage) { * @type {string} */ this.selectedFile = undefined; - this.redirectUri = `${window.location.origin}/node_modules/@advanced-rest-client/oauth/oauth-popup.html`; + this.redirectUri = `${window.location.origin}/demo/oauth-popup.html`; window.addEventListener(ArcEventTypes.Authorization.OAuth2.authorize, this.oauth2authorizeHandler.bind(this)); window.addEventListener(ArcEventTypes.Authorization.Oidc.authorize, this.oidcAuthorizeHandler.bind(this)); diff --git a/demo/lib/ApplicationPage.js b/demo/lib/ApplicationPage.js index 39e0642..fca01d1 100644 --- a/demo/lib/ApplicationPage.js +++ b/demo/lib/ApplicationPage.js @@ -1,6 +1,6 @@ /* eslint-disable class-methods-use-this */ import { EventTypes as ArcEventTypes } from '@advanced-rest-client/events'; -import { OAuth2Authorization, OidcAuthorization } from '@advanced-rest-client/oauth'; +import { OAuth2Authorization, OidcAuthorization } from '@api-client/core/build/browser.js'; import { ReactiveMixin } from './mixins/ReactiveMixin.js'; import { RenderableMixin } from './mixins/RenderableMixin.js'; @@ -34,7 +34,7 @@ export class ApplicationPage extends RenderableMixin(ReactiveMixin(EventTarget)) * True when the app should render mobile friendly view. */ this.isMobile = false; - this.redirectUri = `${window.location.origin}/node_modules/@advanced-rest-client/oauth/oauth-popup.html`; + this.redirectUri = `${window.location.origin}/demo/oauth-popup.html`; window.addEventListener(ArcEventTypes.Authorization.OAuth2.authorize, this.oauth2authorizeHandler.bind(this)); window.addEventListener(ArcEventTypes.Authorization.Oidc.authorize, this.oidcAuthorizeHandler.bind(this)); this.initMediaQueries(); diff --git a/demo/model.mjs b/demo/model.mjs index 114f55e..da58a24 100644 --- a/demo/model.mjs +++ b/demo/model.mjs @@ -135,6 +135,7 @@ config.set('simple-api/simple-api.raml', { type: 'RAML 1.0' }); config.set('example-generator-api/example-generator-api.raml', { type: "RAML 1.0" }); config.set('tracked-examples/tracked-to-linked.raml', { type: 'RAML 1.0' }); config.set('types-list/types-list.raml', { type: 'RAML 1.0' }); +config.set('not-schema/not-schema.yaml', { type: 'OAS 3.0' }); const srcFolder = path.join('demo', 'apis'); const descFolder = path.join('demo', 'models'); diff --git a/demo/oauth-authorize.js b/demo/oauth-authorize.js index 3bf0d93..7feecd5 100644 --- a/demo/oauth-authorize.js +++ b/demo/oauth-authorize.js @@ -1,7 +1,7 @@ -import '@anypoint-web-components/awc/anypoint-input.js'; -import '@anypoint-web-components/awc/anypoint-button.js'; -import '@anypoint-web-components/awc/anypoint-masked-input.js'; -import { v4 } from '@advanced-rest-client/uuid'; +import { uuidV4 } from '@api-client/core/build/browser.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-input.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-masked-input.js'; function setupFormAction() { const u = new URL(window.location.href) @@ -10,13 +10,13 @@ function setupFormAction() { const type = u.searchParams.get('response_type'); const codeParam = type === 'code' ? 'code' : 'access_token'; const params = new URLSearchParams(); - params.set(codeParam, v4()); + params.set(codeParam, uuidV4()); params.set('state', state); params.set('expires_in', '3600'); params.set('scope', 'dummy'); if (type !== 'code') { params.set('token_type', 'bearer'); - params.set('refresh_token', v4()); + params.set('refresh_token', uuidV4()); } const formUrl = `${redirectUri}#${params.toString()}`; const form = document.querySelector('form'); diff --git a/demo/oauth-popup.html b/demo/oauth-popup.html new file mode 100644 index 0000000..b8391f1 --- /dev/null +++ b/demo/oauth-popup.html @@ -0,0 +1,29 @@ + + + + + Oauth2 callback window + + + +

Sending the authorization data to the application

+ + + + diff --git a/demo/request-editor.js b/demo/request-editor.js index c661b65..a882313 100644 --- a/demo/request-editor.js +++ b/demo/request-editor.js @@ -1,6 +1,6 @@ import { html } from 'lit-html'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; -import '@anypoint-web-components/awc/anypoint-item.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-item.js'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/xhr-simple-request.js'; diff --git a/demo/server-selector.js b/demo/server-selector.js index 17584d7..e323e86 100644 --- a/demo/server-selector.js +++ b/demo/server-selector.js @@ -1,5 +1,5 @@ import { html } from 'lit-html'; -import '@anypoint-web-components/awc/anypoint-checkbox.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-checkbox.js'; import '@advanced-rest-client/arc-demo-helper/arc-interactive-demo.js'; import { AmfDemoBase } from './lib/AmfDemoBase.js'; import '../define/api-server-selector.js'; diff --git a/dev/amf-server/AmfParser.mjs b/dev/amf-server/AmfParser.js similarity index 100% rename from dev/amf-server/AmfParser.mjs rename to dev/amf-server/AmfParser.js diff --git a/dev/amf-server/AmfService.mjs b/dev/amf-server/AmfService.js similarity index 100% rename from dev/amf-server/AmfService.mjs rename to dev/amf-server/AmfService.js diff --git a/dev/amf-server/ApiError.mjs b/dev/amf-server/ApiError.js similarity index 100% rename from dev/amf-server/ApiError.mjs rename to dev/amf-server/ApiError.js diff --git a/dev/amf-server/api.mjs b/dev/amf-server/api.js similarity index 100% rename from dev/amf-server/api.mjs rename to dev/amf-server/api.js diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index bd710d1..0000000 --- a/index.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -export { default as ApiOperationDocumentElement } from './src/elements/ApiOperationDocumentElement'; -export { default as ApiParameterDocumentElement } from './src/elements/ApiParameterDocumentElement'; -export { default as ApiPayloadDocumentElement } from './src/elements/ApiPayloadDocumentElement'; -export { default as ApiRequestDocumentElement } from './src/elements/ApiRequestDocumentElement'; -export { default as ApiResourceDocumentElement } from './src/elements/ApiResourceDocumentElement'; -export { default as ApiResponseDocumentElement } from './src/elements/ApiResponseDocumentElement'; -export { default as ApiSchemaDocumentElement } from './src/elements/ApiSchemaDocumentElement'; -export { default as ApiDocumentationDocumentElement } from './src/elements/ApiDocumentationDocumentElement'; -export { default as ApiChannelDocumentElement } from './src/elements/ApiChannelDocumentElement'; -export { default as ApiAnnotationDocumentElement } from './src/elements/ApiAnnotationDocumentElement'; -export { default as ApiSummaryElement } from './src/elements/ApiSummaryElement'; -export { default as XhrSimpleRequestElement } from './src/elements/XhrSimpleRequestElement'; -export { default as XhrSimpleRequestTransportElement } from './src/elements/XhrSimpleRequestTransportElement'; -export { default as ApiRequestElement } from './src/elements/ApiRequestElement'; -export { default as ApiRequestEditorElement } from './src/elements/ApiRequestEditorElement'; -export { default as ApiAuthorizationEditorElement } from './src/elements/ApiAuthorizationEditorElement'; -export { default as ApiAuthorizationMethodElement } from './src/elements/ApiAuthorizationMethodElement'; -export { default as ApiServerSelectorElement } from './src/elements/ApiServerSelectorElement'; -export { default as ApiNavigationElement } from './src/elements/ApiNavigationElement'; -export { default as ApiNavigationLegacyElement } from './src/elements/ApiNavigationLegacyElement.js'; -export { default as ApiSecurityDocumentElement } from './src/elements/ApiSecurityDocumentElement'; -export { default as ApiParametrizedSecuritySchemeElement } from './src/elements/ApiParametrizedSecuritySchemeElement'; -export { default as ApiSecurityRequirementDocumentElement } from './src/elements/ApiSecurityRequirementDocumentElement'; -export { default as ApiDocumentationElement } from './src/elements/ApiDocumentationElement'; -export * as InputCache from './src/lib/InputCache'; -export * as UrlLib from './src/lib/UrlUtils'; -export * as Utils from './src/lib/Utils'; -export { SecurityProcessor } from './src/lib/SecurityProcessor'; -export * from './src/types' -export { AmfHelperMixin } from './src/helpers/AmfHelperMixin'; -export { AmfSerializer } from './src/helpers/AmfSerializer'; -export { ns } from './src/helpers/Namespace'; -export * as Amf from './src/helpers/amf'; -export * as Api from './src/helpers/api'; -export { ApiExampleGenerator } from './src/schema/ApiExampleGenerator'; -export { ApiMonacoSchemaGenerator } from './src/schema/ApiMonacoSchemaGenerator'; -export { ApiSchemaValues } from './src/schema/ApiSchemaValues'; -export { ApiSchemaGenerator } from './src/schema/ApiSchemaGenerator'; -export { EventTypes as ApiEventTypes } from './src/events/EventTypes'; -export { Events as ApiEvents } from './src/events/Events'; -export { ApiNavigationEventDetail } from './src/events/NavigationEvents'; -export { ReportingErrorEventDetail } from './src/events/ReportingEvents'; -export { AbortRequestEvent, ApiRequestEvent, ApiResponseEvent } from './src/events/RequestEvents'; -export { ServerChangeEvent, ServerChangeEventDetail, ServerCountChangeEvent, ServerCountChangeEventDetail } from './src/events/ServerEvents'; -export { TelemetryCustomMetric, TelemetryCustomValue, TelemetryDetail, TelemetryEventDetail, TelemetryExceptionDetail, TelemetryScreenViewDetail, TelemetrySocialDetail, TelemetryTimingDetail } from './src/events/TelemetryEvents'; -export { DomEventsAmfStore } from './src/store/DomEventsAmfStore'; -export { AmfStore } from './src/store/AmfStore'; -export { AmfStoreDomEventsMixin } from './src/store/mixins/AmfStoreDomEventsMixin'; -export { InMemAmfGraphStore } from './src/store/InMemAmfGraphStore'; -export { NavigationContextMenu } from './src/plugins/NavigationContextMenu'; -export { default as NavigationContextMenuCommands } from './src/plugins/NavigationCommands'; diff --git a/index.js b/index.js deleted file mode 100644 index 3bbfe85..0000000 --- a/index.js +++ /dev/null @@ -1,43 +0,0 @@ -export { default as ApiOperationDocumentElement } from './src/elements/ApiOperationDocumentElement.js'; -export { default as ApiParameterDocumentElement } from './src/elements/ApiParameterDocumentElement.js'; -export { default as ApiPayloadDocumentElement } from './src/elements/ApiPayloadDocumentElement.js'; -export { default as ApiRequestDocumentElement } from './src/elements/ApiRequestDocumentElement.js'; -export { default as ApiResourceDocumentElement } from './src/elements/ApiResourceDocumentElement.js'; -export { default as ApiResponseDocumentElement } from './src/elements/ApiResponseDocumentElement.js'; -export { default as ApiSchemaDocumentElement } from './src/elements/ApiSchemaDocumentElement.js'; -export { default as ApiDocumentationDocumentElement } from './src/elements/ApiDocumentationDocumentElement.js'; -export { default as ApiChannelDocumentElement } from './src/elements/ApiChannelDocumentElement.js'; -export { default as ApiAnnotationDocumentElement } from './src/elements/ApiAnnotationDocumentElement.js'; -export { default as ApiSummaryElement } from './src/elements/ApiSummaryElement.js'; -export { default as XhrSimpleRequestElement } from './src/elements/XhrSimpleRequestElement.js'; -export { default as XhrSimpleRequestTransportElement } from './src/elements/XhrSimpleRequestTransportElement.js'; -export { default as ApiRequestElement } from './src/elements/ApiRequestElement.js'; -export { default as ApiRequestEditorElement } from './src/elements/ApiRequestEditorElement.js'; -export { default as ApiAuthorizationEditorElement } from './src/elements/ApiAuthorizationEditorElement.js'; -export { default as ApiAuthorizationMethodElement } from './src/elements/ApiAuthorizationMethodElement.js'; -export { default as ApiServerSelectorElement } from './src/elements/ApiServerSelectorElement.js'; -export { default as ApiNavigationElement } from './src/elements/ApiNavigationElement.js'; -export { default as ApiNavigationLegacyElement } from './src/elements/ApiNavigationLegacyElement.js'; -export { default as ApiSecurityDocumentElement } from './src/elements/ApiSecurityDocumentElement.js'; -export { default as ApiParametrizedSecuritySchemeElement } from './src/elements/ApiParametrizedSecuritySchemeElement.js'; -export { default as ApiSecurityRequirementDocumentElement } from './src/elements/ApiSecurityRequirementDocumentElement.js'; -export { default as ApiDocumentationElement } from './src/elements/ApiDocumentationElement.js'; -export { EventTypes as ApiEventTypes } from './src/events/EventTypes.js'; -export { Events as ApiEvents } from './src/events/Events.js'; -export * as InputCache from './src/lib/InputCache.js'; -export * as UrlLib from './src/lib/UrlUtils.js'; -export * as Utils from './src/lib/Utils.js'; -export { SecurityProcessor } from './src/lib/SecurityProcessor.js'; -export { AmfHelperMixin } from './src/helpers/AmfHelperMixin.js'; -export { AmfSerializer } from './src/helpers/AmfSerializer.js'; -export { ns } from './src/helpers/Namespace.js'; -export { ApiExampleGenerator } from './src/schema/ApiExampleGenerator.js'; -export { ApiMonacoSchemaGenerator } from './src/schema/ApiMonacoSchemaGenerator.js'; -export { ApiSchemaValues } from './src/schema/ApiSchemaValues.js'; -export { ApiSchemaGenerator } from './src/schema/ApiSchemaGenerator.js'; -export { DomEventsAmfStore } from './src/store/DomEventsAmfStore.js'; -export { AmfStore } from './src/store/AmfStore.js'; -export { AmfStoreDomEventsMixin } from './src/store/mixins/AmfStoreDomEventsMixin.js'; -export { InMemAmfGraphStore } from './src/store/InMemAmfGraphStore.js'; -export { NavigationContextMenu } from './src/plugins/NavigationContextMenu.js'; -export { default as NavigationContextMenuCommands } from './src/plugins/NavigationCommands.js'; diff --git a/package-lock.json b/package-lock.json index efb6185..87a4ffe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,65 +1,50 @@ { "name": "@api-components/amf-components", - "version": "1.0.0-beta.4", + "version": "1.0.0-beta.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@api-components/amf-components", - "version": "1.0.0-beta.4", + "version": "1.0.0-beta.5", "license": "Apache-2.0", "dependencies": { - "@advanced-rest-client/base": "^0.1.0", - "@advanced-rest-client/events": "^0.2.22", - "@advanced-rest-client/highlight": "^2.0.1", - "@advanced-rest-client/http-code-snippets": "^4.0.0", + "@advanced-rest-client/base": "^0.1.10", + "@advanced-rest-client/events": "^18.0.2", + "@advanced-rest-client/highlight": "^2.0.2", + "@advanced-rest-client/http-code-snippets": "^4.0.1", "@advanced-rest-client/icons": "^4.0.0", - "@advanced-rest-client/oauth": "^0.1.0", - "@advanced-rest-client/uuid": "^4.0.0", - "@anypoint-web-components/awc": "^1.0.5", - "@api-client/context-menu": "^0.2.0", - "@open-wc/dedupe-mixin": "^1.3.0", - "@pawel-up/data-mock": "^0.1.7", + "@anypoint-web-components/awc": "^3.0.12", + "@api-client/context-menu": "^0.4.1", + "@api-client/core": "^0.8.0", + "@open-wc/dedupe-mixin": "^1.3.1", + "@pawel-up/data-mock": "^0.3.2", "amf-json-ld-lib": "0.0.14", - "dompurify": "^2.3.3", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1" + "dompurify": "^2.4.0", + "lit": "^2.3.1" }, "devDependencies": { - "@advanced-rest-client/arc-demo-helper": "^5.0.1", - "@commitlint/cli": "^16.2.1", - "@commitlint/config-conventional": "^16.2.1", - "@open-wc/eslint-config": "^7.0.0", - "@open-wc/testing": "^3.0.1", - "@web/dev-server": "^0.1.25", - "@web/test-runner": "^0.13.20", - "@web/test-runner-playwright": "^0.8.8", - "amf-client-js": "^5.0.5", - "eslint": "^8.1.0", - "eslint-config-prettier": "^8.3.0", - "husky": "^7.0.4", - "lint-staged": "^12.3.5", - "sinon": "^13.0.1", - "typescript": "^4.4.4", + "@commitlint/cli": "^17.1.2", + "@commitlint/config-conventional": "^17.1.0", + "@open-wc/eslint-config": "^8.0.2", + "@open-wc/testing": "^3.1.6", + "@types/dompurify": "^2.3.4", + "@typescript-eslint/eslint-plugin": "^5.22.0", + "@typescript-eslint/parser": "^5.22.0", + "@web/dev-server": "^0.1.34", + "@web/test-runner": "^0.14.0", + "@web/test-runner-playwright": "^0.8.10", + "amf-client-js": "^5.1.0", + "concurrently": "^7.4.0", + "eslint": "^8.23.1", + "eslint-config-prettier": "^8.5.0", + "husky": "^8.0.1", + "lint-staged": "^13.0.3", + "sinon": "^14.0.0", + "tslib": "^2.4.0", + "typescript": "^4.8.3", "typescript-lit-html-plugin": "^0.9.0", - "uuid": "^8.3.2" - } - }, - "node_modules/@advanced-rest-client/arc-demo-helper": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@advanced-rest-client/arc-demo-helper/-/arc-demo-helper-5.0.4.tgz", - "integrity": "sha512-428Pr58NOnRNx6jKmtfLueoZkzW48RhAQnnn4NnJ3bmQPsbjDhT72Kz9k9tSfECzFY1zBhRndtHvyenfwteJMw==", - "dev": true, - "dependencies": { - "@anypoint-web-components/awc": "^1.0.5", - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/font-roboto": "^3.0.2", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1", - "prismjs": "^1.25.0" - }, - "peerDependencies": { - "@advanced-rest-client/events": "^0.2.22" + "uuid": "^9.0.0" } }, "node_modules/@advanced-rest-client/base": { @@ -89,11 +74,47 @@ "jsrsasign": "^10.4.0" } }, - "node_modules/@advanced-rest-client/events": { + "node_modules/@advanced-rest-client/base/node_modules/@advanced-rest-client/events": { "version": "0.2.32", "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-0.2.32.tgz", "integrity": "sha512-utzItgaFzNzHu6GMrSSrnG0OiqLka0N9k4AnD/RIe1sszRTlj3d4JblfjBtZeoC9DmHE3pPZYQ+cBkPkB+Ka8g==" }, + "node_modules/@advanced-rest-client/base/node_modules/@advanced-rest-client/oauth": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/oauth/-/oauth-0.1.0.tgz", + "integrity": "sha512-GQtQzrm2Mi5haq6Iv2Da7OwApK5+bHGvj8tc2aPCUzEeWnsQdI0kP8fOmGuNCLnk8h/FNG+B1ducjGuknChBuw==", + "dependencies": { + "@advanced-rest-client/events": "^0.2.28" + }, + "peerDependencies": { + "jsrsasign": "^10.4.0" + } + }, + "node_modules/@advanced-rest-client/base/node_modules/@anypoint-web-components/awc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", + "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + }, + "node_modules/@advanced-rest-client/base/node_modules/@api-client/context-menu": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@api-client/context-menu/-/context-menu-0.2.0.tgz", + "integrity": "sha512-OpOhXaXEihcQHm5WrgbjoHy/aSEzmc3g3s3gkUrqGxyPFGZYD/OF6iNdMV/HIMrjWK2LHw266s/Rxp5L60Kr0g==", + "dependencies": { + "@anypoint-web-components/awc": "^1.0.5", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + }, + "node_modules/@advanced-rest-client/events": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-18.0.2.tgz", + "integrity": "sha512-vlfQUji9dX7LNOmEK6rhAZQTgO2XBQ+Yx7Q+fR1ufe+wP1GoezCg944z9GSr0dIpCuSRxe+jj/n5Lr+G4jmHtQ==" + }, "node_modules/@advanced-rest-client/highlight": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@advanced-rest-client/highlight/-/highlight-2.0.2.tgz", @@ -110,6 +131,21 @@ "prismjs": "^1.25.0" } }, + "node_modules/@advanced-rest-client/highlight/node_modules/@advanced-rest-client/events": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-0.2.32.tgz", + "integrity": "sha512-utzItgaFzNzHu6GMrSSrnG0OiqLka0N9k4AnD/RIe1sszRTlj3d4JblfjBtZeoC9DmHE3pPZYQ+cBkPkB+Ka8g==" + }, + "node_modules/@advanced-rest-client/highlight/node_modules/@anypoint-web-components/awc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", + "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + }, "node_modules/@advanced-rest-client/http-code-snippets": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@advanced-rest-client/http-code-snippets/-/http-code-snippets-4.0.1.tgz", @@ -121,6 +157,16 @@ "prismjs": "^1.25.0" } }, + "node_modules/@advanced-rest-client/http-code-snippets/node_modules/@anypoint-web-components/awc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", + "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + }, "node_modules/@advanced-rest-client/icons": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@advanced-rest-client/icons/-/icons-4.0.0.tgz", @@ -138,6 +184,11 @@ "@advanced-rest-client/events": "^0.2.29" } }, + "node_modules/@advanced-rest-client/libs/node_modules/@advanced-rest-client/events": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-0.2.32.tgz", + "integrity": "sha512-utzItgaFzNzHu6GMrSSrnG0OiqLka0N9k4AnD/RIe1sszRTlj3d4JblfjBtZeoC9DmHE3pPZYQ+cBkPkB+Ka8g==" + }, "node_modules/@advanced-rest-client/monaco-support": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@advanced-rest-client/monaco-support/-/monaco-support-1.0.1.tgz", @@ -146,552 +197,286 @@ "lit-element": "^2.4.0" } }, - "node_modules/@advanced-rest-client/oauth": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@advanced-rest-client/oauth/-/oauth-0.1.0.tgz", - "integrity": "sha512-GQtQzrm2Mi5haq6Iv2Da7OwApK5+bHGvj8tc2aPCUzEeWnsQdI0kP8fOmGuNCLnk8h/FNG+B1ducjGuknChBuw==", - "dependencies": { - "@advanced-rest-client/events": "^0.2.28" - }, - "peerDependencies": { - "jsrsasign": "^10.4.0" - } - }, "node_modules/@advanced-rest-client/uuid": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@advanced-rest-client/uuid/-/uuid-4.0.0.tgz", "integrity": "sha512-ln7TGYaiGGRiXFHxo722EPcEDSccq+jclDRYTOTrRp3fTvUrm8P+tHCPFJTGa68Hi/rDhMZN3SkfF3+thtM7eQ==" }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } + "node_modules/@aml-org/amf-antlr-parsers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@aml-org/amf-antlr-parsers/-/amf-antlr-parsers-0.5.17.tgz", + "integrity": "sha512-GHPMGjkcNeTjp+DxASQ/y5oijNiaYPSItHT1YNEkGGZnd+d5MLhrlujIx2cKn7aKcxLNTGY1skNFEIf1jZtWxQ==", + "dev": true }, "node_modules/@anypoint-web-components/awc": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", - "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-3.0.12.tgz", + "integrity": "sha512-jn54YDqYLxSN8byOuvvojwdEMMq3pXce6llZcYCLoEmecoWiqypbN40CA2haW21QmGNrNZZKaFBcWzm4dP5ZcA==", "dependencies": { - "@open-wc/dedupe-mixin": "^1.3.0", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1" + "lit": "^2.2.1", + "tslib": "^2.3.1" } }, "node_modules/@api-client/context-menu": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@api-client/context-menu/-/context-menu-0.2.0.tgz", - "integrity": "sha512-OpOhXaXEihcQHm5WrgbjoHy/aSEzmc3g3s3gkUrqGxyPFGZYD/OF6iNdMV/HIMrjWK2LHw266s/Rxp5L60Kr0g==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@api-client/context-menu/-/context-menu-0.4.1.tgz", + "integrity": "sha512-PJ1LWUrreArXLYOfTGLy023xyOQFhcz/xFsqWSY7Ob+V/6TIZ6pEli+kRArhE2FuyZCZa3FPaA0rr7pTOTuaTw==", "dependencies": { - "@anypoint-web-components/awc": "^1.0.5", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1" + "@anypoint-web-components/awc": "^3.0.1", + "lit": "^2.2.2" } }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, + "node_modules/@api-client/core": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@api-client/core/-/core-0.8.0.tgz", + "integrity": "sha512-NExKuzc62Jt5Roi8P2wnOJSajZmzth66+IqS7nE91Mr+h6Mh/Z1ah+RGaDAFmlylSgsP1ZQ5rRHpYHlegC/EAg==", "dependencies": { - "@babel/highlight": "^7.16.7" + "@api-client/json": "^0.1.3", + "@metrichor/jmespath": "^0.3.1", + "@pawel-up/data-mock": "^0.3.0", + "@pawel-up/jexl": "^3.0.0", + "@xmldom/xmldom": "^0.8.2", + "amf-json-ld-lib": "^0.0.14", + "console-table-printer": "^2.11.0", + "ws": "^8.6.0", + "xpath": "^0.0.32" }, "engines": { - "node": ">=6.9.0" + "node": ">=15" } }, - "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true, - "peer": true, + "node_modules/@api-client/core/node_modules/ws": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.7.tgz", - "integrity": "sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==", - "dev": true, - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.7", - "@babel/parser": "^7.17.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" + "node": ">=10.0.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", - "dev": true, - "peer": true, - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } + "node_modules/@api-client/json": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@api-client/json/-/json-0.1.4.tgz", + "integrity": "sha512-CFyzxmQ70bNvYQWp8OyhX10ox85pZQhS93TXLNo/djtTf4qncYXkmf2OBV0AAONigAcpLYTRpAI/PUPRKOQMkw==" }, - "node_modules/@babel/eslint-plugin": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.17.7.tgz", - "integrity": "sha512-JATUoJJXSgwI0T8juxWYtK1JSgoLpIGUsCHIv+NMXcUDA2vIe6nvAHR9vnuJgs/P1hOFw7vPwibixzfqBBLIVw==", + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, - "peer": true, "dependencies": { - "eslint-rule-composer": "^0.3.0" + "@babel/highlight": "^7.18.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/eslint-parser": ">=7.11.0", - "eslint": ">=7.5.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "peer": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "node_modules/@babel/runtime": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "dev": true, - "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "regenerator-runtime": "^0.13.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "node_modules/@babel/runtime-corejs3": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", + "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "node_modules/@commitlint/cli": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.1.2.tgz", + "integrity": "sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw==", "dev": true, - "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "@commitlint/format": "^17.0.0", + "@commitlint/lint": "^17.1.0", + "@commitlint/load": "^17.1.2", + "@commitlint/read": "^17.1.0", + "@commitlint/types": "^17.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.19", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "node_modules/@commitlint/config-conventional": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.1.0.tgz", + "integrity": "sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA==", "dev": true, - "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "conventional-changelog-conventionalcommits": "^5.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "node_modules/@commitlint/config-validator": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.1.0.tgz", + "integrity": "sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==", "dev": true, - "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "@commitlint/types": "^17.0.0", + "ajv": "^8.11.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/@commitlint/ensure": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.0.0.tgz", + "integrity": "sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==", "dev": true, - "peer": true, "dependencies": { - "@babel/types": "^7.17.0" + "@commitlint/types": "^17.0.0", + "lodash": "^4.17.19" }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "node_modules/@commitlint/execute-rule": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz", + "integrity": "sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==", "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "node_modules/@commitlint/format": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.0.0.tgz", + "integrity": "sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==", "dev": true, + "dependencies": { + "@commitlint/types": "^17.0.0", + "chalk": "^4.1.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "node_modules/@commitlint/format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6.9.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/helpers": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.7.tgz", - "integrity": "sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w==", + "node_modules/@commitlint/format/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "peer": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "node_modules/@commitlint/format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.7.tgz", - "integrity": "sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA==", - "dev": true, - "peer": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.7.tgz", - "integrity": "sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.7.tgz", - "integrity": "sha512-TvliGJjhxis5m7xIMvlXH/xG8Oa/LK0SCUCyfKD6nLi42n5fB4WibDJ0g9trmmBB6hwpMNx+Lzbxy9/4gpMaVw==", - "dev": true, - "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@commitlint/cli": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.2.1.tgz", - "integrity": "sha512-zfKf+B9osuiDbxGMJ7bWFv7XFCW8wlQYPtCffNp7Ukdb7mdrep5R9e03vPUZysnwp8NX6hg05kPEvnD/wRIGWw==", - "dev": true, - "dependencies": { - "@commitlint/format": "^16.2.1", - "@commitlint/lint": "^16.2.1", - "@commitlint/load": "^16.2.1", - "@commitlint/read": "^16.2.1", - "@commitlint/types": "^16.2.1", - "lodash": "^4.17.19", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "commitlint": "cli.js" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-16.2.1.tgz", - "integrity": "sha512-cP9gArx7gnaj4IqmtCIcHdRjTYdRUi6lmGE+lOzGGjGe45qGOS8nyQQNvkNy2Ey2VqoSWuXXkD8zCUh6EHf1Ww==", - "dev": true, - "dependencies": { - "conventional-changelog-conventionalcommits": "^4.3.1" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/@commitlint/config-validator": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-16.2.1.tgz", - "integrity": "sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw==", - "dev": true, - "dependencies": { - "@commitlint/types": "^16.2.1", - "ajv": "^6.12.6" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/@commitlint/ensure": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-16.2.1.tgz", - "integrity": "sha512-/h+lBTgf1r5fhbDNHOViLuej38i3rZqTQnBTk+xEg+ehOwQDXUuissQ5GsYXXqI5uGy+261ew++sT4EA3uBJ+A==", - "dev": true, - "dependencies": { - "@commitlint/types": "^16.2.1", - "lodash": "^4.17.19" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/@commitlint/execute-rule": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-16.2.1.tgz", - "integrity": "sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g==", - "dev": true, - "engines": { - "node": ">=v12" - } - }, - "node_modules/@commitlint/format": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-16.2.1.tgz", - "integrity": "sha512-Yyio9bdHWmNDRlEJrxHKglamIk3d6hC0NkEUW6Ti6ipEh2g0BAhy8Od6t4vLhdZRa1I2n+gY13foy+tUgk0i1Q==", - "dev": true, - "dependencies": { - "@commitlint/types": "^16.2.1", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/@commitlint/format/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@commitlint/format/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@commitlint/format/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "node": ">=7.0.0" } }, "node_modules/@commitlint/format/node_modules/color-name": { @@ -722,22 +507,22 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-16.2.1.tgz", - "integrity": "sha512-exl8HRzTIfb1YvDJp2b2HU5z1BT+9tmgxR2XF0YEzkMiCIuEKh+XLeocPr1VcvAKXv3Cmv5X/OfNRp+i+/HIhQ==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.1.0.tgz", + "integrity": "sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ==", "dev": true, "dependencies": { - "@commitlint/types": "^16.2.1", - "semver": "7.3.5" + "@commitlint/types": "^17.0.0", + "semver": "7.3.7" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -750,42 +535,49 @@ } }, "node_modules/@commitlint/lint": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-16.2.1.tgz", - "integrity": "sha512-fNINQ3X2ZqsCkNB3Z0Z8ElmhewqrS3gy2wgBTx97BkcjOWiyPAGwDJ752hwrsUnWAVBRztgw826n37xPzxsOgg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.1.0.tgz", + "integrity": "sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^16.2.1", - "@commitlint/parse": "^16.2.1", - "@commitlint/rules": "^16.2.1", - "@commitlint/types": "^16.2.1" + "@commitlint/is-ignored": "^17.1.0", + "@commitlint/parse": "^17.0.0", + "@commitlint/rules": "^17.0.0", + "@commitlint/types": "^17.0.0" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/load": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.2.1.tgz", - "integrity": "sha512-oSpz0jTyVI/A1AIImxJINTLDOMB8YF7lWGm+Jg5wVWM0r7ucpuhyViVvpSRTgvL0z09oIxlctyFGWUQQpI42uw==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.1.2.tgz", + "integrity": "sha512-sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmgg==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^16.2.1", - "@commitlint/execute-rule": "^16.2.1", - "@commitlint/resolve-extends": "^16.2.1", - "@commitlint/types": "^16.2.1", - "@types/node": ">=12", - "chalk": "^4.0.0", + "@commitlint/config-validator": "^17.1.0", + "@commitlint/execute-rule": "^17.0.0", + "@commitlint/resolve-extends": "^17.1.0", + "@commitlint/types": "^17.0.0", + "@types/node": "^14.0.0", + "chalk": "^4.1.0", "cosmiconfig": "^7.0.0", - "cosmiconfig-typescript-loader": "^1.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", "lodash": "^4.17.19", "resolve-from": "^5.0.0", - "typescript": "^4.4.3" + "ts-node": "^10.8.1", + "typescript": "^4.6.4" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, + "node_modules/@commitlint/load/node_modules/@types/node": { + "version": "14.18.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.29.tgz", + "integrity": "sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==", + "dev": true + }, "node_modules/@commitlint/load/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -857,107 +649,108 @@ } }, "node_modules/@commitlint/message": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-16.2.1.tgz", - "integrity": "sha512-2eWX/47rftViYg7a3axYDdrgwKv32mxbycBJT6OQY/MJM7SUfYNYYvbMFOQFaA4xIVZt7t2Alyqslbl6blVwWw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.0.0.tgz", + "integrity": "sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==", "dev": true, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/parse": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-16.2.1.tgz", - "integrity": "sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.0.0.tgz", + "integrity": "sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==", "dev": true, "dependencies": { - "@commitlint/types": "^16.2.1", + "@commitlint/types": "^17.0.0", "conventional-changelog-angular": "^5.0.11", "conventional-commits-parser": "^3.2.2" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/read": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-16.2.1.tgz", - "integrity": "sha512-tViXGuaxLTrw2r7PiYMQOFA2fueZxnnt0lkOWqKyxT+n2XdEMGYcI9ID5ndJKXnfPGPppD0w/IItKsIXlZ+alw==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.1.0.tgz", + "integrity": "sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g==", "dev": true, "dependencies": { - "@commitlint/top-level": "^16.2.1", - "@commitlint/types": "^16.2.1", + "@commitlint/top-level": "^17.0.0", + "@commitlint/types": "^17.0.0", "fs-extra": "^10.0.0", - "git-raw-commits": "^2.0.0" + "git-raw-commits": "^2.0.0", + "minimist": "^1.2.6" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/resolve-extends": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-16.2.1.tgz", - "integrity": "sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz", + "integrity": "sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^16.2.1", - "@commitlint/types": "^16.2.1", + "@commitlint/config-validator": "^17.1.0", + "@commitlint/types": "^17.0.0", "import-fresh": "^3.0.0", "lodash": "^4.17.19", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/rules": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-16.2.1.tgz", - "integrity": "sha512-ZFezJXQaBBso+BOTre/+1dGCuCzlWVaeLiVRGypI53qVgPMzQqZhkCcrxBFeqB87qeyzr4A4EoG++IvITwwpIw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.0.0.tgz", + "integrity": "sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==", "dev": true, "dependencies": { - "@commitlint/ensure": "^16.2.1", - "@commitlint/message": "^16.2.1", - "@commitlint/to-lines": "^16.2.1", - "@commitlint/types": "^16.2.1", + "@commitlint/ensure": "^17.0.0", + "@commitlint/message": "^17.0.0", + "@commitlint/to-lines": "^17.0.0", + "@commitlint/types": "^17.0.0", "execa": "^5.0.0" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/to-lines": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-16.2.1.tgz", - "integrity": "sha512-9/VjpYj5j1QeY3eiog1zQWY6axsdWAc0AonUUfyZ7B0MVcRI0R56YsHAfzF6uK/g/WwPZaoe4Lb1QCyDVnpVaQ==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.0.0.tgz", + "integrity": "sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==", "dev": true, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/top-level": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-16.2.1.tgz", - "integrity": "sha512-lS6GSieHW9y6ePL73ied71Z9bOKyK+Ib9hTkRsB8oZFAyQZcyRwq2w6nIa6Fngir1QW51oKzzaXfJL94qwImyw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.0.0.tgz", + "integrity": "sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==", "dev": true, "dependencies": { "find-up": "^5.0.0" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/types": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-16.2.1.tgz", - "integrity": "sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.0.0.tgz", + "integrity": "sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==", "dev": true, "dependencies": { - "chalk": "^4.0.0" + "chalk": "^4.1.0" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/types/node_modules/ansi-styles": { @@ -1030,22 +823,13 @@ "node": ">=8" } }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { "node": ">=12" @@ -1058,29 +842,32 @@ "dev": true }, "node_modules/@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.4.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1105,23 +892,23 @@ } }, "node_modules/@esm-bundle/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-6Tx35wWiNw7X0nLY9RMx8v3EL8SacCFW+eEZOE9Hc+XxmU5HFE2AFEg+GehUZpiyDGwVvPH75ckGlqC7coIPnA==", + "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", "dev": true, "dependencies": { "@types/chai": "^4.2.12" } }, "node_modules/@github/time-elements": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@github/time-elements/-/time-elements-3.1.2.tgz", - "integrity": "sha512-YVtZVLBikP6I7na22kfB9PKIseISwX41MFJ7lPuNz1VVH2IR5cpRRU6F1X6kcchPChljuvMUR4OiwMWHOJQ8kQ==" + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@github/time-elements/-/time-elements-3.1.4.tgz", + "integrity": "sha512-DTe/w0uKVeciKzGtYadNdfS8D86pXdGF+OrKg+vi8PKlotJ45zAc26zNpmmfCcMblBBg2+uoi3OxmUm7am/0sg==" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1132,6 +919,29 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -1139,28 +949,25 @@ "dev": true }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true, - "peer": true + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1370,513 +1177,189 @@ "resolved": "https://registry.npmjs.org/@material/typography/-/typography-14.0.0-canary.261f2db59.0.tgz", "integrity": "sha512-WOCdcNkD5KBRAwICcRqWBRG3cDkyrwK5USTNmG0oxnwnZAN7daOpPTdLppVAhadE7faj8d67ON+V9pH7+T62FQ==", "dependencies": { - "@material/feature-targeting": "14.0.0-canary.261f2db59.0", - "@material/theme": "14.0.0-canary.261f2db59.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@open-wc/chai-dom-equals": { - "version": "0.12.36", - "resolved": "https://registry.npmjs.org/@open-wc/chai-dom-equals/-/chai-dom-equals-0.12.36.tgz", - "integrity": "sha512-Gt1fa37h4rtWPQGETSU4n1L678NmMi9KwHM1sH+JCGcz45rs8DBPx7MUVeGZ+HxRlbEI5t9LU2RGGv6xT2OlyA==", - "dev": true, - "dependencies": { - "@open-wc/semantic-dom-diff": "^0.13.16", - "@types/chai": "^4.1.7" - } - }, - "node_modules/@open-wc/chai-dom-equals/node_modules/@open-wc/semantic-dom-diff": { - "version": "0.13.21", - "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.13.21.tgz", - "integrity": "sha512-BONpjHcGX2zFa9mfnwBCLEmlDsOHzT+j6Qt1yfK3MzFXFtAykfzFjAgaxPetu0YbBlCfXuMlfxI4vlRGCGMvFg==", - "dev": true - }, - "node_modules/@open-wc/dedupe-mixin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.0.tgz", - "integrity": "sha512-UfdK1MPnR6T7f3svzzYBfu3qBkkZ/KsPhcpc3JYhsUY4hbpwNF9wEQtD4Z+/mRqMTJrKg++YSxIxE0FBhY3RIw==" - }, - "node_modules/@open-wc/eslint-config": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@open-wc/eslint-config/-/eslint-config-7.0.0.tgz", - "integrity": "sha512-iuWgs5XSPqb9zhdHIeKDSzepnjRyhoYSoS6RI+vyLMfVFRxZoqt0Yv4Q8xJ8yByXbJyakmvpukTyEKbcuIQ7Uw==", - "dev": true, - "dependencies": { - "eslint": "^7.6.0", - "eslint-config-airbnb-base": "^14.0.0", - "eslint-plugin-html": "^6.0.0", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-lit": "^1.2.0", - "eslint-plugin-lit-a11y": "^2.1.0", - "eslint-plugin-no-only-tests": "^2.4.0", - "eslint-plugin-wc": "^1.2.0" - }, - "peerDependencies": { - "@babel/eslint-plugin": "^7.6.0", - "eslint-plugin-html": "^6.0.0", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-lit": "^1.3.0", - "eslint-plugin-lit-a11y": "^2.1.0", - "eslint-plugin-no-only-tests": "^2.4.0", - "eslint-plugin-wc": "^1.2.0" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@open-wc/eslint-config/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/eslint-config-airbnb-base": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.2" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0", - "eslint-plugin-import": "^2.22.1" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@open-wc/eslint-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "@material/feature-targeting": "14.0.0-canary.261f2db59.0", + "@material/theme": "14.0.0-canary.261f2db59.0", + "tslib": "^2.1.0" } }, - "node_modules/@open-wc/eslint-config/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, + "node_modules/@metrichor/jmespath": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@metrichor/jmespath/-/jmespath-0.3.1.tgz", + "integrity": "sha512-X/S90FG+VlEWGNEptEpZ15QN7h9aRhdOZm3yjE4lHItig8lSpJbmYDqAPo3iKc4CjUGfUSv4z+VhKrFw6iHBMg==", "engines": { - "node": ">= 4" + "node": ">=10.0.0" } }, - "node_modules/@open-wc/eslint-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">= 8" } }, - "node_modules/@open-wc/eslint-config/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/@open-wc/eslint-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@open-wc/eslint-config/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@open-wc/chai-dom-equals": { + "version": "0.12.36", + "resolved": "https://registry.npmjs.org/@open-wc/chai-dom-equals/-/chai-dom-equals-0.12.36.tgz", + "integrity": "sha512-Gt1fa37h4rtWPQGETSU4n1L678NmMi9KwHM1sH+JCGcz45rs8DBPx7MUVeGZ+HxRlbEI5t9LU2RGGv6xT2OlyA==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "@open-wc/semantic-dom-diff": "^0.13.16", + "@types/chai": "^4.1.7" + } + }, + "node_modules/@open-wc/chai-dom-equals/node_modules/@open-wc/semantic-dom-diff": { + "version": "0.13.21", + "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.13.21.tgz", + "integrity": "sha512-BONpjHcGX2zFa9mfnwBCLEmlDsOHzT+j6Qt1yfK3MzFXFtAykfzFjAgaxPetu0YbBlCfXuMlfxI4vlRGCGMvFg==", + "dev": true + }, + "node_modules/@open-wc/dedupe-mixin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.1.tgz", + "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==" + }, + "node_modules/@open-wc/eslint-config": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@open-wc/eslint-config/-/eslint-config-8.0.2.tgz", + "integrity": "sha512-ymOFXtsAXv1tkpW48touNZVGfV6X/ii/Ir+IZfFQi3KicJ/HF5wqK1x8Un4ZZzXravGqPqGfXCycKeyJf8s+pg==", + "dev": true, + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0", + "eslint-plugin-html": "^6.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-lit": "^1.2.0", + "eslint-plugin-lit-a11y": "^2.2.2", + "eslint-plugin-no-only-tests": "^2.4.0", + "eslint-plugin-wc": "^1.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": ">=7.6.0", + "eslint-plugin-html": "^6.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-lit": "^1.3.0", + "eslint-plugin-lit-a11y": "^2.2.2", + "eslint-plugin-no-only-tests": "^2.4.0", + "eslint-plugin-wc": "^1.2.0" } }, "node_modules/@open-wc/scoped-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.0.1.tgz", - "integrity": "sha512-JS6ozxUFwFX3+Er91v9yQzNIaFn7OnE0iESKTbFvkkKdNwvAPtp1fpckBKIvWk8Ae9ZcoI9DYZuT2DDbMPcadA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.1.3.tgz", + "integrity": "sha512-WoQD5T8Me9obek+iyjgrAMw9wxZZg4ytIteIN1i9LXW2KohezUp0LTOlWgBajWJo0/bpjUKiODX73cMYL2i3hw==", "dev": true, "dependencies": { "@lit/reactive-element": "^1.0.0", - "@open-wc/dedupe-mixin": "^1.3.0", - "@webcomponents/scoped-custom-element-registry": "^0.0.3" + "@open-wc/dedupe-mixin": "^1.3.0" } }, "node_modules/@open-wc/scoped-elements/node_modules/@lit/reactive-element": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.3.1.tgz", - "integrity": "sha512-nOJARIr3pReqK3hfFCSW2Zg/kFcFsSAlIE7z4a0C9D2dPrgD/YSn3ZP2ET/rxKB65SXyG7jJbkynBRm+tGlacw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.1.tgz", + "integrity": "sha512-qDv4851VFSaBWzpS02cXHclo40jsbAjRXnebNXpm0uVg32kCneZPo9RYVQtrTNICtZ+1wAYHu1ZtxWSWMbKrBw==", "dev": true }, "node_modules/@open-wc/semantic-dom-diff": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.19.5.tgz", - "integrity": "sha512-Wi0Fuj3dzqlWClU0y+J4k/nqTcH0uwgOWxZXPyeyG3DdvuyyjgiT4L4I/s6iVShWQvvEsyXnj7yVvixAo3CZvg==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.19.7.tgz", + "integrity": "sha512-ahwHb7arQXXnkIGCrOsM895FJQrU47VWZryCsSSzl5nB3tJKcJ8yjzQ3D/yqZn6v8atqOz61vaY05aNsqoz3oA==", "dev": true, "dependencies": { - "@types/chai": "^4.2.11", - "@web/test-runner-commands": "^0.5.7" + "@types/chai": "^4.3.1", + "@web/test-runner-commands": "^0.6.1" } }, "node_modules/@open-wc/testing": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.1.2.tgz", - "integrity": "sha512-2KjEszLItrIEZwCLFjWOSy4rnLzLOpgckrKfZjNA39PpFR3xD9bqYU30TTnLRHBk2B/0ZUbHglyca3iwcF964w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.1.6.tgz", + "integrity": "sha512-MIf9cBtac4/UBE5a+R5cXiRhOGfzetsV+ZPFc188AfkPDPbmffHqjrRoCyk4B/qS6fLEulSBMLSaQ+6ze971gQ==", "dev": true, "dependencies": { - "@esm-bundle/chai": "^4.3.4", + "@esm-bundle/chai": "^4.3.4-fix.0", "@open-wc/chai-dom-equals": "^0.12.36", - "@open-wc/semantic-dom-diff": "^0.19.5", + "@open-wc/semantic-dom-diff": "^0.19.7", "@open-wc/testing-helpers": "^2.1.2", "@types/chai": "^4.2.11", - "@types/chai-dom": "^0.0.9", + "@types/chai-dom": "^0.0.12", "@types/sinon-chai": "^3.2.3", "chai-a11y-axe": "^1.3.2" } }, "node_modules/@open-wc/testing-helpers": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.1.2.tgz", - "integrity": "sha512-NEdsV47DnOWaw3Wpp85p4qZ6bdubtGPdlTiblk8vSf2HJ2sR4b3ckyRWzsj/k+pcxrDGt8z0Awz71p+048Rrfg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.1.3.tgz", + "integrity": "sha512-hQujGaWncmWLx/974jq5yf2jydBNNTwnkISw2wLGiYgX34+3R6/ns301Oi9S3Il96Kzd8B7avdExp/gDgqcF5w==", "dev": true, "dependencies": { - "@open-wc/scoped-elements": "^2.0.1", + "@open-wc/scoped-elements": "^2.1.3", "lit": "^2.0.0", "lit-html": "^2.0.0" } }, "node_modules/@open-wc/testing-helpers/node_modules/lit-html": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.2.1.tgz", - "integrity": "sha512-AiJ/Rs0awjICs2FioTnHSh+Np5dhYSkyRczKy3wKjp8qjLhr1Ov+GiHrUQNdX8ou1LMuznpIME990AZsa/tR8g==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.3.1.tgz", + "integrity": "sha512-FyKH6LTW6aBdkfNhNSHyZTnLgJSTe5hMk7HFtc/+DcN1w74C215q8B+Cfxc2OuIEpBNcEKxgF64qL8as30FDHA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2" } }, "node_modules/@pawel-up/data-mock": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@pawel-up/data-mock/-/data-mock-0.1.7.tgz", - "integrity": "sha512-1sCVyyiJvN3bAjr5ZPWs4iALchm6v1hZfmowenjabduMVxvx+dAEkeowSyL07F+wWtnFTLvRNvf7DiK6OuwzVA==" + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@pawel-up/data-mock/-/data-mock-0.3.2.tgz", + "integrity": "sha512-OtnZGTpINoY75crmQiJ4jlokxAGSPx+1fLK7vWMizSG/1Vbtau17x6vfOt6GtTjw7tJ4Bkbj11bmjYumLT0r6w==", + "dependencies": { + "@types/har-format": "^1.2.7" + } }, "node_modules/@pawel-up/html.md": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@pawel-up/html.md/-/html.md-0.1.0.tgz", "integrity": "sha512-xJjiWGJUOaTZd9W5KgFfrwnjQTDT46lHs3i4zFkBi+nCGk5M/WRDX1RGEfjRAIE5BKvGn/kXeKXbjefNnT6msQ==" }, - "node_modules/@polymer/font-roboto": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@polymer/font-roboto/-/font-roboto-3.0.2.tgz", - "integrity": "sha512-tx5TauYSmzsIvmSqepUPDYbs4/Ejz2XbZ1IkD7JEGqkdNUJlh+9KU85G56Tfdk/xjEZ8zorFfN09OSwiMrIQWA==", - "dev": true + "node_modules/@pawel-up/jexl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@pawel-up/jexl/-/jexl-3.0.0.tgz", + "integrity": "sha512-rGg9CQtLzzGCU3KNKRfHfHtaDdvPbcvZiRqNI0rKc8hvgrZzwpNOX60leK3qarXG7dDQ98E9UQHp4yh8pUEJvQ==" }, "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.19.0" }, @@ -1884,7 +1367,7 @@ "node": ">= 10.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "rollup": "^2.42.0" } }, "node_modules/@rollup/pluginutils": { @@ -1914,9 +1397,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.1.tgz", - "integrity": "sha512-Wp5vwlZ0lOqpSYGKqr53INws9HLkt6JDc/pDZcPf7bchQnrXJMXPns8CXx0hFikMSGSWfvtvvpb2gtMVfkWagA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" @@ -1934,33 +1417,33 @@ } }, "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, "node_modules/@types/accepts": { @@ -1989,15 +1472,15 @@ } }, "node_modules/@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", + "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==", "dev": true }, "node_modules/@types/chai-dom": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@types/chai-dom/-/chai-dom-0.0.9.tgz", - "integrity": "sha512-jj4F2NJog2/GBYsyJ8+NvhnWUBbPY4MUAKLdPJE6+568rw12GGXvj0ycUuP5nndVrnJgozmJAoMTvxvjJATXWw==", + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@types/chai-dom/-/chai-dom-0.0.12.tgz", + "integrity": "sha512-4rE7sDw713cV61TYzQbMrPjC4DjNk3x4vk9nAVRNXcSD4p0/5lEEfm0OgoCz5eNuWUXNKA0YiKiH/JDTuKivkA==", "dev": true, "dependencies": { "@types/chai": "*" @@ -2029,9 +1512,9 @@ } }, "node_modules/@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", + "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", "dev": true }, "node_modules/@types/convert-source-map": { @@ -2058,6 +1541,15 @@ "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", "dev": true }, + "node_modules/@types/dompurify": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-2.3.4.tgz", + "integrity": "sha512-EXzDatIb5EspL2eb/xPGmaC8pePcTHrkDCONjeisusLFrVfl38Pjea/R0YJGu3k9ZQadSvMqW0WXPI2hEo2Ajg==", + "dev": true, + "dependencies": { + "@types/trusted-types": "*" + } + }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -2065,9 +1557,9 @@ "dev": true }, "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "dependencies": { "@types/body-parser": "*", @@ -2077,9 +1569,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dev": true, "dependencies": { "@types/node": "*", @@ -2087,6 +1579,11 @@ "@types/range-parser": "*" } }, + "node_modules/@types/har-format": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.8.tgz", + "integrity": "sha512-OP6L9VuZNdskgNN3zFQQ54ceYD8OLq5IbqO4VK91ORLfOm7WdT/CiT/pHEBSQEqCInJ2y3O6iCm/zGtPElpgJQ==" + }, "node_modules/@types/http-assert": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", @@ -2123,10 +1620,16 @@ "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/@types/keygrip": { @@ -2136,9 +1639,9 @@ "dev": true }, "node_modules/@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.5.tgz", + "integrity": "sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA==", "dev": true, "dependencies": { "@types/accepts": "*", @@ -2161,9 +1664,9 @@ } }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "node_modules/@types/minimist": { @@ -2179,9 +1682,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", + "version": "18.7.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", + "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -2224,19 +1727,19 @@ } }, "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dev": true, "dependencies": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/sinon": { - "version": "10.0.11", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.11.tgz", - "integrity": "sha512-dmZsHlBsKUtBpHriNjlK0ndlvEh8dcb9uV9Afsbt89QIyydpC7NcR+nWlAhASfy3GHnxTl4FX/aKE7XZUt/B4g==", + "version": "10.0.13", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.13.tgz", + "integrity": "sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ==", "dev": true, "dependencies": { "@types/sinonjs__fake-timers": "*" @@ -2253,9 +1756,9 @@ } }, "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", + "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", "dev": true }, "node_modules/@types/trusted-types": { @@ -2273,15 +1776,238 @@ } }, "node_modules/@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, "optional": true, "dependencies": { "@types/node": "*" } }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.0.tgz", + "integrity": "sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/type-utils": "5.38.0", + "@typescript-eslint/utils": "5.38.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.38.0.tgz", + "integrity": "sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/typescript-estree": "5.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.38.0.tgz", + "integrity": "sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/visitor-keys": "5.38.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.38.0.tgz", + "integrity": "sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.38.0", + "@typescript-eslint/utils": "5.38.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.38.0.tgz", + "integrity": "sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.0.tgz", + "integrity": "sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/visitor-keys": "5.38.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.38.0.tgz", + "integrity": "sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/typescript-estree": "5.38.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.0.tgz", + "integrity": "sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.38.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@web/browser-logs": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", @@ -2307,9 +2033,9 @@ } }, "node_modules/@web/config-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2322,16 +2048,16 @@ } }, "node_modules/@web/dev-server": { - "version": "0.1.30", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.30.tgz", - "integrity": "sha512-nUKR+lq06gaCvH6vKmfhPe/Kka1Xp7yN1FN5NEx+Yk4+9CyxZ3UJt2eHXedrcz+XCafxExW114ElEDgCahJowg==", + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.34.tgz", + "integrity": "sha512-+te6iwxAQign1KyhHpkR/a3+5qw/Obg/XWCES2So6G5LcZ86zIKXbUpWAJuNOqiBV6eGwqEB1AozKr2Jj7gj/Q==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.3.17", - "@web/dev-server-rollup": "^0.3.13", + "@web/dev-server-core": "^0.3.19", + "@web/dev-server-rollup": "^0.3.19", "camelcase": "^6.2.0", "command-line-args": "^5.1.1", "command-line-usage": "^6.1.1", @@ -2351,9 +2077,9 @@ } }, "node_modules/@web/dev-server-core": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.17.tgz", - "integrity": "sha512-vN1dwQ8yDHGiAvCeUo9xFfjo+pFl8TW+pON7k9kfhbegrrB8CKhJDUxmHbZsyQUmjf/iX57/LhuWj1xGhRL8AA==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", + "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", "dev": true, "dependencies": { "@types/koa": "^2.11.6", @@ -2361,7 +2087,7 @@ "@web/parse5-utils": "^1.2.0", "chokidar": "^3.4.3", "clone": "^2.1.2", - "es-module-lexer": "^0.9.0", + "es-module-lexer": "^1.0.0", "get-stream": "^6.0.0", "is-stream": "^2.0.0", "isbinaryfile": "^4.0.6", @@ -2380,16 +2106,16 @@ } }, "node_modules/@web/dev-server-rollup": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.15.tgz", - "integrity": "sha512-hhxvBmNIY19vXeocYB1IBOuhpVpy1L7jbwBarmvC0QJKZsgkxssNTzXJ8iga70c2+H0c/rBz1xUaKuAcov0uOA==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", + "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", "dev": true, "dependencies": { - "@rollup/plugin-node-resolve": "^11.0.1", - "@web/dev-server-core": "^0.3.16", + "@rollup/plugin-node-resolve": "^13.0.4", + "@web/dev-server-core": "^0.3.19", "nanocolors": "^0.2.1", "parse5": "^6.0.1", - "rollup": "^2.66.1", + "rollup": "^2.67.0", "whatwg-url": "^11.0.0" }, "engines": { @@ -2410,17 +2136,17 @@ } }, "node_modules/@web/test-runner": { - "version": "0.13.27", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.13.27.tgz", - "integrity": "sha512-yVhXK9sPJE2VQs1/KPTIeQvUxh+02OZkn+tgcr0+W8ovvrFD4ucF2X26cpeOTuD+Y67ERUi/EopIze3aelw6sg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.14.0.tgz", + "integrity": "sha512-9xVKnsviCqXL/xi48l0GpDDfvdczZsKHfEhmZglGMTL+I5viDMAj0GGe7fD9ygJ6UT2+056a3RzyIW5x9lZTDQ==", "dev": true, "dependencies": { "@web/browser-logs": "^0.2.2", "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.24", + "@web/dev-server": "^0.1.33", "@web/test-runner-chrome": "^0.10.7", - "@web/test-runner-commands": "^0.6.0", - "@web/test-runner-core": "^0.10.22", + "@web/test-runner-commands": "^0.6.3", + "@web/test-runner-core": "^0.10.27", "@web/test-runner-mocha": "^0.7.5", "camelcase": "^6.2.0", "command-line-args": "^5.1.1", @@ -2456,12 +2182,12 @@ } }, "node_modules/@web/test-runner-commands": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.5.13.tgz", - "integrity": "sha512-FXnpUU89ALbRlh9mgBd7CbSn5uzNtr8gvnQZPOvGLDAJ7twGvZdUJEAisPygYx2BLPSFl3/Mre8pH8zshJb8UQ==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.5.tgz", + "integrity": "sha512-W+wLg10jEAJY9N6tNWqG1daKmAzxGmTbO/H9fFfcgOgdxdn+hHiR4r2/x1iylKbFLujHUQlnjNQeu2d6eDPFqg==", "dev": true, "dependencies": { - "@web/test-runner-core": "^0.10.20", + "@web/test-runner-core": "^0.10.27", "mkdirp": "^1.0.4" }, "engines": { @@ -2469,9 +2195,9 @@ } }, "node_modules/@web/test-runner-core": { - "version": "0.10.25", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.25.tgz", - "integrity": "sha512-gH8VXyZbwf+sqPiH4cnXYf86SqwBLtou+0LFFCLaDQRbMlrfi5byAISt39fNX2ejd46bF1cZn6DK+mzb/Xjccw==", + "version": "0.10.27", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", + "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.11", @@ -2482,7 +2208,7 @@ "@types/istanbul-lib-coverage": "^2.0.3", "@types/istanbul-reports": "^3.0.0", "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.16", + "@web/dev-server-core": "^0.3.18", "chokidar": "^3.4.3", "cli-cursor": "^3.1.0", "co-body": "^6.1.0", @@ -2505,19 +2231,10 @@ "node": ">=12.0.0" } }, - "node_modules/@web/test-runner-core/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/@web/test-runner-coverage-v8": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.8.tgz", - "integrity": "sha512-Ib0AscR8Xf9E/V7rf3XOVQTe4vKIbwSTupxV1xGgzj3x4RKUuMUg9FLz9EigZ5iN0mOzZKDllyRS523hbdhDtA==", + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.9.tgz", + "integrity": "sha512-y9LWL4uY25+fKQTljwr0XTYjeWIwU4h8eYidVuLoW3n1CdFkaddv+smrGzzF5j8XY+Mp6TmV9NdxjvMWqVkDdw==", "dev": true, "dependencies": { "@web/test-runner-core": "^0.10.20", @@ -2543,47 +2260,27 @@ } }, "node_modules/@web/test-runner-playwright": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.8.8.tgz", - "integrity": "sha512-bhb0QVldfDoPJqOj5mm1hpE6FReyddc/iIuAkVf/kbJvgggTCT2bWGxUvXJlGzf+4epmDhU+hSTfEoLL9R2vGw==", + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.8.10.tgz", + "integrity": "sha512-DEnPihsxjJAPU/UPe3Wb6GVES4xICUrue0UVVxJL651m4zREuUHwSFm4S+cVq78qYcro3WuvCAnucdVB8bUCNw==", "dev": true, "dependencies": { "@web/test-runner-core": "^0.10.20", "@web/test-runner-coverage-v8": "^0.4.8", - "playwright": "^1.14.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner/node_modules/@web/test-runner-commands": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.1.tgz", - "integrity": "sha512-P4aQqp0duumeGdGxQ8TwLnplkrXzpLqb47eSEEqBRS//C1H7s6VskaqEng+k0dbk+cSpEa4RuZGY/G5k8aTjTw==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "mkdirp": "^1.0.4" + "playwright": "^1.22.2" }, "engines": { "node": ">=12.0.0" } }, - "node_modules/@web/test-runner/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, + "node_modules/@xmldom/xmldom": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.2.tgz", + "integrity": "sha512-+R0juSseERyoPvnBQ/cZih6bpF7IpCXlWbHRoCRzYzqpz6gWHOgf8o4MOEf6KBVuOyqU+gCNLkCWVIJAro8XyQ==", "engines": { - "node": ">= 8" + "node": ">=10.0.0" } }, - "node_modules/@webcomponents/scoped-custom-element-registry": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@webcomponents/scoped-custom-element-registry/-/scoped-custom-element-registry-0.0.3.tgz", - "integrity": "sha512-lpSzgDCGbM99dytb3+J3Suo4+Bk1E13MPnWB42JK8GwxSAxFz+tC7TTv2hhDSIE2IirGNKNKCf3m08ecu6eAsQ==", - "dev": true - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2598,9 +2295,9 @@ } }, "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2669,11 +2366,12 @@ } }, "node_modules/amf-client-js": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/amf-client-js/-/amf-client-js-5.0.5.tgz", - "integrity": "sha512-WLCfA2DtN5RsdnDSxRyH5R2VaDagR+Foe6Na42P57FdLUN6UXJM4xjazcK/FCdHqI23RZmOXlceArIHFZt8HOA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/amf-client-js/-/amf-client-js-5.1.0.tgz", + "integrity": "sha512-3/6jyw3i4IlPlPZJX5pEXPzya/TFG2JklVo065hUCHKOQB2u9DTtBCbZyS6HufK30P2ofxyhKEBJbqSULn2TPw==", "dev": true, "dependencies": { + "@aml-org/amf-antlr-parsers": "0.5.17", "ajv": "6.12.6" }, "bin": { @@ -2690,10 +2388,12 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -2784,18 +2484,18 @@ "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, @@ -2816,14 +2516,15 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2835,7 +2536,7 @@ "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2851,18 +2552,18 @@ } }, "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "dependencies": { "lodash": "^4.17.14" } }, "node_modules/axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", + "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", "dev": true, "engines": { "node": ">=4" @@ -2942,36 +2643,6 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -2999,16 +2670,16 @@ "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { "node": ">=6" @@ -3099,17 +2770,6 @@ "node": ">=6" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001317", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz", - "integrity": "sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, "node_modules/chai-a11y-axe": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/chai-a11y-axe/-/chai-a11y-axe-1.4.0.tgz", @@ -3167,9 +2827,9 @@ "dev": true }, "node_modules/chrome-launcher": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz", - "integrity": "sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz", + "integrity": "sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==", "dev": true, "dependencies": { "@types/node": "*", @@ -3276,7 +2936,7 @@ "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, "engines": { "node": ">=0.8" @@ -3285,7 +2945,7 @@ "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "engines": { "iojs": ">= 1.0.0", @@ -3316,24 +2976,15 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/command-line-args": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", @@ -3350,14 +3001,14 @@ } }, "node_modules/command-line-usage": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz", - "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, "dependencies": { - "array-back": "^4.0.1", + "array-back": "^4.0.2", "chalk": "^2.4.2", - "table-layout": "^1.0.1", + "table-layout": "^1.0.2", "typical": "^5.2.0" }, "engines": { @@ -3383,12 +3034,12 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", "dev": true, "engines": { - "node": ">= 12" + "node": "^12.20.0 || >=14" } }, "node_modules/compare-func": { @@ -3404,15 +3055,135 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concurrently": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.4.0.tgz", + "integrity": "sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "date-fns": "^2.29.1", + "lodash": "^4.17.21", + "rxjs": "^7.0.0", + "shell-quote": "^1.7.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^17.3.1" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/concurrently/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/concurrently/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "node_modules/console-table-printer": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.11.1.tgz", + "integrity": "sha512-8LfFpbF/BczoxPwo2oltto5bph8bJkGOATXsg3E9ddMJOGnWJciKHldx2zDj5XIBflaKzPfVCjOTl6tMh7lErg==", + "dependencies": { + "simple-wcswidth": "^1.0.1" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -3468,9 +3239,9 @@ } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz", + "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==", "dev": true, "dependencies": { "compare-func": "^2.0.0", @@ -3524,9 +3295,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.2.tgz", + "integrity": "sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA==", "dev": true, "hasInstallScript": true, "funding": { @@ -3551,14 +3322,10 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.6.tgz", - "integrity": "sha512-2nEotziYJWtNtoTjKbchj9QrdTT6DBxCvqjNKoDKARw+e2yZmTQCa07uRrykLIZuvSgp69YXLH89UHc0WhdMfQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.1.0.tgz", + "integrity": "sha512-HbWIuR5O+XO5Oj9SZ5bzgrD4nN+rfhrm2PMb0FVx+t+XIvC45n8F0oTNnztXtspWGw0i2IzHaUWFD5LzV1JB4A==", "dev": true, - "dependencies": { - "cosmiconfig": "^7", - "ts-node": "^10.6.0" - }, "engines": { "node": ">=12", "npm": ">=6" @@ -3566,6 +3333,7 @@ "peerDependencies": { "@types/node": "*", "cosmiconfig": ">=7", + "ts-node": ">=10", "typescript": ">=3" } }, @@ -3607,6 +3375,19 @@ "node": ">=8" } }, + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "dev": true, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -3614,9 +3395,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -3633,7 +3414,7 @@ "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3642,7 +3423,7 @@ "node_modules/decamelize-keys": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", "dev": true, "dependencies": { "decamelize": "^1.1.0", @@ -3655,7 +3436,7 @@ "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3664,7 +3445,7 @@ "node_modules/deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", "dev": true }, "node_modules/deep-extend": { @@ -3701,21 +3482,25 @@ } }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, "node_modules/depd": { @@ -3737,9 +3522,9 @@ } }, "node_modules/destroy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.1.1.tgz", - "integrity": "sha512-jxwFW+yrVOLdwqIWvowFOM8UPdhZnvOF6mhXQQLXMxBDLtv2JVJlVJPEwkDv9prqscEtGtmnxuuI6pQKStK1vA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, "engines": { "node": ">= 0.8", @@ -3747,15 +3532,15 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.969999", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.969999.tgz", - "integrity": "sha512-6GfzuDWU0OFAuOvBokXpXPLxjOJ5DZ157Ue3sGQQM3LgAamb8m0R0ruSfN0DDu+XG5XJgT50i6zZ/0o8RglreQ==", + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", "dev": true }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, "engines": { "node": ">=0.3.1" @@ -3786,9 +3571,9 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "dependencies": { "domelementtype": "^2.0.1", @@ -3822,7 +3607,7 @@ "node_modules/dom5/node_modules/@types/parse5": { "version": "2.2.34", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", - "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "integrity": "sha512-p3qOvaRsRpFyEmaS36RtLzpdxZZnmxGuT1GMgzkTtTJVFuEw7KFjGK83MFODpJExgX1bEzy9r0NYjMC3IMfi7w==", "dev": true, "dependencies": { "@types/node": "*" @@ -3835,9 +3620,9 @@ "dev": true }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { @@ -3847,9 +3632,9 @@ ] }, "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "dependencies": { "domelementtype": "^2.2.0" @@ -3862,9 +3647,9 @@ } }, "node_modules/dompurify": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz", - "integrity": "sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz", + "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==" }, "node_modules/domutils": { "version": "2.8.0", @@ -3901,16 +3686,9 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "node_modules/electron-to-chromium": { - "version": "1.4.85", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.85.tgz", - "integrity": "sha512-K9AsQ41WS2bjZUFpRWfvaS4RjEcRCamEkBJN1Z1TQILBfP1H8QnJ9ti0wiLiMv0sRjX3EHKzgs9jDnmGFx2jXg==", - "dev": true, - "peer": true - }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -3920,7 +3698,7 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { "node": ">= 0.8" @@ -3940,6 +3718,8 @@ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-colors": "^4.1.1" }, @@ -3975,31 +3755,34 @@ "dev": true }, "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", "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" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4009,11 +3792,20 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", + "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", "dev": true }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -4043,26 +3835,28 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", + "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -4072,30 +3866,32 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", + "find-up": "^5.0.0", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -4107,6 +3903,25 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, "node_modules/eslint-config-prettier": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", @@ -4123,99 +3938,45 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" } }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" + "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-html": { @@ -4228,9 +3989,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "dependencies": { "array-includes": "^3.1.4", @@ -4238,14 +3999,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { "node": ">=4" @@ -4278,7 +4039,7 @@ "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/eslint-plugin-lit": { @@ -4299,9 +4060,9 @@ } }, "node_modules/eslint-plugin-lit-a11y": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.2.0.tgz", - "integrity": "sha512-1Vy9mR7UGigPnOHj5qJMU3uEK+Qul7dQOg9I6YKEYrw3C3HUx1FS/FbICjZI+n/v+2qvvJhw+5Tghuld2QWUJw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.2.2.tgz", + "integrity": "sha512-9dJfnwPOOA6x7Ow/+GFoOt1hr4mSNrF6KBWQ2OFFAY/9aBYtyBX4fRbpxqS2y3ld66/bjWru2+LGWgNVr5GxzQ==", "dev": true, "dependencies": { "aria-query": "^4.2.2", @@ -4348,16 +4109,6 @@ "eslint": ">=5" } }, - "node_modules/eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/eslint-rule-extender": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/eslint-rule-extender/-/eslint-rule-extender-0.0.1.tgz", @@ -4516,9 +4267,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4564,17 +4315,20 @@ } }, "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", "dev": true, "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { @@ -4586,19 +4340,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -4668,7 +4409,7 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { "node": ">= 0.6" @@ -4739,9 +4480,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -4763,7 +4504,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { @@ -4778,7 +4519,7 @@ "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "dependencies": { "pend": "~1.2.0" @@ -4850,15 +4591,15 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "engines": { "node": ">= 0.6" @@ -4871,9 +4612,9 @@ "dev": true }, "node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -4887,7 +4628,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { @@ -4910,20 +4651,31 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, - "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-caller-file": { @@ -4936,14 +4688,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4997,15 +4749,15 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -5031,7 +4783,7 @@ "node_modules/global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", "dev": true, "dependencies": { "ini": "^1.3.4" @@ -5040,16 +4792,6 @@ "node": ">=4" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -5071,9 +4813,15 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, "node_modules/hard-rejection": { @@ -5098,9 +4846,9 @@ } }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5109,12 +4857,24 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -5211,16 +4971,16 @@ "node_modules/http-errors/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { "agent-base": "6", @@ -5240,15 +5000,15 @@ } }, "node_modules/husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz", + "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==", "dev": true, "bin": { "husky": "lib/bin.js" }, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/typicode" @@ -5323,7 +5083,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -5341,7 +5101,7 @@ "node_modules/inflation": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -5350,7 +5110,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -5384,15 +5144,15 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "node_modules/is-bigint": { @@ -5435,10 +5195,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz", + "integrity": "sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -5448,9 +5223,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -5492,7 +5267,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5540,7 +5315,7 @@ "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, "node_modules/is-negative-zero": { @@ -5565,9 +5340,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" @@ -5591,7 +5366,7 @@ "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5620,10 +5395,13 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5673,7 +5451,7 @@ "node_modules/is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, "dependencies": { "text-extensions": "^1.0.0" @@ -5685,7 +5463,7 @@ "node_modules/is-valid-element-name": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-element-name/-/is-valid-element-name-1.0.0.tgz", - "integrity": "sha1-Ju8/12zfHxItEFQG4y01sN4AWYE=", + "integrity": "sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==", "dev": true, "dependencies": { "is-potential-custom-element-name": "^1.0.0" @@ -5718,13 +5496,13 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, "engines": { "node": ">= 8.0.0" @@ -5736,7 +5514,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/istanbul-lib-coverage": { @@ -5784,9 +5562,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -5796,18 +5574,18 @@ "node": ">=8" } }, - "node_modules/jpeg-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", - "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==", - "dev": true - }, "node_modules/js-levenshtein-esm": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz", "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==", "dev": true }, + "node_modules/js-sdsl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", + "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "dev": true + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5826,19 +5604,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5854,23 +5619,19 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "peer": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" } }, "node_modules/jsonc-parser": { @@ -5894,7 +5655,7 @@ "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" @@ -5917,9 +5678,9 @@ } }, "node_modules/jsrsasign": { - "version": "10.5.12", - "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-10.5.12.tgz", - "integrity": "sha512-YE03UOxqAkF7smFH/WKsDO8uPsvK3n+OUaT4qV77YwGJ+IiWwNyBh7XILQ+k1BSIdrsMWsEb2vyoBAw6aP5EBQ==", + "version": "10.5.27", + "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-10.5.27.tgz", + "integrity": "sha512-1F4LmDeJZHYwoVvB44jEo2uZL3XuwYNzXCDOu53Ui6vqofGQ/gCYDmaxfVZtN0TGd92UKXr/BONcfrPonUIcQQ==", "peer": true, "funding": { "url": "https://github.com/kjur/jsrsasign#donations" @@ -6051,15 +5812,15 @@ } }, "node_modules/language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, "node_modules/language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, "dependencies": { "language-subtag-registry": "~0.3.2" @@ -6100,13 +5861,13 @@ "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true, "engines": { "node": ">=10" @@ -6119,45 +5880,152 @@ "dev": true }, "node_modules/lint-staged": { - "version": "12.3.5", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.5.tgz", - "integrity": "sha512-oOH36RUs1It7b9U/C7Nl/a0sLfoIBcMB8ramiB3nuJ6brBqzsWiUAFSR5DQ3yyP/OR7XKMpijtgKl2DV1lQ3lA==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", "dev": true, "dependencies": { "cli-truncate": "^3.1.0", - "colorette": "^2.0.16", - "commander": "^8.3.0", - "debug": "^4.3.3", - "execa": "^5.1.1", - "lilconfig": "2.0.4", - "listr2": "^4.0.1", - "micromatch": "^4.0.4", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "supports-color": "^9.2.1", - "yaml": "^1.10.2" + "yaml": "^2.1.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.13.1 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/supports-color": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", - "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==", + "node_modules/lint-staged/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "dev": true, + "engines": { + "node": ">= 14" } }, "node_modules/listr2": { @@ -6280,13 +6148,13 @@ } }, "node_modules/lit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.2.1.tgz", - "integrity": "sha512-dSe++R50JqrvNGXmI9OE13de1z5U/Y3J2dTm/9GC86vedI8ILoR8ZGnxfThFpvQ9m0lR0qRnIR4IiKj/jDCfYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.3.1.tgz", + "integrity": "sha512-TejktDR4mqG3qB32Y8Lm5Lye3c8SUehqz7qRsxe1PqGYL6me2Ef+jeQAEqh20BnnGncv4Yxy2njEIT0kzK1WCw==", "dependencies": { - "@lit/reactive-element": "^1.3.0", + "@lit/reactive-element": "^1.4.0", "lit-element": "^3.2.0", - "lit-html": "^2.2.0" + "lit-html": "^2.3.0" } }, "node_modules/lit-element": { @@ -6303,23 +6171,23 @@ "integrity": "sha512-B9btcSgPYb1q4oSOb/PrOT6Z/H+r6xuNzfH4lFli/AWhYwdtrgQkQWBbIc6mdnf6E2IL3gDXdkkqNktpU0OZQA==" }, "node_modules/lit/node_modules/@lit/reactive-element": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.3.1.tgz", - "integrity": "sha512-nOJARIr3pReqK3hfFCSW2Zg/kFcFsSAlIE7z4a0C9D2dPrgD/YSn3ZP2ET/rxKB65SXyG7jJbkynBRm+tGlacw==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.1.tgz", + "integrity": "sha512-qDv4851VFSaBWzpS02cXHclo40jsbAjRXnebNXpm0uVg32kCneZPo9RYVQtrTNICtZ+1wAYHu1ZtxWSWMbKrBw==" }, "node_modules/lit/node_modules/lit-element": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.0.tgz", - "integrity": "sha512-HbE7yt2SnUtg5DCrWt028oaU4D5F4k/1cntAFHTkzY8ZIa8N0Wmu92PxSxucsQSOXlODFrICkQ5x/tEshKi13g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", + "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", "dependencies": { "@lit/reactive-element": "^1.3.0", "lit-html": "^2.2.0" } }, "node_modules/lit/node_modules/lit-html": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.2.1.tgz", - "integrity": "sha512-AiJ/Rs0awjICs2FioTnHSh+Np5dhYSkyRczKy3wKjp8qjLhr1Ov+GiHrUQNdX8ou1LMuznpIME990AZsa/tR8g==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.3.1.tgz", + "integrity": "sha512-FyKH6LTW6aBdkfNhNSHyZTnLgJSTe5hMk7HFtc/+DcN1w74C215q8B+Cfxc2OuIEpBNcEKxgF64qL8as30FDHA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -6348,13 +6216,13 @@ "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "node_modules/lodash.merge": { @@ -6363,12 +6231,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "node_modules/log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -6526,9 +6388,9 @@ } }, "node_modules/marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", + "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==", "bin": { "marked": "bin/marked.js" }, @@ -6537,15 +6399,15 @@ } }, "node_modules/marky": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", - "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "dev": true }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "engines": { "node": ">= 0.6" @@ -6604,30 +6466,18 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -6680,9 +6530,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "node_modules/minimist-options": { @@ -6735,9 +6585,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -6749,7 +6599,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/negotiator": { @@ -6797,32 +6647,25 @@ "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true, - "peer": true - }, "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", @@ -6839,9 +6682,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6875,9 +6718,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6893,14 +6736,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -6956,7 +6799,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" @@ -6980,7 +6823,7 @@ "node_modules/only": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, "node_modules/open": { @@ -7063,12 +6906,12 @@ } }, "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/parent-module": { @@ -7137,7 +6980,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7179,16 +7022,9 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "peer": true - }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -7201,25 +7037,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pixelmatch": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz", - "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==", + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true, - "dependencies": { - "pngjs": "^4.0.1" - }, "bin": { - "pixelmatch": "bin/pixelmatch" - } - }, - "node_modules/pixelmatch/node_modules/pngjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz", - "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==", - "dev": true, + "pidtree": "bin/pidtree.js" + }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10" } }, "node_modules/pkg-dir": { @@ -7286,102 +7113,43 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/playwright": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.20.0.tgz", - "integrity": "sha512-YcFXhXttk9yvpc8PMbfvts6KEopXjxdBh47BdOiA7xhjF/gkXeSM0Hs9CSdbL9mp2xtlB5xqE7+D+F2soQOjbA==", + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.26.0.tgz", + "integrity": "sha512-XxTVlvFEYHdatxUkh1KiPq9BclNtFKMi3BgQnl/aactmhN4G9AkZUXwt0ck6NDAOrDFlfibhbM7A1kZwQJKSBw==", "dev": true, "hasInstallScript": true, "dependencies": { - "playwright-core": "1.20.0" + "playwright-core": "1.26.0" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/playwright-core": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.20.0.tgz", - "integrity": "sha512-d25IRcdooS278Cijlp8J8A5fLQZ+/aY3dKRJvgX5yjXA69N0huIUdnh3xXSgn+LsQ9DCNmB7Ngof3eY630jgdA==", + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.26.0.tgz", + "integrity": "sha512-p8huU8eU4gD3VkJd3DA1nA7R3XA6rFvFL+1RYS96cSljCF2yJE9CWEHTPF4LqX8KN9MoWCrAfVKP5381X3CZqg==", "dev": true, - "dependencies": { - "colors": "1.4.0", - "commander": "8.3.0", - "debug": "4.3.3", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "jpeg-js": "0.4.3", - "mime": "3.0.0", - "pixelmatch": "5.2.1", - "pngjs": "6.0.0", - "progress": "2.0.3", - "proper-lockfile": "4.1.2", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "socks-proxy-agent": "6.1.1", - "stack-utils": "2.0.5", - "ws": "8.4.2", - "yauzl": "2.10.0", - "yazl": "2.5.1" - }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=12" - } - }, - "node_modules/playwright-core/node_modules/ws": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", - "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", - "dev": true, - "engines": { - "node": ">=12.13.0" + "node": ">=14" } }, "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" }, "engines": { "node": ">= 0.12.0" @@ -7397,12 +7165,12 @@ } }, "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -7418,9 +7186,9 @@ } }, "node_modules/prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "engines": { "node": ">=6" } @@ -7434,17 +7202,6 @@ "node": ">=0.4.0" } }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -7471,16 +7228,16 @@ } }, "node_modules/puppeteer-core": { - "version": "13.5.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.5.1.tgz", - "integrity": "sha512-dobVqWjV34ilyfQHR3BBnCYaekBYTi5MgegEYBRYd3s3uFy8jUpZEEWbaFjG9ETm+LGzR5Lmr0aF6LLuHtiuCg==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", "dev": true, "dependencies": { "cross-fetch": "3.1.5", - "debug": "4.3.3", - "devtools-protocol": "0.0.969999", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", + "https-proxy-agent": "5.0.1", "pkg-dir": "4.2.0", "progress": "2.0.3", "proxy-from-env": "1.1.0", @@ -7517,7 +7274,7 @@ "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true, "engines": { "node": ">=0.6.0", @@ -7525,9 +7282,9 @@ } }, "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "dependencies": { "side-channel": "^1.0.4" @@ -7692,15 +7449,6 @@ "node": ">=8" } }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -7800,6 +7548,23 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -7815,7 +7580,7 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7840,12 +7605,12 @@ } }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -7880,7 +7645,7 @@ "node_modules/resolve-path": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", "dev": true, "dependencies": { "http-errors": "~1.6.2", @@ -7893,7 +7658,7 @@ "node_modules/resolve-path/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, "engines": { "node": ">= 0.6" @@ -7902,7 +7667,7 @@ "node_modules/resolve-path/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "dependencies": { "depd": "~1.1.2", @@ -7917,7 +7682,7 @@ "node_modules/resolve-path/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/resolve-path/node_modules/setprototypeof": { @@ -7939,15 +7704,6 @@ "node": ">=8" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7980,9 +7736,9 @@ } }, "node_modules/rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", + "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -8018,9 +7774,9 @@ } }, "node_modules/rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", "dev": true, "dependencies": { "tslib": "^2.1.0" @@ -8074,6 +7830,12 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -8094,14 +7856,19 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "node_modules/simple-wcswidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz", + "integrity": "sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==" + }, "node_modules/sinon": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.1.tgz", - "integrity": "sha512-8yx2wIvkBjIq/MGY1D9h1LMraYW+z1X0mb648KZnKSdvLasvDu7maa0dFaNYdTDczFgbjNw2tOmWdTk9saVfwQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz", + "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^9.0.0", + "@sinonjs/fake-timers": "^9.1.2", "@sinonjs/samsam": "^6.1.1", "diff": "^5.0.0", "nise": "^5.1.1", @@ -8159,9 +7926,9 @@ } }, "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.1.tgz", + "integrity": "sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==", "dev": true, "engines": { "node": ">=12" @@ -8170,54 +7937,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dev": true, - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, + "node_modules/spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "dev": true + }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -8245,9 +7979,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, "node_modules/split2": { @@ -8259,37 +7993,10 @@ "readable-stream": "^3.0.0" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, "engines": { "node": ">= 0.6" @@ -8378,26 +8085,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8418,7 +8127,7 @@ "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" @@ -8481,22 +8190,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/table-layout": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", @@ -8530,107 +8223,6 @@ "node": ">=8" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -8671,32 +8263,22 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" } }, "node_modules/to-regex-range": { @@ -8732,6 +8314,15 @@ "node": ">=12" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", @@ -8742,12 +8333,12 @@ } }, "node_modules/ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { - "@cspotcode/source-map-support": "0.7.0", + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", @@ -8758,7 +8349,7 @@ "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "bin": { @@ -8794,33 +8385,21 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", - "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tsscmp": { "version": "1.0.6", @@ -8831,6 +8410,27 @@ "node": ">=0.6.x" } }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -8878,9 +8478,9 @@ } }, "node_modules/typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", + "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -8915,9 +8515,9 @@ } }, "node_modules/typescript-template-language-service-decorator": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/typescript-template-language-service-decorator/-/typescript-template-language-service-decorator-2.2.0.tgz", - "integrity": "sha512-xiolqt1i7e22rpqMaprPgSFVgU64u3b9n6EJlAaUYE61jumipKAdI1+O5khPlWslpTUj80YzjUKjJ2jxT0D74w==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/typescript-template-language-service-decorator/-/typescript-template-language-service-decorator-2.3.1.tgz", + "integrity": "sha512-+Q5+cvBtPO4VKNyyI6O+XnIne+/hq/WfNhBaF4hJP8nB8TbikTg+2h9uBMsqduwX1+kVfwG9SBSwMTtvi2Ep7w==", "dev": true }, "node_modules/typical": { @@ -8930,14 +8530,14 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { @@ -8966,7 +8566,7 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { "node": ">= 0.8" @@ -8984,28 +8584,22 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "dev": true, "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/v8-compile-cache-lib": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, "node_modules/v8-to-istanbul": { @@ -9022,15 +8616,6 @@ "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -9044,7 +8629,7 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "engines": { "node": ">= 0.8" @@ -9084,9 +8669,9 @@ } }, "node_modules/vscode-languageserver-types": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", - "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", + "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==", "dev": true }, "node_modules/vscode-nls": { @@ -9267,13 +8852,13 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "engines": { "node": ">=8.3.0" @@ -9291,6 +8876,14 @@ } } }, + "node_modules/xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -9316,9 +8909,9 @@ } }, "node_modules/yargs": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "dev": true, "dependencies": { "cliui": "^7.0.2", @@ -9372,9 +8965,9 @@ } }, "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { "node": ">=12" @@ -9383,26 +8976,17 @@ "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, - "node_modules/yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3" - } - }, "node_modules/ylru": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", - "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", + "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", "dev": true, "engines": { "node": ">= 4.0.0" @@ -9431,20 +9015,6 @@ } }, "dependencies": { - "@advanced-rest-client/arc-demo-helper": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@advanced-rest-client/arc-demo-helper/-/arc-demo-helper-5.0.4.tgz", - "integrity": "sha512-428Pr58NOnRNx6jKmtfLueoZkzW48RhAQnnn4NnJ3bmQPsbjDhT72Kz9k9tSfECzFY1zBhRndtHvyenfwteJMw==", - "dev": true, - "requires": { - "@anypoint-web-components/awc": "^1.0.5", - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/font-roboto": "^3.0.2", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1", - "prismjs": "^1.25.0" - } - }, "@advanced-rest-client/base": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/@advanced-rest-client/base/-/base-0.1.10.tgz", @@ -9467,12 +9037,47 @@ "lit-html": "^1.4.1", "monaco-editor": "^0.29.1", "prismjs": "^1.25.0" + }, + "dependencies": { + "@advanced-rest-client/events": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-0.2.32.tgz", + "integrity": "sha512-utzItgaFzNzHu6GMrSSrnG0OiqLka0N9k4AnD/RIe1sszRTlj3d4JblfjBtZeoC9DmHE3pPZYQ+cBkPkB+Ka8g==" + }, + "@advanced-rest-client/oauth": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/oauth/-/oauth-0.1.0.tgz", + "integrity": "sha512-GQtQzrm2Mi5haq6Iv2Da7OwApK5+bHGvj8tc2aPCUzEeWnsQdI0kP8fOmGuNCLnk8h/FNG+B1ducjGuknChBuw==", + "requires": { + "@advanced-rest-client/events": "^0.2.28" + } + }, + "@anypoint-web-components/awc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", + "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + }, + "@api-client/context-menu": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@api-client/context-menu/-/context-menu-0.2.0.tgz", + "integrity": "sha512-OpOhXaXEihcQHm5WrgbjoHy/aSEzmc3g3s3gkUrqGxyPFGZYD/OF6iNdMV/HIMrjWK2LHw266s/Rxp5L60Kr0g==", + "requires": { + "@anypoint-web-components/awc": "^1.0.5", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + } } }, "@advanced-rest-client/events": { - "version": "0.2.32", - "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-0.2.32.tgz", - "integrity": "sha512-utzItgaFzNzHu6GMrSSrnG0OiqLka0N9k4AnD/RIe1sszRTlj3d4JblfjBtZeoC9DmHE3pPZYQ+cBkPkB+Ka8g==" + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-18.0.2.tgz", + "integrity": "sha512-vlfQUji9dX7LNOmEK6rhAZQTgO2XBQ+Yx7Q+fR1ufe+wP1GoezCg944z9GSr0dIpCuSRxe+jj/n5Lr+G4jmHtQ==" }, "@advanced-rest-client/highlight": { "version": "2.0.2", @@ -9488,6 +9093,23 @@ "lit-html": "^1.4.1", "marked": "^4.0.12", "prismjs": "^1.25.0" + }, + "dependencies": { + "@advanced-rest-client/events": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-0.2.32.tgz", + "integrity": "sha512-utzItgaFzNzHu6GMrSSrnG0OiqLka0N9k4AnD/RIe1sszRTlj3d4JblfjBtZeoC9DmHE3pPZYQ+cBkPkB+Ka8g==" + }, + "@anypoint-web-components/awc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", + "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + } } }, "@advanced-rest-client/http-code-snippets": { @@ -9499,6 +9121,18 @@ "@anypoint-web-components/awc": "^1.0.8", "lit-element": "^2.5.1", "prismjs": "^1.25.0" + }, + "dependencies": { + "@anypoint-web-components/awc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", + "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + } } }, "@advanced-rest-client/icons": { @@ -9516,6 +9150,13 @@ "integrity": "sha512-NjUDtnPO6z8VZoKuzkQAHmjvFwjjRM8Q1UDZ6Qg6xfPMYPyqf2UTGlDo77y6Xx0u8gfU8P4QW9uGVxMaV3nozQ==", "requires": { "@advanced-rest-client/events": "^0.2.29" + }, + "dependencies": { + "@advanced-rest-client/events": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/events/-/events-0.2.32.tgz", + "integrity": "sha512-utzItgaFzNzHu6GMrSSrnG0OiqLka0N9k4AnD/RIe1sszRTlj3d4JblfjBtZeoC9DmHE3pPZYQ+cBkPkB+Ka8g==" + } } }, "@advanced-rest-client/monaco-support": { @@ -9526,340 +9167,121 @@ "lit-element": "^2.4.0" } }, - "@advanced-rest-client/oauth": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@advanced-rest-client/oauth/-/oauth-0.1.0.tgz", - "integrity": "sha512-GQtQzrm2Mi5haq6Iv2Da7OwApK5+bHGvj8tc2aPCUzEeWnsQdI0kP8fOmGuNCLnk8h/FNG+B1ducjGuknChBuw==", - "requires": { - "@advanced-rest-client/events": "^0.2.28" - } - }, "@advanced-rest-client/uuid": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@advanced-rest-client/uuid/-/uuid-4.0.0.tgz", "integrity": "sha512-ln7TGYaiGGRiXFHxo722EPcEDSccq+jclDRYTOTrRp3fTvUrm8P+tHCPFJTGa68Hi/rDhMZN3SkfF3+thtM7eQ==" }, - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } + "@aml-org/amf-antlr-parsers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@aml-org/amf-antlr-parsers/-/amf-antlr-parsers-0.5.17.tgz", + "integrity": "sha512-GHPMGjkcNeTjp+DxASQ/y5oijNiaYPSItHT1YNEkGGZnd+d5MLhrlujIx2cKn7aKcxLNTGY1skNFEIf1jZtWxQ==", + "dev": true }, "@anypoint-web-components/awc": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-1.0.9.tgz", - "integrity": "sha512-oY6fnXDOvE+4QZxEIR8/0gt6rYpEkvFCAx+qPUm4ieAEeGaPjPfm0DTEphTOgTpa0pmxHYrjdE9YZZdTGaAqxg==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@anypoint-web-components/awc/-/awc-3.0.12.tgz", + "integrity": "sha512-jn54YDqYLxSN8byOuvvojwdEMMq3pXce6llZcYCLoEmecoWiqypbN40CA2haW21QmGNrNZZKaFBcWzm4dP5ZcA==", "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1" + "lit": "^2.2.1", + "tslib": "^2.3.1" } }, "@api-client/context-menu": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@api-client/context-menu/-/context-menu-0.2.0.tgz", - "integrity": "sha512-OpOhXaXEihcQHm5WrgbjoHy/aSEzmc3g3s3gkUrqGxyPFGZYD/OF6iNdMV/HIMrjWK2LHw266s/Rxp5L60Kr0g==", - "requires": { - "@anypoint-web-components/awc": "^1.0.5", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true, - "peer": true - }, - "@babel/core": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.7.tgz", - "integrity": "sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==", - "dev": true, - "peer": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.7", - "@babel/parser": "^7.17.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - } - }, - "@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", - "dev": true, - "peer": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - } - }, - "@babel/eslint-plugin": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.17.7.tgz", - "integrity": "sha512-JATUoJJXSgwI0T8juxWYtK1JSgoLpIGUsCHIv+NMXcUDA2vIe6nvAHR9vnuJgs/P1hOFw7vPwibixzfqBBLIVw==", - "dev": true, - "peer": true, - "requires": { - "eslint-rule-composer": "^0.3.0" - } - }, - "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", - "dev": true, - "peer": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "peer": true, + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@api-client/context-menu/-/context-menu-0.4.1.tgz", + "integrity": "sha512-PJ1LWUrreArXLYOfTGLy023xyOQFhcz/xFsqWSY7Ob+V/6TIZ6pEli+kRArhE2FuyZCZa3FPaA0rr7pTOTuaTw==", "requires": { - "@babel/types": "^7.16.7" + "@anypoint-web-components/awc": "^3.0.1", + "lit": "^2.2.2" } }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "peer": true, + "@api-client/core": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@api-client/core/-/core-0.8.0.tgz", + "integrity": "sha512-NExKuzc62Jt5Roi8P2wnOJSajZmzth66+IqS7nE91Mr+h6Mh/Z1ah+RGaDAFmlylSgsP1ZQ5rRHpYHlegC/EAg==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@api-client/json": "^0.1.3", + "@metrichor/jmespath": "^0.3.1", + "@pawel-up/data-mock": "^0.3.0", + "@pawel-up/jexl": "^3.0.0", + "@xmldom/xmldom": "^0.8.2", + "amf-json-ld-lib": "^0.0.14", + "console-table-printer": "^2.11.0", + "ws": "^8.6.0", + "xpath": "^0.0.32" + }, + "dependencies": { + "ws": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", + "requires": {} + } } }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.17.0" - } + "@api-client/json": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@api-client/json/-/json-0.1.4.tgz", + "integrity": "sha512-CFyzxmQ70bNvYQWp8OyhX10ox85pZQhS93TXLNo/djtTf4qncYXkmf2OBV0AAONigAcpLYTRpAI/PUPRKOQMkw==" }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, - "peer": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "peer": true - }, - "@babel/helpers": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.7.tgz", - "integrity": "sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w==", - "dev": true, - "peer": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, - "@babel/parser": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.7.tgz", - "integrity": "sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA==", - "dev": true, - "peer": true - }, "@babel/runtime": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.7.tgz", - "integrity": "sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.7.tgz", - "integrity": "sha512-TvliGJjhxis5m7xIMvlXH/xG8Oa/LK0SCUCyfKD6nLi42n5fB4WibDJ0g9trmmBB6hwpMNx+Lzbxy9/4gpMaVw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", + "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", "dev": true, "requires": { - "core-js-pure": "^3.20.2", + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" } }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, "@commitlint/cli": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.2.1.tgz", - "integrity": "sha512-zfKf+B9osuiDbxGMJ7bWFv7XFCW8wlQYPtCffNp7Ukdb7mdrep5R9e03vPUZysnwp8NX6hg05kPEvnD/wRIGWw==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.1.2.tgz", + "integrity": "sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw==", "dev": true, "requires": { - "@commitlint/format": "^16.2.1", - "@commitlint/lint": "^16.2.1", - "@commitlint/load": "^16.2.1", - "@commitlint/read": "^16.2.1", - "@commitlint/types": "^16.2.1", + "@commitlint/format": "^17.0.0", + "@commitlint/lint": "^17.1.0", + "@commitlint/load": "^17.1.2", + "@commitlint/read": "^17.1.0", + "@commitlint/types": "^17.0.0", + "execa": "^5.0.0", "lodash": "^4.17.19", "resolve-from": "5.0.0", "resolve-global": "1.0.0", @@ -9867,48 +9289,68 @@ } }, "@commitlint/config-conventional": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-16.2.1.tgz", - "integrity": "sha512-cP9gArx7gnaj4IqmtCIcHdRjTYdRUi6lmGE+lOzGGjGe45qGOS8nyQQNvkNy2Ey2VqoSWuXXkD8zCUh6EHf1Ww==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.1.0.tgz", + "integrity": "sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA==", "dev": true, "requires": { - "conventional-changelog-conventionalcommits": "^4.3.1" + "conventional-changelog-conventionalcommits": "^5.0.0" } }, "@commitlint/config-validator": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-16.2.1.tgz", - "integrity": "sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.1.0.tgz", + "integrity": "sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==", "dev": true, "requires": { - "@commitlint/types": "^16.2.1", - "ajv": "^6.12.6" + "@commitlint/types": "^17.0.0", + "ajv": "^8.11.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "@commitlint/ensure": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-16.2.1.tgz", - "integrity": "sha512-/h+lBTgf1r5fhbDNHOViLuej38i3rZqTQnBTk+xEg+ehOwQDXUuissQ5GsYXXqI5uGy+261ew++sT4EA3uBJ+A==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.0.0.tgz", + "integrity": "sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==", "dev": true, "requires": { - "@commitlint/types": "^16.2.1", + "@commitlint/types": "^17.0.0", "lodash": "^4.17.19" } }, "@commitlint/execute-rule": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-16.2.1.tgz", - "integrity": "sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz", + "integrity": "sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==", "dev": true }, "@commitlint/format": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-16.2.1.tgz", - "integrity": "sha512-Yyio9bdHWmNDRlEJrxHKglamIk3d6hC0NkEUW6Ti6ipEh2g0BAhy8Od6t4vLhdZRa1I2n+gY13foy+tUgk0i1Q==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.0.0.tgz", + "integrity": "sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==", "dev": true, "requires": { - "@commitlint/types": "^16.2.1", - "chalk": "^4.0.0" + "@commitlint/types": "^17.0.0", + "chalk": "^4.1.0" }, "dependencies": { "ansi-styles": { @@ -9963,19 +9405,19 @@ } }, "@commitlint/is-ignored": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-16.2.1.tgz", - "integrity": "sha512-exl8HRzTIfb1YvDJp2b2HU5z1BT+9tmgxR2XF0YEzkMiCIuEKh+XLeocPr1VcvAKXv3Cmv5X/OfNRp+i+/HIhQ==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.1.0.tgz", + "integrity": "sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ==", "dev": true, "requires": { - "@commitlint/types": "^16.2.1", - "semver": "7.3.5" + "@commitlint/types": "^17.0.0", + "semver": "7.3.7" }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -9984,36 +9426,43 @@ } }, "@commitlint/lint": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-16.2.1.tgz", - "integrity": "sha512-fNINQ3X2ZqsCkNB3Z0Z8ElmhewqrS3gy2wgBTx97BkcjOWiyPAGwDJ752hwrsUnWAVBRztgw826n37xPzxsOgg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.1.0.tgz", + "integrity": "sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ==", "dev": true, "requires": { - "@commitlint/is-ignored": "^16.2.1", - "@commitlint/parse": "^16.2.1", - "@commitlint/rules": "^16.2.1", - "@commitlint/types": "^16.2.1" + "@commitlint/is-ignored": "^17.1.0", + "@commitlint/parse": "^17.0.0", + "@commitlint/rules": "^17.0.0", + "@commitlint/types": "^17.0.0" } }, "@commitlint/load": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.2.1.tgz", - "integrity": "sha512-oSpz0jTyVI/A1AIImxJINTLDOMB8YF7lWGm+Jg5wVWM0r7ucpuhyViVvpSRTgvL0z09oIxlctyFGWUQQpI42uw==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.1.2.tgz", + "integrity": "sha512-sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmgg==", "dev": true, "requires": { - "@commitlint/config-validator": "^16.2.1", - "@commitlint/execute-rule": "^16.2.1", - "@commitlint/resolve-extends": "^16.2.1", - "@commitlint/types": "^16.2.1", - "@types/node": ">=12", - "chalk": "^4.0.0", + "@commitlint/config-validator": "^17.1.0", + "@commitlint/execute-rule": "^17.0.0", + "@commitlint/resolve-extends": "^17.1.0", + "@commitlint/types": "^17.0.0", + "@types/node": "^14.0.0", + "chalk": "^4.1.0", "cosmiconfig": "^7.0.0", - "cosmiconfig-typescript-loader": "^1.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", "lodash": "^4.17.19", "resolve-from": "^5.0.0", - "typescript": "^4.4.3" + "ts-node": "^10.8.1", + "typescript": "^4.6.4" }, "dependencies": { + "@types/node": { + "version": "14.18.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.29.tgz", + "integrity": "sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==", + "dev": true + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -10066,42 +9515,43 @@ } }, "@commitlint/message": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-16.2.1.tgz", - "integrity": "sha512-2eWX/47rftViYg7a3axYDdrgwKv32mxbycBJT6OQY/MJM7SUfYNYYvbMFOQFaA4xIVZt7t2Alyqslbl6blVwWw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.0.0.tgz", + "integrity": "sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==", "dev": true }, "@commitlint/parse": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-16.2.1.tgz", - "integrity": "sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.0.0.tgz", + "integrity": "sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==", "dev": true, "requires": { - "@commitlint/types": "^16.2.1", + "@commitlint/types": "^17.0.0", "conventional-changelog-angular": "^5.0.11", "conventional-commits-parser": "^3.2.2" } }, "@commitlint/read": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-16.2.1.tgz", - "integrity": "sha512-tViXGuaxLTrw2r7PiYMQOFA2fueZxnnt0lkOWqKyxT+n2XdEMGYcI9ID5ndJKXnfPGPppD0w/IItKsIXlZ+alw==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.1.0.tgz", + "integrity": "sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g==", "dev": true, "requires": { - "@commitlint/top-level": "^16.2.1", - "@commitlint/types": "^16.2.1", + "@commitlint/top-level": "^17.0.0", + "@commitlint/types": "^17.0.0", "fs-extra": "^10.0.0", - "git-raw-commits": "^2.0.0" + "git-raw-commits": "^2.0.0", + "minimist": "^1.2.6" } }, "@commitlint/resolve-extends": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-16.2.1.tgz", - "integrity": "sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz", + "integrity": "sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==", "dev": true, "requires": { - "@commitlint/config-validator": "^16.2.1", - "@commitlint/types": "^16.2.1", + "@commitlint/config-validator": "^17.1.0", + "@commitlint/types": "^17.0.0", "import-fresh": "^3.0.0", "lodash": "^4.17.19", "resolve-from": "^5.0.0", @@ -10109,40 +9559,40 @@ } }, "@commitlint/rules": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-16.2.1.tgz", - "integrity": "sha512-ZFezJXQaBBso+BOTre/+1dGCuCzlWVaeLiVRGypI53qVgPMzQqZhkCcrxBFeqB87qeyzr4A4EoG++IvITwwpIw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.0.0.tgz", + "integrity": "sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==", "dev": true, "requires": { - "@commitlint/ensure": "^16.2.1", - "@commitlint/message": "^16.2.1", - "@commitlint/to-lines": "^16.2.1", - "@commitlint/types": "^16.2.1", + "@commitlint/ensure": "^17.0.0", + "@commitlint/message": "^17.0.0", + "@commitlint/to-lines": "^17.0.0", + "@commitlint/types": "^17.0.0", "execa": "^5.0.0" } }, "@commitlint/to-lines": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-16.2.1.tgz", - "integrity": "sha512-9/VjpYj5j1QeY3eiog1zQWY6axsdWAc0AonUUfyZ7B0MVcRI0R56YsHAfzF6uK/g/WwPZaoe4Lb1QCyDVnpVaQ==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.0.0.tgz", + "integrity": "sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==", "dev": true }, "@commitlint/top-level": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-16.2.1.tgz", - "integrity": "sha512-lS6GSieHW9y6ePL73ied71Z9bOKyK+Ib9hTkRsB8oZFAyQZcyRwq2w6nIa6Fngir1QW51oKzzaXfJL94qwImyw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.0.0.tgz", + "integrity": "sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==", "dev": true, "requires": { "find-up": "^5.0.0" } }, "@commitlint/types": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-16.2.1.tgz", - "integrity": "sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.0.0.tgz", + "integrity": "sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==", "dev": true, "requires": { - "chalk": "^4.0.0" + "chalk": "^4.1.0" }, "dependencies": { "ansi-styles": { @@ -10196,19 +9646,13 @@ } } }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true - }, "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "requires": { - "@cspotcode/source-map-consumer": "0.8.0" + "@jridgewell/trace-mapping": "0.3.9" } }, "@emmetio/extract-abbreviation": { @@ -10218,26 +9662,26 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.4.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -10252,23 +9696,23 @@ } }, "@esm-bundle/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-6Tx35wWiNw7X0nLY9RMx8v3EL8SacCFW+eEZOE9Hc+XxmU5HFE2AFEg+GehUZpiyDGwVvPH75ckGlqC7coIPnA==", + "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", "dev": true, "requires": { "@types/chai": "^4.2.12" } }, "@github/time-elements": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@github/time-elements/-/time-elements-3.1.2.tgz", - "integrity": "sha512-YVtZVLBikP6I7na22kfB9PKIseISwX41MFJ7lPuNz1VVH2IR5cpRRU6F1X6kcchPChljuvMUR4OiwMWHOJQ8kQ==" + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@github/time-elements/-/time-elements-3.1.4.tgz", + "integrity": "sha512-DTe/w0uKVeciKzGtYadNdfS8D86pXdGF+OrKg+vi8PKlotJ45zAc26zNpmmfCcMblBBg2+uoi3OxmUm7am/0sg==" }, "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -10276,6 +9720,18 @@ "minimatch": "^3.0.4" } }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -10283,25 +9739,22 @@ "dev": true }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true, - "peer": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true, - "peer": true + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "peer": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -10516,6 +9969,11 @@ "tslib": "^2.1.0" } }, + "@metrichor/jmespath": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@metrichor/jmespath/-/jmespath-0.3.1.tgz", + "integrity": "sha512-X/S90FG+VlEWGNEptEpZ15QN7h9aRhdOZm3yjE4lHItig8lSpJbmYDqAPo3iKc4CjUGfUSv4z+VhKrFw6iHBMg==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -10561,330 +10019,84 @@ } }, "@open-wc/dedupe-mixin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.0.tgz", - "integrity": "sha512-UfdK1MPnR6T7f3svzzYBfu3qBkkZ/KsPhcpc3JYhsUY4hbpwNF9wEQtD4Z+/mRqMTJrKg++YSxIxE0FBhY3RIw==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.1.tgz", + "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==" }, "@open-wc/eslint-config": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@open-wc/eslint-config/-/eslint-config-7.0.0.tgz", - "integrity": "sha512-iuWgs5XSPqb9zhdHIeKDSzepnjRyhoYSoS6RI+vyLMfVFRxZoqt0Yv4Q8xJ8yByXbJyakmvpukTyEKbcuIQ7Uw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@open-wc/eslint-config/-/eslint-config-8.0.2.tgz", + "integrity": "sha512-ymOFXtsAXv1tkpW48touNZVGfV6X/ii/Ir+IZfFQi3KicJ/HF5wqK1x8Un4ZZzXravGqPqGfXCycKeyJf8s+pg==", "dev": true, "requires": { - "eslint": "^7.6.0", - "eslint-config-airbnb-base": "^14.0.0", + "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-html": "^6.0.0", - "eslint-plugin-import": "^2.18.2", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-lit": "^1.2.0", - "eslint-plugin-lit-a11y": "^2.1.0", + "eslint-plugin-lit-a11y": "^2.2.2", "eslint-plugin-no-only-tests": "^2.4.0", "eslint-plugin-wc": "^1.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - } - }, - "eslint-config-airbnb-base": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.2" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } } }, "@open-wc/scoped-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.0.1.tgz", - "integrity": "sha512-JS6ozxUFwFX3+Er91v9yQzNIaFn7OnE0iESKTbFvkkKdNwvAPtp1fpckBKIvWk8Ae9ZcoI9DYZuT2DDbMPcadA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.1.3.tgz", + "integrity": "sha512-WoQD5T8Me9obek+iyjgrAMw9wxZZg4ytIteIN1i9LXW2KohezUp0LTOlWgBajWJo0/bpjUKiODX73cMYL2i3hw==", "dev": true, "requires": { "@lit/reactive-element": "^1.0.0", - "@open-wc/dedupe-mixin": "^1.3.0", - "@webcomponents/scoped-custom-element-registry": "^0.0.3" + "@open-wc/dedupe-mixin": "^1.3.0" }, "dependencies": { "@lit/reactive-element": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.3.1.tgz", - "integrity": "sha512-nOJARIr3pReqK3hfFCSW2Zg/kFcFsSAlIE7z4a0C9D2dPrgD/YSn3ZP2ET/rxKB65SXyG7jJbkynBRm+tGlacw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.1.tgz", + "integrity": "sha512-qDv4851VFSaBWzpS02cXHclo40jsbAjRXnebNXpm0uVg32kCneZPo9RYVQtrTNICtZ+1wAYHu1ZtxWSWMbKrBw==", "dev": true } } }, "@open-wc/semantic-dom-diff": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.19.5.tgz", - "integrity": "sha512-Wi0Fuj3dzqlWClU0y+J4k/nqTcH0uwgOWxZXPyeyG3DdvuyyjgiT4L4I/s6iVShWQvvEsyXnj7yVvixAo3CZvg==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.19.7.tgz", + "integrity": "sha512-ahwHb7arQXXnkIGCrOsM895FJQrU47VWZryCsSSzl5nB3tJKcJ8yjzQ3D/yqZn6v8atqOz61vaY05aNsqoz3oA==", "dev": true, "requires": { - "@types/chai": "^4.2.11", - "@web/test-runner-commands": "^0.5.7" + "@types/chai": "^4.3.1", + "@web/test-runner-commands": "^0.6.1" } }, "@open-wc/testing": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.1.2.tgz", - "integrity": "sha512-2KjEszLItrIEZwCLFjWOSy4rnLzLOpgckrKfZjNA39PpFR3xD9bqYU30TTnLRHBk2B/0ZUbHglyca3iwcF964w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.1.6.tgz", + "integrity": "sha512-MIf9cBtac4/UBE5a+R5cXiRhOGfzetsV+ZPFc188AfkPDPbmffHqjrRoCyk4B/qS6fLEulSBMLSaQ+6ze971gQ==", "dev": true, "requires": { - "@esm-bundle/chai": "^4.3.4", + "@esm-bundle/chai": "^4.3.4-fix.0", "@open-wc/chai-dom-equals": "^0.12.36", - "@open-wc/semantic-dom-diff": "^0.19.5", + "@open-wc/semantic-dom-diff": "^0.19.7", "@open-wc/testing-helpers": "^2.1.2", "@types/chai": "^4.2.11", - "@types/chai-dom": "^0.0.9", + "@types/chai-dom": "^0.0.12", "@types/sinon-chai": "^3.2.3", "chai-a11y-axe": "^1.3.2" } }, "@open-wc/testing-helpers": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.1.2.tgz", - "integrity": "sha512-NEdsV47DnOWaw3Wpp85p4qZ6bdubtGPdlTiblk8vSf2HJ2sR4b3ckyRWzsj/k+pcxrDGt8z0Awz71p+048Rrfg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.1.3.tgz", + "integrity": "sha512-hQujGaWncmWLx/974jq5yf2jydBNNTwnkISw2wLGiYgX34+3R6/ns301Oi9S3Il96Kzd8B7avdExp/gDgqcF5w==", "dev": true, "requires": { - "@open-wc/scoped-elements": "^2.0.1", + "@open-wc/scoped-elements": "^2.1.3", "lit": "^2.0.0", "lit-html": "^2.0.0" }, "dependencies": { "lit-html": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.2.1.tgz", - "integrity": "sha512-AiJ/Rs0awjICs2FioTnHSh+Np5dhYSkyRczKy3wKjp8qjLhr1Ov+GiHrUQNdX8ou1LMuznpIME990AZsa/tR8g==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.3.1.tgz", + "integrity": "sha512-FyKH6LTW6aBdkfNhNSHyZTnLgJSTe5hMk7HFtc/+DcN1w74C215q8B+Cfxc2OuIEpBNcEKxgF64qL8as30FDHA==", "dev": true, "requires": { "@types/trusted-types": "^2.0.2" @@ -10893,31 +10105,33 @@ } }, "@pawel-up/data-mock": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@pawel-up/data-mock/-/data-mock-0.1.7.tgz", - "integrity": "sha512-1sCVyyiJvN3bAjr5ZPWs4iALchm6v1hZfmowenjabduMVxvx+dAEkeowSyL07F+wWtnFTLvRNvf7DiK6OuwzVA==" + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@pawel-up/data-mock/-/data-mock-0.3.2.tgz", + "integrity": "sha512-OtnZGTpINoY75crmQiJ4jlokxAGSPx+1fLK7vWMizSG/1Vbtau17x6vfOt6GtTjw7tJ4Bkbj11bmjYumLT0r6w==", + "requires": { + "@types/har-format": "^1.2.7" + } }, "@pawel-up/html.md": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@pawel-up/html.md/-/html.md-0.1.0.tgz", "integrity": "sha512-xJjiWGJUOaTZd9W5KgFfrwnjQTDT46lHs3i4zFkBi+nCGk5M/WRDX1RGEfjRAIE5BKvGn/kXeKXbjefNnT6msQ==" }, - "@polymer/font-roboto": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@polymer/font-roboto/-/font-roboto-3.0.2.tgz", - "integrity": "sha512-tx5TauYSmzsIvmSqepUPDYbs4/Ejz2XbZ1IkD7JEGqkdNUJlh+9KU85G56Tfdk/xjEZ8zorFfN09OSwiMrIQWA==", - "dev": true + "@pawel-up/jexl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@pawel-up/jexl/-/jexl-3.0.0.tgz", + "integrity": "sha512-rGg9CQtLzzGCU3KNKRfHfHtaDdvPbcvZiRqNI0rKc8hvgrZzwpNOX60leK3qarXG7dDQ98E9UQHp4yh8pUEJvQ==" }, "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.19.0" } @@ -10943,9 +10157,9 @@ } }, "@sinonjs/fake-timers": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.1.tgz", - "integrity": "sha512-Wp5vwlZ0lOqpSYGKqr53INws9HLkt6JDc/pDZcPf7bchQnrXJMXPns8CXx0hFikMSGSWfvtvvpb2gtMVfkWagA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -10963,33 +10177,33 @@ } }, "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, "@types/accepts": { @@ -11018,15 +10232,15 @@ } }, "@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", + "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==", "dev": true }, "@types/chai-dom": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@types/chai-dom/-/chai-dom-0.0.9.tgz", - "integrity": "sha512-jj4F2NJog2/GBYsyJ8+NvhnWUBbPY4MUAKLdPJE6+568rw12GGXvj0ycUuP5nndVrnJgozmJAoMTvxvjJATXWw==", + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@types/chai-dom/-/chai-dom-0.0.12.tgz", + "integrity": "sha512-4rE7sDw713cV61TYzQbMrPjC4DjNk3x4vk9nAVRNXcSD4p0/5lEEfm0OgoCz5eNuWUXNKA0YiKiH/JDTuKivkA==", "dev": true, "requires": { "@types/chai": "*" @@ -11058,9 +10272,9 @@ } }, "@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", + "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", "dev": true }, "@types/convert-source-map": { @@ -11087,6 +10301,15 @@ "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", "dev": true }, + "@types/dompurify": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-2.3.4.tgz", + "integrity": "sha512-EXzDatIb5EspL2eb/xPGmaC8pePcTHrkDCONjeisusLFrVfl38Pjea/R0YJGu3k9ZQadSvMqW0WXPI2hEo2Ajg==", + "dev": true, + "requires": { + "@types/trusted-types": "*" + } + }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -11094,9 +10317,9 @@ "dev": true }, "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "requires": { "@types/body-parser": "*", @@ -11106,9 +10329,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dev": true, "requires": { "@types/node": "*", @@ -11116,6 +10339,11 @@ "@types/range-parser": "*" } }, + "@types/har-format": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.8.tgz", + "integrity": "sha512-OP6L9VuZNdskgNN3zFQQ54ceYD8OLq5IbqO4VK91ORLfOm7WdT/CiT/pHEBSQEqCInJ2y3O6iCm/zGtPElpgJQ==" + }, "@types/http-assert": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", @@ -11152,10 +10380,16 @@ "@types/istanbul-lib-report": "*" } }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/keygrip": { @@ -11165,9 +10399,9 @@ "dev": true }, "@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.5.tgz", + "integrity": "sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA==", "dev": true, "requires": { "@types/accepts": "*", @@ -11190,9 +10424,9 @@ } }, "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "@types/minimist": { @@ -11208,9 +10442,9 @@ "dev": true }, "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", + "version": "18.7.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", + "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", "dev": true }, "@types/normalize-package-data": { @@ -11253,19 +10487,19 @@ } }, "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dev": true, "requires": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, "@types/sinon": { - "version": "10.0.11", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.11.tgz", - "integrity": "sha512-dmZsHlBsKUtBpHriNjlK0ndlvEh8dcb9uV9Afsbt89QIyydpC7NcR+nWlAhASfy3GHnxTl4FX/aKE7XZUt/B4g==", + "version": "10.0.13", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.13.tgz", + "integrity": "sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ==", "dev": true, "requires": { "@types/sinonjs__fake-timers": "*" @@ -11282,9 +10516,9 @@ } }, "@types/sinonjs__fake-timers": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", + "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", "dev": true }, "@types/trusted-types": { @@ -11302,15 +10536,140 @@ } }, "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, "optional": true, "requires": { "@types/node": "*" } }, + "@typescript-eslint/eslint-plugin": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.0.tgz", + "integrity": "sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/type-utils": "5.38.0", + "@typescript-eslint/utils": "5.38.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.38.0.tgz", + "integrity": "sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/typescript-estree": "5.38.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.38.0.tgz", + "integrity": "sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/visitor-keys": "5.38.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.38.0.tgz", + "integrity": "sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.38.0", + "@typescript-eslint/utils": "5.38.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.38.0.tgz", + "integrity": "sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.0.tgz", + "integrity": "sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/visitor-keys": "5.38.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.38.0.tgz", + "integrity": "sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/typescript-estree": "5.38.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.0.tgz", + "integrity": "sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.38.0", + "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } + } + }, "@web/browser-logs": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", @@ -11330,9 +10689,9 @@ }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -11341,16 +10700,16 @@ } }, "@web/dev-server": { - "version": "0.1.30", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.30.tgz", - "integrity": "sha512-nUKR+lq06gaCvH6vKmfhPe/Kka1Xp7yN1FN5NEx+Yk4+9CyxZ3UJt2eHXedrcz+XCafxExW114ElEDgCahJowg==", + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.34.tgz", + "integrity": "sha512-+te6iwxAQign1KyhHpkR/a3+5qw/Obg/XWCES2So6G5LcZ86zIKXbUpWAJuNOqiBV6eGwqEB1AozKr2Jj7gj/Q==", "dev": true, "requires": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.3.17", - "@web/dev-server-rollup": "^0.3.13", + "@web/dev-server-core": "^0.3.19", + "@web/dev-server-rollup": "^0.3.19", "camelcase": "^6.2.0", "command-line-args": "^5.1.1", "command-line-usage": "^6.1.1", @@ -11363,9 +10722,9 @@ } }, "@web/dev-server-core": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.17.tgz", - "integrity": "sha512-vN1dwQ8yDHGiAvCeUo9xFfjo+pFl8TW+pON7k9kfhbegrrB8CKhJDUxmHbZsyQUmjf/iX57/LhuWj1xGhRL8AA==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", + "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", "dev": true, "requires": { "@types/koa": "^2.11.6", @@ -11373,7 +10732,7 @@ "@web/parse5-utils": "^1.2.0", "chokidar": "^3.4.3", "clone": "^2.1.2", - "es-module-lexer": "^0.9.0", + "es-module-lexer": "^1.0.0", "get-stream": "^6.0.0", "is-stream": "^2.0.0", "isbinaryfile": "^4.0.6", @@ -11389,16 +10748,16 @@ } }, "@web/dev-server-rollup": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.15.tgz", - "integrity": "sha512-hhxvBmNIY19vXeocYB1IBOuhpVpy1L7jbwBarmvC0QJKZsgkxssNTzXJ8iga70c2+H0c/rBz1xUaKuAcov0uOA==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", + "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", "dev": true, "requires": { - "@rollup/plugin-node-resolve": "^11.0.1", - "@web/dev-server-core": "^0.3.16", + "@rollup/plugin-node-resolve": "^13.0.4", + "@web/dev-server-core": "^0.3.19", "nanocolors": "^0.2.1", "parse5": "^6.0.1", - "rollup": "^2.66.1", + "rollup": "^2.67.0", "whatwg-url": "^11.0.0" } }, @@ -11413,17 +10772,17 @@ } }, "@web/test-runner": { - "version": "0.13.27", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.13.27.tgz", - "integrity": "sha512-yVhXK9sPJE2VQs1/KPTIeQvUxh+02OZkn+tgcr0+W8ovvrFD4ucF2X26cpeOTuD+Y67ERUi/EopIze3aelw6sg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.14.0.tgz", + "integrity": "sha512-9xVKnsviCqXL/xi48l0GpDDfvdczZsKHfEhmZglGMTL+I5viDMAj0GGe7fD9ygJ6UT2+056a3RzyIW5x9lZTDQ==", "dev": true, "requires": { "@web/browser-logs": "^0.2.2", "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.24", + "@web/dev-server": "^0.1.33", "@web/test-runner-chrome": "^0.10.7", - "@web/test-runner-commands": "^0.6.0", - "@web/test-runner-core": "^0.10.22", + "@web/test-runner-commands": "^0.6.3", + "@web/test-runner-core": "^0.10.27", "@web/test-runner-mocha": "^0.7.5", "camelcase": "^6.2.0", "command-line-args": "^5.1.1", @@ -11434,24 +10793,6 @@ "nanocolors": "^0.2.1", "portfinder": "^1.0.28", "source-map": "^0.7.3" - }, - "dependencies": { - "@web/test-runner-commands": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.1.tgz", - "integrity": "sha512-P4aQqp0duumeGdGxQ8TwLnplkrXzpLqb47eSEEqBRS//C1H7s6VskaqEng+k0dbk+cSpEa4RuZGY/G5k8aTjTw==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "mkdirp": "^1.0.4" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } } }, "@web/test-runner-chrome": { @@ -11467,19 +10808,19 @@ } }, "@web/test-runner-commands": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.5.13.tgz", - "integrity": "sha512-FXnpUU89ALbRlh9mgBd7CbSn5uzNtr8gvnQZPOvGLDAJ7twGvZdUJEAisPygYx2BLPSFl3/Mre8pH8zshJb8UQ==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.5.tgz", + "integrity": "sha512-W+wLg10jEAJY9N6tNWqG1daKmAzxGmTbO/H9fFfcgOgdxdn+hHiR4r2/x1iylKbFLujHUQlnjNQeu2d6eDPFqg==", "dev": true, "requires": { - "@web/test-runner-core": "^0.10.20", + "@web/test-runner-core": "^0.10.27", "mkdirp": "^1.0.4" } }, "@web/test-runner-core": { - "version": "0.10.25", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.25.tgz", - "integrity": "sha512-gH8VXyZbwf+sqPiH4cnXYf86SqwBLtou+0LFFCLaDQRbMlrfi5byAISt39fNX2ejd46bF1cZn6DK+mzb/Xjccw==", + "version": "0.10.27", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", + "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.11", @@ -11490,7 +10831,7 @@ "@types/istanbul-lib-coverage": "^2.0.3", "@types/istanbul-reports": "^3.0.0", "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.16", + "@web/dev-server-core": "^0.3.18", "chokidar": "^3.4.3", "cli-cursor": "^3.1.0", "co-body": "^6.1.0", @@ -11508,20 +10849,12 @@ "open": "^8.0.2", "picomatch": "^2.2.2", "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } } }, "@web/test-runner-coverage-v8": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.8.tgz", - "integrity": "sha512-Ib0AscR8Xf9E/V7rf3XOVQTe4vKIbwSTupxV1xGgzj3x4RKUuMUg9FLz9EigZ5iN0mOzZKDllyRS523hbdhDtA==", + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.9.tgz", + "integrity": "sha512-y9LWL4uY25+fKQTljwr0XTYjeWIwU4h8eYidVuLoW3n1CdFkaddv+smrGzzF5j8XY+Mp6TmV9NdxjvMWqVkDdw==", "dev": true, "requires": { "@web/test-runner-core": "^0.10.20", @@ -11541,21 +10874,20 @@ } }, "@web/test-runner-playwright": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.8.8.tgz", - "integrity": "sha512-bhb0QVldfDoPJqOj5mm1hpE6FReyddc/iIuAkVf/kbJvgggTCT2bWGxUvXJlGzf+4epmDhU+hSTfEoLL9R2vGw==", + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.8.10.tgz", + "integrity": "sha512-DEnPihsxjJAPU/UPe3Wb6GVES4xICUrue0UVVxJL651m4zREuUHwSFm4S+cVq78qYcro3WuvCAnucdVB8bUCNw==", "dev": true, "requires": { "@web/test-runner-core": "^0.10.20", "@web/test-runner-coverage-v8": "^0.4.8", - "playwright": "^1.14.0" + "playwright": "^1.22.2" } }, - "@webcomponents/scoped-custom-element-registry": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@webcomponents/scoped-custom-element-registry/-/scoped-custom-element-registry-0.0.3.tgz", - "integrity": "sha512-lpSzgDCGbM99dytb3+J3Suo4+Bk1E13MPnWB42JK8GwxSAxFz+tC7TTv2hhDSIE2IirGNKNKCf3m08ecu6eAsQ==", - "dev": true + "@xmldom/xmldom": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.2.tgz", + "integrity": "sha512-+R0juSseERyoPvnBQ/cZih6bpF7IpCXlWbHRoCRzYzqpz6gWHOgf8o4MOEf6KBVuOyqU+gCNLkCWVIJAro8XyQ==" }, "accepts": { "version": "1.3.8", @@ -11568,9 +10900,9 @@ } }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-jsx": { @@ -11618,11 +10950,12 @@ } }, "amf-client-js": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/amf-client-js/-/amf-client-js-5.0.5.tgz", - "integrity": "sha512-WLCfA2DtN5RsdnDSxRyH5R2VaDagR+Foe6Na42P57FdLUN6UXJM4xjazcK/FCdHqI23RZmOXlceArIHFZt8HOA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/amf-client-js/-/amf-client-js-5.1.0.tgz", + "integrity": "sha512-3/6jyw3i4IlPlPZJX5pEXPzya/TFG2JklVo065hUCHKOQB2u9DTtBCbZyS6HufK30P2ofxyhKEBJbqSULn2TPw==", "dev": true, "requires": { + "@aml-org/amf-antlr-parsers": "0.5.17", "ajv": "6.12.6" } }, @@ -11632,10 +10965,12 @@ "integrity": "sha512-Gz5GIJum35HD1GCsr89nWIIbYsPH1khB8FZGPEJdKXXIi3ReG4ODKY9jlxd5Bb4Lu+f0J4KV2aIyVJ9GWiTQZg==" }, "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "optional": true, + "peer": true }, "ansi-escapes": { "version": "4.3.2", @@ -11702,18 +11037,18 @@ "array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } @@ -11725,20 +11060,21 @@ "dev": true }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, "astral-regex": { @@ -11748,18 +11084,18 @@ "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "requires": { "lodash": "^4.17.14" } }, "axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", + "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", "dev": true }, "axobject-query": { @@ -11816,20 +11152,6 @@ "fill-range": "^7.0.1" } }, - "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "dev": true, - "peer": true, - "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - } - }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -11843,13 +11165,13 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true }, "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true }, "bytes": { @@ -11909,13 +11231,6 @@ } } }, - "caniuse-lite": { - "version": "1.0.30001317", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz", - "integrity": "sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==", - "dev": true, - "peer": true - }, "chai-a11y-axe": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/chai-a11y-axe/-/chai-a11y-axe-1.4.0.tgz", @@ -11959,9 +11274,9 @@ "dev": true }, "chrome-launcher": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz", - "integrity": "sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz", + "integrity": "sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==", "dev": true, "requires": { "@types/node": "*", @@ -12042,13 +11357,13 @@ "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, "co-body": { @@ -12075,19 +11390,13 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, "command-line-args": { @@ -12103,14 +11412,14 @@ } }, "command-line-usage": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz", - "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, "requires": { - "array-back": "^4.0.1", + "array-back": "^4.0.2", "chalk": "^2.4.2", - "table-layout": "^1.0.1", + "table-layout": "^1.0.2", "typical": "^5.2.0" }, "dependencies": { @@ -12129,9 +11438,9 @@ } }, "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", "dev": true }, "compare-func": { @@ -12147,15 +11456,102 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "concurrently": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.4.0.tgz", + "integrity": "sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "date-fns": "^2.29.1", + "lodash": "^4.17.21", + "rxjs": "^7.0.0", + "shell-quote": "^1.7.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "console-table-printer": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.11.1.tgz", + "integrity": "sha512-8LfFpbF/BczoxPwo2oltto5bph8bJkGOATXsg3E9ddMJOGnWJciKHldx2zDj5XIBflaKzPfVCjOTl6tMh7lErg==", + "requires": { + "simple-wcswidth": "^1.0.1" + } + }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -12190,9 +11586,9 @@ } }, "conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz", + "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==", "dev": true, "requires": { "compare-func": "^2.0.0", @@ -12234,9 +11630,9 @@ } }, "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.2.tgz", + "integrity": "sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA==", "dev": true }, "cosmiconfig": { @@ -12253,14 +11649,11 @@ } }, "cosmiconfig-typescript-loader": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.6.tgz", - "integrity": "sha512-2nEotziYJWtNtoTjKbchj9QrdTT6DBxCvqjNKoDKARw+e2yZmTQCa07uRrykLIZuvSgp69YXLH89UHc0WhdMfQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.1.0.tgz", + "integrity": "sha512-HbWIuR5O+XO5Oj9SZ5bzgrD4nN+rfhrm2PMb0FVx+t+XIvC45n8F0oTNnztXtspWGw0i2IzHaUWFD5LzV1JB4A==", "dev": true, - "requires": { - "cosmiconfig": "^7", - "ts-node": "^10.6.0" - } + "requires": {} }, "create-require": { "version": "1.1.1", @@ -12294,6 +11687,12 @@ "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "dev": true + }, "debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -12301,9 +11700,9 @@ "dev": true }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -12312,13 +11711,13 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, "decamelize-keys": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", "dev": true, "requires": { "decamelize": "^1.1.0", @@ -12328,7 +11727,7 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true } } @@ -12336,7 +11735,7 @@ "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", "dev": true }, "deep-extend": { @@ -12364,18 +11763,19 @@ "dev": true }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, "depd": { @@ -12391,21 +11791,21 @@ "dev": true }, "destroy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.1.1.tgz", - "integrity": "sha512-jxwFW+yrVOLdwqIWvowFOM8UPdhZnvOF6mhXQQLXMxBDLtv2JVJlVJPEwkDv9prqscEtGtmnxuuI6pQKStK1vA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "devtools-protocol": { - "version": "0.0.969999", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.969999.tgz", - "integrity": "sha512-6GfzuDWU0OFAuOvBokXpXPLxjOJ5DZ157Ue3sGQQM3LgAamb8m0R0ruSfN0DDu+XG5XJgT50i6zZ/0o8RglreQ==", + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", "dev": true }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true }, "dir-glob": { @@ -12427,9 +11827,9 @@ } }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "requires": { "domelementtype": "^2.0.1", @@ -12459,7 +11859,7 @@ "@types/parse5": { "version": "2.2.34", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", - "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "integrity": "sha512-p3qOvaRsRpFyEmaS36RtLzpdxZZnmxGuT1GMgzkTtTJVFuEw7KFjGK83MFODpJExgX1bEzy9r0NYjMC3IMfi7w==", "dev": true, "requires": { "@types/node": "*" @@ -12474,24 +11874,24 @@ } }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "requires": { "domelementtype": "^2.2.0" } }, "dompurify": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz", - "integrity": "sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz", + "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==" }, "domutils": { "version": "2.8.0", @@ -12522,16 +11922,9 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "electron-to-chromium": { - "version": "1.4.85", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.85.tgz", - "integrity": "sha512-K9AsQ41WS2bjZUFpRWfvaS4RjEcRCamEkBJN1Z1TQILBfP1H8QnJ9ti0wiLiMv0sRjX3EHKzgs9jDnmGFx2jXg==", - "dev": true, - "peer": true - }, "emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -12541,7 +11934,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true }, "end-of-stream": { @@ -12558,6 +11951,8 @@ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, + "optional": true, + "peer": true, "requires": { "ansi-colors": "^4.1.1" } @@ -12584,39 +11979,51 @@ "dev": true }, "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", "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" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", + "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", "dev": true }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -12637,23 +12044,25 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", + "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -12663,30 +12072,32 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", + "find-up": "^5.0.0", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -12761,9 +12172,9 @@ } }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -12792,6 +12203,18 @@ } } }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + } + }, "eslint-config-prettier": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", @@ -12821,13 +12244,12 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -12838,49 +12260,6 @@ "requires": { "ms": "^2.1.1" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true } } }, @@ -12894,9 +12273,9 @@ } }, "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -12904,14 +12283,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { @@ -12935,7 +12314,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -12952,9 +12331,9 @@ } }, "eslint-plugin-lit-a11y": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.2.0.tgz", - "integrity": "sha512-1Vy9mR7UGigPnOHj5qJMU3uEK+Qul7dQOg9I6YKEYrw3C3HUx1FS/FbICjZI+n/v+2qvvJhw+5Tghuld2QWUJw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.2.2.tgz", + "integrity": "sha512-9dJfnwPOOA6x7Ow/+GFoOt1hr4mSNrF6KBWQ2OFFAY/9aBYtyBX4fRbpxqS2y3ld66/bjWru2+LGWgNVr5GxzQ==", "dev": true, "requires": { "aria-query": "^4.2.2", @@ -12994,13 +12373,6 @@ "js-levenshtein-esm": "^1.2.0" } }, - "eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true, - "peer": true - }, "eslint-rule-extender": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/eslint-rule-extender/-/eslint-rule-extender-0.0.1.tgz", @@ -13033,13 +12405,13 @@ "dev": true }, "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", "dev": true, "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { @@ -13051,12 +12423,6 @@ } } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -13112,7 +12478,7 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true }, "execa": { @@ -13162,9 +12528,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -13183,7 +12549,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { @@ -13198,7 +12564,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "requires": { "pend": "~1.2.0" @@ -13252,15 +12618,15 @@ } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true }, "fs-constants": { @@ -13270,9 +12636,9 @@ "dev": true }, "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -13283,7 +12649,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { @@ -13299,18 +12665,23 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, - "peer": true + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true }, "get-caller-file": { "version": "2.0.5", @@ -13319,14 +12690,14 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "get-stream": { @@ -13359,15 +12730,15 @@ } }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -13384,19 +12755,12 @@ "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", "dev": true, "requires": { "ini": "^1.3.4" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "peer": true - }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -13412,9 +12776,15 @@ } }, "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, "hard-rejection": { @@ -13433,17 +12803,26 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -13512,15 +12891,15 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true } } }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "requires": { "agent-base": "6", @@ -13534,9 +12913,9 @@ "dev": true }, "husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz", + "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==", "dev": true }, "iconv-lite": { @@ -13581,7 +12960,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { @@ -13593,13 +12972,13 @@ "inflation": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -13630,15 +13009,15 @@ } }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-bigint": { @@ -13669,16 +13048,25 @@ "has-tostringtag": "^1.0.0" } }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz", + "integrity": "sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==", "dev": true }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "dev": true, "requires": { "has": "^1.0.3" @@ -13702,7 +13090,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { @@ -13732,7 +13120,7 @@ "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, "is-negative-zero": { @@ -13748,9 +13136,9 @@ "dev": true }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -13765,7 +13153,7 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true }, "is-potential-custom-element-name": { @@ -13785,10 +13173,13 @@ } }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } }, "is-stream": { "version": "2.0.1", @@ -13817,7 +13208,7 @@ "is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, "requires": { "text-extensions": "^1.0.0" @@ -13826,7 +13217,7 @@ "is-valid-element-name": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-element-name/-/is-valid-element-name-1.0.0.tgz", - "integrity": "sha1-Ju8/12zfHxItEFQG4y01sN4AWYE=", + "integrity": "sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==", "dev": true, "requires": { "is-potential-custom-element-name": "^1.0.0" @@ -13853,19 +13244,19 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "istanbul-lib-coverage": { @@ -13903,27 +13294,27 @@ } }, "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, - "jpeg-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", - "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==", - "dev": true - }, "js-levenshtein-esm": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz", "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==", "dev": true }, + "js-sdsl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", + "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -13939,13 +13330,6 @@ "argparse": "^2.0.1" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "peer": true - }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -13961,17 +13345,16 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "peer": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.0" } }, "jsonc-parser": { @@ -13993,7 +13376,7 @@ "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true }, "JSONStream": { @@ -14007,9 +13390,9 @@ } }, "jsrsasign": { - "version": "10.5.12", - "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-10.5.12.tgz", - "integrity": "sha512-YE03UOxqAkF7smFH/WKsDO8uPsvK3n+OUaT4qV77YwGJ+IiWwNyBh7XILQ+k1BSIdrsMWsEb2vyoBAw6aP5EBQ==", + "version": "10.5.27", + "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-10.5.27.tgz", + "integrity": "sha512-1F4LmDeJZHYwoVvB44jEo2uZL3XuwYNzXCDOu53Ui6vqofGQ/gCYDmaxfVZtN0TGd92UKXr/BONcfrPonUIcQQ==", "peer": true }, "just-extend": { @@ -14122,15 +13505,15 @@ } }, "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, "language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, "requires": { "language-subtag-registry": "~0.3.2" @@ -14168,15 +13551,15 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true }, "lines-and-columns": { @@ -14186,30 +13569,95 @@ "dev": true }, "lint-staged": { - "version": "12.3.5", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.5.tgz", - "integrity": "sha512-oOH36RUs1It7b9U/C7Nl/a0sLfoIBcMB8ramiB3nuJ6brBqzsWiUAFSR5DQ3yyP/OR7XKMpijtgKl2DV1lQ3lA==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", "dev": true, "requires": { "cli-truncate": "^3.1.0", - "colorette": "^2.0.16", - "commander": "^8.3.0", - "debug": "^4.3.3", - "execa": "^5.1.1", - "lilconfig": "2.0.4", - "listr2": "^4.0.1", - "micromatch": "^4.0.4", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "supports-color": "^9.2.1", - "yaml": "^1.10.2" + "yaml": "^2.1.1" }, "dependencies": { - "supports-color": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", - "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==", + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", "dev": true } } @@ -14301,33 +13749,33 @@ } }, "lit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.2.1.tgz", - "integrity": "sha512-dSe++R50JqrvNGXmI9OE13de1z5U/Y3J2dTm/9GC86vedI8ILoR8ZGnxfThFpvQ9m0lR0qRnIR4IiKj/jDCfYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.3.1.tgz", + "integrity": "sha512-TejktDR4mqG3qB32Y8Lm5Lye3c8SUehqz7qRsxe1PqGYL6me2Ef+jeQAEqh20BnnGncv4Yxy2njEIT0kzK1WCw==", "requires": { - "@lit/reactive-element": "^1.3.0", + "@lit/reactive-element": "^1.4.0", "lit-element": "^3.2.0", - "lit-html": "^2.2.0" + "lit-html": "^2.3.0" }, "dependencies": { "@lit/reactive-element": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.3.1.tgz", - "integrity": "sha512-nOJARIr3pReqK3hfFCSW2Zg/kFcFsSAlIE7z4a0C9D2dPrgD/YSn3ZP2ET/rxKB65SXyG7jJbkynBRm+tGlacw==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.1.tgz", + "integrity": "sha512-qDv4851VFSaBWzpS02cXHclo40jsbAjRXnebNXpm0uVg32kCneZPo9RYVQtrTNICtZ+1wAYHu1ZtxWSWMbKrBw==" }, "lit-element": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.0.tgz", - "integrity": "sha512-HbE7yt2SnUtg5DCrWt028oaU4D5F4k/1cntAFHTkzY8ZIa8N0Wmu92PxSxucsQSOXlODFrICkQ5x/tEshKi13g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", + "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", "requires": { "@lit/reactive-element": "^1.3.0", "lit-html": "^2.2.0" } }, "lit-html": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.2.1.tgz", - "integrity": "sha512-AiJ/Rs0awjICs2FioTnHSh+Np5dhYSkyRczKy3wKjp8qjLhr1Ov+GiHrUQNdX8ou1LMuznpIME990AZsa/tR8g==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.3.1.tgz", + "integrity": "sha512-FyKH6LTW6aBdkfNhNSHyZTnLgJSTe5hMk7HFtc/+DcN1w74C215q8B+Cfxc2OuIEpBNcEKxgF64qL8as30FDHA==", "requires": { "@types/trusted-types": "^2.0.2" } @@ -14365,13 +13813,13 @@ "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "lodash.merge": { @@ -14380,12 +13828,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -14500,20 +13942,20 @@ "dev": true }, "marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", + "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==" }, "marky": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", - "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "dev": true }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true }, "meow": { @@ -14556,21 +13998,15 @@ "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true - }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -14608,9 +14044,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "minimist-options": { @@ -14654,15 +14090,15 @@ "dev": true }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "negotiator": { @@ -14696,19 +14132,19 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { "tr46": "~0.0.3", @@ -14717,13 +14153,6 @@ } } }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true, - "peer": true - }, "normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", @@ -14737,9 +14166,9 @@ }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -14763,9 +14192,9 @@ } }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, "object-keys": { @@ -14775,14 +14204,14 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -14820,7 +14249,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -14838,7 +14267,7 @@ "only": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, "open": { @@ -14894,9 +14323,9 @@ } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "parent-module": { @@ -14950,7 +14379,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { @@ -14983,38 +14412,20 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "peer": true - }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, - "pixelmatch": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz", - "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==", - "dev": true, - "requires": { - "pngjs": "^4.0.1" - }, - "dependencies": { - "pngjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz", - "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==", - "dev": true - } - } + "pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true }, "pkg-dir": { "version": "4.2.0", @@ -15061,74 +14472,33 @@ "requires": { "p-limit": "^2.2.0" } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true } } }, "playwright": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.20.0.tgz", - "integrity": "sha512-YcFXhXttk9yvpc8PMbfvts6KEopXjxdBh47BdOiA7xhjF/gkXeSM0Hs9CSdbL9mp2xtlB5xqE7+D+F2soQOjbA==", + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.26.0.tgz", + "integrity": "sha512-XxTVlvFEYHdatxUkh1KiPq9BclNtFKMi3BgQnl/aactmhN4G9AkZUXwt0ck6NDAOrDFlfibhbM7A1kZwQJKSBw==", "dev": true, "requires": { - "playwright-core": "1.20.0" + "playwright-core": "1.26.0" } }, "playwright-core": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.20.0.tgz", - "integrity": "sha512-d25IRcdooS278Cijlp8J8A5fLQZ+/aY3dKRJvgX5yjXA69N0huIUdnh3xXSgn+LsQ9DCNmB7Ngof3eY630jgdA==", - "dev": true, - "requires": { - "colors": "1.4.0", - "commander": "8.3.0", - "debug": "4.3.3", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "jpeg-js": "0.4.3", - "mime": "3.0.0", - "pixelmatch": "5.2.1", - "pngjs": "6.0.0", - "progress": "2.0.3", - "proper-lockfile": "4.1.2", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "socks-proxy-agent": "6.1.1", - "stack-utils": "2.0.5", - "ws": "8.4.2", - "yauzl": "2.10.0", - "yazl": "2.5.1" - }, - "dependencies": { - "ws": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", - "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", - "dev": true, - "requires": {} - } - } - }, - "pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.26.0.tgz", + "integrity": "sha512-p8huU8eU4gD3VkJd3DA1nA7R3XA6rFvFL+1RYS96cSljCF2yJE9CWEHTPF4LqX8KN9MoWCrAfVKP5381X3CZqg==", "dev": true }, "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" }, "dependencies": { "debug": { @@ -15141,12 +14511,12 @@ } }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } } } @@ -15158,9 +14528,9 @@ "dev": true }, "prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==" + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" }, "progress": { "version": "2.0.3", @@ -15168,17 +14538,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -15202,16 +14561,16 @@ "dev": true }, "puppeteer-core": { - "version": "13.5.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.5.1.tgz", - "integrity": "sha512-dobVqWjV34ilyfQHR3BBnCYaekBYTi5MgegEYBRYd3s3uFy8jUpZEEWbaFjG9ETm+LGzR5Lmr0aF6LLuHtiuCg==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", "dev": true, "requires": { "cross-fetch": "3.1.5", - "debug": "4.3.3", - "devtools-protocol": "0.0.969999", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", + "https-proxy-agent": "5.0.1", "pkg-dir": "4.2.0", "progress": "2.0.3", "proxy-from-env": "1.1.0", @@ -15233,13 +14592,13 @@ "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true }, "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "requires": { "side-channel": "^1.0.4" @@ -15382,12 +14741,6 @@ "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -15438,6 +14791,17 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -15447,7 +14811,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "require-from-string": { @@ -15463,12 +14827,12 @@ "dev": true }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -15491,7 +14855,7 @@ "resolve-path": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", "dev": true, "requires": { "http-errors": "~1.6.2", @@ -15501,13 +14865,13 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "requires": { "depd": "~1.1.2", @@ -15519,7 +14883,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "setprototypeof": { @@ -15540,12 +14904,6 @@ "signal-exit": "^3.0.2" } }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -15568,9 +14926,9 @@ } }, "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", + "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -15586,9 +14944,9 @@ } }, "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -15633,6 +14991,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -15650,14 +15014,19 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "simple-wcswidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz", + "integrity": "sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==" + }, "sinon": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.1.tgz", - "integrity": "sha512-8yx2wIvkBjIq/MGY1D9h1LMraYW+z1X0mb648KZnKSdvLasvDu7maa0dFaNYdTDczFgbjNw2tOmWdTk9saVfwQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz", + "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^9.0.0", + "@sinonjs/fake-timers": "^9.1.2", "@sinonjs/samsam": "^6.1.1", "diff": "^5.0.0", "nise": "^5.1.1", @@ -15698,46 +15067,24 @@ }, "dependencies": { "ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.1.tgz", + "integrity": "sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==", "dev": true } } }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true }, - "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dev": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "peer": true + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "dev": true }, "spdx-correct": { "version": "3.1.1", @@ -15766,9 +15113,9 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, "split2": { @@ -15780,33 +15127,10 @@ "readable-stream": "^3.0.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true }, "string_decoder": { @@ -15861,23 +15185,25 @@ } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "strip-ansi": { @@ -15892,7 +15218,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true }, "strip-final-newline": { @@ -15931,97 +15257,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, "table-layout": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", @@ -16082,13 +15317,13 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "through2": { @@ -16100,13 +15335,6 @@ "readable-stream": "3" } }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "peer": true - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -16131,6 +15359,12 @@ "punycode": "^2.1.1" } }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, "trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", @@ -16138,12 +15372,12 @@ "dev": true }, "ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "requires": { - "@cspotcode/source-map-support": "0.7.0", + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", @@ -16154,7 +15388,7 @@ "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "dependencies": { @@ -16167,32 +15401,21 @@ } }, "tsconfig-paths": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", - "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tsscmp": { "version": "1.0.6", @@ -16200,6 +15423,23 @@ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -16232,9 +15472,9 @@ } }, "typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", + "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", "dev": true }, "typescript-lit-html-plugin": { @@ -16262,9 +15502,9 @@ } }, "typescript-template-language-service-decorator": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/typescript-template-language-service-decorator/-/typescript-template-language-service-decorator-2.2.0.tgz", - "integrity": "sha512-xiolqt1i7e22rpqMaprPgSFVgU64u3b9n6EJlAaUYE61jumipKAdI1+O5khPlWslpTUj80YzjUKjJ2jxT0D74w==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/typescript-template-language-service-decorator/-/typescript-template-language-service-decorator-2.3.1.tgz", + "integrity": "sha512-+Q5+cvBtPO4VKNyyI6O+XnIne+/hq/WfNhBaF4hJP8nB8TbikTg+2h9uBMsqduwX1+kVfwG9SBSwMTtvi2Ep7w==", "dev": true }, "typical": { @@ -16274,14 +15514,14 @@ "dev": true }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -16304,7 +15544,7 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true }, "uri-js": { @@ -16319,25 +15559,19 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "dev": true }, "v8-compile-cache-lib": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, "v8-to-istanbul": { @@ -16349,14 +15583,6 @@ "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } } }, "validate-npm-package-license": { @@ -16372,7 +15598,7 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, "vscode-css-languageservice": { @@ -16408,9 +15634,9 @@ } }, "vscode-languageserver-types": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", - "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", + "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==", "dev": true }, "vscode-nls": { @@ -16550,16 +15776,21 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "requires": {} }, + "xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==" + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -16579,9 +15810,9 @@ "dev": true }, "yargs": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "dev": true, "requires": { "cliui": "^7.0.2", @@ -16617,9 +15848,9 @@ } }, "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true } } @@ -16633,26 +15864,17 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, - "yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3" - } - }, "ylru": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", - "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", + "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", "dev": true }, "yn": { diff --git a/package.json b/package.json index 03432e3..578e997 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "@api-components/amf-components", "description": "A set of web components based on LitElement that creates the visualization layer on top of the AMF's graph model.", - "version": "1.0.0-beta.4", + "version": "1.0.0-beta.5", "license": "Apache-2.0", + "type": "module", "main": "index.js", "module": "index.js", "keywords": [ @@ -30,78 +31,53 @@ "email": "arc@mulesoft.com" }, "dependencies": { - "@advanced-rest-client/base": "^0.1.0", - "@advanced-rest-client/events": "^0.2.22", - "@advanced-rest-client/highlight": "^2.0.1", - "@advanced-rest-client/http-code-snippets": "^4.0.0", + "@advanced-rest-client/base": "^0.1.10", + "@advanced-rest-client/events": "^18.0.2", + "@advanced-rest-client/highlight": "^2.0.2", + "@advanced-rest-client/http-code-snippets": "^4.0.1", "@advanced-rest-client/icons": "^4.0.0", - "@advanced-rest-client/oauth": "^0.1.0", - "@advanced-rest-client/uuid": "^4.0.0", - "@anypoint-web-components/awc": "^1.0.5", - "@api-client/context-menu": "^0.2.0", - "@open-wc/dedupe-mixin": "^1.3.0", - "@pawel-up/data-mock": "^0.1.7", + "@anypoint-web-components/awc": "^3.0.12", + "@api-client/context-menu": "^0.4.1", + "@api-client/core": "^0.8.0", + "@open-wc/dedupe-mixin": "^1.3.1", + "@pawel-up/data-mock": "^0.3.2", "amf-json-ld-lib": "0.0.14", - "dompurify": "^2.3.3", - "lit-element": "^2.5.1", - "lit-html": "^1.4.1" + "dompurify": "^2.4.0", + "lit": "^2.3.1" }, "devDependencies": { - "@advanced-rest-client/arc-demo-helper": "^5.0.1", - "@commitlint/cli": "^16.2.1", - "@commitlint/config-conventional": "^16.2.1", - "@open-wc/eslint-config": "^7.0.0", - "@open-wc/testing": "^3.0.1", - "@web/dev-server": "^0.1.25", - "@web/test-runner": "^0.13.20", - "@web/test-runner-playwright": "^0.8.8", - "amf-client-js": "^5.0.5", - "eslint": "^8.1.0", - "eslint-config-prettier": "^8.3.0", - "husky": "^7.0.4", - "lint-staged": "^12.3.5", - "sinon": "^13.0.1", - "typescript": "^4.4.4", + "@commitlint/cli": "^17.1.2", + "@commitlint/config-conventional": "^17.1.0", + "@open-wc/eslint-config": "^8.0.2", + "@open-wc/testing": "^3.1.6", + "@types/dompurify": "^2.3.4", + "@typescript-eslint/eslint-plugin": "^5.22.0", + "@typescript-eslint/parser": "^5.22.0", + "@web/dev-server": "^0.1.34", + "@web/test-runner": "^0.14.0", + "@web/test-runner-playwright": "^0.8.10", + "amf-client-js": "^5.1.0", + "concurrently": "^7.4.0", + "eslint": "^8.23.1", + "eslint-config-prettier": "^8.5.0", + "husky": "^8.0.1", + "lint-staged": "^13.0.3", + "sinon": "^14.0.0", + "tslib": "^2.4.0", + "typescript": "^4.8.3", "typescript-lit-html-plugin": "^0.9.0", - "uuid": "^8.3.2" + "uuid": "^9.0.0" }, "scripts": { - "start": "web-dev-server", - "lint:eslint": "eslint --ext .js,.html . --ignore-path .gitignore", - "format:eslint": "eslint --ext .js,.html . --fix --ignore-path .gitignore", - "lint:types": "tsc", - "lint": "npm run lint:eslint", - "format": "npm run format:eslint", - "test": "web-test-runner test/**/*.test.js --coverage --node-resolve --playwright --browsers chromium webkit", - "test:all": "web-test-runner test/**/*.test.js --coverage --node-resolve --playwright --browsers chromium firefox webkit", - "test:watch": "web-test-runner --node-resolve --watch --playwright --browsers chromium", - "gen:wc": "wca analyze \"*.js\" --outFile custom-elements.json", - "prepare": "husky install && node demo/model.mjs" - }, - "eslintConfig": { - "extends": [ - "@open-wc/eslint-config", - "eslint-config-prettier" - ], - "overrides": [ - { - "files": [ - "demo/**/*.js", - "test/**/*.js", - "dev/**/*.js", - "dev/**/*.mjs", - "**/demo/**/*.html" - ], - "rules": { - "no-console": "off", - "no-unused-expressions": "off", - "no-plusplus": "off", - "no-param-reassing": "off", - "class-methods-use-this": "off", - "import/no-extraneous-dependencies": "off" - } - } - ] + "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"", + "build": "tsc && npm run analyze -- --exclude dist", + "prepublish": "tsc && npm run analyze -- --exclude dist", + "lint": "eslint --ext .ts,.html . --ignore-path .gitignore && prettier \"**/*.ts\" --check --ignore-path .gitignore", + "format": "eslint --ext .ts,.html . --fix --ignore-path .gitignore && prettier \"**/*.ts\" --write --ignore-path .gitignore", + "test": "tsc && wtr --coverage --playwright --browsers chromium", + "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch --playwright --browsers chromium\"", + "prepare": "husky install && node demo/model.mjs", + "tsc:watch": "tsc --watch" }, "husky": { "hooks": { @@ -111,6 +87,9 @@ "lint-staged": { "*.js": [ "eslint --fix" + ], + "*.ts": [ + "eslint --fix" ] } } diff --git a/src/elements/ApiAnnotationDocumentElement.d.ts b/src/elements/ApiAnnotationDocumentElement.d.ts deleted file mode 100644 index f5522cc..0000000 --- a/src/elements/ApiAnnotationDocumentElement.d.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { LitElement, TemplateResult } from 'lit-element'; -import { ApiDomainProperty, ApiCustomDomainProperty, ApiScalarNode, ApiObjectNode } from '../helpers/api'; - -export const shapeValue: unique symbol; -export const processShape: unique symbol; -export const propertiesValue: unique symbol; -export const propertyTemplate: unique symbol; -export const processVisibility: unique symbol; -export const scalarValue: unique symbol; -export const annotationWrapperTemplate: unique symbol; -export const scalarTemplate: unique symbol; -export const objectTemplate: unique symbol; -export const objectScalarPropertyTemplate: unique symbol; - -/** - * An element to render annotations (also known as custom properties) - * from AMF model. - * - * Annotations are part of RAML language and API console supports it. - * The element looks for annotations in model and renders them. - */ -export default class ApiAnnotationDocumentElement extends LitElement { - /** - * Serialized with `ApiSerializer` API domain model. - * This is to be used instead of `shape`. - */ - domainModel: ApiDomainProperty; - /** - * Computed value, true if any custom property has been found. - */ - get hasCustomProperties(): boolean; - - /** - * List of custom properties in the shape. - */ - get customProperties(): ApiCustomDomainProperty[] | undefined; - /** - * List of custom properties in the shape. - */ - set customProperties(value: ApiCustomDomainProperty[]); - - /** - * Called when the shape property change. - * Sets `hasCustomProperties` and `customList` properties. - * - * Note that for performance reasons, if the element determine that there's - * no custom properties wit will not clear `customList`. - * It will be updated only if the value actually change. - */ - [processShape](): void; - - [processVisibility](): void; - - [scalarValue](scalar: ApiScalarNode): any; - - render(): TemplateResult; - - /** - * @returns The template for the custom property. - */ - [propertyTemplate](property: ApiCustomDomainProperty): TemplateResult | string; - - /** - * @param name The annotation name - * @param content The content tp render. - * @returns The template for the custom property. - */ - [annotationWrapperTemplate](name: string, content: unknown): TemplateResult; - /** - * @returns The template for the custom property. - */ - [scalarTemplate](name: string, scalar: ApiScalarNode): TemplateResult; - /** - * @returns The template for the custom property. - */ - [objectTemplate](name: string, object: ApiObjectNode): TemplateResult; - /** - * @returns The template for the custom property. - */ - [objectScalarPropertyTemplate](name: string, scalar: ApiScalarNode): TemplateResult; -} diff --git a/src/elements/ApiAnnotationDocumentElement.js b/src/elements/ApiAnnotationDocumentElement.ts similarity index 55% rename from src/elements/ApiAnnotationDocumentElement.js rename to src/elements/ApiAnnotationDocumentElement.ts index d5f9149..c383c9b 100644 --- a/src/elements/ApiAnnotationDocumentElement.js +++ b/src/elements/ApiAnnotationDocumentElement.ts @@ -1,16 +1,11 @@ /* eslint-disable class-methods-use-this */ /* eslint-disable no-param-reassign */ -import { LitElement, html } from 'lit-element'; +import { html, TemplateResult, CSSResult, LitElement } from 'lit'; +import { property } from 'lit/decorators.js'; +import { AmfNamespace, AmfShapes } from '@api-client/core/build/browser.js'; +import { IApiCustomDomainProperty, IApiDomainProperty } from '@api-client/core/build/src/amf/definitions/Base.js'; import '@advanced-rest-client/icons/arc-icon.js'; import elementStyles from './styles/ApiAnnotation.js'; -import { ns } from '../helpers/Namespace.js'; - -/** @typedef {import('../helpers/amf').DomainElement} DomainElement */ -/** @typedef {import('../helpers/api').ApiDomainProperty} ApiDomainProperty */ -/** @typedef {import('../helpers/api').ApiCustomDomainProperty} ApiCustomDomainProperty */ -/** @typedef {import('../helpers/api').ApiScalarNode} ApiScalarNode */ -/** @typedef {import('../helpers/api').ApiObjectNode} ApiObjectNode */ -/** @typedef {import('lit-element').TemplateResult} TemplateResult */ export const shapeValue = Symbol('shapeValue'); export const processShape = Symbol('processShape'); @@ -31,23 +26,22 @@ export const objectScalarPropertyTemplate = Symbol('objectScalarPropertyTemplate * The element looks for annotations in model and renders them. */ export default class ApiAnnotationDocumentElement extends LitElement { - get styles() { - return elementStyles; + static get styles(): CSSResult[] { + return [elementStyles]; } + [shapeValue]: IApiDomainProperty | undefined; + /** * Serialized with `ApiSerializer` API domain model. * This is to be used instead of `shape`. - * @returns {ApiDomainProperty|undefined} */ - get domainModel() { + @property({ type: Object }) + get domainModel(): IApiDomainProperty | undefined { return this[shapeValue]; } - /** - * @param {ApiDomainProperty} value - */ - set domainModel(value) { + set domainModel(value: IApiDomainProperty | undefined) { const oldValue = this[shapeValue]; if (oldValue === value) { return; @@ -56,25 +50,26 @@ export default class ApiAnnotationDocumentElement extends LitElement { this[processShape](); } + [propertiesValue]: IApiCustomDomainProperty[] | undefined; + /** - * @returns {boolean} `true` if any custom property has been found. + * @returns `true` if any custom property has been found. */ - get hasCustomProperties() { + get hasCustomProperties(): boolean { const properties = this[propertiesValue]; return Array.isArray(properties) && !!properties.length; } /** - * @returns {ApiCustomDomainProperty[]|undefined} List of custom properties in the shape. + * List of custom properties in the shape. */ - get customProperties() { + @property({ type: Array }) + get customProperties(): IApiCustomDomainProperty[] | undefined { return this[propertiesValue]; } - /** - * @param {ApiCustomDomainProperty[]} value - */ - set customProperties(value) { + + set customProperties(value: IApiCustomDomainProperty[] | undefined) { const old = this[propertiesValue]; if (old === value) { return; @@ -84,17 +79,11 @@ export default class ApiAnnotationDocumentElement extends LitElement { this.requestUpdate(); } - constructor() { - super(); - /** @type ApiCustomDomainProperty[] */ - this[propertiesValue] = undefined; - } - /** * Called when the shape property change. */ - [processShape]() { - const shape = /** @type ApiDomainProperty */ (this[shapeValue]); + [processShape](): void { + const shape = this[shapeValue]; this[propertiesValue] = undefined; if (!shape) { return; @@ -107,7 +96,7 @@ export default class ApiAnnotationDocumentElement extends LitElement { this.requestUpdate(); } - [processVisibility]() { + [processVisibility](): void { const { hasCustomProperties } = this; if (hasCustomProperties) { this.setAttribute('aria-hidden', 'false'); @@ -118,52 +107,46 @@ export default class ApiAnnotationDocumentElement extends LitElement { } } - /** - * @param {ApiScalarNode} scalar - * @returns {any} - */ - [scalarValue](scalar) { - let { value='' } = scalar; + [scalarValue](scalar: AmfShapes.IApiScalarNode): string | number | boolean { + let { value = '' } = scalar; if (value === 'nil') { value = ''; } return value; } - render() { + render(): TemplateResult | string { const { hasCustomProperties, customProperties } = this; - if (!hasCustomProperties) { + if (!hasCustomProperties || !customProperties) { return ''; } - const content = customProperties.map((property) => this[propertyTemplate](property)); + const content = customProperties.map((prop) => this[propertyTemplate](prop)); return html` - ${content} `; } /** - * @param {ApiCustomDomainProperty} property - * @returns {TemplateResult|string} The template for the custom property. + * @returns The template for the custom property. */ - [propertyTemplate](property) { - const { name, extension } = property; + [propertyTemplate](prop: IApiCustomDomainProperty): TemplateResult | string { + const { name, extension } = prop; const { types } = extension; - if (types.includes(ns.aml.vocabularies.data.Scalar)) { - return this[scalarTemplate](name, /** @type ApiScalarNode */ (extension)); - } - if (types.includes(ns.aml.vocabularies.data.Object)) { - return this[objectTemplate](name, /** @type ApiObjectNode */ (extension)); + if (types.includes(AmfNamespace.aml.vocabularies.data.Scalar)) { + return this[scalarTemplate](name, extension as AmfShapes.IApiScalarNode); + } + if (types.includes(AmfNamespace.aml.vocabularies.data.Object)) { + return this[objectTemplate](name, extension as AmfShapes.IApiObjectNode); } return ''; } - + /** - * @param {string} name The annotation name - * @param {unknown} content The content tp render. - * @returns {TemplateResult} The template for the custom property. + * @param name The annotation name + * @param content The content tp render. + * @returns The template for the custom property. */ - [annotationWrapperTemplate](name, content) { + [annotationWrapperTemplate](name: string, content: TemplateResult | (TemplateResult | string)[] | string): TemplateResult { return html`
@@ -176,26 +159,22 @@ export default class ApiAnnotationDocumentElement extends LitElement { } /** - * @param {string} name - * @param {ApiScalarNode} scalar - * @returns {TemplateResult} The template for the custom property. + * @returns The template for the custom property. */ - [scalarTemplate](name, scalar) { + [scalarTemplate](name: string, scalar: AmfShapes.IApiScalarNode): TemplateResult { const content = html`${this[scalarValue](scalar)}`; return this[annotationWrapperTemplate](name, content); } /** - * @param {string} name - * @param {ApiObjectNode} object - * @returns {TemplateResult} The template for the custom property. + * @returns The template for the custom property. */ - [objectTemplate](name, object) { - const { properties={} } = object; + [objectTemplate](name: string, object: AmfShapes.IApiObjectNode): TemplateResult { + const { properties = {} } = object; const content = Object.keys(properties).map((key) => { const value = properties[key]; const { types } = value; - if (types.includes(ns.aml.vocabularies.data.Scalar)) { + if (types.includes(AmfNamespace.aml.vocabularies.data.Scalar)) { return this[objectScalarPropertyTemplate](key, value); } return key; @@ -204,11 +183,9 @@ export default class ApiAnnotationDocumentElement extends LitElement { } /** - * @param {string} name - * @param {ApiScalarNode} scalar - * @returns {TemplateResult} The template for the custom property. + * @returns The template for the custom property. */ - [objectScalarPropertyTemplate](name, scalar) { + [objectScalarPropertyTemplate](name: string, scalar: AmfShapes.IApiScalarNode): TemplateResult { const value = this[scalarValue](scalar); return html`
diff --git a/src/elements/ApiAuthorizationEditorElement.js b/src/elements/ApiAuthorizationEditorElement.ts similarity index 68% rename from src/elements/ApiAuthorizationEditorElement.js rename to src/elements/ApiAuthorizationEditorElement.ts index 4398b51..093340d 100644 --- a/src/elements/ApiAuthorizationEditorElement.js +++ b/src/elements/ApiAuthorizationEditorElement.ts @@ -1,9 +1,14 @@ /* eslint-disable no-plusplus */ /* eslint-disable class-methods-use-this */ -import { html, LitElement } from 'lit-element'; +import { html, TemplateResult, CSSResult, LitElement } from 'lit'; +import { property } from 'lit/decorators.js'; +import { Oauth2Credentials } from '@advanced-rest-client/base'; +import { ApiDefinitions } from '@api-client/core/build/browser.js'; +import { RequestAuthorization } from '@api-client/core/build/legacy.js'; import '@advanced-rest-client/base/define/authorization-method.js'; import elementStyles from './styles/AuthorizationEditor.js'; import '../../define/api-authorization-method.js'; +import ApiAuthorizationMethodElement from './ApiAuthorizationMethodElement.js'; /** @typedef {import('lit-element').TemplateResult} TemplateResult */ /** @typedef {import('../helpers/api').ApiSecurityRequirement} ApiSecurityRequirement */ @@ -14,11 +19,10 @@ import '../../define/api-authorization-method.js'; /** @typedef {import('@advanced-rest-client/events').ArcRequest.RequestAuthorization} RequestAuthorization */ /** @typedef {import('@advanced-rest-client/base').Oauth2Credentials} Oauth2Credentials */ -/** - * @typedef SecurityMethods - * @property {string[]} types - * @property {ApiParametrizedSecurityScheme[]} schemes - */ +interface SecurityMethods { + types: string[]; + schemes: ApiDefinitions.IApiParametrizedSecurityScheme[]; +} export const querySecurity = Symbol('querySecurity'); export const securityValue = Symbol('securityValue'); @@ -41,21 +45,19 @@ export const createSettings = Symbol('createSettings'); export const openIdConnectTemplate = Symbol('openIdConnectTemplate'); export default class ApiAuthorizationEditorElement extends LitElement { - get styles() { - return elementStyles; + static get styles(): CSSResult[] { + return [elementStyles]; } - /** - * @returns {ApiSecurityRequirement} - */ - get security() { + [securityValue]: ApiDefinitions.IApiSecurityRequirement | undefined; + + [methodsValue]?: SecurityMethods; + + get security(): ApiDefinitions.IApiSecurityRequirement | undefined { return this[securityValue]; } - /** - * @param {ApiSecurityRequirement} value - */ - set security(value) { + set security(value: ApiDefinitions.IApiSecurityRequirement | undefined) { const old = this[securityValue]; if (old === value) { return; @@ -65,98 +67,93 @@ export default class ApiAuthorizationEditorElement extends LitElement { this.requestUpdate(); } - static get properties() { - return { - // Current HTTP method. Passed by digest method. - httpMethod: { type: String }, - // Current request URL. Passed by digest method. - requestUrl: { type: String }, - // Current request body. Passed by digest method. - requestBody: { type: String }, - /** - * Whether or not the element is invalid. The validation state changes - * when settings change or when the `validate()` function is called. - */ - invalid: { type: Boolean, reflect: true }, - /** - * List of credentials source - */ - credentialsSource: { type: Array }, - /** - * Redirect URL for the OAuth2 authorization. - */ - oauth2RedirectUri: { type: String }, - /** - * When set it overrides the `authorizationUri` in the authorization editor, - * regardless to the authorization scheme applied to the request. - * This is to be used with the mocking service. - */ - oauth2AuthorizationUri: { type: String }, - /** - * When set it overrides the `authorizationUri` in the authorization editor, - * regardless to the authorization scheme applied to the request. - * This is to be used with the mocking service. - */ - oauth2AccessTokenUri: { type: String }, - /** - * Enables Anypoint platform styles. - */ - anypoint: { type: Boolean, reflect: true }, - /** - * Enabled Material Design outlined theme - */ - outlined: { type: Boolean, reflect: true }, - /** - * By default the element stores user input in a map that is associated with the specific - * instance of this element. This way the element can be used multiple times in the same document. - * However, this way parameter values generated by the generators or entered by the user won't - * get populated in different operations. - * - * By setting this value the element prefers a global cache for values. Once the user enter - * a value it is registered in the global cache and restored when the same parameter is used again. - * - * Do not use this option when the element is embedded multiple times in the page. It will result - * in generating request data from the cache and not what's in the form inputs and these may not be in sync. - * - * These values are stored in memory only. Listen to the `change` event to learn that something changed. - */ - globalCache: { type: Boolean, reflect: true }, - }; - } + /** + * Current HTTP method. Passed by digest method. + */ + @property({ type: String }) + httpMethod?: string; - constructor() { - super(); - /** @type {ApiSecurityRequirement} */ - this[securityValue] = undefined; - /** @type string */ - this.oauth2RedirectUri = undefined; - /** @type string */ - this.oauth2AuthorizationUri = undefined; - /** @type string */ - this.oauth2AccessTokenUri = undefined; - /** @type string */ - this.httpMethod = undefined; - /** @type string */ - this.requestUrl = undefined; - /** @type string */ - this.requestBody = undefined; - /** @type Oauth2Credentials[] */ - this.credentialsSource = undefined; - /** @type boolean */ - this.anypoint = undefined; - /** @type boolean */ - this.outlined = undefined; - /** @type {boolean} */ - this.globalCache = undefined; - /** @type {SecurityMethods} */ - this[methodsValue] = undefined; - } + /** + * Current request URL. Passed by digest method. + */ + @property({ type: String }) + requestUrl?: string; + + /** + * Current request body. Passed by digest method. + */ + @property({ type: String }) + requestBody?: string; + + /** + * Whether or not the element is invalid. The validation state changes + * when settings change or when the `validate()` function is called. + */ + @property({ type: Boolean, reflect: true }) + invalid?: boolean; + + /** + * List of credentials source + */ + @property({ type: Array }) + credentialsSource?: Oauth2Credentials[]; + + /** + * Redirect URL for the OAuth2 authorization. + */ + @property({ type: String }) + oauth2RedirectUri?: string; + + /** + * When set it overrides the `authorizationUri` in the authorization editor, + * regardless to the authorization scheme applied to the request. + * This is to be used with the mocking service. + */ + @property({ type: String }) + oauth2AuthorizationUri?: string; + + /** + * When set it overrides the `authorizationUri` in the authorization editor, + * regardless to the authorization scheme applied to the request. + * This is to be used with the mocking service. + */ + @property({ type: String }) + oauth2AccessTokenUri?: string; + + /** + * Enables Anypoint platform styles. + */ + @property({ type: Boolean, reflect: true }) + anypoint?: boolean; + + /** + * Enabled Material Design outlined theme + */ + @property({ type: Boolean, reflect: true }) + outlined?: boolean; + + /** + * By default the element stores user input in a map that is associated with the specific + * instance of this element. This way the element can be used multiple times in the same document. + * However, this way parameter values generated by the generators or entered by the user won't + * get populated in different operations. + * + * By setting this value the element prefers a global cache for values. Once the user enter + * a value it is registered in the global cache and restored when the same parameter is used again. + * + * Do not use this option when the element is embedded multiple times in the page. It will result + * in generating request data from the cache and not what's in the form inputs and these may not be in sync. + * + * These values are stored in memory only. Listen to the `change` event to learn that something changed. + */ + @property({ type: Boolean, reflect: true }) + globalCache?: boolean; /** * Reads list of authorization methods from the model. */ - [processModel]() { - const security = /** @type {ApiSecurityRequirement} */ (this[securityValue]); + [processModel](): void { + const security = this[securityValue]; if (!security) { return; } @@ -166,14 +163,14 @@ export default class ApiAuthorizationEditorElement extends LitElement { /** * Computes list of security schemes that can be applied to the element. * - * @param {ApiParametrizedSecurityScheme[]} schemes A list of security schemes to process. - * @returns {SecurityMethods} A list of authorization methods that can be applied to + * @param schemes A list of security schemes to process. + * @returns A list of authorization methods that can be applied to * the current endpoint. Each object describes the list of security types * that can be applied to the editor. In OAS an auth method may be an union * of methods. */ - [computeMethods](schemes) { - const result = { + [computeMethods](schemes: ApiDefinitions.IApiParametrizedSecurityScheme[]): SecurityMethods { + const result: SecurityMethods = { types: [], schemes: [], }; @@ -190,10 +187,8 @@ export default class ApiAuthorizationEditorElement extends LitElement { /** * Reads authorization scheme's name and type from the AMF model. - * @param {ApiParametrizedSecurityScheme} security - * @return {string|undefined} */ - [listSchemeLabels](security) { + [listSchemeLabels](security: ApiDefinitions.IApiParametrizedSecurityScheme): string | undefined { const { name, scheme } = security; if (name === 'null') { // RAML allows to define a "null" scheme. This means that the authorization @@ -206,7 +201,7 @@ export default class ApiAuthorizationEditorElement extends LitElement { let { type } = scheme; if (type === 'http') { // HTTP type can be `basic` or `bearer`. - const config = /** @type ApiSecurityHttpSettings */ (scheme.settings); + const config = scheme.settings as ApiDefinitions.IApiSecurityHttpSettings; if (!config) { // this happens when AMF doesn't properly read graph model back to the store. // AMF team promised to fix this... @@ -222,7 +217,7 @@ export default class ApiAuthorizationEditorElement extends LitElement { * A function called each time anything change in the editor. * Revalidates the component and dispatches the `change` event. */ - [changeHandler]() { + [changeHandler](): void { this.validate(); this.dispatchEvent(new CustomEvent('change')); } @@ -236,11 +231,15 @@ export default class ApiAuthorizationEditorElement extends LitElement { * * @return {Boolean} True when the form has valid data. */ - validate() { - const nodes = this.shadowRoot.querySelectorAll('api-authorization-method'); + validate(): boolean { + const { shadowRoot } = this; + if (!shadowRoot) { + return true; + } + const nodes = shadowRoot.querySelectorAll('api-authorization-method'); let valid = true; for (let i = 0, len = nodes.length; i < len; i++) { - const node = /** @type ApiAuthorizationMethodElement */(nodes[i]); + const node = nodes[i]; const methodValid = node.validate(); if (!methodValid) { valid = methodValid; @@ -258,13 +257,17 @@ export default class ApiAuthorizationEditorElement extends LitElement { * Creates a list of configuration by calling the `serialize()` function on each * currently rendered authorization form. * - * @return {RequestAuthorization[]} List of authorization settings. + * @returns List of authorization settings. */ - serialize() { - const nodes = this.shadowRoot.querySelectorAll('api-authorization-method'); + serialize(): RequestAuthorization[] { + const { shadowRoot } = this; + if (!shadowRoot) { + throw new Error(`State error. The element is not yet initialized.`); + } + const nodes = shadowRoot.querySelectorAll('api-authorization-method'); const result = []; for (let i = 0, len = nodes.length; i < len; i++) { - const node = /** @type ApiAuthorizationMethodElement */(nodes[i]); + const node = nodes[i]; result.push(this[createSettings](node)); } return result; @@ -275,7 +278,7 @@ export default class ApiAuthorizationEditorElement extends LitElement { * @param {ApiAuthorizationMethodElement} target api-authorization-method instance * @return {RequestAuthorization} */ - [createSettings](target) { + [createSettings](target: ApiAuthorizationMethodElement): RequestAuthorization { const config = target.serialize(); let valid = target.validate(); const { type } = target; @@ -299,35 +302,36 @@ export default class ApiAuthorizationEditorElement extends LitElement { * * The function rejects when at least one authorization method rejects. */ - async authorize() { - const nodes = this.shadowRoot.querySelectorAll('api-authorization-method'); + async authorize(): Promise { + const { shadowRoot } = this; + if (!shadowRoot) { + throw new Error(`State error. The element is not yet initialized.`); + } + const nodes = shadowRoot.querySelectorAll('api-authorization-method'); const list = Array.from(nodes); while (list.length) { const auth = list.shift(); + if (!auth) { + break; + } // eslint-disable-next-line no-await-in-loop await auth.authorize(); } } - render() { + render(): TemplateResult { const methods = this[methodsValue]; if (!methods || !methods.schemes.length) { return html``; } return html` -
${methods.schemes.map((scheme, index) => this[methodTemplate](scheme, methods.types[index]))}
`; } - /** - * @param {ApiParametrizedSecurityScheme} scheme - * @param {string} type - * @return {TemplateResult|string} - */ - [methodTemplate](scheme, type) { + [methodTemplate](scheme: ApiDefinitions.IApiParametrizedSecurityScheme, type: string): TemplateResult | string { switch (type) { case 'Basic Authentication': case 'basic': @@ -359,7 +363,7 @@ export default class ApiAuthorizationEditorElement extends LitElement { * @param {ApiParametrizedSecurityScheme} scheme Authorization scheme to be applied to the method * @return {TemplateResult|string} */ - [methodTitleTemplate](scheme) { + [methodTitleTemplate](scheme: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult | string { const { name } = scheme; if (!name) { return ''; @@ -369,11 +373,8 @@ export default class ApiAuthorizationEditorElement extends LitElement { /** * Renders a template for Basic authorization. - * - * @param {ApiParametrizedSecurityScheme} security Security scheme - * @return {TemplateResult} */ - [basicAuthTemplate](security) { + [basicAuthTemplate](security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult { const { anypoint, outlined, globalCache } = this; return html` ${this[methodTitleTemplate](security)} @@ -388,12 +389,8 @@ export default class ApiAuthorizationEditorElement extends LitElement { /** * Renders a template for Digest authorization. - * - * @param {ApiParametrizedSecurityScheme} security Security scheme - * @param {boolean=} renderTitle - * @return {TemplateResult} */ - [digestAuthTemplate](security, renderTitle) { + [digestAuthTemplate](security: ApiDefinitions.IApiParametrizedSecurityScheme, renderTitle?: boolean): TemplateResult { const { anypoint, outlined, @@ -423,7 +420,7 @@ export default class ApiAuthorizationEditorElement extends LitElement { * @param {boolean=} renderTitle * @return {TemplateResult} */ - [passThroughAuthTemplate](security, renderTitle) { + [passThroughAuthTemplate](security: ApiDefinitions.IApiParametrizedSecurityScheme, renderTitle?: boolean): TemplateResult { const { anypoint, outlined, globalCache, } = this; return html` ${renderTitle ? this[methodTitleTemplate](security) : ''} @@ -443,7 +440,7 @@ export default class ApiAuthorizationEditorElement extends LitElement { * @param {ApiParametrizedSecurityScheme} security Security scheme * @return {TemplateResult} */ - [ramlCustomAuthTemplate](security) { + [ramlCustomAuthTemplate](security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult { const { anypoint, outlined, globalCache, } = this; return html` { + const init: AuthUiInit = ({ renderCallback: this[renderCallback], changeCallback: this[changeCallback], target: this, @@ -185,8 +159,7 @@ export default class ApiAuthorizationMethodElement extends AuthorizationMethod { outlined: this.outlined, authorizing: this.authorizing, }); - /** @type AuthUiBase */ - let instance; + let instance: AuthUiBase; const normalized = normalizeType(type); switch (normalized) { case METHOD_BASIC: @@ -224,7 +197,8 @@ export default class ApiAuthorizationMethodElement extends AuthorizationMethod { } this[factory] = instance; instance.defaults(); - await this.requestUpdate(); + this.requestUpdate(); + await this.updateComplete; this.dispatchEvent(new Event('resize', { bubbles: true, composed: true })); } @@ -232,25 +206,16 @@ export default class ApiAuthorizationMethodElement extends AuthorizationMethod { * Propagates values from the UI factory to this element. * This is to synchronize user entered values with the element's state. */ - [propagateChanges]() { + [propagateChanges](): void { switch (normalizeType(this.type)) { case METHOD_CUSTOM: - ApiAuthDataHelper.populateCustom( - this, - /** @type CustomAuth */ (this[factory]) - ); + ApiAuthDataHelper.populateCustom(this, (this[factory] as CustomAuth)); break; case METHOD_PASS_THROUGH: - ApiAuthDataHelper.populatePassThrough( - this, - /** @type PassThroughAuth */ (this[factory]) - ); + ApiAuthDataHelper.populatePassThrough(this, (this[factory] as PassThroughAuth)); break; case METHOD_API_KEY: - ApiAuthDataHelper.populateApiKey( - this, - /** @type ApiKeyAuth */ (this[factory]) - ); + ApiAuthDataHelper.populateApiKey(this, (this[factory] as ApiKeyAuth)); break; default: super[propagateChanges](); @@ -266,11 +231,11 @@ export default class ApiAuthorizationMethodElement extends AuthorizationMethod { * This does nothing if the query parameter has not been defined for current * scheme. * - * @param {string} name The name of the changed parameter - * @param {string} newValue A value to apply. May be empty but must be defined. + * @param name The name of the changed parameter + * @param newValue A value to apply. May be empty but must be defined. */ - updateQueryParameter(name, newValue) { - const instance = /** @type ApiUiBase */ (this[factory]); + updateQueryParameter(name: string, newValue?: string): void { + const instance = this[factory] as ApiUiBase; if (!instance) { // eslint-disable-next-line no-console console.warn(`Setting a query parameter before "type" was set.`); @@ -293,11 +258,11 @@ export default class ApiAuthorizationMethodElement extends AuthorizationMethod { * This does nothing if the header has not been defined for current * scheme. * - * @param {string} name The name of the changed header - * @param {string} newValue A value to apply. May be empty but must be defined. + * @param name The name of the changed header + * @param newValue A value to apply. May be empty but must be defined. */ - updateHeader(name, newValue) { - const instance = /** @type ApiUiBase */ (this[factory]); + updateHeader(name: string, newValue?: string): void { + const instance = this[factory] as ApiUiBase; if (!instance) { // eslint-disable-next-line no-console console.warn(`Setting a query parameter before "type" was set.`); @@ -319,11 +284,11 @@ export default class ApiAuthorizationMethodElement extends AuthorizationMethod { * This does nothing if the cookie has not been defined for current * scheme. * - * @param {string} name The name of the changed cookie - * @param {string} newValue A value to apply. May be empty but must be defined. + * @param name The name of the changed cookie + * @param newValue A value to apply. May be empty but must be defined. */ - updateCookie(name, newValue) { - const instance = /** @type ApiUiBase */ (this[factory]); + updateCookie(name: string, newValue?: string): void { + const instance = this[factory] as ApiUiBase; if (!instance) { // eslint-disable-next-line no-console console.warn(`Setting a query parameter before "type" was set.`); diff --git a/src/elements/ApiChannelDocumentElement.d.ts b/src/elements/ApiChannelDocumentElement.d.ts deleted file mode 100644 index 497f1fa..0000000 --- a/src/elements/ApiChannelDocumentElement.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { TemplateResult } from 'lit-element'; -import ApiResourceDocumentElement, { urlTemplate, titleTemplate, computeUrlValue, operationTemplate, } from './ApiResourceDocumentElement.js'; -import { ApiOperation } from '../helpers/api'; - -/** - * A web component that renders the async API Channel documentation page - */ -export default class ApiChannelDocumentElement extends ApiResourceDocumentElement { - /** - * Computes the URL value for the current serves, selected server, and endpoint's path. - */ - [computeUrlValue](): void; - - /** - * @returns The template for the Operation title. - */ - [titleTemplate](): TemplateResult|string; - - /** - * @returns The template for the operation's URL. - */ - [urlTemplate](): TemplateResult|string; - - /** - * @param operation The graph id of the operation. - * @returns The template for the API operation. - */ - [operationTemplate](operation: ApiOperation): TemplateResult|string; -} diff --git a/src/elements/ApiChannelDocumentElement.js b/src/elements/ApiChannelDocumentElement.ts similarity index 72% rename from src/elements/ApiChannelDocumentElement.js rename to src/elements/ApiChannelDocumentElement.ts index 06365c8..26bc207 100644 --- a/src/elements/ApiChannelDocumentElement.js +++ b/src/elements/ApiChannelDocumentElement.ts @@ -1,5 +1,5 @@ -/* eslint-disable class-methods-use-this */ -import { html } from 'lit-element'; +import { html, TemplateResult } from 'lit'; +import { ApiDefinitions } from '@api-client/core/build/browser.js'; import ApiResourceDocumentElement, { endpointValue, urlValue, @@ -11,9 +11,6 @@ import ApiResourceDocumentElement, { import '../../define/api-operation-document.js' import '../../define/api-parameter-document.js'; -/** @typedef {import('lit-element').TemplateResult} TemplateResult */ -/** @typedef {import('../helpers/api').ApiOperation} ApiOperation */ - /** * A web component that renders the async API Channel documentation page */ @@ -21,7 +18,7 @@ export default class ApiChannelDocumentElement extends ApiResourceDocumentElemen /** * Computes the URL value for the current serves, selected server, and endpoint's path. */ - [computeUrlValue]() { + [computeUrlValue](): void { const { server, protocol='' } = this; let url = ''; if (server) { @@ -42,10 +39,13 @@ export default class ApiChannelDocumentElement extends ApiResourceDocumentElemen } /** - * @returns {TemplateResult|string} The template for the Operation title. + * @returns The template for the Operation title. */ - [titleTemplate]() { + [titleTemplate](): TemplateResult|string { const endPoint = this[endpointValue]; + if (!endPoint) { + return ''; + } const { name, path } = endPoint; const label = name || path; if (!label) { @@ -62,9 +62,9 @@ export default class ApiChannelDocumentElement extends ApiResourceDocumentElemen } /** - * @returns {TemplateResult} The template for the operation's URL. + * @returns The template for the operation's URL. */ - [urlTemplate]() { + [urlTemplate](): TemplateResult { const url = this[urlValue]; return html`
@@ -74,18 +74,18 @@ export default class ApiChannelDocumentElement extends ApiResourceDocumentElemen } /** - * @param {ApiOperation} operation The graph id of the operation. - * @returns {TemplateResult} The template for the API operation. + * @param operation The graph id of the operation. + * @returns The template for the API operation. */ - [operationTemplate](operation) { - const { serverId, endpoint, baseUri } = this; + [operationTemplate](endpoint: ApiDefinitions.IApiEndPoint, operation: ApiDefinitions.IApiOperation): TemplateResult { + const { serverId, baseUri } = this; return html`; - - /** - * A handler for the section toggle button click. - */ - [sectionToggleClickHandler](e: Event): void; - - /** - * @param examples The list of examples to evaluate - * @param mediaType The media type to use with examples processing. - */ - [evaluateExamples](examples: ApiExample[], mediaType: string): SchemaExample[]; - - /** - * @param example The example to evaluate - * @param mediaType The media type to use with examples processing. - */ - [evaluateExample](example: ApiExample, mediaType: string): SchemaExample; - - /** - * @return The template for the section toggle button - */ - [sectionToggleTemplate](ctrlProperty: string): TemplateResult; - /** - * @param label The section label. - * @param openedProperty The name of the element property to be toggled when interacting with the toggle button. - * @param content The content to render. - * @returns The template for a toggle section with a content. - */ - [paramsSectionTemplate](label: string, openedProperty: string, content: TemplateResult | TemplateResult[]): TemplateResult; - /** - * @param model The parameter to render. - * @param dataName Optional data-name for this parameter - * @return The template for the schema item document - */ - [schemaItemTemplate](model: ApiParameter, dataName?: string): TemplateResult; - /** - * @param description The description to render. - * @returns The template for the markdown description. - */ - [descriptionTemplate](description: string): TemplateResult|string; - /** - * @param customDomainProperties - * @returns The template for the custom domain properties - */ - [customDomainPropertiesTemplate](customDomainProperties: ApiCustomDomainProperty[]): TemplateResult|string; - /** - * @returns The template for the examples section. - */ - [examplesTemplate](): TemplateResult|string; - - /** - * @returns The template for a single example - */ - [exampleTemplate](item: SchemaExample): TemplateResult|string; -} diff --git a/src/elements/ApiDocumentationBase.js b/src/elements/ApiDocumentationBase.ts similarity index 61% rename from src/elements/ApiDocumentationBase.js rename to src/elements/ApiDocumentationBase.ts index 97a1fab..16314f1 100644 --- a/src/elements/ApiDocumentationBase.js +++ b/src/elements/ApiDocumentationBase.ts @@ -1,23 +1,20 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable lit-a11y/click-events-have-key-events */ /* eslint-disable class-methods-use-this */ -import { LitElement, html } from 'lit-element'; -import { classMap } from 'lit-html/directives/class-map.js'; -import { ifDefined } from 'lit-html/directives/if-defined.js'; -import { EventsTargetMixin } from '@anypoint-web-components/awc'; -import '@anypoint-web-components/awc/anypoint-button.js'; -import '@anypoint-web-components/awc/anypoint-collapse.js'; +import { LitElement, html, TemplateResult } from 'lit'; +import { property } from 'lit/decorators.js'; +import { IApiCustomDomainProperty } from '@api-client/core/build/src/amf/definitions/Base.js'; +import { classMap } from 'lit/directives/class-map.js'; +import { ifDefined } from 'lit/directives/if-defined.js'; +import { EventsTargetMixin } from '@anypoint-web-components/awc'; +import { ApiExampleGenerator, AmfShapes, ApiDefinitions } from '@api-client/core/build/browser.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-collapse.js'; import '@advanced-rest-client/icons/arc-icon.js'; import '@advanced-rest-client/highlight/arc-marked.js'; -import { ApiExampleGenerator } from '../schema/ApiExampleGenerator.js'; import { EventTypes } from '../events/EventTypes.js'; import '../../define/api-annotation-document.js'; - -/** @typedef {import('lit-element').TemplateResult} TemplateResult */ -/** @typedef {import('../helpers/amf').DomainElement} DomainElement */ -/** @typedef {import('../helpers/api').ApiParameter} ApiParameter */ -/** @typedef {import('../helpers/api').ApiCustomDomainProperty} ApiCustomDomainProperty */ -/** @typedef {import('../helpers/api').ApiExample} ApiExample */ -/** @typedef {import('../types').SchemaExample} SchemaExample */ +import { SchemaExample } from '../types.js'; export const sectionToggleClickHandler = Symbol('sectionToggleClickHandler'); export const processDebounce = Symbol('queryDebounce'); @@ -40,17 +37,17 @@ export const graphChangeHandler = Symbol('graphChangeHandler'); * A base class for the documentation components with common templates and functions. */ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { + [domainIdValue]?: string; + /** - * @returns {string|undefined} The domain id of the object to render. + * The domain id of the object to render. + * @attribute */ - get domainId() { + @property({ type: String, reflect: true }) get domainId(): string | undefined { return this[domainIdValue]; } - /** - * @returns {string|undefined} The domain id of the object to render. - */ - set domainId(value) { + set domainId(value: string | undefined) { const old = this[domainIdValue]; if (old === value) { return; @@ -62,44 +59,36 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { } } - static get properties() { - return { - /** - * The domain id of the object to render. - */ - domainId: { type: String, reflect: true }, - /** - * Enables Anypoint platform styles. - */ - anypoint: { type: Boolean, reflect: true }, - }; - } + /** + * Enables Anypoint platform styles. + * @attribute + */ + @property({ type: Boolean, reflect: true }) anypoint?: boolean; + + /** + * The timeout after which the `queryGraph()` function is called + * in the debouncer. + */ + protected queryDebouncerTimeout?: number; + + [examplesValue]?: SchemaExample[]; + + [debounceValue]?: any; constructor() { super(); - /** - * The timeout after which the `queryGraph()` function is called - * in the debouncer. - */ this.queryDebouncerTimeout = 1; - /** @type {boolean} */ - this.anypoint = undefined; - /** - * @type {SchemaExample[]} - */ - this[examplesValue] = undefined; - this[graphChangeHandler] = this[graphChangeHandler].bind(this); } - connectedCallback() { + connectedCallback(): void { super.connectedCallback(); if (this.domainId) { this[processDebounce](); } } - disconnectedCallback() { + disconnectedCallback(): void { super.disconnectedCallback(); if (this[debounceValue]) { clearTimeout(this[debounceValue]); @@ -107,18 +96,13 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { } } - /** - * @param {EventTarget} node - */ - _attachListeners(node) { + _attachListeners(node: EventTarget): void { node.addEventListener(EventTypes.Store.graphChange, this[graphChangeHandler]); super._attachListeners(node); } - /** - * @param {EventTarget} node - */ - _detachListeners(node) { + + _detachListeners(node: EventTarget): void { node.removeEventListener(EventTypes.Store.graphChange, this[graphChangeHandler]); super._detachListeners(node); } @@ -126,14 +110,14 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { /** * Handler for the event dispatched by the store when the graph model change. */ - [graphChangeHandler]() { + [graphChangeHandler](): void { this[processDebounce](); } /** * Calls the `queryGraph()` function in a debouncer. */ - [processDebounce]() { + [processDebounce](): void { if (this[debounceValue]) { clearTimeout(this[debounceValue]); } @@ -147,17 +131,16 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { * The main function to use to process the AMF model. * To be implemented by the child classes. */ - processGraph() { + processGraph(): void | Promise { // ... } /** * At current state there's no way to tell where to navigate when relative * link is clicked. To prevent 404 anchors this prevents any relative link click. - * @param {Event} e */ - [clickHandler](e) { - const node = /** @type HTMLElement */ (e.target); + [clickHandler](e: Event): void { + const node = (e.target as HTMLElement); if (node.localName !== 'a') { return; } @@ -178,32 +161,29 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { /** * A handler for the section toggle button click. - * @param {Event} e */ - [sectionToggleClickHandler](e) { - const button = /** @type HTMLElement */ (e.currentTarget); - const { ctrlProperty } = button.dataset; - if (!ctrlProperty) { + [sectionToggleClickHandler](e: Event): void { + const button = (e.currentTarget as HTMLElement); + const prop = button.dataset.ctrlProperty; + if (!prop) { return; } - this[ctrlProperty] = !this[ctrlProperty]; + (this as any)[prop] = !(this as any)[prop]; } /** - * @param {ApiExample[]} examples The list of examples to evaluate - * @param {string} mediaType The media type to use with examples processing. - * @returns {SchemaExample[]} + * @param examples The list of examples to evaluate + * @param mediaType The media type to use with examples processing. */ - [evaluateExamples](examples, mediaType) { + [evaluateExamples](examples: AmfShapes.IApiDataExample[], mediaType: string): SchemaExample[] { return examples.map((example) => this[evaluateExample](example, mediaType)) } /** - * @param {ApiExample} example The example to evaluate - * @param {string} mediaType The media type to use with examples processing. - * @returns {SchemaExample} + * @param example The example to evaluate + * @param mediaType The media type to use with examples processing. */ - [evaluateExample](example, mediaType) { + [evaluateExample](example: AmfShapes.IApiDataExample, mediaType: string): SchemaExample { let value; if (mediaType) { const generator = new ApiExampleGenerator(); @@ -213,10 +193,10 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { } const { name, displayName } = example; const label = displayName || name; - const result = /** @type SchemaExample */ ({ + const result: SchemaExample = { ...example, renderValue: value, - }); + }; if (label && !label.startsWith('example_')) { result.label = label; } @@ -224,11 +204,10 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { } /** - * @param {string} ctrlProperty - * @return {TemplateResult|string} The template for the section toggle button + * @returns The template for the section toggle button */ - [sectionToggleTemplate](ctrlProperty) { - const label = this[ctrlProperty] ? 'Hide' : 'Show'; + [sectionToggleTemplate](ctrlProperty: string): TemplateResult | string { + const label = (this as any)[ctrlProperty] ? 'Hide' : 'Show'; return html` ${label} @@ -237,13 +216,13 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { } /** - * @param {string} label The section label. - * @param {string} openedProperty The name of the element property to be toggled when interacting with the toggle button. - * @param {TemplateResult|TemplateResult[]} content The content to render. - * @returns {TemplateResult} The template for a toggle section with a content. + * @param label The section label. + * @param openedProperty The name of the element property to be toggled when interacting with the toggle button. + * @param content The content to render. + * @returns The template for a toggle section with a content. */ - [paramsSectionTemplate](label, openedProperty, content) { - const opened = this[openedProperty]; + [paramsSectionTemplate](label: string, openedProperty: string, content: TemplateResult | (TemplateResult | string)[]): TemplateResult { + const opened = (this as any)[openedProperty]; const classes = { 'params-title': true, opened, @@ -266,11 +245,11 @@ export class ApiDocumentationBase extends EventsTargetMixin(LitElement) { } /** - * @param {ApiParameter} model The parameter to render. - * @param {string=} dataName Optional data-name for this parameter - * @return {TemplateResult} The template for the schema item document + * @param model The parameter to render. + * @param dataName Optional data-name for this parameter + * @returns The template for the schema item document */ - [schemaItemTemplate](model, dataName) { + [schemaItemTemplate](model: ApiDefinitions.IApiParameter, dataName?: string): TemplateResult { return html` diff --git a/src/elements/ApiDocumentationDocumentElement.d.ts b/src/elements/ApiDocumentationDocumentElement.d.ts deleted file mode 100644 index 8d64051..0000000 --- a/src/elements/ApiDocumentationDocumentElement.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { TemplateResult } from 'lit-element'; -import { ApiDocumentation } from '../helpers/api'; -import { ApiDocumentationBase } from './ApiDocumentationBase'; - -export const documentationValue: unique symbol; -export const titleTemplate: unique symbol; -export const queryDocument: unique symbol; - -/** - * A web component that renders the documentation page for an API documentation (like in RAML documentations) built from - * the AMF graph model. - */ -export default class ApiDocumentationDocumentElement extends ApiDocumentationBase { - /** - * @returns The serialized to a JS object graph model - */ - documentation: ApiDocumentation|undefined; - - [documentationValue]: ApiDocumentation; - constructor(); - - /** - * Queries the graph store for the API Documentation data. - */ - processGraph(): Promise; - - /** - * Queries for the documentation model. - */ - [queryDocument](): Promise; - - render(): TemplateResult; - - /** - * @returns The template for the Documentation title. - */ - [titleTemplate](): TemplateResult; -} diff --git a/src/elements/ApiDocumentationDocumentElement.js b/src/elements/ApiDocumentationDocumentElement.ts similarity index 65% rename from src/elements/ApiDocumentationDocumentElement.js rename to src/elements/ApiDocumentationDocumentElement.ts index e892f5f..8bcf5fe 100644 --- a/src/elements/ApiDocumentationDocumentElement.js +++ b/src/elements/ApiDocumentationDocumentElement.ts @@ -1,5 +1,6 @@ /* eslint-disable class-methods-use-this */ -import { html } from 'lit-element'; +import { html, TemplateResult, CSSResult } from 'lit'; +import { ApiDefinitions } from '@api-client/core/build/browser.js'; import { MarkdownStyles } from '@advanced-rest-client/highlight'; import { HttpStyles } from '@advanced-rest-client/base/api.js'; import elementStyles from './styles/ApiDocumentationDocument.js'; @@ -7,9 +8,6 @@ import commonStyles from './styles/Common.js'; import { ApiDocumentationBase, descriptionTemplate } from './ApiDocumentationBase.js'; import { Events } from '../events/Events.js'; -/** @typedef {import('lit-element').TemplateResult} TemplateResult */ -/** @typedef {import('../helpers/api').ApiDocumentation} ApiDocumentation */ - export const documentationValue = Symbol('documentationValue'); export const titleTemplate = Symbol('titleTemplate'); export const queryDocument = Symbol('queryDocument'); @@ -19,20 +17,19 @@ export const queryDocument = Symbol('queryDocument'); * the AMF graph model. */ export default class ApiDocumentationDocumentElement extends ApiDocumentationBase { - get styles() { + static get styles(): CSSResult[] { return [elementStyles, commonStyles, HttpStyles.default, MarkdownStyles]; } + [documentationValue]: ApiDefinitions.IApiDocumentation | undefined + /** - * @returns {ApiDocumentation|undefined} The serialized to a JS object graph model + * The serialized to a JS object graph model */ - get documentation() { + get documentation(): ApiDefinitions.IApiDocumentation | undefined { return this[documentationValue]; } - /** - * @param {ApiDocumentation} value The serialized to a JS object graph model - */ set documentation(value) { const old = this[documentationValue]; if (old === value) { @@ -42,26 +39,19 @@ export default class ApiDocumentationDocumentElement extends ApiDocumentationBas this.processGraph(); } - constructor() { - super(); - /** @type {ApiDocumentation} */ - this[documentationValue] = undefined; - } - /** * Queries the graph store for the API Documentation data. - * @returns {Promise} */ - async processGraph() { + async processGraph(): Promise { await this[queryDocument](); - await this.requestUpdate(); + this.requestUpdate(); + await this.updateComplete; } /** * Queries for the documentation model. - * @returns {Promise} */ - async [queryDocument]() { + async [queryDocument](): Promise { const { domainId } = this; if (!domainId) { return; @@ -75,27 +65,27 @@ export default class ApiDocumentationDocumentElement extends ApiDocumentationBas this[documentationValue] = info; } catch (e) { this[documentationValue] = undefined; - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Unable to query for API documentation data: ${e.message}`, this.localName); + const ex = e as Error; + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Unable to query for API documentation data: ${ex.message}`, this.localName); } } - render() { - if (!this[documentationValue]) { + render(): TemplateResult { + const docs = this[documentationValue]; + if (!docs) { return html``; } return html` - - ${this[titleTemplate]()} - ${this[descriptionTemplate](this[documentationValue].description)} + ${this[titleTemplate](docs)} + ${this[descriptionTemplate](docs.description)} `; } /** - * @returns {TemplateResult|string} The template for the Documentation title. + * @returns The template for the Documentation title. */ - [titleTemplate]() { - const docs = this[documentationValue]; + [titleTemplate](docs: ApiDefinitions.IApiDocumentation): TemplateResult | string { const { title } = docs; if (!title) { return ''; diff --git a/src/elements/ApiDocumentationElement.d.ts b/src/elements/ApiDocumentationElement.d.ts deleted file mode 100644 index 1a96639..0000000 --- a/src/elements/ApiDocumentationElement.d.ts +++ /dev/null @@ -1,287 +0,0 @@ -import { TemplateResult } from 'lit-element'; -import { Oauth2Credentials } from '@advanced-rest-client/base'; -import { ApiDocumentationBase } from './ApiDocumentationBase.js'; -import { ApiSummary } from '../helpers/api'; -import { ServerType, SelectionType, DocumentMeta } from '../types'; -import { ApiNavigationEvent } from '../events/NavigationEvents'; - -export const operationIdValue: unique symbol; -export const domainIdValue: unique symbol; -export const domainTypeValue: unique symbol; -export const navigationHandler: unique symbol; -export const navEventsRegistered: unique symbol; -export const registerNavigationEvents: unique symbol; -export const unregisterNavigationEvents: unique symbol; -export const handleNavigationEventsValue: unique symbol; -export const processApiSpecSelection: unique symbol; -export const processLibrarySelection: unique symbol; -export const renderedViewValue: unique symbol; -export const renderedModelValue: unique symbol; -export const processFragment: unique symbol; -export const processPartial: unique symbol; -export const processEndpointPartial: unique symbol; -export const apiSummaryValue: unique symbol; -export const serverSelectorTemplate: unique symbol; -export const serversCountHandler: unique symbol; -export const serverChangeHandler: unique symbol; -export const modelTemplate: unique symbol; -export const summaryTemplate: unique symbol; -export const securityTemplate: unique symbol; -export const documentationTemplate: unique symbol; -export const schemaTemplate: unique symbol; -export const resourceTemplate: unique symbol; - -/** - * A main documentation view for an AMF model representing a sync or an async API. - * - * This element works with the [AMF](https://github.com/mulesoft/amf) data model. - * - * @fires tryit - * @fires apirequest - * @fires apiabort - * @fires apinavigate - */ -export default class ApiDocumentationElement extends ApiDocumentationBase { - /** - * Type of the selected domain item. - * @attribute - */ - domainType: SelectionType; - [domainTypeValue]: SelectionType; - /** - * The domain id of the currently rendered API operation. - * When selecting an operation the `domainId` is the id if the parent endpoint. - * @attribute - */ - operationId: string; - [operationIdValue]: string; - /** - * By default application hosting the element must set `domainId` and - * `domainType` properties. When using `api-navigation` element - * by setting this property the element listens for navigation events - * and updates the state - * @attribute - */ - handleNavigationEvents: boolean; - [handleNavigationEventsValue]: boolean; - /** - * A property to set to override AMF's model base URI information. - * @attribute - */ - baseUri: string; - /** - * When set it renders the "try it" button that dispatches the `tryit` event. - * @attribute - */ - tryItButton: boolean; - /** - * When set it renders the "try it" panel next to the operation documentation. - * Setting this automatically disables the `tryItButton` property. - * - * Note, use this only when there's enough space on the screen to render 2 panels side-by-side. - * @attribute - */ - tryItPanel: boolean; - /** - * OAuth2 redirect URI. - * This value **must** be set in order for OAuth 1/2 to work properly. - * This is only required in inline mode (`inlineMethods`). - * @attribute - */ - redirectUri: string; - /** - * When set it renders the URL input above the URL parameters in the HTTP editor. - * @attribute - */ - httpUrlEditor: boolean; - /** - * When set it applies the authorization values to the request dispatched - * with the API request event. - * If possible, it applies the authorization values to query parameter or headers - * depending on the configuration. - * - * When the values arr applied to the request the authorization config is kept in the - * request object, but its `enabled` state is always `false`, meaning other potential - * processors should ignore this values. - * - * If this property is not set then the application hosting this component should - * process the authorization data and apply them to the request. - * @attribute - */ - httpApplyAuthorization: boolean; - /** - * List of credentials source passed to the HTTP editor - * @attribute - */ - httpCredentialsSource: Oauth2Credentials; - /** - * Optional property to set on the request editor. - * When true, the server selector is not rendered - * @attribute - */ - noServerSelector: boolean; - /** - * When set it renders "add custom" item button in the HTTP request editor. - * If the element is to be used without AMF model this should always - * be enabled. Otherwise users won't be able to add a parameter. - * @attribute - */ - httpAllowCustom: boolean; - /** - * Optional property to set on the request editor. - * If true, the server selector custom base URI option is rendered - * @attribute - */ - allowCustomBaseUri: boolean; - /** - * The URI of the server currently selected in the server selector - * @attribute - */ - serverValue: string; - /** - * The type of the server currently selected in the server selector - * @attribute - */ - serverType: ServerType; - serversCount: number; - /** - * Former `effectiveBaseUri`. - * @returns The URI for the API defined by the `baseUri` property or the `serverValue`. - */ - get apiBaseUri(): string | undefined; - - /** - * @deprecated Use `apiBaseUri` instead. - */ - get effectiveBaseUri(): string | undefined; - - /** @returns The domain type of the rendered view. */ - get renderedView(): string; - - /** @returns The domain model rendered in the view. */ - get renderedModel(): any; - - get renderSelector(): boolean; - - /** - * This is a computed value from the AMF model. - * @returns true when whe currently loaded API is an async API. - */ - get isAsync(): boolean; - /** - * @returns The mime type of the schema that is being rendered. - */ - get schemaMime(): string|undefined; - get documentMeta(): DocumentMeta; - [apiSummaryValue]: ApiSummary; - [navEventsRegistered]: boolean; - /** - * The mime type of the currently selected schema. - * @attribute - */ - schemaMimeType: string; - - constructor(); - - disconnectedCallback(): void; - - /** - * Registers the api navigation event listener handler - * on the window object. - */ - [registerNavigationEvents](): void; - - /** - * Removes event listener from window object for the API navigation event. - */ - [unregisterNavigationEvents](): void; - - /** - * Handler for the API navigation event. - * - * Note, when the current type is set to `operation` then the `operationId` is - * set instead of `domainId`, which is set to the parent endpoint id. - */ - [navigationHandler](e: ApiNavigationEvent): void; - - processGraph(): Promise; - - /** - * Processes selection for the web API data model. It ignores the input if - * `domainId` or `domainType` is not set. - * - * @param model WebApi AMF model. Do not use an array here. - */ - [processApiSpecSelection](): void; - - /** - * Processes selection for a library data model. It ignores the input if - * `domainId` or `domainType` is not set. - * @param model Library AMF model. Do not use an array here. - */ - [processLibrarySelection](): void; - - /** - * Processes fragment model and sets current selection and the model. - * - * @param model RAML fragment model - * @param domainType The selected domain type. - */ - [processFragment](domainType: SelectionType): void; - - /** - * Sets the partial model to be rendered. - * - * @param model RAML partial model - * @param domainType The domain type representing the partial model. - */ - [processPartial](domainType: SelectionType): void; - - /** - * Processes endpoint data from partial model definition. - * It sets models that are used by the docs. - * - * If `selected` or `selectedType` is not set then it automatically selects - * an endpoint. - */ - [processEndpointPartial](): void; - - [serversCountHandler](e: CustomEvent): void; - [serverChangeHandler](e: CustomEvent): void; - - render(): TemplateResult; - - /** - * @returns The template for the server selector. - */ - [serverSelectorTemplate](): TemplateResult|string; - - /** - * @returns The template for the server selector. - */ - [modelTemplate](): TemplateResult|string; - - /** - * @returns The template for the API summary page. - */ - [summaryTemplate](): TemplateResult|string; - - /** - * @returns The template for the API security definition page. - */ - [securityTemplate](): TemplateResult|string; - /** - * @returns The template for the RAML's documentation page. - */ - [documentationTemplate](): TemplateResult|string; - - /** - * @returns The template for the API schema page. - */ - [schemaTemplate](): TemplateResult|string; - - /** - * @returns The template for the API endpoint page. - */ - [resourceTemplate](): TemplateResult|string; -} diff --git a/src/elements/ApiDocumentationElement.js b/src/elements/ApiDocumentationElement.ts similarity index 58% rename from src/elements/ApiDocumentationElement.js rename to src/elements/ApiDocumentationElement.ts index 0376b53..60f2e24 100644 --- a/src/elements/ApiDocumentationElement.js +++ b/src/elements/ApiDocumentationElement.ts @@ -1,17 +1,19 @@ /* eslint-disable no-param-reassign */ -/* eslint-disable class-methods-use-this */ -import { html } from 'lit-element'; -import '@anypoint-web-components/awc/anypoint-radio-button.js'; -import '@anypoint-web-components/awc/anypoint-radio-group.js'; +import { html, TemplateResult, CSSResult } from 'lit'; +import { property } from 'lit/decorators.js'; +import { ApiDefinitions, AmfNamespace } from '@api-client/core/build/browser.js'; +import { Oauth2Credentials } from '@advanced-rest-client/base'; +import { AnypointRadioGroupElement } from '@anypoint-web-components/awc'; +import '@anypoint-web-components/awc/dist/define/anypoint-radio-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-radio-group.js'; import elementStyles from './styles/ApiDocumentation.js'; -import { +import { ApiDocumentationBase, processDebounce, domainIdValue, } from './ApiDocumentationBase.js'; import { EventTypes } from '../events/EventTypes.js'; import { Events } from '../events/Events.js'; -import { ns } from '../helpers/Namespace.js'; import '../../define/api-summary.js' import '../../define/api-operation-document.js' import '../../define/api-resource-document.js'; @@ -19,6 +21,9 @@ import '../../define/api-security-document.js'; import '../../define/api-documentation-document.js'; import '../../define/api-schema-document.js'; import '../../define/api-server-selector.js'; +import { DocumentMeta, SelectionType } from '../types.js'; +import { ServerChangeEvent, ServerCountChangeEvent } from '../events/ServerEvents.js'; +import { ApiNavigationEvent } from '../events/NavigationEvents.js'; /** @typedef {import('lit-element').TemplateResult} TemplateResult */ /** @typedef {import('../helpers/api').ApiSummary} ApiSummary */ @@ -65,113 +70,145 @@ export const queryApiSummary = Symbol('queryApiSummary'); * This element works with the [AMF](https://github.com/mulesoft/amf) data model. */ export default class ApiDocumentationElement extends ApiDocumentationBase { - get styles() { - return elementStyles; - } - - static get properties() { - return { - /** - * Type of the selected domain item. - */ - domainType: { type: String }, - /** - * The domain id of the currently rendered API operation. - * When selecting an operation the `domainId` is the id if the parent endpoint. - */ - operationId: { type: String }, - /** - * By default application hosting the element must set `domainId` and - * `domainType` properties. When using `api-navigation` element - * by setting this property the element listens for navigation events - * and updates the state - */ - handleNavigationEvents: { type: Boolean }, - /** - * A property to set to override AMF's model base URI information. - */ - baseUri: { type: String }, - /** - * When set it renders the "try it" button that dispatches the `tryit` event. - */ - tryItButton: { type: Boolean, reflect: true }, - /** - * When set it renders the "try it" panel next to the operation documentation. - * Setting this automatically disables the `tryItButton` property. - * - * Note, use this only when there's enough space on the screen to render 2 panels side-by-side. - */ - tryItPanel: { type: Boolean, reflect: true }, - /** - * OAuth2 redirect URI. - * This value **must** be set in order for OAuth 1/2 to work properly. - * This is only required in inline mode (`inlineMethods`). - */ - redirectUri: { type: String }, - /** - * When set it renders the URL input above the URL parameters in the HTTP editor. - */ - httpUrlEditor: { type: Boolean, reflect: true }, - /** - * When set it applies the authorization values to the request dispatched - * with the API request event. - * If possible, it applies the authorization values to query parameter or headers - * depending on the configuration. - * - * When the values arr applied to the request the authorization config is kept in the - * request object, but its `enabled` state is always `false`, meaning other potential - * processors should ignore this values. - * - * If this property is not set then the application hosting this component should - * process the authorization data and apply them to the request. - */ - httpApplyAuthorization: { type: Boolean, reflect: true }, - /** - * List of credentials source passed to the HTTP editor - */ - httpCredentialsSource: { type: Array }, - /** - * Optional property to set on the request editor. - * When true, the server selector is not rendered - */ - noServerSelector: { type: Boolean }, - /** - * When set it renders "add custom" item button in the HTTP request editor. - * If the element is to be used without AMF model this should always - * be enabled. Otherwise users won't be able to add a parameter. - */ - httpAllowCustom: { type: Boolean }, - /** - * Optional property to set on the request editor. - * If true, the server selector custom base URI option is rendered - */ - allowCustomBaseUri: { type: Boolean }, - /** - * The URI of the server currently selected in the server selector - */ - serverValue: { type: String }, - /** - * The type of the server currently selected in the server selector - */ - serverType: { type: String }, - /** - * The mime type of the currently selected schema. - */ - schemaMimeType: { type: String }, - }; + static get styles(): CSSResult[] { + return [elementStyles]; } + [domainTypeValue]: SelectionType | undefined; + + [operationIdValue]: string | undefined; + + [handleNavigationEventsValue]: boolean | undefined; + + [renderedViewValue]: string | undefined; + + [apiSummaryValue]?: ApiDefinitions.IApiSummary; + + [documentMetaValue]?: DocumentMeta; + + [navEventsRegistered]: boolean; + + /** + * A property to set to override AMF's model base URI information. + * @attribute + */ + @property({ type: String }) + baseUri?: string; + /** - * @returns {SelectionType|undefined} The domain id of the object to render. + * When set it renders the "try it" button that dispatches the `tryit` event. + * @attribute */ - get domainType() { - return this[domainTypeValue]; - } + @property({ type: Boolean, reflect: true }) + tryItButton?: boolean; + + /** + * When set it renders the "try it" panel next to the operation documentation. + * Setting this automatically disables the `tryItButton` property. + * + * Note, use this only when there's enough space on the screen to render 2 panels side-by-side. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + tryItPanel?: boolean; + + /** + * OAuth2 redirect URI. + * This value **must** be set in order for OAuth 1/2 to work properly. + * This is only required in inline mode (`inlineMethods`). + * @attribute + */ + @property({ type: String }) + redirectUri?: string; /** - * @returns {SelectionType|undefined} The domain id of the object to render. + * When set it renders the URL input above the URL parameters in the HTTP editor. + * @attribute */ - set domainType(value) { + @property({ type: Boolean, reflect: true }) + httpUrlEditor?: boolean; + + /** + * When set it applies the authorization values to the request dispatched + * with the API request event. + * If possible, it applies the authorization values to query parameter or headers + * depending on the configuration. + * + * When the values arr applied to the request the authorization config is kept in the + * request object, but its `enabled` state is always `false`, meaning other potential + * processors should ignore this values. + * + * If this property is not set then the application hosting this component should + * process the authorization data and apply them to the request. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + httpApplyAuthorization?: boolean; + + /** + * List of credentials source passed to the HTTP editor + */ + @property({ type: Array }) + httpCredentialsSource?: Oauth2Credentials[]; + + /** + * Optional property to set on the request editor. + * When true, the server selector is not rendered + * @attribute + */ + @property({ type: Boolean, reflect: true }) + noServerSelector?: boolean; + + /** + * When set it renders "add custom" item button in the HTTP request editor. + * If the element is to be used without AMF model this should always + * be enabled. Otherwise users won't be able to add a parameter. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + httpAllowCustom?: boolean; + + /** + * Optional property to set on the request editor. + * If true, the server selector custom base URI option is rendered + * @attribute + */ + @property({ type: Boolean, reflect: true }) + allowCustomBaseUri?: boolean; + + /** + * The URI of the server currently selected in the server selector + * @attribute + */ + @property({ type: String }) + serverValue?: string; + + /** + * The type of the server currently selected in the server selector + * @attribute + */ + @property({ type: String }) + serverType?: string; + + /** + * The mime type of the currently selected schema. + * @attribute + */ + @property({ type: String }) + schemaMimeType?: string; + + serversCount?: number; + + /** + * The type of the selected domain item. + * @attribute + */ + @property({ type: String, reflect: true }) + get domainType(): SelectionType | undefined { + return this[domainTypeValue]; + } + + set domainType(value: SelectionType | undefined) { const old = this[domainTypeValue]; if (old === value) { return; @@ -184,16 +221,16 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { } /** - * @returns {string|undefined} The domain id of the object to render. + * The domain id of the currently rendered API operation. + * When selecting an operation the `domainId` is the id if the parent endpoint. + * @attribute */ - get operationId() { + @property({ type: String, reflect: true }) + get operationId(): string | undefined { return this[operationIdValue]; } - /** - * @returns {string|undefined} The domain id of the object to render. - */ - set operationId(value) { + set operationId(value: string | undefined) { const old = this[operationIdValue]; if (old === value) { return; @@ -205,13 +242,19 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { } } - /** @returns {boolean} */ - get handleNavigationEvents() { + /** + * By default application hosting the element must set `domainId` and + * `domainType` properties. When using `api-navigation` element + * by setting this property the element listens for navigation events + * and updates the state + * @attribute + */ + @property({ type: Boolean, reflect: true }) + get handleNavigationEvents(): boolean | undefined { return this[handleNavigationEventsValue]; } - /** @param {boolean} value */ - set handleNavigationEvents(value) { + set handleNavigationEvents(value: boolean | undefined) { const old = this[handleNavigationEventsValue]; if (old === value) { return; @@ -226,9 +269,9 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { /** * Former `effectiveBaseUri`. - * @returns {string|undefined} The URI for the API defined by the `baseUri` property or the `serverValue`. + * @returns The URI for the API defined by the `baseUri` property or the `serverValue`. */ - get apiBaseUri() { + get apiBaseUri(): string | undefined { const { baseUri, serverValue } = this; return baseUri || serverValue; } @@ -236,31 +279,30 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { /** * @deprecated Use `apiBaseUri` instead. */ - get effectiveBaseUri() { + get effectiveBaseUri(): string | undefined { return this.apiBaseUri; } - /** @returns {string} The domain type of the rendered view. */ - get renderedView() { + /** The domain type of the rendered view. */ + get renderedView(): string | undefined { return this[renderedViewValue]; } - /** @returns {boolean} */ - get renderSelector() { - const { domainType, serversCount, allowCustomBaseUri } = this; - const isOperationOrEndpoint = !!domainType && (['operation', 'resource'].includes(domainType)); - const moreThanOneServer = serversCount >= 2; - if (isOperationOrEndpoint) { - return allowCustomBaseUri || moreThanOneServer; - } - return false; + get renderSelector(): boolean { + const { domainType, serversCount=0, allowCustomBaseUri } = this; + const isOperationOrEndpoint = !!domainType && (['operation', 'resource'].includes(domainType)); + const moreThanOneServer = serversCount >= 2; + if (isOperationOrEndpoint) { + return allowCustomBaseUri || moreThanOneServer; + } + return false; } /** * This is a computed value from the AMF model. - * @returns {boolean} true when whe currently loaded API is an async API. + * @returns true when whe currently loaded API is an async API. */ - get isAsync() { + get isAsync(): boolean { const { documentMeta } = this; if (!documentMeta) { return false; @@ -269,9 +311,9 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { } /** - * @returns {string|undefined} The mime type of the schema that is being rendered. + * @returns The mime type of the schema that is being rendered. */ - get schemaMime() { + get schemaMime(): string|undefined { const { schemaMimeType } = this; if (schemaMimeType) { return schemaMimeType; @@ -280,66 +322,30 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { if (!summary) { return undefined; } - const { accepts=[] } = summary; + const { accepts = [] } = summary; if (!accepts.length) { return undefined; } return accepts[0]; } - /** @type DocumentMeta */ - get documentMeta() { + get documentMeta(): DocumentMeta | undefined { return this[documentMetaValue]; } constructor() { super(); - /** @type {SelectionType} */ - this.domainType = undefined; - /** @type {string} */ - this.operationId = undefined; - /** @type {string} */ - this.baseUri = undefined; - /** @type {boolean} */ - this.tryItButton = undefined; - /** @type {boolean} */ - this.tryItPanel = undefined; - /** @type {boolean} */ - this.httpUrlEditor = undefined; - /** @type {boolean} */ - this.noServerSelector = undefined; - /** @type {boolean} */ - this.allowCustomBaseUri = undefined; - /** @type {boolean} */ - this.httpAllowCustom = undefined; - /** @type {string} */ - this.redirectUri = undefined; - /** @type {ServerType} */ - this.serverType = undefined; - /** @type {string} */ - this.serverValue = undefined; - /** @type {number} */ - this.serversCount = undefined; - /** @type {boolean} */ - this.httpApplyAuthorization = undefined; - this.httpCredentialsSource = undefined; - /** @type {ApiSummary} */ - this[apiSummaryValue] = undefined; - /** @type {string} */ - this.schemaMimeType = undefined; this[navigationHandler] = this[navigationHandler].bind(this); this[navEventsRegistered] = false; - /** @type DocumentMeta */ - this[documentMetaValue] = undefined; } - connectedCallback() { + connectedCallback(): void { super.connectedCallback(); this[processDebounce](); } - disconnectedCallback() { + disconnectedCallback(): void { super.disconnectedCallback(); if (this[navEventsRegistered]) { this[unregisterNavigationEvents](); @@ -350,17 +356,17 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { * Registers the api navigation event listener handler * on the window object. */ - [registerNavigationEvents]() { + [registerNavigationEvents](): void { this[navEventsRegistered] = true; - window.addEventListener(EventTypes.Navigation.apiNavigate, this[navigationHandler]); + window.addEventListener(EventTypes.Navigation.apiNavigate, this[navigationHandler] as EventListener); } /** * Removes event listener from window object for the API navigation event. */ - [unregisterNavigationEvents]() { + [unregisterNavigationEvents](): void { this[navEventsRegistered] = false; - window.removeEventListener(EventTypes.Navigation.apiNavigate, this[navigationHandler]); + window.removeEventListener(EventTypes.Navigation.apiNavigate, this[navigationHandler] as EventListener); } /** @@ -368,10 +374,8 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { * * Note, when the current type is set to `operation` then the `operationId` is * set instead of `domainId`, which is set to the parent endpoint id. - * - * @param {ApiNavigationEvent} e */ - [navigationHandler](e) { + [navigationHandler](e: ApiNavigationEvent): void { const { domainId, domainType, parentId, passive } = e.detail; if (passive === true) { return; @@ -379,7 +383,7 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { this.domainType = domainType; if (domainType === 'operation') { this.operationId = domainId; - this.domainId = parentId; + this.domainId = parentId; } else { this.operationId = undefined; this.domainId = domainId; @@ -387,10 +391,7 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { this.processGraph(); } - /** - * @returns {Promise} - */ - async processGraph() { + async processGraph(): Promise { this.schemaMimeType = undefined; await this[queryDocumentMeta](); const { documentMeta } = this; @@ -408,15 +409,14 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { return; } const { isFragment, types } = documentMeta; - + if (isFragment) { - /** @type SelectionType */ - let type; - if (types.includes(ns.aml.vocabularies.security.SecuritySchemeFragment)) { + let type: SelectionType | undefined; + if (types.includes(AmfNamespace.aml.vocabularies.security.SecuritySchemeFragment)) { type = 'security'; - } else if (types.includes(ns.aml.vocabularies.apiContract.UserDocumentationFragment)) { + } else if (types.includes(AmfNamespace.aml.vocabularies.apiContract.UserDocumentationFragment)) { type = 'documentation'; - } else if (types.includes(ns.aml.vocabularies.shapes.DataTypeFragment)) { + } else if (types.includes(AmfNamespace.aml.vocabularies.shapes.DataTypeFragment)) { type = 'schema'; } this[processFragment](type); @@ -427,18 +427,17 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { // partial models // - if (types.includes(ns.aml.vocabularies.apiContract.EndPoint)) { + if (types.includes(AmfNamespace.aml.vocabularies.apiContract.EndPoint)) { this[processEndpointPartial](); return; } - /** @type SelectionType */ - let type; - if (types.includes(ns.aml.vocabularies.core.CreativeWork)) { + let type: SelectionType | undefined; + if (types.includes(AmfNamespace.aml.vocabularies.core.CreativeWork)) { type = 'documentation'; - } else if (types.includes(ns.aml.vocabularies.security.SecurityScheme)) { + } else if (types.includes(AmfNamespace.aml.vocabularies.security.SecurityScheme)) { type = 'security'; - } else if (types.includes(ns.w3.shacl.Shape)) { + } else if (types.includes(AmfNamespace.w3.shacl.Shape)) { type = 'schema'; } this[processPartial](type); @@ -447,14 +446,15 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { /** * Reads the currently loaded document meta data from the store. */ - async [queryDocumentMeta]() { + async [queryDocumentMeta](): Promise { this[documentMetaValue] = undefined; try { const info = await Events.Api.documentMeta(this); this[documentMetaValue] = info; } catch (e) { - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Unable to query for the document meta data: ${e.message}`, this.localName); + const ex = e as Error; + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Unable to query for the document meta data: ${ex.message}`, this.localName); } } @@ -462,14 +462,15 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { * Reads the API summary. * Called only when the currently loaded document is an API. */ - async [queryApiSummary]() { + async [queryApiSummary](): Promise { try { const info = await Events.Api.summary(this); this[apiSummaryValue] = info; } catch (e) { this[apiSummaryValue] = undefined; - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Unable to query for the API summary data: ${e.message}`, this.localName); + const ex = e as Error; + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Unable to query for the API summary data: ${ex.message}`, this.localName); } } @@ -477,7 +478,7 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { * Processes selection for the web API data model. It ignores the input if * `domainId` or `domainType` is not set. */ - [processApiSpecSelection]() { + [processApiSpecSelection](): void { const { domainId, tryItPanel } = this; let { domainType } = this; if (!domainId || !domainType) { @@ -495,7 +496,7 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { * Processes selection for a library data model. It ignores the input if * `domainId` or `domainType` is not set. */ - [processLibrarySelection]() { + [processLibrarySelection](): void { const { domainId, domainType } = this; if (!domainId || !domainType) { // Not all required properties were set. @@ -508,10 +509,10 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { /** * Processes fragment model and sets current selection and the model. * - * @param {SelectionType} domainType The selected domain type. + * @param domainType The selected domain type. */ - [processFragment](domainType) { - this[domainIdValue] = this.documentMeta.encodesId; + [processFragment](domainType?: SelectionType): void { + this[domainIdValue] = this.documentMeta?.encodesId; this[renderedViewValue] = domainType; this.requestUpdate(); } @@ -519,9 +520,9 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { /** * Sets the partial model to be rendered. * - * @param {SelectionType} domainType The domain type representing the partial model. + * @param domainType The domain type representing the partial model. */ - [processPartial](domainType) { + [processPartial](domainType?: SelectionType): void { this[renderedViewValue] = domainType; this.requestUpdate(); } @@ -532,39 +533,30 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { * * If `selected` or `selectedType` is not set then it automatically selects */ - [processEndpointPartial]() { + [processEndpointPartial](): void { const { tryItPanel } = this; let { domainType } = this; - if (!domainType || tryItPanel) { - domainType = 'resource'; - } + if (!domainType || tryItPanel) { + domainType = 'resource'; + } if (!['operation', 'resource'].includes(domainType)) { domainType = 'resource'; } - this[renderedViewValue] = domainType; + this[renderedViewValue] = domainType; this.requestUpdate(); } - /** - * @param {ServerCountChangeEvent} e - */ - [serversCountHandler](e) { + [serversCountHandler](e: ServerCountChangeEvent): void { this.serversCount = e.detail.value; } - /** - * @param {ServerChangeEvent} e - */ - [serverChangeHandler](e) { + [serverChangeHandler](e: ServerChangeEvent): void { this.serverValue = e.detail.value; this.serverType = e.detail.type; } - /** - * @param {Event} e - */ - [mediaTypeSelectHandler](e) { - const group = /** @type AnypointRadioGroupElement */ (e.target); + [mediaTypeSelectHandler](e: Event): void { + const group = (e.target as AnypointRadioGroupElement); const { selectedItem } = group; if (!selectedItem) { return; @@ -573,16 +565,16 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { this.schemaMimeType = mime; } - render() { - return html` + render(): TemplateResult { + return html` ${this[serverSelectorTemplate]()} ${this[modelTemplate]()}`; } /** - * @returns {TemplateResult|string} The template for the server selector. + * @returns The template for the server selector. */ - [serverSelectorTemplate]() { + [serverSelectorTemplate](): TemplateResult|string { if (this.noServerSelector) { return ''; } @@ -607,9 +599,9 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { } /** - * @returns {TemplateResult|string} The template for the server selector. + * @returns The template for the server selector. */ - [modelTemplate]() { + [modelTemplate](): TemplateResult|string { switch (this[renderedViewValue]) { case 'summary': return this[summaryTemplate](); case 'security': return this[securityTemplate](); @@ -623,18 +615,18 @@ export default class ApiDocumentationElement extends ApiDocumentationBase { } /** - * @returns {TemplateResult|string} The template for the API summary page. + * @returns The template for the API summary page. */ - [summaryTemplate]() { + [summaryTemplate](): TemplateResult|string { const { baseUri, anypoint } = this; return html` `; } /** - * @returns {TemplateResult|string} The template for the API security definition page. + * @returns The template for the API security definition page. */ - [securityTemplate]() { + [securityTemplate](): TemplateResult|string { const { domainId, anypoint } = this; return html` - ${accepts.map((item) => - html`${item}`)} + ${accepts.map((item) => + html`${item}`)}
`; diff --git a/src/elements/ApiNavigationElement.d.ts b/src/elements/ApiNavigationElement.d.ts deleted file mode 100644 index 1fcf948..0000000 --- a/src/elements/ApiNavigationElement.d.ts +++ /dev/null @@ -1,744 +0,0 @@ -import { LitElement, TemplateResult, CSSResult } from 'lit-element'; -import { EventsTargetMixin } from '@anypoint-web-components/awc'; -import { - ApiEndPointWithOperationsListItem, - EndpointItem, - OperationItem, - DocumentationItem, - NodeShapeItem, - SecurityItem, - SelectableMenuItem, - EditableMenuItem, - SelectionType, - SchemaAddType, - NavigationLayout, - DocumentMeta, -} from '../types'; - -export declare const apiIdValue: unique symbol; -export declare const isAsyncValue: unique symbol; -export declare const queryingValue: unique symbol; -export declare const abortControllerValue: unique symbol; -export declare const selectedValue: unique symbol; -export declare const documentationsValue: unique symbol; -export declare const schemasValue: unique symbol; -export declare const securityValue: unique symbol; -export declare const sourceEndpointsValue: unique symbol; -export declare const endpointsValue: unique symbol; -export declare const layoutValue: unique symbol; -export declare const queryValue: unique symbol; -export declare const openedEndpointsValue: unique symbol; -export declare const queryApi: unique symbol; -export declare const queryEndpoints: unique symbol; -export declare const layoutEndpoints: unique symbol; -export declare const queryDocumentations: unique symbol; -export declare const querySchemas: unique symbol; -export declare const querySecurity: unique symbol; -export declare const createFlatTreeItems: unique symbol; -export declare const getFilteredEndpoints: unique symbol; -export declare const getFilteredDocumentations: unique symbol; -export declare const getFilteredSchemas: unique symbol; -export declare const getFilteredSecurity: unique symbol; -export declare const computeEndpointPaddingValue: unique symbol; -export declare const computeEndpointPaddingLeft: unique symbol; -export declare const computeOperationPaddingValue: unique symbol; -export declare const computeOperationPaddingLeft: unique symbol; -export declare const itemClickHandler: unique symbol; -export declare const itemKeydownHandler: unique symbol; -export declare const toggleSectionClickHandler: unique symbol; -export declare const toggleSectionKeydownHandler: unique symbol; -export declare const endpointToggleClickHandler: unique symbol; -export declare const focusHandler: unique symbol; -export declare const keydownHandler: unique symbol; -export declare const summaryTemplate: unique symbol; -export declare const endpointsTemplate: unique symbol; -export declare const endpointTemplate: unique symbol; -export declare const endpointToggleTemplate: unique symbol; -export declare const operationItemTemplate: unique symbol; -export declare const documentationsTemplate: unique symbol; -export declare const documentationTemplate: unique symbol; -export declare const externalDocumentationTemplate: unique symbol; -export declare const schemasTemplate: unique symbol; -export declare const schemaTemplate: unique symbol; -export declare const securitiesTemplate: unique symbol; -export declare const securityTemplate: unique symbol; -export declare const keyDownAction: unique symbol; -export declare const keyUpAction: unique symbol; -export declare const keyShiftTabAction: unique symbol; -export declare const keyEscAction: unique symbol; -export declare const keySpaceAction: unique symbol; -export declare const shiftTabPressedValue: unique symbol; -export declare const focusedItemValue: unique symbol; -export declare const selectedItemValue: unique symbol; -export declare const focusItem: unique symbol; -export declare const listActiveItems: unique symbol; -export declare const itemsValue: unique symbol; -export declare const listSectionActiveNodes: unique symbol; -export declare const keyArrowRightAction: unique symbol; -export declare const keyArrowLeftAction: unique symbol; -export declare const makeSelection: unique symbol; -export declare const selectItem: unique symbol; -export declare const deselectItem: unique symbol; -export declare const findSelectable: unique symbol; -export declare const toggleSectionElement: unique symbol; -export declare const summarySelected: unique symbol; -export declare const filterTemplate: unique symbol; -export declare const processQuery: unique symbol; -export declare const searchHandler: unique symbol; -export declare const resetTabindices: unique symbol; -export declare const notifyNavigation: unique symbol; -export declare const addingEndpointValue: unique symbol; -export declare const addEndpointInputTemplate: unique symbol; -export declare const addEndpointKeydownHandler: unique symbol; -export declare const commitNewEndpoint: unique symbol; -export declare const cancelNewEndpoint: unique symbol; -export declare const findViewModelItem: unique symbol; -export declare const renameInputTemplate: unique symbol; -export declare const renameKeydownHandler: unique symbol; -export declare const renameBlurHandler: unique symbol; -export declare const updateNameHandler: unique symbol; -export declare const addDocumentationInputTemplate: unique symbol; -export declare const addDocumentationKeydownHandler: unique symbol; -export declare const addingDocumentationValue: unique symbol; -export declare const addingExternalValue: unique symbol; -export declare const commitNewDocumentation: unique symbol; -export declare const externalDocumentationHandler: unique symbol; -export declare const addingSchemaValue: unique symbol; -export declare const addSchemaInputTemplate: unique symbol; -export declare const addSchemaKeydownHandler: unique symbol; -export declare const commitNewSchema: unique symbol; -export declare const addingSchemaTypeValue: unique symbol; -export declare const graphChangeHandler: unique symbol; -export declare const documentMetaValue: unique symbol; - -/** - * @fires graphload - */ -export default class ApiNavigationElement extends EventsTargetMixin(LitElement) { - static get styles(): CSSResult; - - [apiIdValue]: string; - [queryingValue]: boolean; - [abortControllerValue]?: AbortController; - [endpointsValue]: EndpointItem[]; - [sourceEndpointsValue]: ApiEndPointWithOperationsListItem[]; - [documentationsValue]: DocumentationItem[]; - [schemasValue]: NodeShapeItem[]; - [securityValue]: SecurityItem[]; - /** - * The processed and final query term for the list items. - */ - [queryValue]: string; - /** - * Information read from the AMF store indicating that the currently loaded API - * is an API. - */ - [isAsyncValue]: boolean; - /** - * Holds a list of ids of currently opened endpoints. - */ - [openedEndpointsValue]: string[]; - /** - * Cached list of all list elements - */ - [itemsValue]: HTMLElement[]; - [addingEndpointValue]?: boolean; - [addingDocumentationValue]?: boolean; - [addingExternalValue]?: boolean; - [addingSchemaValue]?: boolean; - [addingSchemaTypeValue]?: string; - - /** - * When true then the element is currently querying for the graph data. - */ - get querying(): boolean; - - /** - * Set only when `querying`. Use to abort the query operation. - * When calling `abort` on the controller the element stops querying and processing the graph data. - * All data that already has been processed are not cleared. - */ - get abortController(): AbortController | undefined; - - /** - * @returns true when `_docs` property is set with values - */ - get hasDocs(): boolean; - - /** - * @returns true when has schemas definitions - */ - get hasSchemas(): boolean; - - /** - * @returns true when `_security` property is set with values - */ - get hasSecurity(): boolean; - - /** - * @returns true when `_endpoints` property is set with values - */ - get hasEndpoints(): boolean; - - /** - * A reference to currently selected element. - */ - get selectedItem(): HTMLElement | undefined; - - /** - * The currently focused item. - */ - get focusedItem(): HTMLElement | undefined; - /** - * The domain id that is currently being selected. - * @attribute - */ - domainId: string; - /** - * Type of the selected item. - */ - get domainType(): SelectionType; - /** - * If set it renders `API summary` menu option. - * It will allow to set `selected` and `selectedType` to `summary` - * when this option is set. - * @attribute - */ - summary: boolean; - /** - * A label for the `summary` section. - * @attribute - */ - summaryLabel: string; - /** - * Determines and changes state of documentation panel. - * @attribute - */ - documentationsOpened: boolean; - /** - * Determines and changes state of schemas (types) panel. - * @attribute - */ - schemasOpened: boolean; - /** - * Determines and changes state of security panel. - * @attribute - */ - securityOpened: boolean; - /** - * Determines and changes state of endpoints panel. - * @attribute - */ - endpointsOpened: boolean; - /** - * Filters list elements by this value when set. - * Clear the value to reset the search. - * - * This is not currently exposed in element's UI due - * to complexity of search and performance. - * @attribute - */ - query: string; - /** - * Size of endpoint indentation for nested resources. - * In pixels. - * - * The attribute name for this property is `indent-size`. Note, that this - * will change to web consistent name `indentSize` in the future. - * @attribute - */ - indentSize: number; - /** - * By default the endpoints are rendered one-by-one as defined in the API spec file - * without any transformation. Set this option to sort the - * When this option is set it re-arrange the endpoints to the one of specified layout options. - * - * - tree - creates a tree structure from the endpoints list - * - natural - behavior consistent with the previous version of the navigation. Creates a tree structure based on the previous endpoints. - * - natural-sort - as `natural` but endpoints are sorted by name. - * - off (or none) - just like in the API spec. - * - * Note, the resulted tree structure will likely be different to the one encoded - * in the API spec file. - * @attribute - */ - layout: NavigationLayout; - /** - * When set it renders an input to filter the menu items. - * @attribute - */ - filter: boolean; - /** - * When set the element won't query the store when attached to the DOM. - * Instead set the `apiId` property or directly call the `queryGraph()` function. - * @attribute - */ - manualQuery: boolean; - /** - * When set it enables graph items editing functionality. - * The user can double-click on a menu item and edit its name. - * @attribute - */ - edit: boolean; - /** - * When set it expands or opens all endpoints and makes all operations visible. - * Note, the user can toggle an endpoint anyway so this property does not mean - * that all endpoints are expanded. When it's true then it means that all endpoints - * was expanded at some point in time. - * @attribute - */ - endpointsExpanded: boolean; - - /** - * @return True when the summary entry is rendered. - * Summary should be rendered only when `summary` is set and current model is not a RAML fragment. - */ - get summaryRendered(): boolean; - get documentMeta(): DocumentMeta; - - constructor(); - - /** - * Ensures aria role attribute is in place. - * Attaches element's listeners. - */ - connectedCallback(): void; - - disconnectedCallback(): void; - - /** - * Queries for the API data from the graph store. - */ - queryGraph(): Promise; - - /** - * Queries for the current API base info. - */ - [queryApi](signal: AbortSignal): Promise; - - /** - * Queries and sets endpoints data - */ - [queryEndpoints](signal: AbortSignal): Promise; - - /** - * Queries and sets documentations data - */ - [queryDocumentations](signal: AbortSignal): Promise; - - /** - * Queries and sets types (schemas) data - */ - [querySchemas](signal: AbortSignal): Promise; - - /** - * Queries and sets security data - */ - [querySecurity](signal: AbortSignal): Promise; - - [createFlatTreeItems](items: ApiEndPointWithOperationsListItem[]): EndpointItem[]; - /** - * Processes endpoints layout for the given configuration. - */ - [layoutEndpoints](): void; - - /** - * Filters the current endpoints by the current query value. - */ - [getFilteredEndpoints](): EndpointItem[] | undefined; - - /** - * Computes `style` attribute value for endpoint item. - * It sets padding-left property to indent resources. - * See https://github.com/mulesoft/api-console/issues/571. - * - * @param indent The computed indentation of the item. - * @returns The value for the left padding of the endpoint menu item. - */ - [computeEndpointPaddingValue](indent?: number): string; - - /** - * Computes endpoint list item left padding from CSS variables. - */ - [computeEndpointPaddingLeft](): number - - /** - * Computes `style` attribute value for an operation item. - * It sets padding-left property to indent operations relative to a resource. - * - * @param indent The computed indentation of the parent resource. - * @returns The value for the left padding of the endpoint menu item. - */ - [computeOperationPaddingValue](indent?: number): string; - - /** - * Computes operation list item left padding from CSS variables. - */ - [computeOperationPaddingLeft](): number; - - /** - * A handler for the click event on a menu list item. - * Makes a selection from the target. - */ - [itemClickHandler](e: MouseEvent): void; - - /** - * A handler for the click event on endpoints toggle button. - */ - [endpointToggleClickHandler](e: MouseEvent): void; - - /** - * Toggles operations visibility for an endpoint. - * @param graphId The Endpoint graph id. - */ - toggleEndpoint(graphId: string): void; - - /** - * A handler for the click event on a section item. Toggles the clicked section. - */ - [toggleSectionClickHandler](e: MouseEvent): void; - - /** - * Toggles a section of the menu represented by the element (section list item). - */ - [toggleSectionElement](element: HTMLElement): void; - - /** - * @returns List of documentation items filtered by the current query. - */ - [getFilteredDocumentations](): DocumentationItem[]; - - /** - * @returns List of schemas items filtered by the current query. - */ - [getFilteredSchemas](): NodeShapeItem[]; - - /** - * @returns List of security items filtered by the current query. - */ - [getFilteredSecurity](): SecurityItem[]; - - /** - * A handler for the focus event on this element. - */ - [focusHandler](e: FocusEvent): void; - - /** - * Sets a list item focused - */ - [focusItem](item: HTMLElement): void; - - /** - * Handler for the keydown event. - */ - [keydownHandler](e: KeyboardEvent): void; - - /** - * Handler that is called when the down key is pressed. - * - * @param e A key combination event. - */ - [keyDownAction](e: KeyboardEvent): void; - - /** - * Handler that is called when the up key is pressed. - * - * @param e A key combination event. - */ - [keyUpAction](e: KeyboardEvent): void; - - /** - * Handles shift+tab keypress on the menu. - */ - [keyShiftTabAction](): void; - - /** - * Handler that is called when the esc key is pressed. - */ - [keyEscAction](): void; - - /** - * A handler for the space bar key down. - */ - [keySpaceAction](e: KeyboardEvent): void; - - /** - * A handler for the key right down. Opens operations when needed. - */ - [keyArrowRightAction](e: KeyboardEvent): void; - - /** - * A handler for the key left down. Closes operations when needed. - */ - [keyArrowLeftAction](e: KeyboardEvent): void; - - /** - * Focuses on the previous item in the navigation. - */ - focusPrevious(): void; - - /** - * Focuses on the next item in the navigation. - */ - focusNext(): void; - - /** - * Selects an item in the navigation. - * Note, this dispatches the navigation action event. - */ - select(id: string): void; - - /** - * Lists all HTML elements that are currently rendered in the view. - * @returns Currently rendered items. - */ - [listActiveItems](): HTMLElement[]; - - /** - * @param selector The prefix for the query selector - * @returns Nodes returned from query function. - */ - [listSectionActiveNodes](selector: string): HTMLElement[]; - - /** - * Selects an item in the menu. - * - * @param id The domain id of the node to be selected - * @param type The selected type of the item. - */ - [makeSelection](id: string, type: string): void; - - /** - * Selects an item. - * @param id The domain id of the menu item. - * @param type The type of the data. - */ - [selectItem](id: string, type: string): void; - - /** - * Removes all selections from an item. - * @param id The domain id of the menu item. - * @param type The type of the data. - */ - [deselectItem](id: string, type: string): void; - - /** - * Finds a selectable item by its id and type. - * @param id The domain id of the menu item. - * @param type The type of the data. - */ - [findSelectable](id: string, type: string): SelectableMenuItem | null; - - /** - * @param value The new query. Empty or null to clear the query - */ - [processQuery](value: string): void; - - /** - * A handler for the search event from the filter input. - */ - [searchHandler](e: Event): void; - - /** - * Opens all sections of the menu and all endpoints. - */ - expandAll(): void; - - /** - * Closes all sections of the menu and all endpoints. - */ - collapseAll(): void; - - /** - * Opens all endpoints exposing all operations - */ - expandAllEndpoints(): void; - - /** - * Hides all operations and collapses all endpoints. - */ - collapseAllEndpoints(): void; - - /** - * Triggers a flow when the user can define a new endpoint in the navigation. - * This renders an input in the view (in the endpoints list) where the user can enter the path name. - */ - addEndpoint(): Promise; - - /** - * Triggers a flow when the user can define a new documentation document. - * This renders an input in the view (in the documentation list) where the user can enter the name. - * @param isExternal Whether the documentation is a link to a www document. - */ - addDocumentation(isExternal?: boolean): Promise; - /** - * Triggers a flow when the user can define a new schema in the navigation. - * This renders an input in the view (in the schema list) where the user can enter the schema name. - * @param type The type of the schema to add. Default to `object`. - */ - addSchema(type?: SchemaAddType): Promise; - /** - * Resets all tabindex attributes to the appropriate value based on the - * current selection state. The appropriate value is `0` (focusable) for - * the default selected item, and `-1` (not keyboard focusable) for all - * other items. Also sets the correct initial values for aria-selected - * attribute, true for default selected item and false for others. - */ - [resetTabindices](): void; - - /** - * Dispatches the navigation event. - * @param id The domain id of the selected node - * @param type The domain type. - */ - [notifyNavigation](id: string, type: string): void; - - /** - * Event handler for the keydown event of the add endpoint input. - */ - [addEndpointKeydownHandler](e: KeyboardEvent): void; - - /** - * Event handler for the keydown event of the add documentation input. - */ - [addDocumentationKeydownHandler](e: KeyboardEvent): void; - /** - * Event handler for the keydown event of the add schema input. - */ - [addSchemaKeydownHandler](e: KeyboardEvent): void; - [commitNewEndpoint](): Promise; - [cancelNewEndpoint](): Promise; - /** - * @param value The title of the documentation. - */ - [commitNewDocumentation](value?: string): Promise; - /** - * @param value The name of the schema. - */ - [commitNewSchema](value?: string): Promise; - - /** - * Triggers a rename action for the menu item identified by the `id`. - * @param id The domain id of the item to edit. - */ - renameAction(id: string): Promise; - - /** - * @param {string} id The domain id of the item to find. - */ - [findViewModelItem](id: string): SelectableMenuItem & EditableMenuItem | null; - - /** - * A key down event handler on the rename input - */ - [renameKeydownHandler](e: KeyboardEvent): Promise; - - /** - * A blur event handler on the rename input - */ - [renameBlurHandler](e: Event): Promise; - - /** - * Updates the name or the display name of the menu object - * @param id The id of the domain object to update - * @param value The new value. - * @param type The object type - * @returns A promise when the update operation finish. - */ - [updateNameHandler](id: string, value: string, type: SelectionType): Promise; - - /** - * Click handler for the external navigation item. - * Dispatches the external navigation event. When this event is handled (cancelled) - * the original event is cancelled to prevent default behavior. - */ - [externalDocumentationHandler](e: Event): void; - - render(): TemplateResult; - - /** - * @returns The template for the summary filed. - */ - [summaryTemplate](): TemplateResult | string; - - /** - * @returns The template for the list of endpoints. - */ - [endpointsTemplate](): TemplateResult | string; - - /** - * @returns The template for an endpoint. - */ - [endpointTemplate](item: EndpointItem): TemplateResult; - - /** - * @param id The domain id of the endpoint. - * @returns The template for endpoint's toggle button. - */ - [endpointToggleTemplate](id: string): TemplateResult; - - /** - * @param item The endpoint definition - * @param op The operation definition. - * @returns The template for an operation list item. - */ - [operationItemTemplate](item: EndpointItem, op: OperationItem): TemplateResult; - - /** - * @returns The template for the documentations section. - */ - [documentationsTemplate](): TemplateResult | string; - - /** - * @returns The template for the documentation list item. - */ - [documentationTemplate](item: DocumentationItem): TemplateResult; - - /** - * @returns The template for the external documentation list item. - */ - [externalDocumentationTemplate](item: DocumentationItem): TemplateResult; - - /** - * @returns The template for the types (schemas) section. - */ - [schemasTemplate](): TemplateResult | string; - - /** - * @returns The template for the documentation list item. - */ - [schemaTemplate](item: NodeShapeItem): TemplateResult; - - /** - * @returns The template for the security section. - */ - [securitiesTemplate](): TemplateResult | string; - - /** - * @returns The template for the security list item. - */ - [securityTemplate](item: SecurityItem): TemplateResult; - /** - * @returns The template for the filter input. - */ - [filterTemplate](): TemplateResult | string; - /** - * @return The template for the new endpoint input. - */ - [addEndpointInputTemplate](): TemplateResult; - /** - * @return The template for the new documentation input. - */ - [addDocumentationInputTemplate](): TemplateResult; - /** - * @return The template for the new schema input. - */ - [addSchemaInputTemplate](): TemplateResult; - /** - * @param id The domain id of the item being edited - * @param label The current name to render. - * @param type - * @returns The template for the rename input. - */ - [renameInputTemplate](id: string, label: string, type: SelectionType): TemplateResult; -} diff --git a/src/elements/ApiNavigationElement.js b/src/elements/ApiNavigationElement.ts similarity index 67% rename from src/elements/ApiNavigationElement.js rename to src/elements/ApiNavigationElement.ts index b1856c0..6a3cc05 100644 --- a/src/elements/ApiNavigationElement.js +++ b/src/elements/ApiNavigationElement.ts @@ -1,45 +1,24 @@ /* eslint-disable lit-a11y/click-events-have-key-events */ -/* eslint-disable no-continue */ -/* eslint-disable no-plusplus */ /* eslint-disable prefer-destructuring */ -/* eslint-disable class-methods-use-this */ -import { LitElement, html } from 'lit-element'; -import { EventsTargetMixin } from '@anypoint-web-components/awc'; -import { styleMap } from 'lit-html/directives/style-map.js'; -import { classMap } from 'lit-html/directives/class-map.js'; -import { ifDefined } from 'lit-html/directives/if-defined.js'; +import { html, TemplateResult, CSSResult, LitElement } from 'lit'; +import { property } from 'lit/decorators.js'; +import { ApiDefinitions } from '@api-client/core/build/browser.js'; +import { AnypointCollapseElement, EventsTargetMixin } from '@anypoint-web-components/awc'; +import { styleMap } from 'lit/directives/style-map.js'; +import { classMap } from 'lit/directives/class-map.js'; +import { ifDefined } from 'lit/directives/if-defined.js'; import { HttpStyles } from '@advanced-rest-client/base/api.js'; -import '@anypoint-web-components/awc/anypoint-icon-button.js'; -import '@anypoint-web-components/awc/anypoint-collapse.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-icon-button.js'; +import '@anypoint-web-components/awc/dist/define/anypoint-collapse.js'; import '@advanced-rest-client/icons/arc-icon.js'; import navStyles from './styles/NavStyles.js'; -import { ns } from '../helpers/Namespace.js'; import { ApiSorting } from '../lib/navigation-layout/ApiSorting.js'; import { EndpointsTree } from '../lib/navigation-layout/EndpointsTree.js'; import { NaturalTree } from '../lib/navigation-layout/NaturalTree.js'; import { EventTypes } from '../events/EventTypes.js'; import { Events } from '../events/Events.js'; import { cancelEvent } from '../lib/Utils.js' - -/** @typedef {import('lit-html').TemplateResult} TemplateResult */ -/** @typedef {import('@anypoint-web-components/awc').AnypointCollapseElement} AnypointCollapseElement */ -/** @typedef {import('../helpers/api').ApiEndPoint} ApiEndPoint */ -/** @typedef {import('../helpers/api').ApiOperation} ApiOperation */ -/** @typedef {import('../helpers/api').ApiDocumentation} ApiDocumentation */ -/** @typedef {import('../helpers/api').ApiNodeShape} ApiNodeShape */ -/** @typedef {import('../helpers/api').ApiCustomDomainProperty} ApiCustomDomainProperty */ -/** @typedef {import('../types').ApiEndPointWithOperationsListItem} ApiEndPointWithOperationsListItem */ -/** @typedef {import('../types').EndpointItem} EndpointItem */ -/** @typedef {import('../types').OperationItem} OperationItem */ -/** @typedef {import('../types').DocumentationItem} DocumentationItem */ -/** @typedef {import('../types').NodeShapeItem} NodeShapeItem */ -/** @typedef {import('../types').SecurityItem} SecurityItem */ -/** @typedef {import('../types').SelectableMenuItem} SelectableMenuItem */ -/** @typedef {import('../types').EditableMenuItem} EditableMenuItem */ -/** @typedef {import('../types').SchemaAddType} SchemaAddType */ -/** @typedef {import('../types').SelectionType} SelectionType */ -/** @typedef {import('../types').DocumentMeta} DocumentMeta */ -/** @typedef {import('../types').NavigationLayout} NavigationLayout */ +import { ApiEndpointsTreeItem, ApiEndPointWithOperationsListItem, DocumentMeta, NavigationLayout, SelectionType, SelectableMenuItem, EndpointItem, EditableMenuItem, SchemaAddType, OperationItem, DocumentationItem, NodeShapeItem, SecurityItem } from '../types.js'; export const queryingValue = Symbol('queryingValue'); export const abortControllerValue = Symbol('abortControllerValue'); @@ -137,37 +116,96 @@ export const graphChangeHandler = Symbol('graphChangeHandler'); export const documentMetaValue = Symbol('documentMetaValue'); export default class ApiNavigationElement extends EventsTargetMixin(LitElement) { - static get styles() { + static get styles(): CSSResult[] { return [navStyles, HttpStyles.default]; } + [queryingValue]?: boolean; + + [abortControllerValue]?: AbortController; + + [domainIdValue]?: string; + + [domainTypeValue]?: SelectionType; + + [selectedItemValue]?: HTMLElement; + + [focusedItemValue]?: HTMLElement; + + /** + * The processed and final query term for the list items. + */ + [queryValue]?: string; + + [documentMetaValue]?: DocumentMeta; + + [layoutValue]?: NavigationLayout; + + [endpointsExpandedValue]?: boolean; + + [endpointsValue]?: EndpointItem[]; + + [documentationsValue]?: ApiDefinitions.IDocumentationItem[]; + + [schemasValue]?: ApiDefinitions.INodeShapeItem[]; + + [securityValue]?: ApiDefinitions.ISecurityItem[]; + /** - * @returns {boolean} When true then the element is currently querying for the graph data. + * Holds a list of ids of currently opened endpoints. */ - get querying() { + [openedEndpointsValue]: string[]; + + /** + * Cached list of all list elements + */ + [itemsValue]?: HTMLElement[]; + + [sourceEndpointsValue]?: ApiDefinitions.IApiEndPointWithOperationsListItem[]; + + [shiftTabPressedValue]?: boolean; + + [summarySelected]?: boolean; + + [addingSchemaTypeValue]?: string; + + [addingSchemaValue]?: boolean; + + [addingDocumentationValue]?: boolean; + + [addingExternalValue]?: boolean; + + [addingEndpointValue]?: boolean; + + /** + * When true then the element is currently querying for the graph data. + */ + get querying(): boolean { return this[queryingValue] || false; } /** - * @returns {AbortController|undefined} Set only when `querying`. Use to abort the query operation. + * Set when `querying`. Use to abort the query operation. * When calling `abort` on the controller the element stops querying and processing the graph data. * All data that already has been processed are not cleared. */ - get abortController() { + get abortController(): AbortController | undefined { return this[abortControllerValue]; } - /** - * @returns {string|undefined} The current selection domain id. + /** + * A model `@id` of selected documentation part. + * Special case is for `summary` view. It's not part of an API + * but most applications has some kins of summary view for the + * API. + * @attribute */ - get domainId() { + @property({ type: String, reflect: true }) + get domainId(): string | undefined { return this[domainIdValue]; } - /** - * @returns {string|undefined} The domain id that is currently being selected. - */ - set domainId(value) { + set domainId(value: string | undefined) { const old = this[domainIdValue]; if (old === value) { return; @@ -178,63 +216,72 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } /** - * @returns {SelectionType}Type of the selected domain item. + * Type of the selected domain item. */ - get domainType() { + get domainType(): SelectionType | undefined { return this[domainTypeValue]; } /** - * @return {Boolean} true when `_docs` property is set with values + * true when `_docs` property is set with values */ - get hasDocs() { + get hasDocs(): boolean { const docs = this[documentationsValue]; return Array.isArray(docs) && !!docs.length; } /** - * @return {Boolean} true when has schemas definitions + * true when has schemas definitions */ - get hasSchemas() { + get hasSchemas(): boolean { const items = this[schemasValue]; return Array.isArray(items) && !!items.length; } /** - * @return {Boolean} true when `_security` property is set with values + * true when `_security` property is set with values */ - get hasSecurity() { + get hasSecurity(): boolean { const items = this[securityValue]; return Array.isArray(items) && !!items.length; } /** - * @return {Boolean} true when `_endpoints` property is set with values + * true when `_endpoints` property is set with values */ - get hasEndpoints() { + get hasEndpoints(): boolean { const items = this[endpointsValue]; return Array.isArray(items) && !!items.length; } /** - * @return {HTMLElement=} A reference to currently selected element. + * A reference to currently selected element. */ - get selectedItem() { + get selectedItem(): HTMLElement | undefined { return this[selectedItemValue]; } /** - * @return {HTMLElement=} The currently focused item. + * The currently focused item. */ - get focusedItem() { + get focusedItem(): HTMLElement | undefined { return this[focusedItemValue]; } - get query() { + /** + * Filters list elements by this value when set. + * Clear the value to reset the search. + * + * This is not currently exposed in element's UI due + * to complexity of search and performance. + * @attribute + */ + @property({ type: String }) + get query(): string | undefined { return this[queryValue]; } - set query(value) { + set query(value: string | undefined) { const old = this[queryValue]; if (old === value) { return; @@ -244,18 +291,30 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) this.requestUpdate('query', old); } - /** @type DocumentMeta */ - get documentMeta() { + get documentMeta(): DocumentMeta | undefined { return this[documentMetaValue]; } - /** @returns {NavigationLayout} */ - get layout() { + /** + * By default the endpoints are rendered one-by-one as defined in the API spec file + * without any tree structure. When this option is set it sorts the endpoints + * alphabetically and creates a tree structure for the endpoints. + * + * - tree - creates a tree structure from the endpoints list + * - natural - behavior consistent with the previous version of the navigation. Creates a tree structure based on the previous endpoints. + * - natural-sort - as `natural` but endpoints are sorted by name. + * - off (or none) - just like in the API spec. + * + * Note, the resulted tree structure will likely be different to the one encoded + * in the API spec file. + * @attribute + */ + @property({ type: String, reflect: true }) + get layout(): NavigationLayout | undefined { return this[layoutValue]; } - /** @param {NavigationLayout} value */ - set layout(value) { + set layout(value: NavigationLayout | undefined) { const old = this[layoutValue]; if (old === value) { return; @@ -265,16 +324,23 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) this.requestUpdate('layout', old); } - /** @returns {boolean} */ - get endpointsExpanded() { - if (typeof this[endpointsExpandedValue] !== 'boolean') { + /** + * When set it expands or opens all endpoints and makes all operations visible. + * Note, the user can toggle an endpoint anyway so this property does not mean + * that all endpoints are expanded. When it's true then it means that all endpoints + * was expanded at some point in time. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + get endpointsExpanded(): boolean { + const value = this[endpointsExpandedValue]; + if (typeof value !== 'boolean') { return false; } - return this[endpointsExpandedValue]; + return value; } - /** @param {boolean} value */ - set endpointsExpanded(value) { + set endpointsExpanded(value: boolean | undefined) { const old = this[endpointsExpandedValue]; if (old === value) { return; @@ -288,10 +354,10 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } /** - * @return {boolean} True when the summary entry is rendered. + * True when the summary entry is rendered. * Summary should be rendered only when `summary` is set and current model is not a RAML fragment. */ - get summaryRendered() { + get summaryRendered(): boolean { const { summary, documentMeta } = this; if (!summary || !documentMeta) { return false; @@ -300,147 +366,104 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) return !isFragment && !isLibrary; } - static get properties() { - return { - /** - * When this property change the element queries the graph store for the data model. - * It can be skipped when the application calls the `queryGraph()` method imperatively. - */ - apiId: { type: String, reflect: true, }, - /** - * A model `@id` of selected documentation part. - * Special case is for `summary` view. It's not part of an API - * but most applications has some kins of summary view for the - * API. - */ - domainId: { type: String, reflect: true }, - /** - * If set it renders `API summary` menu option. - * It will allow to set `domainId` and `domainType` to `summary` - * when this option is set. - */ - summary: { type: Boolean, reflect: true }, - /** - * A label for the `summary` section. - */ - summaryLabel: { type: String, reflect: true }, - /** - * Determines and changes state of documentation panel. - */ - documentationsOpened: { type: Boolean, reflect: true }, - /** - * Determines and changes state of schemas (types) panel. - */ - schemasOpened: { type: Boolean, reflect: true }, - /** - * Determines and changes state of security panel. - */ - securityOpened: { type: Boolean, reflect: true }, - /** - * Determines and changes state of endpoints panel. - */ - endpointsOpened: { type: Boolean, reflect: true }, - /** - * Filters list elements by this value when set. - * Clear the value to reset the search. - * - * This is not currently exposed in element's UI due - * to complexity of search and performance. - */ - query: { type: String }, - /** - * Size of endpoint indentation for nested resources. - * In pixels. - * - * The attribute name for this property is `indent-size`. Note, that this - * will change to web consistent name `indentSize` in the future. - */ - indentSize: { type: Number, reflect: true, }, - /** - * By default the endpoints are rendered one-by-one as defined in the API spec file - * without any tree structure. When this option is set it sorts the endpoints - * alphabetically and creates a tree structure for the endpoints. - * - * - tree - creates a tree structure from the endpoints list - * - natural - behavior consistent with the previous version of the navigation. Creates a tree structure based on the previous endpoints. - * - natural-sort - as `natural` but endpoints are sorted by name. - * - off (or none) - just like in the API spec. - * - * Note, the resulted tree structure will likely be different to the one encoded - * in the API spec file. - */ - layout: { type: String, reflect: true, }, - /** - * When set it renders an input to filter the menu items. - */ - filter: { type: Boolean, reflect: true, }, - /** - * When set the element won't query the store when attached to the DOM. - * Instead set the `apiId` property or directly call the `queryGraph()` function. - */ - manualQuery: { type: Boolean, reflect: true, }, - /** - * When set it enables graph items editing functionality. - * The user can double-click on a menu item and edit its name. - */ - edit: { type: Boolean, reflect: true, }, - /** - * When set it expands or opens all endpoints and makes all operations visible. - * Note, the user can toggle an endpoint anyway so this property does not mean - * that all endpoints are expanded. When it's true then it means that all endpoints - * was expanded at some point in time. - */ - endpointsExpanded: { type: Boolean, reflect: true, }, - }; - } + /** + * When this property change the element queries the graph store for the data model. + * It can be skipped when the application calls the `queryGraph()` method imperatively. + * @attribute + */ + @property({ type: String, reflect: true }) + apiId?: string; + + /** + * If set it renders `API summary` menu option. + * It will allow to set `domainId` and `domainType` to `summary` + * when this option is set. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + summary?: boolean; + + /** + * A label for the `summary` section. + * @attribute + */ + @property({ type: String, reflect: true }) + summaryLabel: string; + + /** + * Determines and changes state of documentation panel. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + documentationsOpened?: boolean; + + /** + * Determines and changes state of schemas (types) panel. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + schemasOpened?: boolean; + + /** + * Determines and changes state of security panel. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + securityOpened?: boolean; + + /** + * Determines and changes state of endpoints panel. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + endpointsOpened?: boolean; + + /** + * Size of endpoint indentation for nested resources. + * In pixels. + * + * The attribute name for this property is `indent-size`. Note, that this + * will change to web consistent name `indentSize` in the future. + * @attribute + */ + @property({ type: Number, reflect: true }) + indentSize?: number; + + /** + * When set it renders an input to filter the menu items. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + filter?: boolean; + + /** + * When set the element won't query the store when attached to the DOM. + * Instead set the `apiId` property or directly call the `queryGraph()` function. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + manualQuery?: boolean; + + /** + * When set it enables graph items editing functionality. + * The user can double-click on a menu item and edit its name. + * @attribute + */ + @property({ type: Boolean, reflect: true }) + edit?: boolean; + + /** + * @attribute + */ + @property({ type: Boolean, reflect: true }) + anypoint?: boolean; constructor() { super(); this.summaryLabel = 'Summary'; - this.summary = false; - this.anypoint = false; this.indentSize = 8; - this.endpointsOpened = false; - this.documentationsOpened = false; - this.schemasOpened = false; - this.securityOpened = false; - this.filter = false; - this.edit = false; - this.manualQuery = false; - - /** - * @type {EndpointItem[]} - */ - this[endpointsValue] = undefined; - /** - * @type {DocumentationItem[]} - */ - this[documentationsValue] = undefined; - /** - * @type {NodeShapeItem[]} - */ - this[schemasValue] = undefined; - /** - * @type {SecurityItem[]} - */ - this[securityValue] = undefined; - /** - * The processed and final query term for the list items. - * @type {string} - */ - this[queryValue] = undefined; - /** - * Holds a list of ids of currently opened endpoints. - * @type {string[]} - */ + this[openedEndpointsValue] = []; - /** - * Cached list of all list elements - * @type {HTMLElement[]} - */ - this[itemsValue] = undefined; - /** @type DocumentMeta */ - this[documentMetaValue] = undefined; this[focusHandler] = this[focusHandler].bind(this); this[keydownHandler] = this[keydownHandler].bind(this); @@ -451,7 +474,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) * Ensures aria role attribute is in place. * Attaches element's listeners. */ - connectedCallback() { + connectedCallback(): void { super.connectedCallback(); if (!this.getAttribute('aria-label')) { this.setAttribute('aria-label', 'API navigation'); @@ -466,25 +489,19 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } } - disconnectedCallback() { + disconnectedCallback(): void { super.disconnectedCallback(); this.removeEventListener('focus', this[focusHandler]); this.removeEventListener('keydown', this[keydownHandler]); this[itemsValue] = undefined; } - /** - * @param {EventTarget} node - */ - _attachListeners(node) { + _attachListeners(node: EventTarget): void { super._attachListeners(node); node.addEventListener(EventTypes.Store.graphChange, this[graphChangeHandler]); } - /** - * @param {EventTarget} node - */ - _detachListeners(node) { + _detachListeners(node: EventTarget): void { super._detachListeners(node); node.removeEventListener(EventTypes.Store.graphChange, this[graphChangeHandler]); } @@ -492,14 +509,14 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Handler for the event dispatched by the store when the graph model change. */ - [graphChangeHandler]() { + [graphChangeHandler](): void { this.queryGraph(); } /** * Queries for the API data from the graph store. */ - async queryGraph() { + async queryGraph(): Promise { if (this.querying) { return; } @@ -518,16 +535,16 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) this[queryingValue] = false; this[abortControllerValue] = undefined; this[openedEndpointsValue] = []; - await this.requestUpdate(); + this.requestUpdate(); + await this.updateComplete; this[resetTabindices](); this.dispatchEvent(new Event('graphload')); } /** * Queries for the current API base info. - * @param {AbortSignal} signal */ - async [queryApi](signal) { + async [queryApi](signal: AbortSignal): Promise { this[documentMetaValue] = undefined; try { const info = await Events.Api.documentMeta(this); @@ -536,16 +553,16 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } this[documentMetaValue] = info; } catch (e) { - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Enable to query for API data: ${e.message}`, this.localName); + const ex = e as Error; + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Enable to query for API data: ${ex.message}`, this.localName); } } /** * Queries and sets endpoints data - * @param {AbortSignal} signal */ - async [queryEndpoints](signal) { + async [queryEndpoints](signal: AbortSignal): Promise { if (signal.aborted) { return; } @@ -559,17 +576,17 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } this[sourceEndpointsValue] = result; } catch (e) { + const ex = e as Error; this[sourceEndpointsValue] = undefined; - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Enable to query for Endpoints data: ${e.message}`, this.localName); + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Enable to query for Endpoints data: ${ex.message}`, this.localName); } } /** * Queries and sets documentations data - * @param {AbortSignal} signal */ - async [queryDocumentations](signal) { + async [queryDocumentations](signal: AbortSignal): Promise { this[documentationsValue] = undefined; if (signal.aborted) { return; @@ -581,16 +598,16 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } this[documentationsValue] = result; } catch (e) { - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Enable to query for Documents data: ${e.message}`, this.localName); + const ex = e as Error; + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Enable to query for Documents data: ${ex.message}`, this.localName); } } /** * Queries and sets types (schemas) data - * @param {AbortSignal} signal */ - async [querySchemas](signal) { + async [querySchemas](signal: AbortSignal): Promise { this[schemasValue] = undefined; if (signal.aborted) { return; @@ -602,16 +619,16 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } this[schemasValue] = result; } catch (e) { - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Enable to query for Schemas data: ${e.message}`, this.localName); + const ex = e as Error; + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Enable to query for Schemas data: ${ex.message}`, this.localName); } } /** * Queries and sets security data - * @param {AbortSignal} signal */ - async [querySecurity](signal) { + async [querySecurity](signal: AbortSignal): Promise { this[securityValue] = undefined; if (signal.aborted) { return; @@ -623,16 +640,13 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } this[securityValue] = result; } catch (e) { - Events.Telemetry.exception(this, e.message, false); - Events.Reporting.error(this, e, `Enable to query for Security data: ${e.message}`, this.localName); + const ex = e as Error; + Events.Telemetry.exception(this, ex.message, false); + Events.Reporting.error(this, ex, `Enable to query for Security data: ${ex.message}`, this.localName); } } - /** - * @param {ApiEndPointWithOperationsListItem[]} items - * @returns {EndpointItem[]} - */ - [createFlatTreeItems](items) { + [createFlatTreeItems](items: ApiDefinitions.IApiEndPointWithOperationsListItem[]): ApiDefinitions.IEndpointItem[] { if (!Array.isArray(items) || !items.length) { return []; } @@ -648,7 +662,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Processes endpoints layout for the given configuration. */ - [layoutEndpoints]() { + [layoutEndpoints](): void { const { layout } = this; const endpoints = this[sourceEndpointsValue]; if (!endpoints) { @@ -666,7 +680,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) return; } if (layout === 'natural-sort') { - const sorted = /** @type ApiEndPointWithOperationsListItem[] */ (ApiSorting.sortEndpointsByPath([...endpoints])); + const sorted = ApiSorting.sortEndpointsByPath([...endpoints]) as ApiEndPointWithOperationsListItem[]; this[endpointsValue] = new NaturalTree().create(sorted); return; } @@ -678,9 +692,8 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Filters the current endpoints by the current query value. - * @returns {EndpointItem[]|undefined} */ - [getFilteredEndpoints]() { + [getFilteredEndpoints](): ApiEndpointsTreeItem[] | undefined { const value = this[endpointsValue]; if (!value || !value.length) { return undefined; @@ -689,9 +702,9 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) if (!q) { return value; } - const result = []; + const result: ApiEndpointsTreeItem[] = []; value.forEach((endpoint) => { - const { path, label, operations=[] } = endpoint; + const { path, label = '', operations = [] } = endpoint; const lPath = path.toLowerCase(); const lLabel = label.toLowerCase(); // If the endpoint's path or label matches the query include whole item @@ -703,7 +716,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) // then do not include the endpoint. const ops = operations.filter((op) => op.method.toLowerCase().includes(q) || (op.name || '').toLowerCase().includes(q)); if (ops.length) { - const copy = { ...endpoint }; + const copy = { ...endpoint } as ApiEndpointsTreeItem; copy.operations = ops; result[result.length] = copy; } @@ -716,23 +729,22 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) * It sets padding-left property to indent resources. * See https://github.com/mulesoft/api-console/issues/571. * - * @param {number} indent The computed indentation of the item. - * @return {string} The value for the left padding of the endpoint menu item. + * @param indent The computed indentation of the item. + * @returns The value for the left padding of the endpoint menu item. */ - [computeEndpointPaddingValue](indent=0) { + [computeEndpointPaddingValue](indent = 0): string { const padding = this[computeEndpointPaddingLeft](); if (indent < 1) { return `${padding}px`; } - const result = indent * this.indentSize + padding; + const result = indent * (this.indentSize || 0) + padding; return `${result}px`; } /** * Computes endpoint list item left padding from CSS variables. - * @return {number} */ - [computeEndpointPaddingLeft]() { + [computeEndpointPaddingLeft](): number { const prop = '--api-navigation-list-item-padding'; const defaultPadding = 16; const padding = getComputedStyle(this).getPropertyValue(prop); @@ -772,13 +784,13 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) * Computes `style` attribute value for an operation item. * It sets padding-left property to indent operations relative to a resource. * - * @param {number} indent The computed indentation of the parent resource. - * @return {string} The value for the left padding of the endpoint menu item. + * @param indent The computed indentation of the parent resource. + * @returns The value for the left padding of the endpoint menu item. */ - [computeOperationPaddingValue](indent=0) { + [computeOperationPaddingValue](indent = 0): string { const endpointAdjustment = 32; const padding = this[computeOperationPaddingLeft]() + endpointAdjustment; - const { indentSize } = this; + const { indentSize = 0 } = this; if (indentSize < 1) { return `${padding}px`; } @@ -788,9 +800,8 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Computes operation list item left padding from CSS variables. - * @return {number} */ - [computeOperationPaddingLeft]() { + [computeOperationPaddingLeft](): number { const prop = '--api-navigation-operation-item-padding-left'; let paddingLeft = getComputedStyle(this).getPropertyValue(prop); const defaultPadding = 24; @@ -808,13 +819,12 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * A handler for the click event on a menu list item. * Makes a selection from the target. - * @param {MouseEvent} e */ - [itemClickHandler](e) { - const node = /** @type HTMLElement */ (e.currentTarget); + [itemClickHandler](e: MouseEvent): void { + const node = e.currentTarget as HTMLElement; const { graphId, graphShape } = node.dataset; if (graphId && graphShape) { - this[makeSelection](graphId, /** @type SelectionType */ (graphShape)); + this[makeSelection](graphId, graphShape as SelectionType); } else { // this is probably the abstract endpoint from the EndpointTree class. // We are preventing default so the element can ignore focusing on the item. @@ -825,10 +835,9 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * A handler for the click event on endpoints toggle button. - * @param {MouseEvent} e */ - [endpointToggleClickHandler](e) { - const node = /** @type HTMLElement */ (e.currentTarget); + [endpointToggleClickHandler](e: MouseEvent): void { + const node = e.currentTarget as HTMLElement; const { graphId } = node.dataset; if (graphId) { this.toggleEndpoint(graphId); @@ -843,9 +852,9 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Toggles operations visibility for an endpoint. - * @param {string} graphId The Endpoint graph id. + * @param graphId The Endpoint graph id. */ - toggleEndpoint(graphId) { + toggleEndpoint(graphId: string): void { const index = this[openedEndpointsValue].indexOf(graphId); if (index === -1) { this[openedEndpointsValue].push(graphId); @@ -857,10 +866,9 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * A handler for the click event on a section item. Toggles the clicked section. - * @param {MouseEvent} e */ - [toggleSectionClickHandler](e) { - const node = /** @type HTMLElement */ (e.currentTarget); + [toggleSectionClickHandler](e: MouseEvent): void { + const node = e.currentTarget as HTMLElement; this[toggleSectionElement](node); Events.Telemetry.event(this, { category: 'API navigation', @@ -869,22 +877,26 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) }); } + [toggleSectionKeydownHandler](): void { + throw new Error(`Not implemented.`); + } + /** * Toggles a section of the menu represented by the element (section list item). - * @param {HTMLElement} element */ - [toggleSectionElement](element) { - const { property } = element.dataset; - if (!property) { + [toggleSectionElement](element: HTMLElement): void { + const prop = element.dataset.property; + if (!prop) { return; } - this[property] = !this[property]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this as any)[prop] = !(this as any)[prop]; } /** - * @returns {DocumentationItem[]} List of documentation items filtered by the current query. + * @returns The list of documentation items filtered by the current query. */ - [getFilteredDocumentations]() { + [getFilteredDocumentations](): ApiDefinitions.IDocumentationItem[] { const items = this[documentationsValue]; if (!Array.isArray(items) || !items.length) { return []; @@ -893,14 +905,14 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) if (!q) { return items; } - return items.filter((doc) => + return items.filter((doc) => (doc.title || '').toLocaleLowerCase().includes(q)); } /** - * @return {NodeShapeItem[]} List of schemas items filtered by the current query. + * @returns The list of schemas items filtered by the current query. */ - [getFilteredSchemas]() { + [getFilteredSchemas](): ApiDefinitions.INodeShapeItem[] { const items = this[schemasValue]; if (!Array.isArray(items) || !items.length) { return []; @@ -909,15 +921,15 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) if (!q) { return items; } - return items.filter((doc) => - (doc.name || '').toLocaleLowerCase().includes(q) || + return items.filter((doc) => + (doc.name || '').toLocaleLowerCase().includes(q) || (doc.displayName || '').toLocaleLowerCase().includes(q)); } /** - * @return {SecurityItem[]} List of security items filtered by the current query. + * @returns The list of security items filtered by the current query. */ - [getFilteredSecurity]() { + [getFilteredSecurity](): ApiDefinitions.ISecurityItem[] { const items = this[securityValue]; if (!Array.isArray(items) || !items.length) { return []; @@ -926,27 +938,26 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) if (!q) { return items; } - return items.filter((doc) => - (doc.name || '').toLocaleLowerCase().includes(q) || - (doc.displayName || '').toLocaleLowerCase().includes(q) || + return items.filter((doc) => + (doc.name || '').toLocaleLowerCase().includes(q) || + (doc.displayName || '').toLocaleLowerCase().includes(q) || (doc.type || '').toLocaleLowerCase().includes(q)); } /** * A handler for the focus event on this element. - * @param {FocusEvent} e */ - [focusHandler](e) { + [focusHandler](e: FocusEvent): void { if (this[shiftTabPressedValue]) { // do not focus the menu itself return; } const path = e.composedPath(); - const rootTarget = /** @type HTMLElement */ (path[0]); + const rootTarget = path[0] as HTMLElement; if (rootTarget !== this && typeof rootTarget.tabIndex !== 'undefined' && !this.contains(rootTarget)) { return; } - this[focusedItemValue] = null; + this[focusedItemValue] = undefined; const { selectedItem } = this; if (selectedItem) { this[focusItem](selectedItem); @@ -957,9 +968,8 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Sets a list item focused - * @param {HTMLElement} item */ - [focusItem](item) { + [focusItem](item: HTMLElement): void { const old = this[focusedItemValue]; this[focusedItemValue] = item; if (old) { @@ -973,11 +983,10 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Handler for the keydown event. - * @param {KeyboardEvent} e */ - [keydownHandler](e) { + [keydownHandler](e: KeyboardEvent): void { const path = e.composedPath(); - const target = /** @type HTMLElement */ (path[0]); + const target = path[0] as HTMLElement; if (target.localName === 'input') { return; } @@ -1003,10 +1012,8 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Handler that is called when the down key is pressed. - * - * @param {KeyboardEvent} e A key combination event. */ - [keyDownAction](e) { + [keyDownAction](e: KeyboardEvent): void { e.preventDefault(); e.stopPropagation(); this.focusNext(); @@ -1014,10 +1021,8 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Handler that is called when the up key is pressed. - * - * @param {KeyboardEvent} e A key combination event. */ - [keyUpAction](e) { + [keyUpAction](e: KeyboardEvent): void { e.preventDefault(); this.focusPrevious(); } @@ -1025,13 +1030,15 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Handles shift+tab keypress on the menu. */ - [keyShiftTabAction]() { + [keyShiftTabAction](): void { const oldTabIndex = this.getAttribute('tabindex'); this[shiftTabPressedValue] = true; - this[focusedItemValue] = null; + this[focusedItemValue] = undefined; this.setAttribute('tabindex', '-1'); setTimeout(() => { - this.setAttribute('tabindex', oldTabIndex); + if (oldTabIndex) { + this.setAttribute('tabindex', oldTabIndex); + } this[shiftTabPressedValue] = false; }, 1); } @@ -1039,7 +1046,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Handler that is called when the esc key is pressed. */ - [keyEscAction]() { + [keyEscAction](): void { const { focusedItem } = this; if (focusedItem) { focusedItem.blur(); @@ -1048,13 +1055,12 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * A handler for the space bar key down. - * @param {KeyboardEvent} e */ - [keySpaceAction](e) { + [keySpaceAction](e: KeyboardEvent): void { e.preventDefault(); e.stopPropagation(); const path = e.composedPath(); - const target = /** @type HTMLElement */ (path && path[0]); + const target = path && path[0] as HTMLElement; if (!target) { return; } @@ -1064,18 +1070,17 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } else if (classList.contains('list-item')) { const { graphId, graphShape } = dataset; if (graphId && graphShape) { - this[makeSelection](graphId, /** @type SelectionType */ (graphShape)); + this[makeSelection](graphId, graphShape as SelectionType); } } } /** * A handler for the key right down. Opens operations when needed. - * @param {KeyboardEvent} e */ - [keyArrowRightAction](e) { + [keyArrowRightAction](e: KeyboardEvent): void { const path = e.composedPath(); - const target = /** @type HTMLElement */ (path && path[0]); + const target = path && path[0] as HTMLElement; if (!target) { return; } @@ -1090,11 +1095,10 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * A handler for the key left down. Closes operations when needed. - * @param {KeyboardEvent} e */ - [keyArrowLeftAction](e) { + [keyArrowLeftAction](e: KeyboardEvent): void { const path = e.composedPath(); - const target = /** @type HTMLElement */ (path && path[0]); + const target = path && path[0] as HTMLElement; if (!target) { return; } @@ -1111,18 +1115,17 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Focuses on the previous item in the navigation. */ - focusPrevious() { + focusPrevious(): void { const items = this[listActiveItems](); const { length } = items; - const curFocusIndex = items.indexOf(this[focusedItemValue]); + const curFocusIndex = this[focusedItemValue] ? items.indexOf(this[focusedItemValue]) : -1; for (let i = 1; i < length + 1; i++) { const item = items[(curFocusIndex - i + length) % length]; if (item && !item.hasAttribute('disabled')) { - const owner = (item.getRootNode && item.getRootNode()) || document; + const owner = (item.getRootNode && item.getRootNode()) as Document || document; this[focusItem](item); // Focus might not have worked, if the element was hidden or not // focusable. In that case, try again. - // @ts-ignore if (owner.activeElement === item) { return; } @@ -1133,18 +1136,17 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Focuses on the next item in the navigation. */ - focusNext() { + focusNext(): void { const items = this[listActiveItems](); const { length } = items; - const curFocusIndex = items.indexOf(this[focusedItemValue]); + const curFocusIndex = this[focusedItemValue] ? items.indexOf(this[focusedItemValue]) : -1; for (let i = 1; i < length + 1; i++) { const item = items[(curFocusIndex + i) % length]; if (!item.hasAttribute('disabled')) { - const owner = (item.getRootNode && item.getRootNode()) || document; + const owner = (item.getRootNode && item.getRootNode()) as Document || document; this[focusItem](item); // Focus might not have worked, if the element was hidden or not // focusable. In that case, try again. - // @ts-ignore if (owner.activeElement === item) { return; } @@ -1155,49 +1157,52 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Selects an item in the navigation. * Note, this dispatches the navigation action event. - * @param {string} id */ - select(id) { - if (!id) { + select(id?: string): void { + const { shadowRoot } = this; + if (!id || !shadowRoot) { return; } - const element = /** @type HTMLElement */ (this.shadowRoot.querySelector(`[data-graph-id="${id}"]`)); + const element = (shadowRoot.querySelector(`[data-graph-id="${id}"]`)) as HTMLElement | null; if (!element) { return; } const { graphShape } = element.dataset; - this[makeSelection](id, /** @type SelectionType */ (graphShape)); + this[makeSelection](id, graphShape as SelectionType); } /** * Lists all HTML elements that are currently rendered in the view. - * @return {HTMLElement[]} Currently rendered items. + * @returns Currently rendered items. */ - [listActiveItems]() { + [listActiveItems](): HTMLElement[] { if (this[itemsValue]) { return this[itemsValue]; } const { shadowRoot } = this; - let result = /** @type HTMLElement[] */ ([]); + if (!shadowRoot) { + return []; + } + let result: HTMLElement[] = []; if (this.summary) { const node = shadowRoot.querySelector('.list-item.summary'); if (node) { - result[result.length] = /** @type HTMLElement */ (node); + result[result.length] = node as HTMLElement; } } if (this.hasEndpoints) { const node = shadowRoot.querySelector('.endpoints .section-title'); if (node) { - result[result.length] = /** @type HTMLElement */ (node); + result[result.length] = node as HTMLElement; } const nodes = Array.from(shadowRoot.querySelectorAll('.endpoints .list-item.endpoint')); nodes.forEach((item) => { - result[result.length] = /** @type HTMLElement */ (item); + result[result.length] = item as HTMLElement; const collapse = item.nextElementSibling; if (!collapse || collapse.localName !== 'anypoint-collapse') { return; } - const children = /** @type HTMLElement[] */ (Array.from(collapse.querySelectorAll('.list-item.operation'))); + const children = Array.from(collapse.querySelectorAll('.list-item.operation')) as HTMLElement[]; if (children.length) { result = result.concat(children); } @@ -1220,17 +1225,21 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } /** - * @param {string} selector The prefix for the query selector - * @return {HTMLElement[]} Nodes returned from query function. + * @param selector The prefix for the query selector + * @returns Nodes returned from query function. */ - [listSectionActiveNodes](selector) { - let result = /** @type HTMLElement[] */ ([]); - const node = this.shadowRoot.querySelector(`${selector} .section-title`); + [listSectionActiveNodes](selector: string): HTMLElement[] { + const { shadowRoot } = this; + let result: HTMLElement[] = []; + if (!shadowRoot) { + return result; + } + const node = shadowRoot.querySelector(`${selector} .section-title`); if (node) { - result[result.length] = /** @type HTMLElement */ (node); + result[result.length] = node as HTMLElement; const collapse = node.nextElementSibling; if (collapse) { - const children = /** @type HTMLElement[] */ (Array.from(collapse.querySelectorAll('.list-item'))); + const children = Array.from(collapse.querySelectorAll('.list-item')) as HTMLElement[]; if (children.length) { result = result.concat(children); } @@ -1242,16 +1251,20 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Selects an item in the menu. * - * @param {string} id The domain id of the node to be selected - * @param {SelectionType} type The selected type of the item. + * @param id The domain id of the node to be selected + * @param type The selected type of the item. */ - [makeSelection](id, type) { - const element = /** @type HTMLElement */ (this.shadowRoot.querySelector(`[data-graph-id="${id}"]`)); + [makeSelection](id: string, type: SelectionType): void { + const { shadowRoot } = this; + if (!shadowRoot) { + return ; + } + const element = (shadowRoot.querySelector(`[data-graph-id="${id}"]`)) as HTMLElement | null; if (!element) { return; } this[selectedItemValue] = element; - this[deselectItem](this.domainId, this.domainType); + this[deselectItem](this.domainId as string, this.domainType as SelectionType); this[domainIdValue] = id; this[domainTypeValue] = type; if (id === 'summary') { @@ -1268,7 +1281,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) return; } if (parent.localName === 'anypoint-collapse') { - /** @type AnypointCollapseElement */ (parent).opened = true; + (parent as AnypointCollapseElement).opened = true; } parent = parent.parentElement; } @@ -1276,10 +1289,10 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Selects an item. - * @param {string} id The domain id of the menu item. - * @param {SelectionType} type The type of the data. + * @param id The domain id of the menu item. + * @param type The type of the data. */ - [selectItem](id, type) { + [selectItem](id: string, type: SelectionType): void { const selectable = this[findSelectable](id, type); if (selectable) { selectable.selected = true; @@ -1289,10 +1302,10 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Removes all selections from an item. - * @param {string} id The domain id of the menu item. - * @param {SelectionType} type The type of the data. + * @param id The domain id of the menu item. + * @param type The type of the data. */ - [deselectItem](id, type) { + [deselectItem](id: string, type: SelectionType): void { this[summarySelected] = false; const selectable = this[findSelectable](id, type); if (selectable) { @@ -1304,27 +1317,26 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Finds a selectable item by its id and type. - * @param {string} id The domain id of the menu item. - * @param {SelectionType} type The type of the data. - * @returns {SelectableMenuItem|null} + * @param id The domain id of the menu item. + * @param type The type of the data. */ - [findSelectable](id, type) { + [findSelectable](id: string, type: SelectionType): SelectableMenuItem|undefined { if (!id || !type) { - return null; + return undefined; } - let selectable = /** @type SelectableMenuItem */ (null); + let selectable: SelectableMenuItem | undefined; if (type === 'resource') { - selectable = /** @type EndpointItem[] */ (this[endpointsValue] || []).find((item) => item.id === id); + selectable = (this[endpointsValue] || []).find((item) => item.id === id); } else if (type === 'operation') { - const endpoint = /** @type EndpointItem[] */ (this[endpointsValue] || []).find((item) => { + const endpoint = (this[endpointsValue] || []).find((item) => { if (!Array.isArray(item.operations) || !item.operations.length) { return false; } - const op = item.operations.find((opItem) => opItem.id === id); + const op = item.operations.find((opItem) => opItem.id === id); return !!op; }); if (endpoint) { - selectable = /** @type OperationItem[] */ (endpoint.operations).find((item) => item.id === id); + selectable = endpoint.operations.find((item) => item.id === id); } } else if (type === 'documentation') { selectable = (this[documentationsValue] || []).find((item) => item.id === id); @@ -1337,9 +1349,9 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } /** - * @param {string} value The new query. Empty or null to clear the query + * @param value The new query. Empty or null to clear the query */ - [processQuery](value) { + [processQuery](value?: string): void { if (typeof value !== 'string' || value.trim() === '') { this[queryValue] = undefined; } else { @@ -1350,10 +1362,9 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * A handler for the search event from the filter input. - * @param {Event} e */ - [searchHandler](e) { - const input = /** @type HTMLInputElement */ (e.target); + [searchHandler](e: Event): void { + const input = (e.target as HTMLInputElement); this.query = input.value; Events.Telemetry.event(this, { category: 'API navigation', @@ -1365,7 +1376,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Opens all sections of the menu and all endpoints. */ - expandAll() { + expandAll(): void { this.endpointsOpened = true; this.schemasOpened = true; this.securityOpened = true; @@ -1376,7 +1387,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Closes all sections of the menu and all endpoints. */ - collapseAll() { + collapseAll(): void { this.endpointsOpened = false; this.schemasOpened = false; this.securityOpened = false; @@ -1387,9 +1398,13 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Opens all endpoints exposing all operations */ - expandAllEndpoints() { + expandAllEndpoints(): void { + const { shadowRoot } = this; + if (!shadowRoot) { + return; + } this.endpointsOpened = true; - const items = /** @type HTMLInputElement[] */ (Array.from(this.shadowRoot.querySelectorAll('section.endpoints .list-item.endpoint'))); + const items = Array.from(shadowRoot.querySelectorAll('section.endpoints .list-item.endpoint')) as HTMLInputElement[]; this[openedEndpointsValue] = []; items.forEach((item) => { const { graphId } = item.dataset; @@ -1404,7 +1419,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Hides all operations and collapses all endpoints. */ - collapseAllEndpoints() { + collapseAllEndpoints(): void { this[openedEndpointsValue] = []; this[endpointsExpandedValue] = false; this.requestUpdate(); @@ -1414,57 +1429,66 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) * Triggers a flow when the user can define a new endpoint in the navigation. * This renders an input in the view (in the endpoints list) where the user can enter the path name. */ - async addEndpoint() { + async addEndpoint(): Promise { if (!this.endpointsOpened) { this.endpointsOpened = true; await this.updateComplete; } this[addingEndpointValue] = true; - await this.requestUpdate(); - const wrap = this.shadowRoot.querySelector('.add-endpoint-input'); - wrap.scrollIntoView(); - const input = wrap.querySelector('input'); - input.focus(); - input.select(); + this.requestUpdate(); + await this.updateComplete; + const wrap = this.shadowRoot?.querySelector('.add-endpoint-input'); + if (wrap) { + wrap.scrollIntoView(); + const input = wrap.querySelector('input') as HTMLInputElement; + input.focus(); + input.select(); + } } /** * Triggers a flow when the user can define a new documentation document. * This renders an input in the view (in the documentation list) where the user can enter the name. - * @param {boolean=} isExternal Whether the documentation is a link to a www document. + * @param isExternal Whether the documentation is a link to a www document. */ - async addDocumentation(isExternal=false) { + async addDocumentation(isExternal = false) : Promise{ if (!this.documentationsOpened) { this.documentationsOpened = true; } this[addingDocumentationValue] = true; this[addingExternalValue] = isExternal; - await this.requestUpdate(); + this.requestUpdate(); + await this.updateComplete; const selector = isExternal ? '.add-external-doc-input' : '.add-documentation-input'; - const wrap = this.shadowRoot.querySelector(selector); - wrap.scrollIntoView(); - const input = wrap.querySelector('input'); - input.focus(); - input.select(); + const wrap = this.shadowRoot?.querySelector(selector) as HTMLInputElement; + if (wrap) { + wrap.scrollIntoView(); + const input = wrap.querySelector('input') as HTMLInputElement; + input.focus(); + input.select(); + } } /** * Triggers a flow when the user can define a new schema in the navigation. * This renders an input in the view (in the schema list) where the user can enter the schema name. - * @param {SchemaAddType=} type The type of the schema to add. Default to `object`. + * @param type The type of the schema to add. Default to `object`. */ - async addSchema(type='object') { + async addSchema(type: SchemaAddType = 'object'): Promise { if (!this.schemasOpened) { this.schemasOpened = true; } this[addingSchemaValue] = true; this[addingSchemaTypeValue] = type; - await this.requestUpdate(); - const wrap = this.shadowRoot.querySelector('.add-schema-input'); - wrap.scrollIntoView(); - const input = wrap.querySelector('input'); - input.focus(); - input.select(); + this.requestUpdate(); + await this.updateComplete; + const wrap = this.shadowRoot?.querySelector('.add-schema-input'); + if (wrap) { + wrap.scrollIntoView(); + const input = wrap.querySelector('input') as HTMLInputElement; + input.focus(); + input.select(); + } } /** @@ -1474,7 +1498,7 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) * other items. Also sets the correct initial values for aria-selected * attribute, true for default selected item and false for others. */ - [resetTabindices]() { + [resetTabindices](): void { const { selectedItem } = this; const items = this[listActiveItems](); items.forEach((item) => item.setAttribute('tabindex', item === selectedItem ? '0' : '-1')); @@ -1482,15 +1506,15 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Dispatches the navigation event. - * @param {string} id The domain id of the selected node - * @param {SelectionType} type The domain type. + * @param id The domain id of the selected node + * @param type The domain type. */ - [notifyNavigation](id, type) { + [notifyNavigation](id: string, type: SelectionType): void { let parent; if (type === 'operation' && id) { - const node = /** @type HTMLElement */ (this.shadowRoot.querySelector(`.operation[data-graph-id="${id}"]`)); + const node = this.shadowRoot?.querySelector(`.operation[data-graph-id="${id}"]`); if (node) { - parent = node.dataset.graphParent; + parent = (node as HTMLElement).dataset.graphParent; } } Events.Navigation.apiNavigate(this, id, type, parent); @@ -1503,9 +1527,8 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Event handler for the keydown event of the add endpoint input. - * @param {KeyboardEvent} e */ - [addEndpointKeydownHandler](e) { + [addEndpointKeydownHandler](e: KeyboardEvent): void { if (e.key === 'Enter' || e.key === 'NumpadEnter') { e.preventDefault(); this[commitNewEndpoint](); @@ -1517,12 +1540,11 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Event handler for the keydown event of the add documentation input. - * @param {KeyboardEvent} e */ - [addDocumentationKeydownHandler](e) { + [addDocumentationKeydownHandler](e: KeyboardEvent): void { if (e.key === 'Enter' || e.key === 'NumpadEnter') { e.preventDefault(); - const input = /** @type HTMLInputElement */ (e.target); + const input = e.target as HTMLInputElement; this[commitNewDocumentation](input.value); } else if (e.key === 'Escape') { e.preventDefault(); @@ -1534,12 +1556,11 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Event handler for the keydown event of the add schema input. - * @param {KeyboardEvent} e */ - [addSchemaKeydownHandler](e) { + [addSchemaKeydownHandler](e: KeyboardEvent): void { if (e.key === 'Enter' || e.key === 'NumpadEnter') { e.preventDefault(); - const input = /** @type HTMLInputElement */ (e.target); + const input = (e.target as HTMLInputElement); this[commitNewSchema](input.value); } else if (e.key === 'Escape') { e.preventDefault(); @@ -1549,12 +1570,12 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } } - async [commitNewEndpoint]() { - const input = /** @type HTMLInputElement */ (this.shadowRoot.querySelector('.add-endpoint-input input')) + async [commitNewEndpoint](): Promise { + const input = this.shadowRoot?.querySelector('.add-endpoint-input input'); if (!input) { return; } - const name = input.value.trim(); + const name = (input as HTMLInputElement).value.trim(); if (!name) { return; } @@ -1562,25 +1583,28 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) await this[cancelNewEndpoint](); } - async [cancelNewEndpoint]() { + async [cancelNewEndpoint](): Promise { this[addingEndpointValue] = false; - await this.requestUpdate(); + this.requestUpdate(); + await this.updateComplete; } /** - * @param {string} value The title of the documentation. + * @param value The title of the documentation. */ - async [commitNewDocumentation](value='') { + async [commitNewDocumentation](value = ''): Promise { const name = value.trim(); if (!name) { return; } - const opts = { title: name }; - const isExternal = this[addingExternalValue]; - if (isExternal) { - const input = /** @type HTMLInputElement */ (this.shadowRoot.querySelector('.add-external-doc-input input')) - opts.url = input.value; - } + // const opts = { title: name }; + // const isExternal = this[addingExternalValue]; + // if (isExternal) { + // const input = (this.shadowRoot?.querySelector('.add-external-doc-input input')); + // if (input) { + // opts.url = (input as HTMLInputElement).value; + // } + // } this[addingDocumentationValue] = false; this[addingExternalValue] = undefined; // await Events.Documentation.add(this, opts); @@ -1588,24 +1612,24 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) } /** - * @param {string} value The name of the schema. + * @param value The name of the schema. */ - async [commitNewSchema](value='') { + async [commitNewSchema](value = ''): Promise { const name = value.trim(); if (!name) { return; } - const type = this[addingSchemaTypeValue]; - const opts = { name }; + // const type = this[addingSchemaTypeValue]; + // const opts = { name }; - switch (type) { - case 'object': opts.type = ns.w3.shacl.NodeShape; break; - case 'scalar': opts.type = ns.aml.vocabularies.shapes.ScalarShape; break; - case 'array': opts.type = ns.aml.vocabularies.shapes.ArrayShape; break; - case 'file': opts.type = ns.aml.vocabularies.shapes.FileShape; break; - case 'union': opts.type = ns.aml.vocabularies.shapes.UnionShape; break; - default: - } + // switch (type) { + // case 'object': opts.type = AmfNamespace.w3.shacl.NodeShape; break; + // case 'scalar': opts.type = AmfNamespace.aml.vocabularies.shapes.ScalarShape; break; + // case 'array': opts.type = AmfNamespace.aml.vocabularies.shapes.ArrayShape; break; + // case 'file': opts.type = AmfNamespace.aml.vocabularies.shapes.FileShape; break; + // case 'union': opts.type = AmfNamespace.aml.vocabularies.shapes.UnionShape; break; + // default: + // } this[addingSchemaValue] = false; this[addingSchemaTypeValue] = undefined; // await Events.Type.add(this, opts); @@ -1614,25 +1638,29 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * Triggers a rename action for the menu item identified by the `id`. - * @param {string} id The domain id of the item to edit. + * @param id The domain id of the item to edit. */ - async renameAction(id) { + async renameAction(id: string): Promise { + const { shadowRoot } = this; + if (!shadowRoot) { + throw new Error(`Invalid state. The DOM is not ready.`); + } const item = this[findViewModelItem](id); if (!item) { return; } item.nameEditor = true; - await this.requestUpdate(); - const input = /** @type HTMLInputElement */ (this.shadowRoot.querySelector(`input[data-id="${id}"]`)); + this.requestUpdate(); + await this.updateComplete; + const input = (shadowRoot.querySelector(`input[data-id="${id}"]`)) as HTMLInputElement; input.select(); input.focus(); } /** - * @param {string} id The domain id of the item to find. - * @returns {SelectableMenuItem & EditableMenuItem | null} + * @param id The domain id of the item to find. */ - [findViewModelItem](id) { + [findViewModelItem](id: string): SelectableMenuItem & EditableMenuItem | null { const endpoints = this[endpointsValue]; if (endpoints && endpoints.length) { for (let i = 0, len = endpoints.length; i < len; i++) { @@ -1665,19 +1693,18 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) /** * A key down event handler on the rename input - * @param {KeyboardEvent} e */ - async [renameKeydownHandler](e) { + async [renameKeydownHandler](e: KeyboardEvent): Promise { // do not interfere with the navigation logic. e.stopPropagation(); if (!['Enter', 'NumpadEnter', 'Escape'].includes(e.code)) { return; } e.preventDefault(); - const input = /** @type HTMLInputElement */ (e.target); + const input = e.target as HTMLInputElement; const { value, dataset } = input; const { id, type } = dataset; - const item = this[findViewModelItem](id); + const item = this[findViewModelItem](id as string); if (!item) { return; } @@ -1686,34 +1713,33 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) if (e.code === 'Escape') { return; } - await this[updateNameHandler](id, value, /** @type SelectionType */ (type)); + await this[updateNameHandler](id as string, value, type as SelectionType); } /** * A blur event handler on the rename input - * @param {Event} e */ - async [renameBlurHandler](e) { - const input = /** @type HTMLInputElement */ (e.target); + async [renameBlurHandler](e: Event): Promise { + const input = e.target as HTMLInputElement; const { value, dataset } = input; const { id, type } = dataset; - const item = this[findViewModelItem](id); + const item = this[findViewModelItem](id as string); if (!item) { return; } item.nameEditor = false; this.requestUpdate(); - await this[updateNameHandler](id, value, /** @type SelectionType */ (type)); + await this[updateNameHandler](id as string, value, type as SelectionType); } /** * Updates the name or the display name of the menu object - * @param {string} id The id of the domain object to update - * @param {string} value The new value. - * @param {SelectionType} type The object type - * @returns {Promise} A promise when the update operation finish. + * @param id The id of the domain object to update + * @param value The new value. + * @param type The object type + * @returns A promise when the update operation finish. */ - async [updateNameHandler](id, value, type) { + async [updateNameHandler](id: string, value: string, type: SelectionType): Promise { const updateValue = value.trim(); if (!updateValue) { return; @@ -1737,7 +1763,8 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) try { await promise; } catch (e) { - Events.Reporting.error(this, e, `Unable rename object: ${e.message}`, 'graph-api-navigation'); + const ex = e as Error; + Events.Reporting.error(this, ex, `Unable rename object: ${ex.message}`, 'graph-api-navigation'); } } @@ -1745,17 +1772,16 @@ export default class ApiNavigationElement extends EventsTargetMixin(LitElement) * Click handler for the external navigation item. * Dispatches the external navigation event. When this event is handled (cancelled) * the original event is cancelled to prevent default behavior. - * @param {Event} e */ - [externalDocumentationHandler](e) { - const a = /** @type HTMLAnchorElement */ (e.currentTarget); + [externalDocumentationHandler](e: Event): void { + const a = e.currentTarget as HTMLAnchorElement; const handled = Events.Navigation.navigateExternal(this, a.href); if (handled) { cancelEvent(e); } } - render() { + render(): TemplateResult { return html`