diff --git a/CHANGELOG.md b/CHANGELOG.md index 8135ac04b..bfd439cfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - -## [1.0.0-alpha] - 2022-12-07 +## [1.0.0-alpha] - 2024-02-20 ### Dependency Updates - Updated to Angular 13 @@ -87,6 +87,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Named entities visualisation - Named entities extraction - OpenSeadragon component with support for manifest file +- Analogues and sources extraction and configuration +- Analogues and sources visualization ### Changed - Routing params keys diff --git a/README.md b/README.md index bcae64a29..c230f329b 100644 --- a/README.md +++ b/README.md @@ -18,14 +18,14 @@ Wanting to maintain the original feature of EVT, and therefore do not give up th Before the refactoring, EVT was composed of two main units: EVT Builder, for the transformation of the encoded text using special XSLT 2.0 templates, and EVT Viewer, for the visualization into a browser of the results of the transformations and the interaction with them. The idea under the new version of EVT is instead to leave to EVT Viewer the task of reading and parsing with JavaScript functions the encoded text, and “save” as much as possible within a data model, that persists in the client main memory, and is organized in a way that allows a very quick access to the data in case of need. This has obviously led to the elimination of the EVT Builder level, and therefore it allows to open a digital edition directly in the browser without any previous XSLT transformation. ### 1.3 - Main features -At the present moment, EVT is being moved from AngularJS to Angular 2+. +At the present moment, EVT is being moved from AngularJS to Angular. For a complete list of features, please refer to the [AngularJS version] (https://github.com/evt-project/evt-viewer) 2 - A short guide to EVT -------------------------------- -If you are interested in **using** EVT to prepare an edition right away, you should probably download the ready-to-use release package that can be downloaded from [SourceForge](https://sourceforge.net/projects/evt-project/). See the *Installation and use* section first, then *Configuration*, to understand how EVT works and how you can use it to publish your editions. A more detailed guide will be published separately, as a reference manual, and will also include instructions about customization. +If you are interested in **using** EVT to prepare an edition right away, you should probably download the ready-to-use release package that can be downloaded from the [release page on GitHub](https://github.com/evt-project/evt-viewer-angular/releases). See the *Installation and use* section first, then *Configuration*, to understand how EVT works and how you can use it to publish your editions. A more detailed guide will be published separately, as a reference manual, and will also include instructions about customization. -If, on the other hand, you are interested in **developing** a specific functionality in EVT, or in modifying an existing one, or preparing your edition with the most recent (yet stable) version of EVT, you should download the [*GitHub Development framework*](https://github.com/evt-project/evt-viewer). See the *Development framework installation and use* section to know how to install and configure the environment needed for this purpose. If you intend to change the source code for personal needs, please **fork** the project. If you want to contribute to the main project (by fixing a bug or adding a feature), please ask for a **pull request** and/or contact us at evt.developers@gmail.com. +If, on the other hand, you are interested in **developing** a specific functionality in EVT, or in modifying an existing one, or preparing your edition with the most recent (yet stable) version of EVT, you should download the [*GitHub Development framework*](https://github.com/evt-project/evt-viewer-angular). See the *Development framework installation and use* section to know how to install and configure the environment needed for this purpose. If you intend to change the source code for personal needs, please **fork** the project, and remember to contribute your changes back (see below for contact). If you want to contribute to the main project (by fixing a bug or adding a feature), please ask for a **pull request** and/or contact us at evt.developers@gmail.com. ### 2.1 - Installation and use EVT 3 can be used to prepare an edition right away, immediately after downloading the release package on your hard drive: see the [​Installation and management of the edition data](https://github.com/evt-project/evt-viewer-angular/wiki/Installation-and-use#installation-and-management-of-the-edition-data) section of the Wiki first, then [Configuration​](https://github.com/evt-project/evt-viewer-angular/wiki/Configuration), to understand how EVT works and how you can use it to publish your editions. @@ -35,13 +35,13 @@ If, on the other hand, you are interested in ​developing a specific functional ### 2.2 - Configuration -There are several configuration options, ranging from setting the folders where edition data is stored to choosing the User Interface layout and the tools to be made available for the final user, that can be set by editing the configuration files in the `assets/config` directory. To facilitate the configuration work, configuration options are divided into three macro groups: +There are several configuration options, ranging from setting the folders where edition data is stored to choosing the User Interface layout and the tools to be made available for the final user, that can be set by editing the configuration files in the `assets/config` directory. To facilitate the configuration work, configuration options are divided into three macro groups with corresponding files: * Edition Configuration (`edition_config.json`), where to set the configurations closely related to the digital edition, such as the title, the edition level(s), etc. [See details in the Wiki page](https://github.com/evt-project/evt-viewer-angular/wiki/Edition-Configuration). * File Configuration (`file_config.json`), where to set the path(s) to the file(s) of the digital edition. [See details in the Wiki page](https://github.com/evt-project/evt-viewer-angular/wiki/File-Configuration). * UI Configuration (`ui_config.json`), where to set the configuration closely related to the UI, such as the default language, the default/available theme(s), etc. [See details in the Wiki page](https://github.com/evt-project/evt-viewer-angular/wiki/Ui-Configuration). -It is also possible to configurate the style of editorial phenomena (e.g. addition, deletion, etc), in order to override the EVT default layouts. This particular configuration should be defined in the file `editorial_conventions_config.json`. [See details in the Wiki page](https://github.com/evt-project/evt-viewer-angular/wiki/Editorial-Conventions-Configuration) +It is also possible to configure the style of editorial phenomena (e.g. addition, deletion, etc), in order to override the EVT default layouts. This particular configuration should be defined in the file `editorial_conventions_config.json`. [See details in the Wiki page](https://github.com/evt-project/evt-viewer-angular/wiki/Editorial-Conventions-Configuration) For more information please refer to the [Configuration section](https://github.com/evt-project/evt-viewer-angular/wiki/Configuration) on the Wiki. @@ -55,9 +55,9 @@ This project was generated with [Angular CLI](https://github.com/angular/angular For development, you will only need Node.js installed on your environement. And please use the appropriate Editorconfig plugin for your Editor (not mandatory). ### 3.2 - Node -[Node](http://nodejs.org/) is really easy to install & now include [NPM](https://npmjs.org/). +[Node](http://nodejs.org/) is really easy to install & now includes [NPM](https://npmjs.org/). You should be able to run the following command after the installation procedure -below. To properly install all the dependency, please use 12.20.x/14.15.x/16.10.x or later minor version of NodeJS. +below. To properly install all the dependencies, please use 12.20.x/14.15.x/16.10.x or later minor version of NodeJS. To know which versions are installed on your computer: $ node --version v14.15.0 @@ -66,12 +66,22 @@ below. To properly install all the dependency, please use 12.20.x/14.15.x/16.10. v6.14.8 ### 3.3 - Install +To download and install the current stable version of EVT use these commands: + $ git clone https://github.com/evt-project/evt-viewer-angular.git $ cd evt-viewer-angular $ npm install +You may be interested in installing the development branch (`develop`) which is the more up to date one, and generally quite stable: + + $ git clone -b develop https://github.com/evt-project/evt-viewer-angular.git + $ cd evt-viewer-angular + $ npm install + ### 3.4 - Start & watch with development server +To start EVT directly just type + $ npm run start If nothing happens, then open your browser and navigate to `http://localhost:4205/`. @@ -84,12 +94,16 @@ If you want to use a different port where to run the application you can run `np Run `npm run ng generate component component-name` to generate a new component. You can also use `npm run ng generate directive|pipe|service|class|guard|interface|enum|module`. ### 3.6 - Simple build for production +This command will create a build of the current installation which you can use for testing or other purposes: + $ npm run build The build artifacts will be stored in the `dist/` directory. With the second instruction you can use the `--c=production` flag for a production build. ## 3.6.1 - Build for release +This command will create a build of the current installation flagging it as a release build: + $ npm run build:release The build artifacts will be stored in the `release/` directory. If you set properly the variables in user_paths.sh file, both xml sample data and sample config will be copied in `release/assets` folder. @@ -176,7 +190,7 @@ btn-primary { ### 4.2 - Localization To handle localization we use the plugin angular-l10n[https://github.com/robisim74/angular-l10n]; in this way we can offer a runtime solution for language switching without fully reload the application. -Translations are defined in a JSON file (one for each language), saved inside the folder `assets/l10n`. This JSON is organized as follows: +Translations are defined in a JSON file (one for each language), saved inside the folder `assets/i18n`. This JSON is organized as follows: ``` { "KEY": "Text in a particular language", @@ -276,7 +290,7 @@ If you want to add a parameter in configuration, you need to add it first to the As a user manual please refer to the [Wiki](https://github.com/evt-project/evt-viewer-angular/wiki). It will always be updated based on the features merged into the `develop` branch. -For the functionalities and instructions related to a specific release, it is possible to refer to the `evt-documentation.pdf` file inside the `doc` folder in the release package. +For the functionalities and instructions related to a specific release, when the manual is ready it will be possible to refer to the `evt-documentation.pdf` file inside the `doc` folder in the release package. 7 - Feedback diff --git a/angular.json b/angular.json index a8867d286..91a9c2a48 100644 --- a/angular.json +++ b/angular.json @@ -35,6 +35,7 @@ "node_modules/jquery/dist/jquery.min.js", "node_modules/@popperjs/core/dist/umd/popper.min.js", "node_modules/openseadragon/build/openseadragon/openseadragon.js", + "node_modules/openseadragoncanvasoverlay/openseadragon-canvas-overlay.js", "node_modules/prismjs/prism.js" ], "vendorChunk": true, diff --git a/package-lock.json b/package-lock.json index 02efb13de..191419f0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,56 +1,133 @@ { "name": "evt-viewer-angular", "version": "1.0.0-alpha", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@aduh95/viz.js": { + "packages": { + "": { + "name": "evt-viewer-angular", + "version": "1.0.0-alpha", + "dependencies": { + "@angular-slider/ngx-slider": "^2.0.4", + "@angular/animations": "^13.3.1", + "@angular/cdk": "^13.3.2", + "@angular/cdk-experimental": "^13.3.2", + "@angular/common": "^13.3.1", + "@angular/compiler": "^13.3.1", + "@angular/core": "^13.3.1", + "@angular/forms": "^13.3.1", + "@angular/localize": "^13.3.1", + "@angular/platform-browser": "^13.3.1", + "@angular/platform-browser-dynamic": "^13.3.1", + "@angular/router": "^13.3.1", + "@compodoc/compodoc": "^1.1.19", + "@fortawesome/angular-fontawesome": "^0.10.2", + "@fortawesome/fontawesome-svg-core": "^6.1.1", + "@fortawesome/free-solid-svg-icons": "^6.1.1", + "@ng-bootstrap/ng-bootstrap": "^12.0.1", + "@ng-select/ng-select": "^8.1.1", + "@ngx-translate/core": "^14.0.0", + "@ngx-translate/http-loader": "^7.0.0", + "@popperjs/core": "^2.11.5", + "angular-gridster2": "^13.2.0", + "bootstrap": "^5.1.3", + "dexie": "^3.2.1", + "jquery": "^3.6.0", + "ng-dynamic-component": "~10.1.0", + "ng2-handy-syntax-highlighter": "^1.0.12", + "ngx-spinner": "^13.1.1", + "openseadragon": "^4.1.0", + "openseadragoncanvasoverlay": "^0.0.1", + "prismjs": "^1.27.0", + "rxjs": "^7.5.5", + "tslib": "^2.3.1", + "vkbeautify": "^0.99.3", + "zone.js": "^0.11.5" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~13.3.1", + "@angular-eslint/builder": "13.2.0", + "@angular-eslint/eslint-plugin": "13.2.0", + "@angular-eslint/eslint-plugin-template": "13.2.0", + "@angular-eslint/schematics": "13.2.0", + "@angular-eslint/template-parser": "13.2.0", + "@angular/cli": "~13.3.1", + "@angular/compiler-cli": "~13.3.1", + "@types/jasmine": "~3.10.0", + "@types/node": "^12.11.1", + "@typescript-eslint/eslint-plugin": "5.17.0", + "@typescript-eslint/parser": "5.17.0", + "codelyzer": "^6.0.0", + "eslint": "^8.12.0", + "jasmine-core": "~3.8.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~6.3.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "~1.7.0", + "protractor": "~7.0.0", + "ts-node": "~8.6.2", + "tslint": "~6.1.0", + "typescript": "~4.6.3" + } + }, + "node_modules/@aduh95/viz.js": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@aduh95/viz.js/-/viz.js-3.7.0.tgz", "integrity": "sha512-20Pk2Z98fbPLkECcrZSJszKos/OgtvJJR3NcbVfgCJ6EQjDNzW2P1BKqImOz3tJ952dvO2DWEhcLhQ1Wz1e9ng==" }, - "@ampproject/remapping": { + "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@angular-devkit/architect": { + "node_modules/@angular-devkit/architect": { "version": "0.1303.10", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.10.tgz", "integrity": "sha512-A8blp98GY9Lg5RdgZ4M/nT0DhWsFv+YikC6+ebJsUTn/L06GcQNhyZKGCwB69S4Xe/kcYJgKpI2nAYnOLDpJlQ==", "dev": true, - "requires": { + "dependencies": { "@angular-devkit/core": "13.3.10", "rxjs": "6.6.7" }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" } }, - "@angular-devkit/build-angular": { + "node_modules/@angular-devkit/architect/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/@angular-devkit/build-angular": { "version": "13.3.10", "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.10.tgz", "integrity": "sha512-eKMjwr7XHlh/lYqYvdIrHZfVPM8fCxP4isKzCDiOjsJ+4fl+Ycq8RvjtOLntBN6A1U8h93rZNE+VOTEGCJcGig==", "dev": true, - "requires": { + "dependencies": { "@ampproject/remapping": "2.2.0", "@angular-devkit/architect": "0.1303.10", "@angular-devkit/build-webpack": "0.1303.10", @@ -76,7 +153,6 @@ "core-js": "3.20.3", "critters": "0.0.16", "css-loader": "6.5.1", - "esbuild": "0.14.22", "esbuild-wasm": "0.14.22", "glob": "7.2.0", "https-proxy-agent": "5.0.0", @@ -117,330 +193,445 @@ "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, - "dependencies": { - "@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "dev": true, - "requires": { - "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, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "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 - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "esbuild": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", - "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", - "dev": true, - "optional": true, - "requires": { - "esbuild-android-arm64": "0.14.22", - "esbuild-darwin-64": "0.14.22", - "esbuild-darwin-arm64": "0.14.22", - "esbuild-freebsd-64": "0.14.22", - "esbuild-freebsd-arm64": "0.14.22", - "esbuild-linux-32": "0.14.22", - "esbuild-linux-64": "0.14.22", - "esbuild-linux-arm": "0.14.22", - "esbuild-linux-arm64": "0.14.22", - "esbuild-linux-mips64le": "0.14.22", - "esbuild-linux-ppc64le": "0.14.22", - "esbuild-linux-riscv64": "0.14.22", - "esbuild-linux-s390x": "0.14.22", - "esbuild-netbsd-64": "0.14.22", - "esbuild-openbsd-64": "0.14.22", - "esbuild-sunos-64": "0.14.22", - "esbuild-windows-32": "0.14.22", - "esbuild-windows-64": "0.14.22", - "esbuild-windows-arm64": "0.14.22" - } - }, - "minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.14.22" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", + "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", + "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", + "karma": "^6.3.0", + "ng-packagr": "^13.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=4.4.3 <4.7" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "@angular/service-worker": { + "optional": true }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } + "karma": { + "optional": true }, - "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" - } + "ng-packagr": { + "optional": true }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true + "protractor": { + "optional": true }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "tailwindcss": { + "optional": true } } }, - "@angular-devkit/build-webpack": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.12", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", + "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/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, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/esbuild": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", + "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.22", + "esbuild-darwin-64": "0.14.22", + "esbuild-darwin-arm64": "0.14.22", + "esbuild-freebsd-64": "0.14.22", + "esbuild-freebsd-arm64": "0.14.22", + "esbuild-linux-32": "0.14.22", + "esbuild-linux-64": "0.14.22", + "esbuild-linux-arm": "0.14.22", + "esbuild-linux-arm64": "0.14.22", + "esbuild-linux-mips64le": "0.14.22", + "esbuild-linux-ppc64le": "0.14.22", + "esbuild-linux-riscv64": "0.14.22", + "esbuild-linux-s390x": "0.14.22", + "esbuild-netbsd-64": "0.14.22", + "esbuild-openbsd-64": "0.14.22", + "esbuild-sunos-64": "0.14.22", + "esbuild-windows-32": "0.14.22", + "esbuild-windows-64": "0.14.22", + "esbuild-windows-arm64": "0.14.22" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs/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/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { "version": "0.1303.10", "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.10.tgz", "integrity": "sha512-nthTy6r4YQQTrvOpOS3dqjoJog/SL9Hn5YLytqnEp2r2he5evYsKV2Jtqi49/VgW1ohrGzw+bI0c3dUGKweyfw==", "dev": true, - "requires": { + "dependencies": { "@angular-devkit/architect": "0.1303.10", "rxjs": "6.6.7" }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" } }, - "@angular-devkit/core": { + "node_modules/@angular-devkit/build-webpack/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/@angular-devkit/core": { "version": "13.3.10", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.10.tgz", "integrity": "sha512-NSjyrccES+RkVL/wt1t1jNmJOV9z5H4/DtVjJQbAt/tDE5Mo0ygnhELd/QiUmjVfzfSkhr75LqQD8NtURoGBwQ==", - "requires": { + "dependencies": { "ajv": "8.9.0", "ajv-formats": "2.1.1", "fast-json-stable-stringify": "2.1.0", @@ -448,192 +639,283 @@ "rxjs": "6.6.7", "source-map": "0.7.3" }, - "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true } } }, - "@angular-devkit/schematics": { + "node_modules/@angular-devkit/core/node_modules/ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "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/@angular-devkit/core/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==" + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@angular-devkit/schematics": { "version": "13.3.10", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.10.tgz", "integrity": "sha512-/G0xInGBfFiJJQET3nKMe8V7Ny+fcxAZsXxFuOpuH2jfKqty9JMmuJw6ll5qEP0h3NnKPsF+9J1Gvq8Bmb4uDQ==", - "requires": { + "dependencies": { "@angular-devkit/core": "13.3.10", "jsonc-parser": "3.0.0", "magic-string": "0.25.7", "ora": "5.4.1", "rxjs": "6.6.7" }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" } }, - "@angular-eslint/builder": { + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@angular-eslint/builder": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-13.2.0.tgz", "integrity": "sha512-7V/bJwkMX+1OzxNUMxiOGdfdksjBmzCdPfxNEHXrT4la+vQQxg1oaIsgx74OkDqFTBv6NJO4PK8Flm9/QE4CDw==", "dev": true, - "requires": { + "dependencies": { "@nrwl/devkit": "13.1.3" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" } }, - "@angular-eslint/bundled-angular-compiler": { + "node_modules/@angular-eslint/bundled-angular-compiler": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.2.0.tgz", "integrity": "sha512-ZA9JPERpeSo+G/bmp8GS/WjBbYkPDVzN6IINHz9SVdv//LWE58yymFFjRabHJx46iAEOe8P0CoKduuJWtEvNrQ==", "dev": true }, - "@angular-eslint/eslint-plugin": { + "node_modules/@angular-eslint/eslint-plugin": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.2.0.tgz", "integrity": "sha512-8qscIBc4montFQ52+XfBk7qR675oXV8mvRpjDh3cTfIZCzV6CSbbbH2iLp/9egnn0Pgy2ZUIsWgcsbK4W3+4bw==", "dev": true, - "requires": { + "dependencies": { "@angular-eslint/utils": "13.2.0", "@typescript-eslint/experimental-utils": "5.17.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" } }, - "@angular-eslint/eslint-plugin-template": { + "node_modules/@angular-eslint/eslint-plugin-template": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.2.0.tgz", "integrity": "sha512-Ej9bNGbpf8oaQGglPVWAQkBSIHhQv0FeJ/vVnB2fhHUoK9BbkGUYpjAFSSRlnMhl6ktPWKCX3yJiW+F4uIUTIw==", "dev": true, - "requires": { + "dependencies": { "@angular-eslint/bundled-angular-compiler": "13.2.0", "@typescript-eslint/experimental-utils": "5.17.0", "aria-query": "^4.2.2", "axobject-query": "^2.2.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" } }, - "@angular-eslint/schematics": { + "node_modules/@angular-eslint/schematics": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-13.2.0.tgz", "integrity": "sha512-wxpfZ1L8Twa9Jfwqis7fY6jZvORqAv1k+9m1P6+6/l8gIm/8RYwD44o9Qm2MGt7YClnVthpCDhvfprcoKq6zgA==", "dev": true, - "requires": { + "dependencies": { "@angular-eslint/eslint-plugin": "13.2.0", "@angular-eslint/eslint-plugin-template": "13.2.0", "ignore": "5.2.0", "strip-json-comments": "3.1.1", "tmp": "0.2.1" }, + "peerDependencies": { + "@angular/cli": ">= 13.0.0 < 14.0.0" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" } }, - "@angular-eslint/template-parser": { + "node_modules/@angular-eslint/template-parser": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.2.0.tgz", "integrity": "sha512-dv+bBFzvA4q/KiEDpO7BDUmB1EpVW0P0sX6OSs2eRzViEuXztkatQ4XOmgzuxP0+E1+zl/mK3F7uBDNXiaah9g==", "dev": true, - "requires": { + "dependencies": { "@angular-eslint/bundled-angular-compiler": "13.2.0", "eslint-scope": "^5.1.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" } }, - "@angular-eslint/utils": { + "node_modules/@angular-eslint/utils": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.2.0.tgz", "integrity": "sha512-ywkk+pVLaDLwzNKUcc/xWtJC4Bkm+qRrMOR8ZX3q84E5RTvIvc8IcPFBE4ey3lnGe+nE44OEGuLedCo9vn1Meg==", "dev": true, - "requires": { + "dependencies": { "@angular-eslint/bundled-angular-compiler": "13.2.0", "@typescript-eslint/experimental-utils": "5.17.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" } }, - "@angular-slider/ngx-slider": { + "node_modules/@angular-slider/ngx-slider": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@angular-slider/ngx-slider/-/ngx-slider-2.0.4.tgz", "integrity": "sha512-EccMcGlb2bJJWikXZBjRwdWgRiYYmWd3UCgf8l3KAlyqPAxPVgxI73wqipp4/nZwidq53a9s3OB+KC79enfM2A==", - "requires": { + "dependencies": { "detect-passive-events": "^2.0.3", "rxjs": "^6.5.2", "tslib": "^1.9.0" }, + "peerDependencies": { + "@angular/common": ">=6.1.0", + "@angular/core": ">=6.1.0", + "@angular/forms": ">=6.1.0" + } + }, + "node_modules/@angular-slider/ngx-slider/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" } }, - "@angular/animations": { + "node_modules/@angular-slider/ngx-slider/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@angular/animations": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.12.tgz", "integrity": "sha512-dc2JDokKJuuNxzzZa9FvuQU71kYC/e0xCLjGxEgX48sGKwajHRGBuzYFb8EmvLeA24SshYGmrxN0vGG9GhLK6g==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.12" } }, - "@angular/cdk": { + "node_modules/@angular/cdk": { "version": "13.3.9", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.3.9.tgz", "integrity": "sha512-XCuCbeuxWFyo3EYrgEYx7eHzwl76vaWcxtWXl00ka8d+WAOtMQ6Tf1D98ybYT5uwF9889fFpXAPw98mVnlo3MA==", - "requires": { - "parse5": "^5.0.0", + "dependencies": { "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0 || ^14.0.0-0", + "@angular/core": "^13.0.0 || ^14.0.0-0", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "@angular/cdk-experimental": { + "node_modules/@angular/cdk-experimental": { "version": "13.3.9", "resolved": "https://registry.npmjs.org/@angular/cdk-experimental/-/cdk-experimental-13.3.9.tgz", "integrity": "sha512-XRf0LtP1FjQ6xJOUJ4xBE4InCqiukZCoCrDBVEAlH4Wn7XPbbs+2lVxpfRyhjuZEuSWC2+SOFz3E5QS2ou0FWA==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/cdk": "13.3.9", + "@angular/core": "^13.0.0 || ^14.0.0-0" } }, - "@angular/cli": { + "node_modules/@angular/cli": { "version": "13.3.10", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.10.tgz", "integrity": "sha512-MssGlWSFv2d8d6b0+ml0NLYWr/X+2FzIleaoEwkYnLeCTBrH07xghVkCbSk8OnTvEmuBcUcsNiPprpLFY4cGEw==", "dev": true, - "requires": { + "hasInstallScript": true, + "dependencies": { "@angular-devkit/architect": "0.1303.10", "@angular-devkit/core": "13.3.10", "@angular-devkit/schematics": "13.3.10", @@ -654,66 +936,104 @@ "symbol-observable": "4.0.0", "uuid": "8.3.2" }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/cli/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, "dependencies": { - "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 - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.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" - } + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@angular/common": { + "node_modules/@angular/cli/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/common": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.12.tgz", "integrity": "sha512-Nk4zNKfda92aFe+cucHRv2keyryR7C1ZnsurwZW9WZSobpY3z2tTT81F+yy35lGoMt5BDBAIpfh1b4j9Ue/vMg==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.12", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "@angular/compiler": { + "node_modules/@angular/compiler": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.12.tgz", "integrity": "sha512-F5vJYrjbNvEWoVz9J/CqiT3Iod6g9bV0dGI5EeURcW4yHXHZ12ioQpfU3+bE7qXcTlnofbdDhK8cGxGx01SzBA==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" } }, - "@angular/compiler-cli": { + "node_modules/@angular/compiler-cli": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.12.tgz", "integrity": "sha512-6jrdVwexPihWlyitopc3rn2ReEkhAaMI8UWR0SOTnt3NaqNYWeio4bpeWlumgNPElDyY5rmyrmJgeaY8ICa8qA==", - "dev": true, - "requires": { + "dependencies": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", @@ -725,101 +1045,183 @@ "tslib": "^2.3.0", "yargs": "^17.2.1" }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/main-ngcc.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/compiler": "13.3.12", + "typescript": ">=4.4.2 <4.7" + } + }, + "node_modules/@angular/compiler-cli/node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dependencies": { - "magic-string": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" } }, - "@angular/core": { + "node_modules/@angular/compiler-cli/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/core": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.12.tgz", "integrity": "sha512-jx0YC+NbPMbxGr5bXECkCEQv2RdVxR8AJNnabkPk8ZjwCpDzROrbELwwS1kunrZUhffcD15IhWGBvf1EGHAYDw==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.11.4" } }, - "@angular/forms": { + "node_modules/@angular/forms": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.12.tgz", "integrity": "sha512-auow1TKZx44ha1ia8Jwg2xp2Q7BbpShG5Ft8tewL3T44aTmJY7svWOE/m+DkZ/SXHmTFnbZFobGU5aEfe0+pNw==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.12", + "@angular/core": "13.3.12", + "@angular/platform-browser": "13.3.12", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "@angular/localize": { + "node_modules/@angular/localize": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-13.3.12.tgz", "integrity": "sha512-2RJhOwVMg1OqunRBjbjMfIEXxYhnHtkqOFyeZPTzxWWeHLlgNzh5wZ7A9604csuWC91DRhA2BdENv5nOs+5h5Q==", - "requires": { + "dependencies": { "@babel/core": "7.17.2", "glob": "7.2.0", "yargs": "^17.2.1" + }, + "bin": { + "localize-extract": "tools/bundles/src/extract/cli.js", + "localize-migrate": "tools/bundles/src/migrate/cli.js", + "localize-translate": "tools/bundles/src/translate/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/compiler": "13.3.12", + "@angular/compiler-cli": "13.3.12" } }, - "@angular/platform-browser": { + "node_modules/@angular/platform-browser": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.12.tgz", "integrity": "sha512-sfhQqU4xjTJCjkH62TQeH5/gkay/KzvNDF95J6NHi/Q6p2dbtzZdXuLJKR/sHxtF2kc505z5v9RNm6XMSXM1KA==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/animations": "13.3.12", + "@angular/common": "13.3.12", + "@angular/core": "13.3.12" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } } }, - "@angular/platform-browser-dynamic": { + "node_modules/@angular/platform-browser-dynamic": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.12.tgz", "integrity": "sha512-/hBggov0PxK/KNJqIu3MVc5k8f0iDbygDP8Z1k/J0FcllOSRdO4LsQd1fsCfGfwIUf0YWGyD7KraSGpBBiWlFg==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.12", + "@angular/compiler": "13.3.12", + "@angular/core": "13.3.12", + "@angular/platform-browser": "13.3.12" } }, - "@angular/router": { + "node_modules/@angular/router": { "version": "13.3.12", "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.12.tgz", "integrity": "sha512-X+TAxTAlqUd2gPm6drFBGVzQsbQWM5wmZ8S5D5i+86x7Ku0v2CUFICT6AUPSl9+FTPiexlL4FdmvQV2CnGTSUw==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.12", + "@angular/core": "13.3.12", + "@angular/platform-browser": "13.3.12", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "@assemblyscript/loader": { + "node_modules/@assemblyscript/loader": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", "dev": true }, - "@babel/code-frame": { + "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==", - "requires": { + "dependencies": { "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { + "node_modules/@babel/compat-data": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.17.2", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", - "requires": { + "dependencies": { "@ampproject/remapping": "^2.0.0", "@babel/code-frame": "^7.16.7", "@babel/generator": "^7.17.0", @@ -835,63 +1237,86 @@ "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/generator": { + "node_modules/@babel/generator": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", - "requires": { + "dependencies": { "@babel/types": "^7.20.5", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/helper-annotate-as-pure": { + "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "requires": { + "dependencies": { "@babel/helper-explode-assignable-expression": "^7.18.6", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "requires": { + "dependencies": { "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-class-features-plugin": { + "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", @@ -899,81 +1324,114 @@ "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-regexp-features-plugin": { + "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "regexpu-core": "^5.2.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-define-polyfill-provider": { + "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "requires": { + "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "@babel/helper-environment-visitor": { + "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-explode-assignable-expression": { + "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { + "node_modules/@babel/helper-function-name": { "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "requires": { + "dependencies": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { + "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { + "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "requires": { + "dependencies": { "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.20.2", @@ -982,440 +1440,689 @@ "@babel/template": "^7.18.10", "@babel/traverse": "^7.20.1", "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { + "node_modules/@babel/helper-optimise-call-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { + "node_modules/@babel/helper-plugin-utils": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-remap-async-to-generator": { + "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-wrap-function": "^7.18.9", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-replace-supers": { + "node_modules/@babel/helper-replace-supers": { "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/traverse": "^7.19.1", "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "requires": { + "dependencies": { "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-skip-transparent-expression-wrappers": { + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "requires": { + "dependencies": { "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-string-parser": { + "node_modules/@babel/helper-string-parser": { "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-identifier": { + "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==" + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-option": { + "node_modules/@babel/helper-validator-option": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-wrap-function": { + "node_modules/@babel/helper-wrap-function": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "requires": { + "dependencies": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", "@babel/traverse": "^7.20.5", "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.20.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", - "requires": { + "dependencies": { "@babel/template": "^7.18.10", "@babel/traverse": "^7.20.5", "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { + "node_modules/@babel/parser": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==" + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@babel/plugin-proposal-async-generator-functions": { + "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.20.1", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-class-properties": { + "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-class-static-block": { + "node_modules/@babel/plugin-proposal-class-static-block": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/plugin-proposal-dynamic-import": { + "node_modules/@babel/plugin-proposal-dynamic-import": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-export-namespace-from": { + "node_modules/@babel/plugin-proposal-export-namespace-from": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-json-strings": { + "node_modules/@babel/plugin-proposal-json-strings": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-logical-assignment-operators": { + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-numeric-separator": { + "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-object-rest-spread": { + "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dependencies": { "@babel/compat-data": "^7.20.1", "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.20.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-catch-binding": { + "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-chaining": { + "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-methods": { + "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-property-in-object": { + "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.20.5", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-unicode-property-regex": { + "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-async-generators": { + "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-properties": { + "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-static-block": { + "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-dynamic-import": { + "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-export-namespace-from": { + "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-assertions": { + "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-json-strings": { + "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-numeric-separator": { + "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { + "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-chaining": { + "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-private-property-in-object": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-top-level-await": { + "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-arrow-functions": { + "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-to-generator": { + "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoped-functions": { + "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoping": { + "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-classes": { + "node_modules/@babel/plugin-transform-classes": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-environment-visitor": "^7.18.9", @@ -1425,188 +2132,314 @@ "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { + "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { + "node_modules/@babel/plugin-transform-destructuring": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { + "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { + "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { + "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "requires": { + "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { + "node_modules/@babel/plugin-transform-for-of": { "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { + "node_modules/@babel/plugin-transform-function-name": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "requires": { + "dependencies": { "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-function-name": "^7.18.9", "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { + "node_modules/@babel/plugin-transform-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { + "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { + "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.19.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { + "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.19.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-simple-access": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { + "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.19.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", - "requires": { + "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { + "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.20.5", "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-new-target": { + "node_modules/@babel/plugin-transform-new-target": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { + "node_modules/@babel/plugin-transform-object-super": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { + "node_modules/@babel/plugin-transform-parameters": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-property-literals": { + "node_modules/@babel/plugin-transform-property-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { + "node_modules/@babel/plugin-transform-regenerator": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-reserved-words": { + "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-runtime": { + "node_modules/@babel/plugin-transform-runtime": { "version": "7.16.10", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "babel-plugin-polyfill-corejs2": "^0.3.0", @@ -1614,91 +2447,143 @@ "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, "dependencies": { - "babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - } + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { + "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { + "node_modules/@babel/plugin-transform-spread": { "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { + "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { + "node_modules/@babel/plugin-transform-template-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typeof-symbol": { + "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-escapes": { + "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { + "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-env": { + "node_modules/@babel/preset-env": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "requires": { + "dependencies": { "@babel/compat-data": "^7.20.1", "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-plugin-utils": "^7.20.2", @@ -1774,53 +2659,71 @@ "babel-plugin-polyfill-regenerator": "^0.4.1", "core-js-compat": "^3.25.1", "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-modules": { + "node_modules/@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/runtime": { + "node_modules/@babel/runtime": { "version": "7.20.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", - "requires": { + "dependencies": { "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/runtime-corejs3": { + "node_modules/@babel/runtime-corejs3": { "version": "7.20.6", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", "dev": true, - "requires": { + "dependencies": { "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "requires": { + "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.10", "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", - "requires": { + "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.5", "@babel/helper-environment-visitor": "^7.18.9", @@ -1831,29 +2734,39 @@ "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/types": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", - "requires": { + "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@colors/colors": { + "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.1.90" + } }, - "@compodoc/compodoc": { + "node_modules/@compodoc/compodoc": { "version": "1.1.19", "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.1.19.tgz", "integrity": "sha512-09vdSIgoAXWD1MiLZNhiljLNQ1XzHw/w5shw5IPcUImr/I+1Y52srUL46mEXN8AXo0hbHb5LZcgs70mmrOvY7Q==", - "requires": { + "hasInstallScript": true, + "dependencies": { "@angular-devkit/schematics": "^13.2.4", "@babel/core": "^7.17.5", "@babel/preset-env": "^7.16.11", @@ -1890,189 +2803,269 @@ "ts-morph": "^13.0.3", "uuid": "^8.3.2" }, + "bin": { + "compodoc": "bin/index-cli.js" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "dependencies": { - "@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@compodoc/compodoc/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@compodoc/compodoc/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@compodoc/compodoc/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@compodoc/compodoc/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==" + }, + "node_modules/@compodoc/compodoc/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==", + "engines": { + "node": ">=8" } }, - "@compodoc/live-server": { + "node_modules/@compodoc/compodoc/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@compodoc/compodoc/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@compodoc/live-server": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@compodoc/live-server/-/live-server-1.2.3.tgz", "integrity": "sha512-hDmntVCyjjaxuJzPzBx68orNZ7TW4BtHWMnXlIVn5dqhK7vuFF/11hspO1cMmc+2QTYgqde1TBcb3127S7Zrow==", - "requires": { + "dependencies": { "chokidar": "^3.5.2", "colors": "1.4.0", "connect": "^3.7.0", - "cors": "^2.8.5", + "cors": "latest", "event-stream": "4.0.1", "faye-websocket": "0.11.x", "http-auth": "4.1.9", "http-auth-connect": "^1.0.5", "morgan": "^1.10.0", - "object-assign": "^4.1.1", + "object-assign": "latest", "open": "8.4.0", - "proxy-middleware": "^0.15.0", - "send": "^0.18.0", + "proxy-middleware": "latest", + "send": "latest", "serve-index": "^1.9.1" + }, + "bin": { + "live-server": "live-server.js" + }, + "engines": { + "node": ">=0.10.0" } }, - "@compodoc/ngd-core": { + "node_modules/@compodoc/ngd-core": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.1.0.tgz", "integrity": "sha512-nyBH7J7SJJ2AV6OeZhJ02kRtVB7ALnZJKgShjoL9CNmOFEj8AkdhP9qTBIgjaDrbsW5pF4nx32KQL2fT7RFnqw==", - "requires": { + "dependencies": { "ansi-colors": "^4.1.1", "fancy-log": "^1.3.3", "typescript": "^4.0.3" }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@compodoc/ngd-core/node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", "dependencies": { - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" - } + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@compodoc/ngd-core/node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" } }, - "@compodoc/ngd-transformer": { + "node_modules/@compodoc/ngd-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.1.0.tgz", "integrity": "sha512-Jo4VCMzIUtgIAdRmhHhOoRRE01gCjc5CyrUERRx0VgEzkkCm1Wmu/XHSsQP6tSpCYHBjERghqaDqH5DabkR2oQ==", - "requires": { + "dependencies": { "@aduh95/viz.js": "^3.1.0", "@compodoc/ngd-core": "~2.1.0", "dot": "^1.1.3", "fs-extra": "^9.0.1" }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@compodoc/ngd-transformer/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "@csstools/postcss-progressive-custom-properties": { + "node_modules/@csstools/postcss-progressive-custom-properties": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "@csstools/selector-specificity": { + "node_modules/@csstools/selector-specificity": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } }, - "@discoveryjs/json-ext": { + "node_modules/@discoveryjs/json-ext": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.0.0" + } }, - "@eslint/eslintrc": { + "node_modules/@eslint/eslintrc": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, - "requires": { + "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.4.0", @@ -2083,62 +3076,63 @@ "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/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dev": true, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "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 - } + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@foliojs-fork/fontkit": { + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@foliojs-fork/fontkit": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@foliojs-fork/fontkit/-/fontkit-1.9.1.tgz", "integrity": "sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A==", - "requires": { + "dependencies": { "@foliojs-fork/restructure": "^2.0.2", "brfs": "^2.0.0", "brotli": "^1.2.0", @@ -2151,268 +3145,357 @@ "unicode-trie": "^2.0.0" } }, - "@foliojs-fork/linebreak": { + "node_modules/@foliojs-fork/linebreak": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@foliojs-fork/linebreak/-/linebreak-1.1.1.tgz", "integrity": "sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig==", - "requires": { + "dependencies": { "base64-js": "1.3.1", "brfs": "^2.0.2", "unicode-trie": "^2.0.0" - }, - "dependencies": { - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - } } }, - "@foliojs-fork/pdfkit": { + "node_modules/@foliojs-fork/linebreak/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "node_modules/@foliojs-fork/pdfkit": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/@foliojs-fork/pdfkit/-/pdfkit-0.13.0.tgz", "integrity": "sha512-YXeG1fml9k97YNC9K8e292Pj2JzGt9uOIiBFuQFxHsdQ45BlxW+JU3RQK6JAvXU7kjhjP8rCcYvpk36JLD33sQ==", - "requires": { + "dependencies": { "@foliojs-fork/fontkit": "^1.9.1", "@foliojs-fork/linebreak": "^1.1.1", "crypto-js": "^4.0.0", "png-js": "^1.0.0" } }, - "@foliojs-fork/restructure": { + "node_modules/@foliojs-fork/restructure": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz", "integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==" }, - "@fortawesome/angular-fontawesome": { + "node_modules/@fortawesome/angular-fontawesome": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.10.2.tgz", "integrity": "sha512-VxsCAo2lK74KwD236AKAhGpiethfz9yqCViIG2iRAZqgNmuZ6ihwumjbLW32n6hV4fFvCqLcHmpngoEl3TNiOg==", - "requires": { + "dependencies": { "tslib": "^2.3.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1.2.27 || ~1.3.0-beta2 || ^6.1.0" } }, - "@fortawesome/fontawesome-common-types": { + "node_modules/@fortawesome/fontawesome-common-types": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz", - "integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==" + "integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } }, - "@fortawesome/fontawesome-svg-core": { + "node_modules/@fortawesome/fontawesome-svg-core": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz", "integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==", - "requires": { + "hasInstallScript": true, + "dependencies": { "@fortawesome/fontawesome-common-types": "6.2.1" + }, + "engines": { + "node": ">=6" } }, - "@fortawesome/free-solid-svg-icons": { + "node_modules/@fortawesome/free-solid-svg-icons": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.2.1.tgz", "integrity": "sha512-oKuqrP5jbfEPJWTij4sM+/RvgX+RMFwx3QZCZcK9PrBDgxC35zuc7AOFsyMjMd/PIFPeB2JxyqDr5zs/DZFPPw==", - "requires": { + "hasInstallScript": true, + "dependencies": { "@fortawesome/fontawesome-common-types": "6.2.1" + }, + "engines": { + "node": ">=6" } }, - "@gar/promisify": { + "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, - "@humanwhocodes/config-array": { + "node_modules/@humanwhocodes/config-array": { "version": "0.11.7", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, - "requires": { + "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "@humanwhocodes/module-importer": { + "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 + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, - "@humanwhocodes/object-schema": { + "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "@istanbuljs/load-nyc-config": { + "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "requires": { + "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" } }, - "@istanbuljs/schema": { + "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "@jridgewell/gen-mapping": { + "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "requires": { + "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" } }, - "@jridgewell/resolve-uri": { + "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/set-array": { + "node_modules/@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/source-map": { + "node_modules/@jridgewell/source-map": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" - }, + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@jridgewell/sourcemap-codec": { + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, - "@jridgewell/trace-mapping": { + "node_modules/@jridgewell/trace-mapping": { "version": "0.3.17", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "requires": { + "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@ng-bootstrap/ng-bootstrap": { + "node_modules/@ng-bootstrap/ng-bootstrap": { "version": "12.1.2", "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-12.1.2.tgz", "integrity": "sha512-p27c+mYVdHiJMYrj5hwClVJxLdiZxafAqlbw1sdJh2xJ1rGOe+H/kCf5YDRbhlHqRN+34Gr0RQqIUeD1I2V8hg==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0", + "@angular/core": "^13.0.0", + "@angular/forms": "^13.0.0", + "@angular/localize": "^13.0.0", + "@popperjs/core": "^2.10.2", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "@ng-select/ng-select": { + "node_modules/@ng-select/ng-select": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/@ng-select/ng-select/-/ng-select-8.3.0.tgz", "integrity": "sha512-AwAuDs+86++D2kEsik2/ZiQuRk0khd1HESofOm1yMBwbzsw+xLSyVOMml/OehDFSOxli7fAkk07wYtzAhxSB3Q==", - "requires": { + "dependencies": { "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.20.0", + "npm": ">= 6.0.0" + }, + "peerDependencies": { + "@angular/common": ">=13.0.0 <14.0.0", + "@angular/core": ">=13.0.0 <14.0.0", + "@angular/forms": ">=13.0.0 <14.0.0" } }, - "@ngtools/webpack": { + "node_modules/@ngtools/webpack": { "version": "13.3.10", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.10.tgz", "integrity": "sha512-QQ8ELLqW5PtvrEAMt99D0s982NW303k8UpZrQoQ9ODgnSVDMdbbzFPNTXq/20dg+nbp8nlOakUrkjB47TBwTNA==", - "dev": true + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0", + "typescript": ">=4.4.3 <4.7", + "webpack": "^5.30.0" + } }, - "@ngx-translate/core": { + "node_modules/@ngx-translate/core": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz", "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": ">=13.0.0", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "@ngx-translate/http-loader": { + "node_modules/@ngx-translate/http-loader": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-7.0.0.tgz", "integrity": "sha512-j+NpXXlcGVdyUNyY/qsJrqqeAdJdizCd+GKh3usXExSqy1aE9866jlAIL+xrfDU4w+LiMoma5pgE4emvFebZmA==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=13.0.0", + "@ngx-translate/core": ">=14.0.0", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "@nodelib/fs.scandir": { + "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==", - "requires": { + "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@nodelib/fs.stat": { + "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==" + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } }, - "@nodelib/fs.walk": { + "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==", - "requires": { + "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@npmcli/fs": { + "node_modules/@npmcli/fs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, - "requires": { + "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" - }, + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@npmcli/git": { + "node_modules/@npmcli/git": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, - "requires": { + "dependencies": { "@npmcli/promise-spawn": "^1.3.2", "lru-cache": "^6.0.0", "mkdirp": "^1.0.4", @@ -2421,329 +3504,414 @@ "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" - }, + } + }, + "node_modules/@npmcli/git/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@npmcli/installed-package-contents": { + "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, - "requires": { + "dependencies": { "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" } }, - "@npmcli/move-file": { + "node_modules/@npmcli/move-file": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, - "requires": { + "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" } }, - "@npmcli/node-gyp": { + "node_modules/@npmcli/node-gyp": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, - "@npmcli/promise-spawn": { + "node_modules/@npmcli/promise-spawn": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, - "requires": { + "dependencies": { "infer-owner": "^1.0.4" } }, - "@npmcli/run-script": { + "node_modules/@npmcli/run-script": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", "dev": true, - "requires": { + "dependencies": { "@npmcli/node-gyp": "^1.0.2", "@npmcli/promise-spawn": "^1.3.2", "node-gyp": "^8.2.0", "read-package-json-fast": "^2.0.1" } }, - "@nrwl/cli": { + "node_modules/@nrwl/cli": { "version": "15.2.4", "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.2.4.tgz", "integrity": "sha512-Urhkzj/hzhTlJqOHFZyibYGjvzHvSQhkjN3keHiYCNEOaAGp9DPF+oC5cYrPcqWbu3ZkldDWTk7aVBbeqwDWZQ==", "dev": true, - "requires": { + "dependencies": { + "nx": "15.2.4" + } + }, + "node_modules/@nrwl/cli/node_modules/@nrwl/tao": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.2.4.tgz", + "integrity": "sha512-ebGJCkg84yfptuNhGMnIrgHvnknJkeyxWLqRQ7AlMXTzxXOfMS+whjVImM9XjfVYVpBVFWc5QBU5gaKQtzLHmA==", + "dev": true, + "dependencies": { "nx": "15.2.4" }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/cli/node_modules/@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, "dependencies": { - "@nrwl/tao": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.2.4.tgz", - "integrity": "sha512-ebGJCkg84yfptuNhGMnIrgHvnknJkeyxWLqRQ7AlMXTzxXOfMS+whjVImM9XjfVYVpBVFWc5QBU5gaKQtzLHmA==", - "dev": true, - "requires": { - "nx": "15.2.4" - } - }, - "@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.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 - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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 - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "nx": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-15.2.4.tgz", - "integrity": "sha512-8rTLo5WGmM6hEo5R/u03Jllkyj4vIUbBk2MRAppCvVRXWLS4xJUEOityXJ5BAvaKoLYm6sWUP1gqU7xlldnT5A==", - "dev": true, - "requires": { - "@nrwl/cli": "15.2.4", - "@nrwl/tao": "15.2.4", - "@parcel/watcher": "2.0.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.18", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.0.0", - "chalk": "4.1.0", - "chokidar": "^3.5.1", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^7.0.2", - "dotenv": "~10.0.0", - "enquirer": "~2.3.6", - "fast-glob": "3.2.7", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^10.1.0", - "glob": "7.1.4", - "ignore": "^5.0.4", - "js-yaml": "4.1.0", - "jsonc-parser": "3.2.0", - "minimatch": "3.0.5", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "semver": "7.3.4", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^3.9.0", - "tslib": "^2.3.0", - "v8-compile-cache": "2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, - "dependencies": { - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "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" - } + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@nrwl/cli/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/@nrwl/cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@nrwl/cli/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "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/@nrwl/cli/node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nrwl/cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@nrwl/cli/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/@nrwl/cli/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/@nrwl/cli/node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nrwl/cli/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@nrwl/cli/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/@nrwl/cli/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/@nrwl/cli/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@nrwl/cli/node_modules/nx": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/nx/-/nx-15.2.4.tgz", + "integrity": "sha512-8rTLo5WGmM6hEo5R/u03Jllkyj4vIUbBk2MRAppCvVRXWLS4xJUEOityXJ5BAvaKoLYm6sWUP1gqU7xlldnT5A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nrwl/cli": "15.2.4", + "@nrwl/tao": "15.2.4", + "@parcel/watcher": "2.0.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "^3.0.0-rc.18", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.0.0", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^3.9.0", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "nx": "bin/nx.js" + }, + "peerDependencies": { + "@swc-node/register": "^1.4.2", + "@swc/core": "^1.2.173" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } + "@swc/core": { + "optional": true } } }, - "@nrwl/devkit": { + "node_modules/@nrwl/cli/node_modules/nx/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@nrwl/cli/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/cli/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/@nrwl/cli/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/@nrwl/devkit": { "version": "13.1.3", "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.1.3.tgz", "integrity": "sha512-TAAsZJvVc/obeH0rZKY6miVhyM2GHGb8qIWp9MAIdLlXf4VDcNC7rxwb5OrGVSwuTTjqGYBGPUx0yEogOOJthA==", "dev": true, - "requires": { + "dependencies": { "@nrwl/tao": "13.1.3", "ejs": "^3.1.5", "ignore": "^5.0.4", "rxjs": "^6.5.4", "semver": "7.3.4", "tslib": "^2.0.0" + } + }, + "node_modules/@nrwl/devkit/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nrwl/devkit/node_modules/rxjs/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/@nrwl/devkit/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@nrwl/tao": { + "node_modules/@nrwl/tao": { "version": "13.1.3", "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.1.3.tgz", "integrity": "sha512-/IwJgSgCBD1SaF+n8RuXX2OxDAh8ut/+P8pMswjm8063ac30UlAHjQ4XTYyskLH8uoUmNi2hNaGgHUrkwt7tQA==", "dev": true, - "requires": { + "dependencies": { "chalk": "4.1.0", "enquirer": "~2.3.6", "fs-extra": "^9.1.0", @@ -2756,379 +3924,437 @@ "tslib": "^2.0.0", "yargs-parser": "20.0.0" }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/tao/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": { - "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.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "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 - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "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 - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "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" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "yargs-parser": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", - "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nrwl/tao/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "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/@nrwl/tao/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/@nrwl/tao/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/@nrwl/tao/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/tao/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/@nrwl/tao/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nrwl/tao/node_modules/rxjs/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/@nrwl/tao/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/tao/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/@nrwl/tao/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/@nrwl/tao/node_modules/yargs-parser": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", + "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", + "dev": true, + "engines": { + "node": ">=10" } }, - "@parcel/watcher": { + "node_modules/@parcel/watcher": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", "dev": true, - "requires": { + "hasInstallScript": true, + "dependencies": { "node-addon-api": "^3.2.1", "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "@popperjs/core": { + "node_modules/@popperjs/core": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } }, - "@schematics/angular": { + "node_modules/@schematics/angular": { "version": "13.3.10", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.10.tgz", "integrity": "sha512-sw6K8YihfcqNyfa2/65ACPixZHQJRBw1aNm8w0DRGFyO3aXRe9G5X23MkCMLH+63oK9R1cK63/fZ8zqfdSq7zA==", "dev": true, - "requires": { + "dependencies": { "@angular-devkit/core": "13.3.10", "@angular-devkit/schematics": "13.3.10", "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "@socket.io/component-emitter": { + "node_modules/@socket.io/component-emitter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, - "@tootallnate/once": { + "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6" + } }, - "@ts-morph/common": { + "node_modules/@ts-morph/common": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.12.3.tgz", "integrity": "sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w==", - "requires": { + "dependencies": { "fast-glob": "^3.2.7", "minimatch": "^3.0.4", "mkdirp": "^1.0.4", "path-browserify": "^1.0.1" } }, - "@types/body-parser": { + "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, - "requires": { + "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "@types/bonjour": { + "node_modules/@types/bonjour": { "version": "3.5.10", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/connect": { + "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/connect-history-api-fallback": { + "node_modules/@types/connect-history-api-fallback": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", "dev": true, - "requires": { + "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, - "@types/cookie": { + "node_modules/@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, - "@types/cors": { + "node_modules/@types/cors": { "version": "2.8.13", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/eslint": { + "node_modules/@types/eslint": { "version": "8.4.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dev": true, - "requires": { + "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "@types/eslint-scope": { + "node_modules/@types/eslint-scope": { "version": "3.7.4", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, - "requires": { + "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, - "@types/estree": { + "node_modules/@types/estree": { "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, - "@types/express": { + "node_modules/@types/express": { "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": { + "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, - "@types/express-serve-static-core": { + "node_modules/@types/express-serve-static-core": { "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": { + "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" } }, - "@types/http-proxy": { + "node_modules/@types/http-proxy": { "version": "1.17.9", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/jasmine": { + "node_modules/@types/jasmine": { "version": "3.10.7", "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.7.tgz", "integrity": "sha512-brLuHhITMz4YV2IxLstAJtyRJgtWfLqFKiqiJFvFWMSmydpAmn42CE4wfw7ywkSk02UrufhtzipTcehk8FctoQ==", "dev": true }, - "@types/json-schema": { + "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 }, - "@types/json5": { + "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@types/mime": { + "node_modules/@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, - "@types/node": { + "node_modules/@types/node": { "version": "12.20.55", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "@types/parse-json": { + "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, - "@types/q": { + "node_modules/@types/q": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==", "dev": true }, - "@types/qs": { + "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, - "@types/range-parser": { + "node_modules/@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, - "@types/retry": { + "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "@types/selenium-webdriver": { + "node_modules/@types/selenium-webdriver": { "version": "3.0.20", "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz", "integrity": "sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==", "dev": true }, - "@types/serve-index": { + "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, - "requires": { + "dependencies": { "@types/express": "*" } }, - "@types/serve-static": { + "node_modules/@types/serve-static": { "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": { + "dependencies": { "@types/mime": "*", "@types/node": "*" } }, - "@types/sockjs": { + "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/ws": { + "node_modules/@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@typescript-eslint/eslint-plugin": { + "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/scope-manager": "5.17.0", "@typescript-eslint/type-utils": "5.17.0", "@typescript-eslint/utils": "5.17.0", @@ -3139,72 +4365,146 @@ "semver": "^7.3.5", "tsutils": "^3.21.0" }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.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 } } }, - "@typescript-eslint/experimental-utils": { + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/experimental-utils": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/utils": "5.17.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" } }, - "@typescript-eslint/parser": { + "node_modules/@typescript-eslint/parser": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/scope-manager": "5.17.0", "@typescript-eslint/types": "5.17.0", "@typescript-eslint/typescript-estree": "5.17.0", "debug": "^4.3.2" + }, + "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 + } } }, - "@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/types": "5.17.0", "@typescript-eslint/visitor-keys": "5.17.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@typescript-eslint/type-utils": { + "node_modules/@typescript-eslint/type-utils": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/utils": "5.17.0", "debug": "^4.3.2", "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 + } } }, - "@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", - "dev": true + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, - "@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/types": "5.17.0", "@typescript-eslint/visitor-keys": "5.17.0", "debug": "^4.3.2", @@ -3213,155 +4513,200 @@ "semver": "^7.3.5", "tsutils": "^3.21.0" }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "@typescript-eslint/utils": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/utils": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", "dev": true, - "requires": { + "dependencies": { "@types/json-schema": "^7.0.9", "@typescript-eslint/scope-manager": "5.17.0", "@typescript-eslint/types": "5.17.0", "@typescript-eslint/typescript-estree": "5.17.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" } }, - "@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/types": "5.17.0", "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@webassemblyjs/ast": { + "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/helper-numbers": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, - "@webassemblyjs/floating-point-hex-parser": { + "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, - "@webassemblyjs/helper-api-error": { + "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, - "@webassemblyjs/helper-buffer": { + "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true }, - "@webassemblyjs/helper-numbers": { + "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/helper-wasm-bytecode": { + "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { + "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1" } }, - "@webassemblyjs/ieee754": { + "node_modules/@webassemblyjs/ieee754": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, - "requires": { + "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, - "@webassemblyjs/leb128": { + "node_modules/@webassemblyjs/leb128": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, - "requires": { + "dependencies": { "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/utf8": { + "node_modules/@webassemblyjs/utf8": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, - "@webassemblyjs/wasm-edit": { + "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", @@ -3372,12 +4717,12 @@ "@webassemblyjs/wast-printer": "1.11.1" } }, - "@webassemblyjs/wasm-gen": { + "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/ieee754": "1.11.1", @@ -3385,24 +4730,24 @@ "@webassemblyjs/utf8": "1.11.1" } }, - "@webassemblyjs/wasm-opt": { + "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1" } }, - "@webassemblyjs/wasm-parser": { + "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", @@ -3411,640 +4756,901 @@ "@webassemblyjs/utf8": "1.11.1" } }, - "@webassemblyjs/wast-printer": { + "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, - "@xtuc/ieee754": { + "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "@xtuc/long": { + "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "@yarnpkg/lockfile": { + "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "@yarnpkg/parsers": { + "node_modules/@yarnpkg/parsers": { "version": "3.0.0-rc.32", "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.32.tgz", "integrity": "sha512-Sz2g88b3iAu2jpMnhtps2bRX2GAAOvanOxGcVi+o7ybGjLetxK23o2cHskXKypvXxtZTsJegel5pUWSPpYphww==", "dev": true, - "requires": { + "dependencies": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.15.0" } }, - "abab": { + "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, - "abbrev": { + "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "accepts": { + "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { + "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-import-assertions": { + "node_modules/acorn-import-assertions": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "peerDependencies": { + "acorn": "^8" + } }, - "acorn-jsx": { + "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "acorn-node": { + "node_modules/acorn-node": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "requires": { + "dependencies": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", "xtend": "^4.0.2" } }, - "acorn-walk": { + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } }, - "adjust-sourcemap-loader": { + "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, "dependencies": { - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "adm-zip": { + "node_modules/adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.3.0" + } }, - "agent-base": { + "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "requires": { + "dependencies": { "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "agentkeepalive": { + "node_modules/agentkeepalive": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "depd": "^1.1.2", "humanize-ms": "^1.2.1" }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - } + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/agentkeepalive/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "aggregate-error": { + "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "requires": { + "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "requires": { + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ajv-formats": { + "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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" } }, - "ajv-keywords": { + "node_modules/ajv-formats/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==" + }, + "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "amdefine": { + "node_modules/amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "optional": true + "optional": true, + "engines": { + "node": ">=0.4.2" + } }, - "angular-gridster2": { + "node_modules/angular-gridster2": { "version": "13.3.0", "resolved": "https://registry.npmjs.org/angular-gridster2/-/angular-gridster2-13.3.0.tgz", "integrity": "sha512-t7yN2MFiGsD0vC/Qg/5DcJ1Q+KCAFMgEqYUZjrydH3hM4HG0lcTFGvlTfkBC9HSXZOimW8LLQPRzXEen518udw==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0", + "@angular/core": "^13.0.0" } }, - "ansi-colors": { + "node_modules/ansi-colors": { "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==" + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } }, - "ansi-escapes": { + "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "requires": { + "dependencies": { "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ansi-gray": { + "node_modules/ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", - "requires": { + "dependencies": { "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "ansi-html-community": { + "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "ansi-wrap": { + "node_modules/ansi-wrap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==" + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "engines": { + "node": ">=0.10.0" + } }, - "anymatch": { + "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "apache-crypt": { + "node_modules/apache-crypt": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.6.tgz", "integrity": "sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==", - "requires": { + "dependencies": { "unix-crypt-td-js": "^1.1.4" + }, + "engines": { + "node": ">=8" } }, - "apache-md5": { + "node_modules/apache-md5": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz", - "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==" + "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==", + "engines": { + "node": ">=8" + } }, - "app-root-path": { + "node_modules/app-root-path": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6.0.0" + } }, - "aproba": { + "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, - "are-we-there-yet": { + "node_modules/are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, - "requires": { + "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "arg": { + "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "argparse": { + "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, - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "aria-query": { + "node_modules/aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" } }, - "array-flatten": { + "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, - "array-from": { + "node_modules/array-from": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==" }, - "array-union": { + "node_modules/array-union": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "array-uniq": { + "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "arrify": { + "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "asn1": { + "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": "~2.1.0" } }, - "assert-plus": { + "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "ast-transform": { + "node_modules/ast-transform": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", "integrity": "sha512-e/JfLiSoakfmL4wmTGPjv0HpTICVmxwXgYOB8x+mzozHL8v+dSfCbrJ8J8hJ0YBP0XcYu1aLZ6b/3TnxNK3P2A==", - "requires": { + "dependencies": { "escodegen": "~1.2.0", "esprima": "~1.0.4", "through": "~2.3.4" + } + }, + "node_modules/ast-transform/node_modules/escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha512-yLy3Cc+zAC0WSmoT2fig3J87TpQ8UaZGx8ahCAs9FL8qNbyV7CVyPKS74DG4bsHiL5ew9sxdYx131OkBQMFnvA==", + "dependencies": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" }, + "optionalDependencies": { + "source-map": "~0.1.30" + } + }, + "node_modules/ast-transform/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ast-transform/node_modules/estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ast-transform/node_modules/esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-transform/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", + "optional": true, "dependencies": { - "escodegen": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", - "integrity": "sha512-yLy3Cc+zAC0WSmoT2fig3J87TpQ8UaZGx8ahCAs9FL8qNbyV7CVyPKS74DG4bsHiL5ew9sxdYx131OkBQMFnvA==", - "requires": { - "esprima": "~1.0.4", - "estraverse": "~1.5.0", - "esutils": "~1.0.0", - "source-map": "~0.1.30" - } - }, - "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==" - }, - "estraverse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", - "integrity": "sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==" - }, - "esutils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", - "integrity": "sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==" - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" } }, - "ast-types": { + "node_modules/ast-types": { "version": "0.7.8", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", - "integrity": "sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q==" + "integrity": "sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q==", + "engines": { + "node": ">= 0.6" + } }, - "ast-types-flow": { + "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, - "async": { + "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, - "requires": { + "dependencies": { "lodash": "^4.17.14" } }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "at-least-node": { + "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } }, - "atob": { + "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } }, - "autoprefixer": { + "node_modules/autoprefixer": { "version": "10.4.13", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { "browserslist": "^4.21.4", "caniuse-lite": "^1.0.30001426", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "aws-sign2": { + "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "aws4": { + "node_modules/aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, - "axios": { + "node_modules/axios": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz", "integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==", "dev": true, - "requires": { + "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, - "axobject-query": { + "node_modules/axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", "dev": true }, - "babel-loader": { + "node_modules/babel-loader": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", "dev": true, - "requires": { + "dependencies": { "find-cache-dir": "^3.3.1", "loader-utils": "^2.0.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, "dependencies": { - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "babel-plugin-istanbul": { + "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "babel-plugin-polyfill-corejs2": { + "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "requires": { + "dependencies": { "@babel/compat-data": "^7.17.7", "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-polyfill-corejs3": { + "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "requires": { + "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.3", "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-polyfill-regenerator": { + "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "requires": { + "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "base64id": { + "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } }, - "basic-auth": { + "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "requires": { + "dependencies": { "safe-buffer": "5.1.2" }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } + "engines": { + "node": ">= 0.8" } }, - "batch": { + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, - "bcrypt-pbkdf": { + "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, - "requires": { + "dependencies": { "tweetnacl": "^0.14.3" } }, - "bcryptjs": { + "node_modules/bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" }, - "big.js": { + "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } }, - "bl": { + "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { + "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "blocking-proxy": { + "node_modules/blocking-proxy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" } }, - "body-parser": { + "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", @@ -4058,54 +5664,65 @@ "type-is": "~1.6.18", "unpipe": "1.0.0" }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - } + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "bonjour": { + "node_modules/bonjour": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", "dev": true, - "requires": { + "dependencies": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", "dns-equal": "^1.0.0", @@ -4114,176 +5731,236 @@ "multicast-dns-service-types": "^1.1.0" } }, - "boolbase": { + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "bootstrap": { + "node_modules/bootstrap": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz", - "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==" + "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.6" + } }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "brfs": { + "node_modules/brfs": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", - "requires": { + "dependencies": { "quote-stream": "^1.0.1", "resolve": "^1.1.5", "static-module": "^3.0.2", "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" } }, - "brotli": { + "node_modules/brotli": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", - "requires": { + "dependencies": { "base64-js": "^1.1.2" } }, - "browser-resolve": { + "node_modules/browser-resolve": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==" - } + "resolve": "1.1.7" } }, - "browserify-optional": { + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==" + }, + "node_modules/browserify-optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", "integrity": "sha512-VrhjbZ+Ba5mDiSYEuPelekQMfTbhcA2DhLk2VQWqdcCROWeFqlTcXZ7yfRkXCIl8E+g4gINJYJiRB7WEtfomAQ==", - "requires": { + "dependencies": { "ast-transform": "0.0.0", "ast-types": "^0.7.0", "browser-resolve": "^1.8.1" } }, - "browserslist": { + "node_modules/browserslist": { "version": "4.21.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "browserstack": { + "node_modules/browserstack": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", "dev": true, - "requires": { + "dependencies": { "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/browserstack/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/browserstack/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": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } + "ms": "^2.1.1" + } + }, + "node_modules/browserstack/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" } }, - "buffer": { + "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "buffer-equal": { + "node_modules/buffer-equal": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==" + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "engines": { + "node": ">=0.4.0" + } }, - "buffer-from": { + "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "buffer-indexof": { + "node_modules/buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, - "builtin-modules": { + "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "builtins": { + "node_modules/builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", "dev": true }, - "bytes": { + "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "cacache": { + "node_modules/cacache": { "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, - "requires": { + "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", @@ -4302,65 +5979,93 @@ "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" } }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "callsite": { + "node_modules/callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==" + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "engines": { + "node": "*" + } }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } }, - "camelcase": { + "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "caniuse-lite": { + "node_modules/caniuse-lite": { "version": "1.0.30001436", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", - "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==" + "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, - "caseless": { + "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "chardet": { + "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "cheerio": { + "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "requires": { + "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", @@ -4369,125 +6074,182 @@ "parse5": "^7.0.0", "parse5-htmlparser2-tree-adapter": "^7.0.0" }, - "dependencies": { - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "requires": { - "entities": "^4.4.0" - } - } + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "cheerio-select": { + "node_modules/cheerio-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "requires": { + "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "chokidar": { + "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "chownr": { + "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "chrome-trace-event": { + "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0" + } }, - "circular-dependency-plugin": { + "node_modules/circular-dependency-plugin": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.1" + } }, - "clean-stack": { + "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "cli-cursor": { + "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { + "dependencies": { "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, - "cli-spinners": { + "node_modules/cli-spinners": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "cli-width": { + "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 10" + } }, - "cliui": { + "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { + "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "clone": { + "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } }, - "clone-deep": { + "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "requires": { + "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "code-block-writer": { + "node_modules/code-block-writer": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz", "integrity": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==" }, - "codelyzer": { + "node_modules/codelyzer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.2.tgz", "integrity": "sha512-v3+E0Ucu2xWJMOJ2fA/q9pDT/hlxHftHGPUay1/1cTgyPV5JTHFdO9hqo837Sx2s9vKBMTt5gO+lhF95PO6J+g==", "dev": true, - "requires": { + "dependencies": { "@angular/compiler": "9.0.0", "@angular/core": "9.0.0", "app-root-path": "^3.0.0", @@ -4503,143 +6265,175 @@ "tslib": "^1.10.0", "zone.js": "~0.10.3" }, + "peerDependencies": { + "@angular/compiler": ">=2.3.1 <13.0.0 || ^12.0.0-next || ^12.1.0-next || ^12.2.0-next", + "@angular/core": ">=2.3.1 <13.0.0 || ^12.0.0-next || ^12.1.0-next || ^12.2.0-next", + "tslint": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/codelyzer/node_modules/@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true, + "peerDependencies": { + "tslib": "^1.10.0" + } + }, + "node_modules/codelyzer/node_modules/@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true, + "peerDependencies": { + "rxjs": "^6.5.3", + "tslib": "^1.10.0", + "zone.js": "~0.10.2" + } + }, + "node_modules/codelyzer/node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha512-majUxHgLehQTeSA+hClx+DY09OVUqG3GtezWkF1krgLGNdlDu9l9V8DaqNMWbq4Eddc8wsyDA0hpDUtnYxQEXw==", + "dev": true, "dependencies": { - "@angular/compiler": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", - "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", - "dev": true - }, - "@angular/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", - "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", - "dev": true - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha512-majUxHgLehQTeSA+hClx+DY09OVUqG3GtezWkF1krgLGNdlDu9l9V8DaqNMWbq4Eddc8wsyDA0hpDUtnYxQEXw==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", - "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", - "dev": true - } + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/codelyzer/node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7" + } + }, + "node_modules/codelyzer/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/codelyzer/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/codelyzer/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "color-convert": { + "node_modules/codelyzer/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/codelyzer/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/codelyzer/node_modules/zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", + "dev": true + }, + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, - "color-support": { + "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } }, - "colorette": { + "node_modules/colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, - "colors": { + "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "engines": { + "node": ">=0.1.90" + } }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "requires": { + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "commander": { + "node_modules/commander": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "engines": { + "node": "^12.20.0 || >=14" + } }, - "commondir": { + "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "compressible": { + "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "requires": { + "dependencies": { "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "compression": { + "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", @@ -4648,160 +6442,178 @@ "safe-buffer": "5.1.2", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "ms": "2.0.0" } }, - "concat-map": { + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "concat-stream": { + "node_modules/concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { + "engines": [ + "node >= 0.8" + ], + "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" - }, + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "connect": { + "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "requires": { + "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "engines": { + "node": ">= 0.10.0" } }, - "connect-history-api-fallback": { + "node_modules/connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "console-control-strings": { + "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, - "content-disposition": { + "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "content-type": { + "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "convert-source-map": { + "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, - "cookie": { + "node_modules/cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "cookie-signature": { + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, - "copy-anything": { + "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, - "requires": { + "dependencies": { "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, - "copy-webpack-plugin": { + "node_modules/copy-webpack-plugin": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", "dev": true, - "requires": { + "dependencies": { "fast-glob": "^3.2.7", "glob-parent": "^6.0.1", "globby": "^12.0.2", @@ -4809,273 +6621,387 @@ "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, "dependencies": { - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } + "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/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "core-js": { + "node_modules/copy-webpack-plugin/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/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/core-js": { "version": "3.20.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", - "dev": true + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "core-js-compat": { + "node_modules/core-js-compat": { "version": "3.26.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", - "requires": { + "dependencies": { "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "core-js-pure": { + "node_modules/core-js-pure": { "version": "3.26.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", - "dev": true + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "cors": { + "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { + "dependencies": { "object-assign": "^4", "vary": "^1" + }, + "engines": { + "node": ">= 0.10" } }, - "cosmiconfig": { + "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "requires": { + "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/critters": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^4.2.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/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/critters/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/critters/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/critters/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/critters/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/critters/node_modules/dom-serializer": { + "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", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/critters/node_modules/domhandler": { + "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" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/critters/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/critters/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/critters/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/critters/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/critters/node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" } }, - "critters": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", - "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", + "node_modules/critters/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, - "requires": { - "chalk": "^4.1.0", - "css-select": "^4.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "postcss": "^8.3.7", - "pretty-bytes": "^5.3.0" - }, "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" - } - }, - "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 - }, - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "dom-serializer": { - "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", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domhandler": { - "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" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "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 - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "requires": { - "parse5": "^6.0.1" - } - }, - "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" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "crypto-js": { + "node_modules/crypto-js": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" }, - "css": { + "node_modules/css": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.4", "source-map": "^0.6.1", "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, - "css-blank-pseudo": { + "node_modules/css-blank-pseudo": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "css-has-pseudo": { + "node_modules/css-has-pseudo": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "css-loader": { + "node_modules/css-loader": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.2.15", "postcss-modules-extract-imports": "^3.0.0", @@ -5085,227 +7011,325 @@ "postcss-value-parser": "^4.1.0", "semver": "^7.3.5" }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "css-prefers-color-scheme": { + "node_modules/css-prefers-color-scheme": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true + "dev": true, + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } }, - "css-select": { + "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "requires": { + "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "css-selector-tokenizer": { + "node_modules/css-selector-tokenizer": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", "dev": true, - "requires": { + "dependencies": { "cssesc": "^3.0.0", "fastparse": "^1.1.2" } }, - "css-what": { + "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "cssauron": { + "node_modules/cssauron": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", "integrity": "sha512-Ht70DcFBh+/ekjVrYS2PlDMdSQEl3OFNmjK6lcn49HptBgilXf/Zwg4uFh9Xn0pX3Q8YOkSjIFOfK2osvdqpBw==", "dev": true, - "requires": { + "dependencies": { "through": "X.X.X" } }, - "cssdb": { + "node_modules/cssdb": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", "dev": true }, - "cssesc": { + "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } }, - "custom-event": { + "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "d": { + "node_modules/d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { + "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" } }, - "damerau-levenshtein": { + "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "dash-ast": { + "node_modules/dash-ast": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==" }, - "dashdash": { + "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, - "requires": { + "dependencies": { "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" } }, - "date-format": { + "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "debug": { + "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decache": { + "node_modules/decache": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.1.tgz", "integrity": "sha512-ohApBM8u9ygepJCjgBrEZSSxPjc0T/PJkD+uNyxXPkqudyUpdXpwJYp0VISm2WrPVzASU6DZyIi6BWdyw7uJ2Q==", - "requires": { + "dependencies": { "callsite": "^1.0.0" } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "decode-uri-component": { + "node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "deep-equal": { + "node_modules/deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { + "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", "is-regex": "^1.0.4", "object-is": "^1.0.1", "object-keys": "^1.1.1", "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "deep-is": { + "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, - "default-gateway": { + "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, - "requires": { + "dependencies": { "execa": "^5.0.0" }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - } + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" } }, - "defaults": { + "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "requires": { + "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "define-lazy-prop": { + "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "requires": { + "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "del": { + "node_modules/del": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dev": true, - "requires": { + "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", @@ -5315,319 +7339,397 @@ "rimraf": "^3.0.2", "slash": "^3.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "delayed-stream": { + "node_modules/del/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "delegates": { + "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, - "depd": { + "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } }, - "dependency-graph": { + "node_modules/dependency-graph": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true + "engines": { + "node": ">= 0.6.0" + } }, - "destroy": { + "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, - "detect-it": { + "node_modules/detect-it": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/detect-it/-/detect-it-4.0.1.tgz", "integrity": "sha512-dg5YBTJYvogK1+dA2mBUDKzOWfYZtHVba89SyZUhc4+e3i2tzgjANFg5lDRCd3UOtRcw00vUTMK8LELcMdicug==" }, - "detect-node": { + "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "detect-passive-events": { + "node_modules/detect-passive-events": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-passive-events/-/detect-passive-events-2.0.3.tgz", "integrity": "sha512-QN/1X65Axis6a9D8qg8Py9cwY/fkWAmAH/edTbmLMcv4m5dboLJ7LcAi8CfaCON2tjk904KwKX/HTdsHC6yeRg==", - "requires": { + "dependencies": { "detect-it": "^4.0.1" } }, - "dexie": { + "node_modules/dexie": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/dexie/-/dexie-3.2.2.tgz", - "integrity": "sha512-q5dC3HPmir2DERlX+toCBbHQXW5MsyrFqPFcovkH9N2S/UW/H3H5AWAB6iEOExeraAu+j+zRDG+zg/D7YhH0qg==" + "integrity": "sha512-q5dC3HPmir2DERlX+toCBbHQXW5MsyrFqPFcovkH9N2S/UW/H3H5AWAB6iEOExeraAu+j+zRDG+zg/D7YhH0qg==", + "engines": { + "node": ">=6.0" + } }, - "dfa": { + "node_modules/dfa": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" }, - "di": { + "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "diff": { + "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, - "dir-glob": { + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "dns-equal": { + "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, - "dns-packet": { + "node_modules/dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, - "requires": { + "dependencies": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" } }, - "dns-txt": { + "node_modules/dns-txt": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", "dev": true, - "requires": { + "dependencies": { "buffer-indexof": "^1.0.0" } }, - "doctrine": { + "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "requires": { + "dependencies": { "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "dom-serialize": { + "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, - "requires": { + "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", "extend": "^3.0.0", "void-elements": "^2.0.0" } }, - "dom-serializer": { + "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "requires": { + "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "domelementtype": { + "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "domhandler": { + "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { + "dependencies": { "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "dommatrix": { + "node_modules/dommatrix": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/dommatrix/-/dommatrix-1.0.3.tgz", - "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==" + "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==", + "deprecated": "dommatrix is no longer maintained. Please use @thednp/dommatrix." }, - "domutils": { + "node_modules/domutils": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "requires": { + "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "dot": { + "node_modules/dot": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.3.tgz", - "integrity": "sha512-/nt74Rm+PcfnirXGEdhZleTwGC2LMnuKTeeTIlI82xb5loBBoXNYzr2ezCroPSMtilK8EZIfcNZwOcHN+ib1Lg==" + "integrity": "sha512-/nt74Rm+PcfnirXGEdhZleTwGC2LMnuKTeeTIlI82xb5loBBoXNYzr2ezCroPSMtilK8EZIfcNZwOcHN+ib1Lg==", + "engines": [ + "node >=0.2.6" + ], + "bin": { + "dottojs": "bin/dot-packer" + } }, - "dotenv": { + "node_modules/dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "duplexer": { + "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "requires": { + "dependencies": { "readable-stream": "^2.0.2" - }, + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "ecc-jsbn": { + "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, - "requires": { + "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "ejs": { + "node_modules/ejs": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", "dev": true, - "requires": { + "dependencies": { "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, - "electron-to-chromium": { + "node_modules/electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, - "emoji-regex": { + "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==" }, - "emojis-list": { + "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } }, - "encoding": { + "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, - "requires": { + "dependencies": { "iconv-lite": "^0.6.2" } }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "engine.io": { + "node_modules/engine.io": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", "dev": true, - "requires": { + "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", @@ -5639,118 +7741,162 @@ "engine.io-parser": "~5.0.3", "ws": "~8.2.3" }, - "dependencies": { - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true - } + "engines": { + "node": ">=10.0.0" } }, - "engine.io-parser": { + "node_modules/engine.io-parser": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "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 + } + } }, - "enhanced-resolve": { + "node_modules/enhanced-resolve": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "enquirer": { + "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, - "requires": { + "dependencies": { "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" } }, - "ent": { + "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, - "entities": { + "node_modules/entities": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "env-paths": { + "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "err-code": { + "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, - "errno": { + "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, - "requires": { + "dependencies": { "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" } }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "es-module-lexer": { + "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==", "dev": true }, - "es5-ext": { + "node_modules/es5-ext": { "version": "0.10.62", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "requires": { + "hasInstallScript": true, + "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "es6-iterator": { + "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { + "dependencies": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" } }, - "es6-map": { + "node_modules/es6-map": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", - "requires": { + "dependencies": { "d": "1", "es5-ext": "~0.10.14", "es6-iterator": "~2.0.1", @@ -5759,26 +7905,26 @@ "event-emitter": "~0.3.5" } }, - "es6-promise": { + "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, - "es6-promisify": { + "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", "dev": true, - "requires": { + "dependencies": { "es6-promise": "^4.0.3" } }, - "es6-set": { + "node_modules/es6-set": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", - "requires": { + "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", "es6-iterator": "~2.0.3", @@ -5786,203 +7932,397 @@ "event-emitter": "^0.3.5", "type": "^2.7.2" }, - "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - } + "engines": { + "node": ">=0.12" } }, - "es6-symbol": { + "node_modules/es6-set/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { + "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" } }, - "esbuild-android-arm64": { + "node_modules/esbuild-android-arm64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz", "integrity": "sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-darwin-64": { + "node_modules/esbuild-darwin-64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz", "integrity": "sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-darwin-arm64": { + "node_modules/esbuild-darwin-arm64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz", "integrity": "sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-freebsd-64": { + "node_modules/esbuild-freebsd-64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz", "integrity": "sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-freebsd-arm64": { + "node_modules/esbuild-freebsd-arm64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz", "integrity": "sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-32": { + "node_modules/esbuild-linux-32": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz", "integrity": "sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg==", + "cpu": [ + "ia32" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-64": { + "node_modules/esbuild-linux-64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-arm": { + "node_modules/esbuild-linux-arm": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz", "integrity": "sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g==", + "cpu": [ + "arm" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-arm64": { + "node_modules/esbuild-linux-arm64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz", "integrity": "sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-mips64le": { + "node_modules/esbuild-linux-mips64le": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz", "integrity": "sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ==", + "cpu": [ + "mips64el" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-ppc64le": { + "node_modules/esbuild-linux-ppc64le": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz", "integrity": "sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng==", + "cpu": [ + "ppc64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-riscv64": { + "node_modules/esbuild-linux-riscv64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz", "integrity": "sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ==", + "cpu": [ + "riscv64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-linux-s390x": { + "node_modules/esbuild-linux-s390x": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz", "integrity": "sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw==", + "cpu": [ + "s390x" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-netbsd-64": { + "node_modules/esbuild-netbsd-64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz", "integrity": "sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-openbsd-64": { + "node_modules/esbuild-openbsd-64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz", "integrity": "sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-sunos-64": { + "node_modules/esbuild-sunos-64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz", "integrity": "sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-wasm": { + "node_modules/esbuild-wasm": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==", - "dev": true + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } }, - "esbuild-windows-32": { + "node_modules/esbuild-windows-32": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz", "integrity": "sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg==", + "cpu": [ + "ia32" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-windows-64": { + "node_modules/esbuild-windows-64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz", "integrity": "sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "esbuild-windows-arm64": { + "node_modules/esbuild-windows-arm64": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz", "integrity": "sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "escalade": { + "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } }, - "escape-html": { + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, - "escape-string-regexp": { + "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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } }, - "escodegen": { + "node_modules/escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { + "dependencies": { "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "optionator": "^0.8.1" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "eslint": { + "node_modules/eslint": { "version": "8.29.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", "dev": true, - "requires": { + "dependencies": { "@eslint/eslintrc": "^1.3.3", "@humanwhocodes/config-array": "^0.11.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -6023,338 +8363,452 @@ "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "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" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "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-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", - "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 - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "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-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "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 - } + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-scope": { + "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "requires": { + "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "eslint-utils": { + "node_modules/eslint-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "requires": { + "dependencies": { "eslint-visitor-keys": "^2.0.0" }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" } }, - "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/eslint/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/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/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/eslint/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/eslint/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 }, - "espree": { + "node_modules/eslint/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/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/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/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, - "requires": { + "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, - "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - } + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "esprima": { + "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==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "esquery": { + "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.1.0" }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.2.0" }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "engines": { + "node": ">=4.0" } }, - "estraverse": { + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } }, - "estree-is-function": { + "node_modules/estree-is-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==" }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } }, - "event-emitter": { + "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "requires": { + "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, - "event-stream": { + "node_modules/event-stream": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "requires": { + "dependencies": { "duplexer": "^0.1.1", "from": "^0.1.7", "map-stream": "0.0.7", @@ -6364,29 +8818,32 @@ "through": "^2.3.8" } }, - "eventemitter-asyncresource": { + "node_modules/eventemitter-asyncresource": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "events": { + "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.x" + } }, - "execa": { + "node_modules/execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "requires": { + "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", "human-signals": "^1.1.1", @@ -6396,20 +8853,29 @@ "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "exit": { + "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "express": { + "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.1", @@ -6442,226 +8908,263 @@ "utils-merge": "1.0.1", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "ext": { + "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "requires": { - "type": "^2.7.2" - }, "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - } + "type": "^2.7.2" } }, - "extend": { + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "external-editor": { + "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "requires": { + "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "extsprintf": { + "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true + "dev": true, + "engines": [ + "node >=0.6.0" + ] }, - "fancy-log": { + "node_modules/fancy-log": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz", "integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==", - "requires": { + "dependencies": { "color-support": "^1.1.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-glob": { + "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "requires": { + "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" } }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, - "fastparse": { + "node_modules/fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, - "fastq": { + "node_modules/fastq": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", - "requires": { + "dependencies": { "reusify": "^1.0.4" } }, - "faye-websocket": { + "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { + "dependencies": { "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "figures": { + "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "requires": { + "dependencies": { "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "file-entry-cache": { + "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "requires": { + "dependencies": { "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "filelist": { + "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, - "requires": { + "dependencies": { "minimatch": "^5.0.1" - }, + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "fill-range": { + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -6670,179 +9173,247 @@ "statuses": "~1.5.0", "unpipe": "~1.0.0" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "ms": "2.0.0" } }, - "find-cache-dir": { + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "requires": { + "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "find-up": { + "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { + "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "findit2": { + "node_modules/findit2": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", - "integrity": "sha512-lg/Moejf4qXovVutL0Lz4IsaPoNYMuxt4PA0nGqFxnJ1CTTGGlEO2wKgoDpwknhvZ8k4Q2F+eesgkLbG2Mxfog==" + "integrity": "sha512-lg/Moejf4qXovVutL0Lz4IsaPoNYMuxt4PA0nGqFxnJ1CTTGGlEO2wKgoDpwknhvZ8k4Q2F+eesgkLbG2Mxfog==", + "engines": { + "node": ">=0.8.22" + } }, - "flat": { + "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true + "dev": true, + "bin": { + "flat": "cli.js" + } }, - "flat-cache": { + "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "requires": { + "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "flatted": { + "node_modules/flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "forever-agent": { + "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "form-data": { + "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, - "requires": { + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "forwarded": { + "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fraction.js": { + "node_modules/fraction.js": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } }, - "from": { + "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==" }, - "fs-constants": { + "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fs-extra": { + "node_modules/fs-extra": { "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==", - "requires": { + "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "fs-minipass": { + "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "fs-monkey": { + "node_modules/fs-monkey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "fsevents": { + "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "functional-red-black-tree": { + "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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, - "functions-have-names": { + "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==" + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gauge": { + "node_modules/gauge": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, - "requires": { + "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", @@ -6851,567 +9422,734 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "gensync": { + "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==" + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } }, - "get-assigned-identifiers": { + "node_modules/get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-package-type": { + "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.0.0" + } }, - "get-stream": { + "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { + "dependencies": { "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "getpass": { + "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, - "requires": { + "dependencies": { "assert-plus": "^1.0.0" } }, - "glob": { + "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "glob-to-regexp": { + "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "globals": { + "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==" + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } }, - "globby": { + "node_modules/globby": { "version": "12.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", "dev": true, - "requires": { + "dependencies": { "array-union": "^3.0.1", "dir-glob": "^3.0.1", "fast-glob": "^3.2.7", "ignore": "^5.1.9", "merge2": "^1.4.1", "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "graceful-fs": { + "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, - "grapheme-splitter": { + "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 }, - "handle-thing": { + "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "handlebars": { + "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "requires": { + "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.0", "source-map": "^0.6.1", - "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "har-schema": { + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "har-validator": { + "node_modules/har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dev": true, - "requires": { + "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } + "engines": { + "node": ">=6" } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-ansi": { + "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "has-flag": { + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } }, - "has-property-descriptors": { + "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==", - "requires": { + "dependencies": { "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-unicode": { + "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, - "hdr-histogram-js": { + "node_modules/hdr-histogram-js": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", "dev": true, - "requires": { + "dependencies": { "@assemblyscript/loader": "^0.10.1", "base64-js": "^1.2.0", "pako": "^1.0.3" - }, - "dependencies": { - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - } } }, - "hdr-histogram-percentiles-obj": { + "node_modules/hdr-histogram-js/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/hdr-histogram-percentiles-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", "dev": true }, - "hosted-git-info": { + "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "requires": { + "dependencies": { "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "hpack.js": { + "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" - }, + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "html-entities": { + "node_modules/html-entities": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" }, - "html-escaper": { + "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "htmlparser2": { + "node_modules/htmlparser2": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "requires": { + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "entities": "^4.3.0" } }, - "http-auth": { + "node_modules/http-auth": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-4.1.9.tgz", "integrity": "sha512-kvPYxNGc9EKGTXvOMnTBQw2RZfuiSihK/mLw/a4pbtRueTE45S55Lw/3k5CktIf7Ak0veMKEIteDj4YkNmCzmQ==", - "requires": { + "dependencies": { "apache-crypt": "^1.1.2", "apache-md5": "^1.0.6", "bcryptjs": "^2.4.3", "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" } }, - "http-auth-connect": { + "node_modules/http-auth-connect": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/http-auth-connect/-/http-auth-connect-1.0.6.tgz", - "integrity": "sha512-yaO0QSCPqGCjPrl3qEEHjJP+lwZ6gMpXLuCBE06eWwcXomkI5TARtu0kxf9teFuBj6iaV3Ybr15jaWUvbzNzHw==" + "integrity": "sha512-yaO0QSCPqGCjPrl3qEEHjJP+lwZ6gMpXLuCBE06eWwcXomkI5TARtu0kxf9teFuBj6iaV3Ybr15jaWUvbzNzHw==", + "engines": { + "node": ">=8" + } }, - "http-cache-semantics": { + "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, - "http-deceiver": { + "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, - "http-errors": { + "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { + "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" }, - "dependencies": { - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - } + "engines": { + "node": ">= 0.8" } }, - "http-parser-js": { + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, - "http-proxy": { + "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "http-proxy-agent": { + "node_modules/http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, - "requires": { + "dependencies": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "http-proxy-middleware": { + "node_modules/http-proxy-middleware": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, - "requires": { + "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, - "http-signature": { + "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, - "requires": { + "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "https-proxy-agent": { + "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==", "dev": true, - "requires": { + "dependencies": { "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "human-signals": { + "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } }, - "humanize-ms": { + "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, - "requires": { + "dependencies": { "ms": "^2.0.0" } }, - "i18next": { + "node_modules/i18next": { "version": "21.10.0", "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", - "requires": { + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { "@babel/runtime": "^7.17.2" } }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "icss-utils": { + "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "ignore": { + "node_modules/ignore": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "ignore-walk": { + "node_modules/ignore-walk": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", "dev": true, - "requires": { + "dependencies": { "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" } }, - "image-size": { + "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, - "optional": true + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } }, - "immediate": { + "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "dev": true }, - "immutable": { + "node_modules/immutable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", "dev": true }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "indent-string": { + "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "infer-owner": { + "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { + "node_modules/ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "inquirer": { + "node_modules/inquirer": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "dev": true, - "requires": { + "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", @@ -7427,676 +10165,890 @@ "strip-ansi": "^6.0.0", "through": "^2.3.6" }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/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": { - "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" - } - }, - "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": "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": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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" } }, - "inside": { + "node_modules/inside": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/inside/-/inside-1.0.0.tgz", - "integrity": "sha512-tvFwvS4g7q6iDot/4FjtWFHwwpv6TVvEumbTdLQilk1F07ojakbXPQcvf3kMAlyNDpzKRzn+d33O3RuXODuxZQ==" + "integrity": "sha512-tvFwvS4g7q6iDot/4FjtWFHwwpv6TVvEumbTdLQilk1F07ojakbXPQcvf3kMAlyNDpzKRzn+d33O3RuXODuxZQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." }, - "ip": { + "node_modules/ip": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, - "ipaddr.js": { + "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true + "dev": true, + "engines": { + "node": ">= 10" + } }, - "is-arguments": { + "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-docker": { + "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { + "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==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } }, - "is-glob": { + "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-interactive": { + "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } }, - "is-lambda": { + "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } }, - "is-path-cwd": { + "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "is-path-in-cwd": { + "node_modules/is-path-in-cwd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, - "requires": { + "dependencies": { "is-path-inside": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, "dependencies": { - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - } + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-path-inside": { + "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-plain-obj": { + "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-plain-object": { + "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "requires": { + "dependencies": { "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-stream": { + "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-typedarray": { + "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, - "is-unicode-supported": { + "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-what": { + "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, - "is-wsl": { + "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { + "dependencies": { "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "isbinaryfile": { + "node_modules/isbinaryfile": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "isobject": { + "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "isstream": { + "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, - "istanbul-lib-coverage": { + "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "istanbul-lib-instrument": { + "node_modules/istanbul-lib-instrument": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "requires": { + "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "istanbul-lib-report": { + "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, - "requires": { + "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/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/istanbul-lib-report/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": { - "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": "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" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "istanbul-lib-source-maps": { + "node_modules/istanbul-lib-source-maps": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.5", "make-dir": "^2.1.0", "rimraf": "^2.6.3", "source-map": "^0.6.1" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "istanbul-reports": { + "node_modules/istanbul-lib-source-maps/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { "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": { + "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "jake": { + "node_modules/jake": { "version": "10.8.5", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", "dev": true, - "requires": { + "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", "filelist": "^1.0.1", "minimatch": "^3.0.4" }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/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": { - "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" - } - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "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 - }, - "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": "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": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/jake/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/jake/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/jake/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/jake/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/jake/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" } }, - "jasmine": { + "node_modules/jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", "dev": true, - "requires": { + "dependencies": { "exit": "^0.1.2", "glob": "^7.0.6", "jasmine-core": "~2.8.0" }, - "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", - "dev": true - } + "bin": { + "jasmine": "bin/jasmine.js" } }, - "jasmine-core": { + "node_modules/jasmine-core": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.8.0.tgz", "integrity": "sha512-zl0nZWDrmbCiKns0NcjkFGYkVTGCPUgoHypTaj+G2AzaWus7QGoXARSlYsSle2VRpSdfJmM+hzmFKzQNhF2kHg==", "dev": true }, - "jasmine-spec-reporter": { + "node_modules/jasmine-spec-reporter": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", "dev": true, - "requires": { + "dependencies": { "colors": "1.4.0" } }, - "jasminewd2": { + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", + "dev": true + }, + "node_modules/jasminewd2": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6.9.x" + } }, - "jest-worker": { + "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/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/jest-worker/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": { - "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" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "jquery": { + "node_modules/jquery": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz", "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==" }, - "js-sdsl": { + "node_modules/js-sdsl": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", - "dev": true + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "js-yaml": { + "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==", "dev": true, - "requires": { + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsbn": { + "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-parse-even-better-errors": { + "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", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, - "json-schema": { + "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "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==" + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, - "json-stable-stringify-without-jsonify": { + "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "json-stringify-safe": { + "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, - "json5": { + "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonc-parser": { + "node_modules/jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" }, - "jsonfile": { + "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", + "dependencies": { "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "jsonparse": { + "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true + "dev": true, + "engines": [ + "node >= 0.2.0" + ] }, - "jsprim": { + "node_modules/jsprim": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "requires": { + "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" } }, - "jszip": { + "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, - "requires": { + "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" - }, + } + }, + "node_modules/jszip/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "dependencies": { - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "karma": { + "node_modules/karma": { "version": "6.3.20", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz", "integrity": "sha512-HRNQhMuKOwKpjYlWiJP0DUrJOh+QjaI/DTaD8b9rEm4Il3tJ8MijutVZH4ts10LuUFst/CedwTS6vieCN8yTSw==", "dev": true, - "requires": { + "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", "braces": "^3.0.2", @@ -8122,387 +11074,529 @@ "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, - "mkdirp": { - "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.6" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" } }, - "karma-chrome-launcher": { + "node_modules/karma-chrome-launcher": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", "dev": true, - "requires": { + "dependencies": { "which": "^1.2.1" - }, + } + }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "karma-coverage-istanbul-reporter": { + "node_modules/karma-coverage-istanbul-reporter": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, - "requires": { + "dependencies": { "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^3.0.6", "istanbul-reports": "^3.0.2", "minimatch": "^3.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/mattlewis92" } }, - "karma-jasmine": { + "node_modules/karma-jasmine": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz", "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==", "dev": true, - "requires": { + "dependencies": { "jasmine-core": "^3.6.0" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "karma": "*" } }, - "karma-jasmine-html-reporter": { + "node_modules/karma-jasmine-html-reporter": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true + "dev": true, + "peerDependencies": { + "jasmine-core": ">=3.8", + "karma": ">=0.9", + "karma-jasmine": ">=1.1" + } }, - "karma-source-map-support": { + "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, - "requires": { + "dependencies": { "source-map-support": "^0.5.5" } }, - "kind-of": { + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/karma/node_modules/mkdirp": { + "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.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "klona": { + "node_modules/klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "less": { + "node_modules/less": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", "dev": true, - "requires": { + "dependencies": { "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", "needle": "^2.5.2", - "parse-node-version": "^1.0.1", - "source-map": "~0.6.0", - "tslib": "^2.3.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } + "source-map": "~0.6.0" } }, - "less-loader": { + "node_modules/less-loader": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", "dev": true, - "requires": { + "dependencies": { "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "levn": { + "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "requires": { + "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "license-webpack-plugin": { + "node_modules/license-webpack-plugin": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", "dev": true, - "requires": { + "dependencies": { "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } } }, - "lie": { + "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, - "requires": { + "dependencies": { "immediate": "~3.0.5" } }, - "lines-and-columns": { + "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, - "loader-runner": { + "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.11.5" + } }, - "loader-utils": { + "node_modules/loader-utils": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 12.13.0" + } }, - "locate-path": { + "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { + "dependencies": { "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.debounce": { + "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "lodash.merge": { + "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "log-symbols": { + "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "requires": { + "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/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==", "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/log-symbols/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/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==" + }, + "node_modules/log-symbols/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "log4js": { + "node_modules/log4js": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.1.tgz", "integrity": "sha512-lzbd0Eq1HRdWM2abSD7mk6YIVY0AogGJzb/z+lqzRk+8+XJP+M6L1MS5FUSc3jjGru4dbKjEMJmqlsoYYpuivQ==", "dev": true, - "requires": { + "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", "flatted": "^3.2.7", "rfdc": "^1.3.0", "streamroller": "^3.1.3" + }, + "engines": { + "node": ">=8.0" } }, - "loglevel": { + "node_modules/loglevel": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==" + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } }, - "loglevel-plugin-prefix": { + "node_modules/loglevel-plugin-prefix": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==" }, - "lru-cache": { + "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "lunr": { + "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" }, - "macos-release": { + "node_modules/macos-release": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", - "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==" + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "magic-string": { + "node_modules/magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "requires": { + "dependencies": { "sourcemap-codec": "^1.4.4" } }, - "make-dir": { + "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { + "dependencies": { "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "make-error": { + "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "make-fetch-happen": { + "node_modules/make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, - "requires": { + "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", "http-cache-semantics": "^4.1.0", @@ -8519,410 +11613,563 @@ "promise-retry": "^2.0.1", "socks-proxy-agent": "^6.0.0", "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" } }, - "map-stream": { + "node_modules/map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==" }, - "marked": { + "node_modules/marked": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.3.tgz", - "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw==" + "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "memfs": { + "node_modules/memfs": { "version": "3.4.12", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", "dev": true, - "requires": { + "dependencies": { "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" } }, - "merge-descriptors": { + "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, - "merge-source-map": { + "node_modules/merge-source-map": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", - "requires": { - "source-map": "^0.5.6" - }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" - } + "source-map": "^0.5.6" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" } }, - "merge-stream": { + "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "micromatch": { + "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { + "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "mime": { + "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { + "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } }, - "mini-css-extract-plugin": { + "node_modules/mini-css-extract-plugin": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", "dev": true, - "requires": { + "dependencies": { "schema-utils": "^4.0.0" }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, "dependencies": { - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } + "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/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/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/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "minipass": { + "node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "requires": { + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "minipass-collect": { + "node_modules/minipass-collect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "minipass-fetch": { + "node_modules/minipass-fetch": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, - "requires": { - "encoding": "^0.1.12", + "dependencies": { "minipass": "^3.1.0", "minipass-sized": "^1.0.3", "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" } }, - "minipass-flush": { + "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "minipass-json-stream": { + "node_modules/minipass-json-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, - "requires": { + "dependencies": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" } }, - "minipass-pipeline": { + "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "minipass-sized": { + "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "minizlib": { + "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" } }, - "mkdirp": { + "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } }, - "morgan": { + "node_modules/morgan": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "requires": { + "dependencies": { "basic-auth": "~2.0.1", "debug": "2.6.9", "depd": "~2.0.0", "on-finished": "~2.3.0", "on-headers": "~1.0.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "ms": "2.0.0" } }, - "ms": { + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "multicast-dns": { + "node_modules/multicast-dns": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, - "requires": { + "dependencies": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" } }, - "multicast-dns-service-types": { + "node_modules/multicast-dns-service-types": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", "dev": true }, - "mute-stream": { + "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "nanoid": { + "node_modules/nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "needle": { + "node_modules/needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, "optional": true, - "requires": { + "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "negotiator": { + "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } }, - "neo-async": { + "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "next-tick": { + "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, - "ng-dynamic-component": { + "node_modules/ng-dynamic-component": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/ng-dynamic-component/-/ng-dynamic-component-10.1.0.tgz", "integrity": "sha512-P3ejLAuezi/a7DfLk6SaqGUcDIhM8tfeNbJ3fAu2sPXgOOpHLPkEKw9nJc8C365B+fsZVX0B5GYuDX4pXa3GMQ==", - "requires": { + "dependencies": { "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^12.0.0 || ^13.0.0", + "@angular/core": "^12.0.0 || ^13.0.0", + "rxjs": "^6.0.0 || ^7.0.0" } }, - "ng2-handy-syntax-highlighter": { + "node_modules/ng2-handy-syntax-highlighter": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/ng2-handy-syntax-highlighter/-/ng2-handy-syntax-highlighter-1.0.12.tgz", "integrity": "sha512-vZ+qIkCgXlo3UvtlGPu94/0g2nFBiaXzLVM9gvhpw7nD6PgeuGSepfurwW7LZQfEFjIrvKlPYldZWnIikI4cRw==", - "requires": { + "dependencies": { "tslib": "^1.7.1" }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "engines": { + "node": ">= 4.2.1", + "npm": ">= 3" } }, - "ngx-spinner": { + "node_modules/ng2-handy-syntax-highlighter/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/ngx-spinner": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/ngx-spinner/-/ngx-spinner-13.1.1.tgz", "integrity": "sha512-6aJz4KxIsBrlQckJxcM3CEvMcYbZoSDnQZPu0F/ZYAYunbBOTb9iydw0Gjczg9moum1VURWjX5dTVKmFo85c2Q==", - "requires": { + "dependencies": { "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0", + "@angular/core": "^13.0.0" } }, - "nice-napi": { + "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, + "hasInstallScript": true, "optional": true, - "requires": { + "os": [ + "!win32" + ], + "dependencies": { "node-addon-api": "^3.0.0", "node-gyp-build": "^4.2.2" } }, - "node-addon-api": { + "node_modules/node-addon-api": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true }, - "node-forge": { + "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6.13.0" + } }, - "node-gyp": { + "node_modules/node-gyp": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, - "requires": { + "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.6", @@ -8934,493 +12181,668 @@ "tar": "^6.1.2", "which": "^2.0.2" }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" } }, - "node-gyp-build": { + "node_modules/node-gyp-build": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "dev": true + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "node-releases": { + "node_modules/node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, - "nopt": { + "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, - "requires": { + "dependencies": { "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } }, - "normalize-range": { + "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "npm-bundled": { + "node_modules/npm-bundled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, - "requires": { + "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, - "npm-install-checks": { + "node_modules/npm-install-checks": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, - "requires": { + "dependencies": { "semver": "^7.1.1" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-install-checks/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "npm-normalize-package-bin": { + "node_modules/npm-normalize-package-bin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, - "npm-package-arg": { + "node_modules/npm-package-arg": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, - "requires": { + "dependencies": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm-pick-manifest/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", + "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^10.0.1", + "minipass": "^3.1.6", + "minipass-fetch": "^1.4.1", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^8.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm-registry-fetch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen/node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm-registry-fetch/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" } }, - "npm-packlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", - "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "node_modules/npm-registry-fetch/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, - "requires": { - "glob": "^7.1.6", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "node_modules/npm-registry-fetch/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, - "requires": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" - }, "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "npm-registry-fetch": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", - "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", + "node_modules/npm-registry-fetch/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, - "requires": { - "make-fetch-happen": "^10.0.1", - "minipass": "^3.1.6", - "minipass-fetch": "^1.4.1", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^8.1.5" - }, "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - } + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "npm-run-path": { + "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { + "dependencies": { "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "npmlog": { + "node_modules/npmlog": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, - "requires": { + "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.3", "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "nth-check": { + "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { + "dependencies": { "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "nx": { + "node_modules/nx": { "version": "13.1.3", "resolved": "https://registry.npmjs.org/nx/-/nx-13.1.3.tgz", "integrity": "sha512-clM0NQhQKYkqcNz2E3uYRMLwhp2L/9dBhJhQi9XBX4IAyA2gWAomhRIlLm5Xxg3g4h1xwSpP3eJ5t89VikY8Pw==", "dev": true, - "requires": { + "dependencies": { "@nrwl/cli": "*" + }, + "bin": { + "nx": "bin/nx.js" } }, - "oauth-sign": { + "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-is": { + "node_modules/object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } }, - "obuf": { + "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "on-finished": { + "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "on-headers": { + "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { + "dependencies": { "wrappy": "1" } }, - "onetime": { + "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { + "dependencies": { "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "open": { + "node_modules/open": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "requires": { + "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "opencollective-postinstall": { + "node_modules/opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "bin": { + "opencollective-postinstall": "index.js" + } }, - "openseadragon": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/openseadragon/-/openseadragon-3.1.0.tgz", - "integrity": "sha512-0zCbRIWUbCto7xm1tv2ZLEiSl84cDU659W/sfs2zqqTqVRa4CRHzhy7i9nsv6dHA1DryFR8IzjStjmWOqRs9Rg==" + "node_modules/openseadragon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/openseadragon/-/openseadragon-4.1.0.tgz", + "integrity": "sha512-XMMzf5apmshvIvxvqMwiW9dJ07dol4zudvV1oFnoZuIpSZP3c3tlFjGbyOKHGhb1k4jmHQ7b7koG9vCHdKvC/A==", + "funding": { + "url": "https://opencollective.com/openseadragon" + } + }, + "node_modules/openseadragoncanvasoverlay": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/openseadragoncanvasoverlay/-/openseadragoncanvasoverlay-0.0.1.tgz", + "integrity": "sha512-cD8QnwO9kwHd24hDBIgFM+Alx4IffK0R+fO+INiEaLerRo/IsABJ+JNaZrr7NYRcKD+xr0YuqAgLGtyXof8I2w==", + "dependencies": { + "openseadragon": "^2.0.0" + } + }, + "node_modules/openseadragoncanvasoverlay/node_modules/openseadragon": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/openseadragon/-/openseadragon-2.4.2.tgz", + "integrity": "sha512-398KbZwRtOYA6OmeWRY4Q0737NTacQ9Q6whmr9Lp1MNQO3p0eBz5LIASRne+4gwequcSM1vcHcjfy3dIndQziw==" }, - "optionator": { + "node_modules/optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { + "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "ora": { + "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { + "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", @@ -9431,116 +12853,171 @@ "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/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==" + }, + "node_modules/ora/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "os-name": { + "node_modules/os-name": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", - "requires": { + "dependencies": { "macos-release": "^2.5.0", "windows-release": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "os-tmpdir": { + "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "p-limit": { + "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { + "dependencies": { "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { + "dependencies": { "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "p-map": { + "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, - "requires": { + "dependencies": { "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-retry": { + "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, - "requires": { + "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" } }, - "p-try": { + "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 + "dev": true, + "engines": { + "node": ">=6" + } }, - "pacote": { + "node_modules/pacote": { "version": "12.0.3", "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", "dev": true, - "requires": { + "dependencies": { "@npmcli/git": "^2.1.0", "@npmcli/installed-package-contents": "^1.0.6", "@npmcli/promise-spawn": "^1.2.0", @@ -9560,544 +13037,853 @@ "rimraf": "^3.0.2", "ssri": "^8.0.1", "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "pako": { + "node_modules/pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-json": { + "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { + "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "parse-node-version": { + "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "engines": { + "node": ">= 0.10" + } }, - "parse5": { + "node_modules/parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "optional": true }, - "parse5-html-rewriting-stream": { + "node_modules/parse5-html-rewriting-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", "dev": true, - "requires": { + "dependencies": { "parse5": "^6.0.1", "parse5-sax-parser": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - } } }, - "parse5-htmlparser2-tree-adapter": { + "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "requires": { + "dependencies": { "domhandler": "^5.0.2", "parse5": "^7.0.0" }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dependencies": { - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "requires": { - "entities": "^4.4.0" - } - } + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "parse5-sax-parser": { + "node_modules/parse5-sax-parser": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", "dev": true, - "requires": { - "parse5": "^6.0.1" - }, "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - } + "parse5": "^6.0.1" } }, - "parseurl": { + "node_modules/parse5-sax-parser/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } }, - "path-browserify": { + "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } }, - "path-is-inside": { + "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, - "path-key": { + "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, - "path-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } }, - "pause-stream": { + "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "requires": { + "dependencies": { "through": "~2.3" } }, - "pdfjs-dist": { + "node_modules/pdfjs-dist": { "version": "2.16.105", "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.16.105.tgz", "integrity": "sha512-J4dn41spsAwUxCpEoVf6GVoz908IAA3mYiLmNxg8J9kfRXc2jxpbUepcP0ocp0alVNLFthTAM8DZ1RaHh8sU0A==", - "requires": { + "dependencies": { "dommatrix": "^1.0.3", "web-streams-polyfill": "^3.2.1" + }, + "peerDependencies": { + "worker-loader": "^3.0.8" + }, + "peerDependenciesMeta": { + "worker-loader": { + "optional": true + } } }, - "pdfmake": { + "node_modules/pdfmake": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.6.tgz", "integrity": "sha512-gZARnKLJjTuHWKIkqF4G6dafIaPfH7NFqBz9U9wb26PV5koHQ5eeQ/0rgZmIdfJzMKqHzXB9aK25ykG2AnnzEQ==", - "requires": { + "dependencies": { "@foliojs-fork/linebreak": "^1.1.1", "@foliojs-fork/pdfkit": "^0.13.0", "iconv-lite": "^0.6.3", "xmldoc": "^1.1.2" + }, + "engines": { + "node": ">=12" } }, - "performance-now": { + "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, - "picocolors": { + "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, - "picomatch": { + "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { + "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "pinkie": { + "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "pinkie-promise": { + "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, - "requires": { + "dependencies": { "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "piscina": { + "node_modules/piscina": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", "dev": true, - "requires": { + "dependencies": { "eventemitter-asyncresource": "^1.0.0", "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { "nice-napi": "^1.0.2" } }, - "pkg-dir": { + "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { + "dependencies": { "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "png-js": { + "node_modules/png-js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" }, - "portfinder": { + "node_modules/portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, - "requires": { + "dependencies": { "async": "^2.6.4", "debug": "^3.2.7", "mkdirp": "^0.5.6" }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/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": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "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.6" - } - } + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "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.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "postcss": { + "node_modules/postcss": { "version": "8.4.5", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", "dev": true, - "requires": { + "dependencies": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-attribute-case-insensitive": { + "node_modules/postcss-attribute-case-insensitive": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-color-functional-notation": { + "node_modules/postcss-color-functional-notation": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-color-hex-alpha": { + "node_modules/postcss-color-hex-alpha": { "version": "8.0.4", "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-color-rebeccapurple": { + "node_modules/postcss-color-rebeccapurple": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-custom-media": { + "node_modules/postcss-custom-media": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "postcss-custom-properties": { + "node_modules/postcss-custom-properties": { "version": "12.1.11", "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-custom-selectors": { + "node_modules/postcss-custom-selectors": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "postcss-dir-pseudo-class": { + "node_modules/postcss-dir-pseudo-class": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-double-position-gradients": { + "node_modules/postcss-double-position-gradients": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", "dev": true, - "requires": { + "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-env-function": { + "node_modules/postcss-env-function": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-focus-visible": { + "node_modules/postcss-focus-visible": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-focus-within": { + "node_modules/postcss-focus-within": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-font-variant": { + "node_modules/postcss-font-variant": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true + "dev": true, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-gap-properties": { + "node_modules/postcss-gap-properties": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "dev": true + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } }, - "postcss-image-set-function": { + "node_modules/postcss-image-set-function": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-import": { + "node_modules/postcss-import": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" } }, - "postcss-initial": { + "node_modules/postcss-initial": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true + "dev": true, + "peerDependencies": { + "postcss": "^8.0.0" + } }, - "postcss-lab-function": { + "node_modules/postcss-lab-function": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", "dev": true, - "requires": { + "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-loader": { + "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, - "requires": { + "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "postcss-logical": { + "node_modules/postcss-logical": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } }, - "postcss-media-minmax": { + "node_modules/postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-modules-extract-imports": { + "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-modules-local-by-default": { + "node_modules/postcss-modules-local-by-default": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-scope": { + "node_modules/postcss-modules-scope": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-values": { + "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-nesting": { + "node_modules/postcss-nesting": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", "dev": true, - "requires": { + "dependencies": { "@csstools/selector-specificity": "^2.0.0", "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-overflow-shorthand": { + "node_modules/postcss-overflow-shorthand": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-page-break": { + "node_modules/postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true + "dev": true, + "peerDependencies": { + "postcss": "^8" + } }, - "postcss-place": { + "node_modules/postcss-place": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-preset-env": { + "node_modules/postcss-preset-env": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", "dev": true, - "requires": { + "dependencies": { "autoprefixer": "^10.4.2", "browserslist": "^4.19.1", "caniuse-lite": "^1.0.30001299", @@ -10131,99 +13917,141 @@ "postcss-pseudo-class-any-link": "^7.0.2", "postcss-replace-overflow-wrap": "^4.0.0", "postcss-selector-not": "^5.0.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-pseudo-class-any-link": { + "node_modules/postcss-pseudo-class-any-link": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-replace-overflow-wrap": { + "node_modules/postcss-replace-overflow-wrap": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true + "dev": true, + "peerDependencies": { + "postcss": "^8.0.3" + } }, - "postcss-selector-not": { + "node_modules/postcss-selector-not": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-selector-parser": { + "node_modules/postcss-selector-parser": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, - "requires": { + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-value-parser": { + "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } }, - "pretty-bytes": { + "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "prismjs": { + "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "promise-inflight": { + "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, - "promise-retry": { + "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, - "requires": { + "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" }, - "dependencies": { - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - } + "engines": { + "node": ">=10" + } + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" } }, - "protractor": { + "node_modules/protractor": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", "dev": true, - "requires": { + "dependencies": { "@types/q": "^0.0.32", "@types/selenium-webdriver": "^3.0.0", "blocking-proxy": "^1.0.0", @@ -10240,542 +14068,700 @@ "webdriver-manager": "^12.1.7", "yargs": "^15.3.1" }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/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/protractor/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/protractor/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/protractor/node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/protractor/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/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/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.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 - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - }, - "webdriver-manager": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", - "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", - "dev": true, - "requires": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "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" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" } }, - "proxy-addr": { + "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "requires": { + "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - } + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" } }, - "proxy-from-env": { + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "proxy-middleware": { + "node_modules/proxy-middleware": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", - "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==" + "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", + "engines": { + "node": ">=0.8.0" + } }, - "prr": { + "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, "optional": true }, - "psl": { + "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "pump": { + "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { + "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, - "punycode": { + "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } }, - "q": { + "node_modules/q": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } }, - "qjobs": { + "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.9" + } }, - "qs": { + "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "requires": { + "dependencies": { "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "queue-microtask": { + "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "quote-stream": { + "node_modules/quote-stream": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", - "requires": { + "dependencies": { "buffer-equal": "0.0.1", "minimist": "^1.1.3", "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" } }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { + "node_modules/raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "read-cache": { + "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, - "requires": { - "pify": "^2.3.0" - }, "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "read-package-json-fast": { + "node_modules/read-package-json-fast": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, - "requires": { + "dependencies": { "json-parse-even-better-errors": "^2.3.0", "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "readdirp": { + "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { + "dependencies": { "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "reflect-metadata": { + "node_modules/reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" }, - "regenerate": { + "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, - "regenerate-unicode-properties": { + "node_modules/regenerate-unicode-properties": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "requires": { + "dependencies": { "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "regenerator-runtime": { + "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "regenerator-transform": { + "node_modules/regenerator-transform": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "requires": { + "dependencies": { "@babel/runtime": "^7.8.4" } }, - "regex-parser": { + "node_modules/regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, - "regexp.prototype.flags": { + "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==", - "requires": { + "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" } }, - "regexpp": { + "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } }, - "regexpu-core": { + "node_modules/regexpu-core": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", - "requires": { + "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "regjsgen": { + "node_modules/regjsgen": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" }, - "regjsparser": { + "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "requires": { + "dependencies": { "jsesc": "~0.5.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" - } + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" } }, - "request": { + "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, - "requires": { + "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", @@ -10797,275 +14783,382 @@ "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" } }, - "require-directory": { + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } }, - "require-from-string": { + "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } }, - "require-main-filename": { + "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "resolve": { + "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { + "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } }, - "resolve-url-loader": { + "node_modules/resolve-url-loader": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, - "requires": { + "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", "loader-utils": "^2.0.0", "postcss": "^8.2.14", "source-map": "0.6.1" }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, "dependencies": { - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "restore-cursor": { + "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { + "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "retry": { + "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rfdc": { + "node_modules/rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "run-async": { + "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "run-parallel": { + "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "queue-microtask": "^1.2.2" } }, - "rxjs": { + "node_modules/rxjs": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.6.0.tgz", "integrity": "sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==", - "requires": { + "dependencies": { "tslib": "^2.1.0" } }, - "rxjs-for-await": { + "node_modules/rxjs-for-await": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", - "dev": true + "dev": true, + "peerDependencies": { + "rxjs": "^6.0.0" + } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sass": { + "node_modules/sass": { "version": "1.49.9", "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", "dev": true, - "requires": { + "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" } }, - "sass-loader": { + "node_modules/sass-loader": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", "dev": true, - "requires": { + "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } } }, - "saucelabs": { + "node_modules/saucelabs": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, - "requires": { + "dependencies": { "https-proxy-agent": "^2.2.1" }, + "engines": { + "node": "*" + } + }, + "node_modules/saucelabs/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/saucelabs/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/saucelabs/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" } }, - "sax": { + "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, - "schema-utils": { + "node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, - "requires": { + "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "scope-analyzer": { + "node_modules/scope-analyzer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", - "requires": { + "dependencies": { "array-from": "^2.1.1", "dash-ast": "^2.0.1", "es6-map": "^0.1.5", @@ -11075,80 +15168,94 @@ "get-assigned-identifiers": "^1.1.0" } }, - "select-hose": { + "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, - "selenium-webdriver": { + "node_modules/selenium-webdriver": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, - "requires": { + "dependencies": { "jszip": "^3.1.3", "rimraf": "^2.5.4", "tmp": "0.0.30", "xml2js": "^0.4.17" }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" } }, - "selfsigned": { + "node_modules/selfsigned": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, - "requires": { + "dependencies": { "node-forge": "^1" + }, + "engines": { + "node": ">=10" } }, - "semver": { + "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } }, - "semver-dsl": { + "node_modules/semver-dsl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", "dev": true, - "requires": { - "semver": "^5.3.0" - }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "semver": "^5.3.0" + } + }, + "node_modules/semver-dsl/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" } }, - "send": { + "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { + "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -11163,56 +15270,61 @@ "range-parser": "~1.2.1", "statuses": "2.0.1" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - } + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" } }, - "serialize-javascript": { + "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "serve-index": { + "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "requires": { + "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -11221,276 +15333,341 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" } }, - "serve-static": { + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, - "requires": { + "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "set-blocking": { + "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "setimmediate": { + "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, - "setprototypeof": { + "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "shallow-clone": { + "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "requires": { + "dependencies": { "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "shallow-copy": { + "node_modules/shallow-copy": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { + "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "slash": { + "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "smart-buffer": { + "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 + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } }, - "socket.io": { + "node_modules/socket.io": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz", "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", "engine.io": "~6.2.1", "socket.io-adapter": "~2.4.0", "socket.io-parser": "~4.2.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "socket.io-adapter": { + "node_modules/socket.io-adapter": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", "dev": true }, - "socket.io-parser": { + "node_modules/socket.io-parser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", "dev": true, - "requires": { + "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "sockjs": { + "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, - "requires": { + "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, - "socks": { + "node_modules/socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, - "requires": { + "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, - "dependencies": { - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - } + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" } }, - "socks-proxy-agent": { + "node_modules/socks-proxy-agent": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, - "requires": { + "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" } }, - "source-map": { + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "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==" + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } }, - "source-map-js": { + "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-loader": { + "node_modules/source-map-loader": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", "dev": true, - "requires": { + "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "source-map-resolve": { + "node_modules/source-map-resolve": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "requires": { + "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" } }, - "source-map-support": { + "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, - "sourcemap-codec": { + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" }, - "spdy": { + "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" } }, - "spdy-transport": { + "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", @@ -11499,26 +15676,29 @@ "wbuf": "^1.7.3" } }, - "split": { + "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { + "dependencies": { "through": "2" + }, + "engines": { + "node": "*" } }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "sshpk": { + "node_modules/sshpk": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dev": true, - "requires": { + "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", @@ -11528,30 +15708,41 @@ "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" } }, - "ssri": { + "node_modules/ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" } }, - "static-eval": { + "node_modules/static-eval": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", - "requires": { + "dependencies": { "escodegen": "^1.11.1" } }, - "static-module": { + "node_modules/static-module": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", - "requires": { + "dependencies": { "acorn-node": "^1.3.0", "concat-stream": "~1.6.0", "convert-source-map": "^1.5.1", @@ -11566,827 +15757,1056 @@ "shallow-copy": "~0.0.1", "static-eval": "^2.0.5", "through2": "~2.0.3" - }, + } + }, + "node_modules/static-module/node_modules/magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", "dependencies": { - "magic-string": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", - "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", - "requires": { - "sourcemap-codec": "^1.4.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "sourcemap-codec": "^1.4.1" + } + }, + "node_modules/static-module/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/static-module/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/static-module/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "statuses": { + "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } }, - "stream-combiner": { + "node_modules/stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "requires": { + "dependencies": { "duplexer": "~0.1.1", "through": "~2.3.4" } }, - "streamroller": { + "node_modules/streamroller": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz", "integrity": "sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==", "dev": true, - "requires": { + "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", "fs-extra": "^8.1.0" }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" } }, - "string_decoder": { + "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { + "dependencies": { "safe-buffer": "~5.2.0" } }, - "strip-ansi": { + "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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "strip-final-newline": { + "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "strong-log-transformer": { + "node_modules/strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", "dev": true, - "requires": { + "dependencies": { "duplexer": "^0.1.1", "minimist": "^1.2.0", "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" } }, - "stylus": { + "node_modules/stylus": { "version": "0.56.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", "dev": true, - "requires": { + "dependencies": { "css": "^3.0.0", "debug": "^4.3.2", "glob": "^7.1.6", "safer-buffer": "^2.1.2", "sax": "~1.2.4", "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" } }, - "stylus-loader": { + "node_modules/stylus-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", "dev": true, - "requires": { + "dependencies": { "fast-glob": "^3.2.7", "klona": "^2.0.4", "normalize-path": "^3.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "stylus": ">=0.52.4", + "webpack": "^5.0.0" } }, - "supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "symbol-observable": { + "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "tapable": { + "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "tar": { + "node_modules/tar": { "version": "6.1.12", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", "dev": true, - "requires": { + "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "tar-stream": { + "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "requires": { + "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "terser": { + "node_modules/terser": { "version": "5.14.2", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, - "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "terser-webpack-plugin": { + "node_modules/terser-webpack-plugin": { "version": "5.3.6", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", "terser": "^5.14.1" }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "esbuild": { + "optional": true }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } + "uglify-js": { + "optional": true } } }, - "test-exclude": { + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "requires": { + "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "text-table": { + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "through2": { + "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { + "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" - }, + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "thunky": { + "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "time-stamp": { + "node_modules/time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==" + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "engines": { + "node": ">=0.10.0" + } }, - "tiny-inflate": { + "node_modules/tiny-inflate": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" }, - "tmp": { + "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "requires": { + "dependencies": { "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" } }, - "to-fast-properties": { + "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { + "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } }, - "tough-cookie": { + "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, - "requires": { + "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" } }, - "traverse": { + "node_modules/traverse": { "version": "0.6.7", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==" + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "tree-kill": { + "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 + "dev": true, + "bin": { + "tree-kill": "cli.js" + } }, - "ts-morph": { + "node_modules/ts-morph": { "version": "13.0.3", "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-13.0.3.tgz", "integrity": "sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw==", - "requires": { + "dependencies": { "@ts-morph/common": "~0.12.3", "code-block-writer": "^11.0.0" } }, - "ts-node": { + "node_modules/ts-node": { "version": "8.6.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.2.tgz", "integrity": "sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg==", "dev": true, - "requires": { + "dependencies": { "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.6", "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-script": "dist/script.js" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" } }, - "tsconfig-paths": { + "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, - "requires": { + "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "tslib": { + "node_modules/tslib": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + } + }, + "node_modules/tslint/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/tslint/node_modules/mkdirp": { + "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.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/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/tslint/node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "mkdirp": { - "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.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, - "tsutils": { + "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, - "requires": { + "dependencies": { "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 - } + "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" } }, - "tunnel-agent": { + "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/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" } }, - "tweetnacl": { + "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, - "type": { + "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, - "type-check": { + "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "requires": { + "dependencies": { "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-fest": { + "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typed-assert": { + "node_modules/typed-assert": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true }, - "typedarray": { + "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, - "typescript": { + "node_modules/typescript": { "version": "4.6.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } }, - "ua-parser-js": { + "node_modules/ua-parser-js": { "version": "0.7.33", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==", - "dev": true + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } }, - "uglify-js": { + "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } }, - "unicode-canonical-property-names-ecmascript": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } }, - "unicode-match-property-ecmascript": { + "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { + "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { + "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } }, - "unicode-properties": { + "node_modules/unicode-properties": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", - "requires": { + "dependencies": { "base64-js": "^1.3.0", "unicode-trie": "^2.0.0" } }, - "unicode-property-aliases-ecmascript": { + "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } }, - "unicode-trie": { + "node_modules/unicode-trie": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", - "requires": { + "dependencies": { "pako": "^0.2.5", "tiny-inflate": "^1.0.0" } }, - "unique-filename": { + "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, - "requires": { + "dependencies": { "unique-slug": "^2.0.0" } }, - "unique-slug": { + "node_modules/unique-slug": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, - "requires": { + "dependencies": { "imurmurhash": "^0.1.4" } }, - "universalify": { + "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } }, - "unix-crypt-td-js": { + "node_modules/unix-crypt-td-js": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==" }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } }, - "update-browserslist-db": { + "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } }, - "uuid": { + "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==" + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "v8-compile-cache": { + "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 }, - "validate-npm-package-name": { + "node_modules/validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, - "requires": { + "dependencies": { "builtins": "^1.0.3" } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } }, - "verror": { + "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, - "requires": { + "engines": [ + "node >=0.6.0" + ], + "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - } } }, - "vkbeautify": { + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/vkbeautify": { "version": "0.99.3", "resolved": "https://registry.npmjs.org/vkbeautify/-/vkbeautify-0.99.3.tgz", "integrity": "sha512-2ozZEFfmVvQcHWoHLNuiKlUfDKlhh4KGsy54U0UrlLMR1SO+XKAIDqBxtBwHgNrekurlJwE8A9K6L49T78ZQ9Q==" }, - "void-elements": { + "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "watchpack": { + "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, - "requires": { + "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "wbuf": { + "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "requires": { + "dependencies": { "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { + "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "requires": { + "dependencies": { "defaults": "^1.0.3" } }, - "web-streams-polyfill": { + "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } }, - "webdriver-js-extender": { + "node_modules/webdriver-js-extender": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, - "requires": { + "dependencies": { "@types/selenium-webdriver": "^3.0.0", "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" } }, - "webpack": { + "node_modules/webpack": { "version": "5.70.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", "dev": true, - "requires": { + "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", "@webassemblyjs/ast": "1.11.1", @@ -12412,86 +16832,104 @@ "watchpack": "^2.3.1", "webpack-sources": "^3.2.3" }, - "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-dev-middleware": { + "node_modules/webpack-dev-middleware": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", "dev": true, - "requires": { + "dependencies": { "colorette": "^2.0.10", "memfs": "^3.2.2", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, "dependencies": { - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } + "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/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/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/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "webpack-dev-server": { + "node_modules/webpack-dev-server": { "version": "4.7.3", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", "dev": true, - "requires": { + "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/serve-index": "^1.9.1", @@ -12522,225 +16960,381 @@ "webpack-dev-middleware": "^5.3.0", "ws": "^8.1.0" }, - "dependencies": { - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-merge": { + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, - "requires": { + "dependencies": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "webpack-sources": { + "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.13.0" + } }, - "webpack-subresource-integrity": { + "node_modules/webpack-subresource-integrity": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, - "requires": { + "dependencies": { "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "websocket-driver": { + "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { + "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { + "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-module": { + "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, - "wide-align": { + "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, - "requires": { + "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "wildcard": { + "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, - "windows-release": { + "node_modules/windows-release": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", - "requires": { + "dependencies": { "execa": "^4.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "word-wrap": { + "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==" + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } }, - "wordwrap": { + "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, - "wrap-ansi": { + "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "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==" - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "wrappy": { + "node_modules/wrap-ansi/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==" + }, + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "ws": { + "node_modules/ws": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true + "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 + } + } }, - "xml2js": { + "node_modules/xml2js": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, - "requires": { + "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "xmlbuilder": { + "node_modules/xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "xmldoc": { + "node_modules/xmldoc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.2.0.tgz", "integrity": "sha512-2eN8QhjBsMW2uVj7JHLHkMytpvGHLHxKXBy4J3fAT/HujsEtM6yU84iGjpESYGHg6XwK0Vu4l+KgqQ2dv2cCqg==", - "requires": { + "dependencies": { "sax": "^1.2.4" } }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "yaml": { + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } }, - "yargs": { + "node_modules/yargs": { "version": "17.6.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "requires": { + "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -12748,30 +17342,45 @@ "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } }, - "yn": { + "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "zone.js": { + "node_modules/zone.js": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz", "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==", - "requires": { + "dependencies": { "tslib": "^2.3.0" } } diff --git a/package.json b/package.json index d91ccf44e..32670820e 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,8 @@ "ng-dynamic-component": "~10.1.0", "ng2-handy-syntax-highlighter": "^1.0.12", "ngx-spinner": "^13.1.1", - "openseadragon": "^3.0.0", + "openseadragon": "^4.1.0", + "openseadragoncanvasoverlay": "^0.0.1", "prismjs": "^1.27.0", "rxjs": "^7.5.5", "tslib": "^2.3.1", diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 7a2ed2473..c007cbddc 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,19 +1,25 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { CollationComponent } from './view-modes/collation/collation.component'; +import { DocumentalMixedComponent } from './view-modes/documental-mixed/documental-mixed.component'; import { ImageTextComponent } from './view-modes/image-text/image-text.component'; +import { ImageOnlyComponent } from './view-modes/image-only/image-only.component'; import { ReadingTextComponent } from './view-modes/reading-text/reading-text.component'; import { TextSourcesComponent } from './view-modes/text-sources/text-sources.component'; import { TextTextComponent } from './view-modes/text-text/text-text.component'; import { TextVersionsComponent } from './view-modes/text-versions/text-versions.component'; +import { ImageImageComponent } from './view-modes/image-image/image-image.component'; const appRoutes: Routes = [ { path: 'imageText', component: ImageTextComponent }, + { path: 'imageOnly', component: ImageOnlyComponent }, + { path: 'imageImage', component: ImageImageComponent }, { path: 'readingText', component: ReadingTextComponent }, { path: 'textText', component: TextTextComponent }, { path: 'collation', component: CollationComponent }, { path: 'textSources', component: TextSourcesComponent }, { path: 'textVersions', component: TextVersionsComponent }, + { path: 'documentalMixed', component: DocumentalMixedComponent }, ]; @NgModule({ imports: [RouterModule.forRoot(appRoutes, { relativeLinkResolution: 'legacy' })], diff --git a/src/app/app.component.html b/src/app/app.component.html index 0a399cb23..f1722b8a7 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -6,6 +6,6 @@ - + \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 3babfbf3b..cc7a6db62 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -8,6 +8,7 @@ import { AppConfig } from './app.config'; import { ThemesService } from './services/themes.service'; import { ShortcutsService } from './shortcuts/shortcuts.service'; import { EvtIconInfo } from './ui-components/icon/icon.component'; +import { EVTStatusService } from './services/evt-status.service'; @Component({ selector: 'evt-root', @@ -20,6 +21,7 @@ export class AppComponent implements OnDestroy { public hasNavBar = AppConfig.evtSettings.ui.enableNavBar; public navbarOpened$ = new BehaviorSubject(this.hasNavBar && AppConfig.evtSettings.ui.initNavBarOpened); + public navbarTogglerIcon$: Observable = this.navbarOpened$.pipe( map((opened: boolean) => opened ? { icon: 'caret-down', iconSet: 'fas' } : { icon: 'caret-up', iconSet: 'fas' }), ); @@ -30,7 +32,19 @@ export class AppComponent implements OnDestroy { private shortcutsService: ShortcutsService, private themes: ThemesService, private titleService: Title, + private evtStatusService: EVTStatusService, + ) { + + this.evtStatusService.currentViewMode$.pipe().subscribe((view) => { + if (view!==undefined && (view.id === 'imageImage' ||view.id === 'imageOnly') ) { + this.navbarOpened$.next(false); + this.hasNavBar = false; + } else { + this.navbarOpened$.next(true); + this.hasNavBar = true; + } + }); this.router.events.subscribe((event) => { switch (true) { case event instanceof NavigationStart: diff --git a/src/app/app.config.ts b/src/app/app.config.ts index e30f7195b..e2784e15c 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -4,8 +4,9 @@ import { TranslateService } from '@ngx-translate/core'; import { forkJoin } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { EntitiesSelectItemGroup } from './components/entities-select/entities-select.component'; -import { ViewMode, ViewModeId } from './models/evt-models'; +import { AnalogueClass, SourceClass, ViewMode, ViewModeId } from './models/evt-models'; import { Attributes, EditorialConventionLayout } from './models/evt-models'; +import { updateCSS } from './utils/dom-utils'; @Injectable() export class AppConfig { @@ -31,6 +32,7 @@ export class AppConfig { ]).pipe( map(([ui, edition, editorialConventions]) => { console.log(ui, edition, files); + this.updateStyleFromConfig(edition, ui); // Handle default values => TODO: Decide how to handle defaults!! if (ui.defaultLocalization) { if (ui.availableLanguages.find((l) => l.code === ui.defaultLocalization && l.enable)) { @@ -53,7 +55,27 @@ export class AppConfig { }); }); } + + /** + * Update once general css with values from config, + * this way we don't need to inject a style property in each element + * @param edition EditionConfig + */ + updateStyleFromConfig(edition: EditionConfig, ui: UiConfig) { + const rules = []; + rules['.edition-font'] = `font-family: ${ui.mainFontFamily}; font-size: ${ui.mainFontSize};`; + rules['.app-detail-tabs .nav-link'] = `font-family: ${ui.secondaryFontFamily};`; + rules['.ui-font'] = `font-family: ${ui.secondaryFontFamily}; font-size: ${ui.secondaryFontSize};`; + rules['.app-detail-tabs'] = `font-family: ${ui.secondaryFontFamily};`; + rules['.' + AnalogueClass + ' .opened'] = `background-color: ${edition.readingColorDark};`; + rules['.' + SourceClass + ' .opened'] = `background-color: ${edition.readingColorDark};`; + rules['.' + AnalogueClass + ':hover'] = `background-color: ${edition.readingColorLight}; cursor:pointer;`; + rules['.' + SourceClass + ':hover'] = `background-color: ${edition.readingColorLight}; cursor:pointer;`; + Object.entries(rules).forEach(([selector,style]) => { updateCSS([[selector,style]]) }); + } + } + export interface EVTConfig { ui: UiConfig; edition: EditionConfig; @@ -74,14 +96,51 @@ export interface UiConfig { initNavBarOpened: boolean; thumbnailsButton: boolean; viscollButton: boolean; + defaultBibliographicStyle: string; + allowedBibliographicStyles: { + [key: string]: { + id: string; + label: string; + enabled: boolean; + propsOrder: BibliographicProperties[]; + properties: BibliographicStyle; + } + }; + mainFontFamily: string; + mainFontSize: string; + secondaryFontFamily: string; + secondaryFontSize: string; theme: 'neutral' | 'modern' | 'classic'; + syncZonesHighlightButton: boolean; } +export type CitingRanges = 'issue' | 'volume' | 'page'; +export type BibliographicProperties = 'author'| 'date'| 'title'| 'editor' | 'publication' | 'pubPlace' | 'publisher' | 'doi'; +export type BibliographicStyle = Partial<{ + propsDelimiter: string; + authorStyle: Partial<{ + forenameInitials: boolean; + delimiter: string; + lastDelimiter: string; + order: Array<'forename' | 'surname'>; + maxAuthors: string; + }>; + publicationStyle: Partial<{ + citingAcronym: 'all' | 'none' | CitingRanges[]; + includeEditor: boolean; + inBrackets: CitingRanges[]; + }>; + dateInsidePublication: boolean; + titleQuotes: boolean; + emphasized: BibliographicProperties[]; + inBrackets: BibliographicProperties[]; +}>; export interface EditionConfig { editionTitle: string; badge: string; editionHome: string; showLists: boolean; + downloadableXMLSource: boolean; availableEditionLevels: EditionLevel[]; namedEntitiesLists: Partial<{ persons: NamedEntitiesListsConfig; @@ -99,6 +158,32 @@ export interface EditionConfig { verseNumberPrinter: number; readingColorLight: string; readingColorDark: string; + externalBibliography: Partial<{ + biblAttributeToMatch: string; + elementAttributesToMatch: string[]; + }>; + biblView: Partial<{ + propsToShow: string[]; + showAttrNames: boolean; + showEmptyValues: boolean; + inline: boolean; + commaSeparated: boolean; + showMainElemTextContent: boolean; + }>; + analogueMarkers: string[]; + sourcesExcludedFromListByParent: string[]; + showChangeLayerMarkerInText: boolean; + showSeparatorBetweenChanges: boolean; + changeSequenceView: Partial<{ + showVarSeqAttr: boolean; + showSeqAttr: boolean; + layerColors: string[]; + }>; + startingFromDefinitiveLayer: boolean; + defaultImageZoomLevel: number; + maxImageZoomLevel: number; + showSubstitutionMarker: boolean; + multiPageEngineForCriticalEdition: boolean; } export type EditionImagesSources = 'manifest' | 'graphics'; @@ -109,7 +194,10 @@ export interface FileConfig { [T in EditionImagesSources]: EditionImagesConfig; }; logoUrl?: string; - imagesFolderUrl?: string; + imagesFolderUrls?: { + single: string; + double: string; + }; configurationUrls?: { edition: string; ui: string; @@ -126,12 +214,13 @@ export interface NamedEntitiesListsConfig { defaultLabel: string; enable: boolean; } -export type EditionLevelType = 'diplomatic' | 'interpretative' | 'critical'; +export type EditionLevelType = 'diplomatic' | 'interpretative' | 'critical' | 'changesView'; export interface EditionLevel { id: EditionLevelType; label: string; title?: string; enable?: boolean; + hidden?: boolean; } export interface EditorialConventionsConfig { @@ -148,4 +237,4 @@ export interface CustomEditorialConvention { }; } -export type TextFlow = 'prose' | 'verses'; +export type TextFlow = 'prose' | 'prose_mixed' | 'verses'; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a131051b3..91593257e 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -22,104 +22,130 @@ import { AppComponent } from './app.component'; import { Ng2HandySyntaxHighlighterModule } from 'ng2-handy-syntax-highlighter'; import { AppConfig } from './app.config'; -import { AdditionComponent } from './components/addition/addition.component'; import { AdditionalComponent } from './components/additional/additional.component'; +import { AdditionComponent } from './components/addition/addition.component'; +import { AnalogueDetailComponent } from './components/analogues/analogue-detail/analogue-detail.component'; +import { AnalogueEntryComponent } from './components/analogues/analogue-entry/analogue-entry.component'; +import { AnaloguesComponent } from './components/analogues/analogues.component'; +import { AnnotatorDirective } from './directives/annotator.directive'; +import { AnnotatorService } from './services/annotator/annotator.service'; +import { ApparatusEntryComponent } from './components/apparatus-entry/apparatus-entry.component'; import { ApparatusEntryDetailComponent } from './components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component'; import { ApparatusEntryReadingsComponent } from './components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component'; -import { ApparatusEntryComponent } from './components/apparatus-entry/apparatus-entry.component'; +import { BiblioEntryComponent } from './components/biblio/biblio.component'; +import { BibliographyInfoComponent } from './components/bibliography-info/bibliography-info.component'; +import { BibliographicStyleSelectorComponent } from './components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector'; +import { BiblioListComponent } from './components/biblioList/biblio-list.component'; +import { ChangeLayerSelectorComponent } from './components/change-layer-selector/change-layer-selector.component'; import { CharComponent } from './components/char/char.component'; import { ChoiceComponent } from './components/choice/choice.component'; +import { CollationComponent } from './view-modes/collation/collation.component'; import { ContentViewerComponent } from './components/content-viewer/content-viewer.component'; +import { CriticalApparatusComponent } from './components/critical-apparatus/critical-apparatus.component'; import { DamageComponent } from './components/damage/damage.component'; import { DeletionComponent } from './components/deletion/deletion.component'; +import { DocumentalMixedComponent } from './view-modes/documental-mixed/documental-mixed.component'; import { EditionLevelSelectorComponent } from './components/edition-level-selector/edition-level-selector.component'; import { EditionStmtComponent } from './components/edition-stmt/edition-stmt.component'; +import { EditorialConventionLayoutDirective } from './directives/editorial-convention-layout.directive'; import { EditorialDeclComponent } from './components/editorial-decl/editorial-decl.component'; import { EncodingDescComponent } from './components/encoding-desc/encoding-desc.component'; import { EntitiesSelectComponent } from './components/entities-select/entities-select.component'; +import { EvtInfoComponent } from './evt-info/evt-info.component'; import { ExtentComponent } from './components/extent/extent.component'; import { FileDescComponent } from './components/file-desc/file-desc.component'; -import { GComponent } from './components/g/g.component'; +import { FilterPipe } from './pipes/filter.pipe'; import { GapComponent } from './components/gap/gap.component'; +import { GComponent } from './components/g/g.component'; import { GenericElementComponent } from './components/generic-element/generic-element.component'; +import { GenericParserService } from './services/xml-parsers/generic-parser.service'; import { GlobalListsComponent } from './components/global-lists/global-lists.component'; +import { HandleImgErrorDirective } from './directives/handle-img-error.directive'; +import { HighlightDirective } from './directives/highlight.directive'; import { HistoryComponent } from './components/history/history.component'; +import { HtmlAttributesDirective } from './directives/html-attributes.directive'; +import { HumanizePipe } from './pipes/humanize.pipe'; +import { IdbService } from './services/idb.service'; import { IdentifierComponent } from './components/identifier/identifier.component'; +import { ImageImageComponent } from './view-modes/image-image/image-image.component'; +import { ImageGrpPanelComponent } from './panels/imagegrp-panel/imagegrp-panel.component'; +import { ImageOnlyComponent } from './view-modes/image-only/image-only.component'; +import { ImagePanelComponent } from './panels/image-panel/image-panel.component'; +import { ImageTextComponent } from './view-modes/image-text/image-text.component'; import { LbComponent } from './components/lb/lb.component'; +import { MainHeaderComponent } from './main-header/main-header.component'; +import { MainMenuComponent } from './main-menu/main-menu.component'; import { ManuscriptThumbnailsViewerComponent } from './components/manuscript-thumbnails-viewer/manuscript-thumbnails-viewer.component'; +import { ModComponent } from './components/mod/mod.component'; +import { ModDetailComponent } from './components/mod/mod-detail/mod-detail.component'; +import { ModGroupComponent } from './components/mod/mod-group/mod-group.component'; +import { ModSequenceComponent } from './components/mod/mod-sequence/mod-sequence.component'; import { MsContentsComponent } from './components/ms-contents/ms-contents.component'; -import { MsDescSelectorComponent } from './components/ms-desc-selector/ms-desc-selector.component'; import { MsDescComponent } from './components/ms-desc/ms-desc.component'; +import { MsDescSectionComponent } from './ui-components/ms-desc-section/ms-desc-section.component'; +import { MsDescSelectorComponent } from './components/ms-desc-selector/ms-desc-selector.component'; import { MsFragComponent } from './components/ms-frag/ms-frag.component'; import { MsIdentifierComponent } from './components/ms-identifier/ms-identifier.component'; import { MsItemComponent } from './components/ms-item/ms-item.component'; import { MsPartComponent } from './components/ms-part/ms-part.component'; import { NamedEntitiesListComponent } from './components/named-entities-list/named-entities-list.component'; -import { NamedEntityRefComponent } from './components/named-entity-ref/named-entity-ref.component'; -import { NamedEntityRelationComponent } from './components/named-entity-relation/named-entity-relation.component'; +import { NamedEntityComponent } from './components/named-entity/named-entity.component'; import { NamedEntityDetailComponent } from './components/named-entity/named-entity-detail/named-entity-detail.component'; import { NamedEntityOccurrenceComponent } from './components/named-entity/named-entity-occurrence/named-entity-occurrence.component'; -import { NamedEntityComponent } from './components/named-entity/named-entity.component'; +import { NamedEntityRefComponent } from './components/named-entity-ref/named-entity-ref.component'; +import { NamedEntityRelationComponent } from './components/named-entity-relation/named-entity-relation.component'; import { NamespaceComponent } from './components/namespace/namespace.component'; +import { NavBarComponent } from './nav-bar/nav-bar.component'; +import { NavBarImageComponent } from './nav-bar-image/nav-bar-image.component'; import { NoteComponent } from './components/note/note.component'; import { NotesStmtComponent } from './components/notes-stmt/notes-stmt.component'; import { OriginalEncodingViewerComponent } from './components/original-encoding-viewer/original-encoding-viewer.component'; import { OsdComponent } from './components/osd/osd.component'; -import { PageSelectorComponent } from './components/page-selector/page-selector.component'; import { PageComponent } from './components/page/page.component'; +import { PageSelectorComponent } from './components/page-selector/page-selector.component'; import { ParagraphComponent } from './components/paragraph/paragraph.component'; import { PhysDescComponent } from './components/phys-desc/phys-desc.component'; +import { PinboardComponent } from './pinboard/pinboard.component'; +import { PinboardPanelComponent } from './panels/pinboard-panel/pinboard-panel.component'; +import { PinnerComponent } from './pinboard/pinner/pinner.component'; import { ProjectDescComponent } from './components/project-desc/project-desc.component'; import { ProjectInfoComponent } from './components/project-info/project-info.component'; import { PublicationStmtComponent } from './components/publication-stmt/publication-stmt.component'; +import { QuoteEntryComponent } from './components/quote-entry/quote-entry.component'; import { ReadingComponent } from './components/reading/reading.component'; +import { ReadingTextComponent } from './view-modes/reading-text/reading-text.component'; import { RenditionComponent } from './components/rendition/rendition.component'; import { RespStmtComponent } from './components/resp-stmt/resp-stmt.component'; import { SamplingDeclComponent } from './components/sampling-decl/sampling-decl.component'; import { SeriesStmtComponent } from './components/series-stmt/series-stmt.component'; +import { ShortcutsComponent } from './shortcuts/shortcuts.component'; import { SicComponent } from './components/sic/sic.component'; +import { SpaceComponent } from './components/space/space.component'; +import { SourceDetailComponent } from './components/sources/source-detail/source-detail.component'; +import { SourceNoteComponent } from './components/sources/source-note/source-note.component'; +import { SourcesComponent } from './components/sources/sources.component'; +import { SourcesPanelComponent } from './panels/sources-panel/sources-panel.component'; +import { StartsWithPipe } from './pipes/starts-with.pipe'; +import { StyledBiblioEntryComponent } from './components/bibliography-info/biblio-styled/biblio-styled.component'; +import { SubstitutionComponent } from './components/substitution/substitution.component'; import { SuppliedComponent } from './components/supplied/supplied.component'; import { SurplusComponent } from './components/surplus/surplus.component'; import { TagsDeclComponent } from './components/tags-decl/tags-decl.component'; import { TextComponent } from './components/text/text.component'; +import { TextPanelComponent } from './panels/text-panel/text-panel.component'; +import { TextSourcesComponent } from './view-modes/text-sources/text-sources.component'; +import { TextTextComponent } from './view-modes/text-text/text-text.component'; +import { TextVersionsComponent } from './view-modes/text-versions/text-versions.component'; +import { ThemesService } from './services/themes.service'; import { TitleStmtComponent } from './components/title-stmt/title-stmt.component'; import { VerseComponent } from './components/verse/verse.component'; import { VersesGroupComponent } from './components/verses-group/verses-group.component'; -import { WordComponent } from './components/word/word.component'; -import { AnnotatorDirective } from './directives/annotator.directive'; -import { EditorialConventionLayoutDirective } from './directives/editorial-convention-layout.directive'; -import { HighlightDirective } from './directives/highlight.directive'; -import { HtmlAttributesDirective } from './directives/html-attributes.directive'; -import { EvtInfoComponent } from './evt-info/evt-info.component'; -import { MainHeaderComponent } from './main-header/main-header.component'; -import { MainMenuComponent } from './main-menu/main-menu.component'; -import { NavBarComponent } from './nav-bar/nav-bar.component'; -import { ImagePanelComponent } from './panels/image-panel/image-panel.component'; -import { PinboardPanelComponent } from './panels/pinboard-panel/pinboard-panel.component'; -import { SourcesPanelComponent } from './panels/sources-panel/sources-panel.component'; -import { TextPanelComponent } from './panels/text-panel/text-panel.component'; import { VersionPanelComponent } from './panels/version-panel/version-panel.component'; +import { VerseProseSelectComponent } from './components/verse-prose-select/verse-prose-select.component'; +import { WordComponent } from './components/word/word.component'; import { WitnessPanelComponent } from './panels/witness-panel/witness-panel.component'; -import { PinboardComponent } from './pinboard/pinboard.component'; -import { PinnerComponent } from './pinboard/pinner/pinner.component'; -import { FilterPipe } from './pipes/filter.pipe'; -import { HumanizePipe } from './pipes/humanize.pipe'; -import { StartsWithPipe } from './pipes/starts-with.pipe'; import { XmlBeautifyPipe } from './pipes/xml-beautify.pipe'; -import { AnnotatorService } from './services/annotator/annotator.service'; -import { IdbService } from './services/idb.service'; -import { ThemesService } from './services/themes.service'; -import { GenericParserService } from './services/xml-parsers/generic-parser.service'; import { XMLParsers } from './services/xml-parsers/xml-parsers'; -import { ShortcutsComponent } from './shortcuts/shortcuts.component'; -import { MsDescSectionComponent } from './ui-components/ms-desc-section/ms-desc-section.component'; -import { CollationComponent } from './view-modes/collation/collation.component'; -import { ImageTextComponent } from './view-modes/image-text/image-text.component'; -import { ReadingTextComponent } from './view-modes/reading-text/reading-text.component'; -import { TextSourcesComponent } from './view-modes/text-sources/text-sources.component'; -import { TextTextComponent } from './view-modes/text-text/text-text.component'; -import { TextVersionsComponent } from './view-modes/text-versions/text-versions.component'; -import { HandleImgErrorDirective } from './directives/handle-img-error.directive'; const routes: Routes = [ ]; @@ -131,6 +157,7 @@ export function initializeApp(appConfig: AppConfig) { const DynamicComponents = [ AdditionalComponent, AdditionComponent, + AnalogueEntryComponent, ApparatusEntryComponent, ApparatusEntryDetailComponent, ApparatusEntryReadingsComponent, @@ -167,12 +194,14 @@ const DynamicComponents = [ PhysDescComponent, ProjectDescComponent, PublicationStmtComponent, + QuoteEntryComponent, ReadingComponent, RenditionComponent, RespStmtComponent, SamplingDeclComponent, SeriesStmtComponent, SicComponent, + SpaceComponent, SuppliedComponent, SurplusComponent, TagsDeclComponent, @@ -185,10 +214,19 @@ const DynamicComponents = [ @NgModule({ declarations: [ + AnalogueDetailComponent, + AnaloguesComponent, AnnotatorDirective, AppComponent, + BiblioEntryComponent, + BibliographyInfoComponent, + BibliographicStyleSelectorComponent, + BiblioListComponent, + ChangeLayerSelectorComponent, CollationComponent, ContentViewerComponent, + CriticalApparatusComponent, + DocumentalMixedComponent, EditionLevelSelectorComponent, EditorialConventionLayoutDirective, EntitiesSelectComponent, @@ -200,14 +238,22 @@ const DynamicComponents = [ HtmlAttributesDirective, HumanizePipe, ImagePanelComponent, + ImageGrpPanelComponent, ImageTextComponent, + ImageOnlyComponent, + ImageImageComponent, MainHeaderComponent, MainMenuComponent, ManuscriptThumbnailsViewerComponent, + ModComponent, + ModDetailComponent, + ModGroupComponent, + ModSequenceComponent, MsDescSectionComponent, MsDescSelectorComponent, NamedEntityOccurrenceComponent, NavBarComponent, + NavBarImageComponent, OriginalEncodingViewerComponent, OsdComponent, PageComponent, @@ -218,13 +264,19 @@ const DynamicComponents = [ ProjectInfoComponent, ReadingTextComponent, ShortcutsComponent, + SourceDetailComponent, + SourceNoteComponent, + SourcesComponent, SourcesPanelComponent, StartsWithPipe, + StyledBiblioEntryComponent, + SubstitutionComponent, TextPanelComponent, TextSourcesComponent, TextTextComponent, TextVersionsComponent, VersionPanelComponent, + VerseProseSelectComponent, WitnessPanelComponent, XmlBeautifyPipe, ...DynamicComponents, diff --git a/src/app/components/addition/addition.component.html b/src/app/components/addition/addition.component.html index 06599ba12..f79924412 100644 --- a/src/app/components/addition/addition.component.html +++ b/src/app/components/addition/addition.component.html @@ -1,5 +1,6 @@ + [editionLevel]="editionLevel" [itemsToHighlight]="itemsToHighlight" + [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> \ No newline at end of file diff --git a/src/app/components/addition/addition.component.ts b/src/app/components/addition/addition.component.ts index 15bb98751..359409e09 100644 --- a/src/app/components/addition/addition.component.ts +++ b/src/app/components/addition/addition.component.ts @@ -4,9 +4,9 @@ import { EditorialConventionLayoutData } from '../../directives/editorial-conven import { Addition } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; import { EditorialConventionDefaults } from '../../services/editorial-conventions.service'; -import { EditionlevelSusceptible, Highlightable } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible } from '../components-mixins'; -export interface AdditionComponent extends EditionlevelSusceptible, Highlightable { } +export interface AdditionComponent extends EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible { } @register(Addition) @Component({ @@ -16,6 +16,7 @@ export interface AdditionComponent extends EditionlevelSusceptible, Highlightabl }) export class AdditionComponent { @Input() data: Addition; + @Input() selectedLayer: string; get editorialConventionData(): EditorialConventionLayoutData { return { @@ -30,6 +31,7 @@ export class AdditionComponent { switch (this.data.place) { case 'above': case 'sup': + case 'superscript': return 'additionAbove'; case 'below': case 'under': diff --git a/src/app/components/analogues/analogue-detail/analogue-detail.component.html b/src/app/components/analogues/analogue-detail/analogue-detail.component.html new file mode 100644 index 000000000..5bcd12330 --- /dev/null +++ b/src/app/components/analogues/analogue-detail/analogue-detail.component.html @@ -0,0 +1,88 @@ +
+
+ + + + + + + + +
+ +
+ diff --git a/src/app/components/analogues/analogue-detail/analogue-detail.component.scss b/src/app/components/analogues/analogue-detail/analogue-detail.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/analogues/analogue-detail/analogue-detail.component.spec.ts b/src/app/components/analogues/analogue-detail/analogue-detail.component.spec.ts new file mode 100644 index 000000000..df9bbd27f --- /dev/null +++ b/src/app/components/analogues/analogue-detail/analogue-detail.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AnalogueDetailComponent } from './analogue-detail.component'; + +describe('AnalogueDetailComponent', () => { + let component: AnalogueDetailComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AnalogueDetailComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AnalogueDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/analogues/analogue-detail/analogue-detail.component.ts b/src/app/components/analogues/analogue-detail/analogue-detail.component.ts new file mode 100644 index 000000000..fcc25aad3 --- /dev/null +++ b/src/app/components/analogues/analogue-detail/analogue-detail.component.ts @@ -0,0 +1,39 @@ +import { Analogue } from 'src/app/models/evt-models'; +import { BehaviorSubject } from 'rxjs'; +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { EditionLevelType } from 'src/app/app.config'; + +@Component({ + selector: 'evt-analogue-detail', + templateUrl: './analogue-detail.component.html', + styleUrls: ['./analogue-detail.component.scss','../../sources/sources.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AnalogueDetailComponent { + private edLevel: EditionLevelType; + public analogueEntry: Analogue; + public headVisible: boolean; + public detailVisible: boolean; + + @Input() set analogue(el: Analogue) { + this.analogueEntry = el; + this.checkVisibility(el); + } + get analogue() { return this.analogueEntry; } + + @Input() set editionLevel(el: EditionLevelType) { + this.edLevel = el; + this.editionLevelChange.next(el); + } + get editionLevel() { return this.edLevel; } + editionLevelChange = new BehaviorSubject(''); + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + + checkVisibility(anl: Analogue) { + this.headVisible = ((anl.sources.length > 0) || (anl.extSources.length > 0) || (anl.text.length > 0) || (anl.extLinkedElements.length > 0)); + this.detailVisible = (anl.sources.length > 0 || anl.extSources.length > 0 || anl.quotedElements.length > 0); + } +} diff --git a/src/app/components/analogues/analogue-entry/analogue-entry.component.html b/src/app/components/analogues/analogue-entry/analogue-entry.component.html new file mode 100644 index 000000000..873b75838 --- /dev/null +++ b/src/app/components/analogues/analogue-entry/analogue-entry.component.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/components/analogues/analogue-entry/analogue-entry.component.scss b/src/app/components/analogues/analogue-entry/analogue-entry.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/analogues/analogue-entry/analogue-entry.component.spec.ts b/src/app/components/analogues/analogue-entry/analogue-entry.component.spec.ts new file mode 100644 index 000000000..88ab07b8d --- /dev/null +++ b/src/app/components/analogues/analogue-entry/analogue-entry.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { AnalogueEntryComponent } from './analogue-entry.component'; + +describe('AnalogueEntryComponent', () => { + let component: AnalogueEntryComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ AnalogueEntryComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AnalogueEntryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/analogues/analogue-entry/analogue-entry.component.ts b/src/app/components/analogues/analogue-entry/analogue-entry.component.ts new file mode 100644 index 000000000..4c2c2bfd6 --- /dev/null +++ b/src/app/components/analogues/analogue-entry/analogue-entry.component.ts @@ -0,0 +1,92 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { BehaviorSubject, Subject } from 'rxjs'; +import { scan, startWith } from 'rxjs/operators'; + +import { EditorialConventionLayoutData } from '../../../directives/editorial-convention-layout.directive'; + +import { Analogue, AnalogueClass, Note } from '../../../models/evt-models'; +import { register } from '../../../services/component-register.service'; +import { EVTStatusService } from '../../../services/evt-status.service'; +import { EditionLevelType } from 'src/app/app.config'; + +export interface AnalogueEntryComponent {} +@register(Analogue) +@Component({ + selector: 'evt-analogue-entry', + templateUrl: './analogue-entry.component.html', + styleUrls: ['./analogue-entry.component.scss','../../sources/sources.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AnalogueEntryComponent implements OnInit { + + public _data: Analogue; + private edLevel: EditionLevelType; + + @Input() set data(dt: Analogue) { + this._data = dt; + } + + @Input() set editionLevel(el: EditionLevelType) { + this.edLevel = el; + this.editionLevelChange.next(el); + } + get editionLevel() { return this.edLevel; } + editionLevelChange = new BehaviorSubject(''); + + get editorialConventionData(): EditorialConventionLayoutData { + return { + name: 'analogues', + attributes: this.data?.attributes || {}, + editionLevel: this.editionLevel, + defaultsKey: 'analogues', + }; + } + + get data() { return this._data; } + + public analogueClass = AnalogueClass; + public dataForNote = {}; + public opened = false; + + toggleOpened$ = new Subject(); + opened$ = this.toggleOpened$.pipe( + scan((currentState: boolean, val: boolean | undefined) => val === undefined ? !currentState : val, false), + startWith(false), + ); + + toggleAppEntryBox(e: MouseEvent) { + e.stopPropagation(); + this.opened = !this.opened; + } + + closeAppEntryBox() { + this.opened = false; + } + + /** If the element has no text then it's displayed as a note.*/ + createNote(v): Note|{} { + return { + type: Note, + noteType: 'analogue', + noteLayout: 'popover', + exponent: v.path || '', + content: v.extLinkedElements.concat(v.extSources, v.sources) || {}, + attributes: v.attributes || [], + } + } + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + + ngOnInit() { + if (this.data.text.length === 0) { + this.dataForNote = this.createNote(this.data); + } + } + +} diff --git a/src/app/components/analogues/analogues.component.html b/src/app/components/analogues/analogues.component.html new file mode 100644 index 000000000..54797f3c5 --- /dev/null +++ b/src/app/components/analogues/analogues.component.html @@ -0,0 +1,7 @@ + + + + diff --git a/src/app/components/analogues/analogues.component.scss b/src/app/components/analogues/analogues.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/analogues/analogues.component.spec.ts b/src/app/components/analogues/analogues.component.spec.ts new file mode 100644 index 000000000..bc3220722 --- /dev/null +++ b/src/app/components/analogues/analogues.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AnaloguesComponent } from './analogues.component'; + +describe('AnaloguesComponent', () => { + let component: AnaloguesComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AnaloguesComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AnaloguesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/analogues/analogues.component.ts b/src/app/components/analogues/analogues.component.ts new file mode 100644 index 000000000..00ad4439e --- /dev/null +++ b/src/app/components/analogues/analogues.component.ts @@ -0,0 +1,45 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { BehaviorSubject, distinctUntilChanged } from 'rxjs'; +import { EditionLevelType } from 'src/app/app.config'; +import { AnalogueClass } from 'src/app/models/evt-models'; +import { EVTStatusService } from 'src/app/services/evt-status.service'; + +@Component({ + selector: 'evt-analogues', + templateUrl: './analogues.component.html', + styleUrls: ['./analogues.component.scss','../sources/sources.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AnaloguesComponent implements OnInit { + private edLevel: EditionLevelType; + public analogues; + private appClasses = [AnalogueClass]; + public analoguesInCurrentPage = this.evtStatusService.getPageElementsByClassList(this.appClasses) + + @Input() pageID : string; + + @Input() set editionLevel(el: EditionLevelType) { + this.edLevel = el; + this.editionLevelChange.next(el); + } + get editionLevel() { return this.edLevel; } + editionLevelChange = new BehaviorSubject(''); + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + + public getEntries(data) { + this.analogues = data.flat(); + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + + ngOnInit() { + this.analoguesInCurrentPage.pipe(distinctUntilChanged()).subscribe({ next: (data) => { this.getEntries(data) } }); + } + +} + diff --git a/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.html b/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.html index d7a665afb..d6728acae 100644 --- a/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.html +++ b/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.html @@ -28,6 +28,18 @@ + +
  • + {{'corrSeq' | translate}} + + + + +
  • +
  • {{'info' | translate}} @@ -72,10 +84,11 @@
  • +
  • {{'xml' | translate}} -
    {{ data.originalEncoding | xmlBeautify }}
    +
  • diff --git a/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.scss b/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.scss index fa1d82dcf..97c96c6fc 100644 --- a/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.scss +++ b/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.scss @@ -4,6 +4,7 @@ top: -0.063rem; z-index: 0; border-radius: 0; + margin-bottom: 0.5em; cursor: auto; @include themify($themes) { background-color: themed("appEntryBoxBackground"); @@ -19,7 +20,8 @@ .app-detail-content { display: flex; justify-content: space-between; - padding: 0.313rem; + padding: 0.2em 0 0 0; + background-color: rgba(32, 66, 81, 0.18); } .app-detail-readings { @@ -34,13 +36,17 @@ .app-detail-tabs { font-size: 1rem; - margin: 0 0.313rem 0 0.313rem; - padding: 0.313rem 0 0 0; + margin: 0; + padding: 0 0.4em 0 0.4em; + border-top: 3px double #000 !important; .nav-link { + font-size: 0.85em; + padding-top: 0.8em; + display:inline-block; background-color: transparent; color: #000000; line-height: 1; - padding: 0.25rem 0.375rem; + padding: 0.6rem 0.375rem 0.25rem 0.5rem; cursor: pointer; border-radius: 0; &.active { @@ -59,7 +65,7 @@ } } .tab-content { - padding: 0.625rem 0.813rem; + padding: 0.4rem 0.813rem; max-height: 12.5rem; overflow: auto; .info-lemma-wrapper { diff --git a/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.ts b/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.ts index 0da14a0f6..5e14aec41 100644 --- a/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.ts +++ b/src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.ts @@ -1,7 +1,9 @@ -import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; -import { ApparatusEntry, GenericElement, Reading } from '../../../models/evt-models'; +import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { ApparatusEntry, ChangeLayerData, GenericElement, Reading } from '../../../models/evt-models'; import { register } from '../../../services/component-register.service'; import { EVTModelService } from '../../../services/evt-model.service'; +import { distinctUntilChanged } from 'rxjs'; +import { EVTStatusService } from 'src/app/services/evt-status.service'; @Component({ selector: 'evt-apparatus-entry-detail', templateUrl: './apparatus-entry-detail.component.html', @@ -10,13 +12,20 @@ import { EVTModelService } from '../../../services/evt-model.service'; }) @register(ApparatusEntryDetailComponent) -export class ApparatusEntryDetailComponent implements OnInit { +export class ApparatusEntryDetailComponent implements OnInit, OnDestroy { + + private subscriptions; + @Input() data: ApparatusEntry; nestedApps: ApparatusEntry[] = []; rdgHasCounter = false; + @Input() selectedLayer: string; + + public orderedLayers: string[]; + get significantRdg(): Reading[] { - return this.data.readings.filter((rdg) => rdg.significant); + return this.data.readings.filter((rdg) => rdg?.significant); } get notSignificantRdg(): Reading[] { @@ -35,8 +44,13 @@ export class ApparatusEntryDetailComponent implements OnInit { }), {}); } + getLayerData(changeData: ChangeLayerData) { + this.orderedLayers = changeData?.layerOrder; + } + constructor( public evtModelService: EVTModelService, + public evtStatusService: EVTStatusService, ) { } @@ -44,6 +58,11 @@ export class ApparatusEntryDetailComponent implements OnInit { if (this.data.nestedAppsIDs.length > 0) { this.recoverNestedApps(this.data); } + this.subscriptions = this.evtStatusService.currentChanges$.pipe(distinctUntilChanged()).subscribe(({ next: (data) => this.getLayerData(data) })); + } + + ngOnDestroy() { + this.subscriptions.unsubscribe(); } recoverNestedApps(app: ApparatusEntry) { diff --git a/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.html b/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.html index ae80f0966..032f55ae3 100644 --- a/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.html +++ b/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.html @@ -3,23 +3,20 @@ It's necessary to handle both readings with and without nested apps, because nested apps inside app-entry-detail have different behaviour, so we can't use apparatus-entry-component to render them. --> - - + - - {{ witID }} + {{ witID }} ] - - + omit. - {{ wit }} + {{ wit }} \ No newline at end of file diff --git a/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.scss b/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.scss index 2b42b591a..ecc0cb3ca 100644 --- a/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.scss +++ b/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.scss @@ -2,4 +2,10 @@ display: inline-block; padding-right: 0.5rem; line-height: 1; +} + +.app-wit { + font-size: 90%; + font-weight: 600; + font-family: serif; } \ No newline at end of file diff --git a/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.ts b/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.ts index d06d32653..d7c2a6cfc 100644 --- a/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.ts +++ b/src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.ts @@ -18,6 +18,7 @@ export class ApparatusEntryReadingsComponent { @Input() rdgHasCounter: boolean; // eslint-disable-next-line @typescript-eslint/no-explicit-any @Input() template: TemplateRef; + @Input() selectedLayer: string; groups$ = this.evtModelService.groups$; @@ -27,7 +28,7 @@ export class ApparatusEntryReadingsComponent { } get significantRdg(): Reading[] { - return this.data.readings.filter((rdg) => rdg.significant); + return this.data.readings.filter((rdg) => rdg?.significant); } getWits$(witID: string): Observable { diff --git a/src/app/components/apparatus-entry/apparatus-entry.component.html b/src/app/components/apparatus-entry/apparatus-entry.component.html index 33cb2f4c4..1a79935c2 100644 --- a/src/app/components/apparatus-entry/apparatus-entry.component.html +++ b/src/app/components/apparatus-entry/apparatus-entry.component.html @@ -1,8 +1,18 @@ - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/components/apparatus-entry/apparatus-entry.component.ts b/src/app/components/apparatus-entry/apparatus-entry.component.ts index 43f4034ce..3b0c9cb42 100644 --- a/src/app/components/apparatus-entry/apparatus-entry.component.ts +++ b/src/app/components/apparatus-entry/apparatus-entry.component.ts @@ -5,20 +5,21 @@ import { AppConfig } from 'src/app/app.config'; import { ApparatusEntry } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; import { EVTModelService } from '../../services/evt-model.service'; -import { EditionlevelSusceptible, Highlightable } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible } from '../components-mixins'; import { ApparatusEntryDetailComponent } from './apparatus-entry-detail/apparatus-entry-detail.component'; -export interface ApparatusEntryComponent extends EditionlevelSusceptible, Highlightable { } +export interface ApparatusEntryComponent extends EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible { } @Component({ selector: 'evt-apparatus-entry', templateUrl: './apparatus-entry.component.html', styleUrls: ['./apparatus-entry.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, + changeDetection: ChangeDetectionStrategy.Default, }) @register(ApparatusEntry) export class ApparatusEntryComponent { @Input() data: ApparatusEntry; + @Input() selectedLayer: string; public opened = false; public isInsideAppDetail: boolean; diff --git a/src/app/components/biblio/biblio.component.html b/src/app/components/biblio/biblio.component.html new file mode 100644 index 000000000..9d909764d --- /dev/null +++ b/src/app/components/biblio/biblio.component.html @@ -0,0 +1,12 @@ + + + + {{element.value}}: + + {{ data[element.value] }} ,  + +
    +
    +
    + {{ data.text }} +
    \ No newline at end of file diff --git a/src/app/components/biblio/biblio.component.scss b/src/app/components/biblio/biblio.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/biblio/biblio.component.spec.ts b/src/app/components/biblio/biblio.component.spec.ts new file mode 100644 index 000000000..85bcdfb3b --- /dev/null +++ b/src/app/components/biblio/biblio.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BiblioEntryComponent } from './biblio.component'; + +describe('BiblioComponent', () => { + let component: BiblioEntryComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BiblioEntryComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BiblioEntryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/biblio/biblio.component.ts b/src/app/components/biblio/biblio.component.ts new file mode 100644 index 000000000..9027cbf99 --- /dev/null +++ b/src/app/components/biblio/biblio.component.ts @@ -0,0 +1,22 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { AppConfig } from 'src/app/app.config'; +import { BibliographicEntry } from 'src/app/models/evt-models'; + +@Component({ + selector: 'evt-biblio-entry', + templateUrl: './biblio.component.html', + styleUrls: ['./biblio.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class BiblioEntryComponent { + @Input() data: BibliographicEntry; + + public showList = AppConfig.evtSettings.edition.biblView.propsToShow; + public showAttrNames = AppConfig.evtSettings.edition.biblView.showAttrNames; + public showEmptyValues = AppConfig.evtSettings.edition.biblView.showEmptyValues; + public inline = AppConfig.evtSettings.edition.biblView.inline; + public isCommaSeparated = AppConfig.evtSettings.edition.biblView.commaSeparated; + public showMainElemTextContent = AppConfig.evtSettings.edition.biblView.showMainElemTextContent; + +} + diff --git a/src/app/components/biblioList/biblio-list.component.html b/src/app/components/biblioList/biblio-list.component.html new file mode 100644 index 000000000..afce81ff8 --- /dev/null +++ b/src/app/components/biblioList/biblio-list.component.html @@ -0,0 +1,43 @@ + + + + + + + +
      + + + + +
    • +
      + + + +
    +
    + + + + {{elem.head}} + +
      + +
    • +
      +
    +
    + + +
      +
    • +
    +
    + + +
      +
    • +
    +
    +
    \ No newline at end of file diff --git a/src/app/components/biblioList/biblio-list.component.scss b/src/app/components/biblioList/biblio-list.component.scss new file mode 100644 index 000000000..ac2ef1958 --- /dev/null +++ b/src/app/components/biblioList/biblio-list.component.scss @@ -0,0 +1,3 @@ +.bibl-head { + margin-left: 2rem; +} \ No newline at end of file diff --git a/src/app/components/biblioList/biblio-list.component.spec.ts b/src/app/components/biblioList/biblio-list.component.spec.ts new file mode 100644 index 000000000..ae0c4c134 --- /dev/null +++ b/src/app/components/biblioList/biblio-list.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BiblioListComponent } from './biblio-list.component'; + +describe('BiblioListComponent', () => { + let component: BiblioListComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BiblioListComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BiblioListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/biblioList/biblio-list.component.ts b/src/app/components/biblioList/biblio-list.component.ts new file mode 100644 index 000000000..e63ac53e9 --- /dev/null +++ b/src/app/components/biblioList/biblio-list.component.ts @@ -0,0 +1,11 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { BibliographicList } from '../../models/evt-models'; +@Component({ + selector: 'evt-biblio-list', + templateUrl: './biblio-list.component.html', + styleUrls: ['./biblio-list.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class BiblioListComponent { + @Input() data: BibliographicList; +} diff --git a/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.html b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.html new file mode 100644 index 000000000..fd52d3f34 --- /dev/null +++ b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.html @@ -0,0 +1,63 @@ + + + + + + + {{ biblEntry.text }} + + + + + + + + + + + (){{styleProperties?.propsDelimiter || ","}} + + + + + +«{{ entries[0]?.titleDetails ? entries[0].titleDetails.title : entries[0].title }}» + + + + + + {{name === "forename" && styleProperties.authorStyle?.forenameInitials ? author.forenameInitials : author[name] }} + + {{ author.fullName }} + {{ index < count - 2 ? (styleProperties.authorStyle?.delimiter || ',') : (styleProperties.authorStyle?.lastDelimiter || " and") }}  + + + + + + {{ monogr.publication }} +  vol. {{monogr.volumeNumber}} + + , , + {{ styleProperties.publicationStyle?.inBrackets && styleProperties.publicationStyle?.inBrackets.includes('issue') ? '(' : ', ' }}no. {{styleProperties?.publicationStyle?.inBrackets && styleProperties.publicationStyle?.inBrackets.includes('issue')? monogr.issueNumber + ')' : monogr.issueNumber }} + () + : pp. {{monogr.pageNumber}} + , {{monogr[property]}}: +  {{ "reprintedIn" | translate }}  + + + + +{{ entries[0].date[0] || 's.d.' }} + +{{ entries[0].publisher }} + +{{ entries[0].pubPlace }} + + + {{ "editedBy" | translate}} {{editor}}, + + + +https://doi.org/{{entry.doi}} \ No newline at end of file diff --git a/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.scss b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.scss new file mode 100644 index 000000000..b6da677de --- /dev/null +++ b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.scss @@ -0,0 +1,7 @@ +.font-italic { + font-style: italic; +} + +.font-normal { + font-style: normal !important; +} \ No newline at end of file diff --git a/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.spec.ts b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.spec.ts new file mode 100644 index 000000000..85bcdfb3b --- /dev/null +++ b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BiblioEntryComponent } from './biblio.component'; + +describe('BiblioComponent', () => { + let component: BiblioEntryComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BiblioEntryComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BiblioEntryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.ts b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.ts new file mode 100644 index 000000000..99ce5dcd5 --- /dev/null +++ b/src/app/components/bibliography-info/biblio-styled/biblio-styled.component.ts @@ -0,0 +1,113 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { AfterViewInit, ChangeDetectorRef, Component, Input, OnChanges, SimpleChanges, TemplateRef, ViewChild } from '@angular/core'; +import { AppConfig, BibliographicStyle, CitingRanges } from 'src/app/app.config'; +import { AuthorDetail, BibliographicEntry, BibliographicStructEntry } from 'src/app/models/evt-models'; + +@Component({ + selector: 'evt-styled-biblio-entry', + templateUrl: './biblio-styled.component.html', + styleUrls: ['./biblio-styled.component.scss'], +}) +export class StyledBiblioEntryComponent implements OnChanges, AfterViewInit { + + @ViewChild('title', { static: false }) title: TemplateRef; + @ViewChild('author', { static: false }) author: TemplateRef; + @ViewChild('publication', { static: false }) publication: TemplateRef; + @ViewChild('editor', { static: false }) editor: TemplateRef; + @ViewChild('date', { static: false }) date: TemplateRef; + @ViewChild('pubPlace', { static: false }) pubPlace: TemplateRef; + @ViewChild('publisher', { static: false }) publisher: TemplateRef; + @ViewChild('doi', { static: false }) doi: TemplateRef; + + + @Input() data: BibliographicEntry | BibliographicStructEntry; + @Input() style: string = AppConfig.evtSettings.ui.defaultBibliographicStyle; + + public biblEntry: any; + public showList: string[]; + public showAttrNames = AppConfig.evtSettings.edition.biblView.showAttrNames; + public showEmptyValues = AppConfig.evtSettings.edition.biblView.showEmptyValues; + public inline = AppConfig.evtSettings.edition.biblView.inline; + public isCommaSeparated = AppConfig.evtSettings.edition.biblView.commaSeparated; + public showMainElemTextContent = AppConfig.evtSettings.edition.biblView.showMainElemTextContent; + public styleProperties : BibliographicStyle; + + flattenBiblStruct(entry: BibliographicStructEntry): BibliographicEntry[] { + return entry.analytic.concat(entry.monogrs.concat(entry.series)); + } + + getContextForElement(element: string, structEntry: BibliographicStructEntry): BibliographicEntry[]{ + let context: BibliographicEntry[]; + switch(element){ + case 'title': + context = structEntry.analytic; + break; + case 'publication': + case 'date': + case 'publPlace': + case 'publisher': + case 'editor': + context = structEntry.monogrs; + break; + default: + context = this.flattenBiblStruct(structEntry); + break; + } + + return context; + } + + firstContainsProperty(entries: BibliographicEntry[], element:string): boolean{ + const elementInFirstEntry = entries[0]?.[element]; + + return elementInFirstEntry && elementInFirstEntry.length > 0; + } + + containsOnlyEmptyValues(arr: string[]): boolean{ + return arr.reduce((prev, x) => (x === '') && prev, true); + } + + requiresAcronym(elem: CitingRanges): boolean{ + const publicationStyle = this.styleProperties.publicationStyle || { citingAcronym: 'none' }; + if(!publicationStyle?.citingAcronym) { return false; } + + if(publicationStyle.citingAcronym === 'all'){ + return true; + }else if(publicationStyle.citingAcronym === 'none'){ + return false; + } + + return publicationStyle.citingAcronym.includes(elem); + } + + getPublisherDetailsOrder(): string[]{ + return this.showList.filter((x) => x === 'publisher' || x === 'pubPlace'); + } + + getAuthorsDetails(entries: BibliographicEntry[]): AuthorDetail[]{ + return entries.reduce((prev, e) => prev.concat(e.authorsDetails), []); + } + + isStructured(entry: BibliographicEntry): boolean{ + // searching for the most relevant signs of a structured entry. + return entry.originalEncoding.querySelectorAll('title, author, date').length > 0; + } + + ngOnChanges(changes: SimpleChanges): void { + if(this.data.type && this.data.type === BibliographicEntry){ + this.biblEntry = this.data as BibliographicEntry; + } + if(this.data.type && this.data.type === BibliographicStructEntry){ + this.biblEntry = this.data as BibliographicStructEntry; + } + if(changes.style){ + this.showList = AppConfig.evtSettings.ui.allowedBibliographicStyles[this.style].propsOrder; + this.styleProperties = AppConfig.evtSettings.ui.allowedBibliographicStyles[this.style].properties; + } + } + + constructor(private cd: ChangeDetectorRef){} + ngAfterViewInit(): void { + this.cd.detectChanges(); + } +} diff --git a/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.html b/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.html new file mode 100644 index 000000000..d68940e51 --- /dev/null +++ b/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.html @@ -0,0 +1,19 @@ +
    +
    + +
    + + +
    +
    +
    \ No newline at end of file diff --git a/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.scss b/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.spec.ts b/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.spec.ts new file mode 100644 index 000000000..820cc888b --- /dev/null +++ b/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { BibliographicStyleSelectorComponent } from './bibliographic-style-selector'; + +describe('BibliographicStyleSelectorComponent', () => { + let component: BibliographicStyleSelectorComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ BibliographicStyleSelectorComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(BibliographicStyleSelectorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.ts b/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.ts new file mode 100644 index 000000000..722c0d6e6 --- /dev/null +++ b/src/app/components/bibliography-info/bibliographic-style-selector/bibliographic-style-selector.ts @@ -0,0 +1,27 @@ +import { Component, EventEmitter, OnInit, Output } from '@angular/core'; +import { AppConfig } from 'src/app/app.config'; + +@Component({ + selector: 'evt-bibliographic-style-selector', + templateUrl: './bibliographic-style-selector.component.html', + styleUrls: ['./bibliographic-style-selector.component.scss'], +}) +export class BibliographicStyleSelectorComponent implements OnInit { + public bibliographicStyles = (Object.values(AppConfig.evtSettings.ui.allowedBibliographicStyles) || []).filter((el) => el.enabled); + public selectedStyleID : string; + + @Output() selectionChange: EventEmitter = new EventEmitter(); + + ngOnInit(){ + this.selectedStyleID = AppConfig.evtSettings.ui.defaultBibliographicStyle; + this.selectionChange.emit(this.selectedStyleID); + } + + stopPropagation(event: MouseEvent) { + event.stopPropagation(); + } + + changeStyle(){ + this.selectionChange.emit(this.selectedStyleID); + } +} diff --git a/src/app/components/bibliography-info/bibliography-info.component.html b/src/app/components/bibliography-info/bibliography-info.component.html new file mode 100644 index 000000000..c57905a49 --- /dev/null +++ b/src/app/components/bibliography-info/bibliography-info.component.html @@ -0,0 +1,10 @@ +
    + +
    +
    + + + + + +
    \ No newline at end of file diff --git a/src/app/components/bibliography-info/bibliography-info.component.scss b/src/app/components/bibliography-info/bibliography-info.component.scss new file mode 100644 index 000000000..f038883d0 --- /dev/null +++ b/src/app/components/bibliography-info/bibliography-info.component.scss @@ -0,0 +1,12 @@ +.bibliography_header { + position: relative; + margin-top: 0; + height: 45px; + max-height: 45px; + text-align: center; +} + +.bibliography_header>div { + display: flex; + align-content: center; +} \ No newline at end of file diff --git a/src/app/components/bibliography-info/bibliography-info.component.spec.ts b/src/app/components/bibliography-info/bibliography-info.component.spec.ts new file mode 100644 index 000000000..7b346c49a --- /dev/null +++ b/src/app/components/bibliography-info/bibliography-info.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BibliographyInfoComponent } from './bibliography-info.component'; + +describe('BibliographyInfoComponent', () => { + let component: BibliographyInfoComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BibliographyInfoComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BibliographyInfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/bibliography-info/bibliography-info.component.ts b/src/app/components/bibliography-info/bibliography-info.component.ts new file mode 100644 index 000000000..3b46b22b4 --- /dev/null +++ b/src/app/components/bibliography-info/bibliography-info.component.ts @@ -0,0 +1,23 @@ +import { Component, Input } from '@angular/core'; +import { BibliographicEntry, BibliographicStructEntry, BibliographyInfo } from 'src/app/models/evt-models'; +import { register } from 'src/app/services/component-register.service'; + +@Component({ + selector: 'evt-bibliography-info', + templateUrl: './bibliography-info.component.html', + styleUrls: ['./bibliography-info.component.scss'], +}) + +@register(BibliographyInfo) +export class BibliographyInfoComponent { + biblList : Array; + currentStyle : string; + + @Input() set data(bd : BibliographyInfo){ + this.biblList=bd.bibliographicEntries; + }; + + setCurrentStyle(s: string){ + this.currentStyle = s; + } +} diff --git a/src/app/components/change-layer-selector/change-layer-selector.component.html b/src/app/components/change-layer-selector/change-layer-selector.component.html new file mode 100644 index 000000000..12fb71bcf --- /dev/null +++ b/src/app/components/change-layer-selector/change-layer-selector.component.html @@ -0,0 +1,19 @@ + + + + {{item.id | translate}} + + + {{item.id | translate}}
    +
    +
    \ No newline at end of file diff --git a/src/app/components/change-layer-selector/change-layer-selector.component.scss b/src/app/components/change-layer-selector/change-layer-selector.component.scss new file mode 100644 index 000000000..74a1679ae --- /dev/null +++ b/src/app/components/change-layer-selector/change-layer-selector.component.scss @@ -0,0 +1,9 @@ +.layer-color-legenda { + width: 0.8em; + height: 0.8em; + display: inline-block; + margin-left: 0.5em; + border: 1px solid grey; + vertical-align: middle; + margin-bottom: 0.1em; +} \ No newline at end of file diff --git a/src/app/components/change-layer-selector/change-layer-selector.component.spec.ts b/src/app/components/change-layer-selector/change-layer-selector.component.spec.ts new file mode 100644 index 000000000..9ba94d877 --- /dev/null +++ b/src/app/components/change-layer-selector/change-layer-selector.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { ChangeLayerSelectorComponent } from './change-layer-selector.component'; + +describe('ChangeLayerSelectorComponent', () => { + let component: ChangeLayerSelectorComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ ChangeLayerSelectorComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ChangeLayerSelectorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/change-layer-selector/change-layer-selector.component.ts b/src/app/components/change-layer-selector/change-layer-selector.component.ts new file mode 100644 index 000000000..5bd8e4d74 --- /dev/null +++ b/src/app/components/change-layer-selector/change-layer-selector.component.ts @@ -0,0 +1,64 @@ +import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; +import { EvtIconInfo } from '../../ui-components/icon/icon.component'; +import { EVTStatusService } from 'src/app/services/evt-status.service'; +import { distinctUntilChanged, Subscription } from 'rxjs'; +import { AppConfig } from 'src/app/app.config'; +import { ChangeLayerData } from 'src/app/models/evt-models'; + +@Component({ + selector: 'evt-change-layer-selector', + templateUrl: './change-layer-selector.component.html', + styleUrls: ['./change-layer-selector.component.scss'], +}) +export class ChangeLayerSelectorComponent implements OnDestroy, OnInit { + + private subscription: Subscription; + + public selectedLayer: string; + public changeLayers: Array<{id: string; value: string}>; + + @Input() set selLayer(l: string) { + if (l) { + this.selectedLayer = l; + this.layerChange.emit(l); + } + } + + get selLayer() { return this.selectedLayer; } + + icon: EvtIconInfo = { + icon: 'clock', + additionalClasses: 'me-2', + }; + + @Output() layerChange = new EventEmitter(); + + getLayerData(data: ChangeLayerData) { + // eslint-disable-next-line prefer-const + let layerItems = []; + data?.layerOrder.forEach((layer) => layerItems.push({ id: layer, value: layer })); + this.changeLayers = layerItems; + } + + getLayerColor(layer: string): string { + const layerColors: string[] = AppConfig.evtSettings.edition.changeSequenceView.layerColors; + if ((layer !== undefined) && (layerColors[layer.replace('#','')])) { + return layerColors[layer.replace('#','')]; + } + + return 'black'; + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + + ngOnInit() { + this.subscription = this.evtStatusService.currentChanges$.pipe(distinctUntilChanged()).subscribe(({ next: (data) => this.getLayerData(data) })); + } + + ngOnDestroy() { + this.subscription.unsubscribe(); + } + +} diff --git a/src/app/components/choice/choice.component.html b/src/app/components/choice/choice.component.html index 54f5ba925..4fd6ee3ec 100644 --- a/src/app/components/choice/choice.component.html +++ b/src/app/components/choice/choice.component.html @@ -1,11 +1,11 @@ - + [editionLevel]="editionLevel" [itemsToHighlight]="itemsToHighlight" [textFlow]="textFlow" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> + [editionLevel]="alternativeEditionLevel" [itemsToHighlight]="itemsToHighlight" [textFlow]="textFlow" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> \ No newline at end of file diff --git a/src/app/components/choice/choice.component.ts b/src/app/components/choice/choice.component.ts index b63124b5f..6d1f3116c 100644 --- a/src/app/components/choice/choice.component.ts +++ b/src/app/components/choice/choice.component.ts @@ -3,9 +3,9 @@ import { Component, Input } from '@angular/core'; import { EditionLevelType } from '../../app.config'; import { Choice } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; -import { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; -export interface ChoiceComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { } +export interface ChoiceComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } @Component({ selector: 'evt-choice', @@ -15,9 +15,10 @@ export interface ChoiceComponent extends EditionlevelSusceptible, Highlightable, @register(Choice) export class ChoiceComponent { @Input() data: Choice; + @Input() selectedLayer: string; get content() { - if (this.editionLevel === 'diplomatic') { + if ((this.editionLevel === 'diplomatic') || (this.editionLevel === 'changesView')) { return this.data.originalContent; } @@ -25,7 +26,7 @@ export class ChoiceComponent { } get alternativeContent() { - if (this.editionLevel === 'diplomatic') { + if ((this.editionLevel === 'diplomatic') || (this.editionLevel === 'changesView')) { return this.data.normalizedContent; } diff --git a/src/app/components/components-mixins.ts b/src/app/components/components-mixins.ts index 2d1e18c48..bb387291d 100644 --- a/src/app/components/components-mixins.ts +++ b/src/app/components/components-mixins.ts @@ -21,3 +21,9 @@ export class EditionlevelSusceptible { export class TextFlowSusceptible { @Input() textFlow: TextFlow; } + +@Directive() +// tslint:disable-next-line: directive-class-suffix +export class ShowDeletionsSusceptible { + @Input() withDeletions: boolean; +} diff --git a/src/app/components/content-viewer/content-viewer.component.ts b/src/app/components/content-viewer/content-viewer.component.ts index 190ec386c..3f9b384e4 100644 --- a/src/app/components/content-viewer/content-viewer.component.ts +++ b/src/app/components/content-viewer/content-viewer.component.ts @@ -1,25 +1,31 @@ -import { Component, ComponentRef, Input, OnDestroy, ViewChild, ViewContainerRef } from '@angular/core'; +import { Component, ComponentRef, HostListener, Input, OnDestroy, ViewChild, ViewContainerRef } from '@angular/core'; import { AttributesMap } from 'ng-dynamic-component'; import { BehaviorSubject, combineLatest, Observable } from 'rxjs'; import { filter, map, shareReplay } from 'rxjs/operators'; import { EditionLevelType, TextFlow } from '../../app.config'; -import { GenericElement } from '../../models/evt-models'; +import { GenericElement, Paragraph, Verse } from '../../models/evt-models'; import { ComponentRegisterService } from '../../services/component-register.service'; import { EntitiesSelectService } from '../../services/entities-select.service'; import { EntitiesSelectItem } from '../entities-select/entities-select.component'; +import { EvtLinesHighlightService } from 'src/app/services/evt-lines-highlight.service'; +import { AdditionComponent } from '../addition/addition.component'; + @Component({ selector: 'evt-content-viewer', templateUrl: './content-viewer.component.html', }) export class ContentViewerComponent implements OnDestroy { - private v: GenericElement; - @Input() set content(v: GenericElement) { - this.v = v; - this.contentChange.next(v); + private _content: GenericElement; + + @Input() mouseCapture = false; + + @Input() set content(genericElement: GenericElement) { + this._content = genericElement; + this.contentChange.next(genericElement); } - get content() { return this.v; } + get content() { return this._content; } private ith: EntitiesSelectItem[]; @Input() set itemsToHighlight(i: EntitiesSelectItem[]) { @@ -48,9 +54,26 @@ export class ContentViewerComponent implements OnDestroy { get textFlow() { return this.txtFlow; } textFlowChange = new BehaviorSubject(undefined); + private withDels: boolean; + @Input() set withDeletions(d: boolean) { + this.withDels = d; + this.withDeletionsChange.next(d); + } + get withDeletions() { return this.withDels; } + withDeletionsChange = new BehaviorSubject(true); + + private selLayer: string; + @Input() set selectedLayer(d: string) { + this.selLayer = d; + this.selectedLayerChange.next(d); + } + get selectedLayer() { return this.selLayer; } + selectedLayerChange = new BehaviorSubject(undefined); + constructor( private componentRegister: ComponentRegisterService, private entitiesSelectService: EntitiesSelectService, + private evtHighlineService: EvtLinesHighlightService, ) { } @@ -69,8 +92,10 @@ export class ContentViewerComponent implements OnDestroy { this.itemsToHighlightChange, this.editionLevelChange, this.textFlowChange, + this.withDeletionsChange, + this.selectedLayerChange, ]).pipe( - map(([data, itemsToHighlight, editionLevel, textFlow]) => { + map(([data, itemsToHighlight, editionLevel, textFlow, withDeletions, selLayer]) => { if (this.toBeHighlighted()) { return { data, @@ -78,6 +103,8 @@ export class ContentViewerComponent implements OnDestroy { itemsToHighlight, editionLevel, textFlow, + withDeletions, + selLayer, }; } @@ -85,6 +112,8 @@ export class ContentViewerComponent implements OnDestroy { data, editionLevel, textFlow, + withDeletions, + selLayer, }; }), shareReplay(1), @@ -124,6 +153,106 @@ export class ContentViewerComponent implements OnDestroy { highlightColor: this.entitiesSelectService.getHighlightColor(data?.attributes ?? {}, data?.class, ith), }; } +// eslint-disable-next-line @typescript-eslint/no-explicit-any + @HostListener('click',['$event']) mouseClick($event: any) { + + if (!this._content.content){ + + if (this._content.type.name === AdditionComponent.name){ + return; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const lbId = (this._content as any).lbId; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const correspId = (this._content as any).correspId; + + if ((lbId === '' || correspId === '')){ + return; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if ((this._content as any).text === '' || (this._content as any).text === ' ' || + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this._content as any).type.name === Verse.name || + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this._content as any).type.name === Paragraph.name + ){ + return; + } + + const elementsSelected = this.evtHighlineService.lineBeginningSelected$.getValue().filter( (e) => e.selected); + const findElement = elementsSelected + .find((e)=>e.corresp === correspId && e.id === lbId); + + + if (findElement){ + this.evtHighlineService.lineBeginningSelected$.next( + elementsSelected.filter((e)=>e.corresp !== correspId && e.id !== lbId), + ); + + + } else { + + this.evtHighlineService.lineBeginningSelected$.next([ + ...elementsSelected, + { + id: lbId, corresp: correspId, selected: true, + }]); + } + } + $event.preventDefault(); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + @HostListener('mouseover',['$event']) mouseOver($event: any) { + if (this._content.type.name === AdditionComponent.name){ + return; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const lbId = (this._content as any).lbId; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const correspId = (this._content as any).correspId; + + if ((lbId === '' ||correspId === '') ){ + return; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const textComponent = (this._content as any).text; + + if (textComponent === '' || textComponent === ' ' || + ((this._content as GenericElement).type.name === Verse.name && !(this._content as GenericElement).attributes['facs'] ) || + (this._content as GenericElement).type.name === Paragraph.name + ){ + return; + } + + $event.preventDefault(); + const elementsSelected = this.evtHighlineService.lineBeginningSelected$.getValue().filter( (e) => e.selected); + + if ((this._content as GenericElement).type.name === Verse.name && (this._content as GenericElement).attributes['facs'] ){ + + const facsId = (this._content as GenericElement).attributes['facs'].replace('#', ''); + const id = (this._content as GenericElement).attributes['id']; + this.evtHighlineService.lineBeginningSelected$.next([ + { + id: facsId, corresp: id, selected: undefined, + }, ...elementsSelected]); + + + } else { + + this.evtHighlineService.lineBeginningSelected$.next([ + { + id: lbId, corresp: correspId, selected: undefined, + }, ...elementsSelected]); + } + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + @HostListener('mouseleave', ['$event']) mouseLeave($event: any) { + + $event.preventDefault(); + const elementsSelected = this.evtHighlineService.lineBeginningSelected$.getValue().filter( (e) => e.selected); + this.evtHighlineService.lineBeginningSelected$.next(elementsSelected); + } ngOnDestroy() { if (this.componentRef) { diff --git a/src/app/components/critical-apparatus/critical-apparatus.component.html b/src/app/components/critical-apparatus/critical-apparatus.component.html new file mode 100644 index 000000000..73bf2bb44 --- /dev/null +++ b/src/app/components/critical-apparatus/critical-apparatus.component.html @@ -0,0 +1,4 @@ + + + + diff --git a/src/app/components/critical-apparatus/critical-apparatus.component.scss b/src/app/components/critical-apparatus/critical-apparatus.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/critical-apparatus/critical-apparatus.component.spec.ts b/src/app/components/critical-apparatus/critical-apparatus.component.spec.ts new file mode 100644 index 000000000..58f42b1ca --- /dev/null +++ b/src/app/components/critical-apparatus/critical-apparatus.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CriticalApparatusComponent } from './critical-apparatus.component'; + +describe('CriticalApparatusComponent', () => { + let component: CriticalApparatusComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ CriticalApparatusComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CriticalApparatusComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/critical-apparatus/critical-apparatus.component.ts b/src/app/components/critical-apparatus/critical-apparatus.component.ts new file mode 100644 index 000000000..9b7b9cc4d --- /dev/null +++ b/src/app/components/critical-apparatus/critical-apparatus.component.ts @@ -0,0 +1,34 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { Component, Input, OnInit } from '@angular/core'; +import { EVTStatusService } from '../../services/evt-status.service'; +import { ApparatusEntry } from 'src/app/models/evt-models'; + +@Component({ + selector: 'evt-critical-apparatus', + templateUrl: './critical-apparatus.component.html', + styleUrls: ['./critical-apparatus.component.scss'], +}) +export class CriticalApparatusComponent implements OnInit { + public entries: ApparatusEntry; + private appClasses = ['app']; + public apparatusInCurrentPage = this.evtStatusService.getPageElementsByClassList(this.appClasses) + + @Input() pageID : string; + + public getEntries(data) { + this.entries = data.flat(); + } + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + + ngOnInit() { + this.apparatusInCurrentPage.subscribe({ next: (data) => { this.getEntries(data) } }); + } + +} diff --git a/src/app/components/deletion/deletion.component.html b/src/app/components/deletion/deletion.component.html index 23646d136..354046d6a 100644 --- a/src/app/components/deletion/deletion.component.html +++ b/src/app/components/deletion/deletion.component.html @@ -1,4 +1,4 @@ - diff --git a/src/app/components/deletion/deletion.component.ts b/src/app/components/deletion/deletion.component.ts index e3f709d4d..08f56db5f 100644 --- a/src/app/components/deletion/deletion.component.ts +++ b/src/app/components/deletion/deletion.component.ts @@ -1,17 +1,18 @@ -import { Component, Input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive'; import { Deletion } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; -import { EditionlevelSusceptible, Highlightable } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible } from '../components-mixins'; -export interface DeletionComponent extends EditionlevelSusceptible, Highlightable { } +export interface DeletionComponent extends EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible { } @register(Deletion) @Component({ selector: 'evt-deletion', templateUrl: './deletion.component.html', styleUrls: ['./deletion.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class DeletionComponent { @Input() data: Deletion; diff --git a/src/app/components/edition-level-selector/edition-level-selector.component.html b/src/app/components/edition-level-selector/edition-level-selector.component.html index 0be891a1a..03fc303f9 100644 --- a/src/app/components/edition-level-selector/edition-level-selector.component.html +++ b/src/app/components/edition-level-selector/edition-level-selector.component.html @@ -1,6 +1,6 @@ el.enable); + public selectableEditionLevels: EditionLevel[] = this.editionLevels.filter((el) => !el.hidden); - // tslint:disable-next-line: variable-name private _edLevelID: EditionLevelType; @Input() set editionLevelID(p: EditionLevelType) { - this._edLevelID = p; - this.selectedEditionLevel$.next(this._edLevelID); + this.subscriptions = this.evtStatusService.currentViewMode$.pipe().subscribe((view) => { + if (view !== undefined && (view.id === 'documentalMixed')) { + // documental mixed only allows changesView + this._edLevelID = 'changesView'; + this.selectedEditionLevel$.next('changesView'); + } else { + if (this.selectableEditionLevels.some((ed) => ed.id === p)) { + this._edLevelID = p; + this.selectedEditionLevel$.next(this._edLevelID); + } else { + // if the provided edition id doesn't exist (or is hidden/disabled) + // fallback to a default edition + this._edLevelID = this.selectableEditionLevels[0].id; + this.selectedEditionLevel$.next(this._edLevelID); + } + } + }); } get editionLevelID() { return this._edLevelID; } @@ -39,4 +56,13 @@ export class EditionLevelSelectorComponent { stopPropagation(event: MouseEvent) { event.stopPropagation(); } + + ngOnDestroy() { + this.subscriptions.unsubscribe(); + } + + constructor( + private evtStatusService: EVTStatusService, + ){} + } diff --git a/src/app/components/g/g.component.html b/src/app/components/g/g.component.html index 4b038fdb8..42ac619bd 100644 --- a/src/app/components/g/g.component.html +++ b/src/app/components/g/g.component.html @@ -1,17 +1,19 @@ + + [itemsToHighlight]="itemsToHighlight" [textFlow]="textFlow" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> - + + [editionLevel]="editionLevel" [itemsToHighlight]="itemsToHighlight" [textFlow]="textFlow" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> + [editionLevel]="editionLevel" [itemsToHighlight]="itemsToHighlight" [textFlow]="textFlow" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> - \ No newline at end of file + + \ No newline at end of file diff --git a/src/app/components/g/g.component.ts b/src/app/components/g/g.component.ts index 9c6e889fd..574792971 100644 --- a/src/app/components/g/g.component.ts +++ b/src/app/components/g/g.component.ts @@ -5,9 +5,9 @@ import { map } from 'rxjs/operators'; import { G } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; import { EVTModelService } from '../../services/evt-model.service'; -import { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; -export interface GComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { } +export interface GComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } @Component({ selector: 'evt-g', @@ -17,6 +17,7 @@ export interface GComponent extends EditionlevelSusceptible, Highlightable, Text @register(G) export class GComponent { @Input() data: G; + @Input() selectedLayer: string; specialChars$ = this.evtModelService.specialChars$.pipe( map((specialChars) => specialChars.find((char) => char.id === this.data.charId)), diff --git a/src/app/components/generic-element/generic-element.component.html b/src/app/components/generic-element/generic-element.component.html index c2ea29bf5..b5893c586 100644 --- a/src/app/components/generic-element/generic-element.component.html +++ b/src/app/components/generic-element/generic-element.component.html @@ -1,3 +1,3 @@ + [evtHighlight]="highlightData" [textFlow]="textFlow" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> diff --git a/src/app/components/generic-element/generic-element.component.ts b/src/app/components/generic-element/generic-element.component.ts index 3e0077d5c..e4397d61a 100644 --- a/src/app/components/generic-element/generic-element.component.ts +++ b/src/app/components/generic-element/generic-element.component.ts @@ -1,9 +1,9 @@ import { Component, Input } from '@angular/core'; import { GenericElement } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; -import { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; -export interface GenericElementComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { } +export interface GenericElementComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } @Component({ selector: 'evt-generic-element', @@ -13,4 +13,5 @@ export interface GenericElementComponent extends EditionlevelSusceptible, Highli @register(GenericElement) export class GenericElementComponent { @Input() data: GenericElement; + @Input() selectedLayer: string; } diff --git a/src/app/components/lb/lb.component.html b/src/app/components/lb/lb.component.html index 83512ba8e..55851415e 100644 --- a/src/app/components/lb/lb.component.html +++ b/src/app/components/lb/lb.component.html @@ -1,6 +1,9 @@ -
    - {{data.n}} + +
    + {{data.n}} +
    +  
    diff --git a/src/app/components/lb/lb.component.ts b/src/app/components/lb/lb.component.ts index abbf8d19e..6dd67a27c 100644 --- a/src/app/components/lb/lb.component.ts +++ b/src/app/components/lb/lb.component.ts @@ -4,9 +4,9 @@ import { map } from 'rxjs/operators'; import { Lb } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; import { EVTModelService } from '../../services/evt-model.service'; -import { EditionlevelSusceptible, TextFlowSusceptible } from '../components-mixins'; +import { EditionlevelSusceptible, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; -export interface LbComponent extends EditionlevelSusceptible, TextFlowSusceptible { } +export interface LbComponent extends EditionlevelSusceptible, TextFlowSusceptible, ShowDeletionsSusceptible { } @register(Lb) @Component({ @@ -40,6 +40,12 @@ export class LbComponent { ); } + get displayInline$() { + return this.displayBlock$.pipe( + map((displayBlock) => !displayBlock), + ); + } + constructor( private evtModelService: EVTModelService, ) { diff --git a/src/app/components/mod/mod-detail/mod-detail.component.html b/src/app/components/mod/mod-detail/mod-detail.component.html new file mode 100644 index 000000000..34417a25d --- /dev/null +++ b/src/app/components/mod/mod-detail/mod-detail.component.html @@ -0,0 +1,50 @@ +
    + +
    + 🕐 + + + + + + +
    + + + +
    + diff --git a/src/app/components/mod/mod-detail/mod-detail.component.scss b/src/app/components/mod/mod-detail/mod-detail.component.scss new file mode 100644 index 000000000..7426d571f --- /dev/null +++ b/src/app/components/mod/mod-detail/mod-detail.component.scss @@ -0,0 +1,18 @@ +.mod-symbol { + font-size: 1em; + color: #263238; + margin: 0; + padding: 0 0.3em 0 0; + display: inline; + font-family: "evt-icons" !important; + font-style: normal; + font-feature-settings: normal; + font-variant: normal; + text-transform: none; + -webkit-font-smoothing: antialiased; + vertical-align: super; + filter: saturate(0); + margin-top: 0.2em; + pointer-events: all; + cursor:pointer; +} \ No newline at end of file diff --git a/src/app/components/mod/mod-detail/mod-detail.component.spec.ts b/src/app/components/mod/mod-detail/mod-detail.component.spec.ts new file mode 100644 index 000000000..5dcad3b54 --- /dev/null +++ b/src/app/components/mod/mod-detail/mod-detail.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ModDetailComponent } from './mod-detail.component'; + +describe('ModDetailComponent', () => { + let component: ModDetailComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ModDetailComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ModDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/mod/mod-detail/mod-detail.component.ts b/src/app/components/mod/mod-detail/mod-detail.component.ts new file mode 100644 index 000000000..acc6f6930 --- /dev/null +++ b/src/app/components/mod/mod-detail/mod-detail.component.ts @@ -0,0 +1,54 @@ +import { Mod } from 'src/app/models/evt-models'; +import { BehaviorSubject } from 'rxjs'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { EditionLevelType } from 'src/app/app.config'; + +@Component({ + selector: 'evt-mod-detail', + templateUrl: './mod-detail.component.html', + styleUrls: ['./mod-detail.component.scss','../../sources/sources.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ModDetailComponent { + + private modEntry: Mod; + public boxVisible: boolean; + + public ordLayers: string[]; + public selLayer: string; + + @Output() hide: EventEmitter = new EventEmitter(); + + @Input() set orderedLayers(layers: string[]) { + this.ordLayers = layers; + } + get orderedLayers() { return this.ordLayers; } + + @Input() set selectedLayer(layer: string) { + this.selLayer = layer; + } + get selectedLayer() { return this.selLayer; } + + @Input() set mod(el: Mod) { + this.modEntry = el; + this.isBoxVisible(); + } + get mod() { return this.modEntry; } + + @Input() set editionLevel(el: EditionLevelType) { + this.editionLevelChange.next(el); + } + + editionLevelChange = new BehaviorSubject(''); + + isBoxVisible() { + this.boxVisible = !(this.modEntry?.insideApp[0]); + } + + emitHide() { + this.hide.emit(); + } + + +} + diff --git a/src/app/components/mod/mod-group/mod-group.component.html b/src/app/components/mod/mod-group/mod-group.component.html new file mode 100644 index 000000000..699ae8434 --- /dev/null +++ b/src/app/components/mod/mod-group/mod-group.component.html @@ -0,0 +1,68 @@ + + + + + +
    +
    + 🕐 + + + + + < + [{{getLayerIndex(orderedLayer)}}] + + + + + + +
    + + + +
    + diff --git a/src/app/components/mod/mod-group/mod-group.component.scss b/src/app/components/mod/mod-group/mod-group.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/mod/mod-group/mod-group.component.spec.ts b/src/app/components/mod/mod-group/mod-group.component.spec.ts new file mode 100644 index 000000000..4fb15670d --- /dev/null +++ b/src/app/components/mod/mod-group/mod-group.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { ModGroupComponent } from './mod-group.component'; + +describe('ModGroupComponent', () => { + let component: ModGroupComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ ModGroupComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ModGroupComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/mod/mod-group/mod-group.component.ts b/src/app/components/mod/mod-group/mod-group.component.ts new file mode 100644 index 000000000..d90109bc2 --- /dev/null +++ b/src/app/components/mod/mod-group/mod-group.component.ts @@ -0,0 +1,87 @@ +import { Component, Input } from '@angular/core'; + +import { Mod, Reading } from 'src/app/models/evt-models'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../../components-mixins'; +import { ChangeDetectionStrategy } from '@angular/core'; +import { AppConfig, EditionLevelType } from 'src/app/app.config'; +import { BehaviorSubject, distinctUntilChanged, map, scan, startWith, Subject } from 'rxjs'; +import { EVTStatusService } from 'src/app/services/evt-status.service'; + +export interface ModGroupComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } + +@Component({ + selector: 'evt-mod-group', + templateUrl: './mod-group.component.html', + styleUrls: ['../mod-detail/mod-detail.component.scss','../../sources/sources.component.scss'], + changeDetection: ChangeDetectionStrategy.Default, +}) + +export class ModGroupComponent { + + public changeSeparatorVisible = AppConfig.evtSettings.edition.showSeparatorBetweenChanges; + + public mods: Mod[]; + + public orderedLayers: string[]; + + public selLayer: string; + + public opened = false; + + toggleOpened$ = new Subject(); + opened$ = this.toggleOpened$.pipe( + scan((currentState: boolean, val: boolean | undefined) => val === undefined ? !currentState : val, false), + startWith(false), + ); + + public reversedLayers$ = this.evtStatusService.currentChanges$.pipe( + distinctUntilChanged(), + map(({ layerOrder }) => { + this.orderedLayers = layerOrder; + + return layerOrder.slice().reverse(); + } ), + ); + + @Input() withDeletions: boolean; + + @Input() orderedReadings: Reading[] + + @Input() set selectedLayer(layer: string) { + this.selLayer = layer; + } + get selectedLayers() { return this.selLayer; } + + @Input() set modGroup(el: Mod[]) { + this.mods = el; + } + get modGroup() { return this.mods; } + + @Input() set editionLevel(el: EditionLevelType) { + this.editionLevelChange.next(el); + } + + editionLevelChange = new BehaviorSubject(''); + + @Input() containerElement; + + getLayerIndex(layer): number { + if (layer) { + layer = layer.replace('#',''); + + return this.orderedLayers.indexOf(layer); + } + + return 0; + + } + + toggleModGroupEntryBox() { + this.opened = !this.opened; + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + +} diff --git a/src/app/components/mod/mod-sequence/mod-sequence.component.html b/src/app/components/mod/mod-sequence/mod-sequence.component.html new file mode 100644 index 000000000..fe9c0b8d0 --- /dev/null +++ b/src/app/components/mod/mod-sequence/mod-sequence.component.html @@ -0,0 +1,31 @@ + + + + + + {{mod.varSeq}} + + + + {{orderedLayer}}: + + + {{element.attributes.seq}} + + + + +
    + + + +
    \ No newline at end of file diff --git a/src/app/components/mod/mod-sequence/mod-sequence.component.scss b/src/app/components/mod/mod-sequence/mod-sequence.component.scss new file mode 100644 index 000000000..c3770324e --- /dev/null +++ b/src/app/components/mod/mod-sequence/mod-sequence.component.scss @@ -0,0 +1,10 @@ +.mod-varSeq, .mod-layer, .mod-seq { + display: inline-block; + margin-right: 0.3em; +} + +.mod-layer { + font-weight: initial; + font-family: system-ui; + font-size: 92%; +} diff --git a/src/app/components/mod/mod-sequence/mod-sequence.component.spec.ts b/src/app/components/mod/mod-sequence/mod-sequence.component.spec.ts new file mode 100644 index 000000000..b13f41c60 --- /dev/null +++ b/src/app/components/mod/mod-sequence/mod-sequence.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ModSequenceComponent } from './mod-sequence.component'; + +describe('ModSequenceComponent', () => { + let component: ModSequenceComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ModSequenceComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ModSequenceComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/mod/mod-sequence/mod-sequence.component.ts b/src/app/components/mod/mod-sequence/mod-sequence.component.ts new file mode 100644 index 000000000..b7e96ca44 --- /dev/null +++ b/src/app/components/mod/mod-sequence/mod-sequence.component.ts @@ -0,0 +1,39 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { AppConfig } from 'src/app/app.config'; +import { Mod } from 'src/app/models/evt-models'; + +@Component({ + selector: 'evt-mod-sequence', + templateUrl: './mod-sequence.component.html', + styleUrls: ['./mod-sequence.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ModSequenceComponent { + + public sequence: Mod[]; + + private ordLayers: string[]; + private selLayer: string; + + public showSeqAttr = AppConfig.evtSettings.edition.changeSequenceView.showSeqAttr; + public showVarSeqAttr = AppConfig.evtSettings.edition.changeSequenceView.showVarSeqAttr; + public colors = AppConfig.evtSettings.edition.changeSequenceView.layerColors; + + @Input() set orderedLayers(layers: string[]) { + this.ordLayers = layers; + } + get orderedLayers() { return this.ordLayers; } + + @Input() set selectedLayer(layer: string) { + this.selLayer = layer; + } + get selectedLayer() { return this.selLayer; } + + @Input() set data(el: Mod[]) { + this.sequence = Array.from(el); + } + + get data() { return this.sequence; } + +} + diff --git a/src/app/components/mod/mod.component.html b/src/app/components/mod/mod.component.html new file mode 100644 index 000000000..f99aa315b --- /dev/null +++ b/src/app/components/mod/mod.component.html @@ -0,0 +1,39 @@ + > + + + + + + {{getLayerIndex(data?.changeLayer) || 0}} + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/components/mod/mod.component.scss b/src/app/components/mod/mod.component.scss new file mode 100644 index 000000000..68863b534 --- /dev/null +++ b/src/app/components/mod/mod.component.scss @@ -0,0 +1,14 @@ +@import '../../../assets/scss/colors'; + +$modHoverBackground: get-color(highlightColor); + +.mod { + &:hover { + background: $modHoverBackground; + } +} +::ng-deep .mod { + &:hover .line-gap { + background: $modHoverBackground; + } +} \ No newline at end of file diff --git a/src/app/components/mod/mod.component.spec.ts b/src/app/components/mod/mod.component.spec.ts new file mode 100644 index 000000000..d6551eaac --- /dev/null +++ b/src/app/components/mod/mod.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { ModComponent } from './mod.component'; + +describe('ModComponent', () => { + let component: ModComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ ModComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ModComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/mod/mod.component.ts b/src/app/components/mod/mod.component.ts new file mode 100644 index 000000000..1a4245637 --- /dev/null +++ b/src/app/components/mod/mod.component.ts @@ -0,0 +1,133 @@ +import { Component, Input } from '@angular/core'; + +import { EditorialConventionLayoutData } from 'src/app/directives/editorial-convention-layout.directive'; +import { ChangeLayerData, GenericElement, Mod, Note } from 'src/app/models/evt-models'; +import { register } from 'src/app/services/component-register.service'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; +import { distinctUntilChanged, map, scan, startWith, Subject } from 'rxjs'; +import { EVTStatusService } from 'src/app/services/evt-status.service'; +import { AppConfig, EditionLevelType } from 'src/app/app.config'; + +export interface ModComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } + +@Component({ + selector: 'evt-mod', + templateUrl: './mod.component.html', + styleUrls: ['./mod.component.scss'], +}) + +@register(Mod) +export class ModComponent { + + @Input() data: Mod; + + @Input() editionLevel: EditionLevelType; + + @Input() withDeletions: boolean; + + public alwaysShow: boolean; + + @Input() set alwaysShown(yes: boolean) { + this.alwaysShow = yes; + } + get alwaysShown() { return this.alwaysShow; } + + public changeSeparatorVisible = AppConfig.evtSettings.edition.showSeparatorBetweenChanges; + + public showLayerMarkers = AppConfig.evtSettings.edition.showChangeLayerMarkerInText; + + public elementsToExcludeInTextFlow = [Note]; + + public orderedLayers: string[]; + + public selectedLayer: string; + + public selectedLayer$ = this.evtStatusService.currentChanges$.pipe( + distinctUntilChanged(), + map(({ selectedLayer, layerOrder }) => { + this.selectedLayer = selectedLayer; + this.orderedLayers = layerOrder; + if (layerOrder.length > 0) { + this.selectedLayer = this.selectedLayer ?? layerOrder[layerOrder.length-1]; + } + + return selectedLayer; + } ), + ); + + public isHidden = this.layerHidden; + + public changeLayerColor = this.getLayerColor; + + toggleOpened$ = new Subject(); + opened$ = this.toggleOpened$.pipe( + scan((currentState: boolean, val: boolean | undefined) => val === undefined ? !currentState : val, false), + startWith(false), + ); + + get editorialConventionData(): EditorialConventionLayoutData { + return { + name: 'mod', + attributes: this.data?.attributes || {}, + editionLevel: this.editionLevel || 'diplomatic', + defaultsKey: 'mod', + }; + } + + setLayerData(data: ChangeLayerData) { + this.orderedLayers = data?.layerOrder; + this.selectedLayer = data?.selectedLayer; + if (this.orderedLayers.length > 0) { + // default selected layer + this.selectedLayer = this.selectedLayer ?? this.orderedLayers[this.orderedLayers.length-1]; + } + } + + getLayerColor(): string { + const layerColors = AppConfig.evtSettings.edition.changeSequenceView.layerColors; + if ((this.data?.changeLayer) && (layerColors[this.data.changeLayer.replace('#','')])) { + return layerColors[this.data.changeLayer.replace('#','')]; + } + + return null; + } + + getLayerIndex(layer: string): number { + if (layer) { + layer = layer.replace('#',''); + + return this.orderedLayers.indexOf(layer); + } + + return 0; + } + + layerHidden(subEl: GenericElement): boolean { + if (this.editionLevel !== 'changesView') { + return false; + } + this.evtStatusService.currentChanges$.subscribe(({ next: (data) => this.setLayerData(data) })); + if ((this.selectedLayer !== undefined) && (this.data.changeLayer !== undefined)) { + // we are always showing deletions regardless of mod change layer + if (!this.data.insideApp[0] && subEl.class === 'del') { + return false; + } + // generic content managament + if (this.getLayerIndex(this.selectedLayer) < this.getLayerIndex(this.data.changeLayer)) { + return true; + } + } + + return false; + } + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + + +} diff --git a/src/app/components/named-entity-ref/named-entity-ref.component.html b/src/app/components/named-entity-ref/named-entity-ref.component.html index 6812b750c..54f7ed2b7 100644 --- a/src/app/components/named-entity-ref/named-entity-ref.component.html +++ b/src/app/components/named-entity-ref/named-entity-ref.component.html @@ -3,7 +3,7 @@ entityHighlight: entityHighlight$ | async, noDetails: noDetails$ | async }" [evtHighlight]="highlightData" [evtHtmlAttributes]="data?.attributes"> - +
    diff --git a/src/app/components/named-entity-ref/named-entity-ref.component.ts b/src/app/components/named-entity-ref/named-entity-ref.component.ts index a9d5bec52..ea16168b1 100644 --- a/src/app/components/named-entity-ref/named-entity-ref.component.ts +++ b/src/app/components/named-entity-ref/named-entity-ref.component.ts @@ -6,9 +6,9 @@ import { NamedEntityRef } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; import { EVTModelService } from '../../services/evt-model.service'; import { EVTStatusService } from '../../services/evt-status.service'; -import { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; -export interface NamedEntityRefComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { } +export interface NamedEntityRefComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } @Component({ selector: 'evt-named-entity-ref', @@ -18,6 +18,7 @@ export interface NamedEntityRefComponent extends EditionlevelSusceptible, Highli @register(NamedEntityRef) export class NamedEntityRefComponent { @Input() data: NamedEntityRef; + @Input() selectedLayer: string; availableEntities$ = this.evtModelService.namedEntities$.pipe( map((ne) => ne.all.entities.length > 0), ); diff --git a/src/app/components/note/note.component.html b/src/app/components/note/note.component.html index eb0ce45e5..afdaf9f4f 100644 --- a/src/app/components/note/note.component.html +++ b/src/app/components/note/note.component.html @@ -19,8 +19,10 @@ -
    - +
    + {{ 'analogue' | translate }}: + {{ 'source' | translate }}: +
    \ No newline at end of file diff --git a/src/app/components/note/note.component.scss b/src/app/components/note/note.component.scss index 7aa07ffb2..237d1b13a 100644 --- a/src/app/components/note/note.component.scss +++ b/src/app/components/note/note.component.scss @@ -74,4 +74,24 @@ } } } + + &[data-note-type='analogue'] { + .note-icon { + background: get-color(analogueNotes); + + .arrow { + border-top-color: get-color(criticalNotes); + } + } + } + + &[data-note-type='source'] { + .note-icon { + background: get-color(sourceNotes); + + .arrow { + border-top-color: get-color(criticalNotes); + } + } + } } \ No newline at end of file diff --git a/src/app/components/note/note.component.ts b/src/app/components/note/note.component.ts index 882dd2210..17fb0abd2 100644 --- a/src/app/components/note/note.component.ts +++ b/src/app/components/note/note.component.ts @@ -2,6 +2,7 @@ import { Component, Input, ViewChild } from '@angular/core'; import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'; import { Note } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; +import { EditionLevelType } from 'src/app/app.config'; @Component({ selector: 'evt-note', @@ -11,6 +12,9 @@ import { register } from '../../services/component-register.service'; @register(Note) export class NoteComponent { @Input() data: Note; + @Input() editionLevel: EditionLevelType; + @Input() withDeletions: boolean; + @Input() selectedLayer: string; @ViewChild('popover', { static: true }) popover: NgbPopover; public pinnerStyle = { diff --git a/src/app/components/osd/osd.component.ts b/src/app/components/osd/osd.component.ts index 3cfa46c0b..d7dd29455 100644 --- a/src/app/components/osd/osd.component.ts +++ b/src/app/components/osd/osd.component.ts @@ -1,13 +1,16 @@ -import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core'; +import { AppConfig } from 'src/app/app.config'; +import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs'; -import { distinctUntilChanged } from 'rxjs/operators'; -import { ViewerDataType } from '../../models/evt-models'; +import { BehaviorSubject, combineLatest, Observable, of, Subject, Subscription } from 'rxjs'; +import { combineLatestWith, distinctUntilChanged, filter, takeUntil, withLatestFrom } from 'rxjs/operators'; +import { Page, Point, Surface, ViewerDataType } from '../../models/evt-models'; import { OsdTileSource, ViewerDataInput, ViewerSource } from '../../models/evt-polymorphic-models'; import { uuid } from '../../utils/js-utils'; +import { EvtLinesHighlightService } from 'src/app/services/evt-lines-highlight.service'; +import { EVTModelService } from '../../services/evt-model.service'; // eslint-disable-next-line no-var declare var OpenSeadragon; @@ -36,46 +39,35 @@ interface OsdAnnotationAPI { } interface OsdViewerAPI { - addHandler: (eventName: string, handler: (x: { page: number }) => void) => void; + addHandler: (eventName: string, handler: (x: { page?: number, position: {} }) => void) => void; goToPage: (page: number) => void; viewport; gestureSettingsMouse; + container; raiseEvent: (evtName: string) => void; -} -/* -Observable - "@id": "https://www.e-codices.unifr.ch:443/loris/bge/bge-gr0044/bge-gr0044_e001.jp2/full/full/0/default.jpg", - "@type": "dctypes:Image", - "format": "image/jpeg", - "height": 7304, - "width": 5472, - "service": { - "@context": "http://iiif.io/api/image/2/context.json", - "@id": "https://www.e-codices.unifr.ch/loris/bge/bge-gr0044/bge-gr0044_e001.jp2", - "profile": "http://iiif.io/api/image/2/level2.json" - } + forceRedraw: ()=> void; + destroy: ()=> void; + canvasOverlay: ({})=> OpenSeaDragonOverlay; } -To: -{ - '@context': 'http://iiif.io/api/image/2/context.json', - '@id': 'https://www.e-codices.unifr.ch/loris/bge/bge-gr0044/bge-gr0044_e001.jp2', - 'profile': ['http://iiif.io/api/image/2/level2.json'], - 'protocol': 'http://iiif.io/api/image', - 'height': 7304, - 'width': 5472, +interface OpenSeaDragonOverlay{ + canvas: ()=> HTMLCanvasElement; + context2d: () => CanvasRenderingContext2D; } -*/ @Component({ selector: 'evt-osd', templateUrl: './osd.component.html', styleUrls: ['./osd.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class OsdComponent implements AfterViewInit, OnDestroy { @ViewChild('osd', { read: ElementRef, static: true }) div: ElementRef; + private unsubscribeAll$ = new Subject(); + @Input() surface: Surface | undefined; + @Input() pageElement: Page; // tslint:disable-next-line: variable-name private _options; @Input() set options(v) { // TODO: add interface to better type this object @@ -91,8 +83,13 @@ export class OsdComponent implements AfterViewInit, OnDestroy { public _viewerSource: ViewerDataInput; // tslint:disable-line: variable-name @Input() set viewerData(v: ViewerDataType) { this._viewerDataType = v.type; - this._viewerSource = ViewerSource.getSource(v, v.type); - this.sourceChange.next(this._viewerSource); + try { + + this._viewerSource = ViewerSource.getSource(v, v.type); + this.sourceChange.next(this._viewerSource); + }catch{ + + } } sourceChange = new BehaviorSubject([]); @@ -113,14 +110,28 @@ export class OsdComponent implements AfterViewInit, OnDestroy { viewer: Partial; viewerId: string; + overlay: OpenSeaDragonOverlay; annotationsHandle: OsdAnnotationAPI; private subscriptions: Subscription[] = []; tileSources: Observable; + @Input() sync: boolean; + + private lineSelected: Array<{ + id: string; corresp: string; + // ul: { x: number; y: number; }, + // lr: { x: number; y: number; }, + coords: Point[], + selected: boolean | undefined + }> = []; + mouseMoved$ = new Subject<{ x: number; y: number; }>(); + mouseClicked$ = new Subject<{ x: number; y: number; }>(); + constructor( - private http: HttpClient, + private http: HttpClient, private linesHighlightService: EvtLinesHighlightService, + private evtModelService: EVTModelService, ) { this.subscriptions.push( this.pageChange.pipe( @@ -129,40 +140,97 @@ export class OsdComponent implements AfterViewInit, OnDestroy { ); } + private isPointInsidePolygon(coords: Point[], x: number, y: number): boolean { + let intersections = 0; + + for (let i = 0; i < coords.length; i++) { + const p1 = coords[i]; + const p2 = coords[(i + 1) % coords.length]; + + if ((p1.y > y) !== (p2.y > y) && + x < ((p2.x - p1.x) * (y - p1.y)) / (p2.y - p1.y) + p1.x) { + intersections++; + } + } + + return intersections % 2 === 1; +} + ngAfterViewInit() { this.viewerId = uuid('openseadragon'); this.div.nativeElement.id = this.viewerId; + try{ this.tileSources = ViewerSource.getTileSource(this.sourceChange, this._viewerDataType, this.http); - + } catch{ + this.tileSources=of([]); + } const commonOptions = { - visibilityRatio: 0.1, - minZoomLevel: 0.5, - defaultZoomLevel: 1, + visibilityRatio: 0.66, + minZoomLevel: 0.3, + maxZoomLevel: AppConfig.evtSettings.edition.maxImageZoomLevel, + defaultZoomLevel: AppConfig.evtSettings.edition.defaultImageZoomLevel, sequenceMode: true, prefixUrl: 'assets/osd/images/', id: this.div.nativeElement.id, navigatorBackground: '#606060', - showNavigator: false, + showNavigator: true, gestureSettingsMouse: { clickToZoom: false, dblClickToZoom: true, }, + aspectRatio: 0.66, + immediateRender: true, + preload: true, placeholderFillStyle: 'assets/images/empty-image.jpg', }; - this.subscriptions.push(combineLatest([this.optionsChange, this.tileSources]) - .subscribe(([_, tileSources]) => { + this.subscriptions.push(combineLatest([this.optionsChange, this.tileSources, this.evtModelService.pages$]) + .subscribe(([_, tileSources, pages]) => { + + if (this.viewer){ + this.viewer.destroy(); + this.viewer = undefined; + } + //console.log('init'); + if (!!tileSources) { - this.viewer = OpenSeadragon({ - ...commonOptions, - ...this.options, - tileSources, - }); + //TODO: check this, for test only + if (tileSources.length === 0){ + + const tiles = pages.map((p) =>( { + type: 'image', + url: p.facsUrl, + // protocol: 'http', + // height: '', + // '@id': p.id, + // '@context': p.id, + // width: '', + // profile: [], + + + } as OsdTileSource)); + + //console.log('tiles:', tiles); + this.viewer = OpenSeadragon({ + ...commonOptions, + ...this.options, + tileSources: tiles, + }); + + + } else{ + this.viewer = OpenSeadragon({ + ...commonOptions, + ...this.options, + tileSources, + }); + } } else { + this.viewer = OpenSeadragon({ ...commonOptions, - ...this.options, + ...this.options, }); } this.viewer.goToPage(this.page); @@ -176,10 +244,136 @@ export class OsdComponent implements AfterViewInit, OnDestroy { context.clearRect(0, 0, canvasEl.width, canvasEl.height); } }); + this.viewer.addHandler('canvas-click', (canvasClickEvent) => { + const webPoint = canvasClickEvent.position; + const viewportPoint = this.viewer.viewport.pointFromPixel(webPoint); + const imagePoint = this.viewer.viewport.viewportToImageCoordinates(viewportPoint); + this.mouseClicked$.next({ x: imagePoint.x, y: imagePoint.y }); + }); + this.viewer.addHandler('open', () => { + const tracker = new OpenSeadragon.MouseTracker({ + element: this.viewer.container, + moveHandler: (event) => { + const webPoint = event.position; + const viewportPoint = this.viewer.viewport.pointFromPixel(webPoint); + const imagePoint = this.viewer.viewport.viewportToImageCoordinates(viewportPoint); + this.mouseMoved$.next({ x: imagePoint.x, y: imagePoint.y }); + }, + }); + tracker.setTracking(true); + }); + + if (this.surface?.zones?.lines?.length > 0){ + this.mouseMoved$.pipe( + combineLatestWith(this.linesHighlightService.syncTextImage$.asObservable()), + filter(([_mm, isSync])=> isSync), + distinctUntilChanged(), + takeUntil(this.unsubscribeAll$), + ).subscribe(([imagePoint]) => { + const linesOver = this.surface.zones.lines.filter((line) => this.isPointInsidePolygon(line.coords,imagePoint.x,imagePoint.y )); + + const elementsSelected = this.linesHighlightService.lineBeginningSelected$.getValue().filter( (e) => e.selected); + + const linesOverMapped = linesOver.filter((lo)=> !elementsSelected.some((es) => es.corresp === lo.corresp) ).map((lo) => ({ + id: lo.corresp, + corresp: lo.corresp, + selected: undefined, + })); + this.linesHighlightService.lineBeginningSelected$.next([ + ...elementsSelected, ...linesOverMapped, + ]); + + }); + + this.mouseClicked$.pipe( + combineLatestWith(this.linesHighlightService.syncTextImage$.asObservable()), + filter(([_mm, isSync])=> isSync), + distinctUntilChanged(), + takeUntil(this.unsubscribeAll$), + ).subscribe(([imagePoint]) => { + + const linesOver = this.surface.zones.lines.filter((line) => { + + const ulPoint = line.coords[0]; + const lrPoint = line.coords[2]; + + return imagePoint.x > ulPoint.x && + imagePoint.x < lrPoint.x && + imagePoint.y > ulPoint.y && + imagePoint.y < lrPoint.y; + }); + + let elementsSelected = this.linesHighlightService.lineBeginningSelected$.getValue().filter( (e) => e.selected); + + linesOver.forEach((lo)=>{ + if (elementsSelected.some((es) => es.corresp === lo.corresp)){ + elementsSelected = elementsSelected.filter((es) => es.corresp !== lo.corresp) + } else{ + elementsSelected.push({ + id: lo.corresp, + corresp: lo.corresp, + selected: true, + }); + } + }); + this.linesHighlightService.lineBeginningSelected$.next(elementsSelected); + }); + } + + if (!this.surface){ + return; + } + const originalImageWidth = +this.surface.graphics[0].width.replace('px',''); + const originalImageHeight = +this.surface.graphics[0].height.replace('px',''); + const aspectRatio = originalImageHeight / originalImageWidth; + + this.linesHighlightService.zonesHighlights$.pipe( + distinctUntilChanged((a, b) => JSON.stringify(a.map((ae) => ae.id)) === JSON.stringify(b.map((be) => be.id))), + withLatestFrom(this.linesHighlightService.syncTextImage$), + filter(([_zones, sync])=> sync), + takeUntil(this.unsubscribeAll$), + ).subscribe(([zones]) => { + this.lineSelected = zones ?? []; + if (zones?.length > 0) { + this.linesHighlightService.highlightLineText( + zones.map((z)=> ({ id: z.corresp, selected: z.selected })), + ); + } else { + this.linesHighlightService.clearHighlightText(); + } + this.viewer.forceRedraw(); + }); + + this.overlay = this.viewer.canvasOverlay({ + onRedraw: () => { + for (const lineSelected of this.lineSelected) { + const context2d = this.overlay.context2d(); + context2d.beginPath(); + context2d.moveTo( + (lineSelected.coords[0].x /originalImageWidth), + (lineSelected.coords[0].y / originalImageHeight) * aspectRatio); + for (let i = 1; i < lineSelected.coords.length; i++) { + context2d.lineTo( + (lineSelected.coords[i].x/originalImageWidth), + (lineSelected.coords[i].y/ originalImageHeight)* aspectRatio, + ); + } + context2d.closePath(); + context2d.fillStyle = lineSelected.selected ? '#aaaa19' : '#d36019'; + context2d.globalAlpha = 0.2; + context2d.strokeStyle = 'black'; + context2d.fill(); + } + }, + clearBeforeRedraw: true, + }); })); } ngOnDestroy(): void { this.subscriptions.forEach((s) => s.unsubscribe()); + this.linesHighlightService.clearHighlightText(); + this.unsubscribeAll$.next(); + this.unsubscribeAll$.complete(); } } diff --git a/src/app/components/page-selector/page-selector.component.scss b/src/app/components/page-selector/page-selector.component.scss index e69de29bb..9f3b2a4a6 100644 --- a/src/app/components/page-selector/page-selector.component.scss +++ b/src/app/components/page-selector/page-selector.component.scss @@ -0,0 +1,3 @@ +.ng-select { + min-width: 100px; +} \ No newline at end of file diff --git a/src/app/components/page/page.component.html b/src/app/components/page/page.component.html index 03bde9514..9f151ae0f 100644 --- a/src/app/components/page/page.component.html +++ b/src/app/components/page/page.component.html @@ -1,6 +1,13 @@ + [content]="element" + [editionLevel]="editionLevel?.id" + [itemsToHighlight]="itemsToHighlight" + [textFlow]="textFlow" + [withDeletions]="withDeletions" + [selectedLayer]="selectedLayer"> {{data.n}} + + [itemsToHighlight]="itemsToHighlight" [evtHighlight]="highlightData" [textFlow]="textFlow" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer">

    \ No newline at end of file diff --git a/src/app/components/paragraph/paragraph.component.ts b/src/app/components/paragraph/paragraph.component.ts index 6f411891e..67b431d51 100644 --- a/src/app/components/paragraph/paragraph.component.ts +++ b/src/app/components/paragraph/paragraph.component.ts @@ -2,9 +2,9 @@ import { Component, Input } from '@angular/core'; import { Paragraph } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; -import { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; -export interface ParagraphComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { } +export interface ParagraphComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } @Component({ selector: 'evt-paragraph', @@ -15,4 +15,5 @@ export interface ParagraphComponent extends EditionlevelSusceptible, Highlightab @register(Paragraph) export class ParagraphComponent { @Input() data: Paragraph; + @Input() selectedLayer: string; } diff --git a/src/app/components/project-info/project-info.component.html b/src/app/components/project-info/project-info.component.html index e16f40175..971bd619b 100644 --- a/src/app/components/project-info/project-info.component.html +++ b/src/app/components/project-info/project-info.component.html @@ -1,10 +1,11 @@
    - - - - - + + + + + +
    diff --git a/src/app/components/project-info/project-info.component.ts b/src/app/components/project-info/project-info.component.ts index ebfc2415d..61886fc47 100644 --- a/src/app/components/project-info/project-info.component.ts +++ b/src/app/components/project-info/project-info.component.ts @@ -14,6 +14,8 @@ export class ProjectInfoComponent { tap((info) => this.openSection('fileDesc', info.fileDesc)), ); + public bibliographicEntries$ = this.evtModelService.bibliographicEntries$; + public selectedSection: { key: string; content: GenericElement }; constructor( diff --git a/src/app/components/quote-entry/quote-entry.component.html b/src/app/components/quote-entry/quote-entry.component.html new file mode 100644 index 000000000..88031b06b --- /dev/null +++ b/src/app/components/quote-entry/quote-entry.component.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/components/quote-entry/quote-entry.component.scss b/src/app/components/quote-entry/quote-entry.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/quote-entry/quote-entry.component.spec.ts b/src/app/components/quote-entry/quote-entry.component.spec.ts new file mode 100644 index 000000000..0c3058bf3 --- /dev/null +++ b/src/app/components/quote-entry/quote-entry.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { QuoteEntryComponent } from './quote-entry.component'; + +describe('QuoteEntryComponent', () => { + let component: QuoteEntryComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ QuoteEntryComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QuoteEntryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/quote-entry/quote-entry.component.ts b/src/app/components/quote-entry/quote-entry.component.ts new file mode 100644 index 000000000..b4b862b34 --- /dev/null +++ b/src/app/components/quote-entry/quote-entry.component.ts @@ -0,0 +1,93 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { BehaviorSubject, Subject } from 'rxjs'; +import { scan, startWith } from 'rxjs/operators'; + +import { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive'; + +import { Note, QuoteEntry, SourceClass } from '../../models/evt-models'; +import { register } from '../../services/component-register.service'; +import { EVTStatusService } from '../../services/evt-status.service'; +import { EditionLevelType } from 'src/app/app.config'; +import { EditionlevelSusceptible, Highlightable } from '../components-mixins'; + +export interface QuoteEntryComponent extends EditionlevelSusceptible, Highlightable {} +@register(QuoteEntry) +@Component({ + selector: 'evt-quote-entry', + templateUrl: './quote-entry.component.html', + styleUrls: ['./quote-entry.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class QuoteEntryComponent implements OnInit { + public _data: QuoteEntry; + private edLevel: EditionLevelType; + public sourceClass = SourceClass; + public dataForNote = {}; + public opened = false; + + @Input() set data(dt: QuoteEntry) { + this._data = dt; + } + + @Input() set editionLevel(el: EditionLevelType) { + this.edLevel = el; + this.editionLevelChange.next(el); + } + + get editionLevel() { return this.edLevel; } + editionLevelChange = new BehaviorSubject(''); + + get editorialConventionData(): EditorialConventionLayoutData { + return { + name: 'sources', + attributes: this.data?.attributes || {}, + editionLevel: this.editionLevel, + defaultsKey: 'sources', + }; + } + + get data() { return this._data; } + + toggleOpened$ = new Subject(); + + opened$ = this.toggleOpened$.pipe( + scan((currentState: boolean, val: boolean | undefined) => val === undefined ? !currentState : val, false), + startWith(false), + ); + + toggleAppEntryBox(e: MouseEvent) { + e.stopPropagation(); + this.opened = !this.opened; + } + + closeAppEntryBox() { + this.opened = false; + } + + /** If quote has no text it's displayed as a note.*/ + createNote(v): Note|{} { + return { + type: Note, + noteType: 'source', + noteLayout: 'popover', + exponent: v.path || '', + content: v.extSources.concat(v.extElements), + attributes: v.attributes || [], + } + } + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + + ngOnInit() { + if ((this.data.isNoteView) || ((this.data.text.length === 0) && ((this.data.extElements.length !== 0) || (this.data.extSources.length !== 0)))) { + this.dataForNote = this.createNote(this.data); + } + } + +} diff --git a/src/app/components/reading/reading.component.html b/src/app/components/reading/reading.component.html index f4c50d389..a3ce47d75 100644 --- a/src/app/components/reading/reading.component.html +++ b/src/app/components/reading/reading.component.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/components/reading/reading.component.ts b/src/app/components/reading/reading.component.ts index a4171a8f8..c0217ba12 100644 --- a/src/app/components/reading/reading.component.ts +++ b/src/app/components/reading/reading.component.ts @@ -1,7 +1,8 @@ import { Component, Input } from '@angular/core'; -import { Reading } from '../../models/evt-models'; +import { Mod, Reading } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; import { Highlightable } from '../components-mixins'; +import { AppConfig, EditionLevelType } from 'src/app/app.config'; @Component({ selector: 'evt-reading', @@ -11,4 +12,19 @@ import { Highlightable } from '../components-mixins'; @register(Reading) export class ReadingComponent extends Highlightable { @Input() data: Reading; + @Input() editionLevel: EditionLevelType; + @Input() withDeletions: boolean; + @Input() selectedLayer: string; + + public ModType = Mod; + + getLayerColor(changeLayer) { + const layerColors = AppConfig.evtSettings.edition.changeSequenceView.layerColors; + if ((changeLayer) && (layerColors[changeLayer.replace('#','')])) { + return layerColors[changeLayer.replace('#','')]; + } + + return 'black'; + } + } diff --git a/src/app/components/sources/source-detail/source-detail.component.html b/src/app/components/sources/source-detail/source-detail.component.html new file mode 100644 index 000000000..6d56fe61f --- /dev/null +++ b/src/app/components/sources/source-detail/source-detail.component.html @@ -0,0 +1,111 @@ + +
    +
    + + + + + + + + +
    + +
    \ No newline at end of file diff --git a/src/app/components/sources/source-detail/source-detail.component.spec.ts b/src/app/components/sources/source-detail/source-detail.component.spec.ts new file mode 100644 index 000000000..19c8d10fe --- /dev/null +++ b/src/app/components/sources/source-detail/source-detail.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SourceDetailComponent } from './source-detail.component'; + +describe('SourceDetailComponent', () => { + let component: SourceDetailComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SourceDetailComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SourceDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/sources/source-detail/source-detail.component.ts b/src/app/components/sources/source-detail/source-detail.component.ts new file mode 100644 index 000000000..824793574 --- /dev/null +++ b/src/app/components/sources/source-detail/source-detail.component.ts @@ -0,0 +1,45 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; +import { EditionLevelType } from 'src/app/app.config'; +import { QuoteEntry } from 'src/app/models/evt-models'; + +@Component({ + selector: 'evt-source-detail', + templateUrl: './source-detail.component.html', + styleUrls: ['../../sources/sources.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class SourceDetailComponent { + + private edLevel: EditionLevelType; + + public sourceEntry: QuoteEntry; + + public headVisible: boolean; + + public detailVisible: boolean; + + @Input() set source(el: QuoteEntry) { + this.sourceEntry = el; + this.checkVisibility(el); + } + get source() { return this.sourceEntry; } + + @Input() set editionLevel(el: EditionLevelType) { + this.edLevel = el; + this.editionLevelChange.next(el); + } + get editionLevel() { return this.edLevel; } + editionLevelChange = new BehaviorSubject(''); + + checkVisibility(source: QuoteEntry) { + this.headVisible = (source.sources.length > 0 || source.extSources.length > 0 || source.text.length > 0); + this.detailVisible = (source.sources.length > 0 || source.extSources.length > 0 || source.extElements.length > 0); + } + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + +} + diff --git a/src/app/components/sources/source-note/source-note.component.html b/src/app/components/sources/source-note/source-note.component.html new file mode 100644 index 000000000..7423eb0d4 --- /dev/null +++ b/src/app/components/sources/source-note/source-note.component.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/components/sources/source-note/source-note.component.spec.ts b/src/app/components/sources/source-note/source-note.component.spec.ts new file mode 100644 index 000000000..7ffee2fe7 --- /dev/null +++ b/src/app/components/sources/source-note/source-note.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SourceNoteComponent } from './source-note.component'; + +describe('SourceNoteComponent', () => { + let component: SourceNoteComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SourceNoteComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SourceNoteComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/sources/source-note/source-note.component.ts b/src/app/components/sources/source-note/source-note.component.ts new file mode 100644 index 000000000..7e6aa62ce --- /dev/null +++ b/src/app/components/sources/source-note/source-note.component.ts @@ -0,0 +1,50 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { Note, Paragraph, Verse, VersesGroup } from 'src/app/models/evt-models'; + +@Component({ + selector: 'evt-source-note', + templateUrl: './source-note.component.html', + styleUrls: ['../../sources/sources.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class SourceNoteComponent implements OnInit { + public _data: Paragraph|Verse|VersesGroup; + public dataForNote = {}; + + @Input() set data(dt: Paragraph|Verse|VersesGroup) { + this._data = dt; + } + + get data() { return this._data } + + createNote(v, type): Note { + const item = v[type]; + const content = item.extSources || []; + if (type === 'analogue') { + content.push( item.extLinkedElements ); + content.push( item.sources ); + } + if (type === 'source') { + content.push( item.extElements ); + } + + return { + type: Note, + noteType: type, + noteLayout: 'popover', + exponent: v.path || '', + content: content, + attributes: v.attributes || [], + } + } + + ngOnInit() { + if (this.data.source !== null) { + this.dataForNote = this.createNote(this.data, 'source'); + } + if (this.data.analogue !== null) { + this.dataForNote = this.createNote(this.data, 'analogue'); + } + } + +} diff --git a/src/app/components/sources/sources.component.html b/src/app/components/sources/sources.component.html new file mode 100644 index 000000000..0a5d03555 --- /dev/null +++ b/src/app/components/sources/sources.component.html @@ -0,0 +1,7 @@ + + + + + diff --git a/src/app/components/sources/sources.component.scss b/src/app/components/sources/sources.component.scss new file mode 100644 index 000000000..489edc6d9 --- /dev/null +++ b/src/app/components/sources/sources.component.scss @@ -0,0 +1,155 @@ +@import "../../../assets/scss/themes"; + +.source-container { + border: 1px solid rgba(128, 128, 128, 0.149); + padding: 0; + margin:0.5em 0em 0.5em 0em; + font-family: serif; + box-shadow: 1px 1px 1px rgba(0,0,0,0.1); + background-color:rgba(32, 66, 81, 0.18); + min-width: 35em; +} + +.source-detail-content { + display: inline-flex !important; + background-color: unset !important; + padding-bottom: 0.6em !important; + pointer-events: none; + font-weight: initial; +} + +.source-quote-button { + float: right; + margin-right: 0.3rem; + font-size: 1.5em; + margin-top: -0.5em; + color: #00000073; + height: 2em; + display: none; + pointer-events: none; +} + +.bibl-head { + margin-left: 2rem; +} + +.source-quote-symbol { + font-size: 1rem; + color: #263238; + margin: 0; + padding: 0 0.3rem 0 0; + display: inline; + font-family: 'evt-icons' !important; + font-style: normal; + font-feature-settings: normal; + font-variant: normal; + text-transform: none; + line-height: 0; + -webkit-font-smoothing: antialiased; + vertical-align: super; +} + +.sources-cat { + font-variant: small-caps; + font-size: 95%; + position: relative; + font-style: normal; +} + +.source-detail-btn { + background-color: transparent; + color: #000000; + line-height: 1; + padding: 0.25rem 0.375rem; + cursor: pointer; + border-radius: 0; + font-style: normal; + font-weight:initial; + font-family: system-ui; + font-size: 92%; +} + +.tab-content { + margin-top: -0.1em; +} + +.app-detail-content, +.app-detail-tabs { + background-color: #f1f4f5; + font-size: 1rem; +} + +.app-detail-content { + display: flex; + font-style: italic; + justify-content: space-between; + padding: 0.313rem; + background-color: rgba(128, 128, 128, 0.18); +} + +.app-detail-tabs { + font-size: 1rem; + margin: 0; + padding: 0; + border-top: 3px double #000 !important; + .nav-link { + display:inline-block; + background-color: transparent; + color: #000000; + line-height: 1; + padding: 0.25rem 0.375rem; + cursor: pointer; + border-radius: 0; + &.active { + color: #000000; + } + } + .nav-pills, + .tab-content { + margin-right: 0rem; + margin-left: 0rem; + } + .nav-link.active, + .tab-content { + @include themify($themes) { + background-color: themed("appEntryBoxActiveTabBg"); + } + } + .tab-content { + max-height: 12.5rem; + overflow: auto; + padding-top: 0.5rem; + padding-left: 1rem; + padding-bottom: 0.5rem; + .info-lemma-wrapper { + @include themify($themes) { + border-bottom: 1px solid themed("baseBorder"); + } + padding-bottom: 0.438rem; + margin-bottom: 0.625rem; + } + .info-rdg { + font-style: italic; + font-weight: 600; + font-size: 1.063rem; + } + .info-label { + font-size: 0.813rem; + text-transform: uppercase; + font-weight: 600; + } + .more-info-label { + display: block; + font-size: 0.813rem; + font-weight: 600; + text-transform: uppercase; + margin-bottom: 0.25rem; + } + pre { + white-space: pre-wrap; + font-size: 75%; + margin-bottom: 0; + margin-top: -1rem; + } + } +} \ No newline at end of file diff --git a/src/app/components/sources/sources.component.spec.ts b/src/app/components/sources/sources.component.spec.ts new file mode 100644 index 000000000..baf51b0d4 --- /dev/null +++ b/src/app/components/sources/sources.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SourcesComponent } from './sources.component'; + +describe('SourcesComponent', () => { + let component: SourcesComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SourcesComponent ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SourcesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/sources/sources.component.ts b/src/app/components/sources/sources.component.ts new file mode 100644 index 000000000..10a9058b2 --- /dev/null +++ b/src/app/components/sources/sources.component.ts @@ -0,0 +1,45 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { EVTStatusService } from 'src/app/services/evt-status.service'; +import { SourceClass } from '../../models/evt-models'; +import { BehaviorSubject, distinctUntilChanged } from 'rxjs'; +import { EditionLevelType } from 'src/app/app.config'; + +@Component({ + selector: 'evt-sources', + templateUrl: './sources.component.html', + styleUrls: ['./sources.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class SourcesComponent implements OnInit { + private edLevel: EditionLevelType; + public entries; + private appClasses = [SourceClass]; + public quotesInCurrentPage = this.evtStatusService.getPageElementsByClassList(this.appClasses) + + @Input() pageID : string; + + @Input() set editionLevel(el: EditionLevelType) { + this.edLevel = el; + this.editionLevelChange.next(el); + } + + get editionLevel() { return this.edLevel; } + editionLevelChange = new BehaviorSubject(''); + + public getEntries(data) { + this.entries = data.flat(); + } + + stopPropagation(e: MouseEvent) { + e.stopPropagation(); + } + + constructor( + public evtStatusService: EVTStatusService, + ) {} + + ngOnInit() { + this.quotesInCurrentPage.pipe(distinctUntilChanged()).subscribe({ next: (data) => { this.getEntries(data) } }); + } + +} diff --git a/src/app/components/space/space.component.html b/src/app/components/space/space.component.html new file mode 100644 index 000000000..24d798354 --- /dev/null +++ b/src/app/components/space/space.component.html @@ -0,0 +1,13 @@ + + + +   + + + + + \ No newline at end of file diff --git a/src/app/components/space/space.component.scss b/src/app/components/space/space.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/space/space.component.spec.ts b/src/app/components/space/space.component.spec.ts new file mode 100644 index 000000000..b1dd8a35a --- /dev/null +++ b/src/app/components/space/space.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { SpaceComponent } from './space.component'; + +describe('AdditionComponent', () => { + let component: SpaceComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ SpaceComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SpaceComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/space/space.component.ts b/src/app/components/space/space.component.ts new file mode 100644 index 000000000..e48b53437 --- /dev/null +++ b/src/app/components/space/space.component.ts @@ -0,0 +1,33 @@ +import { Component, Input } from '@angular/core'; + +import { EditionLevelType, TextFlow } from 'src/app/app.config'; +import { HighlightData, Space } from '../../models/evt-models'; +import { register } from '../../services/component-register.service'; +import { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins'; +import { EntitiesSelectItem } from '../entities-select/entities-select.component'; + +export interface ISpaceComponent extends EditionlevelSusceptible, Highlightable, HighlightData, TextFlowSusceptible { } + +@register(Space) +@Component({ + selector: 'evt-space', + templateUrl: './space.component.html', + styleUrls: ['./space.component.scss'], +}) + +export class SpaceComponent implements ISpaceComponent { + @Input() textFlow: TextFlow; + @Input() highlight: boolean; + @Input() highlightColor: string; + @Input() editionLevel: EditionLevelType; + @Input() highlightData: HighlightData; + @Input() itemsToHighlight: EntitiesSelectItem[]; + @Input() data: Space; + + get numSpaces() { + return Array(parseInt( this.data.attributes.quantity)).keys(); + } + constructor() { + //console.log('this is a space'); + } +} diff --git a/src/app/components/substitution/substitution.component.html b/src/app/components/substitution/substitution.component.html new file mode 100644 index 000000000..425d31cb9 --- /dev/null +++ b/src/app/components/substitution/substitution.component.html @@ -0,0 +1,17 @@ + + + + + + + > + + + + + \ No newline at end of file diff --git a/src/app/components/substitution/substitution.component.scss b/src/app/components/substitution/substitution.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/components/substitution/substitution.component.spec.ts b/src/app/components/substitution/substitution.component.spec.ts new file mode 100644 index 000000000..dc6dc3883 --- /dev/null +++ b/src/app/components/substitution/substitution.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { SubstitutionComponent } from './substitution.component'; + +describe('SubstitutionComponent', () => { + let component: SubstitutionComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ SubstitutionComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SubstitutionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/substitution/substitution.component.ts b/src/app/components/substitution/substitution.component.ts new file mode 100644 index 000000000..1d5cd686d --- /dev/null +++ b/src/app/components/substitution/substitution.component.ts @@ -0,0 +1,26 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { Subst } from 'src/app/models/evt-models'; +import { register } from 'src/app/services/component-register.service'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; +import { AppConfig } from 'src/app/app.config'; + +export interface SubstitutionComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } + +@Component({ + selector: 'evt-substitution', + templateUrl: './substitution.component.html', + styleUrls: ['./substitution.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) + +@register(Subst) +export class SubstitutionComponent { + + public substMarker = AppConfig.evtSettings.edition.showSubstitutionMarker; + + @Input() data: Subst; + + @Input() selectedLayer: string; + + +} diff --git a/src/app/components/text/text.component.html b/src/app/components/text/text.component.html index d778b40ff..b4162493d 100644 --- a/src/app/components/text/text.component.html +++ b/src/app/components/text/text.component.html @@ -1 +1 @@ -{{ data.text }} \ No newline at end of file +{{ data.text }} \ No newline at end of file diff --git a/src/app/components/verse-prose-select/verse-prose-select.component.html b/src/app/components/verse-prose-select/verse-prose-select.component.html new file mode 100644 index 000000000..e7b91e27d --- /dev/null +++ b/src/app/components/verse-prose-select/verse-prose-select.component.html @@ -0,0 +1,22 @@ + + + + {{'option_' + item | translate}} + + + + + {{'option_' + item | translate}} + + diff --git a/src/app/components/verse-prose-select/verse-prose-select.component.scss b/src/app/components/verse-prose-select/verse-prose-select.component.scss new file mode 100644 index 000000000..98fc37f13 --- /dev/null +++ b/src/app/components/verse-prose-select/verse-prose-select.component.scss @@ -0,0 +1,34 @@ +ng-select { + width: 13.5rem; + margin-left: 0.3rem; +} + +// ng-select overrides +::ng-deep .ng-select { + min-width: 150px; +} + +::ng-deep .ng-dropdown-panel { + .ng-dropdown-panel-items { + .ng-optgroup { + font-size: 90%; + font-variant: small-caps; + } + + .ng-option { + padding-left: 10px !important; + } + } +} + +.entities-select-toolbar { + display: flex; + + .btn { + flex-grow: 1; + } +} + +.select-all-btn { + cursor: pointer; +} \ No newline at end of file diff --git a/src/app/components/verse-prose-select/verse-prose-select.component.spec.ts b/src/app/components/verse-prose-select/verse-prose-select.component.spec.ts new file mode 100644 index 000000000..f5de84a98 --- /dev/null +++ b/src/app/components/verse-prose-select/verse-prose-select.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { VerseProseSelectComponent } from './verse-prose-select.component'; + +describe('VerseProseSelectComponent', () => { + let component: VerseProseSelectComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ VerseProseSelectComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(VerseProseSelectComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/verse-prose-select/verse-prose-select.component.ts b/src/app/components/verse-prose-select/verse-prose-select.component.ts new file mode 100644 index 000000000..fbb8835bd --- /dev/null +++ b/src/app/components/verse-prose-select/verse-prose-select.component.ts @@ -0,0 +1,30 @@ +import { Component, EventEmitter, Output } from '@angular/core'; +import { TextFlow } from 'src/app/app.config'; +import { EvtIconInfo } from 'src/app/ui-components/icon/icon.component'; +import { AppConfig } from 'src/app/app.config'; + +@Component({ + selector: 'evt-verse-prose-select', + templateUrl: './verse-prose-select.component.html', + styleUrls: ['./verse-prose-select.component.scss'], +}) + +export class VerseProseSelectComponent { + + @Output() textModeSelectionChange: EventEmitter = new EventEmitter(); + + public defaultTextFlow: TextFlow = AppConfig.evtSettings.edition.defaultTextFlow; + + public textFlowTypes: TextFlow[] = ['prose', 'prose_mixed', 'verses']; + + public selectedType: TextFlow = this.defaultTextFlow; + + getProseVersesTogglerIcon(textFlowMode: TextFlow): EvtIconInfo { + return { icon: textFlowMode === 'verses' ? 'align-justify' : 'align-left', iconSet: 'fas' }; + } + + updateSelectedType(textFlowType: TextFlow) { + this.textModeSelectionChange.emit(textFlowType); + }; + +} diff --git a/src/app/components/verse/verse.component.html b/src/app/components/verse/verse.component.html index 025760ba3..78f5aaa7d 100644 --- a/src/app/components/verse/verse.component.html +++ b/src/app/components/verse/verse.component.html @@ -1,7 +1,8 @@ - - {{data.n}} - + + {{data.n}} + + \ No newline at end of file diff --git a/src/app/components/verse/verse.component.scss b/src/app/components/verse/verse.component.scss index ba1a24aae..fc1ac74e8 100644 --- a/src/app/components/verse/verse.component.scss +++ b/src/app/components/verse/verse.component.scss @@ -38,4 +38,10 @@ } } } + .verse-baloon { + border: 1px solid #000000b5; + border-radius: 8px; + padding-bottom: 1rem; + padding-right: 0.1rem; + } } diff --git a/src/app/components/verse/verse.component.ts b/src/app/components/verse/verse.component.ts index 7fe0c0776..bd5fad5da 100644 --- a/src/app/components/verse/verse.component.ts +++ b/src/app/components/verse/verse.component.ts @@ -5,9 +5,9 @@ import { EVTModelService } from '../../services/evt-model.service'; import { AppConfig } from '../../app.config'; import { Verse } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; -import { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible, TextFlowSusceptible } from '../components-mixins'; -export interface VerseComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { } +export interface VerseComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible, ShowDeletionsSusceptible { } @Component({ selector: 'evt-verse', @@ -18,6 +18,7 @@ export interface VerseComponent extends EditionlevelSusceptible, Highlightable, @register(Verse) export class VerseComponent { @Input() data: Verse; + @Input() selectedLayer: string; get displayBlock$() { return this.evtModelService.lines$.pipe( @@ -27,6 +28,7 @@ export class VerseComponent { // unless current text flow is prose // In critical edition verses are always shown as block items, unless current text flow is prose switch (this.editionLevel) { + case 'changesView': case 'diplomatic': case 'interpretative': return this.textFlow === 'verses' || !hasLines; @@ -44,6 +46,14 @@ export class VerseComponent { return !isNaN(num) && num % this.verseNumberPrinter !== 0; } + get baloon() { + return this.textFlow !== 'verses'; + } + + get plainTextFlow() { + return this.textFlow === 'prose'; + } + constructor( private evtModelService: EVTModelService, ) { diff --git a/src/app/components/verses-group/verses-group.component.html b/src/app/components/verses-group/verses-group.component.html index 9682c8c87..781098e5f 100644 --- a/src/app/components/verses-group/verses-group.component.html +++ b/src/app/components/verses-group/verses-group.component.html @@ -1,7 +1,8 @@ {{data.n}} + + [itemsToHighlight]="itemsToHighlight" [evtHighlight]="highlightData" [withDeletions]="withDeletions" [selectedLayer]="selectedLayer"> diff --git a/src/app/components/verses-group/verses-group.component.ts b/src/app/components/verses-group/verses-group.component.ts index 530937ff3..1bbdda300 100644 --- a/src/app/components/verses-group/verses-group.component.ts +++ b/src/app/components/verses-group/verses-group.component.ts @@ -4,9 +4,9 @@ import { map } from 'rxjs/operators'; import { VersesGroup } from '../../models/evt-models'; import { register } from '../../services/component-register.service'; import { EVTModelService } from '../../services/evt-model.service'; -import { EditionlevelSusceptible, Highlightable } from '../components-mixins'; +import { EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible } from '../components-mixins'; -export interface VersesGroupComponent extends EditionlevelSusceptible, Highlightable { } +export interface VersesGroupComponent extends EditionlevelSusceptible, Highlightable, ShowDeletionsSusceptible { } @Component({ selector: 'evt-verses-group', @@ -16,6 +16,7 @@ export interface VersesGroupComponent extends EditionlevelSusceptible, Highlight @register(VersesGroup) export class VersesGroupComponent { @Input() data: VersesGroup; + @Input() selectedLayer: string; get displayBlock$() { return this.evtModelService.lines$.pipe( @@ -24,6 +25,7 @@ export class VersesGroupComponent { // In diplomatic and interpretative edition, if the text doesn't have any line, verses group are shown as block items // In critical edition verses are always shown as block items switch (this.editionLevel) { + case 'changesView': case 'diplomatic': case 'interpretative': return !hasLines; diff --git a/src/app/main-header/main-header.component.html b/src/app/main-header/main-header.component.html index 25aa8c8d0..74d86bafc 100644 --- a/src/app/main-header/main-header.component.html +++ b/src/app/main-header/main-header.component.html @@ -13,7 +13,7 @@ *ngFor="let viewMode of viewModes; trackBy: trackViewModes;" [title]="viewMode.label" [active]="viewMode.id === (currentViewMode$ | async)?.id" [inverted]="true" (btnClick)="selectViewMode(viewMode)" - [iconLeft]="{icon: viewMode.icon, iconSet: 'evt', additionalClasses: 'viewMode-selector'}"> + [iconLeft]="{icon: viewMode.icon, iconSet: viewMode.iconSet, additionalClasses: 'viewMode-selector'}"> this.downloadXML(), }, ]; diff --git a/src/app/models/evt-models.ts b/src/app/models/evt-models.ts index 09dedca9a..54e3f77c5 100644 --- a/src/app/models/evt-models.ts +++ b/src/app/models/evt-models.ts @@ -36,7 +36,8 @@ export interface EditionStructure { pages: Page[]; } -export type ViewModeId = 'readingText' | 'imageText' | 'textText' | 'collation' | 'textSources' | 'textVersions'; +export type ViewModeId = 'imageOnly' | 'imageImage' | 'readingText' | 'imageText' | 'textText' | +'collation' | 'textSources' | 'textVersions' | 'documentalMixed'; export interface ViewMode { id: ViewModeId; @@ -56,6 +57,12 @@ export interface Page { facsUrl: string; } +export interface ChangeLayerData { + list: ListChange[], + layerOrder: string[], + selectedLayer: string, +} + export interface NamedEntities { all: { lists: NamedEntitiesList[]; @@ -166,14 +173,99 @@ export class ApparatusEntry extends GenericElement { lemma: Reading; readings: Reading[]; notes: Note[]; - originalEncoding: string; + originalEncoding: OriginalEncodingNodeType; nestedAppsIDs: string[]; + changes: Mod[]; + orderedReadings: Reading[]; +} + +export const SourceClass = 'sourceEntry'; +export const AnalogueClass = 'analogueEntry'; +export const BibliographyClass = 'biblioEntry'; + +export class QuoteEntry extends GenericElement { + id: string; + tagName: string; + text: string; + sources: BibliographicEntry[] | BibliographicList[]; + extSources: BibliographicEntry[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + extElements: any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + analogues: any; + originalEncoding: OriginalEncodingNodeType; + isInsideCit: boolean; + quotedText: string[]; + isNoteView: boolean; + contentToShow: Array> + //rend: string; +} + +export class BibliographicList extends GenericElement { + id: string; + head: string[]; + sources: BibliographicEntry[]; +} + +export interface AuthorDetail { + fullName: string; + forename: string; + forenameInitials: string; + surname: string; + nameLink: string[]; +} +export class BibliographicEntry extends GenericElement { + id: string; + author: string[]; + authorsDetails: AuthorDetail[]; + editor: string[]; + title: string[]; + titleDetails: { + title: string; + level: string; + }; + publication: string; + idno: string[]; + doi: string; + date: string[]; + publisher: string[]; + pubPlace: string[]; + citedRange: string[]; + pageNumber: string; + volumeNumber: string; + issueNumber: string; + biblScope: string[]; + text: string; + quotedText: string; + isInsideCit: boolean; + originalEncoding: OriginalEncodingNodeType; +} + +export class BibliographicStructEntry extends GenericElement { + id: string; + analytic: BibliographicEntry[]; + monogrs: BibliographicEntry[]; + series: BibliographicEntry[]; + originalEncoding: OriginalEncodingNodeType; +} + +export class Analogue extends GenericElement { + id: string; + text: string; + sources: BibliographicEntry[]; + extSources: BibliographicEntry[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + extLinkedElements: any; + quotedElements: [{ id: string, quote: string }]; + contentToShow: Array> + originalEncoding: OriginalEncodingNodeType; } export class Reading extends GenericElement { id: string; witIDs: string[]; significant: boolean; + varSeq?: number; } export interface GridItem { @@ -194,10 +286,14 @@ export class Note extends GenericElement { noteLayout: NoteLayout; noteType: string; exponent: string; + source: QuoteEntry; + analogue: Analogue; } export class Paragraph extends GenericElement { n: string; + source: QuoteEntry; + analogue: Analogue; } export class Lb extends GenericElement { @@ -218,6 +314,19 @@ export class Surface extends GenericElement { hotspots: ZoneHotSpot[]; }; } + +export class Facsimile extends GenericElement{ + corresp: string | undefined; + surfaces: Surface[]; + surfaceGrps: SurfaceGrp[]; + graphics: Graphic[]; +} + +export class SurfaceGrp extends GenericElement { + + surfaces: Surface[]; +} + export type ZoneRendition = 'Line' | 'HotSpot'; // EVT rule to distinguish lines for ITL from HotSpots export interface Point { x: number; @@ -284,11 +393,15 @@ export class Choice extends GenericElement { export class Verse extends GenericElement { n: string; + source: QuoteEntry; + analogue: Analogue; } export class VersesGroup extends GenericElement { n: string; groupType: string; + source: QuoteEntry; + analogue: Analogue; } export class Supplied extends GenericElement { @@ -316,12 +429,22 @@ export class Gap extends GenericElement { extent?: string; } -export type PlacementType = 'above' | 'below' | 'inline' | 'left' | 'right' | 'inspace' | 'end' | 'sup' | 'sub' | 'under'; +export class Subst extends GenericElement { + after: ParseResult; +} + + +export type PlacementType = 'above' | 'below' | 'inline' | 'left' | 'right' | 'inspace' | 'end' | 'sup' | 'superscript' | 'sub' | 'under'; export class Addition extends GenericElement { place: PlacementType; } +export class Space extends GenericElement { + quantity?: number; + unit?: 'chars' | 'letter' ; +} + export type SicType = 'crux'; // sic types supported in specific ways export class Sic extends GenericElement { sicType?: SicType | string; @@ -450,13 +573,13 @@ export class MsItemStruct extends GenericElement { titles: Array>; // TODO: Add specific type when title is handled rubric: Rubric; incipit: Incipit; - quote: Array>; // TODO: Add specific type when quote is handled + quote: QuoteEntry; explicit: Explicit; finalRubric: FinalRubric; colophons: Array>; // TODO: Add specific type when colophon is handled decoNote: DecoNote; - listBibl: Array>; // TODO: Add specific type when listBibl is handled - bibl: Array>; // TODO: Add specific type when bibl is handled + listBibl: BibliographicList; + bibl: BibliographicEntry; filiation: Filiation[]; noteEl: Note[]; textLangs: Array>; // TODO: Add specific type when textLang is handled @@ -1042,6 +1165,32 @@ export class Term extends GenericElement { rend?: string; } +export class Milestone extends GenericElement { + id?: string; + unit?: string; + spanText: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + spanElements: any; +} + +export class Anchor extends GenericElement { + id?: string; +} + +export class Span extends GenericElement { + id?: string; + from: string; + to: string; + includedText: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + includedElements: any; +} + +export class SpanGrp extends GenericElement { + id?: string; + spans: Span[] +} + export class Keywords extends GenericElement { scheme?: string; terms: Term[]; @@ -1189,11 +1338,26 @@ export class ListChange extends GenericElement { ordered?: boolean; } +export class Mod extends GenericElement { + id?: string; + changeLayer: string; + varSeq: string; + isRdg: boolean; + insideApp: [boolean, string]; + content: Array>; + notes: Note[]; + originalEncoding: OriginalEncodingNodeType +} + export class RevisionDesc extends GenericElement { content: Array; status?: Status | string; } +export class BibliographyInfo { + bibliographicEntries: Array; +} + export class ProjectInfo { fileDesc: FileDesc; encodingDesc: EncodingDesc; diff --git a/src/app/models/evt-models.ts.bak b/src/app/models/evt-models.ts.bak new file mode 100644 index 000000000..09dedca9a --- /dev/null +++ b/src/app/models/evt-models.ts.bak @@ -0,0 +1,1218 @@ +import { Type } from '@angular/core'; +import { EditionLevelType } from '../app.config'; +import { ParseResult } from '../services/xml-parsers/parser-models'; + +export interface EditorialConvention { + element: string; + attributes: Attributes; + layouts: EditorialConventionLayouts; +} +export type EditorialConventionLayouts = Partial<{ [key in EditionLevelType]: Partial }>; +export interface EditorialConventionLayout { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + style: { [cssProperty: string]: any; }; // List of CSS properties to be assigned to the output element + pre: string; // Text to be shown before the element + post: string; // Text to be shown after the element +} + +export interface HighlightData { + highlight: boolean; + highlightColor: string; +} + +export class GenericElement { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + type: Type; + path?: string; + class?: string; + attributes: Attributes; + content: Array>; +} + +export type XMLElement = HTMLElement; +export type OriginalEncodingNodeType = XMLElement; + +export interface EditionStructure { + pages: Page[]; +} + +export type ViewModeId = 'readingText' | 'imageText' | 'textText' | 'collation' | 'textSources' | 'textVersions'; + +export interface ViewMode { + id: ViewModeId; + icon: string; + iconSet?: 'evt' | 'far' | 'fas'; + label: string; + enable?: boolean; +} + +export interface Page { + id: string; + label: string; + facs: string; + originalContent: OriginalEncodingNodeType[]; + parsedContent: Array>; + url: string; + facsUrl: string; +} + +export interface NamedEntities { + all: { + lists: NamedEntitiesList[]; + entities: NamedEntity[]; + }; + persons: { + lists: NamedEntitiesList[]; + entities: NamedEntity[]; + }; + places: { + lists: NamedEntitiesList[]; + entities: NamedEntity[]; + }; + organizations: { + lists: NamedEntitiesList[]; + entities: NamedEntity[]; + }; + relations: Relation[]; + events: { + lists: NamedEntitiesList[]; + entities: NamedEntity[]; + }; +} + +export interface Attributes { [key: string]: string; } + +export interface OriginalEncoding { + originalEncoding: OriginalEncodingNodeType; +} + +export type NamedEntityType = 'person' | 'place' | 'org' | 'relation' | 'event' | 'generic'; +export class NamedEntitiesList extends GenericElement { + id: string; + label: string; + namedEntityType: NamedEntityType; + description?: Description; + sublists: NamedEntitiesList[]; + content: NamedEntity[]; + relations: Relation[]; + originalEncoding: OriginalEncodingNodeType; +} + +export class NamedEntity extends GenericElement { + id: string; + sortKey: string; + label: NamedEntityLabel; + namedEntityType: NamedEntityType | 'personGrp'; + content: NamedEntityInfo[]; + originalEncoding: OriginalEncodingNodeType; +} + +export type NamedEntityLabel = string; + +export class NamedEntityInfo extends GenericElement { + label: string; +} + +export interface NamedEntityOccurrence { + pageId: string; + pageLabel: string; + refsByDoc: NamedEntityOccurrenceRef[]; +} +export interface NamedEntityOccurrenceRef { + docId: string; + docLabel: string; + refs: GenericElement[]; +} + +export class Relation extends GenericElement { + name?: string; + activeParts: string[]; // Pointers to entities involved in relation + mutualParts: string[]; // Pointers to entities involved in relation + passiveParts: string[]; // Pointers to entities involved in relation + description: Description; + relationType?: string; +} + +export type Description = Array>; + +export class NamedEntityRef extends GenericElement { + entityId: string; + entityType: NamedEntityType; +} + +export interface Witnesses { + witnesses: Witness[]; + groups: WitnessGroup[]; +} + +export interface Witness { + id: string; + name: string | Array> | XMLElement; + attributes: Attributes; + content: Array>; + groupId: string; +} + +export interface WitnessGroup { + id: string; + name: string; + attributes: Attributes; + witnesses: string[]; + groupId: string; +} + +export class ApparatusEntry extends GenericElement { + id: string; + lemma: Reading; + readings: Reading[]; + notes: Note[]; + originalEncoding: string; + nestedAppsIDs: string[]; +} + +export class Reading extends GenericElement { + id: string; + witIDs: string[]; + significant: boolean; +} + +export interface GridItem { + id: string; + url: string; + name: string; +} + +export type HTML = GenericElement & { + content: OriginalEncodingNodeType[]; +}; + +export class Text extends GenericElement { + text: string; +} +export type NoteLayout = 'popover' | 'plain-text'; +export class Note extends GenericElement { + noteLayout: NoteLayout; + noteType: string; + exponent: string; +} + +export class Paragraph extends GenericElement { + n: string; +} + +export class Lb extends GenericElement { + id: string; + n?: string; + facs?: string; // Needed to handle ITL + rend?: string; +} + +export type Comment = GenericElement; + +export class Surface extends GenericElement { + id: string; + corresp: string; + graphics: Graphic[]; + zones: { + lines: ZoneLine[]; + hotspots: ZoneHotSpot[]; + }; +} +export type ZoneRendition = 'Line' | 'HotSpot'; // EVT rule to distinguish lines for ITL from HotSpots +export interface Point { + x: number; + y: number; +} +export class Zone extends GenericElement { + id: string; + coords: Point[]; + rendition?: ZoneRendition; + // In lines @corresp points to @xml:id in the main text; in HotSpots it points to @xml:id of element which contains HS description + // In Embedded Transcription it is the same as @xml:id of zone itself + corresp?: string; + rend?: string; + rotate?: number; + surface?: string; +} +export class ZoneLine extends Zone { + rendition: 'Line'; +} +export class ZoneHotSpot extends Zone { + rendition: 'HotSpot'; +} +export class Graphic extends GenericElement { + url: string; + height: string; + width: string; +} + +export interface CharMapping { + type: string; + subtype: string; + attributes: Attributes; + content: Array>; +} +export interface CharProp { + name: string; + value: string; +} +export interface EncodingProp extends CharProp { + version: string; +} +export class Char extends GenericElement { + id: string; + name: string; + entityName: string; + localProps: CharProp[]; + mappings: CharMapping[]; + unicodeProp?: EncodingProp; + unihanProp?: EncodingProp; + graphics: Graphic[]; +} + +export class G extends GenericElement { + id: string; + charId: string; +} + +export type ChoiceType = 'normalization' | 'emendation'; +export class Choice extends GenericElement { + editorialInterventionType: ChoiceType | ''; + originalContent: Array>; + normalizedContent: Array>; +} + +export class Verse extends GenericElement { + n: string; +} + +export class VersesGroup extends GenericElement { + n: string; + groupType: string; +} + +export class Supplied extends GenericElement { + reason?: string; + source?: string; + resp?: string; +} + +export type DamageDegree = 'high' | 'medium' | 'low' | 'unknown'; +export class Damage extends GenericElement { + agent: string; + group?: number; + degree?: DamageDegree | string; // string representing a number between 0 (undamaged) and 1 (very extensively damaged) +} + +export class Surplus extends GenericElement { + reason?: string; +} + +export class Gap extends GenericElement { + reason?: string; + agent?: string; + quantity?: number; + unit?: string; + extent?: string; +} + +export type PlacementType = 'above' | 'below' | 'inline' | 'left' | 'right' | 'inspace' | 'end' | 'sup' | 'sub' | 'under'; + +export class Addition extends GenericElement { + place: PlacementType; +} + +export type SicType = 'crux'; // sic types supported in specific ways +export class Sic extends GenericElement { + sicType?: SicType | string; +} + +export class Word extends GenericElement { + lemma?: string; +} + +export class Deletion extends GenericElement { + rend: string; +} + +export class MsFrag extends GenericElement { + additional: Additional; + altIdentifier: AltIdentifier; + history: History; + msContents: MsContents; + msIdentifier: MsIdentifier; + physDesc: PhysDesc; + pEl: Paragraph[]; +} + +export class MsPart extends MsFrag { + head: Head; + msParts: MsPart[]; +} + +export class MsDesc extends MsPart { + id: string; + n: string; + label: string; + msFrags: MsFrag[]; +} + +// TODO: fix classes MsDesc, MsPart and MsFrag + +export class Identifier extends GenericElement { + collection: CollectionEl[]; + idnos: Array>; // TODO: Add specific type when idno is handled + regions: Array>; // TODO: Add specific type when region is handled + repository: Repository; + settlements: Array>; // TODO: Add specific type when settlement is handled + countries: Array>; // TODO: Add specific type when country is handled +} + +export class AltIdentifier extends Identifier { + noteEl: Note[]; +} + +export class MsIdentifier extends Identifier { + id: string; + institution: Institution; + altIdentifier: AltIdentifier[]; + msName: MsName[]; +} + +export class MsContents extends GenericElement { + summary: Summary; + msItem: MsItem[]; + msItemStruct: MsItemStruct; + pEl: Paragraph[]; + textLangs: Array>; // TODO: Add specific type when textLang is handled +} + +export class PhysDesc extends GenericElement { + objectDesc: ObjectDesc; + bindingDesc: BindingDesc; + decoDesc: DecoDesc; + handDesc: HandDesc; + accMat: AccMat; + additions: Additions; + musicNotation: MusicNotation; + scriptDesc: ScriptDesc; + sealDesc: SealDesc; + typeDesc: TypeDesc; + pEl: Paragraph[]; +} + +export class History extends GenericElement { + acquisition: Acquisition; + origin: Origin; + provenance: Provenance[]; + summary: Summary; + pEl: Paragraph[]; +} + +export class Head extends GenericElement { + place: string; + rend: string; + style: string; + rendition: string; + n: string; + facs: string; + lbEl: Lb[]; + hi: Array>; // TODO: Add specific type when hi is handled + title: Array>; // TODO: Add specific type when title is handled + origPlace: OrigPlace; + origDate: OrigDate; +} + +export class Institution extends GenericElement { + country: Array>; // TODO: Add specific type when country is handled + region: Array>; // TODO: Add specific type when region is handled +} + +export class Repository extends GenericElement { + lang: string; +} + +export class MsName extends GenericElement { + name: Array>; // TODO: Add specific type when idno is handled + rs: Array>; // TODO: Add specific type when rs is handled + gEl: G[]; +} + +export class CollectionEl extends GenericElement { + collectionType: string; +} + +export class MsItemStruct extends GenericElement { + n: string; + defective: boolean; + authors: Array>; // TODO: Add specific type when author is handled + respStmt: Array>; // TODO: Add specific type when restStmt is handled + titles: Array>; // TODO: Add specific type when title is handled + rubric: Rubric; + incipit: Incipit; + quote: Array>; // TODO: Add specific type when quote is handled + explicit: Explicit; + finalRubric: FinalRubric; + colophons: Array>; // TODO: Add specific type when colophon is handled + decoNote: DecoNote; + listBibl: Array>; // TODO: Add specific type when listBibl is handled + bibl: Array>; // TODO: Add specific type when bibl is handled + filiation: Filiation[]; + noteEl: Note[]; + textLangs: Array>; // TODO: Add specific type when textLang is handled + locus: Locus; +} + +export class MsItem extends MsItemStruct { + docAuthors: Array>; // TODO: Add specific type when docAuthor is handled + docTitles: Array>; // TODO: Add specific type when docTitle is handled + docImprints: Array>; // TODO: Add specific type when docImprint is handled + docDate: Array>; // TODO: Add specific type when docDate is handled + locusGrp: LocusGrp; + gapEl: Gap[]; + msItem: MsItem[]; +} + +export class Summary extends GenericElement { + pEl: Paragraph[]; +} + +export class Acquisition extends GenericElement { + notBefore: string; + notAfter: string; + name: Array>; // TODO: Add specific type when name is handled +} + +export class Origin extends GenericElement { + notBefore: string; + notAfter: string; + evidence: string; + resp: string; + origDate: OrigDate; + origPlace: OrigPlace; +} + +export class OrigDate extends GenericElement { + notBefore: string; + notAfter: string; + when: string; + origDateType: string; +} + +export class OrigPlace extends GenericElement { + key: string; + origPlaceType: string; +} + +export class Provenance extends GenericElement { + when: string; +} + +export class ObjectDesc extends GenericElement { + form: string; + layoutDesc: LayoutDesc; + supportDesc: SupportDesc; + pEl: Paragraph[]; +} + +export class LayoutDesc extends GenericElement { + pEl: Paragraph[]; + ab: Array>; // TODO: Add specific type when ab is handled + layout: Layout; + summary: Summary; +} + +export class Layout extends GenericElement { + columns: number; + streams: number; + ruledLines: number; + writtenLines: number; + pEl: Paragraph[]; +} + +export type MaterialValues = 'paper' | 'parch' | 'perg' | 'mixes'; + +export class SupportDesc extends GenericElement { + material: MaterialValues; + pEl: Paragraph[]; + ab: Array>; // TODO: Add specific type when ab is handled + extents: Array>; // TODO: Add specific type when extent is handled + collation: Collation; + condition: Condition; + foliation: Foliation; + support: Support; +} + +export class Condition extends GenericElement { + pEl: Paragraph[]; +} + +export class Collation extends GenericElement { + pEl: Paragraph[]; +} + +export class Foliation extends GenericElement { + id: string; + pEl: Paragraph[]; +} + +export class Support extends GenericElement { + material: Array>; // TODO: Add specific type when material is handled + watermark: Array>; // TODO: Add specific type when watermark is handled +} + +export class BindingDesc extends GenericElement { + binding: Binding[]; + condition: Array>; // TODO: Add specific type when condition is handled + decoNote: DecoNote[]; + pEl: Paragraph[]; +} + +export class Binding extends GenericElement { + contemporary: boolean; + condition: Array>; // TODO: Add specific type when condition is handled + decoNote: DecoNote[]; + pEl: Paragraph[]; + ab: Array>; // TODO: Add specific type when ab is handled +} + +export class DecoDesc extends GenericElement { + decoNote: DecoNote; + pEl: Paragraph[]; + ab: Array>; // TODO: Add specific type when ab is handled + summary: Summary; +} + +export class Additions extends GenericElement { + pEl: Paragraph[]; +} + +export class HandDesc extends GenericElement { + hands: string; + handNote: HandNote[]; +} + +export class ScriptDesc extends GenericElement { + scriptNote: Array>; // TODO: Add specific type when scriptNote is handled + summary: Summary; +} + +export class Seal extends GenericElement { + contemporary: boolean; + sealType: string; + n: string; + decoNote: DecoNote; + pEl: Paragraph[]; + ab: Array>; // TODO: Add specific type when ab is handled +} + +export class SealDesc extends GenericElement { + seal: Seal; +} + +export class TypeDesc extends GenericElement { + summary: Summary; + typeNote: TypeNote; +} + +export class TypeNote extends GenericElement { + id: string; + scope: string; +} + +export class MusicNotation extends GenericElement { + term: Array>; // TODO: Add specific type when term is handled +} + +export class AccMat extends GenericElement { + pEl: Paragraph[]; +} + +export class Additional extends GenericElement { + listBibls: Array>; // TODO: Add specific type when listBibl is handled + adminInfo: AdminInfo; + surrogates: Surrogates; +} + +export class AdminInfo extends GenericElement { + noteEl: Note[]; + availabilities: Array>; // TODO: Add specific type when listBibl is handled + custodialHist: CustodialHist; + recordHist: RecordHist; +} + +export class CustodialHist extends GenericElement { + pEl: Paragraph[]; + ab: Array>; // TODO: Add specific type when ab is handled + custEvent?: CustEvent[]; +} + +export class CustEvent extends GenericElement { + custEventType: string; + notBefore: string; + notAfter: string; + when: string; + from: string; + to: string; +} + +export class RecordHist extends GenericElement { + pEl: Paragraph[]; + changes: Array>; // TODO: Add specific type when change is handled + source: Source[]; + ab: Array>; // TODO: Add specific type when ab is handled +} + +export class Source extends GenericElement { + pEl: Paragraph[]; +} + +export class Surrogates extends GenericElement { + bibls: Array>; // TODO: Add specific type when bibl is handled + pEl: Paragraph[]; +} + +export class Rubric extends GenericElement { + lang: string; + rend: string; + lbEl: Lb[]; + locus: Locus; + stamp: Array>; // TODO: Add specific type when stamp is handled +} + +export class FinalRubric extends GenericElement { + lbEl: Lb[]; +} + +export class Incipit extends GenericElement { + lang: string; + defective: boolean; + lbEl: Lb[]; + locus: Locus; +} + +export class Explicit extends GenericElement { + lang: string; + defective: boolean; + locus: Locus; +} + +export class Locus extends GenericElement { + scheme: string; + from: string; + to: string; + facs: string; + target: string; + hi: Array>; // TODO: Add specific type when hi is handled + gEl: G[]; + locus: Locus; +} + +export class LocusGrp extends GenericElement { + scheme: string; + locus: Locus; +} + +export class DecoNote extends GenericElement { + decoNoteType: string; + watermark: Array>; // TODO: Add specific type when watermark is handled +} + +export class Filiation extends GenericElement { + filiationType: string; +} + +export class Dimensions extends GenericElement { + dimensionsType: string; + scope: string; + extent: string; + unit: string; + quantity: number; + atLeast: number; + atMost: number; + min: number; + max: number; + height: Height; + width: Width; + depth: Depth; + dim: Dim; +} + +export class Height extends GenericElement { + scope: string; + extent: string; + unit: string; + quantity: number; + atLeast: number; + atMost: number; + min: number; + max: number; + gEl: G[]; +} + +export class Width extends GenericElement { + scope: string; + extent: string; + unit: string; + quantity: number; + atLeast: number; + atMost: number; + min: number; + max: number; + gEl: G[]; +} + +export class Depth extends GenericElement { + scope: string; + extent: string; + unit: string; + quantity: number; + atLeast: number; + atMost: number; + min: number; + max: number; + gEl: G[]; +} + +export class Dim extends GenericElement { + dimType: string; + scope: string; + extent: string; + unit: string; + quantity: number; + atLeast: number; + atMost: number; + min: number; + max: number; + gEl: G[]; +} + +export class FileDesc extends GenericElement { + titleStmt: TitleStmt; + publicationStmt: PublicationStmt; + sourceDesc: SourceDesc; + editionStmt?: EditionStmt; + extent?: Extent; + seriesStmt?: SeriesStmt; + notesStmt?: NotesStmt; +} + +export class TitleStmt extends GenericElement { + titles: Array>; // TODO: Add specific type when title is handled + subtitles: Array>; // TODO: Add specific type when subtitle is handled + authors: Array>; // TODO: Add specific type when author is handled + principals: Array>; // TODO: Add specific type when principal is handled + respStmts: RespStmt[]; + editors: Array>; // TODO: Add specific type when editor is handled + sponsors: Array>; // TODO: Add specific type when sponsor is handled + funders: Array>; // TODO: Add specific type when funder is handled +} + +export class RespStmt extends GenericElement { + responsibility: Resp; + people: Array>; + notes: Note[]; +} + +export class Resp extends GenericElement { + normalizedResp: string; + date: string; +} + +export class EditionStmt extends GenericElement { + structuredData: boolean; + edition: Array>; // TODO: Add specific type when edition is handled + respStmt: RespStmt[]; +} + +export class PublicationStmt extends GenericElement { + structuredData: boolean; + publisher: Array>; // TODO: Add specific type when publisher is handled + distributor: Array>; // TODO: Add specific type when distributor is handled + authority: Array>; // TODO: Add specific type when authority is handled + pubPlace: Array>; // TODO: Add specific type when pubPlace is handled + address: Array>; // TODO: Add specific type when address is handled + idno: Array>; // TODO: Add specific type when idno is handled + availability: Array>; // TODO: Add specific type when availability is handled + date: Array>; // TODO: Add specific type when date is handled + licence: Array>; // TODO: Add specific type when licence is handled +} + +export class SeriesStmt extends GenericElement { + structuredData: boolean; + title: Array>; // TODO: Add specific type when title is handled + idno: Array>; // TODO: Add specific type when idno is handled + respStmt: RespStmt[]; + biblScope: Array>; // TODO: Add specific type when biblScope is handled + editor: Array>; // TODO: Add specific type when editor is handled +} + +export class NotesStmt extends GenericElement { + notes: Note[]; + relatedItems: Array>; // TODO: Add specific type when relatedItem is handled +} + +export class SourceDesc extends GenericElement { + structuredData: boolean; + msDescs: MsDesc[]; + bibl: Array>; // TODO: Add specific type when bibl is handled + biblFull: Array>; // TODO: Add specific type when biblFull is handled + biblStruct: Array>; // TODO: Add specific type when biblStruct is handled + recordingStmt: Array>; // TODO: Add specific type when recordingStmt is handled + scriptStmt: Array>; // TODO: Add specific type when scriptStmt is handled +} + +export class Extent extends GenericElement { } + +export class StyleDefDecl extends GenericElement { + scheme: string; + schemeVersion: string; +} + +export class EncodingDesc extends GenericElement { + structuredData: boolean; + projectDesc: ProjectDesc[]; + samplingDecl: SamplingDecl[]; + editorialDecl: EditorialDecl[]; + tagsDecl: TagsDecl[]; + styleDefDecl: StyleDefDecl; + refsDecl: RefsDecl[]; + classDecl: Array>; // TODO: Add specific type when classDecl is handled + geoDecl: Array>; // TODO: Add specific type when geoDecl is handled + unitDecl: Array>; // TODO: Add specific type when unitDecl is handled + schemaSpec: Array>; // TODO: Add specific type when schemaSpec is handled + schemaRef: Array>; // TODO: Add specific type when schemaRef is handled +} + +export class ProjectDesc extends GenericElement { + content: Paragraph[]; +} + +export class SamplingDecl extends GenericElement { + content: Paragraph[]; +} + +export type CorrectionStatus = 'high' | 'medium' | 'low' | 'unknown'; +export type CorrectionMethod = 'silent' | 'markup'; +export class Correction extends ProjectDesc { + status?: CorrectionStatus; + method?: CorrectionMethod; +} + +export type NormalizationMethod = 'silent' | 'markup'; +export class Normalization extends ProjectDesc { + method: NormalizationMethod; + sources: string[]; +} + +export type PunctuationMarks = 'none' | 'some' | 'all'; +export type PunctuationPlacement = 'internal' | 'external'; +export class Punctuation extends ProjectDesc { + marks?: PunctuationMarks; + placement?: PunctuationPlacement; +} + +export type QuotationMarks = 'none' | 'some' | 'all'; +export class Quotation extends ProjectDesc { + marks?: QuotationMarks; +} + +export type HyphenationEol = 'all' | 'some' | 'hard' | 'none'; +export class Hyphenation extends ProjectDesc { + eol?: HyphenationEol; +} + +export class Segmentation extends GenericElement { + content: Paragraph[]; +} + +export class StdVals extends GenericElement { + content: Paragraph[]; +} + +export class Interpretation extends GenericElement { + content: Paragraph[]; +} + +export class EditorialDecl extends GenericElement { + structuredData: boolean; + correction: Correction[]; + hyphenation: Hyphenation[]; + interpretation: Interpretation[]; + normalization: Normalization[]; + punctuation: Punctuation[]; + quotation: Quotation[]; + segmentation: Segmentation[]; + stdVals: StdVals[]; +} + +export type RenditionScope = 'first-line' | 'first-letter' | 'before' | 'after'; +export type Scheme = 'css' | 'xslfo' | 'free' | 'other'; +export class Rendition extends GenericElement { + id: string; + scope?: RenditionScope | string; + selector?: string; + scheme?: Scheme; + schemeVersion?: string; +} + +export class TagUsage extends GenericElement { + gi: string; + occurs: number; + withId?: number; +} + +export class Namespace extends GenericElement { + name: string; + tagUsage: TagUsage[]; +} + +export class TagsDecl extends GenericElement { + rendition: Rendition[]; + namespace: Namespace[]; +} + +export class RefsDecl extends GenericElement { + structuredData: boolean; + cRefPattern: CRefPattern[]; + refState: RefState[]; +} + +export class RefState extends GenericElement { + ed: string; + unit: string; + length: number; + delim?: string; +} + +export class CRefPattern extends GenericElement { + matchPattern: string; + replacementPattern: string; +} + +export class Abstract extends GenericElement { + resp: string; + lang: string; +} + +export class Calendar extends GenericElement { + id: string; + target: string; +} + +export class CalendarDesc extends GenericElement { + calendars: Calendar[]; +} + +export type CorrespActionType = 'sent' | 'received' | 'transmitted' | 'redirected' | 'forwarded'; +export class CorrespAction extends GenericElement { + actionType: CorrespActionType | string; +} + +export class CorrespContext extends GenericElement { } + +export class CorrespDesc extends GenericElement { + content: Array; +} + +export class Creation extends GenericElement { } + +export class Language extends GenericElement { + ident: string; + usage?: number; +} + +export class LangUsage extends GenericElement { + structuredData: boolean; + languages: Language[]; +} + +export class CatRef extends GenericElement { + scheme?: string; + target?: string; +} + +export class ClassCode extends GenericElement { + scheme?: string; +} + +export class Term extends GenericElement { + id?: string; + ref?: string; + rend?: string; +} + +export class Keywords extends GenericElement { + scheme?: string; + terms: Term[]; +} + +export class TextClass extends GenericElement { + catRef: CatRef[]; + classCode: ClassCode[]; + keywords: Keywords[]; +} + +export type HandNoteScope = 'sole' | 'major' | 'minor'; +export class HandNote extends GenericElement { + id: string; + scribe?: string; + scribeRef?: string; + script?: string; + scriptRef?: string; + medium?: string; + scope?: HandNoteScope; +} + +export class HandNotes extends GenericElement { + content: HandNote[]; +} + +export class Ptr extends GenericElement { + id?: string; + target?: string; + cRef?: string; + ptrType?: string; + rend?: string; +} + +export class Transpose extends GenericElement { + content: Ptr[]; +} + +export class ListTranspose extends GenericElement { + description: Description[]; + transposes: Transpose[]; +} + +export type ChannelMode = 's' | 'w' | 'sw' | 'ws' | 'm' | 'x'; +export class Channel extends GenericElement { + mode?: ChannelMode; +} + +export class Constitution extends GenericElement { + constitutionType?: string; +} + +export class Derivation extends GenericElement { + derivationType?: string; +} + +export class Domain extends GenericElement { + domainType?: string; +} + +export class Factuality extends GenericElement { + factualityType?: string; +} + +export type ActiveParticipants = 'singular' | 'plural' | 'corporate' | 'unknown'; +export type PassiveParticipants = 'self' | 'single' | 'many' | 'group' | 'world'; +export class Interaction extends GenericElement { + interactionType?: string; + active?: ActiveParticipants | string; + passive?: PassiveParticipants | string; +} + +export class Preparedness extends GenericElement { + preparednessType?: string; +} + +export type Degree = 'high' | 'medium' | 'low' | 'unknown'; +export class Purpose extends GenericElement { + purposeType?: string; + degree?: Degree; +} + +export class TextDesc extends GenericElement { + channel: Channel[]; + constitution: Constitution[]; + derivation: Derivation[]; + domain: Domain[]; + factuality: Factuality[]; + interaction: Interaction[]; + preparedness: Preparedness[]; + purpose: Purpose[]; +} + +export class ParticDesc extends GenericElement { + structuredData: boolean; + participants: NamedEntitiesList[]; +} + +export class Setting extends GenericElement { + who?: string; + name: GenericElement[]; // TODO: Add specific type when name is handled + date: GenericElement[]; // TODO: Add specific type when date is handled + time: GenericElement[]; // TODO: Add specific type when time is handled + locale: GenericElement[]; // TODO: Add specific type when locale is handled + activity: GenericElement[]; // TODO: Add specific type when activity is handled +} + +export class SettingDesc extends GenericElement { + structuredData: boolean; + settings: Setting[]; + places: NamedEntitiesList[]; +} + +export class ProfileDesc extends GenericElement { + abstract: Abstract[]; + calendarDesc: CalendarDesc[]; + correspDesc: CorrespDesc[]; + creation: Creation[]; + handNotes: HandNotes[]; + langUsage: LangUsage[]; + listTranspose: ListTranspose[]; + particDesc: ParticDesc[]; + settingDesc: SettingDesc[]; + textClass: TextClass[]; + textDesc: TextDesc[]; +} + +export type Status = 'approved' | 'candidate' | 'cleared' | 'deprecated' | 'draft' | 'embargoed' | 'expired' | + 'frozen' | 'galley' | 'proposed' | 'published' | 'recommendation' | 'submitted' | 'unfinished' | 'withdrawn'; + +export class Change extends GenericElement { + id?: string; + who?: string; + status?: Status | string; + when?: string; + notBefore?: string; + notAfter?: string; + targets?: string[]; +} + +export class ListChange extends GenericElement { + content: Array; + id?: string; + description?: Description; + ordered?: boolean; +} + +export class RevisionDesc extends GenericElement { + content: Array; + status?: Status | string; +} + +export class ProjectInfo { + fileDesc: FileDesc; + encodingDesc: EncodingDesc; + profileDesc: ProfileDesc; + revisionDesc: RevisionDesc; +} + +export interface ViewerDataValue { + manifestURL?: string; + xmlImages?: XMLImagesValues[]; +} + +export interface XMLImagesValues { + url: string; + width?: number; + height?: number; +} + +export interface ViewerDataType { + type: string; + value: ViewerDataValue; +} diff --git a/src/app/models/evt-polymorphic-models.ts b/src/app/models/evt-polymorphic-models.ts index 41d0ccd94..42d5d2479 100644 --- a/src/app/models/evt-polymorphic-models.ts +++ b/src/app/models/evt-polymorphic-models.ts @@ -94,15 +94,16 @@ class ManifestSource { class XMLSource { getDataType(key: string, data: Surface[]): ViewerDataType { - const localImagesFolder = AppConfig.evtSettings.files.imagesFolderUrl; + + const localImagesFolder = AppConfig.evtSettings.files.imagesFolderUrls.single; const xmlImages: XMLImagesValues[] = data.map((s) => s[AppConfig.evtSettings.files.editionImagesSource[key].value] ? { url: isUrl(s.corresp) ? s.corresp : localImagesFolder + s.corresp, } : { - width: s[key][0].width, - height: s[key][0].height, - url: isUrl(s[key][0].url) ? s[key][0].url : localImagesFolder + s[key][0].url, + width: s[key][0]?.width, + height: s[key][0]?.height, + url: isUrl(s[key][0]?.url) ? s[key][0]?.url : localImagesFolder + s[key][0]?.url, }); return { type: key, value: { xmlImages } }; diff --git a/src/app/nav-bar-image/nav-bar-image.component.html b/src/app/nav-bar-image/nav-bar-image.component.html new file mode 100644 index 000000000..840604277 --- /dev/null +++ b/src/app/nav-bar-image/nav-bar-image.component.html @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/src/app/nav-bar-image/nav-bar-image.component.scss b/src/app/nav-bar-image/nav-bar-image.component.scss new file mode 100644 index 000000000..f0dae0d1a --- /dev/null +++ b/src/app/nav-bar-image/nav-bar-image.component.scss @@ -0,0 +1,115 @@ +@import "../../assets/scss/themes"; +@import "../../assets/scss/mixins"; +@import "../../assets/scss/variables"; +:host { + position: absolute; + bottom: 0; + width: 100%; +} +.nav-bar { + height: $base-navbar-height; + width: 100%; + padding: 0 20px; + vertical-align: middle; + text-align: center; + display: flex; + align-items: center; + justify-content: center; + + @include themify($themes) { + color: themed("baseColorLight"); + background-color: themed("baseColorDark"); + } +} + +::ng-deep .nav-bar .ngx-slider { + @include calc('max-width', '100% - 151px - 130px'); + + &[disabled] { + opacity: .65; + } + + .ngx-slider-bar-wrapper { + padding-top: 8px; + } + + .ngx-slider-bar { + height: 8px; + margin-top: 2px; + left: 0; + z-index: 1; + width: 100%; + border-radius: 2px; + @include themify($themes) { + background: rgba(themed('baseColorLight'), .5); + } + + &.ngx-slider-selection { + @include themify($themes) { + background: themed('baseColorLight'); + } + } + } + + .ngx-slider-pointer { + top: -8px; + width: 22px; + height: 13px; + background-color: #eceff1; + border: 1px solid; + @include set("box-shadow", "0 0 4px rgba(0, 0, 0, 0.5)"); + outline: 0; + @include themify($themes) { + border: 1px solid themed('baseColorDark'); + } + + &::after { + display: none; + } + + &:hover { + background: #fff; + } + } + + .ngx-slider-bubble { + font-size: 0.75rem; + bottom: 13px; + border: 1px solid; + border-radius: 4px; + opacity: 0.8 !important; + padding: 0 3px; + cursor: default; + @include themify($themes) { + background: themed("baseColorLight"); + color: themed("baseColorDark"); + } + } + .ngx-slider-model-value { + opacity: 1 !important; + } +} + +.thumbnails-panel, +.viscoll-panel { + left: 0; + bottom: $base-navbar-height; + top: $base-header-height; + @include calc('height', '100% - #{$base-navbar-height} - #{$base-header-height} - 2'); + overflow-y: auto; + position: absolute; + width: 100%; + border: 1px solid #FFF; + border-left: none; + border-right: none; + z-index: 9; + @include themify($themes) { + background: themed("secondaryColorDark"); + color: themed("secondaryColorLight"); + } +} + +::ng-deep .navigation-btns-container .btn { + min-width: 30px; + font-size: 1em; +} \ No newline at end of file diff --git a/src/app/nav-bar-image/nav-bar-image.component.ts b/src/app/nav-bar-image/nav-bar-image.component.ts new file mode 100644 index 000000000..99eda1c23 --- /dev/null +++ b/src/app/nav-bar-image/nav-bar-image.component.ts @@ -0,0 +1,140 @@ +import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core'; +import { BehaviorSubject, combineLatest, Subject, switchMap } from 'rxjs'; +import { delay, distinctUntilChanged, filter, first, map, scan, startWith, withLatestFrom } from 'rxjs/operators'; +// import { AppConfig } from '../app.config'; +import { EVTModelService } from '../services/evt-model.service'; +import { EVTStatusService } from '../services/evt-status.service'; + +@Component({ + selector: 'evt-nav-bar-image', + templateUrl: './nav-bar-image.component.html', + styleUrls: ['./nav-bar-image.component.scss'], +}) +export class NavBarImageComponent { + private showSinglePage$ = new BehaviorSubject(true); + @Input() set showSinglePage(value: boolean){ + this.showSinglePage$.next(value); + } + @Input() set currentIndexPage(value:number | null){ + if (value){ + this.currentPageIndex$.next(value); + } else { + this.currentPageIndex$.next(0); + } + }; + + @Input() panelNumber:number; + + private _showSyncImageButton = true; + @Input() + public get showSyncImageButton() { + return this._showSyncImageButton; + } + + @Output() changeIndexPage = new EventEmitter(); + updateThContainerInfo$ = new Subject(); + thContainerInfo$ = this.updateThContainerInfo$.pipe( + scan((currentEl, val) => val || currentEl, undefined), + filter((thContainer) => !!thContainer), + map((thContainer: HTMLElement) => ({ + width: thContainer.clientWidth, + height: thContainer.clientHeight, + thumbWidth: parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--thumbnail-width'), 10), + thumbHeight: parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--thumbnail-height'), 10), + })), + ); + @ViewChild('thumbnailsContainer') set thumbnailsContainer(el: ElementRef) { + this.updateThContainerInfo$.next(el?.nativeElement); + } + + thViewerSettings$ = this.thContainerInfo$.pipe( + delay(0), + map(({ width, height, thumbHeight, thumbWidth }) => ({ + col: Math.floor(width / thumbWidth), + row: Math.floor(height / thumbHeight), + })), + startWith({ col: 1, row: 1 }), + ); + + // currentPageIndexStatic; + // currentPageIndex$ = this.evtStatusService.currentPage$.pipe( + // withLatestFrom(this.evtModelService.pages$), + // filter((p) => !!p), + // map(([page, pages]) => pages.findIndex((p) => p.id === page.id)), + // tap((i) => this.currentPageIndexStatic = i), + // ); + + currentPageIndex$ = new BehaviorSubject(0); + + thumbnailsButton = true; //AppConfig.evtSettings.ui.thumbnailsButton; + toggleThumbnailsPanel$ = new Subject(); + thumbnailsPanelOpened$ = this.toggleThumbnailsPanel$.pipe( + scan((currentState: boolean, val: boolean | undefined) => val === undefined ? !currentState : val, false), + startWith(false), + ); + + viscollButton = true; //AppConfig.evtSettings.ui.viscollButton; + toggleViscollPanel$ = new Subject(); + viscollPanelOpened$ = this.toggleViscollPanel$.pipe( + scan((currentState: boolean, val: boolean | undefined) => val === undefined ? !currentState : val, false), + startWith(false), + ); + + navigationDisabled$ = combineLatest([this.thumbnailsPanelOpened$, this.viscollPanelOpened$]).pipe( + map(([thumbnailsPanelOpened, viscollPanelOpened]) => thumbnailsPanelOpened || viscollPanelOpened), + ); + + prevNavigationDisabled$ = combineLatest([ + this.navigationDisabled$, + this.currentPageIndex$, + ]).pipe( + map(([navDisabled, currentIndex]) => navDisabled || currentIndex === 0), + ); + + pagesAvailable$ = this.showSinglePage$.pipe( + distinctUntilChanged(), + switchMap((single) => single ? this.evtModelService.pages$ : this.evtModelService.imageDoublePages$), + ) ; + + nextNavigationDisabled$ = combineLatest([ + this.navigationDisabled$, + this.currentPageIndex$, + ]).pipe( + withLatestFrom(this.pagesAvailable$), + map(([[navDisabled, currentIndex], pages]) => navDisabled || currentIndex === pages?.length - 1), + ); + + pageSliderOptions$ = combineLatest([this.navigationDisabled$, this.pagesAvailable$]) + .pipe( + map(([navigationDisabled, pages]) => ({ + floor: 0, + ceil: pages?.length - 1, + showSelectionBar: true, + translate: (value: number): string => pages ? pages[value]?.label ?? '' : '', + disabled: navigationDisabled ?? false, + })), + ); + + @HostListener('window:resize') resize() { + this.updateThContainerInfo$.next(); + } + + constructor( + public evtStatusService: EVTStatusService, + public evtModelService: EVTModelService, + ) {} + + onUpdatePage(page:number) :void { + this.changeIndexPage.emit(page); + } + + onGoLastPage():void { + this.pagesAvailable$.pipe( + first(), + ).subscribe( + (pages) => { + this.changeIndexPage.emit(pages.length-1); + }, + ) + } +} diff --git a/src/app/panels/image-panel/image-panel.component.html b/src/app/panels/image-panel/image-panel.component.html index 8ee5eb784..84e3eaae4 100644 --- a/src/app/panels/image-panel/image-panel.component.html +++ b/src/app/panels/image-panel/image-panel.component.html @@ -1,16 +1,23 @@
    + +
    +
    +
    +

    Found no source file

    @@ -22,3 +29,6 @@
    + \ No newline at end of file diff --git a/src/app/panels/image-panel/image-panel.component.ts b/src/app/panels/image-panel/image-panel.component.ts index 5cddad6a2..d82591af4 100644 --- a/src/app/panels/image-panel/image-panel.component.ts +++ b/src/app/panels/image-panel/image-panel.component.ts @@ -1,19 +1,42 @@ -import { Component, Input, Output } from '@angular/core'; +import { AfterViewInit, Component, Input, OnDestroy, Output } from '@angular/core'; import { BehaviorSubject, combineLatest, merge, Observable, Subject } from 'rxjs'; -import { distinctUntilChanged, filter, map, withLatestFrom } from 'rxjs/operators'; -import { Page, ViewerDataType } from '../../models/evt-models'; +import { distinctUntilChanged, filter, first, map, takeUntil, withLatestFrom } from 'rxjs/operators'; +import { Page, ViewerDataType } from '../../models/evt-models'; import { EVTModelService } from '../../services/evt-model.service'; +import { EvtLinesHighlightService } from '../../services/evt-lines-highlight.service'; +import { AppConfig } from 'src/app/app.config'; @Component({ selector: 'evt-image-panel', templateUrl: './image-panel.component.html', styleUrls: ['./image-panel.component.scss'], }) -export class ImagePanelComponent { +export class ImagePanelComponent implements OnDestroy, AfterViewInit{ + + @Input() panelNumber:number; + @Input() viewerData: ViewerDataType; @Input() pageID: string; + @Input() showHeader = true; + @Input() indipendentNavBar = false; + private _showSyncButton = true; + private unsubscribeAll$ = new Subject(); + @Input() + public get showSyncButton() { + return this._showSyncButton; + } + public set showSyncButton(value) { + if (!value){ + this.isSyncButtonActive = ''; + this.linesHighlightService.syncTextImage$.next(false); + } + this._showSyncButton = value && AppConfig.evtSettings.ui.syncZonesHighlightButton; + } + + isSyncButtonActive: '' | 'active' = ''; + // public syncTextImage$ = new BehaviorSubject(false); public currentPage$ = new BehaviorSubject(undefined); public currentPageId$ = this.currentPage$.pipe( map((p) => p?.id), @@ -23,6 +46,12 @@ export class ImagePanelComponent { withLatestFrom(this.evtModelService.pages$), map(([pageId, pages]) => pages.findIndex((page) => page.id === pageId)), ); + + currentSurfaces$ = this.currentPageId$.pipe( + withLatestFrom(this.evtModelService.surfaces$), + map(([pageId, surfaces]) => surfaces.find((surface) => surface.corresp === pageId)), + ); + @Output() pageChange: Observable = merge( this.updatePageNumber$.pipe( filter((n) => n !== undefined), @@ -44,7 +73,52 @@ export class ImagePanelComponent { constructor( private evtModelService: EVTModelService, - ) { + private linesHighlightService: EvtLinesHighlightService, + ) {} + + ngOnDestroy(): void { + this.linesHighlightService.lineBeginningSelected$.next([]); + this.linesHighlightService.syncTextImage$.next(false); + + this.unsubscribeAll$.next(); + this.unsubscribeAll$.complete(); + } + + ngAfterViewInit(): void{ + + if (this.indipendentNavBar){ + this.evtModelService.pages$.pipe( + // delay(50), + first(), + ).subscribe((pages)=>{ + const idx = this.panelNumber > pages.length ? 0: this.panelNumber; + const cp = pages[idx]; + this.currentPage$.next(cp); + this.updatePageNumber$.next(idx); + this.pageID = cp.id; + // setTimeout(()=>{ + // this.updatePageNumber$.next(idx); + // },100) + }); + + this.pageChange.pipe( + takeUntil(this.unsubscribeAll$), + ).subscribe(( (currentPage) => { + + if (this.indipendentNavBar && currentPage) { + + this.pageID = currentPage.id; + } + })); + } + } + + syncTextImage() { + this.isSyncButtonActive = this.isSyncButtonActive === 'active' ? '' : 'active'; + if (this.isSyncButtonActive === ''){ + this.linesHighlightService.lineBeginningSelected$.next([]); + } + this.linesHighlightService.syncTextImage$.next(this.isSyncButtonActive === 'active'); } updatePage(viewerPage: number) { @@ -58,4 +132,17 @@ export class ImagePanelComponent { setMsDescID(msDescId: string) { this.currentMsDescId$.next(msDescId); } + + onChangedCurrentPage(page:number) { + + this.evtModelService.pages$.pipe( + map((pages) => page < 0 ? pages[pages.length - 1] : pages[page]), + first(), + ).subscribe( + (currentPage:Page ) => { + this.currentPage$.next(currentPage); + + }, + ); + } } diff --git a/src/app/panels/image-panel/image-panel.component.ts.bak b/src/app/panels/image-panel/image-panel.component.ts.bak new file mode 100644 index 000000000..5cddad6a2 --- /dev/null +++ b/src/app/panels/image-panel/image-panel.component.ts.bak @@ -0,0 +1,61 @@ +import { Component, Input, Output } from '@angular/core'; +import { BehaviorSubject, combineLatest, merge, Observable, Subject } from 'rxjs'; +import { distinctUntilChanged, filter, map, withLatestFrom } from 'rxjs/operators'; +import { Page, ViewerDataType } from '../../models/evt-models'; +import { EVTModelService } from '../../services/evt-model.service'; + +@Component({ + selector: 'evt-image-panel', + templateUrl: './image-panel.component.html', + styleUrls: ['./image-panel.component.scss'], +}) +export class ImagePanelComponent { + @Input() viewerData: ViewerDataType; + + @Input() pageID: string; + + public currentPage$ = new BehaviorSubject(undefined); + public currentPageId$ = this.currentPage$.pipe( + map((p) => p?.id), + ); + updatePageNumber$ = new Subject(); + pageNumber$ = this.currentPageId$.pipe( + withLatestFrom(this.evtModelService.pages$), + map(([pageId, pages]) => pages.findIndex((page) => page.id === pageId)), + ); + @Output() pageChange: Observable = merge( + this.updatePageNumber$.pipe( + filter((n) => n !== undefined), + withLatestFrom(this.evtModelService.pages$), + map(([n, pages]) => pages[n]), + ), + this.currentPage$.pipe( + filter((p) => !!p), + distinctUntilChanged(), + )); + + currentMsDescId$ = new BehaviorSubject(undefined); + currentMsDesc$ = combineLatest([this.evtModelService.msDesc$, this.currentMsDescId$]).pipe( + filter(([msDesc, currentId]) => !!msDesc && !!currentId), + map(([msDesc, currentId]) => msDesc.find((m) => m.id === currentId)), + ); + + msDescOpen = false; + + constructor( + private evtModelService: EVTModelService, + ) { + } + + updatePage(viewerPage: number) { + this.updatePageNumber$.next(viewerPage > 0 ? viewerPage - 1 : 0); + } + + setMsDescOpen(isOpen: boolean) { + this.msDescOpen = isOpen; + } + + setMsDescID(msDescId: string) { + this.currentMsDescId$.next(msDescId); + } +} diff --git a/src/app/panels/imagegrp-panel/imagegrp-panel.component.html b/src/app/panels/imagegrp-panel/imagegrp-panel.component.html new file mode 100644 index 000000000..ae283af31 --- /dev/null +++ b/src/app/panels/imagegrp-panel/imagegrp-panel.component.html @@ -0,0 +1,61 @@ + +
    + + + + + + + + {{ item.label | translate: {value: (pages$ | async).indexOf(item) + 1} }} + + + + + +
    +
    + +
    + +
    + + + + +
    + + + + + + +
    + \ No newline at end of file diff --git a/src/app/panels/imagegrp-panel/imagegrp-panel.component.scss b/src/app/panels/imagegrp-panel/imagegrp-panel.component.scss new file mode 100644 index 000000000..6c158098a --- /dev/null +++ b/src/app/panels/imagegrp-panel/imagegrp-panel.component.scss @@ -0,0 +1,3 @@ +.full-height { + height: 100%; +} \ No newline at end of file diff --git a/src/app/panels/imagegrp-panel/imagegrp-panel.component.ts b/src/app/panels/imagegrp-panel/imagegrp-panel.component.ts new file mode 100644 index 000000000..ad54d525e --- /dev/null +++ b/src/app/panels/imagegrp-panel/imagegrp-panel.component.ts @@ -0,0 +1,187 @@ +import { AfterViewInit, Component, Input, OnDestroy, Output } from '@angular/core'; +import { BehaviorSubject, combineLatest, merge, Observable, Subject } from 'rxjs'; +import { debounceTime, distinctUntilChanged, filter, first, map, startWith, takeUntil, withLatestFrom } from 'rxjs/operators'; +import { Page, ViewerDataType } from '../../models/evt-models'; +import { EVTModelService } from '../../services/evt-model.service'; +import { EvtLinesHighlightService } from '../../services/evt-lines-highlight.service'; +import { AppConfig } from 'src/app/app.config'; + +@Component({ + selector: 'evt-imagegrp-panel', + templateUrl: './imagegrp-panel.component.html', + styleUrls: ['./imagegrp-panel.component.scss'], +}) +export class ImageGrpPanelComponent implements OnDestroy, AfterViewInit{ + + @Input() panelNumber:number; + + @Input() viewerData: ViewerDataType; + + @Input() pageID: string; + + @Input() showHeader = true; + @Input() indipendentNavBar = false; + // @Input() sync = false; + private _showSyncButton = true; + + private unsubscribeAll$ = new Subject(); + + @Input() + public get showSyncButton() { + return this._showSyncButton; + } + public set showSyncButton(value) { + if (!value){ + this.isSyncButtonActive = ''; + this.linesHighlightService.syncTextImage$.next(false); + } + this._showSyncButton = value && AppConfig.evtSettings.ui.syncZonesHighlightButton; + } + + isSyncButtonActive: '' | 'active' = ''; + // public syncTextImage$ = new BehaviorSubject(false); + public currentPage$ = new BehaviorSubject(undefined); + public currentPageId$ = this.currentPage$.pipe( + + map((p) => p?.id), + ); + updatePageNumber$ = new Subject(); + updatePageNumber$$ = this.updatePageNumber$.asObservable().pipe( + startWith(0), + filter((pageNumber) => pageNumber !== null && pageNumber !== undefined), + distinctUntilChanged(), + debounceTime(40), + ); + pageNumber$ = this.currentPageId$.pipe( + withLatestFrom(this.evtModelService.imageDoublePages$), + map(([pageId, pages]) => pages.findIndex((page) => page.id === pageId)), + ); + + currentImageOnlyPage$ = this.currentPageId$.pipe( + // tap((pageId)=>{ + // console.log('current page id', pageId) + // }), + withLatestFrom( this.evtModelService.imageDoublePages$), + + + map(([pageId, imageOnlyPages]) => { + const p = imageOnlyPages?.find((imageOnlyPage) => imageOnlyPage.id === pageId); + + return p ? p : imageOnlyPages ? imageOnlyPages[0] : undefined; + }), + ); + selectedPage$ = this.currentImageOnlyPage$.pipe( + filter((imageOnlyPage) => imageOnlyPage !== undefined), + map((imageOnlyPage)=>imageOnlyPage.id), + ); + + pages$ = this.evtModelService.imageDoublePages$; + + @Output() pageChange: Observable = merge( + this.updatePageNumber$.pipe( + + filter((n) => n !== undefined), + withLatestFrom(this.evtModelService.imageDoublePages$), + map(([n, pages]) => pages[n]), + ), + this.currentPage$.pipe( + filter((p) => !!p), + distinctUntilChanged(), + )); + + currentMsDescId$ = new BehaviorSubject(undefined); + currentMsDesc$ = combineLatest([this.evtModelService.msDesc$, this.currentMsDescId$]).pipe( + filter(([msDesc, currentId]) => !!msDesc && !!currentId), + map(([msDesc, currentId]) => msDesc.find((m) => m.id === currentId)), + ); + + msDescOpen = false; + + constructor( + private evtModelService: EVTModelService, + private linesHighlightService: EvtLinesHighlightService, + ) {} + + ngOnDestroy(): void { + this.linesHighlightService.lineBeginningSelected$.next([]); + this.linesHighlightService.syncTextImage$.next(false); + + this.unsubscribeAll$.next(); + this.unsubscribeAll$.complete(); + } + + ngAfterViewInit(): void{ + + if (this.indipendentNavBar){ + this.evtModelService.imageDoublePages$.pipe( + first(), + ).subscribe((imageOnlyPages)=>{ + if (imageOnlyPages){ + const idx = this.panelNumber > imageOnlyPages?.length ? 0: this.panelNumber; + const cp = imageOnlyPages[idx]; + this.currentPage$.next(cp); + this.updatePageNumber$.next(idx); + this.pageID = cp?.id ?? ''; + } + }); + + this.pageChange.pipe( + takeUntil(this.unsubscribeAll$), + ).subscribe(( (currentPage) => { + + if (this.indipendentNavBar && currentPage) { + + this.pageID = currentPage.id; + } + })); + } else{ + this.evtModelService.imageDoublePages$.pipe( + first(), + + ).subscribe((imageOnlyPages)=>{ + + const cp = imageOnlyPages[0]; + this.currentPage$.next(cp); + this.updatePageNumber$.next(0); + this.pageID = cp.id; + + }); + } + } + + updatePage(viewerPage: number) { + this.updatePageNumber$.next(viewerPage > 0 ? viewerPage - 1 : 0); + this.evtModelService.imageDoublePages$.pipe( + first(), + ).subscribe((imageOnlyPages)=>{ + const page = imageOnlyPages[viewerPage-1]; + this.currentPage$.next(page) + }) + } + + onPageChange(pageId: string){ + this.pageID = pageId; + this.evtModelService.imageDoublePages$.pipe( + first(), + ).subscribe((imageOnlyPages)=>{ + const page = imageOnlyPages.find((p) => p.id === pageId) + this.currentPage$.next(page) + }) + + } + + onChangedCurrentPage(page:number) { + + this.evtModelService.imageDoublePages$.pipe( + map((imageOnlyPages) => page < 0 ? imageOnlyPages[imageOnlyPages.length - 1] : imageOnlyPages[page]), + first(), + ).subscribe( + (currentPage:Page ) => { + if (currentPage){ + this.currentPage$.next(currentPage); + } + + }, + ); + } +} diff --git a/src/app/panels/text-panel/text-panel.component.html b/src/app/panels/text-panel/text-panel.component.html index a64af8657..eb2231ff4 100644 --- a/src/app/panels/text-panel/text-panel.component.html +++ b/src/app/panels/text-panel/text-panel.component.html @@ -8,6 +8,7 @@ [active]="secondaryContent === 'INFO'"> +
    @@ -16,6 +17,8 @@ [attr.data-id]="page.id" [data]="page" [textFlow]="textFlow" + [withDeletions]="showDeletions" + [selectedLayer]="selectedLayer" [itemsToHighlight]="itemsToHighlight$ | async">
    @@ -39,11 +44,12 @@ [active]="secondaryContent === 'SEARCH_RESULTS'"> - + + (btnClick)="toggleHideDeletions()">
    \ No newline at end of file diff --git a/src/app/panels/text-panel/text-panel.component.ts b/src/app/panels/text-panel/text-panel.component.ts index 7f3cfe858..5386f7a17 100644 --- a/src/app/panels/text-panel/text-panel.component.ts +++ b/src/app/panels/text-panel/text-panel.component.ts @@ -27,8 +27,21 @@ export class TextPanelComponent { return this._mc; } + public orderedLayers: string[]; + + public selLayer: string; + @Input() set selectedLayer(layer: string) { + this.selLayer = layer; + this.evtStatus.updateLayer$.next(layer); + } + get selectedLayer() { return this.selLayer; } + @Input() hideEditionLevelSelector: boolean; + @Input() showChangeLayerSelector: boolean; + + @Input() enableHideDeletionsToggler: boolean; + @Input() pageID: string; updatePageFromScroll$ = new BehaviorSubject(undefined); updatePage$ = new BehaviorSubject(undefined); @@ -83,6 +96,9 @@ export class TextPanelComponent { if (e && !this.textFlow) { this.textFlow = this.defaultTextFlow; } + if (e && this.showDeletions === undefined) { + this.showDeletions = true; + } } public get editionLevelID() { return this._edLevel; @@ -134,13 +150,24 @@ export class TextPanelComponent { return this._tf; } - public get proseVersesTogglerIcon(): EvtIconInfo { + private _dl: boolean; + public set showDeletions(dl: boolean) { + this._dl = dl; + } + public get showDeletions() { + return this._dl; + } + + public deletionsText: 'hidesDeletions' | 'showsDeletions' = 'showsDeletions'; - return { icon: this.textFlow === 'prose' ? 'align-left' : 'align-justify', iconSet: 'fas' }; + public get hideDeletionsTogglerIcon(): EvtIconInfo { + return { icon: (this.showDeletions) ? 'eye' : 'eye-slash', iconSet: 'fas' }; } + public isMultiplePageActive: boolean = AppConfig.evtSettings.edition.multiPageEngineForCriticalEdition; + public isMultiplePageFlow$ = this.currentStatus$.pipe( - map((x) => x.editionLevel.id === 'critical' && x.currentViewMode.id !== 'imageText'), + map((x) => x.editionLevel.id === 'critical' && x.currentViewMode.id !== 'imageText' && this.isMultiplePageActive), shareReplay(1), ); @@ -171,8 +198,17 @@ export class TextPanelComponent { } } - toggleProseVerses() { - this.textFlow = this.textFlow === 'prose' ? 'verses' : 'prose'; + toggleProseVerses(mode: TextFlow) { + this.textFlow = mode; + } + + toggleHideDeletions() { + this.showDeletions = !this.showDeletions; + this.deletionsText = (this.showDeletions) ? 'showsDeletions' : 'hidesDeletions' + } + + updateSelectedLayer(layer: string) { + this.selectedLayer = layer; } private _scrollToPage(pageId: string) { diff --git a/src/app/services/editorial-conventions.service.ts b/src/app/services/editorial-conventions.service.ts index 5e3b5981d..5bc23ea21 100644 --- a/src/app/services/editorial-conventions.service.ts +++ b/src/app/services/editorial-conventions.service.ts @@ -5,7 +5,7 @@ import { EditorialConvention, EditorialConventionLayouts } from '../models/evt-m // List of handled editorial convention export type EditorialConventionDefaults = 'addition' | 'additionAbove' | 'additionBelow' | 'additionInline' | 'additionLeft' | 'additionRight' | - 'damage' | 'deletion' | 'sicCrux' | 'surplus'; + 'damage' | 'deletion' | 'sicCrux' | 'surplus' | 'sources' | 'analogues' | 'mod' ; @Injectable({ providedIn: 'root', @@ -31,6 +31,12 @@ export class EditorialConventionsService { 'background-color': '#bdecb6', }, }, + changesView: { + style: { + 'vertical-align': 'super', + 'font-size': '1rem', + }, + }, }, additionBelow: { interpretative: { @@ -44,6 +50,12 @@ export class EditorialConventionsService { 'background-color': '#bdecb6', }, }, + changesView: { + style: { + 'vertical-align': 'bottom', + 'font-size': '1rem', + }, + }, }, additionInline: { interpretative: { @@ -69,6 +81,11 @@ export class EditorialConventionsService { 'background-color': '#bdecb6', }, }, + changesView: { + style: { + 'margin-left': '-1rem', + }, + }, }, additionRight: { interpretative: { @@ -89,6 +106,11 @@ export class EditorialConventionsService { 'background-color': 'rgba(193, 193, 193, 0.7)', }, }, + changesView: { + style: { + 'background-color': 'rgba(193, 193, 193, 0.7)', + }, + }, }, deletion: { diplomatic: { @@ -101,6 +123,11 @@ export class EditorialConventionsService { pre: '[[', post: ']]', }, + changesView: { + style: { + 'text-decoration': 'line-through', + }, + }, }, sicCrux: { diplomatic: { @@ -115,6 +142,10 @@ export class EditorialConventionsService { pre: '†', post: '†', }, + changesView: { + pre: '†', + post: '†', + }, }, surplus: { diplomatic: { @@ -125,26 +156,84 @@ export class EditorialConventionsService { }, }, }, + 'sources': { + diplomatic: { + style: { + 'font-style': 'italic', + 'font-size': '104%', + }, + }, + interpretative: { + style: { + 'font-style': 'italic', + 'font-size': '104%', + }, + }, + critical: { + style: { + 'font-style': 'italic', + 'font-size': '104%', + }, + }, + }, + 'analogues': { + diplomatic: { + pre: '🗎', + style: { + 'text-decoration': 'underline dotted from-font', + }, + }, + interpretative: { + pre: '🗎', + style: { + 'text-decoration': 'underline dotted from-font', + }, + }, + critical: { + pre: '🗎', + style: { + 'text-decoration': 'underline dotted from-font', + }, + }, + changesView: { + pre: '🗎', + style: { + 'text-decoration': 'underline dotted from-font', + }, + }, + }, + mod: { + diplomatic: { + style: { + 'background-color': '#bdecb6', + }, + }, + critical: { + style: { + 'background-color': '#bdecb6', + }, + }, + interpretative: { + style: { + 'background-color': '#bdecb6', + }, + }, + }, }; getLayouts(name: string, attributes: AttributesMap, defaultsKey: EditorialConventionDefaults) { + const excludedFromAttributeControl = ['sources', 'analogues']; const defaultKeys = this.defaultLayouts[defaultsKey]; let layouts: Partial = defaultKeys; const externalLayouts = this._getExternalConfigs().find((c) => c.element === name && - (!attributes || Object.keys(attributes).concat( + (excludedFromAttributeControl.includes(name) || !attributes || Object.keys(attributes).concat( Object.keys(c.attributes)).every((k) => attributes[k] === c.attributes[k])))?.layouts ?? undefined; if (externalLayouts) { - Object.keys(externalLayouts).forEach((editionLevel) => { - layouts = { - ...defaultKeys || {}, - [editionLevel]: { - ...defaultKeys ? defaultKeys[editionLevel] : {}, - ...externalLayouts[editionLevel], - }, - }; - }); + layouts = { + ...externalLayouts || {}, + } } return layouts; diff --git a/src/app/services/evt-lines-highlight.service.ts b/src/app/services/evt-lines-highlight.service.ts new file mode 100644 index 000000000..57bf52313 --- /dev/null +++ b/src/app/services/evt-lines-highlight.service.ts @@ -0,0 +1,144 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject, filter, map, withLatestFrom } from 'rxjs'; +import { EVTModelService } from './evt-model.service'; +import { EVTStatusService } from './evt-status.service'; +import { Lb, Paragraph, Verse, Word } from '../models/evt-models'; + +@Injectable({ providedIn: 'root' }) +export class EvtLinesHighlightService { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private parsedContent: any; + constructor(private evtModelService: EVTModelService, private evtStatusService: EVTStatusService ){ + this.evtStatusService.currentPage$.subscribe((page)=>{ + this.clearHighlightText(); + this.lineBeginningSelected$.next([]); + this.parsedContent = page.parsedContent; + if (page){ + setTimeout(()=>{ + page.parsedContent?.forEach((pc)=>{ + if (pc) { this.assignLbId(pc, false); } + }) + }, 500); + } + }) + this.lineBeginningSelected$.pipe( + filter(()=> this.syncTextImage$.value), + ).subscribe((lines) => { + if (lines.length > 0) { + this.highlightLineText( + lines.map((z)=> ({ id: z.corresp, selected: z.selected })), + ); + } else { + this.clearHighlightText(); + } + }); + } + + public syncTextImage$ = new BehaviorSubject(false); + + lineBeginningSelected$ = new BehaviorSubject>([]); + + currentSurfaces$ = this.evtStatusService.currentPage$.pipe( + withLatestFrom(this.evtModelService.surfaces$), + map(([cp, surfaces]) => surfaces.find((surface) => surface.corresp === cp.id)), + ); + + zonesHighlights$ = this.lineBeginningSelected$.pipe( + withLatestFrom(this.currentSurfaces$), + map(([lbS, surface]) =>{ + const linesOver = surface?.zones?.lines.filter((line) => lbS.some((l) => l.id === line.id || l.id === line.corresp)) ?? []; + + return linesOver.map((lo) => ({ + id: lo.id, + corresp: lo.corresp, + // ul: { x: lo.coords[0].x, y: lo.coords[0].y }, + // lr: { x: lo.coords[2].x, y: lo.coords[2].y }, + coords: lo.coords, + selected: lbS.find((l)=>l.corresp === lo.corresp)?.selected, + })); + }), + ); + + private tempLbId = ''; + private tempCorrespId = ''; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private assignLbId(startingContent: any, ignoreFindLbElement: boolean): void{ + if (startingContent.type.name === Verse.name && startingContent.attributes['facs']){ + const facsId = startingContent.attributes['facs'].replace('#', ''); + const id = startingContent.attributes['id']; + + this.tempLbId = facsId; + this.tempCorrespId = id; + + startingContent.lbId = this.tempLbId; + startingContent.correspId = this.tempCorrespId; + + for (const insideContent of startingContent.content) { + this.assignLbId(insideContent, true); + } + this.tempLbId = ''; + this.tempCorrespId = ''; + + return; + } + + if (startingContent.type.name === Lb.name && !ignoreFindLbElement){ + this.tempLbId = startingContent.facs?.replace('#', ''); + this.tempCorrespId = startingContent.id?.replace('#', ''); + + return; + } + startingContent.lbId = this.tempLbId; + startingContent.correspId = this.tempCorrespId; + if (startingContent.content !== undefined) { + for (const insideContent of startingContent.content) { + this.assignLbId(insideContent, ignoreFindLbElement); + } + } + + } + + clearHighlightText():void { + if (this.parsedContent === undefined){ + return; + } + for (const pc of this.parsedContent) { + this.recursiveHighlight(pc, [{ id: 'empty', selected: false }]); + } + } + + highlightLineText(lbIds: Array<{id: string, selected: boolean}>) { + if (!lbIds || lbIds.length === 0) { + return; + } + + for (const pc of this.parsedContent) { + this.recursiveHighlight(pc, lbIds); + } + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private recursiveHighlight( pc: any, lbIds: Array<{id: string, selected: boolean}>): void{ + if (pc && pc.type.name !== Verse.name && pc.type.name !== Paragraph.name && pc.type.name !== Word.name ){ + const f = lbIds.find( (lbId) => pc.correspId === lbId.id); + if (f){ + if (f.selected) { + pc.class= pc.class + ' highlightverse selected'; + } else { + pc.class= pc.class + ' highlightverse'; + } + } else { + if (pc.class) { + pc.class = pc.class.replace(/(highlightverse)(\s)?(selected)?/,''); + } + } + } + + if (pc?.content){ + for (const insidePc of pc.content) { + this.recursiveHighlight(insidePc, lbIds); + } + } + } +} diff --git a/src/app/services/evt-model.service.ts b/src/app/services/evt-model.service.ts index 8401a9fb8..cc561048c 100644 --- a/src/app/services/evt-model.service.ts +++ b/src/app/services/evt-model.service.ts @@ -1,7 +1,17 @@ import { Injectable } from '@angular/core'; import { combineLatest, Observable } from 'rxjs'; -import { map, shareReplay, switchMap } from 'rxjs/operators'; -import { NamedEntities, NamedEntityOccurrence, OriginalEncodingNodeType, Page, ZoneHotSpot, ZoneLine } from '../models/evt-models'; +import { combineLatestWith, map, shareReplay, switchMap } from 'rxjs/operators'; +import { + ChangeLayerData, + Facsimile, + NamedEntities, + NamedEntityOccurrence, + OriginalEncodingNodeType, + Page, + XMLImagesValues, + ZoneHotSpot, + ZoneLine, +} from '../models/evt-models'; import { Map } from '../utils/js-utils'; import { EditionDataService } from './edition-data.service'; import { ApparatusEntriesParserService } from './xml-parsers/apparatus-entries-parser.service'; @@ -13,6 +23,11 @@ import { NamedEntitiesParserService } from './xml-parsers/named-entities-parser. import { PrefatoryMatterParserService } from './xml-parsers/prefatory-matter-parser.service'; import { StructureXmlParserService } from './xml-parsers/structure-xml-parser.service'; import { WitnessesParserService } from './xml-parsers/witnesses-parser.service'; +import { SourceEntriesParserService } from './xml-parsers/source-entries-parser.service'; +import { AnalogueEntriesParserService } from './xml-parsers/analogues-entries-parser.service'; +import { AppConfig } from '../app.config'; +import { BibliographicEntriesParserService } from './xml-parsers/bibliographic-entries-parser.service'; +import { ModParserService } from './xml-parsers/mod-parser.service'; @Injectable({ providedIn: 'root', @@ -120,6 +135,12 @@ export class EVTModelService { shareReplay(1), ); + // CHANGES + public changeData$: Observable = this.editionSource$.pipe( + map((source) => this.modParser.buildChangeList(source)), + shareReplay(1), + ); + // APPARATUS ENTRIES public readonly appEntries$ = this.editionSource$.pipe( map((source) => this.apparatusParser.parseAppEntries(source)), @@ -143,7 +164,162 @@ export class EVTModelService { shareReplay(1), ); + //QUOTED SOURCES + public readonly sourceEntries$ = this.editionSource$.pipe( + map((source) => this.sourceParser.parseSourceEntries(source)), + shareReplay(1), + ); + + // PARALLEL PASSAGES + public readonly analogueEntries$ = this.editionSource$.pipe( + map((source) => this.analogueParser.parseAnaloguesEntries(source)), + shareReplay(1), + ); + // FACSIMILE + public readonly facsimile$ : Observable = this.editionSource$.pipe( + map((source) => this.facsimileParser.parseFacsimile(source)), + shareReplay(1), + ); + + public readonly facsimileImageDouble$: Observable = this.facsimile$.pipe( + map((facSimiles)=>{ + const fcRendDouble = facSimiles.find((fs) => fs.attributes['rend'] === 'double'); + if (fcRendDouble) {return fcRendDouble;} + + const fcWithSurfacesGrp = facSimiles.find((fs)=> fs.surfaceGrps?.length > 0); + if (fcWithSurfacesGrp) {return fcWithSurfacesGrp;} + + return undefined; + }), + ); + + public readonly imageDoublePages$: Observable = this.facsimileImageDouble$.pipe( + combineLatestWith(this.pages$), + map(([ facsSimile, pages])=>{ + if (facsSimile?.graphics?.length > 0){ + // Qui abbiamo i graphics + return facsSimile.graphics.map((_g, index)=>{ + const p : Page={ + url: '', + parsedContent: undefined, + originalContent: undefined, + label: _g.attributes['n'], + id: index.toString(), + facsUrl: '', + facs: '', + }; + + return p; + }); + } + + return facsSimile?.surfaceGrps.map((sGrp)=> { + const titleName = sGrp.surfaces.reduce((pv, cv) => { + const fp: Page = pages.find((p)=>p.id === cv.corresp); + if (pv.length === 0) { + + if (fp){ + return pv + fp.label; + } + + return pv + cv.corresp.replace('#', ''); + } + if (fp){ + return pv + ' ' + fp.label; + } + + return pv + ' ' + cv.corresp.replace('#', ''); + + }, ''); + const id = sGrp.surfaces.reduce((pv, cv) => { + if (pv.length === 0) { + return pv + cv.corresp.replace('#', ''); + } + + return pv + '-' + cv.corresp.replace('#', ''); + }, ''); + + const p : Page={ + url: '', + parsedContent: undefined, + originalContent: undefined, + label: titleName, + id: id, + facsUrl: '', + facs: '', + }; + + return p; + }); + + + }), + ); + + public readonly imageDouble$: Observable<{ type: string, value:{ xmlImages:XMLImagesValues[]}} | undefined > = + this.facsimileImageDouble$.pipe( + map((fs)=> { + if (fs?.graphics?.length > 0){ + //const editionImages = AppConfig.evtSettings.files.editionImagesSource; + const result: XMLImagesValues[] = fs.graphics.map((g) => { + + const fileName = g.url; + + const imagesFolderUrl = AppConfig.evtSettings.files.imagesFolderUrls.double; + const url = `${imagesFolderUrl}${fileName}`; + const r: XMLImagesValues = { + url: url, + width: g.width?parseInt(g.width) : 910, + height: g.height?parseInt(g.height) : 720, + }; + + return r; + }); + + return { + type: 'default', + value: { + xmlImages: result, + }, + }; + } else if (fs?.surfaceGrps?.length > 0) { + const editionImages = AppConfig.evtSettings.files.editionImagesSource; + console.log(editionImages); + + const result: XMLImagesValues[] = fs.surfaceGrps.map((sGrp) => { + + const fileName = sGrp.surfaces.reduce((pv, cv) => { + if (pv.length === 0) { + return pv + cv.corresp.replace('#', ''); + } + + return pv + '-' + cv.corresp.replace('#', ''); + }, ''); + + const imagesFolderUrl = AppConfig.evtSettings.files.imagesFolderUrls.double; + const url = `${imagesFolderUrl}${fileName}.jpg`; + const r: XMLImagesValues = { + url: url, + width: 910, + height: 720, + }; + + return r; + }); + + return { + type: 'default', + value: { + xmlImages: result, + }, + }; + } + + return undefined; + }), + ); + public readonly surfaces$ = this.editionSource$.pipe( map((source) => this.facsimileParser.parseSurfaces(source)), shareReplay(1), @@ -171,18 +347,24 @@ export class EVTModelService { ); public readonly specialChars$ = combineLatest([ - this.characters$, - this.glyphs$, - ]).pipe( - map(([chars, glyphs]) => chars.concat(glyphs)), - ); + this.characters$, + this.glyphs$, + ]).pipe( + map(([chars, glyphs]) => chars.concat(glyphs)), + ); public readonly msDesc$ = this.editionSource$.pipe( map((source) => this.msDescParser.parseMsDesc(source)), shareReplay(1), -); + ); + + public readonly bibliographicEntries$ = this.editionSource$.pipe( + map((source) => this.bibliographicEntriesParser.parseBibliographicEntries(source)), + shareReplay(1), + ) constructor( + private analogueParser: AnalogueEntriesParserService, private editionDataService: EditionDataService, private editionStructureParser: StructureXmlParserService, private namedEntitiesParser: NamedEntitiesParserService, @@ -193,6 +375,9 @@ export class EVTModelService { private characterDeclarationsParser: CharacterDeclarationsParserService, private linesVersesParser: LinesVersesParserService, private msDescParser: MsDescParserService, + private sourceParser: SourceEntriesParserService, + private bibliographicEntriesParser: BibliographicEntriesParserService, + private modParser: ModParserService, ) { } diff --git a/src/app/services/evt-status.service.ts b/src/app/services/evt-status.service.ts index 8409fc25f..3fcd98f3c 100644 --- a/src/app/services/evt-status.service.ts +++ b/src/app/services/evt-status.service.ts @@ -4,10 +4,11 @@ import { BehaviorSubject, combineLatest, merge, Observable, Subject, timer } fro import { distinctUntilChanged, filter, first, map, mergeMap, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators'; import { AppConfig, EditionLevelType } from '../app.config'; -import { Page, ViewMode } from '../models/evt-models'; +import { ChangeLayerData, Page, ViewMode } from '../models/evt-models'; import { EVTModelService } from './evt-model.service'; +import { deepSearch } from '../utils/dom-utils'; -export type URLParamsKeys = 'd' | 'p' | 'el' | 'ws' | 'vs'; +export type URLParamsKeys = 'd' | 'p' | 'el' | 'ws' | 'vs' | 'lr'; export type URLParams = { [T in URLParamsKeys]: string }; @Injectable({ @@ -38,6 +39,7 @@ export class EVTStatusService { return defaultViewMode; } + public updateViewMode$: BehaviorSubject = new BehaviorSubject(undefined); public updateDocument$: BehaviorSubject = new BehaviorSubject(''); public updatePage$: Subject = new Subject(); @@ -46,6 +48,8 @@ export class EVTStatusService { public updateEditionLevels$: Subject = new Subject(); public updateWitnesses$: BehaviorSubject = new BehaviorSubject([]); public updateVersions$: BehaviorSubject = new BehaviorSubject([]); + public updateChangeLayer$: BehaviorSubject = new BehaviorSubject(undefined); + public updateLayer$: BehaviorSubject = new BehaviorSubject(undefined); public currentViewMode$ = this.updateViewMode$.asObservable(); public currentDocument$ = merge( @@ -85,6 +89,20 @@ export class EVTStatusService { this.route.queryParams.pipe(map((params: URLParams) => params.vs?.split(',') ?? [])), this.updateVersions$, ); + public currentChanges$ = merge( + merge( + //this.route.queryParams.pipe(map((params: URLParams) => params.lr ?? '')), + this.evtModelService.changeData$, + ).pipe( + filter((n) => n !== undefined), + withLatestFrom(this.updateLayer$), + map(([data,selectedLayer]) => { + data.selectedLayer = selectedLayer; + + return data; + }), + ), + ); public currentStatus$: Observable = combineLatest([ this.updateViewMode$, @@ -93,6 +111,7 @@ export class EVTStatusService { this.currentEditionLevels$, this.currentWitnesses$, this.currentVersions$, + this.currentChanges$, ]).pipe( distinctUntilChanged((x, y) => JSON.stringify(x) === JSON.stringify(y)), shareReplay(1), @@ -103,6 +122,7 @@ export class EVTStatusService { editionLevels, witnesses, versions, + changeLayerData, ]) => { if (viewMode.id === 'textText') { if (editionLevels.length === 1) { @@ -121,6 +141,7 @@ export class EVTStatusService { editionLevels, witnesses, versions, + changeLayerData, }; }), ); @@ -131,6 +152,10 @@ export class EVTStatusService { public currentNamedEntityId$: BehaviorSubject = new BehaviorSubject(undefined); + public currentQuotedId$: BehaviorSubject = new BehaviorSubject(undefined); + + public syncImageNavBar$: BehaviorSubject = new BehaviorSubject(false); + constructor( private evtModelService: EVTModelService, private router: Router, @@ -171,6 +196,7 @@ export class EVTStatusService { el: status.editionLevels.join(','), ws: status.witnesses.join(','), vs: status.versions.join(','), + lr: status.changeLayerData.selectedLayer, }; Object.keys(params).forEach((key) => (params[key] === '') && delete params[key]); @@ -179,6 +205,18 @@ export class EVTStatusService { params, }; } + + /** to avoid loops this function must not be fed with nodes */ + getPageElementsByClassList(classList) { + const attributesNotIncludedInSearch = ['originalEncoding','type','spanElements','includedElements']; + const maxEffort = 4000; + + return this.currentStatus$.pipe( + map(({ page }) => page.parsedContent), + map((pageSubElements) => deepSearch(pageSubElements, 'class', classList, maxEffort, attributesNotIncludedInSearch)), + ); + } + } export interface AppStatus { @@ -188,4 +226,5 @@ export interface AppStatus { editionLevels: EditionLevelType[]; witnesses: string[]; versions: string[]; + changeLayerData: ChangeLayerData, } diff --git a/src/app/services/xml-parsers/analogue-parser.ts b/src/app/services/xml-parsers/analogue-parser.ts new file mode 100644 index 000000000..0244baa13 --- /dev/null +++ b/src/app/services/xml-parsers/analogue-parser.ts @@ -0,0 +1,138 @@ +import { AppConfig } from 'src/app/app.config'; +import { parse, ParserRegister, xmlParser } from '.'; +import { Analogue, AnalogueClass, BibliographicEntry, BibliographicList, GenericElement, Milestone, XMLElement } from '../../models/evt-models'; +import { AnchorParser, AttributeParser, GenericElemParser, MilestoneParser } from './basic-parsers'; +import { createParser, getID, parseChildren, Parser } from './parser-models'; +import { chainFirstChildTexts, getExternalElements, normalizeSpaces } from '../../utils/xml-utils'; +import { BibliographyParser } from './bibliography-parsers'; +import { BasicParser } from './quotes-parser'; + +@xmlParser('evt-analogue-entry-parser', AnalogueParser) +export class AnalogueParser extends BasicParser implements Parser { + elementParser = createParser(GenericElemParser, parse); + attributeParser = createParser(AttributeParser, this.genericParse); + biblParser = createParser(BibliographyParser, this.genericParse); + milestoneParser = createParser(MilestoneParser, this.genericParse); + anchorParser = createParser(AnchorParser, this.genericParse); + + analogueMarker = AppConfig.evtSettings.edition.analogueMarkers; + biblAttributeToMatch = AppConfig.evtSettings.edition.externalBibliography.biblAttributeToMatch; + elemAttributesToMatch = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + notDisplayedInTextFlow = ['Note', 'BibliographicList', 'BibliographicEntry', 'BibliographicStructEntry', + 'Analogue', 'MsDesc']; + evtTextComplexElements = ['choice', 'app', 'l', 'quote', 'p', 'lg']; + evtInnerTextElements = ['#text', 'reg', 'corr', 'rdg']; + + public parse(analogue: XMLElement): GenericElement|Analogue { + + if (!(this.analogueMarker.includes(analogue.getAttribute('type'))) || (analogue.parentElement.tagName === 'cit')) { + // no source/target attribute or inside a cit element: not an analogue to display alone + return this.elementParser.parse(analogue) + } + + const notableElements = ['div','p','l','lg','note']; + const sources = this.buildAnalogueSources(analogue); + const content = parseChildren(analogue, this.genericParse); + + return { + type: Analogue, + id: (notableElements.includes(analogue.tagName)) ? 'EVT-ANALOGUE:' + getID(analogue) : getID(analogue), + class: AnalogueClass, + attributes: this.attributeParser.parse(analogue), + text: normalizeSpaces(chainFirstChildTexts(analogue, this.evtTextComplexElements, this.evtInnerTextElements)), + content: content, + contentToShow: content.filter((x) => !(this.notDisplayedInTextFlow.includes(x['type'].name))), + sources: sources.sources, + extSources: sources.extSources, + extLinkedElements: sources.extLinkedElements, + quotedElements: this.getQuotedTextFromElements(sources.sources.concat(sources.extSources), sources.extLinkedElements), + originalEncoding: analogue, + }; + } + + /** + * Since elements like ref and seg are not only used for parallel passages, + * this function checks if the provided element contains an external link to a bibl element + * and returns that elements or a false + */ + private buildAnalogueSources(analogue: XMLElement) { + const selectorsAllowed = 'bibl, bibStruct, listBibl, cit, quote, note, seg, div, l, lg, p, milestone, anchor'; + const elsAllowedForSources = ['bibl','listBibl', 'biblStruct', 'ref', 'cit']; + const sources = this.getInsideSources(analogue); + const extElements = getExternalElements(analogue, this.elemAttributesToMatch, this.biblAttributeToMatch, selectorsAllowed); + const extSources = extElements.map((x) => (elsAllowedForSources.includes(x.tagName)) ? this.biblParser.parse(x) : null).filter((x) => x); + const parallelPassages = this.selectAndParseParallelElements(extElements); + + return { + 'sources': sources, + 'extSources': extSources, + 'extLinkedElements': parallelPassages, + }; + } + + /** + * Retrieve all Bibliography elements *inside* this analogue element + * @param quote XMLElement + * @returns array of Bibliography Element or a single Bibliography List element + */ + private getInsideSources(analogue: XMLElement): BibliographicEntry[] { + const bibl = ['bibl','listBibl','biblStruct','ref']; + + return Array.from(analogue.children) + .map((x: XMLElement) => bibl.includes(x['tagName']) ? this.biblParser.parse(x) : null) + .filter((x) => x); + } + + /** + * Gather and send to parse allowed linked parallel passages + */ + private selectAndParseParallelElements(suspectPPs) { + const elemParserAssoc = { + l: ParserRegister.get('l'), + lg: ParserRegister.get('lg'), + p: ParserRegister.get('p'), + div: this.elementParser, + seg: this.elementParser, + anchor: this.anchorParser, + milestone: this.milestoneParser, + quote: this.elementParser, + note: this.elementParser, + } + const addendum = []; + const ppElements = suspectPPs.map((x) => (elemParserAssoc[x['tagName']] !== undefined) ? elemParserAssoc[x['tagName']].parse(x) : null) + .filter((x) => x); + ppElements.map((x) => (x.type === Milestone) ? addendum.push(x.spanElements) : x ); + + return ppElements.concat(addendum.flat()); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private getQuotedTextFromSources(nodes: BibliographicEntry[]): any { + let quotesInSources = []; + nodes.forEach((el: BibliographicEntry|BibliographicList) => { + if (el.type === BibliographicList) { + quotesInSources = quotesInSources.concat(this.getQuotedTextFromSources(el['sources'])); + } else { + if (el['quotedText'] !== null) { + quotesInSources.push({ id: el.id, quote: el['quotedText'] }); + } + }; + }); + + return quotesInSources; + } + + private getQuotedTextFromElements(sources: BibliographicEntry[], elements: XMLElement[]): [{id: string, quote: string}] { + // eslint-disable-next-line prefer-const + let quotesInSources = this.getQuotedTextFromSources(sources); + const notDisplayedInText = ['Note','BibliographicList','BibliographicEntry','BibliographicStructEntry','Analogue','MsDesc']; + elements.forEach((el: XMLElement) => { + if (!notDisplayedInText.includes(el['type'])) { + quotesInSources.push( { id: el.id, quote: el }) + } + }); + + return quotesInSources; + } + +} diff --git a/src/app/services/xml-parsers/analogues-entries-parser.service.ts b/src/app/services/xml-parsers/analogues-entries-parser.service.ts new file mode 100644 index 000000000..12edecfd9 --- /dev/null +++ b/src/app/services/xml-parsers/analogues-entries-parser.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { ParserRegister } from '.'; +import { Analogue, AnalogueClass, XMLElement } from '../../models/evt-models'; + +@Injectable({ + providedIn: 'root', +}) +export class AnalogueEntriesParserService { + private className = `.${AnalogueClass}`; + private parserName = 'evt-analogue-entry-parser'; + + public parseAnaloguesEntries(document: XMLElement) { + const analogueParser = ParserRegister.get(this.parserName); + + return Array.from(document.querySelectorAll(this.className)) + .map((analogue) => analogueParser.parse(analogue) as Analogue); + } + +} diff --git a/src/app/services/xml-parsers/app-parser.ts b/src/app/services/xml-parsers/app-parser.ts index a2211ab30..726d8291e 100644 --- a/src/app/services/xml-parsers/app-parser.ts +++ b/src/app/services/xml-parsers/app-parser.ts @@ -1,7 +1,6 @@ import { AppConfig } from 'src/app/app.config'; import { xmlParser } from '.'; -import { ApparatusEntry, Note, Reading, XMLElement } from '../../models/evt-models'; -import { getOuterHTML } from '../../utils/dom-utils'; +import { ApparatusEntry, Mod, Note, Reading, XMLElement } from '../../models/evt-models'; import { removeSpaces } from '../../utils/xml-utils'; import { AttributeParser, EmptyParser, NoteParser } from './basic-parsers'; import { createParser, getID, Parser } from './parser-models'; @@ -20,6 +19,7 @@ export class RdgParser extends EmptyParser implements Parser { content: this.parseAppReadingContent(rdg), significant: this.isReadingSignificant(rdg), class: rdg.tagName.toLowerCase(), + varSeq: parseInt(rdg.getAttribute('varSeq')), }; } @@ -64,17 +64,24 @@ export class AppParser extends EmptyParser implements Parser { rdgParser = createParser(RdgParser, this.genericParse); public parse(appEntry: XMLElement): ApparatusEntry { + + const lemma = this.parseLemma(appEntry); + const readings = this.parseReadings(appEntry); + const allReadings = (lemma !== undefined) ? readings.concat(lemma) : readings; + return { type: ApparatusEntry, id: getID(appEntry), attributes: this.attributeParser.parse(appEntry), content: [], - lemma: this.parseLemma(appEntry), - readings: this.parseReadings(appEntry), + lemma: lemma, + readings: readings, notes: this.parseAppNotes(appEntry), - originalEncoding: getOuterHTML(appEntry), + originalEncoding: appEntry, class: appEntry.tagName.toLowerCase(), nestedAppsIDs: this.getNestedAppsIDs(appEntry), + changes: (lemma !== undefined) ? this.orderChanges(allReadings, lemma) : [], + orderedReadings: Array.from(allReadings).sort((r1, r2) => r1.varSeq - r2.varSeq), }; } @@ -102,4 +109,32 @@ export class AppParser extends EmptyParser implements Parser { .filter((el) => el.closest(this.appEntryTagName) === appEntry) .map((rdg: XMLElement) => this.rdgParser.parse(rdg)); } + + /** + * This function order readings for varSeq attributes and retrieves lem's first + * (and hopefully unique) mod element '@change'. + * This info is useful to mod-component in order to decide when to switch + * between lemma and reading. + */ + private orderChanges(readings: Reading[], lemma: Reading): Mod[] { + const changes = []; + let lemmaLayer: string; + Array.from(lemma.content).map((el) => { + if (el['type'] && el['type'] === Mod) { + if (el['changeLayer']) { + lemmaLayer = el['changeLayer']; + } else { + lemmaLayer = null; + } + } + } ) + Array.from(readings).map((reading) => reading.content.map(( el ) => { + if (el['type'] && el['type'] === Mod) { + el['insideApp'] = [true, lemmaLayer]; + changes.push(el); + } + })); + + return changes; + } } diff --git a/src/app/services/xml-parsers/apparatus-entries-parser.service.ts b/src/app/services/xml-parsers/apparatus-entries-parser.service.ts index 7a5950001..d02737a44 100644 --- a/src/app/services/xml-parsers/apparatus-entries-parser.service.ts +++ b/src/app/services/xml-parsers/apparatus-entries-parser.service.ts @@ -18,7 +18,7 @@ export class ApparatusEntriesParserService { public getSignificantReadings(apps: ApparatusEntry[]) { const signRdgs = {}; apps.forEach((app) => { - signRdgs[app.id] = app.readings.concat(app.lemma).filter((rdg: Reading) => rdg.significant); + signRdgs[app.id] = app.readings.concat(app.lemma).filter((rdg: Reading) => rdg?.significant); }); return signRdgs; diff --git a/src/app/services/xml-parsers/basic-parsers.ts b/src/app/services/xml-parsers/basic-parsers.ts index d21332ce2..e4729a60b 100644 --- a/src/app/services/xml-parsers/basic-parsers.ts +++ b/src/app/services/xml-parsers/basic-parsers.ts @@ -1,12 +1,15 @@ import { AttributesMap } from 'ng-dynamic-component'; import { ParserRegister, xmlParser } from '.'; import { - Addition, Attributes, Damage, Deletion, Gap, GenericElement, Lb, Note, NoteLayout, - Paragraph, PlacementType, Ptr, Supplied, Term, Text, Verse, VersesGroup, Word, XMLElement, + Addition, Analogue, Anchor, Attributes, Damage, Deletion, Gap, GenericElement, Lb, Milestone, Note, NoteLayout, + Paragraph, PlacementType, Ptr, QuoteEntry, Space, Span, SpanGrp, Subst, Supplied, Term, Text, Verse, VersesGroup, Word, XMLElement, } from '../../models/evt-models'; -import { isNestedInElem, xpath } from '../../utils/dom-utils'; -import { replaceMultispaces } from '../../utils/xml-utils'; +import { getElementsBetweenTreeNode, isNestedInElem, xpath } from '../../utils/dom-utils'; +import { getExternalElements, isAnalogue, isSource, replaceMultispaces } from '../../utils/xml-utils'; import { createParser, getClass, getDefaultN, getID, parseChildren, ParseFn, Parser } from './parser-models'; +import { AppConfig } from 'src/app/app.config'; +import { AnalogueParser } from './analogue-parser'; +import { QuoteParser } from './quotes-parser'; export class EmptyParser { genericParse: ParseFn; @@ -53,6 +56,15 @@ export class GenericParser extends GenericElemParser { protected genericElemParser = createParser(GenericElemParser, this.genericParse); } +export class DisambiguationParser extends GenericElemParser { + protected elementParser = createParser(GenericElemParser, this.genericParse); + protected attributeParser = createParser(AttributeParser, this.genericParse); + protected analogueParser = createParser(AnalogueParser, this.genericParse); + protected quoteParser = createParser(QuoteParser, this.genericParse); + protected sourceAttr = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + protected analogueMarkers = AppConfig.evtSettings.edition.analogueMarkers; +} + @xmlParser('evt-attribute-parser', AttributeParser) export class AttributeParser extends EmptyParser implements Parser { parse(data: HTMLElement): Attributes { @@ -87,13 +99,30 @@ export class TextParser implements Parser { @xmlParser('p', ParagraphParser) export class ParagraphParser extends EmptyParser implements Parser { + analogueParser = createParser(AnalogueParser, this.genericParse); + quoteParser = createParser(QuoteParser, this.genericParse); + sourceAttr = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + analogueMarkers = AppConfig.evtSettings.edition.analogueMarkers; + source = null; + analogue = null; + parse(xml: XMLElement): Paragraph { + + if (isAnalogue(xml, this.analogueMarkers)) { + this.analogue = this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + this.source = this.quoteParser.parse(xml); + } + const attributes = ParserRegister.get('evt-attribute-parser').parse(xml) as Attributes; const paragraphComponent: Paragraph = { type: Paragraph, content: parseChildren(xml, this.genericParse), attributes, n: getDefaultN(attributes.n), + source: this.source, + analogue: this.analogue, }; return paragraphComponent; @@ -119,9 +148,31 @@ export class LBParser extends EmptyParser implements Parser { } } +@xmlParser('space', SpaceParser) +export class SpaceParser extends EmptyParser implements Parser { + + parse(xml: XMLElement): Space { + const attributes = ParserRegister.get('evt-attribute-parser').parse(xml) as Attributes; + const spaceComponent: Space = { + type: Space, + content: parseChildren(xml, this.genericParse), + attributes, + }; + + return spaceComponent; + } +} + @xmlParser('note', NoteParser) export class NoteParser extends EmptyParser implements Parser { attributeParser = createParser(AttributeParser, this.genericParse); + analogueParser = createParser(AnalogueParser, this.genericParse); + quoteParser = createParser(QuoteParser, this.genericParse); + sourceAttr = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + analogueMarkers = AppConfig.evtSettings.edition.analogueMarkers; + source = null; + analogue = null; + parse(xml: XMLElement): Note { const noteLayout: NoteLayout = this.isFooterNote(xml) || this.isNamedEntityNote(xml) || ['person', 'place', 'app', 'msDesc'].some((v) => isNestedInElem(xml, v)) @@ -132,6 +183,14 @@ export class NoteParser extends EmptyParser implements Parser { ? 'critical' : 'comment'; + + if (isAnalogue(xml, this.analogueMarkers)) { + this.analogue = this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + this.source = this.quoteParser.parse(xml); + } + const attributes = this.attributeParser.parse(xml); const noteElement = { type: Note, @@ -140,6 +199,8 @@ export class NoteParser extends EmptyParser implements Parser { exponent: attributes.n, path: xpath(xml), content: parseChildren(xml, this.genericParse), + source: this.source, + analogue: this.analogue, attributes, }; @@ -154,7 +215,18 @@ export class NoteParser extends EmptyParser implements Parser { export class PtrParser extends GenericElemParser implements Parser { noteParser = createParser(NoteParser, this.genericParse); elementParser = createParser(GenericElemParser, this.genericParse); - parse(xml: XMLElement): Ptr | Note | GenericElement { + analogueParser = createParser(AnalogueParser, this.genericParse); + quoteParser = createParser(QuoteParser, this.genericParse); + sourceAttr = AppConfig.evtSettings.edition.externalBibliography.biblAttributeToMatch + ptrAttrs = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + + parse(xml: XMLElement): Ptr | QuoteEntry | Analogue { + + if (this.isAnalogue(xml)) { + return this.analogueParser.parse(xml); + } + + // note if (xml.getAttribute('type') === 'noteAnchor' && xml.getAttribute('target')) { const noteId = xml.getAttribute('target').replace('#', ''); const rootNode = xml.closest('TEI'); @@ -163,6 +235,10 @@ export class PtrParser extends GenericElemParser implements Parser { return noteEl ? this.noteParser.parse(noteEl) : this.elementParser.parse(xml); } + if (this.isSource(xml)) { + return this.quoteParser.parse(xml); + } + return { ...super.parse(xml), type: Ptr, @@ -173,18 +249,44 @@ export class PtrParser extends GenericElemParser implements Parser { rend: xml.getAttribute('rend'), }; } + + private isAnalogue(xml: XMLElement) { + + return (AppConfig.evtSettings.edition.analogueMarkers.includes(xml.getAttribute('type'))) + }; + + private isSource(xml: XMLElement) { + + return ((getExternalElements(xml, this.ptrAttrs, this.sourceAttr, '*')).length !== 0) + } } @xmlParser('l', VerseParser) export class VerseParser extends EmptyParser implements Parser { attributeParser = createParser(AttributeParser, this.genericParse); + analogueParser = createParser(AnalogueParser, this.genericParse); + quoteParser = createParser(QuoteParser, this.genericParse); + sourceAttr = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + analogueMarkers = AppConfig.evtSettings.edition.analogueMarkers; + source = null; + analogue = null; parse(xml: XMLElement): Verse { + + if (isAnalogue(xml, this.analogueMarkers)) { + this.analogue = this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + this.source = this.quoteParser.parse(xml); + } + const attributes = this.attributeParser.parse(xml); const lineComponent: Verse = { type: Verse, content: parseChildren(xml, this.genericParse), attributes, n: getDefaultN(attributes.n), + source: this.source, + analogue: this.analogue, }; return lineComponent; @@ -194,7 +296,21 @@ export class VerseParser extends EmptyParser implements Parser { @xmlParser('lg', VersesGroupParser) export class VersesGroupParser extends EmptyParser implements Parser { attributeParser = createParser(AttributeParser, this.genericParse); + analogueParser = createParser(AnalogueParser, this.genericParse); + quoteParser = createParser(QuoteParser, this.genericParse); + sourceAttr = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + analogueMarkers = AppConfig.evtSettings.edition.analogueMarkers; + source = null; + analogue = null; parse(xml: XMLElement): VersesGroup { + + if (isAnalogue(xml, this.analogueMarkers)) { + this.analogue = this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + this.source = this.quoteParser.parse(xml); + } + const attributes = this.attributeParser.parse(xml); const lgComponent: VersesGroup = { type: VersesGroup, @@ -203,6 +319,8 @@ export class VersesGroupParser extends EmptyParser implements Parser attributes, n: getDefaultN(attributes.n), groupType: getDefaultN(attributes.type), + source: this.source, + analogue: this.analogue, }; return lgComponent; @@ -329,3 +447,172 @@ export class TermParser extends GenericElemParser implements Parser }; } } + +@xmlParser('milestone', MilestoneParser) +export class MilestoneParser extends GenericElemParser implements Parser { + + parse(xml: XMLElement): Milestone { + + const endElement = (xml.getAttribute('spanTo')) ? getExternalElements(xml, ['spanTo'], 'xml:id', 'anchor') : []; + const includedElements = (endElement.length !== 0) ? getElementsBetweenTreeNode(xml, endElement[0]) : []; + + const parsedElements = (includedElements.length !== 0) ? + includedElements.map((x: XMLElement) => (x.nodeType !== 3 && x.nodeType !== 8) ? super.parse(x) : x) : []; + + return { + type: Milestone, + id: xml.getAttribute('xml:id'), + attributes: this.attributeParser.parse(xml), + unit: xml.getAttribute('unit'), + spanText: '', + spanElements: parsedElements, + content: parseChildren(xml, this.genericParse), + }; + } +} + +@xmlParser('anchor', AnchorParser) +export class AnchorParser extends GenericElemParser implements Parser { + attributeParser = createParser(AttributeParser, this.genericParse); + //todo: check if a span is referring to this element's @xml:id? + parse(xml: XMLElement): Anchor { + + return { + type: Anchor, + id: xml.getAttribute('xml:id'), + attributes: this.attributeParser.parse(xml), + content: parseChildren(xml, this.genericParse), + }; + } +} + + +@xmlParser('spanGrp', SpanParser) +@xmlParser('span', SpanParser) +@xmlParser('addSpan', SpanParser) +@xmlParser('delSpan', SpanParser) +export class SpanParser extends GenericElemParser implements Parser { + attributeParser = createParser(AttributeParser, this.genericParse); + + parse(xml: XMLElement): Span|SpanGrp { + if (xml.tagName === 'spanGrp') { + + return { + type: SpanGrp, + id: xml.getAttribute('xml:id'), + attributes: this.attributeParser.parse(xml), + spans: Array.from(xml.querySelectorAll('span')).map((x) => this.parse(x)), + content: parseChildren(xml, this.genericParse), + } + + } + if (xml.tagName === 'span') { + const endElement = (xml.getAttribute('spanTo')) ? getExternalElements(xml, ['from'], 'xml:id', 'anchor') : []; + const includedElements = (endElement.length !== 0) ? getElementsBetweenTreeNode(xml, endElement[0]) : []; + const parsedElements = (includedElements.length !== 0) ? + includedElements.map((x: XMLElement) => (x.nodeType !== 3 && x.nodeType !== 8) ? super.parse(x) : x) : []; + + return { + type: Span, + id: xml.getAttribute('xml:id'), + attributes: this.attributeParser.parse(xml), + from: xml.getAttribute('from'), + to: xml.getAttribute('to'), + includedText: '', + includedElements: parsedElements, + content: parseChildren(xml, this.genericParse), + }; + + } else if ((xml.tagName === 'addSpan') || (xml.tagName === 'delSpan')) { + const endElement = (xml.getAttribute('spanTo')) ? getExternalElements(xml, ['spanTo'], 'xml:id', 'anchor') : []; + const includedElements = (endElement.length !== 0) ? getElementsBetweenTreeNode(xml, endElement[0]) : []; + const parsedElements = (includedElements.length !== 0) ? + includedElements.map((x: XMLElement) => (x.nodeType !== 3 && x.nodeType !== 8) ? super.parse(x) : x) : []; + + return { + type: Span, + id: xml.getAttribute('xml:id'), + attributes: this.attributeParser.parse(xml), + from: xml.getAttribute('xml:id'), + to: xml.getAttribute('spanTo'), + includedText: '', + includedElements: parsedElements, + content: parseChildren(xml, this.genericParse), + }; + } + } +} + +@xmlParser('ref', RefParser) +export class RefParser extends DisambiguationParser implements Parser { + parse(xml: XMLElement): Analogue | QuoteEntry | GenericElement { + if (isAnalogue(xml, this.analogueMarkers)) { + return this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + return this.quoteParser.parse(xml); + } + + return this.elementParser.parse(xml) + } +} + +@xmlParser('seg', SegParser) +export class SegParser extends DisambiguationParser implements Parser { + parse(xml: XMLElement): Analogue | QuoteEntry | GenericElement { + if (isAnalogue(xml, this.analogueMarkers)) { + return this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + return this.quoteParser.parse(xml); + } + + return this.elementParser.parse(xml) + } +} + +@xmlParser('div', DivParser) +export class DivParser extends DisambiguationParser implements Parser { + parse(xml: XMLElement): Analogue | QuoteEntry | GenericElement { + if (isAnalogue(xml, this.analogueMarkers)) { + return this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + return this.quoteParser.parse(xml); + } + + return this.elementParser.parse(xml) + } +} + +@xmlParser('cit', CitParser) +export class CitParser extends DisambiguationParser implements Parser { + content = []; + parse(xml: XMLElement): Analogue | QuoteEntry | GenericElement { + if (isAnalogue(xml, this.analogueMarkers)) { + return this.analogueParser.parse(xml); + } + if (isSource(xml, this.sourceAttr)) { + return this.quoteParser.parse(xml); + } + + const quote = xml.querySelector('quote'); + if (quote) { + return this.quoteParser.parse(quote); + } + } +} + +@xmlParser('subst', SubstParser) +export class SubstParser extends GenericElemParser implements Parser { + parse(xml: XMLElement): Subst { + let parsing = { + ...super.parse(xml), + type: Subst, + after: [], + } + parsing.after = parsing.content.filter((el) => (el['type']) && (el['type'] !== Deletion)); + + return parsing; + } +} diff --git a/src/app/services/xml-parsers/bibliographic-entries-parser.service.ts b/src/app/services/xml-parsers/bibliographic-entries-parser.service.ts new file mode 100644 index 000000000..f5bc7dea9 --- /dev/null +++ b/src/app/services/xml-parsers/bibliographic-entries-parser.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { ParserRegister } from '.'; +import { BibliographyClass, BibliographyInfo, XMLElement } from '../../models/evt-models'; + +@Injectable({ + providedIn: 'root', +}) +export class BibliographicEntriesParserService { + private tagName = `.${BibliographyClass}`; + private parserName = 'evt-bibliographic-entry-parser'; + public parseAnaloguesEntries(document: XMLElement) { + const bibliographicParser = ParserRegister.get(this.parserName); + + return Array.from(document.querySelectorAll(this.tagName)) + .map((bib) => bibliographicParser.parse(bib)); + } + + parseBibliographicEntries(xml: XMLElement) { + const biblParser = ParserRegister.get(this.parserName); + + return { + type: BibliographyInfo, + bibliographicEntries: Array.from(xml.querySelectorAll('bibl')).map((s) => biblParser.parse(s)) + .concat(Array.from(xml.querySelectorAll('biblStruct')).map((s) => biblParser.parse(s))), + } + } +} + diff --git a/src/app/services/xml-parsers/bibliography-parsers.ts b/src/app/services/xml-parsers/bibliography-parsers.ts new file mode 100644 index 000000000..b7cb5bbeb --- /dev/null +++ b/src/app/services/xml-parsers/bibliography-parsers.ts @@ -0,0 +1,193 @@ +import { normalizeSpaces } from 'src/app/utils/xml-utils'; +import { parse, xmlParser } from '.'; +// eslint-disable-next-line max-len +import { AuthorDetail, BibliographicEntry, BibliographicList, BibliographicStructEntry, BibliographyClass, XMLElement } from '../../models/evt-models'; +import { AttributeParser, GenericElemParser } from './basic-parsers'; +import { createParser, getID, parseChildren, Parser } from './parser-models'; +import { BasicParser } from './quotes-parser'; + +@xmlParser('listBibl', BibliographyParser) +@xmlParser('biblStruct', BibliographyParser) +@xmlParser('bibl', BibliographyParser) +@xmlParser('evt-bibliographic-entry-parser', BibliographyParser) +export class BibliographyParser extends BasicParser implements Parser { + protected attributeParser = createParser(AttributeParser, this.genericParse); + protected elementParser = createParser(GenericElemParser, parse); + + protected getTrimmedText = function(s: Element): string { + return s.textContent.replace(/[\n\r]+|[\s]{2,}/g, ' ').trim(); + } + + protected getChildrenTextByName = function(xml : XMLElement, name : string): string[] { + return Array.from(xml.querySelectorAll(name)).map((x) => this.getTrimmedText(x)); + } + + protected getChildrenByNameOnFirstLevelOnly = function(xml : XMLElement, name : string) { + return Array.from(xml.querySelectorAll(':scope > '+name)).map((x) => this.getTrimmedText(x)); + } + + protected getChildrenTextAndSpecificAttribute = function(xml: XMLElement, name: string, attribute: string): string[] { + return Array.from(xml.querySelectorAll(name)).map((x) => + x.getAttribute(attribute) !== null ? + x.getAttribute(attribute)+' '+this.getTrimmedText(x) : + this.getTrimmedText(x)); + } + + protected getQuoteElementText(element: XMLElement): string { + const target = (element.parentNode['tagName'] === 'cit' || element.parentNode['tagName'] === 'note') ? element.parentNode : element; + const quotes = Array.from(target.querySelectorAll('quote')); + if (quotes.length !== 0) { + return normalizeSpaces(quotes[0].textContent); + } + + return null; + } + + protected getTitle(element: XMLElement): string { + const titles = this.getChildrenTextByName(element, 'title'); + let title = ''; + if(titles.length > 0){ + title = titles.shift(); + titles.forEach((el) => { title = title.replace(el, `"${el}"`); }); + } + + return title; + } + + protected getCitingText(element: XMLElement, includeUnit: boolean): string{ + const from = element.getAttribute('from'); + const to = element.getAttribute('to'); + const unit = element.getAttribute('unit'); + let returnString = ''; + if(unit && includeUnit){ + returnString = unit + ' '; + } + + if(element.textContent === '' && !element.hasChildNodes()){ + if(from){ + if(from === to){ + returnString += from; + }else{ + returnString += to ? `${from}-${to}` : `${from}ff`; + } + } + }else{ + returnString += this.getTrimmedText(element); + } + + return returnString; + } + + protected getCitingTags(element: XMLElement, name: string): string[] { + return Array.from(element.querySelectorAll(name)).map((el: XMLElement) => this.getCitingText(el, true)); + } + + + /** + * + * @param element the parent XML element where to search the bibliographic reference scope + * @param pattern a substring to search in \@unit, as it does not have a standard value. + * For example, to get a volume number the best approach would be to search for the "vol" substring. + * @returns the text representation of the bibliographic scope, along with the unit name. + */ + protected getBibliographicReferenceByUnitMatching(element: XMLElement, pattern: string): string{ + const biblScopeElement = element.querySelector('biblScope[unit*="' + pattern + '"]') + const citedRangeElement = element.querySelector('citedRange[unit*="' + pattern + '"'); + if(biblScopeElement || citedRangeElement){ + return biblScopeElement ? this.getCitingText(biblScopeElement, false) : this.getCitingText(citedRangeElement, false); + } + + return ''; + } + + protected getAuthorsDetails(element: XMLElement): AuthorDetail[]{ + const authors = Array.from(element.querySelectorAll('author')); + + return authors.map((el) => { + const forename = this.getChildrenTextByName(el as XMLElement, 'forename').reduce((prev, f) => prev + prev ? ' ' : '' + f, ''); + + return { + fullName: this.getTrimmedText(el), + forename, + forenameInitials: forename.replace(/\B(\w+)/g, '.'), + surname: this.getChildrenTextByName(el as XMLElement, 'surname').reduce((prev, s) => prev + prev ? ' ' : '' + s, ''), + nameLink: this.getChildrenTextByName(el as XMLElement, 'nameLink'), + } + }); + } + + protected getIdnoTextByType(element: XMLElement, type: string): string{ + const idno = element.querySelector('idno[type="' + type + '" i]'); + + return idno ? this.getTrimmedText(idno) : null; + } + + protected getDate(xml: XMLElement): string[]{ + return Array.from(xml.querySelectorAll('date')) + .map((x) => x.getAttribute('when') && !x.textContent ? x.getAttribute('when') : this.getTrimmedText(x)); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + parse(xml: XMLElement): any { + + switch (xml.tagName) { + case 'ref': + case 'analytic': + case 'series': + case 'monogr': + case 'bibl': + return { + type: BibliographicEntry, + id: getID(xml), + class: BibliographyClass, + attributes: this.attributeParser.parse(xml), + title: this.getChildrenTextByName(xml, 'title'), + titleDetails: { title: this.getTitle(xml), level: xml.querySelector('title')?.getAttribute('level') }, + publication: this.getTitle(xml), + idno: this.getChildrenTextByName(xml, 'idno'), + doi: this.getIdnoTextByType(xml, 'DOI'), + author: this.getChildrenTextByName(xml,'author'), + authorsDetails: this.getAuthorsDetails(xml), + editor: this.getChildrenTextByName(xml,'editor'), + date: this.getDate(xml), + publisher: this.getChildrenTextByName(xml,'publisher'), + pubPlace: this.getChildrenTextByName(xml,'pubPlace'), + citedRange: this.getCitingTags(xml, 'citedRange'), + biblScope: this.getCitingTags(xml, 'biblScope'), + pageNumber: this.getBibliographicReferenceByUnitMatching(xml, 'page'), + volumeNumber: this.getBibliographicReferenceByUnitMatching(xml, 'vol'), + issueNumber: this.getBibliographicReferenceByUnitMatching(xml, 'iss'), + content: parseChildren(xml, this.genericParse), + text: xml.textContent, + quotedText: this.getQuoteElementText(xml), + isInsideCit: (xml.parentNode['tagName'] === 'cit' || xml.parentNode['tagName'] === 'note'), + originalEncoding: xml, + }; + case 'cit': + case 'listBibl': + case 'note': + return { + type: BibliographicList, + id: getID(xml), + attributes: this.attributeParser.parse(xml), + head: Array.from(xml.querySelectorAll('head')).map((x) => x.textContent), + sources: Array.from(xml.querySelectorAll('bibl')).map((x) => this.parse(x)), + content: parseChildren(xml, this.genericParse), + }; + case 'biblStruct': + return { + type: BibliographicStructEntry, + id: getID(xml), + attributes: this.attributeParser.parse(xml), + analytic: Array.from(xml.querySelectorAll('analytic')).map((x) => this.parse(x)), + monogrs: Array.from(xml.querySelectorAll('monogr')).map((x) => this.parse(x)), + series: Array.from(xml.querySelectorAll('series')).map((x) => this.parse(x)), + content: parseChildren(xml, this.genericParse), + originalEncoding: xml, + }; + default: + // it should never reach here but we don't want risking to not parse an element anyway... + return this.elementParser.parse(xml) + } + } +} diff --git a/src/app/services/xml-parsers/facsimile-parser.service.ts b/src/app/services/xml-parsers/facsimile-parser.service.ts index eefb1ce65..78076fcb0 100644 --- a/src/app/services/xml-parsers/facsimile-parser.service.ts +++ b/src/app/services/xml-parsers/facsimile-parser.service.ts @@ -1,16 +1,18 @@ import { Injectable } from '@angular/core'; - import { parse } from '.'; -import { Surface, XMLElement, Zone } from '../../models/evt-models'; -import { SurfaceParser, ZoneParser } from './facsimile-parser'; +import { Facsimile, Graphic, Surface, SurfaceGrp, XMLElement } from '../../models/evt-models'; +import { FacsimileParser, GraphicParser, SurfaceGrpParser, SurfaceParser } from './facsimile-parser'; import { createParser } from './parser-models'; @Injectable({ providedIn: 'root', }) export class FacsimileParserService { - private zoneParser = createParser(ZoneParser, parse); + private facSimileParser = createParser(FacsimileParser, parse); + + private graphicsParser = createParser(GraphicParser, parse);// private zoneParser = createParser(ZoneParser, parse); private surfaceParser = createParser(SurfaceParser, parse); + private surfaceGrpParser = createParser(SurfaceGrpParser, parse); parseSurfaces(xml: XMLElement): Surface[] { if (!xml) { return []; } @@ -18,10 +20,22 @@ export class FacsimileParserService { return Array.from(xml.querySelectorAll('surface')).map((s) => this.surfaceParser.parse(s)); } - parseZones(xml: XMLElement): Zone[] { + parseGraphics(xml: XMLElement): Graphic[] { + if (!xml) { return []; } + + return Array.from(xml.querySelectorAll('graphic')).map((s) => this.graphicsParser.parse(s)); + } + + parseSurfaceGrp(xml: XMLElement): SurfaceGrp[] { + if (!xml) { return []; } + + return Array.from(xml.querySelectorAll('surfaceGrp')).map((s) => this.surfaceGrpParser.parse(s)); + } + + parseFacsimile(xml: XMLElement): Facsimile[] { if (!xml) { return []; } - return Array.from(xml.querySelectorAll('zone')).map((z) => this.zoneParser.parse(z)); + return Array.from(xml.querySelectorAll('facsimile')).map((s) => this.facSimileParser.parse(s)); } } diff --git a/src/app/services/xml-parsers/facsimile-parser.ts b/src/app/services/xml-parsers/facsimile-parser.ts index f249fbcd5..b9ba65dae 100644 --- a/src/app/services/xml-parsers/facsimile-parser.ts +++ b/src/app/services/xml-parsers/facsimile-parser.ts @@ -1,23 +1,76 @@ import { xmlParser } from '.'; -import { Graphic, Point, Surface, XMLElement, Zone, ZoneHotSpot, ZoneLine, ZoneRendition } from '../../models/evt-models'; +import { + Facsimile, + Graphic, + Point, + Surface, + SurfaceGrp, + XMLElement, + Zone, + ZoneHotSpot, + ZoneLine, + ZoneRendition, +} from '../../models/evt-models'; import { AttributeParser, EmptyParser } from './basic-parsers'; import { createParser, getID, parseChildren, Parser } from './parser-models'; +@xmlParser('facsimile', FacsimileParser) +export class FacsimileParser extends EmptyParser implements Parser { + attributeParser = createParser(AttributeParser, this.genericParse); + graphicParser = createParser(GraphicParser, this.genericParse); + surfaceGrpParser = createParser(SurfaceGrpParser, this.genericParse); + surfaceParser = createParser(SurfaceParser,this.genericParse); + public parse(xml: XMLElement): Facsimile { + + // const zones = Array.from(xml.querySelectorAll('zone')).map((z) => this.zoneParser.parse(z)); + //const attributes = this.attributeParser.parse(xml); + //console.log('attributes', attributes); + if (xml.getAttribute('rend') === 'double') { + return { + type: Facsimile, + //id: getID(xml), + corresp: xml.getAttribute('corresp')?.replace('#', ''), + graphics: Array.from(xml.querySelectorAll('graphic')).map((g) => this.graphicParser.parse(g)), + surfaceGrps: undefined, // Array.from(xml.querySelectorAll('surfaceGrp')).map((g) => this.surfaceGrpParser.parse(g)), + surfaces: undefined,//Array.from(xml.querySelectorAll('surface')).map((g) => this.surfaceParser.parse(g)), + attributes: this.attributeParser.parse(xml), + content: parseChildren(xml, this.genericParse), + }; + } + + return { + type: Facsimile, + //id: getID(xml), + corresp: xml.getAttribute('corresp')?.replace('#', ''), + graphics: Array.from(xml.querySelectorAll('graphic')).map((g) => this.graphicParser.parse(g)), + surfaceGrps: Array.from(xml.querySelectorAll('surfaceGrp')).map((g) => this.surfaceGrpParser.parse(g)), + surfaces: Array.from(xml.querySelectorAll('surface')).map((g) => this.surfaceParser.parse(g)), + attributes: this.attributeParser.parse(xml), + content: parseChildren(xml, this.genericParse), + }; + + } +} @xmlParser('zone', ZoneParser) export class ZoneParser extends EmptyParser implements Parser { attributeParser = createParser(AttributeParser, this.genericParse); public parse(xml: XMLElement): Zone { let coords: Point[]; const attributes = this.attributeParser.parse(xml); + if (xml.getAttribute('points')) { - coords = attributes.points.split(' ') + coords = attributes.points.trim().split(' ') + .filter((sp)=> sp.length > 0) .map((stringPoint) => { const points = stringPoint.split(','); - - return { - x: parseInt(points[0], 10), - y: parseInt(points[1], 10), - }; + const px = parseInt(points[0], 10); + const py = parseInt(points[1], 10) + if (!isNaN(px) && !isNaN(py)){ + return { + x: px, + y: py, + }; + } }); } else { const ul: Point = { @@ -93,3 +146,23 @@ export class SurfaceParser extends EmptyParser implements Parser { }; } } + +@xmlParser('surfaceGrp', SurfaceGrpParser) +export class SurfaceGrpParser extends EmptyParser implements Parser { + + attributeParser = createParser(AttributeParser, this.genericParse); + + surfaceParser = createParser(SurfaceParser, this.genericParse); + public parse(xml: XMLElement): SurfaceGrp { + //console.log('surgface grp'); + + const surfaces = Array.from(xml.querySelectorAll('surface')).map((s) => this.surfaceParser.parse(s)); + + return { + type: SurfaceGrp, + surfaces: surfaces, + attributes: this.attributeParser.parse(xml), + content: parseChildren(xml, this.genericParse), + }; + } +} diff --git a/src/app/services/xml-parsers/index.ts b/src/app/services/xml-parsers/index.ts index 058dd84f8..4bd2d22ea 100644 --- a/src/app/services/xml-parsers/index.ts +++ b/src/app/services/xml-parsers/index.ts @@ -27,11 +27,14 @@ export class ParserRegister { if (nels.includes(tagName)) { return 'evt-named-entities-list-parser'; } + const quote = ['quote']; + if (quote.includes(tagName)) { + return 'evt-quote-entry-parser'; + } const crit = ['app']; if (crit.includes(tagName)) { return 'evt-apparatus-entry-parser'; } - if (!Object.keys(ParserRegister.PARSER_MAP).includes(tagName)) { return 'evt-generic-elem-parser'; } diff --git a/src/app/services/xml-parsers/mod-parser.service.ts b/src/app/services/xml-parsers/mod-parser.service.ts new file mode 100644 index 000000000..63ea281dc --- /dev/null +++ b/src/app/services/xml-parsers/mod-parser.service.ts @@ -0,0 +1,44 @@ +import { Injectable } from '@angular/core'; +import { parse, ParserRegister } from '.'; +import { ChangeLayerData, XMLElement } from '../../models/evt-models'; +import { createParser } from './parser-models'; +import { ListChangeParser } from './header-parser'; + +@Injectable({ + providedIn: 'root', +}) +export class ModParserService { + + private tagName = `.mod`; + private parserName = 'evt-mod-parser'; + + public buildChangeList(xml: XMLElement): ChangeLayerData { + + const listChangeParser = createParser(ListChangeParser, parse); + + const list = xml.querySelectorAll('listChange'); + const parsedList = Array.from(list).filter((el) => el).map((el) => listChangeParser.parse(el)); + let layerOrder = []; + + for(let i=0; i < parsedList.length-1; i++) { + if (parsedList[i].ordered) { + layerOrder = parsedList[i].content.map((change) => change.id); + } + } + + return { + list: parsedList, + layerOrder: layerOrder, + selectedLayer: layerOrder[layerOrder.length-1], + }; + } + + public parseModEntries(document: XMLElement) { + const ModParser = ParserRegister.get(this.parserName); + + return Array.from(document.querySelectorAll(this.tagName)) + .map((bib) => ModParser.parse(bib)); + } + +} + diff --git a/src/app/services/xml-parsers/mod-parser.ts b/src/app/services/xml-parsers/mod-parser.ts new file mode 100644 index 000000000..29cd9c351 --- /dev/null +++ b/src/app/services/xml-parsers/mod-parser.ts @@ -0,0 +1,34 @@ +import { parse, xmlParser } from '.'; +import { AttributeParser, EmptyParser, GenericElemParser, queryAndParseElements } from './basic-parsers'; +import { createParser, getID, parseChildren, Parser } from './parser-models'; +import { Mod, Note, XMLElement } from 'src/app/models/evt-models'; + +@xmlParser('mod', ModParser) +@xmlParser('evt-mod-parser', ModParser) +export class ModParser extends EmptyParser implements Parser { + + elementParser = createParser(GenericElemParser, parse); + attributeParser = createParser(AttributeParser, this.genericParse); + + public parse(modEl: XMLElement): Mod { + + const varSeq = modEl.getAttribute('varSeq'); + const parentVarSeq = modEl.parentElement.getAttribute('varSeq'); + const defVarSeq = (varSeq !== null) ? varSeq : parentVarSeq; + const isInsideAppElement = (modEl.parentElement.tagName === 'rdg') || (modEl.parentElement.tagName === 'lem'); + + return { + id: getID(modEl), + type: Mod, + attributes: this.attributeParser.parse(modEl), + changeLayer: modEl.getAttribute('change'), + varSeq: defVarSeq, + isRdg: (modEl.parentElement.tagName === 'rdg'), + insideApp: [isInsideAppElement, null], + content: parseChildren(modEl, this.genericParse), + notes: queryAndParseElements(modEl, 'note').map((el) => ({ ...el, noteLayout: 'plain-text' })), + originalEncoding: modEl, + }; + } + +} diff --git a/src/app/services/xml-parsers/msdesc-parser.ts b/src/app/services/xml-parsers/msdesc-parser.ts index 68b0eeb41..5e4f562d8 100644 --- a/src/app/services/xml-parsers/msdesc-parser.ts +++ b/src/app/services/xml-parsers/msdesc-parser.ts @@ -1,16 +1,17 @@ import { isBoolString } from 'src/app/utils/js-utils'; import { xmlParser } from '.'; import { - AccMat, Acquisition, Additional, Additions, AdminInfo, AltIdentifier, Binding, BindingDesc, Collation, CollectionEl, Condition, - CustEvent, CustodialHist, DecoDesc, DecoNote, Depth, Dim, Dimensions, Explicit, Filiation, FinalRubric, Foliation, + AccMat, Acquisition, Additional, Additions, AdminInfo, AltIdentifier, BibliographicEntry, Binding, BindingDesc, Collation, CollectionEl, + Condition, CustEvent, CustodialHist, DecoDesc, DecoNote, Depth, Dim, Dimensions, Explicit, Filiation, FinalRubric, Foliation, G, HandDesc, HandNote, Head, Height, History, Identifier, Incipit, Institution, Layout, LayoutDesc, Locus, LocusGrp, MaterialValues, MsContents, MsDesc, MsFrag, MsIdentifier, MsItem, MsItemStruct, MsName, MsPart, MusicNotation, Note, ObjectDesc, OrigDate, - Origin, OrigPlace, Paragraph, PhysDesc, Provenance, RecordHist, Repository, Rubric, ScriptDesc, Seal, SealDesc, Source, Summary, + Origin, OrigPlace, Paragraph, PhysDesc, Provenance, QuoteEntry, RecordHist, Repository, Rubric, ScriptDesc, Seal, SealDesc, Source, Summary, Support, SupportDesc, Surrogates, Text, TypeDesc, TypeNote, Width, XMLElement, } from '../../models/evt-models'; import { GenericElemParser, queryAndParseElement, queryAndParseElements } from './basic-parsers'; import { GParser } from './character-declarations-parser'; import { createParser, getClass, getDefaultN, getID, parseChildren, Parser, unhandledElement } from './parser-models'; +import { BibliographicList } from '../../models/evt-models'; class GAttrParser extends GenericElemParser { protected gParser = createParser(GParser, this.genericParse); @@ -694,10 +695,10 @@ export class MsItemStructParser extends GenericElemParser implements Parser(xml, 'bibl'), respStmt: unhandledElement(xml, 'respStmt', this.genericParse), - quote: unhandledElement(xml, 'quote', this.genericParse), - listBibl: unhandledElement(xml, 'listBibl', this.genericParse), + quote: queryAndParseElement(xml, 'quote'), + listBibl: queryAndParseElement(xml, 'listBibl'), colophons: unhandledElement(xml, 'colophon', this.genericParse), rubric: queryAndParseElement(xml, 'rubric'), incipit: queryAndParseElement(xml, 'incipit'), diff --git a/src/app/services/xml-parsers/quotes-parser.ts b/src/app/services/xml-parsers/quotes-parser.ts new file mode 100644 index 000000000..3a007ebae --- /dev/null +++ b/src/app/services/xml-parsers/quotes-parser.ts @@ -0,0 +1,313 @@ +import { AppConfig } from 'src/app/app.config'; +import { ParserRegister, xmlParser } from '.'; +import { Analogue, BibliographicEntry, BibliographicList, BibliographicStructEntry, + GenericElement, Note, Paragraph, Ptr, QuoteEntry, SourceClass, Verse, VersesGroup, + XMLElement } from '../../models/evt-models'; +import { AnalogueParser } from './analogue-parser'; +import { createParser, getID, parseChildren, ParseFn, Parser } from './parser-models'; +import { isAnalogue, isSource, normalizeSpaces } from 'src/app/utils/xml-utils'; +import { BibliographyParser } from './bibliography-parsers'; +import { chainFirstChildTexts } from '../../utils/xml-utils'; +import { GenericElemParser } from './basic-parsers'; + +export class BasicParser { + genericParse: ParseFn; + constructor(parseFn: ParseFn) { this.genericParse = parseFn; } +} + +/** + * It manages note, cit, ref, seg, div, p, l, lb, ptr elements + * sent on redirect from other parsers if detected as 'sources' +*/ +@xmlParser('quote', QuoteParser) +@xmlParser('evt-quote-entry-parser', QuoteParser) +export class QuoteParser extends BasicParser implements Parser { + elementParser = createParser(GenericElemParser, this.genericParse); + attributeParser = ParserRegister.get('evt-attribute-parser'); + msDescParser = ParserRegister.get('msDesc'); + biblParser = createParser(BibliographyParser, this.genericParse); + analogueParser = createParser(AnalogueParser, this.genericParse); + analogueMarkers = AppConfig.evtSettings.edition.analogueMarkers; + extMatch = AppConfig.evtSettings.edition.externalBibliography.biblAttributeToMatch; + intAttrsToMatch = AppConfig.evtSettings.edition.externalBibliography.elementAttributesToMatch; + exceptionParentElements = AppConfig.evtSettings.edition.sourcesExcludedFromListByParent; + elementsAllowedForSources = 'bibl, cit, note, seg'; // bibliography + elementsAllowedForLink = 'seg, ref, quote, cit, div'; // nested quote elements + notDisplayedInTextFlow = ['Note', 'BibliographicList', 'BibliographicEntry', + 'BibliographicStructEntry', 'Analogue', 'MsDesc']; + evtTextComplexElements = ['choice', 'app', 'l', 'quote', 'p', 'lg']; + evtInnerTextElements = ['#text', 'reg', 'corr', 'rdg']; + + xpathRegex = /\sxpath=[\"\'].*[\"\']/g; + + public parse(quote: XMLElement): QuoteEntry | Note | GenericElement | Analogue { + const isExcluded = (quote.parentElement) && (this.exceptionParentElements.includes(quote.parentElement.tagName)); + + if (isAnalogue(quote, this.analogueMarkers)) { + // the element has the @attribute marker for analogues + return this.analogueParser.parse(quote); + } + + const notSource = ((!isSource(quote, this.intAttrsToMatch)) || (isExcluded)); + + switch(quote.tagName) { + case 'p': + case 'lg': + case 'l': + case 'note': + // if they are not a source send them to their parse otherwise create a note + if (notSource) { + return ParserRegister.get(quote.tagName).parse(quote) as Paragraph|VersesGroup|Verse|Note; + } + + return this.createNote(quote); + case 'div': + // if it's not a source create a generic element + // if it's a source add a note to the generic element + const divElement = ParserRegister.get('evt-generic-elem-parser').parse(quote) as GenericElement; + if (notSource) { + return divElement; + } + divElement.content.push(this.createNote(quote)); + + return divElement; + case 'ptr': + // if it's not a source send it to its parse, otherwise it will be parsed here later + if (notSource) { + return ParserRegister.get(quote.tagName).parse(quote) as Ptr; + } + break; + case 'ref': + case 'seg': + case 'cit': + // if they are not a source create a generic element, otherwise it will be parsed here later + if (notSource) { + return ParserRegister.get('evt-generic-elem-parser').parse(quote) as GenericElement; + } + break; + case 'quote': + // always parse here + break; + } + + // remains 6 cases: + // inside a + // alone, + // + // + // ptr + // note + + const isInCit = ((quote.parentElement !== null) && ((quote.parentElement.tagName === 'cit') || (quote.parentElement.tagName === 'note'))); + const isCit = ((quote.tagName === 'cit') || (quote.tagName === 'note')); + const isDiv = (quote.tagName === 'div'); + const isQuote = (quote.tagName === 'quote'); + const isAnalogueCheck = ((isAnalogue(quote, this.analogueMarkers)) || ( + (quote.parentElement !== null) && (isAnalogue(quote.parentElement, this.analogueMarkers)) + )); + const inside = this.getInsideSources(quote, isInCit); + const ext = this.getExternalElemsOnce(this.findExtRef(quote, isInCit), this.intAttrsToMatch, this.extMatch); + const content = parseChildren(quote, this.genericParse); + + return { + type: QuoteEntry, + id: getID(quote), + tagName: quote.tagName, + attributes: this.attributeParser.parse(quote), + text: normalizeSpaces(this.getQuotedTextInside(quote, isCit, isDiv)), + sources: inside.sources, + extSources: ext.extSources, + extElements: ext.extElements, + quotedText: this.getQuotedTextFromSources(inside.sources.concat(ext.extSources)), + analogues: ext.analogues.concat(inside.analogues), + class: ( (!isAnalogueCheck) && (!isCit) && ( (!isInCit) || ((isInCit) && (isQuote)) ) ) ? SourceClass : quote.tagName.toLowerCase(), + isInsideCit: isInCit, + isNoteView: ((quote.tagName === 'note') || (quote.tagName === 'ptr')) ? true : false, + content: content, + contentToShow: content.filter((el) => !(this.notDisplayedInTextFlow.includes(el['type'].name))), + originalEncoding: this.getXML(quote, isInCit), + }; + } + + /** + * Returns first-level text elements inside this quote entry + */ + private getQuotedTextInside(quote: XMLElement, isCit: boolean, isDiv: boolean): string { + let outText = ''; + if ((isCit) || (isDiv)) { + const elements = Array.from(quote.querySelectorAll('quote, p, l, lg')); + elements.forEach((el) => outText += chainFirstChildTexts(el, this.evtTextComplexElements, this.evtInnerTextElements)); + + return outText; + } + + return chainFirstChildTexts(quote, this.evtTextComplexElements, this.evtInnerTextElements); + } + + /** + * Choose proper XML node + */ + private getXML(quote: XMLElement, isInCitElem: boolean): XMLElement { + if (isInCitElem) { + return quote.parentElement; + } + + return quote; + } + + + /** + * Retrieve attributes linked to external bibl, listBibl, cit elements + */ + private findExtRef(quote: XMLElement, isInCitElem: boolean): XMLElement { + const target = (isInCitElem) ? quote.parentElement : quote; + const linkAttr = Array.from(target.querySelectorAll('[' +this.intAttrsToMatch.join('], [')+ ']')).map((x) => x); + if (linkAttr.length > 0) { + return linkAttr[0]; + } + + return target; + } + + /** + * Retrieve and send to the proper parsing all bibliography elements inside the quote element + * @param quote XMLElement + * @returns array of XML Elements + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private getInsideSources(quote: XMLElement, isInCit: boolean): { sources:any, analogues:any } { + const prsRg = { + bibl: this.biblParser, + listBibl: this.biblParser, + biblStruct: this.biblParser, + msDesc: this.msDescParser, + cit: this.biblParser, + ref: this.biblParser, + note: this.biblParser, + } + + const anlgAttr = AppConfig.evtSettings.edition.analogueMarkers; + const target = (isInCit) ? quote.parentElement.children : quote.children; + const out = { sources: [], analogues: [] } + + Array.from(target).forEach((element: XMLElement) => { + if (prsRg[element['tagName']]) { + if (!anlgAttr.includes(element.getAttribute('type'))) { + out.sources.push( prsRg[element['tagName']].parse(element) ); + } else { + const analogueParsed = this.parse(element); + if (analogueParsed['contentToShow']) { + out.analogues.push( analogueParsed['contentToShow'] ); + } + } + } + }); + + return out; + } + + /** + * Retrieve and send to the proper parsing all elements outside the quote element and linked by their @xml:id + */ + private getExternalElemsOnce(quote: XMLElement, attrSrcNames: string[], attrTrgtName: string) { + const out = { extElements: [], extSources: [], analogues: [] }; + const sourceIDs = attrSrcNames.map((x) => quote.getAttribute(x)); + const sourcesToFind = sourceIDs.filter((x) => x).map((x) => x.replace('#','')); + const anlgAttr = AppConfig.evtSettings.edition.analogueMarkers; + const elemParserAssoc = { + // bibliographic elements + bibl: { extSources: this.biblParser }, + listBibl: { extSources: this.biblParser }, + msDesc: { extSources: this.msDescParser }, + biblStruct: { extSources: this.biblParser }, + + note: { extElements: this }, + // this parser elements + quote: { extElements: this }, + cit: { extElements: this }, + + seg: { extSources: this.biblParser, extElements: this }, + ref: { extSources: this.biblParser, extElements: this }, + // possibile chained sources/analogues + div: { extElements: this }, + p: { extElements: this }, + l: { extElements: this }, + lg: { extElements: this }, + // generic elements + item: { extElements: this.elementParser }, + } + + if (sourcesToFind.length > 0) { + const partial = Array.from(quote.ownerDocument.querySelectorAll(Object.keys(elemParserAssoc).join(','))) + .filter((x) => sourcesToFind.includes(x.getAttribute(attrTrgtName))) + + partial.forEach((x: XMLElement) => { + if (elemParserAssoc[x['tagName']]) { + Object.keys(elemParserAssoc[x['tagName']]).forEach((destination) => { + if (anlgAttr.includes(x.getAttribute('type'))) { + const analogueParsed = this.parse(x); + if (analogueParsed['contentToShow']) { + out['analogues'].push( analogueParsed['contentToShow'] ) + } + } else { + const relativeParser = elemParserAssoc[x['tagName']][destination]; + out[destination].push( relativeParser.parse(x) ) + } + }) + }; + }); + } + + return out; + } + + /** + * Inside 'quotedText' attribute of BibliographicEntry is stored the quoted text + * @param nodes BibliographicEntry[] + * @returns array of object { id: '', 'quote':'' } + */ + private getQuotedTextFromSources(nodes: BibliographicEntry[]): string[] { + let quotesInSources = []; + + nodes.forEach((el: BibliographicEntry | BibliographicList | BibliographicStructEntry) => { + if (el.type === BibliographicList) { + quotesInSources = quotesInSources.concat(this.getQuotedTextFromSources(el['sources'])); + } else if (el.type === BibliographicEntry) { + if (el['quotedText'] !== null) { + quotesInSources.push({ id: el.id, quote: el['quotedText'] }); + } + }; + }); + + return quotesInSources; + } + + private createNote(quote: XMLElement): QuoteEntry { + // const sources = this.getInsideSources(quote, false); + // not parsing inside sources, they will be parsed anyway + const isCit = ((quote.tagName === 'cit') || (quote.tagName === 'note')); + const isDiv = (quote.tagName === 'div'); + const ext = this.getExternalElemsOnce(quote, this.intAttrsToMatch, this.extMatch); + const content = parseChildren(quote, this.genericParse); + + return { + type: QuoteEntry, + id: 'EVT-SOURCE:' + getID(quote), + tagName: quote.tagName, + attributes: this.attributeParser.parse(quote), + text: normalizeSpaces(this.getQuotedTextInside(quote, isCit, isDiv)), + sources: [], + analogues: ext.analogues, + extSources: ext.extElements.concat(ext.extSources), + extElements: ext.extElements, + quotedText: this.getQuotedTextFromSources(ext.extElements.concat(ext.extSources)), + class: SourceClass, + isInsideCit: false, + isNoteView: true, + content: content, + contentToShow: content.filter((el) => !(this.notDisplayedInTextFlow.includes(el['type'].name))), + originalEncoding: this.getXML(quote, false), + }; + } + +} diff --git a/src/app/services/xml-parsers/source-entries-parser.service.ts b/src/app/services/xml-parsers/source-entries-parser.service.ts new file mode 100644 index 000000000..c75bebf07 --- /dev/null +++ b/src/app/services/xml-parsers/source-entries-parser.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { ParserRegister } from '.'; +import { QuoteEntry, SourceClass, XMLElement } from '../../models/evt-models'; + +@Injectable({ + providedIn: 'root', +}) +export class SourceEntriesParserService { + public parseSourceEntries(document: XMLElement) { + const quoteParser = ParserRegister.get('evt-quote-entry-parser'); + + return [ + Array.from(document.querySelectorAll(`.${SourceClass}`)) + .map((srcEntry) => quoteParser.parse(srcEntry) as QuoteEntry), + ]; + } +} diff --git a/src/app/services/xml-parsers/structure-xml-parser.service.ts b/src/app/services/xml-parsers/structure-xml-parser.service.ts index e152fdc40..63b4bc151 100644 --- a/src/app/services/xml-parsers/structure-xml-parser.service.ts +++ b/src/app/services/xml-parsers/structure-xml-parser.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { AppConfig } from '../../app.config'; import { EditionStructure, GenericElement, OriginalEncodingNodeType, Page, XMLElement } from '../../models/evt-models'; -import { createNsResolver, getElementsBetweenTreeNode, isNestedInElem } from '../../utils/dom-utils'; +import { getElementsBetweenTreeNode, isNestedInElem } from '../../utils/dom-utils'; import { GenericParserService } from './generic-parser.service'; import { getID, ParseResult } from './parser-models'; @@ -88,13 +88,24 @@ export class StructureXmlParserService { // TODO: handle multiple version of page const image = id.split('.')[0]; - return `${AppConfig.evtSettings.files.imagesFolderUrl}/${image}.jpg`; + //Nel file_config imagesFolderUrls deve terminare già con uno / + return `${AppConfig.evtSettings.files.imagesFolderUrls.single}${image}.jpg`; } + // lbId = ''; + // quando trovi un lbId allora lbId = 'qualcosa' + parsePageContent(doc: Document, pageContent: OriginalEncodingNodeType[]): Array> { return pageContent .map((node) => { - const origEl = getEditionOrigNode(node, doc); + + //const origEl = getEditionOrigNode(node, doc); + // issue #228 + // the original line is commented because this function causes the node to be revered at its original state + // before the pb division, see issue #228 details for further info. + // for now this quick fix allows a proper text division but we need to investigate exceptions and particular cases + const origEl = node; + if (origEl.nodeName === this.frontTagName || isNestedInElem(origEl, this.frontTagName)) { if (this.hasOriginalContent(origEl)) { return Array.from(origEl.querySelectorAll(`[type=${this.frontOrigContentAttr}]`)) @@ -129,6 +140,7 @@ export class StructureXmlParserService { } } +/* this function is only momentarily commented, waiting for issue #228 to be better addressed function getEditionOrigNode(el: XMLElement, doc: Document) { if (el.getAttribute && el.getAttribute('xpath')) { const path = doc.documentElement.namespaceURI ? el.getAttribute('xpath').replace(/\//g, '/ns:') : el.getAttribute('xpath'); @@ -139,3 +151,4 @@ function getEditionOrigNode(el: XMLElement, doc: Document) { return el; } +*/ diff --git a/src/app/services/xml-parsers/xml-parsers.ts b/src/app/services/xml-parsers/xml-parsers.ts index d00b1bddf..333529255 100644 --- a/src/app/services/xml-parsers/xml-parsers.ts +++ b/src/app/services/xml-parsers/xml-parsers.ts @@ -1,14 +1,14 @@ import { Injectable, Type } from '@angular/core'; import { AppParser, RdgParser } from './app-parser'; import { - AdditionParser, AttributeMapParser, AttributeParser, DamageParser, DeletionParser, GapParser, - GenericElemParser, LBParser, NoteParser, ParagraphParser, PtrParser, SuppliedParser, + AdditionParser, AnchorParser, AttributeMapParser, AttributeParser, DamageParser, DeletionParser, GapParser, + GenericElemParser, LBParser, MilestoneParser, NoteParser, ParagraphParser, PtrParser, SpanParser, SuppliedParser, TermParser, TextParser, VerseParser, VersesGroupParser, WordParser, } from './basic-parsers'; import { CharParser, GlyphParser, GParser } from './character-declarations-parser'; import { ChoiceParser } from './choice-parser'; import { SicParser, SurplusParser } from './editorial-parsers'; -import { GraphicParser, SurfaceParser, ZoneParser } from './facsimile-parser'; +import { FacsimileParser, GraphicParser, SurfaceGrpParser, SurfaceParser, ZoneParser } from './facsimile-parser'; import { AbstractParser, CalendarDescParser, CalendarParser, CatRefParser, ChangeParser, ChannelParser, ClassCodeParser, ConstitutionParser, CorrectionParser, CorrespActionParser, CorrespContextParser, CorrespDescParser, CreationParser, CRefPatternParser, @@ -38,6 +38,9 @@ import { NamedEntitiesListParser, NamedEntityRefParser, OrganizationParser, PersonGroupParser, PersonParser, PlaceParser, RelationParser, } from './named-entity-parsers'; +import { QuoteParser } from './quotes-parser'; +import { AnalogueParser } from './analogue-parser'; +import { ModParser } from './mod-parser'; // eslint-disable-next-line @typescript-eslint/no-explicit-any export function ParsersDecl(declarations: Array>) { @@ -58,6 +61,8 @@ export function ParsersDecl(declarations: Array>) { AdditionParser, AdditionsParser, AdminInfoParser, + AnalogueParser, + AnchorParser, AltIdentifierParser, AppParser, AttributeMapParser, @@ -130,6 +135,8 @@ export function ParsersDecl(declarations: Array>) { ListTransposeParser, LocusGrpParser, LocusParser, + MilestoneParser, + ModParser, MsContentsParser, MsDescParser, MsFragParser, @@ -165,6 +172,7 @@ export function ParsersDecl(declarations: Array>) { PublicationStmtParser, PunctuationParser, PurposeParser, + QuoteParser, QuotationParser, RdgParser, RecordHistParser, @@ -188,13 +196,16 @@ export function ParsersDecl(declarations: Array>) { SicParser, SourceDescParser, SourceParser, + SpanParser, StdValsParser, StyleDefDeclParser, SummaryParser, SuppliedParser, SupportDescParser, SupportParser, + FacsimileParser, SurfaceParser, + SurfaceGrpParser, SurplusParser, SurrogatesParser, TagsDeclParser, diff --git a/src/app/ui-components/icon/icon.component.scss b/src/app/ui-components/icon/icon.component.scss index 26ecc8583..a3fbc503b 100644 --- a/src/app/ui-components/icon/icon.component.scss +++ b/src/app/ui-components/icon/icon.component.scss @@ -1,10 +1,10 @@ @font-face { font-family: 'evt-icons'; - src: url('/assets/fonts/evt-icons.eot?yo01vg'); - src: url('/assets/fonts/evt-icons.eot?yo01vg#iefix') format('embedded-opentype'), - url('/assets/fonts/evt-icons.ttf?yo01vg') format('truetype'), - url('/assets/fonts/evt-icons.woff?yo01vg') format('woff'), - url('/assets/fonts/evt-icons.svg?yo01vg#evt-icons') format('svg'); + src: url('../../../assets/fonts/evt-icons.eot?yo01vg'); + src: url('../../../assets/fonts/evt-icons.eot?yo01vg#iefix') format('embedded-opentype'), + url('../../../assets/fonts/evt-icons.ttf?yo01vg') format('truetype'), + url('../../../assets/fonts/evt-icons.woff?yo01vg') format('woff'), + url('../../../assets/fonts/evt-icons.svg?yo01vg#evt-icons') format('svg'); font-weight: normal; font-style: normal; font-display: block; @@ -78,6 +78,14 @@ content: "\e91c"; } +.evt-icon-documix:before { + content: "\e845"; + font-size: 0.8em; + display: inline-block; + vertical-align: super; + line-height: 1.3em; +} + .evt-icon-txt:before { content: "\e92e"; } diff --git a/src/app/ui-components/modal/modal.component.ts b/src/app/ui-components/modal/modal.component.ts index 544ee6c34..3fb00a1fb 100644 --- a/src/app/ui-components/modal/modal.component.ts +++ b/src/app/ui-components/modal/modal.component.ts @@ -49,7 +49,8 @@ export class ModalComponent implements OnInit { @HostListener('click', ['$event']) clickout(event) { const modal = this.modalDialog.nativeElement; - const internalClick: boolean = event.path.find((o) => o.className && o.className.indexOf && o.className.indexOf(modal.className) >= 0); + const path = event.composedPath ? event.composedPath() : event.path; + const internalClick: boolean = path.find((o) => o.className && o.className.indexOf && o.className.indexOf(modal.className) >= 0); if (this.closeOnShadow && !internalClick) { this.closeDialog(); } diff --git a/src/app/utils/dom-utils.ts b/src/app/utils/dom-utils.ts index 83bccd0a3..d5f2aa9f2 100644 --- a/src/app/utils/dom-utils.ts +++ b/src/app/utils/dom-utils.ts @@ -181,11 +181,6 @@ export function balanceXHTML(XHTMLstring: string): string { /** * Get all DOM elements contained between the node elements - * - * @param start starting node - * @param end ending node - * - * @returns list of nodes contained between start node and end node */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export function getElementsBetweenTreeNode(start: any, end: any): XMLElement[] { @@ -229,3 +224,49 @@ export function getCommonAncestor(node1, node2) { export function createNsResolver(doc: Document) { return (prefix: string) => prefix === 'ns' ? doc.documentElement.namespaceURI : undefined; } + +export function updateCSS(rules: Array<[string, string]>) { + const thisCSS = document.styleSheets[0]; + rules.forEach((rule) => { + thisCSS.insertRule(`${rule[0]} {${rule[1]}}`, 0); + }); +} + +/** + * This function searches inside every property of an object for the provided attribute + * it has one of the provided list of values. It stops after a customizable number of iterations to avoid waste of resources. + * The limit counter could be inserted in a config, same as the ignoredProperties + * The types defined in loopAttributes are elements to be ignored because their methods of "dom navigation" generate loops + */ +export function deepSearch(obj, attrToMatch: string, valuesToMatch, counter: number = 4000, ignoredProperties = []) { + const loopAttributes = [DOMTokenList, NodeList, NamedNodeMap, HTMLCollection, HTMLElement] + let results = []; + for (const key in obj) { + if (!ignoredProperties.includes(key)) { + const value = obj[key]; + if ((key === attrToMatch) && (valuesToMatch.includes(obj[attrToMatch]))) { + results.push(obj); + } + + let excludedForType = false; + for (let i=0; i < loopAttributes.length; i++) { + if (value instanceof loopAttributes[i]) { + excludedForType = true; + break; + } + } + + if ((typeof value === 'object') && (value !== null) && (!excludedForType)) { + if (counter > 0) { + results = results.concat(deepSearch(value, attrToMatch, valuesToMatch, counter, ignoredProperties)); + counter = counter - 1; + } else { + console.log('EVT WARN: element is too deep, not searching further in', obj, value); + counter = 4000; + } + } + } + } + + return results; +} diff --git a/src/app/utils/xml-utils.ts b/src/app/utils/xml-utils.ts index 96d7722d9..cec8db85a 100644 --- a/src/app/utils/xml-utils.ts +++ b/src/app/utils/xml-utils.ts @@ -36,3 +36,77 @@ export function replaceNotWordChar(textContent: string) { export function removeSpaces(textContent: string) { return textContent.replace(/\s/g, ''); } + +/** + * It removes excessive spaces, any tabulation, new lines and non-word characters + */ +export function normalizeSpaces(textContent: string) { + return textContent.replace(/[\s]{2,}|\n|\t|\r/g, ' ').trimStart().trimEnd(); +} + +/** +* Significant text sometimes is split inside two or more text evt-element inside the main one, especially when it contains new line characters. +* This function returns a string with all the text elements chained +*/ +export function chainFirstChildTexts(elem: XMLElement, evtTextComplexElements: string[], evtInnerTextElements: string[]): string { + if (elem === undefined) { + + return ''; + }; + + const evtTextElements = { + '#text': 'nodeValue', + 'p': 'textContent', + }; + let result = ''; + elem.childNodes.forEach((node) => (evtTextElements[node.nodeName] !== undefined) ? result += node[ evtTextElements[node.nodeName] ] : ( + evtTextComplexElements.includes(node.nodeName) ? result += chainDeepTexts(node, evtInnerTextElements) : '' )) + + return result; +} + +/** + * Retrieve and chain textContent of all descendents + * @param elem ChildNode + * @returns out string + */ +export function chainDeepTexts(elem: ChildNode, evtInnerTextElements: string[]): string { + const textProperty = 'textContent'; + + let result = ''; + elem.childNodes.forEach((x) => (evtInnerTextElements.includes(x.nodeName)) ? ((x[textProperty] !== null) ? result += x[textProperty] : '') : '') + + return result; +} + +/** +* Retrieve elements in all the document searching between provided elements types and filtering on attributes base +*/ +export function getExternalElements(elem: XMLElement, attrSourceNames: string[], attrTargetName: string, elTypes: string): XMLElement[] { + const sourceIDs = attrSourceNames.map((x) => elem.getAttribute(x)); + const sourcesToFind = sourceIDs.filter((x) => x).map((x) => x.replace('#','')); + + if (sourcesToFind.length === 0) { + return []; + } + + return Array.from(elem.ownerDocument.querySelectorAll(elTypes)) + .filter((x) => sourcesToFind.includes(x.getAttribute(attrTargetName))) +} + +/** + * If an element's attribute 'type' has one of the provided values then it is considered an analogue + */ +export function isAnalogue(elem: XMLElement, markerAttrs: string[]): boolean { + return (markerAttrs.includes(elem.getAttribute('type'))); +} + +/** + * If an element has one of the provided attributes then it is considered a source + */ +export function isSource(elem: XMLElement, attrs: string[]): boolean { + let validAttrs = false; + attrs.forEach((attr) => { if (elem.getAttribute(attr) !== null) { validAttrs = true } }); + + return (validAttrs); +} diff --git a/src/app/view-modes/documental-mixed/documental-mixed.component.html b/src/app/view-modes/documental-mixed/documental-mixed.component.html new file mode 100644 index 000000000..3d25b2568 --- /dev/null +++ b/src/app/view-modes/documental-mixed/documental-mixed.component.html @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/src/app/view-modes/documental-mixed/documental-mixed.component.scss b/src/app/view-modes/documental-mixed/documental-mixed.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/view-modes/documental-mixed/documental-mixed.component.spec.ts b/src/app/view-modes/documental-mixed/documental-mixed.component.spec.ts new file mode 100644 index 000000000..22358cdb0 --- /dev/null +++ b/src/app/view-modes/documental-mixed/documental-mixed.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { DocumentalMixedComponent } from './documental-mixed.component'; + +describe('DocumentalMixedComponent', () => { + let component: DocumentalMixedComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ DocumentalMixedComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DocumentalMixedComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/view-modes/documental-mixed/documental-mixed.component.ts b/src/app/view-modes/documental-mixed/documental-mixed.component.ts new file mode 100644 index 000000000..3edfa55cf --- /dev/null +++ b/src/app/view-modes/documental-mixed/documental-mixed.component.ts @@ -0,0 +1,92 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2'; +import { distinctUntilChanged, map, shareReplay, withLatestFrom } from 'rxjs/operators'; +import { AppConfig, EditionLevel } from '../../app.config'; +import { Page, XMLImagesValues } from '../../models/evt-models'; +import { ViewerSource } from '../../models/evt-polymorphic-models'; +import { EVTModelService } from '../../services/evt-model.service'; +import { EVTStatusService } from '../../services/evt-status.service'; + +@Component({ + selector: 'evt-documental-mixed', + templateUrl: './documental-mixed.component.html', + styleUrls: ['./documental-mixed.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class DocumentalMixedComponent implements OnInit { + public layoutOptions: GridsterConfig = { + gridType: GridType.Fit, + displayGrid: DisplayGrid.None, + margin: 0, + maxCols: 2, + maxRows: 1, + draggable: { + enabled: false, + //ignoreContent: true, + dragHandleClass: 'panel-header', + }, + resizable: { + enabled: false, + }, + }; + public imagePanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 }; + public textPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 }; + + public imageViewer$ = this.evtModelService.surfaces$.pipe( + withLatestFrom(this.evtModelService.pages$), + map(([surface, pages]) => { + const editionImages = AppConfig.evtSettings.files.editionImagesSource; + for (const key of Object.keys(editionImages)) { + if (editionImages[key].enable) { + return ViewerSource.getDataType(key, surface); + } + } + + return { + type: 'default', + value: { + xmlImages: pages.map((page) => ({ url: page.facsUrl })) as XMLImagesValues[], + }, + }; + }), + ); + + public currentEditionLevel$ = this.evtStatusService.currentStatus$.pipe( + map(({ editionLevels }) => editionLevels[0]), + shareReplay(1), + ); + + public currentPageID$ = this.evtStatusService.currentStatus$.pipe( + map(({ page }) => page.id), + ); + + constructor( + private evtStatusService: EVTStatusService, + private evtModelService: EVTModelService, + ) { + } + + public lastLayer$ = this.evtStatusService.currentChanges$.pipe( + distinctUntilChanged(), + map(({ layerOrder }) => (AppConfig.evtSettings.edition.startingFromDefinitiveLayer) ? + layerOrder[layerOrder.length-1] : ((layerOrder.length > 0) ? layerOrder[0] : null)), + ); + + changePage(selectedPage: Page) { + this.evtStatusService.updatePage$.next(selectedPage); + } + + changeLayer(selectedLayer: string) { + this.evtStatusService.updateLayer$.next(selectedLayer); + } + + changeEditionLevel(editionLevel: EditionLevel) { + this.evtStatusService.updateEditionLevels$.next([editionLevel?.id]); + } + + ngOnInit(): void { + this.evtStatusService.updateEditionLevels$.next(['changesView']); + } + + +} diff --git a/src/app/view-modes/image-image/image-image.component.html b/src/app/view-modes/image-image/image-image.component.html new file mode 100644 index 000000000..3f1104fea --- /dev/null +++ b/src/app/view-modes/image-image/image-image.component.html @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/app/view-modes/image-image/image-image.component.scss b/src/app/view-modes/image-image/image-image.component.scss new file mode 100644 index 000000000..361b069a2 --- /dev/null +++ b/src/app/view-modes/image-image/image-image.component.scss @@ -0,0 +1,43 @@ +.ng-select { + min-width: 150px; +} + +.btn-float-right { + position: absolute; + right: -.3rem; + transform: translate(0,-50%); + top: 50%; + z-index: 99999; + opacity: .5; + &:hover { + opacity: 1; + } +} + +.btn-float-top-right{ + position: absolute; + right: 10px; + // transform: translate(0,-50%); + top: 10px; + z-index: 99999; + opacity: .5; + &:hover { + opacity: 1; + } + width: 35px; + height: 34px; + +} + +.btn-remove{ + width: 35px; + height: 34px; + padding: 0; + + &>button{ + padding: 0; + background-color: lightgrey !important; + border: 1px solid white; + } + +} diff --git a/src/app/view-modes/image-image/image-image.component.ts b/src/app/view-modes/image-image/image-image.component.ts new file mode 100644 index 000000000..a51f95aad --- /dev/null +++ b/src/app/view-modes/image-image/image-image.component.ts @@ -0,0 +1,79 @@ +import { Component } from '@angular/core'; +import { DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2'; +import { map, shareReplay, withLatestFrom } from 'rxjs/operators'; +import { AppConfig } from '../../app.config'; +import { Page, XMLImagesValues } from '../../models/evt-models'; +import { ViewerSource } from '../../models/evt-polymorphic-models'; +import { EVTModelService } from '../../services/evt-model.service'; +import { EVTStatusService } from '../../services/evt-status.service'; + +@Component({ + selector: 'evt-image-image', + templateUrl: './image-image.component.html', + styleUrls: ['./image-image.component.scss'], +}) +export class ImageImageComponent { + + public layoutOptions: GridsterConfig = { + gridType: GridType.Fit, + displayGrid: DisplayGrid.None, + margin: 0, + minCols: 2, + maxCols: 4, + maxRows: 1, + draggable: { + enabled: false, + ignoreContent: true, + dragHandleClass: 'panel-header', + }, + resizable: { + enabled: false, + }, + }; + public imagePanelItem: GridsterItem[] = [{ cols: 1, rows: 1, y: 0, x: 0 },{ cols: 1, rows: 1, y: 0, x: 1 }]; + public imageViewer$ = this.evtModelService.surfaces$.pipe( + withLatestFrom(this.evtModelService.pages$), + map(([surface, pages]) => { + const editionImages = AppConfig.evtSettings.files.editionImagesSource; + console.log(editionImages); + for (const key of Object.keys(editionImages)) { + if (editionImages[key].enable) { + return ViewerSource.getDataType(key, surface); + } + } + + return { + type: 'default', + value: { + xmlImages: pages.map((page) => ({ url: page.facsUrl })) as XMLImagesValues[], + }, + }; + }), + ); + + public currentEditionLevel$ = this.evtStatusService.currentStatus$.pipe( + map(({ editionLevels }) => editionLevels[0]), + shareReplay(1), + ); + + constructor( + private evtStatusService: EVTStatusService, + private evtModelService: EVTModelService, + ) { + } + + changePage(selectedPage: Page) { + this.evtStatusService.updatePage$.next(selectedPage); + } + + addImage() { + if (this.imagePanelItem.length + 1 <= this.layoutOptions.maxCols) { + this.imagePanelItem.push({ cols: 1, rows: 1, y: 0, x: this.imagePanelItem.length }); + } + } + + removeImage() { + this.imagePanelItem.pop(); + } + +} diff --git a/src/app/view-modes/image-only/image-only.component.html b/src/app/view-modes/image-only/image-only.component.html new file mode 100644 index 000000000..84ceee641 --- /dev/null +++ b/src/app/view-modes/image-only/image-only.component.html @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/app/view-modes/image-only/image-only.component.scss b/src/app/view-modes/image-only/image-only.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/view-modes/image-only/image-only.component.spec.ts b/src/app/view-modes/image-only/image-only.component.spec.ts new file mode 100644 index 000000000..e8de44b27 --- /dev/null +++ b/src/app/view-modes/image-only/image-only.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { ImageTextComponent } from './image-text.component'; + +describe('ImageTextComponent', () => { + let component: ImageTextComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ ImageTextComponent ], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ImageTextComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/view-modes/image-only/image-only.component.ts b/src/app/view-modes/image-only/image-only.component.ts new file mode 100644 index 000000000..162c94a07 --- /dev/null +++ b/src/app/view-modes/image-only/image-only.component.ts @@ -0,0 +1,51 @@ +import { Component } from '@angular/core'; +import { DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2'; +import { map } from 'rxjs/operators'; +import { Page } from '../../models/evt-models'; +import { EVTModelService } from '../../services/evt-model.service'; +import { EVTStatusService } from '../../services/evt-status.service'; + +@Component({ + selector: 'evt-image-only', + templateUrl: './image-only.component.html', + styleUrls: ['./image-only.component.scss'], +}) +export class ImageOnlyComponent { + public layoutOptions: GridsterConfig = { + gridType: GridType.Fit, + displayGrid: DisplayGrid.None, + margin: 0, + maxCols: 1, + maxRows: 1, + draggable: { + enabled: false, + ignoreContent: true, + dragHandleClass: 'panel-header', + }, + resizable: { + enabled: false, + }, + }; + public imagePanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 }; + public imageViewer$ = this.evtModelService.imageDouble$; + public currentPageID$ = this.evtModelService.imageDoublePages$.pipe( + map((surfacesGrpPages) => { + if (surfacesGrpPages && surfacesGrpPages.length > 0){ + const sGrp = surfacesGrpPages[0]; + + return sGrp.id; + } + + return ''; + }), + ); + + constructor( + private evtStatusService: EVTStatusService, + private evtModelService: EVTModelService, + ) {} + + changePage(selectedPage: Page) { + this.evtStatusService.updatePage$.next(selectedPage); + } +} diff --git a/src/app/view-modes/image-text/image-text.component.html b/src/app/view-modes/image-text/image-text.component.html index bf4dbbc91..086cdb27a 100644 --- a/src/app/view-modes/image-text/image-text.component.html +++ b/src/app/view-modes/image-text/image-text.component.html @@ -1,6 +1,7 @@ - { + const editionImages = AppConfig.evtSettings.files.editionImagesSource; for (const key of Object.keys(editionImages)) { if (editionImages[key].enable) { diff --git a/src/app/view-modes/reading-text/reading-text.component.html b/src/app/view-modes/reading-text/reading-text.component.html index 693762a31..d0f8291c1 100644 --- a/src/app/view-modes/reading-text/reading-text.component.html +++ b/src/app/view-modes/reading-text/reading-text.component.html @@ -15,21 +15,40 @@
    @@ -41,7 +60,7 @@
    + [iconLeft]="{icon: 'list'}"> diff --git a/src/app/view-modes/reading-text/reading-text.component.scss b/src/app/view-modes/reading-text/reading-text.component.scss index 2eeaa2ce0..b4a418654 100644 --- a/src/app/view-modes/reading-text/reading-text.component.scss +++ b/src/app/view-modes/reading-text/reading-text.component.scss @@ -1,7 +1,7 @@ .global-tools { position: absolute; - bottom: 10px; - right: 10px; + bottom: 3.6rem; + right: 2.5rem; z-index: 20; } @@ -17,5 +17,20 @@ .tab-pane { padding: 1rem; } + .source-container .tab-pane { + padding: 0.3rem !important; + } + + .nav { + font-family: serif; + --bs-nav-link-color: white; + --bs-nav-link-hover-color: white; + } + + .nav-tabs { + color: #ECEFF1; + background-color: #263238; + } + } } \ No newline at end of file diff --git a/src/assets/config/custom-styles.css b/src/assets/config/custom-styles.css new file mode 100644 index 000000000..907f0eec9 --- /dev/null +++ b/src/assets/config/custom-styles.css @@ -0,0 +1,91 @@ +.w .lb { + display: none; +} + +.ab[rend="align-center"] { + display: block; + text-align: center; +} + +*[rend="strikethrough"] { + text-decoration: line-through; +} + +*[rend="overwritten"] { + font-weight: bold; +} + +*[rend="underline"] { + text-decoration: underline; +} + +*[rend="italic"] { + font-style: italic; +} + +*[rend="erasure"] { + background-color: rgb(70, 70, 70); +} + +*[rend="cross"] { + text-decoration: line-through; +} + +*[rend="line_full_width"] { + margin-bottom: 0.1rem; + border-bottom: 1px solid black; + display: block; +} + +*[place="superscript"] { + vertical-align: text-bottom; +} + +evt-page :not(evt-apparatus-entry-detail) .head { + font-weight: bold; + display: inline-block; + padding: 0.5em 0.1em 0.5em 0em; +} + +evt-page :not(evt-apparatus-entry-detail) .closer { + display: block; +} + +evt-page :not(evt-apparatus-entry-detail) .signed { + display: inline-block; + /* font-style: italic; */ +} + +evt-page :not(evt-apparatus-entry-detail) .retrace { + font-weight: bolder; +} + +evt-page :not(evt-apparatus-entry-detail) .verse-num { + color:black !important; +} + +evt-page :not(evt-apparatus-entry-detail) .verse-num:before { + border:none !important; + background: none !important; +} + +.metamark[rend="line"] { + display: block; + border: 1px solid black; + margin-top:-1em; + margin-right:70%; +} + +evt-reading evt-note, +evt-addition evt-note { + display: none; +} + +.fw { + display: block; +} + +[type="pageNum"][place="top_right"] { + float:right; + margin-top: -1.5rem; +} \ No newline at end of file diff --git a/src/assets/config/edition_config.json b/src/assets/config/edition_config.json index ef7ee3369..0fdd02b0a 100644 --- a/src/assets/config/edition_config.json +++ b/src/assets/config/edition_config.json @@ -1,109 +1,177 @@ { - "editionTitle": "My Digital Edition", - "badge": "alpha", - "editionHome": "evt.labcd.unipi.it/", - "availableEditionLevels": [ - { - "id": "diplomatic", - "label": "diplomatic", - "enable": true - }, - { - "id": "interpretative", - "label": "interpretative", - "enable": true - }, - { - "id": "critical", - "label": "critical", - "enable": true - } - ], - "namedEntitiesLists": { - "persons": { - "defaultLabel": "Persons", - "enable": true - }, - "places": { - "defaultLabel": "Places", - "enable": true - }, - "organizations": { - "defaultLabel": "Organizations", - "enable": true - }, - "relations": { - "defaultLabel": "Relations", - "enable": true - }, - "events": { - "defaultLabel": "Events", - "enable": true - } - }, - "showLists": true, - "entitiesSelectItems": [ - { - "label": "Named Entities", - "items": [ - { - "value": "persName", - "label": "persons", - "color": "#ffcdd2", - "enable": true - }, - { - "value": "persName[type='episcopus']", - "label": "bishops", - "color": "rgb(139, 98, 236)", - "enable": true - }, - { - "value": "placeName,geogName", - "label": "places", - "color": "#A5D6A7", - "enable": true - }, - { - "value": "orgName", - "label": "organizations", - "color": "#FFB74D", - "enable": true - } - ], - "enable": true - }, - { - "label": "Other", - "items": [ - { - "value": "event", - "label": "events", - "color": "#fcfc60", - "enable": true - }, - { - "value": "rolename", - "label": "roles", - "enable": true - }, - { - "value": "measure", - "label": "measures", - "enable": true - } - ], - "enable": true - } - ], - "notSignificantVariants": [ - "type=orthographic" - ], - "defaultEdition": "diplomatic", - "defaultViewMode": "collation", - "proseVersesToggler": true, - "defaultTextFlow": "prose", - "verseNumberPrinter": 5, - "readingColorLight": "rgb(208, 220, 255)", - "readingColorDark": "rgb(101, 138, 255)" + "editionTitle": "My Digital Edition", + "badge": "alpha", + "editionHome": "evt.labcd.unipi.it/", + "availableEditionLevels": [ + { + "id": "diplomatic", + "label": "diplomatic", + "enable": true, + "hidden": false + }, + { + "id": "interpretative", + "label": "interpretative", + "enable": true, + "hidden": false + }, + { + "id": "critical", + "label": "critical", + "enable": true, + "hidden": false + }, + { + "id": "changesView", + "label": "changes", + "enable": true, + "hidden": true + } + ], + "downloadableXMLSource": true, + "namedEntitiesLists": { + "persons": { + "defaultLabel": "Persons", + "enable": true + }, + "places": { + "defaultLabel": "Places", + "enable": true + }, + "organizations": { + "defaultLabel": "Organizations", + "enable": true + }, + "relations": { + "defaultLabel": "Relations", + "enable": true + }, + "events": { + "defaultLabel": "Events", + "enable": true + } + }, + "showLists": true, + "entitiesSelectItems": [ + { + "label": "Named Entities", + "items": [ + { + "value": "persName", + "label": "persons", + "color": "#ffcdd2", + "enable": true + }, + { + "value": "persName[type='episcopus']", + "label": "bishops", + "color": "rgb(139, 98, 236)", + "enable": true + }, + { + "value": "placeName,geogName", + "label": "places", + "color": "#A5D6A7", + "enable": true + }, + { + "value": "orgName", + "label": "organizations", + "color": "#FFB74D", + "enable": true + } + ], + "enable": true + }, + { + "label": "Other", + "items": [ + { + "value": "event", + "label": "events", + "color": "#fcfc60", + "enable": true + }, + { + "value": "rolename", + "label": "roles", + "enable": true + }, + { + "value": "measure", + "label": "measures", + "enable": true + } + ], + "enable": true + } + ], + "notSignificantVariants": [ + "type=orthographic" + ], + "defaultEdition": "critical", + "defaultViewMode": "collation", + "proseVersesToggler": true, + "defaultTextFlow": "prose", + "verseNumberPrinter": 5, + "readingColorLight": "rgb(208, 220, 255)", + "readingColorDark": "rgb(101, 138, 255)", + "externalBibliography": { + "biblAttributeToMatch": "xml:id", + "elementAttributesToMatch": [ + "target", + "source" + ] + }, + "biblView": { + "propsToShow": [ + "author", + "title", + "date", + "editor", + "publisher", + "pubPlace", + "citedRange", + "biblScope" + ], + "showAttrNames": false, + "showEmptyValues": false, + "inline": true, + "commaSeparated": true, + "showMainElemTextContent": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": [] + }, + "defaultImageZoomLevel": 0.8 + }, + "analogueMarkers": [ + "ParallelPassage", + "parallelPassage", + "Parallel", + "parallel" + ], + "sourcesExcludedFromListByParent": [ + "desc" + ], + "showSubstitutionMarker": true, + "showSeparatorBetweenChanges": true, + "startingFromDefinitiveLayer": true, + "showChangeLayerMarkerInText": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": { + "strato-0": "#71e5fa", + "strato-1": "#609cf4", + "strato-2": "#0d6efd", + "strato-3": "#7B66FF", + "strato-4": "#3e22f3", + "strato-5": "#100077" + } + }, + "defaultImageZoomLevel": 0.8, + "maxImageZoomLevel": 2, + "multiPageEngineForCriticalEdition": false } \ No newline at end of file diff --git a/src/assets/config/edition_config_DOTR.json b/src/assets/config/edition_config_DOTR.json new file mode 100644 index 000000000..34dfaeb07 --- /dev/null +++ b/src/assets/config/edition_config_DOTR.json @@ -0,0 +1,176 @@ +{ + "editionTitle": "The Dream of the Rood", + "badge": "beta", + "editionHome": "http://vbd.humnet.unipi.it/beta2/", + "availableEditionLevels": [ + { + "id": "diplomatic", + "label": "diplomatic", + "enable": true, + "hidden": false + }, + { + "id": "interpretative", + "label": "interpretative", + "enable": true, + "hidden": false + }, + { + "id": "critical", + "label": "critical", + "enable": true, + "hidden": false + }, + { + "id": "changesView", + "label": "changes", + "enable": true, + "hidden": true + } + ], + "downloadableXMLSource": true, + "namedEntitiesLists": { + "persons": { + "defaultLabel": "Persons", + "enable": true + }, + "places": { + "defaultLabel": "Places", + "enable": true + }, + "organizations": { + "defaultLabel": "Organizations", + "enable": true + }, + "relations": { + "defaultLabel": "Relations", + "enable": true + }, + "events": { + "defaultLabel": "Events", + "enable": true + } + }, + "showLists": true, + "entitiesSelectItems": [ + { + "label": "Named Entities", + "items": [ + { + "value": "persName", + "label": "persons", + "color": "#ffcdd2", + "enable": true + }, + { + "value": "persName[type='episcopus']", + "label": "bishops", + "color": "rgb(139, 98, 236)", + "enable": true + }, + { + "value": "placeName,geogName", + "label": "places", + "color": "#A5D6A7", + "enable": true + }, + { + "value": "orgName", + "label": "organizations", + "color": "#FFB74D", + "enable": true + } + ], + "enable": false + }, + { + "label": "Other", + "items": [ + { + "value": "event", + "label": "events", + "color": "#fcfc60", + "enable": true + }, + { + "value": "rolename", + "label": "roles", + "enable": true + }, + { + "value": "measure", + "label": "measures", + "enable": true + } + ], + "enable": false + } + ], + "notSignificantVariants": [ + "type=orthographic" + ], + "defaultEdition": "diplomatic", + "defaultViewMode": "imageText", + "proseVersesToggler": true, + "defaultTextFlow": "prose", + "verseNumberPrinter": 5, + "readingColorLight": "rgb(208, 220, 255)", + "readingColorDark": "rgb(101, 138, 255)", + "externalBibliography": { + "biblAttributeToMatch": "xml:id", + "elementAttributesToMatch": [ + "target", + "source" + ] + }, + "biblView": { + "propsToShow": [ + "author", + "title", + "date", + "editor", + "publisher", + "pubPlace", + "citedRange", + "biblScope" + ], + "showAttrNames": false, + "showEmptyValues": false, + "inline": true, + "commaSeparated": true, + "showMainElemTextContent": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": [] + }, + "defaultImageZoomLevel": 0.8 + }, + "analogueMarkers": [ + "ParallelPassage", + "parallelPassage", + "Parallel", + "parallel" + ], + "sourcesExcludedFromListByParent": [ + "desc" + ], + "showSubstitutionMarker": true, + "showSeparatorBetweenChanges": true, + "startingFromDefinitiveLayer": true, + "showChangeLayerMarkerInText": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": { + "strato-0": "#71e5fa", + "strato-1": "#609cf4", + "strato-2": "#0d6efd", + "strato-3": "#7B66FF", + "strato-4": "#3e22f3", + "strato-5": "#100077" + } + }, + "defaultImageZoomLevel": 0.8, + "multiPageEngineForCriticalEdition": false +} \ No newline at end of file diff --git a/src/assets/config/edition_config_Pelavicino.json b/src/assets/config/edition_config_Pelavicino.json new file mode 100644 index 000000000..3694a14f8 --- /dev/null +++ b/src/assets/config/edition_config_Pelavicino.json @@ -0,0 +1,176 @@ +{ + "editionTitle": "Codice Pelavicino Digitale", + "badge": "beta", + "editionHome": "http://pelavicino.labcd.unipi.it/", + "availableEditionLevels": [ + { + "id": "diplomatic", + "label": "diplomatic", + "enable": false, + "hidden": false + }, + { + "id": "interpretative", + "label": "interpretative", + "enable": true, + "hidden": false + }, + { + "id": "critical", + "label": "critical", + "enable": false, + "hidden": false + }, + { + "id": "changesView", + "label": "changes", + "enable": false, + "hidden": true + } + ], + "downloadableXMLSource": true, + "namedEntitiesLists": { + "persons": { + "defaultLabel": "Persons", + "enable": true + }, + "places": { + "defaultLabel": "Places", + "enable": true + }, + "organizations": { + "defaultLabel": "Organizations", + "enable": true + }, + "relations": { + "defaultLabel": "Relations", + "enable": true + }, + "events": { + "defaultLabel": "Events", + "enable": true + } + }, + "showLists": true, + "entitiesSelectItems": [ + { + "label": "Named Entities", + "items": [ + { + "value": "persName", + "label": "persons", + "color": "#ffcdd2", + "enable": true + }, + { + "value": "persName[type='episcopus']", + "label": "bishops", + "color": "rgb(139, 98, 236)", + "enable": true + }, + { + "value": "placeName,geogName", + "label": "places", + "color": "#A5D6A7", + "enable": true + }, + { + "value": "orgName", + "label": "organizations", + "color": "#FFB74D", + "enable": true + } + ], + "enable": true + }, + { + "label": "Other", + "items": [ + { + "value": "event", + "label": "events", + "color": "#fcfc60", + "enable": true + }, + { + "value": "rolename", + "label": "roles", + "enable": true + }, + { + "value": "measure", + "label": "measures", + "enable": true + } + ], + "enable": true + } + ], + "notSignificantVariants": [ + "type=orthographic" + ], + "defaultEdition": "interpretative", + "defaultViewMode": "imageText", + "proseVersesToggler": false, + "defaultTextFlow": "prose", + "verseNumberPrinter": 5, + "readingColorLight": "rgb(208, 220, 255)", + "readingColorDark": "rgb(101, 138, 255)", + "externalBibliography": { + "biblAttributeToMatch": "xml:id", + "elementAttributesToMatch": [ + "target", + "source" + ] + }, + "biblView": { + "propsToShow": [ + "author", + "title", + "date", + "editor", + "publisher", + "pubPlace", + "citedRange", + "biblScope" + ], + "showAttrNames": false, + "showEmptyValues": false, + "inline": true, + "commaSeparated": true, + "showMainElemTextContent": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": [] + }, + "defaultImageZoomLevel": 0.8 + }, + "analogueMarkers": [ + "ParallelPassage", + "parallelPassage", + "Parallel", + "parallel" + ], + "sourcesExcludedFromListByParent": [ + "desc" + ], + "showSubstitutionMarker": true, + "showSeparatorBetweenChanges": true, + "startingFromDefinitiveLayer": true, + "showChangeLayerMarkerInText": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": { + "strato-0": "#71e5fa", + "strato-1": "#609cf4", + "strato-2": "#0d6efd", + "strato-3": "#7B66FF", + "strato-4": "#3e22f3", + "strato-5": "#100077" + } + }, + "defaultImageZoomLevel": 0.8, + "multiPageEngineForCriticalEdition": false +} \ No newline at end of file diff --git a/src/assets/config/edition_config_PseudoEdition.json b/src/assets/config/edition_config_PseudoEdition.json new file mode 100644 index 000000000..d19a23e5c --- /dev/null +++ b/src/assets/config/edition_config_PseudoEdition.json @@ -0,0 +1,176 @@ +{ + "editionTitle": "Pseudo Edition", + "badge": "beta", + "editionHome": "", + "availableEditionLevels": [ + { + "id": "diplomatic", + "label": "diplomatic", + "enable": false, + "hidden": false + }, + { + "id": "interpretative", + "label": "interpretative", + "enable": false, + "hidden": false + }, + { + "id": "critical", + "label": "Critical", + "enable": true, + "hidden": false + }, + { + "id": "changesView", + "label": "changes", + "enable": false, + "hidden": true + } + ], + "downloadableXMLSource": true, + "namedEntitiesLists": { + "persons": { + "defaultLabel": "Persons", + "enable": true + }, + "places": { + "defaultLabel": "Places", + "enable": true + }, + "organizations": { + "defaultLabel": "Organizations", + "enable": true + }, + "relations": { + "defaultLabel": "Relations", + "enable": true + }, + "events": { + "defaultLabel": "Events", + "enable": true + } + }, + "showLists": true, + "entitiesSelectItems": [ + { + "label": "Named Entities", + "items": [ + { + "value": "persName", + "label": "persons", + "color": "#ffcdd2", + "enable": true + }, + { + "value": "persName[type='episcopus']", + "label": "bishops", + "color": "rgb(139, 98, 236)", + "enable": true + }, + { + "value": "placeName,geogName", + "label": "places", + "color": "#A5D6A7", + "enable": true + }, + { + "value": "orgName", + "label": "organizations", + "color": "#FFB74D", + "enable": true + } + ], + "enable": false + }, + { + "label": "Other", + "items": [ + { + "value": "event", + "label": "events", + "color": "#fcfc60", + "enable": true + }, + { + "value": "rolename", + "label": "roles", + "enable": true + }, + { + "value": "measure", + "label": "measures", + "enable": true + } + ], + "enable": false + } + ], + "notSignificantVariants": [ + "type=orthographic" + ], + "defaultEdition": "critical", + "defaultViewMode": "readingText", + "proseVersesToggler": false, + "defaultTextFlow": "prose", + "verseNumberPrinter": 5, + "readingColorLight": "rgb(208, 220, 255)", + "readingColorDark": "rgb(101, 138, 255)", + "externalBibliography": { + "biblAttributeToMatch": "xml:id", + "elementAttributesToMatch": [ + "target", + "source" + ] + }, + "biblView": { + "propsToShow": [ + "author", + "title", + "date", + "editor", + "publisher", + "pubPlace", + "citedRange", + "biblScope" + ], + "showAttrNames": false, + "showEmptyValues": false, + "inline": true, + "commaSeparated": true, + "showMainElemTextContent": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": [] + }, + "defaultImageZoomLevel": 0.8 + }, + "analogueMarkers": [ + "ParallelPassage", + "parallelPassage", + "Parallel", + "parallel" + ], + "sourcesExcludedFromListByParent": [ + "desc" + ], + "showSubstitutionMarker": true, + "showSeparatorBetweenChanges": true, + "startingFromDefinitiveLayer": true, + "showChangeLayerMarkerInText": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": { + "strato-0": "#71e5fa", + "strato-1": "#609cf4", + "strato-2": "#0d6efd", + "strato-3": "#7B66FF", + "strato-4": "#3e22f3", + "strato-5": "#100077" + } + }, + "defaultImageZoomLevel": 0.8, + "multiPageEngineForCriticalEdition": false +} \ No newline at end of file diff --git a/src/assets/config/edition_config_Saba.json b/src/assets/config/edition_config_Saba.json new file mode 100644 index 000000000..c9106a719 --- /dev/null +++ b/src/assets/config/edition_config_Saba.json @@ -0,0 +1,176 @@ +{ + "editionTitle": "Progetto Saba1919", + "badge": "beta", + "editionHome": "", + "availableEditionLevels": [ + { + "id": "diplomatic", + "label": "diplomatic", + "enable": true, + "hidden": false + }, + { + "id": "interpretative", + "label": "interpretative", + "enable": true, + "hidden": false + }, + { + "id": "critical", + "label": "critical", + "enable": true, + "hidden": false + }, + { + "id": "changesView", + "label": "changes", + "enable": true, + "hidden": true + } + ], + "downloadableXMLSource": false, + "namedEntitiesLists": { + "persons": { + "defaultLabel": "Persons", + "enable": true + }, + "places": { + "defaultLabel": "Places", + "enable": true + }, + "organizations": { + "defaultLabel": "Organizations", + "enable": true + }, + "relations": { + "defaultLabel": "Relations", + "enable": true + }, + "events": { + "defaultLabel": "Events", + "enable": true + } + }, + "showLists": true, + "entitiesSelectItems": [ + { + "label": "Named Entities", + "items": [ + { + "value": "persName", + "label": "persons", + "color": "#ffcdd2", + "enable": true + }, + { + "value": "persName[type='episcopus']", + "label": "bishops", + "color": "rgb(139, 98, 236)", + "enable": true + }, + { + "value": "placeName,geogName", + "label": "places", + "color": "#A5D6A7", + "enable": true + }, + { + "value": "orgName", + "label": "organizations", + "color": "#FFB74D", + "enable": true + } + ], + "enable": true + }, + { + "label": "Other", + "items": [ + { + "value": "event", + "label": "events", + "color": "#fcfc60", + "enable": true + }, + { + "value": "rolename", + "label": "roles", + "enable": true + }, + { + "value": "measure", + "label": "measures", + "enable": true + } + ], + "enable": true + } + ], + "notSignificantVariants": [ + "type=orthographic" + ], + "defaultEdition": "changesView", + "defaultViewMode": "documentalMixed", + "proseVersesToggler": false, + "defaultTextFlow": "prose", + "verseNumberPrinter": 5, + "readingColorLight": "rgb(208, 220, 255)", + "readingColorDark": "rgb(101, 138, 255)", + "externalBibliography": { + "biblAttributeToMatch": "xml:id", + "elementAttributesToMatch": [ + "target", + "source" + ] + }, + "biblView": { + "propsToShow": [ + "author", + "title", + "date", + "editor", + "publisher", + "pubPlace", + "citedRange", + "biblScope" + ], + "showAttrNames": false, + "showEmptyValues": false, + "inline": true, + "commaSeparated": true, + "showMainElemTextContent": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": [] + } + }, + "analogueMarkers": [ + "ParallelPassage", + "parallelPassage", + "Parallel", + "parallel" + ], + "sourcesExcludedFromListByParent": [ + "desc" + ], + "showSubstitutionMarker": true, + "showSeparatorBetweenChanges": true, + "startingFromDefinitiveLayer": false, + "showChangeLayerMarkerInText": true, + "changeSequenceView": { + "showVarSeqAttr": false, + "showSeqAttr": false, + "layerColors": { + "strato-0": "#71e5fa", + "strato-1": "#609cf4", + "strato-2": "#0d6efd", + "strato-3": "#7B66FF", + "strato-4": "#3e22f3", + "strato-5": "#100077" + } + }, + "defaultImageZoomLevel": 0.8, + "multiPageEngineForCriticalEdition": false, + "syncZonesHighlightButton": false +} \ No newline at end of file diff --git a/src/assets/config/file_config.json b/src/assets/config/file_config.json index 906c8a009..1c9036373 100644 --- a/src/assets/config/file_config.json +++ b/src/assets/config/file_config.json @@ -1,5 +1,7 @@ { - "editionUrls": ["assets/data/edition.xml"], + "editionUrls": [ + "assets/data/pelavicino.xml" + ], "editionImagesSource": { "manifest": { "value": "https://www.e-codices.unifr.ch/metadata/iiif/csg-0730/manifest.json", @@ -10,10 +12,13 @@ "enable": false } }, - "imagesFolderUrl": "assets/data/images/single", + "imagesFolderUrls": { + "single": "assets/data/images/single/", + "double": "assets/data/images/double/" + }, "configurationUrls": { - "edition": "assets/config/edition_config.json", - "ui": "assets/config/ui_config.json", + "edition": "assets/config/edition_config_Pelavicino.json", + "ui": "assets/config/ui_config_Pelavicino.json", "editorialConventions": "assets/config/editorial_conventions_config.json" } } \ No newline at end of file diff --git a/src/assets/config/file_config_DOTR.json b/src/assets/config/file_config_DOTR.json new file mode 100644 index 000000000..08cf30b7e --- /dev/null +++ b/src/assets/config/file_config_DOTR.json @@ -0,0 +1,24 @@ +{ + "editionUrls": [ + "assets/data/VB-DOTR.xml" + ], + "editionImagesSource": { + "manifest": { + "value": "https://www.e-codices.unifr.ch/metadata/iiif/csg-0730/manifest.json", + "enable": false + }, + "graphics": { + "value": "url", + "enable": false + } + }, + "imagesFolderUrls": { + "single": "assets/data/images/single/", + "double": "assets/data/images/double/" + }, + "configurationUrls": { + "edition": "assets/config/edition_config_DOTR.json", + "ui": "assets/config/ui_config_DOTR.json", + "editorialConventions": "assets/config/editorial_conventions_config.json" + } +} \ No newline at end of file diff --git a/src/assets/config/file_config_Pelavicino.json b/src/assets/config/file_config_Pelavicino.json new file mode 100644 index 000000000..1c9036373 --- /dev/null +++ b/src/assets/config/file_config_Pelavicino.json @@ -0,0 +1,24 @@ +{ + "editionUrls": [ + "assets/data/pelavicino.xml" + ], + "editionImagesSource": { + "manifest": { + "value": "https://www.e-codices.unifr.ch/metadata/iiif/csg-0730/manifest.json", + "enable": false + }, + "graphics": { + "value": "url", + "enable": false + } + }, + "imagesFolderUrls": { + "single": "assets/data/images/single/", + "double": "assets/data/images/double/" + }, + "configurationUrls": { + "edition": "assets/config/edition_config_Pelavicino.json", + "ui": "assets/config/ui_config_Pelavicino.json", + "editorialConventions": "assets/config/editorial_conventions_config.json" + } +} \ No newline at end of file diff --git a/src/assets/config/file_config_PseudoEdition.json b/src/assets/config/file_config_PseudoEdition.json new file mode 100644 index 000000000..c203cf2d4 --- /dev/null +++ b/src/assets/config/file_config_PseudoEdition.json @@ -0,0 +1,24 @@ +{ + "editionUrls": [ + "assets/data/pseudoEdition.xml" + ], + "editionImagesSource": { + "manifest": { + "value": "https://www.e-codices.unifr.ch/metadata/iiif/csg-0730/manifest.json", + "enable": false + }, + "graphics": { + "value": "url", + "enable": false + } + }, + "imagesFolderUrls": { + "single": "assets/data/images/single/", + "double": "assets/data/images/double/" + }, + "configurationUrls": { + "edition": "assets/config/edition_config_PseudoEdition.json", + "ui": "assets/config/ui_config_PseudoEdition.json", + "editorialConventions": "assets/config/editorial_conventions_config.json" + } +} \ No newline at end of file diff --git a/src/assets/config/file_config_Saba.json b/src/assets/config/file_config_Saba.json new file mode 100644 index 000000000..e15d84a2b --- /dev/null +++ b/src/assets/config/file_config_Saba.json @@ -0,0 +1,24 @@ +{ + "editionUrls": [ + "assets/data/saba.xml" + ], + "editionImagesSource": { + "manifest": { + "value": "https://www.e-codices.unifr.ch/metadata/iiif/csg-0730/manifest.json", + "enable": false + }, + "graphics": { + "value": "url", + "enable": false + } + }, + "imagesFolderUrls": { + "single": "assets/data/images/single/", + "double": "assets/data/images/double/" + }, + "configurationUrls": { + "edition": "assets/config/edition_config_Saba.json", + "ui": "assets/config/ui_config_Saba.json", + "editorialConventions": "assets/config/editorial_conventions_config.json" + } +} \ No newline at end of file diff --git a/src/assets/config/ui_config.json b/src/assets/config/ui_config.json index fe0b49fac..2defd94be 100644 --- a/src/assets/config/ui_config.json +++ b/src/assets/config/ui_config.json @@ -1,5 +1,19 @@ { "availableViewModes": [ + { + "icon": "images", + "iconSet": "fas", + "id": "imageImage", + "label": "Image-Image", + "enable": false + }, + { + "icon": "image", + "iconSet": "fas", + "id": "imageOnly", + "label": "Image only", + "enable": false + }, { "icon": "txt", "iconSet": "evt", @@ -33,14 +47,21 @@ "iconSet": "evt", "id": "textSources", "label": "Text Sources", - "enable": true + "enable": false }, { "icon": "versions", "iconSet": "evt", "id": "textVersions", "label": "Text Versions", - "enable": true + "enable": false + }, + { + "icon": "documix", + "iconSet": "evt", + "id": "documentalMixed", + "label": "Documental", + "enable": false } ], "localization": true, @@ -49,7 +70,7 @@ { "code": "en", "label": "languageEn", - "": true + "enable": true }, { "code": "it", @@ -60,6 +81,99 @@ "enableNavBar": true, "initNavBarOpened": true, "thumbnailsButton": true, - "viscollButton": true, - "theme": "modern" + "viscollButton": false, + "mainFontFamily": "Junicode, Times, serif", + "mainFontSize": "1.1rem", + "secondaryfontFamily": "Arial, sans-serif", + "secondaryfontSize": "1.1em", + "theme": "modern", + "syncZonesHighlightButton": true, + "defaultBibliographicStyle": "chicago", + "allowedBibliographicStyles": { + "chicago": { + "id": "chicago", + "label": "Chicago (Author-Date)", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "editor", + "publication", + "pubPlace", + "publisher", + "doi" + ], + "properties": { + "titleQuotes": true, + "emphasized": [ + "publisher" + ] + } + }, + "apa": { + "id": "apa", + "label": "APA", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "authorStyle": { + "delimiter": ",", + "forenameInitials": true, + "maxAuthors": 3 + }, + "publicationStyle": { + "citingAcronym": "none", + "inBrackets": [ + "issue" + ] + }, + "propsDelimiter": ".", + "titleQuotes": false, + "emphasized": [ + "publication" + ], + "inBrackets": [ + "date" + ] + } + }, + "mla": { + "id": "mla", + "label": "MLA", + "enabled": true, + "propsOrder": [ + "author", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "propsDelimiter": ".", + "authorStyle": { + "delimiter": "," + }, + "publicationStyle": { + "citingAcronym": "all", + "inBrackets": [ + "issue" + ], + "includeEditor": true + }, + "dateInsidePublication": true, + "titleQuotes": false, + "emphasized": [ + "publication" + ] + } + } + } } \ No newline at end of file diff --git a/src/assets/config/ui_config_DOTR.json b/src/assets/config/ui_config_DOTR.json new file mode 100644 index 000000000..4b05b58e8 --- /dev/null +++ b/src/assets/config/ui_config_DOTR.json @@ -0,0 +1,179 @@ +{ + "availableViewModes": [ + { + "icon": "images", + "iconSet": "fas", + "id": "imageImage", + "label": "Image-Image", + "enable": true + }, + { + "icon": "image", + "iconSet": "fas", + "id": "imageOnly", + "label": "Image only", + "enable": true + }, + { + "icon": "txt", + "iconSet": "evt", + "id": "readingText", + "label": "Reading Text", + "enable": true + }, + { + "icon": "imgTxt", + "iconSet": "evt", + "id": "imageText", + "label": "Image Text", + "enable": true + }, + { + "icon": "txtTxt", + "iconSet": "evt", + "id": "textText", + "label": "Text Text", + "enable": true + }, + { + "icon": "collation", + "iconSet": "evt", + "id": "collation", + "label": "Collation", + "enable": false + }, + { + "icon": "srcTxt", + "iconSet": "evt", + "id": "textSources", + "label": "Text Sources", + "enable": false + }, + { + "icon": "versions", + "iconSet": "evt", + "id": "textVersions", + "label": "Text Versions", + "enable": false + }, + { + "icon": "documix", + "iconSet": "evt", + "id": "documentalMixed", + "label": "Documental", + "enable": false + } + ], + "localization": true, + "defaultLocalization": "en", + "availableLanguages": [ + { + "code": "en", + "label": "languageEn", + "enable": true + }, + { + "code": "it", + "label": "languageIt", + "enable": true + } + ], + "enableNavBar": true, + "initNavBarOpened": true, + "thumbnailsButton": true, + "viscollButton": false, + "mainFontFamily": "Junicode, Times, serif", + "mainFontSize": "1.1rem", + "secondaryfontFamily": "Arial, sans-serif", + "secondaryfontSize": "1.1em", + "theme": "classic", + "syncZonesHighlightButton": true, + "defaultBibliographicStyle": "chicago", + "allowedBibliographicStyles": { + "chicago": { + "id": "chicago", + "label": "Chicago (Author-Date)", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "editor", + "publication", + "pubPlace", + "publisher", + "doi" + ], + "properties": { + "titleQuotes": true, + "emphasized": [ + "publisher" + ] + } + }, + "apa": { + "id": "apa", + "label": "APA", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "authorStyle": { + "delimiter": ",", + "forenameInitials": true, + "maxAuthors": 3 + }, + "publicationStyle": { + "citingAcronym": "none", + "inBrackets": [ + "issue" + ] + }, + "propsDelimiter": ".", + "titleQuotes": false, + "emphasized": [ + "publication" + ], + "inBrackets": [ + "date" + ] + } + }, + "mla": { + "id": "mla", + "label": "MLA", + "enabled": true, + "propsOrder": [ + "author", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "propsDelimiter": ".", + "authorStyle": { + "delimiter": "," + }, + "publicationStyle": { + "citingAcronym": "all", + "inBrackets": [ + "issue" + ], + "includeEditor": true + }, + "dateInsidePublication": true, + "titleQuotes": false, + "emphasized": [ + "publication" + ] + } + } + } +} \ No newline at end of file diff --git a/src/assets/config/ui_config_Pelavicino.json b/src/assets/config/ui_config_Pelavicino.json new file mode 100644 index 000000000..054c940a1 --- /dev/null +++ b/src/assets/config/ui_config_Pelavicino.json @@ -0,0 +1,179 @@ +{ + "availableViewModes": [ + { + "icon": "images", + "iconSet": "fas", + "id": "imageImage", + "label": "Image-Image", + "enable": false + }, + { + "icon": "image", + "iconSet": "fas", + "id": "imageOnly", + "label": "Image only", + "enable": false + }, + { + "icon": "txt", + "iconSet": "evt", + "id": "readingText", + "label": "Reading Text", + "enable": true + }, + { + "icon": "imgTxt", + "iconSet": "evt", + "id": "imageText", + "label": "Image Text", + "enable": true + }, + { + "icon": "txtTxt", + "iconSet": "evt", + "id": "textText", + "label": "Text Text", + "enable": false + }, + { + "icon": "collation", + "iconSet": "evt", + "id": "collation", + "label": "Collation", + "enable": false + }, + { + "icon": "srcTxt", + "iconSet": "evt", + "id": "textSources", + "label": "Text Sources", + "enable": false + }, + { + "icon": "versions", + "iconSet": "evt", + "id": "textVersions", + "label": "Text Versions", + "enable": false + }, + { + "icon": "documix", + "iconSet": "evt", + "id": "documentalMixed", + "label": "Documental", + "enable": false + } + ], + "localization": true, + "defaultLocalization": "en", + "availableLanguages": [ + { + "code": "en", + "label": "languageEn", + "enable": true + }, + { + "code": "it", + "label": "languageIt", + "enable": true + } + ], + "enableNavBar": true, + "initNavBarOpened": true, + "thumbnailsButton": true, + "viscollButton": false, + "mainFontFamily": "Junicode, Times, serif", + "mainFontSize": "1.1rem", + "secondaryfontFamily": "Arial, sans-serif", + "secondaryfontSize": "1.1em", + "theme": "classic", + "syncZonesHighlightButton": true, + "defaultBibliographicStyle": "chicago", + "allowedBibliographicStyles": { + "chicago": { + "id": "chicago", + "label": "Chicago (Author-Date)", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "editor", + "publication", + "pubPlace", + "publisher", + "doi" + ], + "properties": { + "titleQuotes": true, + "emphasized": [ + "publisher" + ] + } + }, + "apa": { + "id": "apa", + "label": "APA", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "authorStyle": { + "delimiter": ",", + "forenameInitials": true, + "maxAuthors": 3 + }, + "publicationStyle": { + "citingAcronym": "none", + "inBrackets": [ + "issue" + ] + }, + "propsDelimiter": ".", + "titleQuotes": false, + "emphasized": [ + "publication" + ], + "inBrackets": [ + "date" + ] + } + }, + "mla": { + "id": "mla", + "label": "MLA", + "enabled": true, + "propsOrder": [ + "author", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "propsDelimiter": ".", + "authorStyle": { + "delimiter": "," + }, + "publicationStyle": { + "citingAcronym": "all", + "inBrackets": [ + "issue" + ], + "includeEditor": true + }, + "dateInsidePublication": true, + "titleQuotes": false, + "emphasized": [ + "publication" + ] + } + } + } +} \ No newline at end of file diff --git a/src/assets/config/ui_config_PseudoEdition.json b/src/assets/config/ui_config_PseudoEdition.json new file mode 100644 index 000000000..87946fcee --- /dev/null +++ b/src/assets/config/ui_config_PseudoEdition.json @@ -0,0 +1,179 @@ +{ + "availableViewModes": [ + { + "icon": "images", + "iconSet": "fas", + "id": "imageImage", + "label": "Image-Image", + "enable": false + }, + { + "icon": "image", + "iconSet": "fas", + "id": "imageOnly", + "label": "Image only", + "enable": false + }, + { + "icon": "txt", + "iconSet": "evt", + "id": "readingText", + "label": "Reading Text", + "enable": true + }, + { + "icon": "imgTxt", + "iconSet": "evt", + "id": "imageText", + "label": "Image - Text", + "enable": false + }, + { + "icon": "txtTxt", + "iconSet": "evt", + "id": "textText", + "label": "Text - Text", + "enable": false + }, + { + "icon": "collation", + "iconSet": "evt", + "id": "collation", + "label": "Collation", + "enable": true + }, + { + "icon": "srcTxt", + "iconSet": "evt", + "id": "textSources", + "label": "Text Sources", + "enable": false + }, + { + "icon": "versions", + "iconSet": "evt", + "id": "textVersions", + "label": "Text Versions", + "enable": false + }, + { + "icon": "documix", + "iconSet": "evt", + "id": "documentalMixed", + "label": "Documental", + "enable": false + } + ], + "localization": true, + "defaultLocalization": "en", + "availableLanguages": [ + { + "code": "en", + "label": "languageEn", + "enable": true + }, + { + "code": "it", + "label": "languageIt", + "enable": true + } + ], + "enableNavBar": false, + "initNavBarOpened": true, + "thumbnailsButton": false, + "viscollButton": false, + "mainFontFamily": "Junicode, Times, serif", + "mainFontSize": "1.1rem", + "secondaryfontFamily": "Arial, sans-serif", + "secondaryfontSize": "1.1em", + "theme": "modern", + "syncZonesHighlightButton": true, + "defaultBibliographicStyle": "chicago", + "allowedBibliographicStyles": { + "chicago": { + "id": "chicago", + "label": "Chicago (Author-Date)", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "editor", + "publication", + "pubPlace", + "publisher", + "doi" + ], + "properties": { + "titleQuotes": true, + "emphasized": [ + "publisher" + ] + } + }, + "apa": { + "id": "apa", + "label": "APA", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "authorStyle": { + "delimiter": ",", + "forenameInitials": true, + "maxAuthors": 3 + }, + "publicationStyle": { + "citingAcronym": "none", + "inBrackets": [ + "issue" + ] + }, + "propsDelimiter": ".", + "titleQuotes": false, + "emphasized": [ + "publication" + ], + "inBrackets": [ + "date" + ] + } + }, + "mla": { + "id": "mla", + "label": "MLA", + "enabled": true, + "propsOrder": [ + "author", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "propsDelimiter": ".", + "authorStyle": { + "delimiter": "," + }, + "publicationStyle": { + "citingAcronym": "all", + "inBrackets": [ + "issue" + ], + "includeEditor": true + }, + "dateInsidePublication": true, + "titleQuotes": false, + "emphasized": [ + "publication" + ] + } + } + } +} \ No newline at end of file diff --git a/src/assets/config/ui_config_Saba.json b/src/assets/config/ui_config_Saba.json new file mode 100644 index 000000000..dde27eb4b --- /dev/null +++ b/src/assets/config/ui_config_Saba.json @@ -0,0 +1,179 @@ +{ + "availableViewModes": [ + { + "icon": "images", + "iconSet": "fas", + "id": "imageImage", + "label": "Image-Image", + "enable": false + }, + { + "icon": "image", + "iconSet": "fas", + "id": "imageOnly", + "label": "Image only", + "enable": false + }, + { + "icon": "txt", + "iconSet": "evt", + "id": "readingText", + "label": "Reading Text", + "enable": true + }, + { + "icon": "imgTxt", + "iconSet": "evt", + "id": "imageText", + "label": "Image Text", + "enable": true + }, + { + "icon": "txtTxt", + "iconSet": "evt", + "id": "textText", + "label": "Text Text", + "enable": false + }, + { + "icon": "collation", + "iconSet": "evt", + "id": "collation", + "label": "Collation", + "enable": false + }, + { + "icon": "srcTxt", + "iconSet": "evt", + "id": "textSources", + "label": "Text Sources", + "enable": false + }, + { + "icon": "versions", + "iconSet": "evt", + "id": "textVersions", + "label": "Text Versions", + "enable": false + }, + { + "icon": "documix", + "iconSet": "evt", + "id": "documentalMixed", + "label": "Documental", + "enable": true + } + ], + "localization": true, + "defaultLocalization": "en", + "availableLanguages": [ + { + "code": "en", + "label": "languageEn", + "enable": true + }, + { + "code": "it", + "label": "languageIt", + "enable": true + } + ], + "enableNavBar": true, + "initNavBarOpened": true, + "thumbnailsButton": true, + "viscollButton": false, + "mainFontFamily": "Junicode, Times, serif", + "mainFontSize": "1.1rem", + "secondaryfontFamily": "Arial, sans-serif", + "secondaryfontSize": "1.1em", + "theme": "modern", + "syncZonesHighlightButton": true, + "defaultBibliographicStyle": "chicago", + "allowedBibliographicStyles": { + "chicago": { + "id": "chicago", + "label": "Chicago (Author-Date)", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "editor", + "publication", + "pubPlace", + "publisher", + "doi" + ], + "properties": { + "titleQuotes": true, + "emphasized": [ + "publisher" + ] + } + }, + "apa": { + "id": "apa", + "label": "APA", + "enabled": true, + "propsOrder": [ + "author", + "date", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "authorStyle": { + "delimiter": ",", + "forenameInitials": true, + "maxAuthors": 3 + }, + "publicationStyle": { + "citingAcronym": "none", + "inBrackets": [ + "issue" + ] + }, + "propsDelimiter": ".", + "titleQuotes": false, + "emphasized": [ + "publication" + ], + "inBrackets": [ + "date" + ] + } + }, + "mla": { + "id": "mla", + "label": "MLA", + "enabled": true, + "propsOrder": [ + "author", + "title", + "publication", + "publisher", + "doi" + ], + "properties": { + "propsDelimiter": ".", + "authorStyle": { + "delimiter": "," + }, + "publicationStyle": { + "citingAcronym": "all", + "inBrackets": [ + "issue" + ], + "includeEditor": true + }, + "dateInsidePublication": true, + "titleQuotes": false, + "emphasized": [ + "publication" + ] + } + } + } +} \ No newline at end of file diff --git a/src/assets/data/VB-DOTR.xml b/src/assets/data/VB-DOTR.xml new file mode 100644 index 000000000..57db77e4b --- /dev/null +++ b/src/assets/data/VB-DOTR.xml @@ -0,0 +1,2290 @@ + + + + + + + + + + + The Vercelli Book: a machine readable transcription + Unknown + Roberto Rosselli Del Turco + + Conversion to TEI-conformant markup: + Raffaele Cioffi + Federica Goria + Roberto Rosselli Del Turco + + + General overview: + Roberto Rosselli Del Turco + + + Experimental style sheets: + Roberto Rosselli Del Turco + + + + [??] kilobytes + + + Digital Vercelli Project + 2004 + +

    Not to ricirculate. Contact the Digital Vercelli Project researchers for more information.

    +
    +
    + + + + + Italy + Vercelli + Biblioteca e Archivio Capitolare di Vercelli + CXVII + Vercelli Book + Codex Vercellensis + + + The Codex Vercellensis, or Vercelli Book, as it is known in the Anglo-Saxon world and now also in + Italy, is a manuscript dating back to the end of the 10th century, containing miscellaneous religious + works, in verse and prose: 23 homilies in prose and 6 poetic works following the Anglo-Saxon alliterative metrics. + + + The primary language in this manuscript is Old English, with a few isolated Latin + words and phrases. + + + + + + + 1r - 9r + Homily I + ſceaþe for þan ne meaht ðu þa þrowunge gelettan + ain ecneꞅꞅe þurh eallra woruld aworuld AmeN abutan ende + + + + 9v - 12r + Homily II + MENÐALE OFESTAN. þæꞅ myclan dóm dægeꞅ worc bið ſwiðe egeꞅ lic ⁊andryꞅ + þurh ealra woruld aworuld aabutan ende am̄ + + + + 12v - 16r + Homily III + BRoðor þa leofestan ic cyðe þæt þreo þing ſynt ærest + á in ecneꞅꞅe þurh ealra woruld aworuld aabutan ende AMEN. + + + + 16v - 24v + Homily IV + Men þa leofestan, ıc eow bidde ⁊eaðmodlice lære + þær he leofað ⁊ricꞅað ın ealra worulda woruld abutan ende amen; + + + + 25r - 29r + Homily V + to middan wintra Oſtende nob̄ dne + we ureꞅ dryhtneꞅ naman hælendeꞅ criſteꞅ he leofað ⁊ricꞅað áábutan ende ; + + + + 29v - 52v + Andreas + Hwæt! We gefrunan on fyrndagum + ece mid englum. þæt is æðele cyning! + + + + 52v - 54r + Fates of the Apostles + Hwæt! Ic þysne sang siðgeomor fand + ece ond edgiong, ofer ealle gesceaft. + + + + 54v - 56r + Homily VI + INcipit narrare miracula quefacta fuerant ante aduentum saluatoris + gyldeð uꞅ god ece mede æt uꞅꞅum ende; + + + + 56v - 59r + Homily VII + BUTAN tweon lar iꞅ halig domeꞅ dæl ⁊ealleꞅ ſwiðoſt + ꞅynt onþã toweardan rice mid þam hælendan criſte. ⁊midþã halegan gaſte ınealra worulda woruld; + + + + 59r - 61r + Homily VIII + MENĐA leofeꞅtan manað uꞅ ⁊myngað onþyꞅꞅum bocum + ⁊ mid ðam godeꞅ ꞅuna ðam þe aliofað ⁊rixaþ mid fæder ⁊mid ꞅuna ato widan feore ameN + + + + 61r - 65r + Homily IX + MEN ðaleofestan manað uꞅ ⁊mingaþ þeoꞅ halige boc þæt + we mid him ⁊mid hiꞅ þam halegan gæꞅte wunigean ınealra worulda woruld ameN ; + + + + 65r - 71r + Homily X + HERsagað on þyꞅꞅum halegũ bocum be ælmihtigeꞅ + drihten criſt wunaþ ⁊rixað mid eallũ halegum abutan ende ameN + + + + 71v - 73v + Homily XI + ſpelto forman gang dæge. MEN ðaleofestan þiꞅ ꞅindon halige dagaꞅ ⁊halwendlice + gefultumige þe ofer uꞅ ealle liofað ⁊rixað. ameN + + + + 73v - 75v + Homily XII + ſpeltoðam oðrum gang dæge GIR ꞅan dæg we wæron manode menþa leofestan þiꞅꞅa haliga + midhim ⁊mid hiꞅ halgum ainealra worulda woruld on ecnesse  + + + + 75v - 76v + Homily XIII + ſpelto þriddan gangdæge ÐISISꞅe þridda dæg men þa leofeſtan þyꞅꞅe halgan tide þe uꞅ + world to widan feore midfæder ⁊mid ꞅuna ⁊midþam halgan gaſte in ecneꞅꞅe ameN  + + + + 76v - 80v + Homily XIV + lar ſpel to ſwylcere tide ſwa man wile . MEN ða leofestan þiꞅꞅynt halige dagaꞅ ⁊gaſtlice ⁊uꞅꞅũ + odeꞅ halgum onþone heofen lican eðel ⁊þæꞅ ꞅiððan brucan onecneꞅꞅe amen ; + + + + 80v - 85v + Homily XV + ALIA OMELIADEDI E IVDICII. M sægð us onþyꞅꞅum bocum huꞅe halga thomas godes apsł + ece gefean abutan ende ı scl̄a scl̄orum in secula seculorum ameN + + + + 85v - 90v + Homily XVI + OMELIA EPYFFANIA DNI M̄ sceolon we nú hwylcum hwegm wordum secgan be + rixað nú áþurh eallra woruld áworuld ábutan ende ın ꞅclā sclōrum ameN. + + + + 90v - 94v + Homily XVII + DEPURIFICATIO SCAMIA M[Men þa leofestan] sægeð uꞅ ⁊myngaþ þiꞅ halige god ſpel be þysse arwyrðan + aworuld abutan ende ınsca scorum am̄;in sæcula sæculorum, amen. + + + + 94v - 101r + Homily XVIII + DE SCO MARTINO CONF. M̄ magon we nu hwylcum hwego wordum asecgan + leofaþ ⁊rixaþ á ıneallra woruld aworld abutan ende ameN; + + + + 101v - 103v + Soul and Body I + Huru, ðæs behofað hæleða æghwylc + geþungen þrymlice þysses + + + + 104r - 104v + Homiletic Fragment I + sorh cymeð / manig ond mislic in manna dream. + eorðan lifes ende gewyrcan! + + + + 104v - 106r + The Dream of the Rood + Hwæt! Ic swefna cyst secgan wylle + ælmihtig god, þær his eðel wæs + + + + 106v - 109v + Homily XIX + MENða leofestan uꞅ gedafenaþ æreꞅt + ꞅuna . ⁊mid þam haligan gaſte . ábutan ende amen :, + + + + 109v - 112r + Homily XX + MMEMENNÐA leofestan þiſ ꞅyndon halige dagaꞅ ⁊hal + efen ecan haligan gafre abutan ende :, + + + + 112r - 116v + Homily XXI + MENĐALEOfestan usys mycel þearf þæt we god lufien of eallre + haligan gaſte onwuldre ⁊onwyrð mynde áábutan ende onecneꞅꞅe; + + + + 116v - 120v + Homily XXII + hER ſægð hu sc̄s isodorus spræc be ðære sawle gedale ⁊be + her on worulde ⁊on þære toweardan. seðe leofað ⁊ricsað aabutan ende in ecnesse + + + + 121r - 133v + Elene + þa wæs agangen geara hwyrftum + wuldorcyninges to widan feore. Amen. + + + + 133v - 135v + Homily XXIII + Wæꞅ þær inþam ſprecenan iglande sum mycel hlæw of eorþan ge + fona riceꞅ wuldre abutan ende onecneꞅꞅe amen fiat:, + + + + + + + + +

    Parchment + codex with leather binding.

    +
    + 135+1 leaves + 31 + 20 + + + + +

    The Vercelli Book consists of 19 quires, marked with Roman numerals at the beginning of each quire, + and with letters at the end. Originally the quires were based on eight leaves of parchment, but many + leafs are missing and a few single leaves have been added sporadically. + 1(10,-7), + 2(12,-4,-8,-11), 3(8,-6,-8), 4(10,-3,-7), 5(10,-4,-8), 6(8,-3), 7(10,-4,-8), 8(12,-4,-8), + 9(10,-4,-8), 10(10,-5,-9), 11(10,-4,-6,-8,-10), 12(6), 13(10,-3,-7,-9), 14(8,-3,-7), 15(8,-6), + 16(10,-1,-4,-8), 17(4,-3,-4), 18(8), 19(8,-8) + + None Quires begin on fols. 1(1), [...]

    +
    +
    + + +

    Text is written in a single column per parchment leaf.

    +
    +
    + +
    + + +

    In the opinion of many scholars, the manuscript was written by a single scribe, who has been + particularly diligent and meticulous in using the writing of that period, the Anglo-Saxon square + minuscule.

    +
    + +

    The Vercelli Book is very simple in appearance, in fact only three initials are decorated (H on f. 49r, + M on ff. 106v and 112r) with new texts usually beginning with a larger, undecorated initial.

    +
    + +
    + + + The manuscript was written in England, presumably in the South-Eastern area, and seems to have never + have left the country until the end of the eleventh century, since some notes in Old English were written into + the margins and can be dated back to that time. + It is still unclear how and when it came to Italy, a Latin verse of Psalm XXVI in neumatic + notation written in Italian handwriting can be dated to the early XII century and is then a reasonable + post-quem term. + + +
    +
    + +
    + + + +

    + + + +

    + + +

    + + +

    + + +

    Physical line breaks are rigidly observed.

    + + + + + + + + + LATIN SMALL LETTER DOTLESS I + U+0131 + ı + i + + + + LATIN CAPITAL LETTER A WITH MACRON + U+0100 + Ā + A + + + + LATIN ENLARGED LETTER SMALL A + U+EEE0 + + a + + + LATIN ENLARGED LETTER SMALL E + U+EEE6 + + e + + + LATIN ENLARGED LETTER SMALL DOTLESS I + U+EEFD + + i + + + + LATIN SMALL LETTER A WITH ACUTE + U+00E1 + á + a + + + LATIN SMALL LETTER O WITH ACUTE + U+00F3 + ó + o + + + + LATIN SMALL LETTER A WITH MACRON + U+0101 + ā + a + + + LATIN SMALL LETTER E WITH MACRON + U+0113 + ē + e + + + LATIN SMALL LETTER I WITH MACRON + U+012B + ī + i + + + LATIN SMALL LETTER O WITH MACRON + U+014D + ō + o + + + LATIN SMALL LETTER U WITH MACRON + U+016B + ū + u + + + LATIN SMALL LETTER Y WITH MACRON + U+0233 + ȳ + y + + + + LATIN SMALL LETTER Y WITH DOT ABOVE + U+1E8F + + y + + + + LATIN SMALL LETTER E WITH DOT BELOW + U+1EB9 + + e + + + + + + + LATIN SMALL LETTER Y WITH RIGHT MAIN STROKE + U+F233 + + y + + + + + + LATIN SMALL LETTER INSULAR G WITH MACRON + + + g + + + + LATIN SMALL LETTER INSULAR G WITH MACRON + + + G + + + + LATIN SMALL LETTER H WITH RIGHT DESCENDER + U+F23A + + h + + + + LATIN CAPITAL LETTER UNCIAL H + U+F110 + + H + + + + LATIN SMALL LETTER INSULAR S + U+A785 + + s + + + + LATIN SMALL LETTER LONG S + U+017F + ſ + s + + + + + + LATIN ABBREVIATION SIGN SMALL ET + U+204A + + + + + + + COLON WITH MIDDLE COMMA POSITURA + U+F1E5 + + + + + + MIDDLE DOT + U+00B7 + · + + + + + + +
    + + + + Latin + + + + + Moved from entity-based markup to use of the Gaiji module elements; replaced ms + and ss entities with choice-based element groups; cleaned up punctuation markup + Added element facsimile and all necessary stuff to do image-text + linking + First cross-revision + Conversion to the TEI P5 DTD + Experimental transcription using the Digital Scriptorium DTD + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Dream of the Rood + + +
    +

    The Dream of the Rood, dating back to the first half of the 8th Century in its earliest + version, is one of the first Christian poems in the corpus of Old English literature and one of the main + examples of the genre of dream poetry in English. Due to its artistic qualities and overall relevance for + Anglo-Saxon studies it is considered one of the most important achievements of Old English poetry; it is also + one of the very few texts in this tradition that has been preserved in more than one witness. The complete + poem can be found in the late 10th Century Vercelli Book codex, but a fragment was carved in runes on the 8th + Century Ruthwell Stone Cross (Dumfriesshire, Scotland), and a small excerpt can be found also on the Brussels + Cross (St. Michael and St. Gudula Cathedral, Brussels, Belgium), an Anglo-Saxon cross-reliquary of the early + 11th century.

    + +

    In the Vercelli Book the poem starts with the with the narrator having a dream: in this dream a wonderful + object, which is later to be identified with the Holy Cross, stands in the air and tells the story of the + crucifixion of Christ to the narrator.

    +
    + +
    + + + + + + Swanton, M.J. + Ambiguity and anticipation in <title>The Dream of the Rood + + + Neuphilologische Mitteilungen + + 70.3 + 1969 + 407-425 + + + Studio sulla natura e sulla complessità linguistica del Sogno della Croce. + DOTR + + + + + Tale, George S. + Chiasmus as metaphor: the <title>figura crucis tradition and The Dream of the Rood + + + Neuphilologische Mitteilungen + + 79.2 + 1978 + 114-125 + + + DOTR + + + + + Wolf, Carol J. + Christ as hero in <title>The Dream of the Rood + + + Neuphilologische Mitteilungen + + 71.2 + 1970 + 203-210 + + + DOTR + + + + + Woolf, Rosemary + Doctrinal Influences on <title>The Dream of the Rood + + + Medium Ævum + + 27.3 + 1958 + 137-153 + + + DOTR + + + + + Bammesberger, Alfred + A Doubtful Reconstruction of the Old English Ruthwell Crucifixion Poem + + + Studia Neophilologica + + 74 + 2002 + 143-45 + + + Response to David Howlett. + DOTR + + + + + Gvozdetskaya, N. Yu + Semantika drevneangliyskoy poeticheskoy formuly (na materiale Beovul'fa i Videniya kresta) (The Semantics of the Old English + Poetic Formula, Based on Beowulf and The Dream of the Rood) + + + Lingvistika na rubezhe epoh. Idei i toposy. Sbornik statey: ( = Linguistics at the Turn of the Millennium: Ideas and Topoi: Essay + Collection) + + + Moscow + n.p. + 2001 + + 245-62 + + DOTR + + + + + Conti, Aidan + An Anonymous Homily for Palm Sunday, The Dream of the Rood, and the Progress of Ælfric's Reform + + + Notes and Queries n.s. + + 48 + 2001 + 377-80 + + + DOTR + + + + + Wheelock, Jeremy I. + The Word Made Flesh: 'engel dryhtnes' in <title>The Dream of the Rood + + + English Language Notes + + 37.3 + 2000 + 1-11 + + + DOTR + + + + + Sorrell, Paul + Word Alchemy: a Window on Anglo-Saxon Culture + + + Parabola + + 25.2 + 2000 + 62-68 + + + + + + + + Roberts, Jane + Some Relationships between <title>The Dream of the Rood and the Cross at Ruthwell + + + Stud. in Med. Eng. Lang. and Lit. (Tokyo) + + 15 + 2000 + 1-25 + + + DOTR + RC + + + + + Ó Carragáin, Éamonn + The Annunciation of the Lord and His Passion: a Liturgical Topos from St Peter's on the Vatican in <title>The Dream of the + Rood, Thomas Cranmer and John Donne + + + Essays on Anglo-Saxon and Related Themes in Memory of Lynne Grundy + Jane Roberts and Janet Nelson + + London + Centre for Late Antique and Medieval Studies, King's College, University of London + 2000 + + 339-81 + + King's College London Medieval Studies 17 + DOTR + + + + + Crawford, Robert + The Vision of the Cross + + + Stand n.s. + + 2.2 + 2000 + 143-46 + + + Traduzione. + DOTR + + + + + + Britt Mize. “The Mental Container and the Cross of Christ: Revelation and Community in The Dream of the Rood.” Studies in Philology 107.2 (2010): 131–178. Project MUSE. Web. + Galloway, Andrew. “Dream-Theory in The Dream of the Rood and The Wanderer.” The Review of English Studies 45.180 (1994): 475–485. Print. New Series. + Heckman, Christina M. “Imitatio in Early Medieval Spirituality: The Dream of the Rood, Anselm, and Militant Christology.” Essays in Medieval Studies 22.1 (2005): 141–153. Project MUSE. Web. + Irvine, Susan. “Adam or Christ? A Pronominal Pun in The Dream of the Rood.” The Review of English Studies 48.192 (1997): 433–447. Print. New Series. + LUISELLI FADDA, Anna Maria. “La Croce Nella Tradizione Poetica Anglosassone (sec. VIII-IX).” Romanobarbarica: Contributi allo studio dei rapporti culturali tra mondo latino e mondo barbarico 17 (2003): 333–359. Print. + Thieme, Adelheid L. J. “Gift Giving as a Vital Element of Salvation in ‘The Dream of the Rood.’” South Atlantic Review 63.2 (1998): 108–123. JSTOR. Web. + + + + + + The Mental Container and the Cross of Christ: Revelation and Community in The Dream of + the Rood + Britt Mize + + + Studies in Philology + 1543-0383 + 10.1353/sip.0.0050 + + 107 + 2 + 131-178 + 2010 + 2011-05-21 19:28:20 + http://muse.jhu.edu/journals/studies_in_philology/v107/107.2.mize.html + + + + + + Imitatio in Early Medieval Spirituality: The Dream of the Rood, Anselm, and Militant + Christology + Christina M.Heckman + + + Essays in Medieval Studies + 1538-4608 + 10.1353/ems.2006.0006 + + 22 + 1 + 141-153 + 2005 + 2011-05-21 19:36:24 + http://muse.jhu.edu/journals/essays_in_medieval_studies/v022/22.1heckman.html + + + + + + La Croce nella tradizione poetica anglosassone (sec. VIII-IX) + Anna MariaLUISELLI FADDA + + + Romanobarbarica: Contributi allo studio dei rapporti culturali tra mondo latino e mondo + barbarico + 0391-285X + + 17 + 333-359 + 2003 + + + + + + Gift Giving as a Vital Element of Salvation in "The Dream of the Rood" + Adelheid L. J.Thieme + + + South Atlantic Review + 0277335X + 10.2307/3201041 + + 63 + 2 + 108-123 + 1998 + 2011-03-23 13:42:10 + http://www.jstor.org/stable/3201041 + + + + + + Adam or Christ? A Pronominal Pun in The Dream of the Rood + SusanIrvine + + + The Review of English Studies + 00346551 + + 48 + 192 + 433-447 + 1997 + 2011-03-23 13:42:09 + http://www.jstor.org/stable/518491 + + + New Series + + + + Dream-Theory in The Dream of the Rood and The Wanderer + AndrewGalloway + + + The Review of English Studies + 00346551 + + 45 + 180 + 475-485 + 1994 + 2011-03-23 13:42:07 + http://www.jstor.org/stable/517806 + + + New Series + + + +
    + +
    + + + +
    + + + + + + + HOMILIARUM LIBER IGNOTI IDIOMATIS + SÆCULO X + CXVII + + + + + + + + + Roberto Rosselli Del Turco + First edition (2017) + + + + + Transcription and encoding by R. Rosselli Del Turco, R. Cioffi, F. Goria + Update to P5 TEI schemas by R. Rosselli Del Turco + + + + Powered by EVT - Edition Visualization Technology + EVT created by C. Di Pietro, J. Kenny, R. Masotti, R. Rosselli Del turco EVT home page: http://evt.labcd.unipi.it/ + + +
    + +
    + + + + + + Wæt ic wefna ct secgan wylle + + hæt + hwæt + + + mege mætte + me gemætte + + to midre nihte + syðþan + reord brnd + reordberend + reste wunedon. + þuhte me þæt ic + ge awe + gesawe + + yllicre treow + + onlyft + on lyft + lædan leohte + be wunden + bewunden + + beama beorhtot eall + þætbeacen wæ + + be goten + begoten + mid golde gimma + todon + fægereæt foldan ceatum + . + wylce þær fife wæron + uppe + onþam + on þam + + + eaxle ge panne + eaxlegespanne + + + be heoldon + beheoldon + þær engel + drhtne + ealle + fægere þurh + forð ge sceaft + forðgesceaft + + + newæ + ne wæs + + + ðærhuru + ðær huru + fracode gealga + . + + chine + ac hine + þær beheoldon halige gata + men ofer moldan + eall + and eall + þeo mære + ge ceaft + gesceaft + + + Syllic wæ + e + ige beam + sigebeam + + + c + and ic + + + ynn + synnum + fh + + for wunded + forwunded + mid + womm + wommum + + + ge seah + geseah + ic wuldre treow. + wædum geweorðode + wynn + wynnum + scinan + + ge gyred + gegyred + mid golde gimma hæfdon + + be wrigene + bewrigene + weorðlice + wealdes + wealdendes + treow + hwæðre icþurh þæt + gold ongytan meahte + earmra ærgewinþæt hit ærest ongan + wætan on þa wiðran healfe + eallic + eall ic + mid + urgum + sorgum + gedrefed + . + Forht + icwæ + ic wæs + forþære fægran + ge yhðe + gesyhðe + + + ge eah + geseah + ic þæt fue beacen. + + + + + + + + + + XV + 105. + + + + wendan wædum + bleom + and bleom + hwilum hit wæ mid wætan + be temed + bestemed + . + bewyledmid + wate gange + . + wilum mid ince gegyrwed + . + wæðre + icþær + ic þær + licgende lange hwile. + beheold + hreow cearig + hreowcearig + + . hælende treow. + oððæt + icgehyrde + ic gehyrde + þæt hit hleoðrode + ongan þa word precanwudu + elesta + þæt wæs geara iu + . + + cþæt + ic þæt + gyta + ge man + geman + + . + þæt ic + wæheawen holte + + onende + on ende + + atyred of tefne + min + minum + + .genaman + meðær + me ðær + + trange feonda + + ge worhton + geworhton + him þær to + wæfer yne + wæfersyne + heton me heora werga hebban + . + bæron + meðær + me ðær + beornaon eaxlum oððæt hie + me + onbeorg + on beorg + aetton + + gefæt nodon + gefæstnodon + meþær feonda genoge + . + + ge eah + geseah + ic þa frean + man cynnes + mancynnes + + eftanelne mycle + . + + þæt he me wolde + onge tigan + on gestigan + + . + þær + icþa + ic þa + + + nedorte + ne dorste + ofer + drhtne word + bugan oððe bertan .þa + icbifian + ic bifian + geeah + eorðan + ceata ealle ic mihte + feonda gefyllan hwæðre + icfæste + ic fæste + + tod. + Ongyrede hine þa geong hæleð þæt wæ + godælmihtig + trang + tið mod + and stiðmod + + . + + + ge tah + gestah + he + ongealgan + on gealgan + heanne + modig + onmanigra + on manigra + + + ge yhðe + gesyhðe + . þa he wolde + man cyn + mancyn + lyan + . + ifode + icþa + ic þa + me e beorn + mb clpte + ymbclypte + + . ne dorte ic + hwæðrebugan to eorðan + feallan + tofoldan + to foldan + + + ceat + sceatum + + . + c + icceolde + ic sceolde + fæstetandan. + Rod wæ + + icaræred + ic aræred + + . + hof ic ricne cyning + heofonahlaford. hyldan me ne dorte + . + + þurh drifan + þurhdrifan + + + hime + hi me + middeorcan + nægl + næglum + + . on me yndon þa dolg + geiene + gesiene + + opene + nwidhlemma + . + + ne dorte ic hira + nænig + nænigum + + ceððan + bymeredon hieunc butu + ætgædre eall ic wæ mid blode bestemed + .begoten + ofþæ guman idan + . + + iððan he hæfde hi gat + onended. + fealaic + onþam + on þam + beorge gebiden hæbbe + wraðra wyrda + . + + ge eah + geseah + ic werudagod + þearle þenian þytro hæfdon + + be wrigen + bewrigen + mid wolcnumwealdende + hræw. + cirne ciman ceadu + forð eode + forðeode + + . + wannunder wolcnum weop + ealge ceaft + eal gesceaft + + cwiðdon cyninge + fyllcrit + + onrode + on rode + + hwæðere þær fue feorran cwoman + toþam æðelinge + icþæt + ic þæt + eall + be heold + beheold + . + Sare ic wæ mid sorgum + gdrefedhnag ic hwæðre þam + ecg + secgum + to handa + + eað mod + eaðmod + elne mcle + ge namon + genamon + + hie þær ælmihtigne + god + God + + hofon hine of ðam + + + + + + hefian wite forleton + me þa + hilde rinca + hilderincas + + tandan teame + be drifnne + bedrifenne + eall ic wæ mid trælum + for wundod + forwundod + + ledon + hieðær + lim werigne + limwerigne + + + ge stodon + gestodon + him æt hi lice + + heafd + heafdum + + + be heoldon + beheoldon + hieðær heofene + drhten + he + and he + hine ðær hwile reste + meðe æfterðam + miclan gewinne , Ongunnon him þa mold + æ + e + rn wyrcan + beorna on banan + geyhðe curfon hie ðæt + ofbeorhtan + of beorhtan + + tane + geetton hie ðær on sigora + wealdend ongunnon him þa + orhleoð galan + earme + onþa + on þa + + + æfen tide + æfentide + þa hie woldon eft iðian + meðe fram þam mæran þeodne reste he ðær mæte + weorode + hwæðere + weðær + we ðær + + + reotende + greotende + gode hwile + . + todon on taðole + yððanstefn + + upge wat + up ge wat + + hilderinca + . hræw colode + fæger + feorg bold + feorgbold + þa uman fyllan ongan + . + ealle to eorðan þæt wæ eglic wyrd + + be dealf + bedealf + u man + ondeopan + on deopan + + eaþe hwæðre me þær + drhtneþegna + freonda gefrunon + ond gyredon me golde + eolfre + and seolfre + + , + . + + + Nuðu + Nu ðu + miht + ge hyran + gehyran + hæleð min e leofa + þæt ic bealuwaraweorc + ge biden + gebiden + hæbbe + sarra orga i nu æl cumn + þæt meweorðiað wide + ide + and side + + menn ofer moldan + eall + and eall + þeo mæregeceaft + . + + ge biddaþ + gebiddaþ + him + toþy + toþyssum + beacne on me + bearngode + bearn godes + + þrowode hwile forþan ic + þrm fæst + þrymfæst + nu. + hlifige under + heofen + heofenum + . + + ic + and ic + hælan mæg + . + + æg hwlcne + æghwylcne + anra þara þe + himbið + him bið + ega + tome + to me + + iu + icwæ + icwæs + geworden wita heardot + . + leodum laðot ærþan + ichim + ic him + lif weg + rihtne germde + reord + berend + reordberendum + + hwæt me + þageweorðode + þa geweorðode + wuldre ealdor + + oferholmwudu + ofer holmwudu + + + heofon rice + heofon rices + weard, + wylce + wahe + swa he + hi modor eacmarian + ylfe + ælmihtig + god + God + . for ealle menn + geweorðodeofer eall wifa cynn. + Nu + icþe + ic þe + hate hæleð + . + + min + seleofa + se leofa + . + þæt ðu þa + + ge yhðe + gesyhðe + + ecge + mann + mannum + + onwreoh + word + wordum + þæt hit + iwuldre beam + + eðe + se ðe + ælmihtig + god + God + + + onþrowode + on þrowode + . + + + formancynn + for mancynnes + + + maneg + manegum + + + ynn + synnum + . + + + and + + + adome + Adames + + + ealdge wyrht + ealdgewyrhtum + + deað heþær byrigde hwæðere eft + drhtn ara + mid hi miclanmihte + mann + mannum + + + tohelpe + to helpe + + + heða + he ða + on heofena atag . + hidereft fundaþ + + onþyne + on þy + + + middan geard + middangeard + + + man cynn + mancynn + + ecan + on + + + + + + + 106. + + + + dom dæge + domdæge + drhten lfa + ælmihtig + god + God + + + hi + and his + engla mid + . + þæt heþonne wile deman e ah + dome geweald + anra + ge hwylc + gehwylcum + + wa hehim ærur her + + onþyum + on þyssum + lænum life + ge earnaþ + geearnaþ + + . + ne mæg þærænig unforht wean + . + + forþam + for þam + worde + . þe e wealdend cwyð. + frineð he + forþære + for þære + mænige hwær e man ie + + eðe + se ðe + for + dr + htne + dryhtnes + naman deaðe + + wo,lde + wolde + + bitere onbyrigan wa he ær + onðam beame dyde + . + c hie þonne forhtiað + . + + fea þencaþ + hwæt + hieto + hie to + + crite + Criste + cweðan onginnen + . + + Neþearf + Ne þearf + ðær þonne ænig + unforhtwean + þe him ær + inbreot + in breostum + bereð beacna elest + . + + Acðurh + Ac ðurh + ða rode ceal rice + geecan + of + eorð wege + eorðwege + + + æg hwylc + æghwylc + sawl + eo þemid wealdende wunian + þnceð + + ge bæd + gebæd + ic me þa + toþan + to þan + beamebliðe + + + mode + elne mycle + þæric + þær ic + ana wæ + mæte wrede wæ + mod efa + modsefa + + afyed + onforð wege + on forðwege + feala ealra + ge bad + gebad + + langunghwila i me + nu life hyht + + þæt,icþone + þæt ic þone + + + ige beam + sigebeam + + ecan mote + ana oftor þonne ealle men + well weorþian me i willa + toðam + to ðam + + mycel + onmode + on mode + + + min + and min + + + mundbyrd + mund byrd + i + geriht + toþære + to þære + rode .Nah ic ricra + feala + freonda + onfoldan + on foldan + on + + chie + ac hie + forð heonon + gewiton of worulde dreamum + ohton him wuldre cyning + lifiaþ nu + onheofen + on heofenum + mid + heah fædere + heahfædere + + wuniaþ + onwuldre + on wuldre + + + icwne + and ic wene + me + daga + ge hwylce + gehwylce + hwænne me drhtnes rd + þe + icher + ic her + + + oneorðan + on eorðan + ær ceawode + + onþyon + + on þysson + lænan life + ge fetige + gefetige + + + me + and me + + + þn + þonne + gebrinþær + i bli mcel + dream on + heofon + heofonum + þær i drhtne folc + geeted to + mle þær i + ingal bli + + he + ond me + + + þn + þonne + aette þær + icyþþan mot + wunian + onwuldre + on wuldre + well + midþam + mid þam + + + halg + halgum + + dreamebrucan + ime + si me + drhten frond + + eðe + se ðe + her on eorþan + ærþrowode + ær þrowode + + + onþ + onþam + + + gealg treowe + gealgtreowe + + + forguman + for guman + + + ynn + synnum + + he u onlyde + u + and us + lif + for geaf + forgeaf + + heofonlicne ham hiht wæ + + ge niwad + geniwad + + mid + bled + bledum + + + midblie + and mid blisse + þ þe þær bryne þolodan. + + eunu + se Sunu + + + igor fæst + sigorfæst + on þ + fate + mihtig + pedig + and spedig + + . + + þa he mid manigeo com + gata weorodeo + ongode + on godes + rice + anwealda ælmihtig + engl + englum + + + toblie + to blisse + . + + eall + and eallum + ðam + halg + halgum + + + þamþe + þam þe + + + onheofon + on heofonum + ær + wunedon + onwuldre + on wuldre + þa heorawealdnd cwom + ælmihtig + god + God + þær hi eðel wæ + + +
    + + + +
    +
    +

    The scribe here wrote a word, 'þrowode', that he later corrected in 'wolde' by erasing the first three + letters and adding an 'l'. In this image you can see the contours of the erased letters.

    +
    + +
    +
    +
    +
    +
    + +
    diff --git a/src/assets/data/edition.xml b/src/assets/data/pelavicino.xml similarity index 98% rename from src/assets/data/edition.xml rename to src/assets/data/pelavicino.xml index f5674c4c6..38334a03a 100644 --- a/src/assets/data/edition.xml +++ b/src/assets/data/pelavicino.xml @@ -1,6 +1,8 @@ + - + + @@ -340,93 +342,9 @@ - From Codice PelavicinoFrom Codice Pelavicino - - - - Edward - George - Bulwer-Lytton, - Baron Lytton of - Knebworth - - - M - syndicus et procurator communium et universitatum de Marola et de - Matrono - - - - 11850004X - Abaelardus, Petrus - Abälard, Peter - Abaelard, Pierre - - - Le Pallet bei Nantes - - - - Saint-Marcel bei Chalon-sur-Saône - - m - Theologe - Philosoph - Abt von St. Gildas. - - - 14003563X - Abbiate, Luigi - Abbiate, Louis - m - Cellist - Komponist - - - Monaco - - - - Monaco - - Monaco - Paris - St. Petersburg - 1896: Paris, 3rue de la Néva; - 1911–20: Konservatoriumslehrer in St. Petersburg; - 1901: Celloschule in drei Abteilungen (Verlag Enoch & Cie, Paris, Anzeige: SmW 59 (1901), S. 64 (16.1.)). - - - - 118917382 - Agricola, Johann Friedrich - Olibrius, Flavius Anicius - Olibrius, Flavius Anicius - - - - - Dobitschen bei Altenburg - - - - - - - Berlin - - - m - Komponist - Publizist - Musiker - Leipzig - Berlin - - - - People From CP + Lista Persone + Abraçalene @@ -1643,7 +1561,7 @@ Papa Alessandro IV, eletto il 21 maggio 1254 e consacrato il 20 dicembre successivo. Muore a Viterbo il 25 maggio 1261 come da scheda di Raul Manselli nel Dizionario Biografico degli italiani, vol. 2 (1960.) @@ -1689,7 +1607,7 @@ M episcopus Bergamensis Ambrogio II, vescovo di Bergamo attestato dal 1023 e morto nel 1058 (SCHWARTZ 1913, p. 101). + target="#SCHWARTZ_1913" type="biblio">SCHWARTZ 1913, p. 101). @@ -1895,7 +1813,7 @@ M Anselmo vescovo di Como attestato per la prima volta nel 1170 e morto il 1° di aprile del 1193 o del 1194 come da scheda nel Dizionario Biografico degli italiani, vol. 3 (1961). @@ -3662,7 +3580,7 @@ marchio Istrie Bertoldo IV d'Andechs, conte di Andechs, primo duca di Merania e marchese d'Istria (dal 1175). Muore nel 1204. Si veda scheda di Heinrich Appelt su Neue Deutsche + target="https://www.deutsche-biographie.de/gnd138735506.html">Neue Deutsche Biographie , Band 2 (1955). @@ -7851,7 +7769,7 @@ episcopus, servus servorum Dei Papa Eugenio III, eletto il 15 febbraio 1145, muore a Tivoli l'8 luglio 1153 come da scheda di Harald Zimmermann nel Dizionario Biografico degli italiani, vol. 43 (1993) @@ -7993,7 +7911,7 @@ Federico VI di Hohenstaufen, figlio di Federico Barbarossa, duca di Svevia dal 1170 fino alla morte intervenuta nel 1191 durante l'assedio di S. Giovanni d'Acri come da scheda di Hansmartin Schwarzmaier in Neue Deutsche Biographie, Band 5 (1961) @@ -8003,7 +7921,7 @@ M imperator Federico I imperatore, incoronato il 18 giugno 1155, morto il 10 giugno 1190 - come da CAPPELLI 1988, pp. 257-260. + come da CAPPELLI 1988, pp. 257-260. @@ -8013,7 +7931,7 @@ imperator Federico II imperatore, incoronato il 22 novembre 1220, morto il 13 dicembre 1250 come da scheda di Norbert Kamp nel Dizionario Biografico degli italiani, vol. 45 (1995) @@ -9894,7 +9812,7 @@ storiche universali. Nacque probabilmente a Viterbo intorno al 1125 e morì nell'ultimo decennio del XII secolo come da scheda di Gian Maria Varanini nel Dizionario Biografico degli italiani, vol. 57 (2001). @@ -10457,7 +10375,7 @@ archiepiscopus Mediolanesis Guido da Velate, arcivescovo di Milano dal 1045 al 1068, morto nel 1071 (si veda Guido da Velate nel Dizionario Biografico degli Italiani). @@ -11278,7 +11196,7 @@ Guglielmo da Capriano, nato intorno all 1130-1135, fu secondo vescovo di Asti con questo nome dal 1173 al 1191 e in seguito arcivescovo di Ravenna, come da scheda di Giuseppe Mazzanti nel Dizionario Biografico degli italiani, vol. 60 (2003) @@ -11760,7 +11678,7 @@ M dominus de Carrara - Si veda RICCI 2012, pp. + Si veda RICCI 2012, pp. 42-45 @@ -12059,7 +11977,7 @@ secundus Romanorum imperator augustus; (MGH DD HIII, pp. XXII-XXXI). Muore nel 1056 (si veda Enrico III su l’Enciclopedia Treccani ). @@ -12121,7 +12039,7 @@ M comes Forse da identificare con Enrico II conte di Diez (Rheinland-Pfalz) nato - intorno al 1142 e morto nel 1189. Si veda SCHIEFFER 2001 @@ -12634,7 +12552,7 @@ Papa Innocenzo IV, al secolo Sinibaldo Fieschi, eletto il 25 giugno 1243; muore a Napoli il 7 dicembre 1254 come da scheda di Agostino Paravicini Bagliani nel Dizionario Biografico degli italiani, vol. 62 (2004) @@ -12727,7 +12645,7 @@ famiglia dei conti di Segni. Alessandro III lo elevò al titolo presbiteriale di S. Marco alla fine del 1167 o agli inizi del 1168. Attestato l'ultima volta il 22 marzo 1196 come da scheda di Gabriele Archetti nel Dizionario Biografico degli italiani, vol. 55 (2001). @@ -14966,7 +14884,7 @@ comite Lavanie Niccolò Fieschi, appartenente al ramo ligure dei conti di Lavagna, è attestato dal 1247 al 1307 (si veda Niccolò Fieschi nel Dizionario Biografico degli Italiani). @@ -17566,7 +17484,7 @@ M camemarius Da indentificarsi probabilmente con Rodolfo di Castelmur, sul quale CASTELMUR_1978 + target="#CASTELMUR_1978" type="biblio"> CASTELMUR_1978 @@ -19556,7 +19474,7 @@ M dominus de Carrara - Si veda RICCI 2012, pp. + Si veda RICCI 2012, pp. 42-45 @@ -21341,106 +21259,7 @@ - TEST from TEI example - - - Rochester, - New York - - - - - Laos, - Southeast Asia - - - - - 6ème - Paris, - France - - - - - - La roche qui pleure - - - Ile aux cerfs - - - - - - Mascarene Islands - Mascarenhas Archipelago - - Mauritius - - - La roche qui pleure - - - Île aux cerfs - - - - - Rodrigues - - - Réunion - - - - - Herefordshire - - - Abbey Dore - - 51.969604 -2.893146 - - - - Acton Beauchamp - - - - - - Hereford - - - Leominster - - - - - - - - - Mascarene islands - Mascarenhas Archipelago - - - Mauritius - - - - Rodrigues - - - Réunion - - - - - - - From CP + Lista dei luoghi Aciliano Si propone in via ipotetica l'identificazione con l’attuale località @@ -21662,6 +21481,7 @@ Beduçano + Bergamo Bergamo @@ -21713,7 +21533,7 @@ Biduçano/Biduzzano Carrara - Nei pressi di Carrara come da documento in Nei pressi di Carrara come da documento in ASLU_DA, 1393 agosto 27. @@ -22963,9 +22783,9 @@ Monte Forca - Il Monte Forca, già citato dal REPETTI + Il Monte Forca, già citato dal REPETTI 1846, I p. 486, va identificato con l'attuale Monte Pizzacuto secondo il - CONTI 1976. + CONTI 1976. Monte Ianni/Monteçanne @@ -23239,8 +23059,8 @@ Fosdinovo L'identificazione tra Pegazana e Paghezzana è stata suggerita da Giorgio Saporiti (che ringraziamo), sulla base della seguente bibliografia: FORMENTINI 1953, p. 7; PISTARINO 1961, p. 112. + target="#FORMENTINI_1953" type="biblio">FORMENTINI 1953, p. 7; PISTARINO 1961, p. 112. Pera @@ -24059,7 +23879,6 @@ Çugnaco - @@ -24071,7 +23890,7 @@ Chiesa di cui non si conosce titolazione né collocazione. A Caprognano (comune di Fosdinovo, provincia di Massa Carrara) è attestato un oratorio dedicato a S. Lucia, ma edificato nel XVII secolo. Bibliografia: FRANCHI LALLAI 2000, II, p. + target="#FRANCHI_LALLAI_2000" type="biblio">FRANCHI LALLAI 2000, II, p. 65. @@ -24082,10 +23901,10 @@ S. Andrea Apostolo di Carrara Chiesa plebana di Carrara attestata per la prima volta nel maggio 1099 (ASLU SF). Bibliografia: FRANCHI LALLAI 2000, I, pp. - 177-185; BUSELLI 1972; BERTOZZI 1989. + target="#ASLU_SF" type="biblio">ASLU SF). Bibliografia: FRANCHI LALLAI 2000, I, pp. + 177-185; BUSELLI 1972; BERTOZZI 1989. S. Andrea diFabiano @@ -24094,24 +23913,24 @@ S. Andrea di Sarzana Chiesa attestata con certezza la prima volta il 3 giugno 1137 (ASLU SF), poi elencata come pieve nella + target="#ASLU_SF" type="biblio">ASLU SF), poi elencata come pieve nella bolla di Egugenio III del 1148 e nelle bolle successive. Gli studiosi non sono concordi nello stabilire quando la chiesa avrebbe assunto il ruolo di pieve ripsetto alla vicina pieve di S. Maria di - Sarzana. Bibliografia: FRANCHI - LALLAI 2000, I, pp. 187-194; FORMENTINI 1951; CONTI 1963; PISTARINO - 1961a, p.25; BONATTI + Sarzana. Bibliografia: FRANCHI + LALLAI 2000, I, pp. 187-194; FORMENTINI 1951; CONTI 1963; PISTARINO + 1961a, p.25; BONATTI RATTI 1991, p. 14. S. Bartolomeo di Ceserano Chiesa attestata per la prima volta nelle Decime Bonifaciane del 1296/97 - (PISTARINO 1961a , p. 81) + (PISTARINO 1961a , p. 81) come cappella de Cisirano sotto la pieve di Soliera; non è chiaro quando sia attestata per la prima volta la titolatura (FRANCHI LALLAI 2000, II, p. + target="#FRANCHI_LALLAI_2000" type="biblio">FRANCHI LALLAI 2000, II, p. 151). @@ -24122,12 +23941,12 @@ avrebbe assunto il ruolo di pieve rispetto alla vicina pieve di S. Andrea di Sarzana. Nel 1204 vi si trasferì la sede episcopale, fatto che determinò probabilmente la titolazione alla Madonna e la progressiva decadenza della - titolazione a S. Basilio. Bibliografia: FRANCHI LALLAI 2000, I, pp. 187-194; FORMENTINI 1951; CONTI 1963; PISTARINO 1961a, p.25; BONATTI RATTI 1991, p. + target="#FORMENTINI_1951" type="biblio">FORMENTINI 1951; CONTI 1963; PISTARINO 1961a, p.25; BONATTI RATTI 1991, p. 14. @@ -24136,14 +23955,14 @@ titolatura alla Madonna a cui si aggiunse quella a Caprasio probabilmente tra X e XI secolo. Nel 378 venne trasformato in commenda secolare di collazione dei Malaspina. Trasformato nel 1817 in parrocchia col titolo di prepositura. - Bibliografia: BASSI 1927; MUSSI 1946; FORMENTINI 1955; PISTARINO 1983; PISTARINO 1986; RICCIG 1986 - RICCIG 1989a; FRANCHI LALLAI 2000, + Bibliografia: BASSI 1927; MUSSI 1946; FORMENTINI 1955; PISTARINO 1983; PISTARINO 1986; RICCIG 1986 + RICCIG 1989a; FRANCHI LALLAI 2000, pp.291-294. @@ -24154,14 +23973,14 @@ metà del XIV secolo per trasferirsi nella cappella dipendente di S. Croce. Nel 1453 papa Niccolò V annesse la chiesa di S. Croce e S. Nicodemo del Corvo con tutti i suoi bene al Capitolo della cattedrale di Sarzana. Bibliografia: MAZZINI 1970; FRANCHI LALLAI 2000, + target="#MAZZINI_1909" type="biblio">MAZZINI 1970; FRANCHI LALLAI 2000, pp.192, 202. S. Croce alla Foce dell'Arno Ospedale e monastero cistercense presso Pisa, alla foce dell'Arno. - Bibliografia: COLOMBINI + Bibliografia: COLOMBINI 2010. @@ -24171,7 +23990,7 @@ che la tradizione fa risalire allo stesso San Frediano, presbitero irlandese eletto vescovo di Lucca tra il 560 e il 588. Intorno all chiesa si raccolse una comunità di canonici. Nel 1104 papa Pasquale II confermò i canonici affidandoli - al clero di San Giovanni in Laterano. Bibliografia: COTURRI 1974 @@ -24179,61 +23998,61 @@ Sorto nel luogo dove più autori collocano la stazione di età antica di Taberne frigide o Taberna frigida nella Tavola Peutingeriana si veda REPETTI 1846, I, pp. 346, 680; SFORZA - 1878; FORMENTINI 1949, pp. - 16-189). Nel 1950 alcune ricerche archeologiche hanno portato al rinvenimento, - nell’area antistante l’attuale chiesa di S. Leonardo, di tre selciati romani - sovrapposti, fondazioni murarie e frammenti di lapidi romane e medioevali - ( LEVEROTTI 1982, p. 112), l’ospedale - medievale serviva di appoggio all’unico ponte che attraversava il fiume - Frigido in pianura (LEVEROTTI 1982, p. - 111). È ricordato per la prima volta da una cronaca inglese che descrive il - ritorno dalla terza crociata di Filippo Augusto nel 1191 (per Seint - Leonard; MGH_SS_XXVII p. 131). - Nel XIV secolo è di pertinenza dell’Ordine di S. Giovanni di Gerusalemme, ma - non è certo se agli stessi cavalieri gerosolimitani si debba ascrivere anche - la sua fondazione. Per Ubaldo Formentini la risposta al quesito deve essere - positiva: lo proverebbe il fatto che le sculture del portale della chiesa - annessa all’edificio ospedaliero, oggetti attualmente conservati al - Metropolitan Museum of Art di New York, sono opera di maestro - Biduino, artista della seconda metà del XII secolo, che ha decorato con le - medesime scene scolpite a S. Leonardo (in particolare l’entrata trionfante - di Cristo a Gerusalemme) un bassorilievo della pieve di san Casciano nel Val - d’Arno pisano. Formentini suppone che le murature della chiesa possano essere - state ordinate direttamente dal priorato degli Ospitalieri di Pisa a questo - stimato artista. Si deve tuttavia notare che secondo Bertozzi le sculture del - portale, databili intorno al 1175-1180, stridono con l'impianto - architettonico della chiesa, che sembra anticipare a prima del X la sua - edificazione, mentre secondo l'archeologo Quiros Castillo queste potrebbero + >REPETTI 1846, I, pp. 346, 680; 
 SFORZA + 1878; FORMENTINI 1949, 
 pp. + 16-189).
 Nel 1950 alcune ricerche archeologiche hanno portato al rinvenimento, + nell’area 
 antistante l’attuale chiesa di S. Leonardo, di tre selciati romani + sovrapposti, 
 fondazioni murarie e frammenti di lapidi romane e medioevali + (
 LEVEROTTI 1982, p. 112), 
 l’ospedale + medievale serviva di appoggio all’unico ponte che attraversava il fiume 
 + Frigido in pianura 
(LEVEROTTI 1982, p. + 111). È ricordato per la prima volta da 
 una cronaca inglese che descrive il + ritorno dalla terza crociata di Filippo Augusto 
 nel 1191 (per Seint + Leonard; MGH_SS_XXVII p. 131). 
 + Nel XIV secolo è di pertinenza dell’Ordine di S. Giovanni di Gerusalemme,
 ma + non è certo 
 se agli stessi cavalieri gerosolimitani si debba ascrivere anche + la sua fondazione. 
 Per Ubaldo Formentini la risposta al quesito deve essere + positiva: lo proverebbe il fatto 
 che le sculture del portale della chiesa + annessa all’edificio ospedaliero, oggetti attualmente 
 conservati al + Metropolitan Museum of Art di New York, 
sono opera di maestro + 
 Biduino, artista della seconda metà del XII secolo, che ha decorato con le + medesime scene 

 scolpite a S. Leonardo (in particolare l’entrata trionfante + di Cristo a Gerusalemme) un bassorilievo 
 della pieve di san Casciano nel Val + d’Arno pisano. Formentini suppone che le murature 
 della chiesa possano essere + state ordinate direttamente dal priorato degli Ospitalieri di Pisa a 
 questo + stimato artista. 
Si deve tuttavia notare che secondo Bertozzi le sculture del + portale, 
 databili intorno al 1175-1180, stridono con l'impianto + architettonico della chiesa, 
 che sembra anticipare a prima del X la sua + edificazione, mentre secondo l'archeologo Quiros Castillo 
 queste potrebbero appartenere all'XI (AMBROSI - BERTOZZI MANFREDI 1989 , p. 42; Juan Antonio Quiros Castillo, che - ringraziamo, ha espresso la sua opinione verbalmente, in forza della sua + BERTOZZI MANFREDI 1989
 , p. 42; Juan Antonio Quiros Castillo, che + ringraziamo, ha espresso la sua opinione verbalmente, in forza 
 della sua ormai lunga esperienza di scavi medievali nell'area lucchese e lunigianese). - Entrambe le datazioni, comunque, precedono uno o due secoli gli anni di - attività di maestro Biduino: quindi si deve ritenre che la fondazione - dell'ospedale sia da anteporsi a quella della decorazione del portale. Quanto - alla committenza gerosolimitana è solo ipotetica. L'ospedale di S. Leonardo, - tuttavia, è attestato nelle decime bonifaciane, nell’estimo di Massa Lunense + Entrambe le 
 datazioni, comunque, precedono uno o due secoli gli anni di + attività di maestro Biduino: 
 quindi si deve ritenre che la fondazione + dell'ospedale sia da anteporsi a quella della decorazione 
 del portale. Quanto + alla committenza gerosolimitana è solo ipotetica. 
 L'ospedale di S. Leonardo, + tuttavia, è attestato nelle decime bonifaciane, nell’estimo di Massa Lunense 
 del 1398-1401, fino all’estimo della Chiesa di Luni del 1470-71 come ente - esente, quindi era indubbiamente gestito, fin dalla fine del XIII secolo, da - un ente diverso dal vescovato o dalla canonica di Luni. Dal punto di vista + esente, quindi era indubbiamente 
 gestito, fin dalla fine del XIII secolo, da + un ente diverso dal vescovato o dalla canonica di Luni. 
 Dal punto di vista documentario solo un testo del 1333, frammento di un catasto dei beni - dell’Ordine ospitaliero di Gerusalemme, fornisce la prima prova certa - dell’appartenenza della struttura ai gerosolimitani. Il frammento elenca + dell’Ordine ospitaliero 
 di Gerusalemme, fornisce la prima prova certa + dell’appartenenza della struttura ai gerosolimitani. 
 Il frammento elenca tutte le pertinenze dell'ospedale, beni che trovianmo ancora numerosi - nell'estimo della vicaria di Massa del 1398-1401 (LEVEROTTI 1974, III, pp. 626-635; le - proprietà del 1333 sono state esaminate da POGGI + proprietà del 1333 sono state 
 esaminate da POGGI 1957). Nel 1433 la chiesa e l’ospedale di S. Leonardo e la cappella di - S. Margherita di Montignoso ad esso pertinente, erano amministrati da frate - Ludovico degli Enrighini dell’Ordine gerosolimitano della commenda di - Pontremoli, sottoposto al priorato di Pisa. Nel corso del XV secolo la + S. Margherita 
 di Montignoso ad esso pertinente, erano amministrati da frate + Ludovico degli Enrighini dell’Ordine gerosolimitano 
 della commenda di + Pontremoli, sottoposto al priorato di Pisa. 
 Nel corso del XV secolo la giurisdizione dell’Ordine sull’ospedale e le due chiese di Massa e di - Montignoso fu contestata dai monaci olivetani di san Venerio del Tino, che - identificarono erroneamente S. Leonardo con il loro distrutto ospedale di S. + Montignoso fu contestata 
 dai monaci olivetani di san Venerio del Tino, che + identificarono erroneamente S. Leonardo con il loro distrutto ospedale di 
 S. Maria Maddalena de Cerbaria. I monaci vinsero la causa e ottennnero il - controllo della struttura e dei suoi beni fino al 1773 quando li cedettero a - Domenico Ricci di Sarzana, provvisioniere dei soldati modenesi (SALVATORI 2001). @@ -24242,33 +24061,33 @@ località detta ancora oggi Ospedale. Attestato per la prima volta nel marzo 1151 quando il vescovo di Luni donò l’ospedale in capite paludis, con la cappella di san Leonardo, ai canonici di S. Frediano - a Lucca, insieme all'ospedale di Monte Forca (ASLU SF 11 marzo 1151). Entrambi gli ospedali rimasero alle dipendenze di S. Frediano fino al 1204, dopo di cui le loro vicende si diversificarono. Nel 1204 il vescovo di Luni cedette la chiesa di S. Pietro di Avenza ai canonici di san Frediano per recuperare l’ospedale di S. Leonardo - (ASLU SF 1204 agosto 23). Anche se + (ASLU SF 1204 agosto 23). Anche se nel documento in questione l’ente è detto semplicemente ecclesia Sancti Leonardi de Padule l’ospedale doveva ancora sussistere: lo prova il documento di un solo anno anteriore in cui il vescovo di Luni affittava terre presso l’hospitale de Palude. - Bibliografia: FERRARI 1912, p. - 25; PISTARINO 1961a, p. 50; - CONTI 1976 ; FRANCHI LALLAI 2000, I, pp. + Bibliografia: FERRARI 1912, p. + 25; PISTARINO 1961a, p. 50; + CONTI 1976 ; FRANCHI LALLAI 2000, I, pp. 141-142 e 180-181. S. Lorenzo di Paghezzana - Secondo PISTARINO 1961a la + Secondo PISTARINO 1961a la cappella di Paghezzana è citata nelle collette del 1269 come capella de Pegaciana e in quelle del 1298/99 come capella de Pegaçiana. La prima attestazione pare sia de 1211 (LUPO GENTILE 1912, n. 504. + target="#LUPO_GENTILE_1912" type="biblio">LUPO GENTILE 1912, n. 504. Apparteneva al Capitolo della Cattedrale. Dovrebbe corrispondere all’odierno oratorio di Santa Burlanda, nella valle della Calcandola. Bibliografia: FORMENTINI 1953 a p.7); PISTARINO 1961a, p.146 nota 3). + target="#FORMENTINI_1953" type="biblio">FORMENTINI 1953 a p.7); PISTARINO 1961a, p.146 nota 3). Contributo di Giorgio Saporiti che ringraziamo. @@ -24276,10 +24095,10 @@ Chiesa plebana attestata per la prima volta nel 998, si trovava nel centro dell'abitato dio Soliera ma venne demolita alla metà del XX secolo e ricostruita in posizione diversa. Bibliografia: FORMENTINI 1970; MANFREDI 1989; RICCI G. 1989; FRANCHI LALLAI 2000, + target="#FORMENTINI_1970" type="biblio">FORMENTINI 1970; MANFREDI 1989; RICCI G. 1989; FRANCHI LALLAI 2000, pp.272-275. @@ -24289,8 +24108,8 @@ lasciato tracce archeologiche di età paelocristiana e bizantina; la notizia documentaria più antica risale tuttavia all'879; nel 1204 la sede episcopale si trasferì nella chiesa di S. Maria di Sarzana. Bibliografia: FRANCHI LALLAI 2000, I, pp. - 187-194; LUSUARDI SIENA + target="#FRANCHI_LALLAI_2000" type="biblio">FRANCHI LALLAI 2000, I, pp. + 187-194; LUSUARDI SIENA 2003 @@ -24299,7 +24118,7 @@ S. Maria di Pontetetto - Ospedale suburbano di Lucca. Si veda Ospedale suburbano di Lucca. Si veda REPETTI 1946, I, p. 538. @@ -24311,18 +24130,18 @@ avrebbe assunto il ruolo di pieve rispetto alla vicina pieve di S. Andrea di Sarzana. Nel 1204 vi si trasferì la sede episcopale, fatto che determinò probabilmente la titolazione alla Madonna e la progressiva decadenza della - titolazione a S. Basilio. Bibliografia: FRANCHI LALLAI 2000, I, pp. 187-194; FORMENTINI 1951; CONTI 1963; PISTARINO 1961a, p.25; BONATTI RATTI 1991, p. + target="#FORMENTINI_1951" type="biblio">FORMENTINI 1951; CONTI 1963; PISTARINO 1961a, p.25; BONATTI RATTI 1991, p. 14. S. Martino di Iliolo Cappella dipendente dal capitolo della Cattedrale, oggi S. Martino di Casano - nel comune di Ortonovo. Si veda FRANCHI LALLAI 2000, I, pp.50, 141, 144, 337, 375 e II pp. 54-56. @@ -24331,7 +24150,7 @@ cappella attestata per la prima volta nel 1255come ecclesia nova, ossia costruita o ricostruita da poco; poi nelle Decime Bonifaciane della fine del XIII secolo. Bibliografia: - FRANCHI LALLAI 2000, + FRANCHI LALLAI 2000, II, p. 67. @@ -24339,15 +24158,15 @@ La pieve di Viano, intitolata a san Martino, è attestata per la prima nel 1140 e poi nelle bolle pontificie di conferma al vescovo di Luni. sorge isolata nel comune di Fivizzano in località Pieve di Viano. Bibliografia: - FRANCHI LALLAI 2000, + FRANCHI LALLAI 2000, I, pp. 268-271. S. Maurizio Cappella e ospedale posti alla foce del Magra, prima appartenenti alL’abbazia di San Venanzio di Ceparana e poi donati nel 1189 all'ospedale - pisano di Santa Croce a Bocca d’Arno. Bibliografia: AMBROSI 1992; AMBROSI 1992; FRANCHI LALLAI 2000, pp. 48., 51, 139-140. @@ -24358,7 +24177,7 @@ S. Michele di Trebiano Pieve di Trebiano, attestata per la prima volta dalla bolla di Eugenio III - del 1148. Bibliografia: FRANCHI + del 1148. Bibliografia: FRANCHI LALLAI 2000, I, p. 201-205. @@ -24369,8 +24188,8 @@ questo ceduto a S. Frediano di Lucca insieme all’ospedale di S. Leonardo in capite paludis. Rimase alle dipendenze del monastero lucchese fino al 1204. pare attestato ancora nel 1218. Bibliografia: FRANCHI LALLAI 2000, I, p. - 180; CONTI 1976 + target="#FRANCHI_LALLAI_2000" type="biblio">FRANCHI LALLAI 2000, I, p. + 180; CONTI 1976 @@ -24381,14 +24200,14 @@ S. Paolo a Ripa d'Arno Chiesa, monastero e ospedale a Pisa. Bibliografia: STIAFFINI 1983. + target="#STIAFFINI_1983" type="biblio">STIAFFINI 1983. S. Paolo Pieve attestata per la prima volta nella bolla di Eugenio III del 1148, si trova anche oggi in posizione isolata nella località Pieve di San Paolo nel comune di Fivizzano presso il borgo di Vendaso - Bibliografia: FRANCHI LALLAI + Bibliografia: FRANCHI LALLAI 2000, I, pp. 276-279. @@ -24398,19 +24217,19 @@ S. Pietro di Luni Chiesa oggi scomparsa ubicata fuori dalle mura settentrionali di Luni, nella - località oggi detta San Pero. Bibliografia: San Pero. Bibliografia: DADA 2012, pp. 69-75 S. Pietro di Avenza cappella attestata per la prima volta nel 1187. Bibliografia: FRANCHI LALLAI 2000, II, p. + target="#FRANCHI_LALLAI_2000" type="biblio">FRANCHI LALLAI 2000, II, p. 39. S. Sebastiano alle Fabbriche Maggiori chiesa pisana, attestata dal 1074, si trovava nell'attuale piazza dei - Cavalieri. Bibliografia: GARZELLA + Cavalieri. Bibliografia: GARZELLA 1991, pp.*** @@ -24431,24 +24250,24 @@ Cappella dell'omonima località di S. Terenzo al Bardine, pieve di Viano, oggi comune di Fivizzano. La prima attestazione è incerta: un tale Transualdo nel 728 o 729 fonda una chiesa dedicata a San Terenzio in Vico - Coloniensis, che Pier Maria Conti (, che Pier Maria Conti (CONTIP 1967, p. ***) identifica con San Terenzo nella valle del Bardine; nel 981 Ottone II conferma al vescovo di Luni ecclesiam Sancti Terentii in loco qui dicitur Carrellia che Ubaldo Fomentini identifica con S. Terenzo al Bardine, ma che Romeo Pavoni ritiene - essere la cappella di Careola, presso Pontremoli (PAVONI 1987, p. 33). S. Venanzio di Ceparana Abbazia benedettina di S. Venanzio di Ceparana, i cui resti sono attualmente inglobati nel complesso architettonico del palazzo Giustiniani, edificato nel - XVIII secolo. Bibliografia: CAVALLI GHERARDI 1975-76, POLONIO 1979, BONATTI 1984, BONATTI - 1986, VECCHI 2003, BALDASSARRI ANDREAZZOLI + XVIII secolo. Bibliografia: CAVALLI GHERARDI 1975-76, POLONIO 1979, BONATTI 1984, BONATTI + 1986, VECCHI 2003, BALDASSARRI ANDREAZZOLI 2005. @@ -24458,7 +24277,7 @@ S. Vincenzo di Ameglia chiesa plebana di Ameglia, nominata per la prima volta nella bolla di - Eugenio III del 1148. Bibliografia: FRANCHI LALLAI 2000, I, pp. 201-203. @@ -26611,7 +26430,8 @@ - + + @@ -26689,11 +26509,11 @@
    - Nel margine esterno, di mano moderna: Obligazione che gli operari di +

    Nel margine esterno, di mano moderna: Obligazione che gli operari di Sarzana debbano pagare ogni anno vinti moggi di grano mondi e cento condi (condi corretto su precedente scrittura) di vino al vescovo lunese pro tempore. Un’altra - mano ha aggiunto: È equivoco di chi non ha ben capito. + mano ha aggiunto: È equivoco di chi non ha ben capito.

    @@ -26705,55 +26525,12 @@
    -

    - - AAggiunta - - magna - - magma - maga - - - laudabilis - laudablis - - In this apparatus entry... - - - virtus - tua, et sapientiae tuae non est numerus et laudare te vult homo, aliqua - portio - - creature tue - creatr ae tuae - creaturas tuas - creaturarum tuarum - This is a note - - - , et homo circumferens - - mortalitem - fragilitatem - - In this apparatus entry, the editor has not decided yet which lectio - should be considered the lemma. The app contains only rdg elements. They - are therefore displayed in a different way from the other apparatus - entries. suam, circumferens testimonium peccati sui et - testimonium, quia superbis resistis: et tamen laudare te vult homo, - - aliqua - aliquando - aliquo - This is a note inside the apparatus - -

    +

    De castro - SarzaneDe castro Sarzane + SarzaneDe castro Sarzane in inchiostro rosso..

    -

    In eterni +

    In eterni Dei nomine, amen. Quemadmodum in instrumento publico manu Bartholomei notarii confecto, quod ego Confortus @@ -26763,7 +26540,7 @@ et successores suos, consilio curie, tale pactum et talem constitutionem quale et qualem fecerat dominus Albertus, bone memorie Lunensis episcopus, predecessor suus, cum - operariis omnibus de curte Sarzanei curte SarzaneiSarzanei: così nel testo.. Uterque enim eorum, velut in eodem instrumento legebatur, condonavit et remisit per se et suos successores @@ -26795,7 +26572,7 @@ gratia Lunensis episcopus, consilio Gerardi, vicedomini nostri, quondam Alberti vicedomini, nobiscum presentis, - renovamus, facimus et confirmamus predicta + renovamus, facimus et confirmamus predicta pacta et conventiones et constitutiones, addendo tamen et minuendo et mutando seu commutando quedam ex ipsis, prout dicetur inferius, pro bono et utilitate atque melioramento nostri episcopatus et nostre curie. Et hanc renovationem @@ -26899,7 +26676,7 @@ eorum nomine, per nos et successores nostros, de hiis que in prefacto instrumento manu Bartholomei notarii scripto continebantur, ut de cetero non debeant nec teneantur portare fenum ad - fenile neque facere attractus facere attractusattractus: nel testo la terza t corretta su l, scilicet panem aut vinum vel carnes vel annonam seu fruges, de stipulanti: così nel testo. - antedicti contrahentes.

    + antedicti contrahentes.

    Acta sunt hec omnia in palatio castri de Sarzana, anno a nativitate Domini M°CCXII, indictione XV, die lune, secundo intrante @@ -27010,17 +26787,17 @@ sacri palatii et Lunensis curie notarius, hiis omnibus interfui rogatus et de voluntate contrahentium de isto contractu plures cartas uno tenore scripsi.

    -

    Ego +

    Ego Pinosius nomine Iacopinus, Romanorum imperatoris notarius, auttenticum huius exempli vidi et legi et ut in eo continebatur in hoc scripsi, nichil addens vel minuens quod mutet sensum vel minuat intellectum.

    - Ego Ego Prefectus, domini imperatoris atque Lunensis curie notarius, huius exempli autenticum vidi atque legi et in eo subscripsi, signum proprium apponendo.

    -

    Ego +

    Ego Bonencontrus de Soleria, aule sacre notarius, auttenticum huius exempli vidi et legi, @@ -27066,7 +26843,7 @@

    Copia [C] CP cc. 216v.- 218r., cc. CCVIIIv-CCXr. secondo la numerazione - originale.

    + originale

    @@ -27360,7 +27137,7 @@ exceptis homicidiihomicidiis: così nel testo, incendiariis et traditoribus, super quorum pena non habeatur remedium, preter quod superius + target="#CII_richiamo"/> preter quod superius est notatum.

    § Si quis incurrerit aliquod maleficium, quod in hoc breve non sit scriptum, puniatur arbitrio domini @@ -27526,7 +27303,7 @@ et capannas iuxta vias, propter necessitatem deicere paleas et ruscum in viam, ita tamen quod infra dictos duos menses paleam, ruscum et letamen de via removeant et deportent; et si non fecerint et si dimiserint, perdant denarios XII.

    -

    Ego +

    Ego Gerardetus, qui nominor Montonus, palatii sacri notarius, hiis omnibus interfui et rogatus duo instrumenta uno tenore scripsi, de voluntate et diff --git a/src/assets/data/pseudoEdition.xml b/src/assets/data/pseudoEdition.xml new file mode 100644 index 000000000..cd2cfb9c8 --- /dev/null +++ b/src/assets/data/pseudoEdition.xml @@ -0,0 +1,253 @@ + + + + + + + Confessiones [pseudo-edition for testing purpose] + Augustine + + Text Encoding by + Marjorie Burghart + + + + Marjorie Burghart + +

    This document is being made available for demonstration and testing purposes + only.

    + + + +

    The base text is the beginning of Augustines Confessiones, as + found here: http://faculty.georgetown.edu/jod/latinconf/1.html. But please make + notice that the critical apparatus is purely invented for testing purpose and + reflects in no way the tradition of this text. This document is being made + available for demonstration and testing purposes only.

    +

    + + + + +

    The apparatus of this document is meant to illustrate various cases, including + some mistakes. Details about each apparatus entry are listed in a note following + each entry.

    + + + + + + +
    + + Manuscript A + + Example of group + Manuscript B + Manuscript C + + Manuscript D + Manuscript E + Manuscript G + +
    +
    + +
    + + + + + + + Liber I + +
    + CAPUT 1 +

    Magnus es, domine, et laudabilis valde: + + + magna + + magma + maga + + + laudabilis + laudablis + + In this apparatus entry... + + + virtus tua, et sapientiae tuae non est numerus et laudare te vult homo, aliqua portio + + creature tue + creatr ae tuae + creaturas tuas + creaturarum tuarum + This is a note + , et homo circumferens + + mortalitem + fragilitatem + In this apparatus entry, the editor has not decided yet which lectio + should be considered the lemma. The app contains only rdg elements. They + are therefore displayed in a different way from the other apparatus + entries. suam, circumferens testimonium peccati sui et + testimonium, quia superbis resistis: et tamen laudare te vult homo, + + aliqua + aliquando + aliquo + This is a note inside the apparatus. + + portio creaturae tuae. Tu excitas, ut laudare te delectet, quia fecisti nos + ad te et inquietum est cor nostrum, donec requiescat in te. Da + + mihi + nobis + + A most banal apparatus entry. domine, scire et + intellegere, utrum sit prius invocare te an laudare te, et scire te prius + sit an invocare te. sed quis te invocat nesciens te? Aliud enim + + pro alio + + A most banal apparatus entry. potest invocare nesciens. An + potius + + invocaris + invocatis + A most banal apparatus entry. ut sciaris? + + + In + + Quomodo + Qui + Qua + Quando + This apparatus entry is nested within the lemma of another apparatus entry. + + autem invocabunt, + in quem non crediderunt? Aut quomodo credent sine praedicante? + + + + This apparatus entry contains another apparatus entry. + + Et laudabunt dominum qui requirunt eum. Quaerentes enim inveniunt eum et invenientes + + laudabunt + laudabant + In this apparatus entry, all the @wit have been forgotten, so there is + no indication where to find each reading. eum. Quaeram te, + domine, invocans te, et invocem te credens in te: praedicatus enim es nobis. + Invocat te, domine, fides mea, quam dedisti mihi, quam inspirasti mihi per + + humanitatem + humilitatem + In this apparatus entry, I have introduced two mistakes: witness B is + not mentioned, while witness E is mentionned two times, in the @wit of + the lemma and of a reading. filii tui, per + ministerium + mysterium + A most banal apparatus entry. + + praedicatoris tui + praedicatorum tuorum + praedicatorum tuorum + .In this apparatus entry, the editor has not decided yet which + lectio should be considered the lemma. The app contains only rdg + elements. They are therefore displayed in a different way from the other + apparatus entries. I have also introduced two mistakes: there is no + mention of witness B, while witness C is mentioned twice. +

    +
    + +
    + CAPUT 2 +

    + + + + Et quomodo invocabo deum meum, deum et dominum meum, quoniam utique inme + ipsum eum invocabo, cum invocabo eum? Et quis locus est in me, quoveniat in + me deus meus? quo deus veniat in me, deus, qui fecit caelum et terram? + itane, domine deus meus, est quiquam in me, quod capiat te? An vero caelum + et terra, quae fecisti et in quibus me fecisti, capiuntte? An quia sine te + non esset + + + + quidquid est, fit, ut quidquid est capiat te? + quoniam itaque et ego sum, quid peto, ut venias in me, quinon essem, nisi + esses in me? + + + + + Non enim ego iam in + + inferis + infernis + infernis + ,A most banal apparatus entry et tamen etiam ibi es. Nam + etsi descendero in infernum, ades. non ergo essem, deus meus, non omnino + essem, nisi esses in me. An potius non essem, nisi essem in te, ex quo + omnia, per quem omnia, in quo omnia? + + + + A lacuna in witness C starts here. + + Etiam sic, domine, etiam sic. quo te + + + + + invoco, cum in te sim? aut unde venias in me? + Quo + Quomodo + A most banal apparatus entry. Note that since this entry occurs within a lacuna in witness C, this witness is not mentioned in this entry, and this is not an error. enim recedam extra caelum et + terram, ut inde in me veniat deus meus, qui dixit: caelum et terram ego + impleo?

    +
    + +
    + CAPUT 3 +

    Capiunt ergone te caelum

    +

    et terra, quoniam tu imples ea? An imples et restat, + quoniam non te capiunt? et quo refundis quidquid impleto caeloet terra restat ex te? An non opus habes, ut quoquam + continearis, qui contines omnia, quoniam quae imples continendo + + imples + implebis + ?In this apparatus entry, the lemma bears no @wit. This is a + perfectly acceptable form of encoding, implying that all witnesses not + listed in the rdg bear by default the reading of the lemma. But since in + this document the apparatus is elsewhere recorded in a "positive" + fashion, listing each reading of each manuscript explicitly, it might be + useful to point out that this entry does not follow the same practice, + which could be a mistake in the context. Non enim vasa, quae te + plena sunt, stabilem te faciunt, quia etsi frangantur non effunderis. Et cum + effunderis super nos, non tu iaces, sed erigis nos, nec tu dissiparis, sed colligis nos. sed quae imples omnia, te toto imples + omnia. An quia non possunt te totum capere omnia, partem tui capiunt et + eandem partem simul omnia capiunt? An singulas singula et maiores maiora, minores + + minora + maio maiora + maiora + A most banal apparatus entry capiunt? Ergo est aliqua pars tua + maior, aliqua minor? An ubique totus es et res nulla te totum capit? + + + A lacuna in witness C ends here. +

    +
    + +
    + + +
    + diff --git a/src/assets/data/saba.xml b/src/assets/data/saba.xml new file mode 100644 index 000000000..483ee2115 --- /dev/null +++ b/src/assets/data/saba.xml @@ -0,0 +1,1348 @@ + + + + + + + + + + Il Canzoniere + Edizione digitale + Umberto Saba + + Edizione critica e codifica di: + Giulia Tancredi + Ersilia Russo + + + Revisione della codifica di: + Roberto Rosselli Del Turco + + + + + + Varianti alternative. + + + + + Biblioteca Civica Attilio Hortis + + + + Manoscritto del Canzoniere 1919. + + Trieste + Biblioteca Civica Attilio Hortis + RP MS 1-18 + + + + Edizione princeps del Canzoniere 1921. + + + + + + + Stesura base del testo, in inchiostro blu piombo; presenza di varianti + immediate + Primo strato di varianti apportato con penna ad inchiostro blu chiaro + Secondo strato di varianti e correzioni apportate in matita grigia + Terzo strato di varianti e correzioni annotate a matita copiativa + Quarto strato di varianti e correzioni annotate in penna blu oltremare + Quinto strato scrittorio con correzioni e varianti in matita viola + + + Strato scrittorio con indicazioni tipografiche in penna rossa + + + + + Testo base in penna nera. + Penna ocra? O penna del testo base scarica? + Penna grigio-azzurra. + + + + + + + + + + + + + + + + R. P. MS + 1-18 + + + + + + 1 + + + + + Umberto Saba + + + + + + + + Il Canzoniere + + 1900*1920 + + + + + + + +
    + + 2 +
    + +
    +
    + + 4 + Ai miei sei lettori + +

    + Vi devo qualche parola di gratitudine, miei cari lettori. - Ad uno ad uno io vi ho + scelti; + quindi, comesi sceglie la moglie, come si scelgono gli + amici + + + + e come si sceglie la moglie, + + + + + e + come si sceglie la moglie, + + + io ho scelto da me i miei lettori; non troppi a dire il vero, ma nemmeno troppo + pochi; siete oggi esattamente sei. Quelli siete cioè che di quando in quando, per un'usanza che + mi è cara da vent'anni, ricevete qualche mia poesia manoscritta. E se non tutti siete + ugualmente atti ad intendere ed apprezzare per istinto la difficile arte del verso, siete + + + + però tutti fra + però fra + + + però + tutti fra + + + le anime migliori che io abbia conosciute, alle quali più di una volta ho avvicinata la + mia, come chi ha freddo + avvicina al fuoco le dita intirizzite. Spesso - troppo spesso forse - ho sentit + a + o + la vita come una landa tutta ghiacciata; oh allora, poter chiacchierare con uno + di voi, seduti tra il volgo dei consumatori ad uno dei miei + a- + adorati caffeucci, o pensarvi, o mandarvi dei versi, è stata per me la salvezza.

    + +

    + E vi devo anche qualche parola di chia- rimento. Non tutte le poesie di questa + raccolta vi riusciranno ugualmente nuove; alcune (la terza parte circa) sono già + state stampate nei precedenti volumi "Poesie" e "Coi miei occhi". Ma, per + quanto riguarda il primo (Poesie) esse vi apparvero non sol + o + a + + in una disposizione + cronologicamente falsa, così da togliere ogni linea al lavoro, ma + molte (tutte per esempio le quelle dell'adolescenza, e le giovanili e le fiorentine; così necessarie + + + a comprendere + ad + far intendere + la genesi e i graduali sviluppi, gli svincolamenti ed i ritorni alle + origini della mia arte) vi furono ommesse; altre poi (che è peggio ancora) siffattamente + alterate

    +
    +
    +

    + + 6 + + + dalla loro forma primitiva, da essere diventate + + tutta un'altra cosa, e non una cosa migliore. Come abbia potuto commettere questo + imperdonabile delitto contro + + quella cosa delicata, delicata e vitale che è lo + stile + me stesso, anzi contro la parte + migliore di me stesso + non lo so precisa- mente: + fu per un eclissi totale della mia coscienza? O ero forse troppo giovane ancora per compiacermi, come me ne com- piaccio + + + adesso + ora + , dell'inoppugnabile derivazione Petrarchesca e Leopardiana + di quei + dei miei + primi sonetti e canzoni (non ho capito Dante che verso i venti + tre + quattro + ventiquattrocinque anni); + quasi che l'aver ritrovato da + solo + me + , nella mia stanzetta a Trieste e nell'ambiente di "Fra chi sa + d'amarmi", dove nessu- no aveva parlato a me di buoni e di cattivi autori, il filo d'oro della tradizione italiana, non + sia + fosse + il mio mag- gior + titolo di nobiltà, la migliore testimonianza che + + uno possa avere + io mi abbia + di non essere un + comue + comune + illuso verseggiatore! Voglio insomma si sappia che, dove ci sono modificazioni profon- + de, e tali che potrebbero, senza questa confessione, riuscire stupefacenti, non è + ora che le ho aportate; ho dovuto anzi compiere un lavoro non breve e non facile per ritrovare + nella mia mente i versi originali. Due anni + + + + + speso + messo + + + + + perso + speso + + + a compiere questo lavoro, benché difficilmente io dimentichi i versi che una volta ho scritti. Ma .... "sono passate tante cose da quel + tempo in qua" + + +

    + + Trieste; 1919 + + + Il vostro riconoscente + Saba + + +
    + +
    + +
    + + 7 + Poesie dell'adolescenza + + + e giovanili + + + + (1900 * 190 + + 7 + 3 + + 7 + ) + + + + + Fra chi pensa d'amarmi, e in cor m'è ostile, + io consumo la dolce età minore, + e celo, vergognando, ogni non vile + pensiero che m'accenda gli occhi e il cuore. + + + +
    + +
    + +
    + + 8 +
    + +
    + + Poesie dell'adolescenza + 9 + + + + + + + + Vedi fogli + + + Vedi + fogli + +
    + Ammonizione + + + Che fai tu del sereno + nell'azzurra distesa, + o nuvoletta, accesa + dall'aurora del dì? + + + Cangi tue forme, e perdi + quel fuoco, veleggiando; + ti spezzi, e dileguando + + m' + m' + ammonisci così : + + + «Tu pure + + + - dici - o + , o altero + + + - dici - o + giovane, + cui suonan liete l'ore; + + + + che + + e + il dolce, il primo ardore + fa + nno a + ad + un sogno fedel; + + + scolorerai, chiudendo + le stanche luci, un giorno; + mai più vedrai d'intorno + gli amici e il patrio ciel + + » + . + +
    +
    +
    + + 10 + Poesie dell'adolescenza + + +
    + La casa della mia nutrice + + + La casa della mia nutrice posa, + memore, in faccia alla Cappella antica; + ed al basso riguarda, e par pensosa + da una collina alle caprette amica. + + + Da lei si va, per torta via sassosa, + fin presso al chiostro che in vetta s'abbica; + hai, dalle sue finestre, hai la spaziosa + vista del mar, della campagna aprica. + + + È il vespro amato: su per l'erta ancora + salgo alla casa, che uno strano affetto + nella mestizia m'infonde dell'ora. + + + Viver mi sembra + + + in quell' + nell' + + + in quell' + età serena; + quando, sazio di giochi, uscir dal tetto + guardavo il fumo azzurro della cena. + + + + + ← Vedi foglietto unito +
    + + + + + + + + + Dopo la "Casa della mia nutrice" + + + + + + + + +
    + Da un colle + + + Era d'Ottobre; l'ora mattutina + di pace empiva e di dolcezza il cuore; + più lieve a me, il sentier della collina + saliva, appresso ai buoi, l'agricoltore. + + + Giunto alla vetta, scorsi nell'albore + Trieste, con le chiese e la marina; + e tra un boschetto (ove i miei occhi Amore + + di là + tosto + rivolse) una rossa casina. + + + Delle squille + saliva + giungeva + a me il richiamo; + e quando all'orizzonte il sol levato, + fece della casina i vetri ardenti; + + + d'un pino al tronco io m'appressai beato; + come a festa ne svelsi un verde ramo, + e sospirando dissi un nome ai venti. + +
    + + + +
    + + + In riva al mare + Canzonetta + + La lirica si trova su un ritaglio incollato a p. 10 del ms. lungo il + margine sx attraverso un pezzo di nastro adesivo. Nell'edizione del Canzoniere 1921, al contrario, la + poesia apre la sezione con il titolo Canzonetta e precede La casa della mia + nutrice. + + + + + Ero solo in riva al mare, + solo in riva + l + l + al mar natio; + là pensando a te, amor mio, + + + prese + il cuore a palpitar. + + + Era il vespro, era nel mare + + + + + presso a scender + sceso a mezzo + + + presso a scender + l'astro d'oro; + d'onda in onda un rivol d'oro + si vedeva folgorar. + + + + E + D + i tra i monti + in ciel lo spicchio + della bianca luna nacque; + si vedeva in un sull'acque + il suo argento tremolar. + +
    + +
    +
    + + Poesie dell'adolescenza + 11 + + +
    + Sonetto di primavera + + + Città paesi e culmini lontani + sorridon lieti al sol di primavera; + torna serena la natia riviera, + e son pieni di luce il mare e i piani. + + + Ed io perché di desideri vani + t'esalto, o mia inesperta anima altera; + e solo mi riduco in sulla sera + alla mia stanza, e incerto del domani? + + + Là seggo sovra il bianco letticciolo; + e ripenso a un'età già tramontata, + a un amor che mi strugge, all'avvenire. + + + E se nell'ombra odo la voce amata + di mia madre appressarsi e poi morire, + spesso col pianto vo addolcendo il duolo. + +
    +
    + Glauco + + + Glauco, un fanciullo dalla chioma bionda, + dal bel vestito di marinaretto, + e dall'occhio sereno, con gioconda + voce mi disse (nel natio dialetto): + + + «Umberto, ma perché senza un diletto + tu consumi la vita, e par nasconda + o un dolore o un mistero ogni tuo detto? + Perché meco non vieni sulla sponda + + + del mare, che in sue azzurre onde c'invita? + Qual + ' + + è il pensiero che non dici, ascoso, + e che da noi, come un ladro, t'invola? + + + Tu non sai come sia dolce la vita + agli amici che fuggi, e come vola + a me il mio tempo, allegro e immaginoso!» + +
    +
    + +
    + + 12 + Poesie dell'adolescenza + + Tra la folla + + + Tra la folla, ove il mal d'altri è l'obbietto + di tanto scherno, di tanta allegria; + orribilmente trascinato via + guardo (ed onta ne provo) un fanciulletto. + + + Lacer + a + o + , senza pan forse né tetto, + egli crebbe, d'uguali in compagnia; + non mai la faccia d'una madre pia + potè celar nell'anelante petto. + + + Solo errava pel porto e senza meta: + poche frutta dal sacco ivi ha levato, + o in tasca all'ebbro piccola moneta. + + + Dal mio remoto il suo destin m'opprime, + e darei, per vederlo liberato, + pur care a me, le mie povere rime. + +
    +
    + + Ad un amico pianista, studente al Conservatorio di Liegi + + + Aldo, ricordi il + buon + + bel + tempo gentile, + l'amicizia fraterna, + che ci univa, pel gioco, nel cortile + della casa paterna. + + + Eran chiassi, eran salti; un tal nasceva + suon d' allegria crescente, + che alle finestre intorno si vedeva + affacciarsi la gente; + + + fin quando (muto rimprovero) un lume + nell'interno brillava; + e della sera con le fredde brume + l'ombra nera calava. + +
    +
    + + Poesie dell'adolescenza + 13 + + + + Ma spesso tu sedevi + + + pensieroso + grave in volto, + + + + pensieroso + + + al + + tuolo + + tuo + studio sonoro; + ed io in un canto udivo + + il grazïoso + , in me raccolto, + + il + grazïoso + dilettoso + + il dilettoso + + + + + + il tuo dolce lavorodi tue dita lavoro. + + + + di tue dita + il tuo dolce + lavoro. + di tue dita lavoro. + + + + + Le tue ditae + + + variavanrendevan + + + + + rendevan + variavan + + + + rendevan + la canzone + dell'amor, della vita; + e s'accendeva i + + n + me la visïone + d'una pace infinita. + + + O uno strano presagio il cor m'empiva, + un'ebbrezza profonda: + ed ecco sorridendo a noi veniva + una signora bionda; + + + una bella signora, di cui gli anni + già volgevano a sera; + ch'era buona e severa, + che ti celava del suo cor gli affanni, + + + ch'era tua madre!... Aldo, + + + l'hai tu presente + è al tuo cor vicina + + + l'hai tu presente + + quella + + + dolce + bionda + + + dolce + signora + + + : + ? + + + : + + + + + + e nel sonno, o con gli occhi della mente + d’April, nei sogni di prima mattina + + + e nel sonno, o con gli occhi della mente + + + + + + + la rivedi talora? + t’ammonisce ellaella + Qui Saba riscrive e cerchia "ella" per maggiore chiarezza. + ancora? + + + la rivedi talora? + + + + Come tutto mutò! Come la vita + diversa oggi m'appare! + Quante immagini care + m'hanno, fuggendo, l'anima impaurita; + + + quanta dolcezza, quanta ingenua fede + l'ha in brev'ora lasciata; + come + + + + spezzarsi, dileguar + talvolta con stupor + + Qui Saba recupera la prima versione della penna di + stesura. + + + + + talvolta con stupor + spezzarsi, dileguar + + + talvolta con stupor + si vede + nube in cielo rosata + + + , + . + + + , + + + + + + Poesie dell'adolescenza + 14 + + + va bene + + + + veleggiare tranquilla, a un tratto forme + cangiar, perder sua tinta, + in due spezzarsi, dileguar sull'orme + d'altra, lì appena estinta. + + + lasciare questa strofa + + + + + + Pace ha tua madre giù nel cimitero; + quasi a trarne conforto, + a lei va reverente il mio pensiero, + poi tosto a te lo porto, + + + che sei lontano; estranee vie d'intorno + empiendo vai di suoni; + né , + + + + da che nasce a quando muore + fin che al tutto non sia spento + + da che nasce a quando muore + il giorno + l'istrumento abbandoni. + + + Ancor quest'anno... e poi la tua stanzetta + lascerai per il mondo; + è il tuo sogno giocondo + tornar cinto d'alloro a chi t'aspetta. + + + O + + h + + + r + + potessi sedermi a te d'accanto, + udire i tuoi tranquilli + arpeggi, le tue fughe, quel tuo canto, + quei tuoi limpidi trilli + + + di rosignolo!... Io scorderei di certo + di mia vita l'errore; + e tornerei fanciullo, ed inesperto + dell'umano dolore; + + + per te il buon tempo rivivrei gentile, + l'amicizia fraterna + che ci univa - ricordi? - nel cortile + della casa paterna. + +
    + + + Poesie dell'adolescenza + 15 + + +
    + Fra chi pensa d'amarmi + Si può + omettere? + + + + Fra chi pensa d'amarmi, e in cor m'è ostile + io consumo la bella età minore; + e celo, vergognando, ogni non vile + pensiero che m'accend + e + a + gli occhi e il cuore. + + + Rider sento di me: in un vano ardore + spendo, di sogni, il tempo giovanile; + ed io lo veggo, e soffro, e dal dolore + mio novello ricreo l'antico stile. + + + E ben lo so che il secolo, volgendo + a più fulgida meta l'occhio ardito, + passa e non guarda il mio gentil lavoro. + + + + + + + + Spesso dal mondo io fuggirei, piangendo + ciò che non torna, ad un lontano lito, + senza baci a morirvi e senza alloro. + + + + + Per cui soletto io me ne vo, piangendo + ciò che non torna, ov'è più solo il lito, + senza un bacio d'amante e senz'alloro. + + + + + + + + Spesso dal mondo io fuggirei, piangendo + ciò che non torna, ad un lontano lito, + senza baci a morirvi e senza alloro. + + + + + + +
    +
    + Nella sera della + d + D + omenica di Pasqua + + + Solo e pensoso dalla spiaggia i lenti + passi rivolgo alla casa lontana. + È la sera di Pasqua; una campana + piange, dal borgo, sui passati eventi. + + + L'aure son miti, son tranquilli i venti + crepuscolari: una dolcezza arcana + piove dal ciel sulla progenie umana, + le passïoni sue fa meno ardenti. + + + Oblïando, io penso alle leggende + di Fausto, che a quest'ora era inseguito + dall'avversario... un docile barbone. + + + E mi par di vederlo, sbigottito + fra i campi, dove ombrosa umida scende + la notte, e lungi muore una canzone. + +
    + + + 16 + Poesie dell'adolescenza + + +
    + Sul canto d'un violino + + + + + + + + Quando + Or più + + + + + + + + Or più + Quando + + + + Or più + non piangi sul dolore umano, + scherzi al lume di luna in fra le frondi, + + + + + dolce + chiaro + + + dolce + istrumento, che di suoni innondi, + da una villa solinga, i colli e il piano. + + + Chi in te parli non so, so che all'arcano + della vita col tuo canto rispondi; + ed il pensiero agli stellati mondi + m'innalzi, e all'armonia del ciel lontano. + + + Oh quante notti, il mio dolore e quello + + + + + cui nascemmo + dei miei cari + + + cui nascemmo + scordando, in dolce attesa, + di tua villa sostai presso al cancello. + + + + + + Che + + E + tu solo con me dell'amor mio + parlavi, d'un pallente volto e bello, + del lunare a fior d'acque tremolio. + +
    +
    + Nella notte di Natale + + + Io scrivo nella mia dolce stanzetta, + d'una candela al tenue chiarore; + ed una forza indomita d'amore + muove la stanca mano che s'affretta. + + + Come timido e dolce il suon dell'ore! + Forse il Bene invocato oggi m'aspetta. + Una serenità quasi perfetta + calma i battiti ardenti del mio cuore. + + + Notte fredda e stellata di Natale, + sai tu dirmi la fonte onde zampilla, + improvvisa, la mia speranza buona? + + + È forse il + sogno + mito + di Gesù che brilla + nell'animo paziente eddolente, ma immortale, + del giovane che ama, che perdona? + +
    + + + Poesie dell'adolescenza + 17 + + +
    + Così passo i miei giorni + + Così passo i miei giorni, i mesi, e gli anni; + altro non chiedo in gioventù piacere, + che tessere, nell'ombra, vuoti inganni, + care immagini si, ma menzognere. + + + Sol talvolta discendo fra le altere + genti del mondo; ivi quei loro affanni + provo, non cure tacite severe, + ma dile lotte crudeli, + e l'onte e i danni. + + + Onde poi ritornando all'ozïosa + pace dei sogni miei lunghi e fatali, + trovo ancora più dolci i colli + + aprichi + , + il mar, gli interminabili vïali, + ove al rezzo dei grandi alberi antichi, + il mio cuore si addome e si riposa. + +
    + +
    + Autunno + + Quanta malinconia di foglie morte + nei deserti vïali, + dove anch'esse appassirono le frali + gioie, che al sogno mio dava la sorte. + Oh, una malinconia grande, infinita + quasi, un dolor d'ogni gioia più forte. + che ben sa la mia vita, + simile all'ingiallita + foglia, ad un buio di giorni autunnali. + + + +
    + + + + 18 + Poesie dell'adolescenza + + + +
    + Canzoncine + +
    + I + + Omettere? + + + Egli vi disse: "V'amo, + e + muoio + soffro + , mia signora." + Voi rispondeste: "Taci, + sei un fanciullo ancora." + Egli vi disse: "In cuore + vincer saprò il desio." + Voi rispondeste: "T'amo, + t'amo, fanciullo mio." + + +
    +
    + II + + Io trassi dalla polvere + la pietra prezïosa; + ma... dalla grazïosa + tua bocca un solo detto, + che possa entro il mio petto + placar chiusa tempesta; + volgere d'una mesta + ora in sorriso i guai, + Donna, non trassi io mai. + +
    +
    + III + + Quando nel cimitero + una pietra qualunque + dirà, come un qualunque + altro nome, il mio nome al passeggero; + + + + + quando + + + + e + qui + a te + + + + del mio pensiero + rimarran, nel tuo seno custodite, + brevi canzoni dal tempo ingiallite, + io saprò dirti allora + quello che al mondo ho amato, + perchè invano ho lottato ed ho sofferto; + solo in quel colle fiorito deserto, + sentirai + + + di mia + della + + + di mia + vita + + + la dolcezza nascosta ed infinita! + + +
    + + +
    + + + Poesie dell'adolescenza + 19 + + + +
    + + A Pag.23 + Alla Morte + + Dolce cosa è per me fra le tue braccia, + Morte, in sogno approdar fra le tempeste; + non vidi ancor dappresso la tua faccia, + non cingo te di fantasie funeste. + + + Speranza ho in cor che d'ore gravi e meste, + che d'un pensiero che in bando mi caccia + sul volgo errante al gran silenzio agreste, + tuo ch'io divenga, rimarrà una traccia; + + + che un + i + ' + ignota creatura a me pensando + andrà quando s'accendono i fanali; + che gli amici nei dì belli, tornando + + + + da campagne sui monti o in riva al mar, + me rivedran, fra l'ombre dei viali, + ombra lieta e pensosa trasvolar. + +
    +
    + +
    + + + 20 + Poesie giovanili (pisane) + + + +
    + + La Pace + + O Pace, che ciascuno ama, che spera + dal primo sole all'ultima giornata, + non sei tu pure un'ombra, una chimera + a cui dietro gran turba erra affannata? + + + A che cercar fra i monti + il tuo + la tua + + + tracc + conforto + + + o in riva al mare, o in estranea terra; + a che sperar fra le tue braccia un porto, + nel tuo seno un oblio d'interna guerra; + + + se Dante ti cercò, di mondo in mondo + esule stanco affaticando il piè; + se Fausto per un tuo bacio all'immondo, + (inutilmente come a Dio) si diè? + + + Più della gloria, più della Fortuna + nei miei giovani sogni io t'invocai, + o Pace... e tu sei simile alla luna, + che il sole insegue, e non raggiunge mai. + + +
    + +
    +
    +
    + + +
    +
    diff --git a/src/assets/data/schema/tei-vbd.rng b/src/assets/data/schema/tei-vbd.rng new file mode 100644 index 000000000..5b919a456 --- /dev/null +++ b/src/assets/data/schema/tei-vbd.rng @@ -0,0 +1,12048 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + high + medium + low + unknown + + + + + 0 + 1 + + + + + + + (\-?[\d]+/\-?[\d]+) + + + + + + + + 0 + + regular + irregular + unknown + + + + + + + + + + + + + + + + + + + + + + + + unknown + inapplicable + + + + + + + + + + + + + + [\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|gd|rem|vw|vh|vm) + + + + + + + + (\-?[0-9]+\.?[0-9]*,\-?[0-9]+\.?[0-9]*) + + + + + + + + [\d]+(\.[\d]+){0,2} + + + + + [\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3} + + + + + + + + (\p{L}|\p{N}|\p{P}|\p{S})+ + + + + + + + + + + + + + + + + + + + + + + + + + + [0-9.,DHMPRSTWYZ/:+\-]+ + + + + + + + + + + indicates the person, or group of people, to whom the element content is ascribed. + + + + + + + + + + + + + + + + provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind. + + + + + + + + (reference) provides an explicit means of locating a full definition for the entity being named by means of one or more URIs. + + + + + + + + + + + + + + + + + + + gives a minimum estimated value for the approximate measurement. + + + + + + + + gives a maximum estimated value for the approximate measurement. + + + + + + + + where the measurement summarizes more than one observation or a range, supplies the minimum value observed. + + + + + + + + where the measurement summarizes more than one observation or a range, supplies the maximum value observed. + + + + + + + + specifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by min and max, or the proportion of observed values that fall within that range. + + + + + + + + + + + + + + + + names the unit used for the measurement +Suggested values include: 1] cm(centimetres) ; 2] mm(millimetres) ; 3] in(inches) ; 4] lines; 5] chars(characters) + + cm + (centimetres) + mm + (millimetres) + in + (inches) + lines + lines of text + chars + (characters) characters of text + + + + + + + + + specifies the length in the units specified + + + + + + + + indicates the size of the object concerned using a project-specific vocabulary combining quantity and units in a single string of words. + + + + + + + + characterizes the precision of the values specified by the other attributes. + + + + + + + + where the measurement summarizes more than one observation, specifies the applicability of this measurement. +Sample values include: 1] all; 2] most; 3] range + + + + + + + + + + + + + + + in the case of damage (deliberate defacement, inking out, etc.) assignable to a distinct hand, signifies the hand responsible for the damage by pointing to one of the hand identifiers declared in the document header (see section ). + + + + + + + + categorizes the cause of the damage, if it can be identified. +Sample values include: 1] rubbing; 2] mildew; 3] smoke + + + + + + + + provides a coded representation of the degree of damage, either as a number between 0 (undamaged) and 1 (very extensively damaged), or as one of the codes high, medium, low, or unknown. The damage element with the degree attribute should only be used where the text may be read with some confidence; text supplied from other sources should be tagged as supplied. + + + + + + + + + + + assigns an arbitrary number to each stretch of damage regarded as forming part of the same physical phenomenon. + + + + + + + + + + + indicates whether or not the element bearing this attribute should be considered to mark the end of an orthographic token in the same way as whitespace. + + + + + + + + + + + (canonical reference) specifies the destination of the pointer by supplying a canonical reference expressed using the scheme defined in a refsDecl element in the TEI header + + + + + + + + + + + + + + + supplies the value of the date or time in a standard form, e.g. yyyy-mm-dd. + + + + + + + + specifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + specifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + indicates the starting point of the period in standard form, e.g. yyyy-mm-dd. + + + + + + + + indicates the ending point of the period in standard form, e.g. yyyy-mm-dd. + + + + + + + + + + + + + + + indicates the system or calendar to which the date represented by the content of this element belongs. + + + + + + + +@calendar indicates the system or calendar to which the date represented by the content of this element +belongs, but this element has no textual content. + + + + + + supplies a pointer to some location defining a named period of time within which the datable item is understood to have occurred. + + + + + + + + + + + + contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat. + + + + + + + + + + + + contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat. + + + + + + + + + + + + + + + indicates whether or not this element is selected by default when its parent is selected. + + true + This element is selected if its parent is selected + false + This element can only be selected explicitly, unless it is the only one of its kind, in which case it is selected if its parent is selected. + + + + + + + + + + + identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content. + + + + + + + + + + + + + + + specifies whether or not its parent element is fragmented in some way, typically by some other overlapping structure: for example a speech which is divided between two or more verse stanzas, a paragraph which is split across a page division, a verse line which is divided between two speakers. + + Y + (yes) the element is fragmented in some (unspecified) respect + N + (no) either the element is not fragmented, or no claim is made as to its completeness. + I + (initial) this is the initial part of a fragmented element + M + (medial) this is a medial part of a fragmented element + F + (final) this is the final part of a fragmented element + + + + + + + + + + + + + (organization) specifies how the content of the division is organized. + + composite + no claim is made about the sequence in which the immediate contents of this division are to be processed, or their inter-relationships. + uniform + the immediate contents of this element are regarded as forming a logical unit, to be processed in sequence. + + + + + + + + indicates whether this division is a sample of the original source and if so, from which part. + + initial + division lacks material present at end in source. + medial + division lacks material at start and end. + final + division lacks material at start. + unknown + position of sampled material within original unknown. + complete + division is not a sample. + + + + + + + + + + + describes the status of a document either currently or, when associated with a dated element, at the time indicated. +Sample values include: 1] approved; 2] candidate; 3] cleared; 4] deprecated; 5] draft; 6] embargoed; 7] expired; 8] frozen; 9] galley; 10] proposed; 11] published; 12] recommendation; 13] submitted; 14] unfinished; 15] withdrawn + + + + + + + + + + + + + (certainty) signifies the degree of certainty associated with the intervention or interpretation. + + + + + + + + (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber. + + + + + + + + + + + + + + + + + + indicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation. +Suggested values include: 1] internal; 2] external; 3] conjecture + + + + internal + there is internal evidence to support the intervention. + external + there is external evidence to support the intervention. + conjecture + the intervention or interpretation has been made by the editor, cataloguer, or scholar on the basis of their expertise. + + + + + + + + + + + indicates whether this is an instant revision or not. + + + + + + + + + + + + + + + + + + + + + + (identifier) provides a unique identifier for the element bearing the attribute. + + + + + + + + (number) gives a number (or other label) for an element, which is not necessarily unique within the document. + + + + + + + + (language) indicates the language of the element content using a tag generated according to BCP 47. + + + + + + + + (rendition) indicates how the element in question was rendered or presented in the source text. + + + + + + + + + + + + contains an expression in some formal style definition language which defines the rendering or presentation used for this element in the source text + + + + + + + + points to a description of the rendering or presentation used for this element in the source text. + + + + + + + + + + + + provides a base URI reference with which applications can resolve relative URI references into absolute URI references. + + + + + + + + signals an intention about how white space should be managed by applications. + + default + signals that the application's default white-space processing modes are acceptable + preserve + indicates the intent that applications preserve all white space + + + + + + + + + + + + + + + + gives a name or other identifier for the scribe believed to be responsible for this hand. + + + + + + + + points to a full description of the scribe concerned, typically supplied by a person element elsewhere in the description. + + + + + + + + + + + + characterizes the particular script or writing style used by this hand, for example secretary, copperplate, Chancery, Italian, etc. + + + + + + + + + + + + points to a full description of the script or writing style used by this hand, typically supplied by a scriptNote element elsewhere in the description. + + + + + + + + + + + + describes the tint or type of ink, e.g. brown, or other writing medium, e.g. pencil + + + + + + + + + + + + specifies how widely this hand is used in the manuscript. + + sole + only this hand is used throughout the manuscript + major + this hand is used through most of the manuscript + minor + this hand is used occasionally in the manuscript + + + + + + + + + + + (MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type + + + + + + + + + + + + + + + + + + Where the media are displayed, indicates the display width + + + + + + + + Where the media are displayed, indicates the display height + + + + + + + + Where the media are displayed, indicates a scale factor to be applied when generating the desired display size + + + + + + + + + + (uniform resource locator) specifies the URL from which the media concerned may be obtained. + + + + + + + + + + + + indicates what kind of phenomenon is being noted in the passage. +Sample values include: 1] image; 2] character; 3] theme; 4] allusion + + + + + + + + (instances) points to instances of the analysis or interpretation represented by the current element. + + + + + + + + + + + + + + + + + indicates the units used for the measurement, usually using the standard symbol for the desired units. +Suggested values include: 1] m(metre) ; 2] kg(kilogram) ; 3] s(second) ; 4] Hz(hertz) ; 5] Pa(pascal) ; 6] Ω(ohm) ; 7] L(litre) ; 8] t(tonne) ; 9] ha(hectare) ; 10] Å(ångström) ; 11] mL(millilitre) ; 12] cm(centimetre) ; 13] dB(decibel) ; 14] kbit(kilobit) ; 15] Kibit(kibibit) ; 16] kB(kilobyte) ; 17] KiB(kibibyte) ; 18] MB(megabyte) ; 19] MiB(mebibyte) + + m + (metre) SI base unit of length + kg + (kilogram) SI base unit of mass + s + (second) SI base unit of time + Hz + (hertz) SI unit of frequency + Pa + (pascal) SI unit of pressure or stress + + (ohm) SI unit of electric resistance + L + (litre) 1 dm³ + t + (tonne) 10³ kg + ha + (hectare) 1 hm² + + (ångström) 10⁻¹⁰ m + mL + (millilitre) + cm + (centimetre) + dB + (decibel) see remarks, below + kbit + (kilobit) 10³ or 1000 bits + Kibit + (kibibit) 2¹⁰ or 1024 bits + kB + (kilobyte) 10³ or 1000 bytes + KiB + (kibibyte) 2¹⁰ or 1024 bytes + MB + (megabyte) 10⁶ or 1 000 000 bytes + MiB + (mebibyte) 2²⁰ or 1 048 576 bytes + + + + + + + + + specifies the number of the specified units that comprise the measurement + + + + + + + + indicates the substance that is being measured + + + + + + + + + + + + + + + + + may be used to specify further information about the entity referenced by this name in the form of a set of whitespace-separated values, for example the occupation of a person, or the status of a place. + + + + + + + + + + + + (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it. + + + + + + + + + + + + + + + specifies where this item is placed +Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6] overleaf; 7] above; 8] end; 9] inline; 10] inspace + + + + below + below the line + bottom + at the foot of the page + margin + in the margin (left, right, or both) + top + at the top of the page + opposite + on the opposite, i.e. facing, page + overleaf + on the other side of the leaf + above + above the line + end + at the end of e.g. chapter or volume. + inline + within the body of the text. + inspace + in a predefined space, for example left by an earlier scribe. + + + + + + + + + + + + + + + characterizes the element in some sense, using any convenient classification scheme or typology. + + + + + + + + provides a sub-categorization of the element, if needed + + + + + + + The element should not be categorized in detail with @subtype + unless also categorized in general with @type + + + + + + + + + + + specifies the language of the content to be found at the destination referenced by target, using a language tag generated according to BCP 47. + + + + + + + @targetLang can only be used if @target is specified. + + + + + + specifies the destination of the reference by supplying one or more URI References + + + + + + + + + + + + specifies the intended meaning when the target of a pointer is itself a pointer. + + all + if the element pointed to is itself a pointer, then the target of that pointer will be taken, and so on, until an element is found which is not a pointer. + one + if the element pointed to is itself a pointer, then its target (whether a pointer or not) is taken as the target of this pointer. + none + no further evaluation of targets is carried out beyond that needed to find the element specified in the pointer's target. + + + + + + + + + + + + + + optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie. + + + + + + + + + + + + + + (target function) describes the function of each of the values of the target attribute of the enclosed link, join, or alt tags. + + + + + + + + + + + + + + + + + + + characterizes the function of the segment. + + + + + + + + + + + supplies the sort key for this element in an index, list or group which contains it. + + + + + + + + + + + + (edition) supplies a sigil or other arbitrary identifier for the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text. + + + + + + + + + + + + (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text. + + + + + + + + + + + + + + + indicates the end of a span initiated by the element bearing this attribute. + + + + + + + +The element indicated by @spanTo () must follow the current element + + + + + + + + + + + identifies the language used to describe the rendition. + + css + Cascading Stylesheet Language + xslfo + Extensible Stylesheet Language Formatting Objects + free + Informal free text description + other + A user-defined rendition description language + + + + + + + + supplies a version number for the style language provided in scheme. + + + + + + + + @schemeVersion can only be used if @scheme is specified. + + + + + + + + + + + + indicates the kind of information held in this cell or in each cell of this row. +Suggested values include: 1] label; 2] data + + label + labelling or descriptive information only. + data + data values. + + + + + + + + + indicates the number of rows occupied by this cell or row. + + + + + + + + (columns) indicates the number of columns occupied by this cell or row. + + + + + + + + + + + + indicates the location within a temporal alignment at which this element begins. + + + + + + + + indicates the location within a temporal alignment at which this element ends. + + + + + + + + + + + + + + + indicates the hand of the agent which made the intervention. + + + + + + + + indicates the effect of the intervention, for example in the case of a deletion, strikeouts which include too much or too little text, or in the case of an addition, an insertion which duplicates some of the text already present. +Sample values include: 1] duplicate; 2] duplicate-partial; 3] excessStart; 4] excessEnd; 5] shortStart; 6] shortEnd; 7] partial; 8] unremarkable + + + + + + + + documents the presumed cause for the intervention. + + fix + repeated for the purpose of fixation + unclear + repeated to clarify a previously illegible or badly written text or mark + + + + + + + + (sequence) assigns a sequence number related to the order in which the encoded features carrying this attribute are believed to have occurred. + + + + + + + + + + + specifies the date on which the source text was extracted and sent to the translator + + + + + + + + + + + + + identifies the unit of information conveyed by the element, e.g. columns, pages, volume. +Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] part; 7] column + + volume + the element contains a volume number. + issue + the element contains an issue number, or volume and issue numbers. + page + the element contains a page number or page range. + line + the element contains a line number or line range. + chapter + the element contains a chapter indication (number and/or title) + part + the element identifies a part of a book or collection. + column + the element identifies a column. + + + + + + + + + specifies the starting point of the range of units indicated by the unit attribute. + + + + + + + + specifies the end-point of the range of units indicated by the unit attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + provides a pointer to the bibliographical source from which a quotation or citation is drawn. + + + + + + + + + + + + + + + + + + + + + + + indicates whether the name component is given in full, as an abbreviation or simply as an initial. + + yes + the name component is spelled out in full. + abb + (abbreviated) the name component is given in an abbreviated form. + init + (initial letter) the name component is indicated only by one initial. + + + + + + + + specifies the sort order of the name component in relation to others within the name. + + + + + + + + + + + + + + + provides a conventional name for the kind of section changing at this milestone. +Suggested values include: 1] page; 2] column; 3] line; 4] book; 5] poem; 6] canto; 7] speaker; 8] stanza; 9] act; 10] scene; 11] section; 12] absent; 13] unnumbered + + page + physical page breaks (synonymous with the pb element). + column + column breaks. + line + line breaks (synonymous with the lb element). + book + any units termed book, liber, etc. + poem + individual poems in a collection. + canto + cantos or other major sections of a poem. + speaker + changes of speaker or narrator. + stanza + stanzas within a poem, book, or canto. + act + acts within a play. + scene + scenes within a play or act. + section + sections of any kind. + absent + passages not present in the reference edition. + unnumbered + passages present in the text, but not to be included as part of the reference. + + + + + + + (paragraph) marks paragraphs in prose. [3.1. 7.2.5. ] + + + + + + + + + + identifies a word or phrase as belonging to some language other than that of the surrounding text. [3.3.2.1. ] + + + + + + + + (emphasized) marks words or phrases which are stressed or emphasized for linguistic or rhetorical effect. [3.3.2.2. 3.3.2. ] + + + + + + + + (highlighted) marks a word or phrase as graphically distinct from the surrounding text, for reasons concerning which no claim is made. [3.3.2.2. 3.3.2. ] + + + + + + + + identifies any word or phrase which is regarded as linguistically distinct, for example as archaic, technical, dialectal, non-preferred, etc., or as forming part of a sublanguage. [3.3.2.3. ] + + + + + specifies the sublanguage or register to which the word or phrase is being assigned + + + + + + specifies how the phrase is distinct diachronically + + + + + + specifies how the phrase is distinct diatopically + + + + + + specifies how the phrase is distinct diastatically + + + + + + + + + (speech or thought) indicates passages thought or spoken aloud, whether explicitly indicated in the source or not, whether directly or indirectly reported, whether by real people or fictional characters. [3.3.3. ] + + + + + + may be used to indicate whether the quoted matter is regarded as having been vocalized or signed. + + + + + + may be used to indicate whether the quoted matter is regarded as direct or indirect speech. + + + + + + + + + (quotation) contains a phrase or passage attributed by the narrator or author to some agency external to the text. [3.3.3. 4.3.1. ] + + + + + + + + + + + (quoted) contains material which is distinguished from the surrounding text using quotation marks or a similar method, for any one of a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used. [3.3.3. ] + + + + + + + may be used to indicate whether the offset passage is spoken or thought, or to characterize it more finely. +Suggested values include: 1] spoken; 2] thought; 3] written; 4] soCalled; 5] foreign; 6] distinct; 7] term; 8] emph; 9] mentioned + + spoken + representation of speech + thought + representation of thought, e.g. internal monologue + written + quotation from a written source + soCalled + authorial distance + foreign + + distinct + linguistically distinct + term + technical term + emph + rhetorically emphasized + mentioned + refering to itself, not its normal referent + + + + + + + + + + (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. 4.3.1. 9.3.5.1. ] + + + + + + + + + + + + + + + + + + marks words or phrases mentioned, not used. [3.3.3. ] + + + + + + + + contains a word or phrase for which the author or narrator indicates a disclaiming of responsibility, for example by the use of scare quotes or italics. [3.3.3. ] + + + + + + + + (description) contains a brief description of the object documented by its parent element, including its intended usage, purpose, or application where this is appropriate. [22.4.1. ] + + + + + + + + + + identifies a phrase or word used to provide a gloss or definition for some other word or phrase. [3.3.4. 22.4.1. ] + + + + + + + + + + + + + contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. [3.3.4. ] + + + + + + + + + + + + + + (Latin for thus or so + ) contains text reproduced although apparently incorrect or inaccurate. [3.4.1. ] + + + + + + + + + (correction) contains the correct form of a passage apparently erroneous in the copy text. [3.4.1. ] + + + + + + + + + + groups a number of alternative encodings for the same point in a text. [3.4. ] + + + + + + + + + + + + + (regularization) contains a reading which has been regularized or normalized in some sense. [3.4.2. 12. ] + + + + + + + + + + (original form) contains a reading which is marked as following the original, rather than being normalized or corrected. [3.4.2. 12. ] + + + + + + + + + indicates a point where material has been omitted in a transcription, whether for editorial reasons described in the TEI header, as part of sampling practice, or because the material is illegible, invisible, or inaudible. [3.4.3. ] + + + + + + + + + + + gives the reason for omission. Sample values include sampling, inaudible, irrelevant, cancelled. + + + + + + + + + + in the case of text omitted from the transcription because of deliberate deletion by an identifiable hand, indicates the hand which made the deletion. + + + + + + in the case of text omitted because of damage, categorizes the cause of the damage, if it can be identified. +Sample values include: 1] rubbing; 2] mildew; 3] smoke + + + + + + + + + (addition) contains letters, words, or phrases inserted in the source text by an author, scribe, or a previous annotator or corrector. [3.4.3. ] + + + + + + + + + + + (deletion) contains a letter, word, or passage deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, or a previous annotator or corrector. [3.4.3. ] + + + + + + + + + + contains a word, phrase, or passage which cannot be transcribed with certainty because it is illegible or inaudible in the source. [11.3.3.1. 3.4.3. ] + + + + + + indicates why the material is hard to transcribe. + + + + + + + + + + Where the difficulty in transcription arises from action (partial deletion, etc.) assignable to an identifiable hand, signifies the hand responsible for the action. + + + + + + Where the difficulty in transcription arises from damage, categorizes the cause of the damage, if it can be identified. +Sample values include: 1] rubbing; 2] mildew; 3] smoke + + + + + + + + + (name, proper noun) contains a proper noun or noun phrase. [3.5.1. ] + + + + + + + + + + + + (referencing string) contains a general purpose name or referring string. [13.2.1. 3.5.1. ] + + + + + + + + + + + (electronic mail address) contains an email address identifying a location to which email messages can be delivered. [3.5.2. ] + + + + + + + + (number) contains a number, written in any form. [3.5.3. ] + + + + + + indicates the type of numeric value. +Suggested values include: 1] cardinal; 2] ordinal; 3] fraction; 4] percentage + + cardinal + absolute number, e.g. 21, 21.5 + ordinal + ordinal number, e.g. 21st + fraction + fraction, e.g. one half or three-quarters + percentage + a percentage + + + + + + + supplies the value of the number in standard form. + + + + + + + + + contains a word or phrase referring to some quantity of an object or commodity, usually comprising a number, a unit, and a commodity name. [3.5.3. ] + + + + + + specifies the type of measurement in any convenient typology. + + + + + + + + + (measure group) contains a group of dimensional specifications which relate to the same object, for example the height and width of a manuscript page. [10.3.4. ] + + + + + + + + + + + + + + + + contains a date in any format. [3.5.4. 2.2.4. 2.5. 3.11.2.4. 15.2.3. 13.3.6. ] + + + + + + + + + + + + + + + + + + contains a phrase defining a time of day in any format. [3.5.4. ] + + + + + + + + + + + + + + + + + + (abbreviation) contains an abbreviation of any sort. [3.5.5. ] + + + + + + + allows the encoder to classify the abbreviation according to some convenient typology. + + + + + + + + + (expansion) contains the expansion of an abbreviation. [3.5.5. ] + + + + + + + + + (pointer) defines a pointer to another location. [3.6. 16.1. ] + + + + Only one of the +attributes @target and @cRef may be supplied on . + + + + + + + + + + + + + + (reference) defines a reference to another location, possibly modified by additional text or comment. [3.6. 16.1. ] + + + + Only one of the + attributes @target' and @cRef' may be supplied on + + + + + + + + + + + + + + + contains any sequence of items organized as a list. [3.7. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + describes the nature of the items in the list. +Suggested values include: 1] gloss; 2] index; 3] instructions; 4] litany; 5] syllogism + + gloss + each list item glosses some term or concept, which is given by a label element preceding the list item. + index + each list item is an entry in an index such as the alphabetical topical index at the back of a print volume. + instructions + each list item is a step in a sequence of instructions, as in a recipe. + litany + each list item is one of a sequence of petitions, supplications or invocations, typically in a religious ritual. + syllogism + each list item is part of an argument consisting of two or more propositions and a final conclusion derived from them. + + + + + + + + + + contains one component of a list. [3.7. 2.5. ] + + + + + + + + + contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. [3.7. ] + + + + + + + + + + (heading) contains any type of heading, for example the title of a section, or the heading of a list, glossary, manuscript description, etc. [4.2.1. ] + + + + + + + + + + + + + + + + + + + (heading for list labels) contains the heading for the label or term column in a glossary list or similar structured list. [3.7. ] + + + + + + + + (heading for list items) contains the heading for the item or gloss column in a glossary list or similar structured list. [3.7. ] + + + + + + + + contains a note or annotation. [3.8.1. 2.2.6. 3.11.2.8. 9.3.5.4. ] + + + + + + + + + indicates whether the copy text shows the exact place of reference for the note. + + + + + + points to the end of the span to which the note is attached, if the note is not embedded in the text at that point. + + + + + + + + + + + + + (index entry) marks a location to be indexed for whatever purpose. [3.8.2. ] + + + + + + + + + + + + + a single word which follows the rules defining a legal XML name (see ), supplying a name to specify which index (of several) the index entry belongs to. + + + + + + + + + indicates the location of any form of external media such as an audio or video clip etc. [3.9. ] + + + + + + + + + + + + + (MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type + + + + + + + + + + + + indicates the location of an inline graphic, illustration, or figure. [3.9. ] + + + + + + + + + + + + + provides encoded binary data representing an inline graphic, audio, video or other object. [3.9. ] + + + + + + + + The encoding used to encode the binary data. If not specified, this is assumed to be Base64. + + + + + + + + + + + + + marks a boundary point separating any kind of section of a text, typically but not necessarily indicating a point at which some part of a standard reference system changes, where the change is not represented by a structural element. [3.10.3. ] + + + + + + + + + + + + + (gathering begins) marks the point in a transcribed codex at which a new gathering or quire begins. [3.10.3. ] + + + + + + + + + + + (page break) marks the start of a new page in a paginated document. [3.10.3. ] + + + + + + + + + + + + (line break) marks the start of a new (typographic) line in some edition or version of a text. [3.10.3. 7.2.5. ] + + + + + + + + + + + + (column break) marks the beginning of a new column of a text on a multi-column page. [3.10.3. ] + + + + + + + + + + + + (analytic level) contains bibliographic elements describing an item (e.g. an article or poem) published within a monograph or journal and not as an independent publication. [3.11.2.1. ] + + + + + + + + + + + + + + + + + + + + (monographic level) contains bibliographic elements describing an item (e.g. a book or journal) published as an independent item (i.e. as a separate physical object). [3.11.2.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (series information) contains information about the series in which a book or other bibliographic item has appeared. [3.11.2.1. ] + + + + + + + + + + + + + + + + + + + + + + in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [3.11.2.2. 2.2.1. ] + + + + + + + + + contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. [3.11.2.2. ] + + + + + + + + + (statement of responsibility) supplies a statement of responsibility for the intellectual content of a text, edition, recording, or series, where the specialized elements for authors, editors, etc. do not suffice or do not apply. May also be used to encode information about individuals or organizations which have played a role in the production or distribution of a bibliographic work. [3.11.2.2. 2.2.1. 2.2.2. 2.2.5. ] + + + + + + + + + + + + + + + + + + + + + + + + + + (responsibility) contains a phrase describing the nature of a person's intellectual responsibility, or an organization's role in the production or distribution of a work. [3.11.2.2. 2.2.1. 2.2.2. 2.2.5. ] + + + + + + + + + + contains a title for any kind of work. [3.11.2.2. 2.2.1. 2.2.5. ] + + + + + + + classifies the title according to some convenient typology. +Sample values include: 1] main; 2] sub(subordinate) ; 3] alt(alternate) ; 4] short; 5] desc(descriptive) + + + + + + indicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material. + + a + (analytic) the title applies to an analytic item, such as an article, poem, or other work published as part of a larger item. + m + (monographic) the title applies to a monograph such as a book or other item considered to be a distinct publication, including single volumes of multi-volume works + j + (journal) the title applies to any serial or periodical publication such as a journal, magazine, or newspaper + s + (series) the title applies to a series of otherwise distinct publications such as a collection + u + (unpublished) the title applies to any unpublished material (including theses and dissertations unless published by a commercial press) + + + + + + + + + contains the formalized descriptive title for a meeting or conference, for use in a bibliographic description for an item derived from such a meeting, or as a heading or preamble to publications emanating from it. [3.11.2.2. ] + + + + + + + + + groups information relating to the publication or distribution of a bibliographic item. [3.11.2.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + provides the name of the organization responsible for the publication or distribution of a bibliographic item. [3.11.2.4. 2.2.4. ] + + + + + + + + (scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. [3.11.2.5. ] + + + + + + identifies the type of information conveyed by the element, e.g. columns, pages, volume. +Suggested values include: 1] vol(volume) ; 2] issue; 3] pp(pages) ; 4] ll(lines) ; 5] chap(chapter) ; 6] part + + vol + (volume) the element contains a volume number. + issue + the element contains an issue number, or volume and issue numbers. + pp + (pages) the element contains a page number or page range. + ll + (lines) the element contains a line number or line range. + chap + (chapter) the element contains a chapter indication (number and/or title) + part + the element identifies a part of a book or collection. + + + + + + + + + + (cited range) defines the range of cited content, often represented by pages or other units [3.11.2.5. ] + + + + + + + + + + (publication place) contains the name of the place where a bibliographic item was published. [3.11.2.4. ] + + + + + + + + + (bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [3.11.1. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + (structured bibliographic citation) contains a structured bibliographic citation, in which only bibliographic sub-elements appear and in a specified order. [3.11.1. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (citation list) contains a list of bibliographic citations of any kind. [3.11.1. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + contains or references some other bibliographic item which is related to the present one in some specified manner, for example as a constituent or alternative version of it. [3.11.2.7. ] + + + + + + + + + +If the @target attribute on is used, the +relatedItem element must be empty + + + + + A relatedItem element should have either a 'target' attribute + or a child element to indicate the related bibliographic item + + + + + + + points to the related bibliographic element by means of an absolute or relative URI reference + + + + + + + + + (verse line) contains a single, possibly incomplete, line of verse. [3.12.1. 3.12. 7.2.5. ] + + + + + + + + + (line group) contains one or more verse lines functioning as a formal unit, e.g. a stanza, refrain, verse paragraph, etc. [3.12.1. 3.12. 7.2.5. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An lg element + must contain at least one child l, lg or gap element. + + + + + + + + + + + + (speech) contains an individual speech in a performance text, or a passage presented as such in a prose or verse text. [3.12.2. 3.12. 7.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment. [3.12.2. ] + + + + + + + + (stage direction) contains any kind of stage direction within a dramatic text or fragment. [3.12.2. 3.12. 7.2.4. ] + + + + + + + indicates the kind of stage direction. +Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed + + setting + describes a setting. + entrance + describes an entrance. + exit + describes an exit. + business + describes stage business. + novelistic + is a narrative, motivating stage direction. + delivery + describes how a character speaks. + modifier + gives some detail about a character. + location + describes a location. + mixed + more than one of the above + + + + + + + + + + contains the whole of a TEI encoded corpus, comprising a single corpus header and one or more TEI elements, each containing a single text header and a text. [4. 15.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + The version of the TEI scheme + + + + + + + + + (automatically generated text division) indicates the location at which a textual division generated automatically by a text-processing application is to appear. [3.8.2. ] + + + + + + + specifies what type of generated text division (e.g. index, table of contents, etc.) is to appear. +Sample values include: 1] index; 2] toc; 3] figlist; 4] tablist + + + + + + + + + (text language) describes the languages and writing systems identified within the bibliographic work being described, rather than its description. [3.11.2.4. 10.6.6. ] + + + + + (main language) supplies a code which identifies the chief language used in the bibliographic work. + + + + + + (other languages) one or more codes identifying any other languages used in the bibliographic work. + + + + + + + + + + + + + + + + + specifies a regular expression against which the values of other attributes can be matched. + + + + + + specifies a replacement pattern, that is, the skeleton of a relative or absolute URI containing references to groups in the matchPattern which, once subpattern substitution has been performed, complete the URI. + + + + + + (TEI header) supplies the descriptive and declarative information making up an electronic title page for every TEI-conformant document. [2.1.1. 15.1. ] + + + + + + + + + + + + + specifies the kind of document to which the header is attached, for example whether it is a corpus or individual text. +Sample values include: 1] text; 2] corpus + + + + + + + + + (file description) contains a full bibliographic description of an electronic file. [2.2. 2.1.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + (title statement) groups information about the title of a work and those responsible for its content. [2.2.1. 2.2. ] + + + + + + + + + + + + + + + specifies the name of a sponsoring organization or institution. [2.2.1. ] + + + + + + + + + (funding body) specifies the name of an individual, institution, or organization responsible for the funding of a project or text. [2.2.1. ] + + + + + + + + + (principal researcher) supplies the name of the principal researcher responsible for the creation of an electronic text. [2.2.1. ] + + + + + + + + + (edition statement) groups information relating to one edition of a text. [2.2.2. 2.2. ] + + + + + + + + + + + + + + + + + + describes the particularities of one edition of a text. [2.2.2. ] + + + + + + + + describes the approximate size of a text stored on some carrier medium or of some other object, digital or non-digital, specified in any convenient units. [2.2.3. 2.2. 3.11.2.4. 10.7.1. ] + + + + + + + + (publication statement) groups information concerning the publication or distribution of an electronic or other text. [2.2.4. 2.2. ] + + + + + + + + + + + + + + + + + + + + + + supplies the name of a person or other agency responsible for the distribution of a text. [2.2.4. ] + + + + + + + + (release authority) supplies the name of a person or other agency responsible for making a work available, other than a publisher or distributor. [2.2.4. ] + + + + + + + + (identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. [2.2.4. 2.2.5. 3.11.2.4. ] + + + + + + + + + + + + categorizes the identifier, for example as an ISBN, Social Security number, etc. + + + + + + + + + supplies information about the availability of a text, for example any restrictions on its use or distribution, its copyright status, any licence applying to it, etc. [2.2.4. ] + + + + + + + + + + + supplies a code identifying the current availability of the text. + + free + the text is freely available. + unknown + the status of the text is unknown. + restricted + the text is not freely available. + + + + + + + + + contains information about a licence or other legal agreement applicable to the text. [2.2.4. ] + + + + + + + + + + (series statement) groups information about the series, if any, to which a publication belongs. [2.2.5. 2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (notes statement) collects together any notes providing information about a text additional to that recorded in other parts of the bibliographic description. [2.2.6. 2.2. ] + + + + + + + + + + + + + (source description) describes the source from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as "born digital" for a text which has no previous existence. [2.2.7. ] + + + + + + + + + + + + + + + + + + + + (fully-structured bibliographic citation) contains a fully-structured bibliographic citation, in which all components of the TEI file description are present. [3.11.1. 2.2. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (encoding description) documents the relationship between an electronic text and the source or sources from which it was derived. [2.3. 2.1.1. ] + + + + + + + + + + + + + + + (project description) describes in detail the aim or purpose for which an electronic file was encoded, together with any other relevant information concerning the process by which it was assembled or collected. [2.3.1. 2.3. 15.3.2. ] + + + + + + + + + + + (sampling declaration) contains a prose description of the rationale and methods used in sampling texts in the creation of a corpus or collection. [2.3.2. 2.3. 15.3.2. ] + + + + + + + + + + + (editorial practice declaration) provides details of editorial principles and practices applied during the encoding of a text. [2.3.3. 2.3. 15.3.2. ] + + + + + + + + + + + + + + (correction principles) states how and under what circumstances corrections have been made in the text. [2.3.3. 15.3.2. ] + + + + + + + + indicates the degree of correction applied to the text. + + high + the text has been thoroughly checked and proofread. + medium + the text has been checked at least once. + low + the text has not been checked. + unknown + the correction status of the text is unknown. + + + + + + indicates the method adopted to indicate corrections within the text. + + silent + corrections have been made silently + markup + corrections have been represented using markup + + + + + + + + + indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form. [2.3.3. 15.3.2. ] + + + + + + + + indicates a bibliographic description or other resource documenting the principles underlying the normalization carried out. + + + + + + indicates the method adopted to indicate normalizations within the text. + + silent + normalization made silently + markup + normalization represented using markup + + + + + + + + + specifies editorial practice adopted with respect to quotation marks in the original. [2.3.3. 15.3.2. ] + + + + + + +On , either the @marks attribute should be used, or a paragraph of description provided + + + + + + + (quotation marks) indicates whether or not quotation marks have been retained as content within the text. + + none + no quotation marks have been retained + some + some quotation marks have been retained + all + all quotation marks have been retained + + + + + + + + + summarizes the way in which hyphenation in a source text has been treated in an encoded version of it. [2.3.3. 15.3.2. ] + + + + + + + + (end-of-line) indicates whether or not end-of-line hyphenation has been retained in a text. + + all + all end-of-line hyphenation has been retained, even though the lineation of the original may not have been. + some + end-of-line hyphenation has been retained in some cases. + hard + all soft end-of-line hyphenation has been removed: any remaining end-of-line hyphenation should be retained. + none + all end-of-line hyphenation has been removed: any remaining hyphenation occurred within the line. + + + + + + + + + describes the principles according to which the text has been segmented, for example into sentences, tone-units, graphemic strata, etc. [2.3.3. 15.3.2. ] + + + + + + + + + + + (standard values) specifies the format used when standardized date or number values are supplied. [2.3.3. 15.3.2. ] + + + + + + + + + + + describes the scope of any analytic or interpretive information added to the text in addition to the transcription. [2.3.3. ] + + + + + + + + + + + specifies editorial practice adopted with respect to punctuation marks in the original. [2.3.3. 3.2. ] + + + + + + + + indicates whether or not punctation marks have been retained as content within the text. + + none + no punctuation marks have been retained + some + some punctuation marks have been retained + all + all punctuation marks have been retained + + + + + + indicates whether punctation marks have been captured inside or outside of an adjacent element. + + internal + punctuation marks are captured inside adjacent elements + external + punctuation marks are captured outside adjacent elements + + + + + + + + + (tagging declaration) provides detailed information about the tagging applied to a document. [2.3.4. 2.3. ] + + + + + + + + + + + + + + + supplies information about the usage of a specific element within a text. [2.3.4. ] + + + + (generic identifier) specifies the name (generic identifier) of the element indicated by the tag, within the namespace indicated by the parent namespace element. + + + + + specifies the number of occurrences of this element within the text. + + + + + + (with unique identifier) specifies the number of occurrences of this element within the text which bear a distinct value for the global xml:id attribute. + + + + + + specifies the identifier of a rendition element which defines how this element was rendered in the source text. + + + + + + + + + + + + + supplies the formal name of the namespace to which the elements documented by its children belong. [2.3.4. ] + + + + + + specifies the full formal name of the namespace concerned. + + + + + + + + supplies information about the rendition or appearance of one or more elements in the source text. [2.3.4. ] + + + + + + where CSS is used, provides a way of defining pseudo-elements, that is, styling rules applicable to specific sub-portions of an element. +Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after + + + + + + + + + (style definition language declaration) specifies the name of the formal language in which style or renditional information is supplied elsewhere in the document. The specific version of the scheme may also be supplied. [2.3.5. ] + + + + + + + + + + + + (references declaration) specifies how canonical references are constructed for this text. [2.3.6.3. 2.3. 2.3.6. ] + + + + + + + + + + + + + + + + + + + (canonical reference pattern) specifies an expression and replacement pattern for transforming a canonical reference into a URI. [2.3.6.3. 2.3.6. 2.3.6.2. ] + + + + + + + + + + + (prefixing scheme used in data.pointer values) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. ] + + + + + + + supplies a name which functions as the prefix for an abbreviated pointing scheme such as a private URI scheme. The prefix constitutes the text preceding the first colon. + + + + + + + + (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. ] + + + + + + + + + + + + + + + (reference state) specifies one component of a canonical reference defined by the milestone method. [2.3.6.3. 2.3.6. ] + + + + + + + specifies the fixed length of the reference component. + + + + + + (delimiter) supplies a delimiting string following the reference component. + + + + + + + + + (classification declarations) contains one or more taxonomies defining any classificatory codes used elsewhere in the text. [2.3.7. 2.3. ] + + + + + + + + + + defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy. [2.3.7. ] + + + + + + + + + + + + + + + + + + + + + + + + + + contains an individual descriptive category, possibly nested within a superordinate category, within a user-defined taxonomy. [2.3.7. ] + + + + + + + + + + + + + + + + + + + + + + + (category description) describes some category within a taxonomy or text typology, either in the form of a brief prose description or in terms of the situational parameters used by the TEI formal textDesc. [2.3.7. ] + + + + + + + + + + + + + + (geographic coordinates declaration) documents the notation and the datum used for geographic coordinates expressed as content of the geo element elsewhere within the document. [2.3.8. ] + + + + + + supplies a commonly used code name for the datum employed. +Suggested values include: 1] WGS84(World Geodetic System) ; 2] MGRS(Military Grid Reference System) ; 3] OSGB36(ordnance survey great britain) ; 4] ED50(European Datum coordinate system) + + WGS84 + (World Geodetic System) a pair of numbers to be interpreted as latitude followed by longitude according to the World Geodetic System. + MGRS + (Military Grid Reference System) the values supplied are geospatial entity object codes, based on + OSGB36 + (ordnance survey great britain) the value supplied is to be interpreted as a British National Grid Reference. + ED50 + (European Datum coordinate system) the value supplied is to be interpreted as latitude followed by longitude according to the European Datum coordinate system. + + + + + + + + + + (application information) records information about an application which has edited the TEI file. [2.3.10. ] + + + + + + + + + + provides information about an application which has acted upon the document. [2.3.10. ] + + + + + + + + + + + + + + + + + + supplies an identifier for the application, independent of its version number or display name. + + + + supplies a version number for the application, independent of its identifier or display name. + + + + + + + + (text-profile description) provides a detailed description of non-bibliographic aspects of a text, specifically the languages and sublanguages used, the situation in which it was produced, the participants and their setting. [2.4. 2.1.1. ] + + + + + + + + + + + + (note on hand) describes a particular style or hand distinguished within a manuscript. [10.7.2. ] + + + + + + + + + contains a summary or formal abstract prefixed to an existing source document by the encoder. [2.4.4. ] + + + + + + + + + + + + + + contains information about the creation of a text. [2.4.1. 2.4. ] + + + + + + + + + + + + + + + (language usage) describes the languages, sublanguages, registers, dialects, etc. represented within a text. [2.4.2. 2.4. 15.3.2. ] + + + + + + + + + + + characterizes a single language or sublanguage used within a text. [2.4.2. ] + + + + (identifier) Supplies a language code constructed as defined in BCP 47 which is used to identify the language documented by this element, and which is referenced by the global xml:lang attribute. + + + + + specifies the approximate percentage (by volume) of the text which uses this language. + + 100 + + + + + + + + + (text classification) groups information which describes the nature or topic of a text in terms of a standard classification scheme, thesaurus, etc. [2.4.3. ] + + + + + + + + + + + + + + + contains a list of keywords or phrases identifying the topic or nature of a text. [2.4.3. ] + + + + + + + + + + identifies the controlled vocabulary within which the set of keywords concerned is defined identifies the classification scheme within which the set of categories concerned is defined, for example by a taxonomy element, or by some other resource. + + + + + + + + + (classification code) contains the classification code used for this text in some standard classification system. [2.4.3. ] + + + + identifies the classification system in use, as defined by for example by a taxonomy element, or some other resource.. + + + + + + + + (category reference) specifies one or more defined categories within some taxonomy or text typology. [2.4.3. ] + + + + + + identifies the classification scheme within which the set of categories concerned is defined, for example by a taxonomy element, or by some other resource. + + + + + + + + + (calendar description) contains a description of the calendar system used in any dating expression found in the text. [2.4. 2.4.5. ] + + + + + + + + + + describes a calendar or dating system used in a dating formula in the text. [2.4.5. ] + + + + + + + + + + + (revision description) summarizes the revision history for a file. [2.5. 2.1.1. ] + + + + + + + + + + + + + + + documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.5. 2.4.1. 11.7. ] + + + + + + + + + points to one or more elements that belong to this change. + + + + + + + + + + + + + describes a particular font or other significant typographic feature distinguished within the description of a printed resource. [10.7.2. ] + + + + + + + + + describes a particular script distinguished within the description of a manuscript or similar resource. [10.7.2. ] + + + + + + + + + groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.5. 11.7. ] + + + + + + + + + + + indicates whether the ordering of its child change elements is to be considered significant or not + + + + + + + + + + + + + + + + + + + + (corresponds) points to elements that correspond to the current element in some way. + + + + + + + + + + + + (synchronous) points to elements that are synchronous with the current element. + + + + + + + + + + + + points to an element that is the same as the current element. + + + + + + + + points to an element of which the current element is a copy. + + + + + + + + points to the next element of a virtual aggregate of which the current element is part. + + + + + + + + (previous) points to the previous element of a virtual aggregate of which the current element is part. + + + + + + + + points to elements that are in exclusive alternation with the current element. + + + + + + + + + + + + selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected. + + + + + + + + + + + defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. [16.1. ] + + + + You must supply at least two values for @target or on + + + + + + + + + + + + (link group) defines a collection of associations or hypertextual links. [16.1. ] + + + + + + + + + + + + + + (anonymous block) contains any arbitrary component-level unit of text, acting as an anonymous container for phrase or inter level elements analogous to, but without the semantic baggage of, a paragraph. [16.3. ] + + + + + + + + + + + (anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. [8.4.2. 16.4. ] + + + + + + + + + (arbitrary segment) represents any segmentation of text below the chunk level. [16.3. 6.2. 7.2.5. ] + + + + + + + + + + + indicates a point in time either relative to other elements in the same timeline tag, or absolutely. [16.5.2. ] + + + + + supplies an absolute value for the time. + + + + + + specifies the unit of time in which the interval value is expressed, if this is not inherited from the parent timeline. +Suggested values include: 1] d(days) ; 2] h(hours) ; 3] min(minutes) ; 4] s(seconds) ; 5] ms(milliseconds) + + d + (days) + h + (hours) + min + (minutes) + s + (seconds) + ms + (milliseconds) + + + + + + + specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + + + + + + identifies the reference point for determining the time of the current when element, which is obtained by adding the interval to the time of the reference point. + + + + + + + + + provides a set of ordered points in time which can be linked to elements of a spoken text to create a temporal alignment of that text. [16.5.2. ] + + + + + + + designates the origin of the timeline, i.e. the time at which it begins. + + + + + + specifies the unit of time corresponding to the interval value of the timeline or of its constituent points in time. +Suggested values include: 1] d(days) ; 2] h(hours) ; 3] min(minutes) ; 4] s(seconds) ; 5] ms(milliseconds) + + d + (days) + h + (hours) + min + (minutes) + s + (seconds) + ms + (milliseconds) + + + + + + + specifies a time interval either as a positive integral value or using one of a set of predefined codes. + + + + + + + + + identifies a possibly fragmented segment of text, by pointing at the possibly discontiguous elements which compose it. [16.7. ] + + + + + + + + + +You must supply at least two values for @target on + + + + + + + + + specifies the name of an element which this aggregation may be understood to represent. + + + + + + indicates whether the targets to be joined include the entire element indicated (the entire subtree including its root), or just the children of the target (the branches of the subtree). + + root + the rooted subtrees indicated by the target attribute are joined, each subtree become a child of the virtual element created by the join + branches + the children of the subtrees indicated by the target attribute become the children of the virtual element (i.e. the roots of the subtrees are discarded) + + + + + + + + + (join group) groups a collection of join elements and possibly pointers. [16.7. ] + + + + + + + + + + + + + + + + supplies the default value for the result on each join included within the group. + + + + + + + + + (alternation) identifies an alternation or a set of choices among elements or passages. [16.8. ] + + + + + + + + specifies the destination of the reference by supplying one or more URI References + + + + + + + + + + + + states whether the alternations gathered in this collection are exclusive or inclusive. + + excl + (exclusive) indicates that the alternation is exclusive, i.e. that at most one of the alternatives occurs. + incl + (inclusive) indicates that the alternation is not exclusive, i.e. that one or more of the alternatives occur. + + + + + + If mode is , each weight states the probability that the corresponding alternative occurs. If mode is incl each weight states the probability that the corresponding alternative occurs given that at least one of the other alternatives occurs. + + + + + + + + + + + + + + + (alternation group) groups a collection of alt elements and possibly pointers. [16.8. ] + + + + + + + + + + + states whether the alternations gathered in this collection are exclusive or inclusive. + + excl + (exclusive) indicates that the alternation is exclusive, i.e. that at most one of the alternatives occurs. + incl + (inclusive) indicates that the alternation is not exclusive, i.e. that one or more of the alternatives occur. + + + + + + + + + (TEI document) contains a single TEI-conformant document, comprising a TEI header and a text, either in isolation or as part of a teiCorpus element. [4. 15.1. ] + + + + + + + + + + + + + + + + + + + + + specifies the major version number of the TEI Guidelines against which this document is valid. + + + + + + + + + contains a single text of any kind, whether unitary or composite, for example a poem or drama, a collection of essays, a novel, a dictionary, or a corpus sample. [4. 15.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (text body) contains the whole body of a single unitary text, excluding any front or back matter. [4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains the body of a composite text, grouping together a sequence of distinct texts (or groups of such texts) which are regarded as a unit for some purpose, for example the collected works of an author, a sequence of prose essays, etc. [4. 4.3.1. 15.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a single text of any kind, whether unitary or composite, which interrupts the text containing it at any point and after which the surrounding text resumes. [4.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (text division) contains a subdivision of the front, body, or back of a text. [4.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-1 text division) contains a first-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-2 text division) contains a second-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-3 text division) contains a third-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-4 text division) contains a fourth-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-5 text division) contains a fifth-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-6 text division) contains a sixth-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-7 text division) contains the smallest possible subdivision of the front, body or back of a text, larger than a paragraph. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a closing title or footer appearing at the end of a division of a text. [4.2.4. 4.2. ] + + + + + + + + + + + + + + + + + + + contains the primary statement of responsibility given for a work on its title page or at the head or end of the work. [4.2.2. 4.5. ] + + + + + + + + + + + + + + + + contains a brief description of the place, date, time, etc. of production of a letter, newspaper story, or other work, prefixed or suffixed to it as a kind of heading or trailer. [4.2.2. ] + + + + + + + + + + + + + + + + contains a formal list or prose description of the topics addressed by a subdivision of a text. [4.2. 4.6. ] + + + + + + + + + + + + + + + + + + + + + + + contains a quotation, anonymous or attributed, appearing at the start or end of a section or on a title page. [4.2.3. 4.2. 4.6. ] + + + + + + + + + + + + + groups together dateline, byline, salutation, and similar phrases appearing as a preliminary group at the start of a division, especially of a letter. [4.2. ] + + + + + + + + + + + + + + + + + + + + + groups together salutations, datelines, and similar phrases appearing as a final group at the end of a division, especially of a letter. [4.2.2. 4.2. ] + + + + + + + + + + + + + + + + + + (salutation) contains a salutation or greeting prefixed to a foreword, dedicatory epistle, or other division of a text, or the salutation in the closing of a letter, preface, etc. [4.2.2. ] + + + + + + + + (signature) contains the closing salutation, etc., appended to a foreword, dedicatory epistle, or other division of a text. [4.2.2. ] + + + + + + + + contains a postscript, e.g. to a letter. [4.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (title page) contains the title page of a text, appearing within the front or back matter. [4.6. ] + + + + + + + + + + + + + + + + + + classifies the title page according to any convenient typology. + + + + + + + + + (document title) contains the title of a document, including all its constituents, as given on a title page. [4.6. ] + + + + + + + + + + + + + + + + + + + contains a subsection or division of the title of a work, as indicated on a title page. [4.6. ] + + + + + specifies the role of this subdivision of the title. +Suggested values include: 1] main; 2] sub(subordinate) ; 3] alt(alternate) ; 4] short; 5] desc(descriptive) + + main + main title of the work + sub + (subordinate) subtitle of the work + alt + (alternate) alternative title of the work + short + abbreviated form of title + desc + (descriptive) descriptive paraphrase of the work + + + + + + + + + + (document author) contains the name of the author of the document, as given on the title page (often but not always contained in a byline). [4.6. ] + + + + + + + + + contains a formal statement authorizing the publication of a work, sometimes required to appear on a title page or its verso. [4.6. ] + + + + + + + + (document edition) contains an edition statement as presented on a title page of a document. [4.6. ] + + + + + + + + (document imprint) contains the imprint statement (place and date of publication, publisher name), as given (usually) at the foot of a title page. [4.6. ] + + + + + + + + + + + + + + + + + + (document date) contains the date of a document, as given on a title page or in a dateline. [4.6. ] + + + + + gives the value of the date in standard form, i.e. YYYY-MM-DD. + + + + + + + + + (front matter) contains any prefatory matter (headers, title page, prefaces, dedications, etc.) found at the start of a document, before the main body. [4.6. 4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (back matter) contains any appendixes, etc. following the main part of a text. [4.7. 4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + supplies the value of a date or time in some standard form. + + + + + + + + + + + + specifies the earliest possible date for the event in some custom standard form. + + + + + + + + + + + + specifies the latest possible date for the event in some custom standard form. + + + + + + + + + + + + indicates the starting point of the period in some standard form. + + + + + + + + + + + + indicates the ending point of the period in some standard form. + + + + + + + + + + + + supplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred + + + + + + + + supplies a pointer to a calendar element or other means of interpreting the values of the custom dating attributes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + supplies the value of a date or time in a standard form. + + + + + + + + specifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + specifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + indicates the starting point of the period in standard form. + + + + + + + + indicates the ending point of the period in standard form. + + + + + + + (organization name) contains an organizational name. [13.2.2. ] + + + + + + + + + + + + (personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc. [13.2.1. ] + + + + + + + + + + + + contains a family (inherited) name, as opposed to a given, baptismal, or nick name. [13.2.1. ] + + + + + + + + + + contains a forename, given or baptismal name. [13.2.1. ] + + + + + + + + + + (generational name component) contains a name component used to distinguish otherwise similar names on the basis of the relative ages or generations of the persons named. [13.2.1. ] + + + + + + + + + + (name link) contains a connecting phrase or link used within a name but not regarded as part of it, such as van der or of. [13.2.1. ] + + + + + + + + + (additional name) contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name. [13.2.1. ] + + + + + + + + + + contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank. [13.2.1. ] + + + + + + + + + + contains an absolute or relative place name. [13.2.3. ] + + + + + + + + + + + + contains the name of a geo-political unit consisting of two or more nation states or countries. [13.2.3. ] + + + + + + + + + + + contains the name of a geo-political unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc. [13.2.3. ] + + + + + + + + + + + contains the name of an administrative unit such as a state, province, or county, larger than a settlement, but smaller than a country. [13.2.3. ] + + + + + + + + + + + contains the name of any kind of subdivision of a settlement, such as a parish, ward, or other administrative or geographic unit. [13.2.3. ] + + + + + + + + + + + contains the name of a settlement such as a city, town, or village identified as a single geo-political or administrative unit. [13.2.3. ] + + + + + + + + + + + marks that part of a relative temporal or spatial expression which indicates the direction of the offset between the two place names, dates, or times involved in the expression. [13.2.3. ] + + + + + + + + + + + + (geographical name) identifies a name associated with some geographical feature such as Windrush Valley or Mount Sinai. [13.2.3. ] + + + + + + + + + + + + (geographical feature name) contains a common noun identifying some geographical feature contained within a geographic name, such as valley, mount, etc. [13.2.3. ] + + + + + + + + + + + + contains an informal description of a person's present or past affiliation with some organization, for example an employer or sponsor. [15.2.2. ] + + + + + + + + + + + specifies the age of a person. [13.3.2.1. ] + + + + + + + supplies a numeric code representing the age or age group + + + + + + + + + contains information about a person's birth, such as its date and place. [15.2.2. ] + + + + + + + + + + + contains information about the physical climate of a place. [13.3.4.3. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains information about a person's death, such as its date and place. [15.2.2. ] + + + + + + + + + + + contains a description of the educational experience of a person. [15.2.2. ] + + + + + + + + + + + contains data relating to any kind of significant event associated with a person, place, or organization. [13.3.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + indicates the location of an event by pointing to a place element + + + + + + + + + specifies the faith, religion, or belief set of a person. [13.3.2.1. ] + + + + + + + + + + + contains information about a person's period of activity. [13.3.2.1. ] + + + + + + + + + + (geographical coordinates) contains any expression of a set of geographic coordinates, representing a point, line, or area on the surface of the earth in some notation. [13.3.4.1. ] + + + + + + + + + (language knowledge) summarizes the state of a person's linguistic knowledge, either as prose or by a list of langKnown elements. [13.3.2.1. ] + + + + + + + + + + + + supplies one or more valid language tags for the languages specified + + + + + + + + + + + + + (language known) summarizes the state of a person's linguistic competence, i.e., knowledge of a single language. [15.2.2. ] + + + + + + supplies a valid language tag for the language concerned. + + + + + a code indicating the person's level of knowledge for this language + + + + + + + + + (list of organizations) contains a list of elements, each of which provides information about an identifiable organization. [13.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + (list of events) contains a list of descriptions, each of which provides information about an identifiable event. [13.3.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + (list of persons) contains a list of descriptions, each of which provides information about an identifiable person or a group of people, for example the participants in a language interaction, or the people referred to in a historical source. [13.3.2. 15.2. 2.4. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + (list of places) contains a list of places, optionally followed by a list of relationships (other than containment) defined amongst them. [2.2.7. 13.3.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + defines the location of a place as a set of geographical coordinates, in terms of other named geo-political entities, or as an address. [13.3.4. ] + + + + + + + + + + + + + + + + + + + + + contains an informal description of a person's present or past nationality or citizenship. [15.2.2. ] + + + + + + + + + + + contains an informal description of a person's trade, profession or occupation. [15.2.2. ] + + + + + + + + indicates the classification system or taxonomy in use, for example by supplying the identifier of a taxonomy element, or pointing to some other resource. + + + + + + identifies an occupation code defined within the classification system or taxonomy defined by the scheme attribute. + + + + + + + + + (organization) provides information about an identifiable organization such as a business, a tribe, or any other grouping of people. [13.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + specifies a primary role or classification for the organization. + + + + + + + + + + + + + provides information about relationships identified amongst people, places, and organizations, either informally as prose or as formally expressed relation links. [13.3.2.3. ] + + + + + + + + + + + + + + + + + + + + + + + provides information about an identifiable individual, for example a participant in a language interaction, or a person referred to in a historical source. [13.3.2. 15.2.2. ] + + + + + + + + + + + + + + + + + specifies a primary role or classification for the person. + + + + + + + + + + specifies the sex of the person. + + + + + + + + + + specifies an age group for the person. + + + + + + + + + (personal group) describes a group of individuals treated as a single person for analytic purposes. [15.2.2. ] + + + + + + + + + + + + + + + + specifies the role of this group of participants in the interaction. + + + + + + specifies the sex of the participant group. + + + + + + + + + + specifies the age group of the participants. + + + + + + describes informally the size or approximate size of the group for example by means of a number and an indication of accuracy e.g. approx 200. + + + + + + + + + + + + + contains data about a geographic location [13.3.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains information about the population of a place. [13.3.4.3. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (relationship) describes any kind of relationship or linkage amongst a specified group of places, events, persons, objects or other items. [13.3.2.3. ] + + + + + + One of the attributes 'name', 'ref' or 'key' must be supplied + + + + + Only one of the attributes +@active and @mutual may be supplied + + + + + the attribute 'passive' + may be supplied only if the attribute 'active' is + supplied + + + + + + + + + + + supplies a name for the kind of relationship of which this is an instance. + + + + + + + identifies the active participants in a non-mutual relationship, or all the participants in a mutual one. + + + + + + + + + + supplies a list of participants amongst all of whom the relationship holds equally. + + + + + + + + + + + identifies the passive participants in a non-mutual relationship. + + + + + + + + + + + + + describes a person's present or past places of residence. [15.2.2. ] + + + + + + + + + + + specifies the sex of a person. [13.3.2.1. ] + + + + + + + supplies a coded value for sex + + + + + + + + + + + + + (socio-economic status) contains an informal description of a person's perceived social or economic status. [15.2.2. ] + + + + + + + + identifies the classification system or taxonomy in use, for example by pointing to a locally-defined taxonomy element or by supplying a URI for an externally-defined system. + + + + + + identifies a status code defined within the classification system or taxonomy defined by the scheme attribute. + + + + + + + + + contains a description of some status or quality attributed to a person, place, or organization often at some specific time or for a specific date range. [13.3.1. 13.3.2.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains information about the physical terrain of a place. [13.3.4.3. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a description of some status or quality attributed to a person, place, or organization typically, but not necessarily, independent of the volition or action of the holder and usually not at some specific time or for a specific date range. [13.3.1. 13.3.2.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (canonical name) contains the definition for a canonical name or name component of any kind. [13.3.5. ] + + + + + + + + + + + + + + + + + + + + + + + points to constituent nyms + + + + + + + + + + + + + (list of canonical names) contains a list of nyms, that is, standardized names for any thing. [13.3.5. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (facsimile) points to all or part of an image which corresponds with the content of the element. + + + + + + + + + + + + + + + points to one or more change elements documenting a state or revision campaign to which the element bearing this attribute and its children have been assigned by the encoder. + + + + + + + + + + + + + + + + + + + + indicates the element within a transcription of the text containing at least the start of the writing represented by this zone or surface. + + + + + + + + gives the x coordinate value for the upper left corner of a rectangular space. + + + + + + + + gives the y coordinate value for the upper left corner of a rectangular space. + + + + + + + + gives the x coordinate value for the lower right corner of a rectangular space. + + + + + + + + gives the y coordinate value for the lower right corner of a rectangular space. + + + + + + + + identifies a two dimensional area within the bounding box specified by the other attributes by means of a series of pairs of numbers, each of which gives the x,y coordinates of a point on a line enclosing the area. + + + + + + + + + + + + + + contains a representation of some written source in the form of a set of images rather than as transcribed or encoded text. [11.1. ] + + + + + + + + + + + + + + + + + + + + + + + contains a transcription or other representation of a single source document potentially forming part of a dossier génétique or collection of sources. [11.1. 11.2.2. ] + + + + + + + + + + + + + + + + + + defines a written surface as a two-dimensional coordinate space, optionally grouping one or more graphic representations of that space, zones of interest within that space, and transcriptions of the writing within them. [11.1. 11.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + describes the method by which this surface is or was connected to the main surface +Sample values include: 1] glued; 2] pinned; 3] sewn + + + + + + indicates whether the surface is attached and folded in such a way as to provide two writing surfaces + + + + + + + + + defines any kind of useful grouping of written surfaces, for example the recto and verso of a single leaf, which the encoder wishes to treat as a single unit. [11.1. ] + + + + + + + + + + + + + + + + defines any two-dimensional area within a surface element. [11.1. 11.2.2. ] + + + + + + + + + + + + + + + indicates the amount by which this zone has been rotated clockwise, with respect to the normal orientation of the parent surface element as implied by the dimensions given in the msDesc element or by the coordinates of the surface itself. The orientation is expressed in arc degrees. + + + + + + + + + (added span of text) marks the beginning of a longer sequence of text added by an author, scribe, annotator or corrector (see also add). [11.3.1.4. ] + + + + The @spanTo attribute of is required. + + + + + L'attribut spanTo est requis. + + + + + + + + + + + + + contains an area of damage to the text witness. [11.3.3.1. ] + + + + + + + + + + (damaged span of text) marks the beginning of a longer sequence of text which is damaged in some way but still legible. [11.3.3.1. ] + + + + +The @spanTo attribute of is required. + + + + + L'attribut spanTo est requis. + + + + + + + + + + + + (deleted span of text) marks the beginning of a longer sequence of text deleted, marked as deleted, or otherwise signaled as superfluous or spurious by an author, scribe, annotator, or corrector. [11.3.1.4. ] + + + + The @spanTo attribute of is required. + + + + + L'attribut spanTo est requis. + + + + + + + + + + + + (editorial expansion) contains a sequence of letters added by an editor or transcriber when expanding an abbreviation. [11.3.1.2. ] + + + + + + + + + (forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [11.6. ] + + + + + + classifies the material encoded according to some useful typology. +Sample values include: 1] header; 2] footer; 3] pageNum(page number) ; 4] lineNum(line number) ; 5] sig(signature) ; 6] catch(catchword) + + + + + + + + + contains one or more handNote elements documenting the different hands identified within the source texts. [11.3.2.1. ] + + + + + + + + + + marks the beginning of a sequence of text written in a new hand, or the beginning of a scribal stint. [11.3.2.1. ] + + + + + + + indicates a handNote element describing the hand concerned. + + + + + + + + + (abbreviation marker) contains a sequence of letters or signs present in an abbreviation which are omitted or replaced in the expanded form of the abbreviation. [11.3.1.2. ] + + + + + + + + + + + + + + + + indicates restoration of text to an earlier state by cancellation of an editorial or authorial marking or instruction. [11.3.1.6. ] + + + + + + + + + + indicates the location of a significant space in the copy text. [11.5.1. ] + + + + + + + + + + + + + (responsible party) (responsible party) indicates the individual responsible for identifying and measuring the space + + + + + + + + + + (dimension) indicates whether the space is horizontal or vertical. + + horizontal + the space is horizontal. + vertical + the space is vertical. + + + + + + + + + (substitution) groups one or more deletions with one or more additions when the combination is to be regarded as a single intervention in the text. [11.3.1.5. ] + + + + + + + + + + + must have at least one child add and at least one child del + + + + + + + + + + (substitution join) identifies a series of possibly fragmented additions, deletions or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. ] + + + + + + + + + + + + + + + signifies text supplied by the transcriber or editor for any reason, typically because the original cannot be read because of physical damage or loss to the original. [11.3.3.1. ] + + + + + + one or more words indicating why the text has had to be supplied, e.g. overbinding, faded-ink, lost-folio, omitted-in-original. + + + + + + + + + + + + + marks text present in the source which the editor believes to be superfluous or redundant. [11.3.3.1. ] + + + + + + one or more words indicating why this text is believed to be superfluous, e.g. repeated, interpolated etc. + + + + + + + + + + + + + contains the transcription of a topographic line in the source document [11.2.2. ] + + + + + + + + + + + + + + + + + supplies a list of transpositions, each of which is indicated at some point in a document typically by means of metamarks. [11.3.4.5. ] + + + + + + + + + + contains or describes any kind of graphic or written signal within a document the function of which is to determine how it should be read rather than forming part of the actual content of the document. [11.3.4.2. ] + + + + + + + describes the function (for example status, insertion, deletion, transposition) of the mark. + + + + + + identifies one or more elements to which the function indicated by the metamark applies. + + + + + + + + + + + + + represents any kind of modification identified within a single document. [11.3.4.1. ] + + + + + + + + + + + indicates one or more cancelled interventions in a document which have subsequently been marked as reaffirmed or repeated. [11.3.4.4. ] + + + + + + + points to one or more elements representing the interventions which are being reasserted. + + + + + + + + + + + + + contains a sequence of writing which has been retraced, for example by over-inking, to clarify or fix it. [11.3.4.3. ] + + + + + + + + + + describes a single textual transposition as an ordered list of at least two pointers specifying the order in which the elements indicated should be re-combined. [11.3.4.5. ] + + + + + + + + + + + + + indicates one or more marked-up interventions in a document which have subsequently been marked for cancellation. [11.3.4.4. ] + + + + + + + points to one or more elements representing the interventions which are to be reverted or undone. + + + + + + + + + + + + + + + + + indicates whether the passage being quoted is defective, i.e. incomplete through loss or damage. + + + + + + + (manuscript description) contains a description of a single identifiable manuscript or other text-bearing object. [10.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + describes the system used to ensure correct ordering of the quires making up a codex or incunable, typically by means of annotations at the foot of the page. [10.3.7. ] + + + + + + + + contains a dimensional specification. [10.3.4. ] + + + + + + + + + + + +The element may appear once only + + + + + + +The element may appear once only + + + + + + +The element may appear once only + + + + + + + + indicates which aspect of the object is being measured. +Sample values include: 1] leaves; 2] ruled; 3] pricked; 4] written; 5] miniatures; 6] binding; 7] box + + + + + + + + + contains any single measurement forming part of a dimensional specification of some sort. [10.3.4. ] + + + + + + + + + + contains a measurement measured along the axis at right angles to the bottom of the written surface, i.e. parallel to the spine for a codex or book. [10.3.4. ] + + + + + + + + + contains a measurement measured across the spine of a book or codex, or (for other text-bearing objects) perpendicular to the measurement given by the width element. [10.3.4. ] + + + + + + + + + contains a measurement measured along the axis parallel to the bottom of the written surface, i.e. perpendicular to the spine of a book or codex. [10.3.4. ] + + + + + + + + + contains a heraldic formula or phrase, typically found as part of a blazon, coat of arms, etc. [10.3.8. ] + + + + + + + + defines a location within a manuscript or manuscript part, usually as a (possibly discontinuous) sequence of folio references. [10.3.5. ] + + + + + + identifies the foliation scheme in terms of which the location is being specified by pointing to some foliation element defining it, or to some other equivalent resource. + + + + + + specifies the starting point of the location in a normalized form, typically a page number. + + + + + + specifies the end-point of the location in a normalized form, typically as a page number. + + + + + + + + + groups a number of locations which together form a distinct but discontinuous item within a manuscript or manuscript part, according to a specific foliation. [10.3.5. ] + + + + + + + identifies the foliation scheme in terms of which all the locations contained by the group are specified by pointing to some foliation element defining it, or to some other equivalent resource. + + + + + + + + + contains a word or phrase describing the material of which the object being described is composed. [10.3.2. ] + + + + + + + + + contains a word or phrase describing the type of object being referred to. [10.3.2. ] + + + + + + + + + (origin date) contains any form of date, used to identify the date of origin for a manuscript or manuscript part. [10.3.1. ] + + + + + + + + + + + + + + + + + + (origin place) contains any form of place name, used to identify the place of origin for a manuscript or manuscript part. [10.3.1. ] + + + + + + + + + + + + (second folio) marks the word or words taken from a fixed point in a codex (typically the beginning of the second leaf) in order to provide a unique identifier for it. [10.3.7. ] + + + + + + + + contains discussion of the leaf or quire signatures found within a codex. [10.3.7. ] + + + + + + + + contains a word or phrase describing a stamp or similar device. [10.3.3. ] + + + + + + + + + + contains a word or phrase describing a watermark or similar device. [10.3.3. ] + + + + + + + + (manuscript identifier) contains the information required to identify the manuscript being described. [10.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + An msIdentifier must contain either a repository or location of some type, or a manuscript name + + + + + + + + + contains the name of an organization such as a university or library, with which a manuscript is identified, generally its holding institution. [10.4. ] + + + + + + + + + contains the name of a repository within which manuscripts are stored, possibly forming part of an institution. [10.4. ] + + + + + + + + + contains the name of a collection of manuscripts, not necessarily located within a single repository. [10.4. ] + + + + + + + + + + (alternative identifier) contains an alternative or former structured identifier used for a manuscript, such as a former catalogue number. [10.4. ] + + + + + + + + + + + + + + + + + + + + + + + + (alternative name) contains any form of unstructured alternative name used for a manuscript, such as an ocellus nominum, or nickname. [10.4. ] + + + + + + + + + contains the colophon of a manuscript item: that is, a statement providing information regarding the date, place, agency, or reason for production of the manuscript. [10.6.1. ] + + + + + + + + contains the explicit of a manuscript item, that is, the closing words of the text proper, exclusive of any rubric or colophon which might follow it. [10.6.1. ] + + + + + + + + + + contains information concerning the manuscript's filiation, i.e. its relationship to other surviving manuscripts of the same text, its protographs, antigraphs and apographs. [10.6.1. ] + + + + + + + + + contains the string of words that denotes the end of a text division, often with an assertion as to its author and title, usually set off from the text itself by red ink, by a different size or type of script, or by some other such visual device. [10.6.1. ] + + + + + + + + + contains the incipit of a manuscript item, that is the opening words of the text proper, exclusive of any rubric which might precede it, of sufficient length to identify the work uniquely; such incipits were, in former times, frequently used a means of reference to a work, in place of a title. [10.6.1. ] + + + + + + + + + + (manuscript contents) describes the intellectual content of a manuscript or manuscript part, either as a series of paragraphs or as a series of structured manuscript items. [10.6. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + identifies the text types or classifications applicable to this object by pointing to other elements or resources defining the classification concerned. + + + + + + + + + + + + + (manuscript item) describes an individual work or item within the intellectual content of a manuscript or manuscript part. [10.6.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + identifies the text types or classifications applicable to this item by pointing to other elements or resources defining the classification concerned. + + + + + + + + + + + + + (structured manuscript item) contains a structured description for an individual work or item within the intellectual content of a manuscript or manuscript part. [10.6.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + identifies the text types or classifications applicable to this item by pointing to other elements or resources defining the classification concerned. + + + + + + + + + + + + + contains the text of any rubric or heading attached to a particular manuscript item, that is, a string of words through which a manuscript signals the beginning of a text division, often with an assertion as to its author and title, which is in some way set off from the text itself, usually in red ink, or by use of different size or type of script, or some other such visual device. [10.6.1. ] + + + + + + + + + contains an overview of the available information concerning some aspect of an item (for example, its intellectual content, history, layout, typography etc.) as a complement or alternative to the more detailed information carried by more specific elements. [10.6. ] + + + + + + + + (physical description) contains a full physical description of a manuscript or manuscript part, optionally subdivided using more specialized elements from the model.physDescPart class. [10.7. ] + + + + + + + + + + + + + + + contains a description of the physical components making up the object which is being described. [10.7.1. ] + + + + + + + + + + + + + + + + + a short project-specific name identifying the physical form of the carrier, for example as a codex, roll, fragment, partial leaf, cutting etc. + + + + + + + + + (support description) groups elements describing the physical support for the written part of a manuscript. [10.7.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + a short project-defined name for the material composing the majority of the support +Suggested values include: 1] paper; 2] parch(parchment) ; 3] mixed + + paper + + parch + (parchment) + mixed + + + + + + + + + + + contains a description of the materials etc. which make up the physical support for the written part of a manuscript. [10.7.1. ] + + + + + + + + contains a description of how the leaves or bifolia are physically arranged. [10.7.1. ] + + + + + + + + describes the numbering system or systems used to count the leaves or pages in a codex. [10.7.1.4. ] + + + + + + + + contains a description of the physical condition of the manuscript. [10.7.1.5. ] + + + + + + + + (layout description) collects the set of layout descriptions applicable to a manuscript. [10.7.2. ] + + + + + + + + + + + + + + + + + + + + describes how text is laid out on the page, including information about any ruling, pricking, or other evidence of page-preparation techniques. [10.7.2. ] + + + + + specifies the number of columns per page + + + + + + + + + + + specifies the number of ruled lines per column + + + + + + + + + + + specifies the number of written lines per column + + + + + + + + + + + + + + (description of hands) contains a description of all the different kinds of writing used in a manuscript. [10.7.2. ] + + + + + + + + + + + + + + + + + specifies the number of distinct hands identified within the manuscript + + + + + + + + + contains a description of the typefaces or other aspects of the printing of an incunable or other printed source. [10.7.2.1. ] + + + + + + + + + + + + + + + + + + + + contains a description of the scripts used in a manuscript or similar source. [10.7.2.1. ] + + + + + + + + + + + + + + + + + + + + contains description of type of musical notation. [10.7.2. ] + + + + + + + + (decoration description) contains a description of the decoration of a manuscript, either as a sequence of paragraphs, or as a sequence of topically organized decoNote elements. [10.7.3. ] + + + + + + + + + + + + + + + + + + + + (note on decoration) contains a note describing either a decorative component of a manuscript, or a fairly homogenous class of such components. [10.7.3. ] + + + + + + + + + contains a description of any significant additions found within a manuscript, such as marginalia or other annotations. [10.7.2. ] + + + + + + + + (binding description) describes the present and former bindings of a manuscript, either as a series of paragraphs or as a series of distinct binding elements, one for each binding of the manuscript. [10.7.3.1. ] + + + + + + + + + + + + + + + + + + + contains a description of one binding, i.e. type of covering, boards, etc. applied to a manuscript. [10.7.3.1. ] + + + + + + + + + + + + specifies whether or not the binding is contemporary with the majority of its contents + + + + + + + + + (seal description) describes the seals or other external items attached to a manuscript, either as a series of paragraphs or as a series of distinct seal elements, possibly with additional decoNotes. [10.7.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + contains a description of one seal or similar attachment applied to a manuscript. [10.7.3.2. ] + + + + + + + + + + + + specifies whether or not the seal is contemporary with the item to which it is affixed + + + + + + + + + (accompanying material) contains details of any significant additional material which may be closely associated with the manuscript being described, such as non-contemporaneous documents or fragments bound in with the manuscript at some earlier historical period. [10.7.3.3. ] + + + + + + + + + groups elements describing the full history of a manuscript or manuscript part. [10.8. ] + + + + + + + + + + + + + + + + + + + + + + + + + + contains any descriptive or other information concerning the origin of a manuscript or manuscript part. [10.8. ] + + + + + + + + + + contains any descriptive or other information concerning a single identifiable episode during the history of a manuscript or manuscript part, after its creation but before its acquisition. [10.8. ] + + + + + + + + + + + contains any descriptive or other information concerning the process by which a manuscript or manuscript part entered the holding institution. [10.8. ] + + + + + + + + + groups additional information, combining bibliographic information about a manuscript, or surrogate copies of it with curatorial or administrative information. [10.9. ] + + + + + + + + + + + + + + + + + + (administrative information) contains information about the present custody and availability of the manuscript, and also about the record description itself. [10.9.1. ] + + + + + + + + + + + + + + + + + + + + + (recorded history) provides information about the source and revision status of the parent manuscript description itself. [10.9.1. ] + + + + + + + + + + + + + + + + + + describes the original source for the information contained with a manuscript description. [10.9.1.1. ] + + + + + + + + (custodial history) contains a description of a manuscript's custodial history, either as running prose or as a series of dated custodial events. [10.9.1.2. ] + + + + + + + + + + + + + + + (custodial event) describes a single event during the custodial history of a manuscript. [10.9.1.2. ] + + + + + + + + + + contains information about any representations of the manuscript being described which may exist in the holding institution or elsewhere. [10.9. ] + + + + + + + + (manuscript part) contains information about an originally distinct manuscript or part of a manuscript, now forming part of a composite manuscript. [10.10. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WARNING: use of deprecated method — the use of the altIdentifier element as a direct child of the msPart element will be removed from the TEI on 2016-09-09 + + + + + + + + + (character or glyph) represents a glyph, or a non-standard character. [5. ] + + + + + + points to a description of the character or glyph intended. + + + + + + + + + (character) provides descriptive information about a character. [5.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (character name) contains the name of a character, expressed following Unicode conventions. [5.2. ] + + + + + + + + (character property) provides a name and value for some property of the parent character or glyph. [5.2. ] + + + + + + + + + + + + + + + (character declarations) provides information about nonstandard characters and glyphs. [5.2. ] + + + + + + + + + + + + + + + + + + (character glyph) provides descriptive information about a character glyph. [5.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (character glyph name) contains the name of a glyph, expressed following Unicode conventions for character names. [5.2. ] + + + + + + + + (locally-defined property name) contains a locally defined name for some property. [5.2.1. ] + + + + + + + + (character mapping) contains one or more characters which are related to the parent character or glyph in some respect, as specified by the type attribute. [5.2. ] + + + + + + + + + (unicode property name) contains the name of a registered Unicode normative or informative property. [5.2.1. ] + + + + + specifies the version number of the Unicode Standard in which this property name is defined. + + + + + + + + + contains a single value for some property, attribute, or other analysis. [5.2.1. ] + + + + + + + + + + + + (analysis) indicates one or more elements containing interpretations of the element on which the ana attribute appears. + + + + + + + + + + + (s-unit) contains a sentence-like division of a text. [17.1. 8.4.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + You may not nest one s element within + another: use seg instead + + + + + + + + + + + (clause) represents a grammatical clause. [17.1. ] + + + + + + + + + + (phrase) represents a grammatical phrase. [17.1. ] + + + + + + + + + + (word) represents a grammatical (not necessarily orthographic) word. [17.1. ] + + + + + + + + + + + + + + + + + + + + + provides a lemma for the word, such as an uninflected dictionary entry form. + + + + + + provides a pointer to a definition of the lemma for the word, for example in an online lexicon. + + + + + + + + + (morpheme) represents a grammatical morpheme. [17.1. ] + + + + + + + + + + + + + + + + supplies the morpheme's base form. + + + + + + + + + (character) represents a character. [17.1. ] + + + + + + + + + + (punctuation character) contains a character or string of characters regarded as constituting a single punctuation mark. [17.1. ] + + + + + + + + + + + + + + indicates the extent to which this punctuation mark conventionally separates words or phrases + + strong + the punctuation mark is a word separator + weak + the punctuation mark is not a word separator + inter + the punctuation mark may or may not be a word separator + + + + + + provides a name for the kind of unit delimited by this punctuation mark. + + + + + + indicates whether this punctuation mark precedes or follows the unit it delimits. + + + + + + + + + associates an interpretative annotation directly with a span of text. [17.3. ] + + + + +Only one of the attributes @target and @from may be supplied on + + + + + + +Only one of the attributes @target and @to may be supplied on + + + + + + +If @to is supplied on , @from must be supplied as well + + + + + +The attributes @to and @from on may each contain only a single value + + + + + + + + gives the identifier of the node which is the starting point of the span of text being annotated; if not accompanied by a to attribute, gives the identifier of the node of the entire span of text being annotated. + + + + + + gives the identifier of the node which is the end-point of the span of text being annotated. + + + + + + + + + (span group) collects together span tags. [17.3. ] + + + + + + + + + + + (interpretation) summarizes a specific interpretative annotation which can be linked to a span of text. [17.3. ] + + + + + + + + + + + + + + + + (interpretation group) collects together a set of related interpretations which share responsibility or type. [17.3. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (witness or witnesses) contains a space-delimited list of one or more sigla indicating the witnesses to this reading beginning or ending at this point. + + + + + + + + + + + + + + + (witness or witnesses) contains a space-delimited list of one or more pointers indicating the witnesses which attest to a given reading. + + + + + + + + + + + + + + + + + + + classifies the reading according to some useful typology. +Sample values include: 1] substantive; 2] orthographic + + + + + + + + classifies the cause for the variant reading, according to any appropriate typology of possible origins. +Sample values include: 1] homeoteleuton; 2] homeoarchy; 3] paleographicConfusion; 4] haplography; 5] dittography; 6] falseEmendation + + + + + + + + (variant sequence) provides a number indicating the position of this reading in a sequence, when there is reason to presume a sequence to the variants. + + + + + + + + indicates the hand responsible for a particular reading in the witness. + + + + + + + (apparatus entry) contains one entry in a critical apparatus, with an optional lemma and usually one or more readings or notes on the relevant passage. [12.1.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + classifies the variation contained in this element according to some convenient typology. + + + + + + identifies the beginning of the lemma in the base text. + + + + + + identifies the endpoint of the lemma in the base text. + + + + + + (location) indicates the location of the variation, when the location-referenced method of apparatus markup is used. + + + + + + + + + + + + + (list of apparatus entries) contains a list of apparatus entries. [12.2. ] + + + + + + + + + + + + + + + + + + + + + (lemma) contains the lemma, or base text, of a textual variation. [12.1. ] + + + + + + + + + + + + + + + + + + + (reading) contains a single reading within a textual variation. [12.1. ] + + + + + + + + + + + + + + + + + + + (reading group) within a textual variation, groups two or more readings perceived to have a genetic relationship or other affinity. [12.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Only one <lem> element may appear within a <rdgGrp> + + + + + + + + + + (witness detail) gives further information about a particular witness, or witnesses, to a particular reading. [12.1. ] + + + + + + + (witnesses) indicates the sigil or sigla identifying the witness or witnesses to which the detail refers. + + + + + + + + + describes the type of information given about the witness. + + + + + + + + + contains a list of one or more sigla of witnesses attesting a given reading, in a textual variation. [12.1.4. ] + + + + + + + + + (witness list) lists definitions for all the witnesses referred to by a critical apparatus, optionally grouped hierarchically. [12.1. ] + + + + + + + + + + + + + + + + + + + contains either a description of a single witness referred to within the critical apparatus, or a list of witnesses which is to be referred to by a single sigil. [12.1. ] + + + + + + + + + (fragmented witness start) indicates the beginning, or resumption, of the text of a fragmentary witness. [12.1.5. ] + + + + + + + + + (fragmented witness end) indicates the end, or suspension, of the text of a fragmentary witness. [12.1.5. ] + + + + + + + + + indicates the beginning of a lacuna in the text of a mostly complete textual witness. [12.1.5. ] + + + + + + + + + indicates the end of a lacuna in a mostly complete textual witness. [12.1.5. ] + + + + + + + + + declares the method used to encode text-critical variants. [12.1.1. ] + + + + indicates which method is used to encode the apparatus of variants. + + location-referenced + apparatus uses line numbers or other canonical reference scheme referenced in a base text. + double-end-point + apparatus indicates the precise locations of the beginning and ending of each lemma relative to a base text. + parallel-segmentation + alternate readings of a passage are given in parallel in the text; no notion of a base text is necessary. + + + + indicates whether the apparatus appears within the running text or external to it. + + internal + apparatus appears within the running text. + external + apparatus appears outside the base text. + + + + + + The @location value "external" is inconsistent with the + parallel-segmentation method of apparatus markup. + + + + + + + + contains text displayed in tabular form, in rows and columns. [14.1.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + indicates the number of rows in the table. + + + + + + (columns) indicates the number of columns in each row of the table. + + + + + + + + + contains one row of a table. [14.1.1. ] + + + + + + + + + + + contains one cell of a table. [14.1.1. ] + + + + + + + + + contains a mathematical or other formula. [14.2. ] + + + + + + + + + + + names the notation used for the content of the element. + + + + + + + + + encodes the presence of music notation in a text [14.3. ] + + + + + + + + + + + + + + + + + groups elements representing or containing graphic information such as an illustration, formula, or figure. [14.4. ] + + + + + + + + + + + + + + + + + + + (description of figure) contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image without displaying it. [14.4. ] + + + + + + + + + + + + diff --git a/src/assets/data/schema/tei_cp.rng b/src/assets/data/schema/tei_cp.rng new file mode 100644 index 000000000..4fa7cd6ee --- /dev/null +++ b/src/assets/data/schema/tei_cp.rng @@ -0,0 +1,11181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + high + medium + low + unknown + + + + + 0 + 1 + + + + + + + (\-?[\d]+/\-?[\d]+) + + + + + + + + 0 + + regular + irregular + unknown + + + + + + + + + + + + + + + + + + + + + + + + unknown + inapplicable + + + + + + + + + + + + + + [\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|gd|rem|vw|vh|vm) + + + + + + + + (\-?[0-9]+\.?[0-9]*,\-?[0-9]+\.?[0-9]*) + + + + + + + + [\d]+(\.[\d]+){0,2} + + + + + [\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3} + + + + + + + + (\p{L}|\p{N}|\p{P}|\p{S})+ + + + + + + + + + + + + + + + + + + + + + + + + + + [0-9.,DHMPRSTWYZ/:+\-]+ + + + + + + + + + + indicates the person, or group of people, to whom the element content is ascribed. + + + + + + + + + + + + + + + + provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind. + + + + + + + + (reference) provides an explicit means of locating a full definition for the entity being named by means of one or more URIs. + + + + + + + + + + + + + + + + + + + gives a minimum estimated value for the approximate measurement. + + + + + + + + gives a maximum estimated value for the approximate measurement. + + + + + + + + where the measurement summarizes more than one observation or a range, supplies the minimum value observed. + + + + + + + + where the measurement summarizes more than one observation or a range, supplies the maximum value observed. + + + + + + + + specifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by min and max, or the proportion of observed values that fall within that range. + + + + + + + + + + + + + + + + names the unit used for the measurement +Suggested values include: 1] cm(centimetres) ; 2] mm(millimetres) ; 3] in(inches) ; 4] lines; 5] chars(characters) + + cm + (centimetres) + mm + (millimetres) + in + (inches) + lines + lines of text + chars + (characters) characters of text + + + + + + + + + specifies the length in the units specified + + + + + + + + indicates the size of the object concerned using a project-specific vocabulary combining quantity and units in a single string of words. + + + + + + + + characterizes the precision of the values specified by the other attributes. + + + + + + + + where the measurement summarizes more than one observation, specifies the applicability of this measurement. +Sample values include: 1] all; 2] most; 3] range + + + + + + + + + + + + + + + in the case of damage (deliberate defacement, inking out, etc.) assignable to a distinct hand, signifies the hand responsible for the damage by pointing to one of the hand identifiers declared in the document header (see section ). + + + + + + + + categorizes the cause of the damage, if it can be identified. +Sample values include: 1] rubbing; 2] mildew; 3] smoke + + + + + + + + provides a coded representation of the degree of damage, either as a number between 0 (undamaged) and 1 (very extensively damaged), or as one of the codes high, medium, low, or unknown. The damage element with the degree attribute should only be used where the text may be read with some confidence; text supplied from other sources should be tagged as supplied. + + + + + + + + + + + assigns an arbitrary number to each stretch of damage regarded as forming part of the same physical phenomenon. + + + + + + + + + + + indicates whether or not the element bearing this attribute should be considered to mark the end of an orthographic token in the same way as whitespace. + + + + + + + + + + + (canonical reference) specifies the destination of the pointer by supplying a canonical reference expressed using the scheme defined in a refsDecl element in the TEI header + + + + + + + + + + + + + + + supplies the value of the date or time in a standard form, e.g. yyyy-mm-dd. + + + + + + + + specifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + specifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + indicates the starting point of the period in standard form, e.g. yyyy-mm-dd. + + + + + + + + indicates the ending point of the period in standard form, e.g. yyyy-mm-dd. + + + + + + + + + + + + + + + indicates the system or calendar to which the date represented by the content of this element belongs. + + + + + + + +@calendar indicates the system or calendar to which the date represented by the content of this element +belongs, but this element has no textual content. + + + + + + supplies a pointer to some location defining a named period of time within which the datable item is understood to have occurred. + + + + + + + + + + + + contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat. + + + + + + + + + + + + contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat. + + + + + + + + + + + + + + + indicates whether or not this element is selected by default when its parent is selected. + + true + This element is selected if its parent is selected + false + This element can only be selected explicitly, unless it is the only one of its kind, in which case it is selected if its parent is selected. + + + + + + + + + + + identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content. + + + + + + + + + + + + + + + specifies whether or not its parent element is fragmented in some way, typically by some other overlapping structure: for example a speech which is divided between two or more verse stanzas, a paragraph which is split across a page division, a verse line which is divided between two speakers. + + Y + (yes) the element is fragmented in some (unspecified) respect + N + (no) either the element is not fragmented, or no claim is made as to its completeness. + I + (initial) this is the initial part of a fragmented element + M + (medial) this is a medial part of a fragmented element + F + (final) this is the final part of a fragmented element + + + + + + + + + + + + + (organization) specifies how the content of the division is organized. + + composite + no claim is made about the sequence in which the immediate contents of this division are to be processed, or their inter-relationships. + uniform + the immediate contents of this element are regarded as forming a logical unit, to be processed in sequence. + + + + + + + + indicates whether this division is a sample of the original source and if so, from which part. + + initial + division lacks material present at end in source. + medial + division lacks material at start and end. + final + division lacks material at start. + unknown + position of sampled material within original unknown. + complete + division is not a sample. + + + + + + + + + + + describes the status of a document either currently or, when associated with a dated element, at the time indicated. +Sample values include: 1] approved; 2] candidate; 3] cleared; 4] deprecated; 5] draft; 6] embargoed; 7] expired; 8] frozen; 9] galley; 10] proposed; 11] published; 12] recommendation; 13] submitted; 14] unfinished; 15] withdrawn + + + + + + + + + + + + + (certainty) signifies the degree of certainty associated with the intervention or interpretation. + + + + + + + + (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber. + + + + + + + + + + + + + + + + + + indicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation. +Suggested values include: 1] internal; 2] external; 3] conjecture + + + + internal + there is internal evidence to support the intervention. + external + there is external evidence to support the intervention. + conjecture + the intervention or interpretation has been made by the editor, cataloguer, or scholar on the basis of their expertise. + + + + + + + + + + + indicates whether this is an instant revision or not. + + + + + + + + + + + + + + + + + + + + + + (identifier) provides a unique identifier for the element bearing the attribute. + + + + + + + + (number) gives a number (or other label) for an element, which is not necessarily unique within the document. + + + + + + + + (language) indicates the language of the element content using a tag generated according to BCP 47. + + + + + + + + (rendition) indicates how the element in question was rendered or presented in the source text. + + + + + + + + + + + + contains an expression in some formal style definition language which defines the rendering or presentation used for this element in the source text + + + + + + + + points to a description of the rendering or presentation used for this element in the source text. + + + + + + + + + + + + provides a base URI reference with which applications can resolve relative URI references into absolute URI references. + + + + + + + + signals an intention about how white space should be managed by applications. + + default + signals that the application's default white-space processing modes are acceptable + preserve + indicates the intent that applications preserve all white space + + + + + + + + + + + + + + + + gives a name or other identifier for the scribe believed to be responsible for this hand. + + + + + + + + points to a full description of the scribe concerned, typically supplied by a person element elsewhere in the description. + + + + + + + + + + + + characterizes the particular script or writing style used by this hand, for example secretary, copperplate, Chancery, Italian, etc. + + + + + + + + + + + + points to a full description of the script or writing style used by this hand, typically supplied by a scriptNote element elsewhere in the description. + + + + + + + + + + + + describes the tint or type of ink, e.g. brown, or other writing medium, e.g. pencil + + + + + + + + + + + + specifies how widely this hand is used in the manuscript. + + sole + only this hand is used throughout the manuscript + major + this hand is used through most of the manuscript + minor + this hand is used occasionally in the manuscript + + + + + + + + + + + (MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type + + + + + + + + + + + + + + + + + + Where the media are displayed, indicates the display width + + + + + + + + Where the media are displayed, indicates the display height + + + + + + + + Where the media are displayed, indicates a scale factor to be applied when generating the desired display size + + + + + + + + + + (uniform resource locator) specifies the URL from which the media concerned may be obtained. + + + + + + + + + + + + indicates what kind of phenomenon is being noted in the passage. +Sample values include: 1] image; 2] character; 3] theme; 4] allusion + + + + + + + + (instances) points to instances of the analysis or interpretation represented by the current element. + + + + + + + + + + + + + + + + + indicates the units used for the measurement, usually using the standard symbol for the desired units. +Suggested values include: 1] m(metre) ; 2] kg(kilogram) ; 3] s(second) ; 4] Hz(hertz) ; 5] Pa(pascal) ; 6] Ω(ohm) ; 7] L(litre) ; 8] t(tonne) ; 9] ha(hectare) ; 10] Å(ångström) ; 11] mL(millilitre) ; 12] cm(centimetre) ; 13] dB(decibel) ; 14] kbit(kilobit) ; 15] Kibit(kibibit) ; 16] kB(kilobyte) ; 17] KiB(kibibyte) ; 18] MB(megabyte) ; 19] MiB(mebibyte) + + m + (metre) SI base unit of length + kg + (kilogram) SI base unit of mass + s + (second) SI base unit of time + Hz + (hertz) SI unit of frequency + Pa + (pascal) SI unit of pressure or stress + + (ohm) SI unit of electric resistance + L + (litre) 1 dm³ + t + (tonne) 10³ kg + ha + (hectare) 1 hm² + + (ångström) 10⁻¹⁰ m + mL + (millilitre) + cm + (centimetre) + dB + (decibel) see remarks, below + kbit + (kilobit) 10³ or 1000 bits + Kibit + (kibibit) 2¹⁰ or 1024 bits + kB + (kilobyte) 10³ or 1000 bytes + KiB + (kibibyte) 2¹⁰ or 1024 bytes + MB + (megabyte) 10⁶ or 1 000 000 bytes + MiB + (mebibyte) 2²⁰ or 1 048 576 bytes + + + + + + + + + specifies the number of the specified units that comprise the measurement + + + + + + + + indicates the substance that is being measured + + + + + + + + + + + + + + + + + may be used to specify further information about the entity referenced by this name in the form of a set of whitespace-separated values, for example the occupation of a person, or the status of a place. + + + + + + + + + + + + (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it. + + + + + + + + + + + + + + + specifies where this item is placed +Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6] overleaf; 7] above; 8] end; 9] inline; 10] inspace + + + + below + below the line + bottom + at the foot of the page + margin + in the margin (left, right, or both) + top + at the top of the page + opposite + on the opposite, i.e. facing, page + overleaf + on the other side of the leaf + above + above the line + end + at the end of e.g. chapter or volume. + inline + within the body of the text. + inspace + in a predefined space, for example left by an earlier scribe. + + + + + + + + + + + + + + + characterizes the element in some sense, using any convenient classification scheme or typology. + + + + + + + + provides a sub-categorization of the element, if needed + + + + + + + The element should not be categorized in detail with @subtype + unless also categorized in general with @type + + + + + + + + + + + specifies the language of the content to be found at the destination referenced by target, using a language tag generated according to BCP 47. + + + + + + + @targetLang can only be used if @target is specified. + + + + + + specifies the destination of the reference by supplying one or more URI References + + + + + + + + + + + + specifies the intended meaning when the target of a pointer is itself a pointer. + + all + if the element pointed to is itself a pointer, then the target of that pointer will be taken, and so on, until an element is found which is not a pointer. + one + if the element pointed to is itself a pointer, then its target (whether a pointer or not) is taken as the target of this pointer. + none + no further evaluation of targets is carried out beyond that needed to find the element specified in the pointer's target. + + + + + + + + + + + + + + optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie. + + + + + + + + + + + + + + (target function) describes the function of each of the values of the target attribute of the enclosed link, join, or alt tags. + + + + + + + + + + + + + + + + + + + characterizes the function of the segment. + + + + + + + + + + + supplies the sort key for this element in an index, list or group which contains it. + + + + + + + + + + + + (edition) supplies a sigil or other arbitrary identifier for the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text. + + + + + + + + + + + + (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text. + + + + + + + + + + + + + + + indicates the end of a span initiated by the element bearing this attribute. + + + + + + + +The element indicated by @spanTo () must follow the current element + + + + + + + + + + + identifies the language used to describe the rendition. + + css + Cascading Stylesheet Language + xslfo + Extensible Stylesheet Language Formatting Objects + free + Informal free text description + other + A user-defined rendition description language + + + + + + + + supplies a version number for the style language provided in scheme. + + + + + + + + @schemeVersion can only be used if @scheme is specified. + + + + + + + + + + + + indicates the kind of information held in this cell or in each cell of this row. +Suggested values include: 1] label; 2] data + + label + labelling or descriptive information only. + data + data values. + + + + + + + + + indicates the number of rows occupied by this cell or row. + + + + + + + + (columns) indicates the number of columns occupied by this cell or row. + + + + + + + + + + + + indicates the location within a temporal alignment at which this element begins. + + + + + + + + indicates the location within a temporal alignment at which this element ends. + + + + + + + + + + + + + + + indicates the hand of the agent which made the intervention. + + + + + + + + indicates the effect of the intervention, for example in the case of a deletion, strikeouts which include too much or too little text, or in the case of an addition, an insertion which duplicates some of the text already present. +Sample values include: 1] duplicate; 2] duplicate-partial; 3] excessStart; 4] excessEnd; 5] shortStart; 6] shortEnd; 7] partial; 8] unremarkable + + + + + + + + documents the presumed cause for the intervention. + + fix + repeated for the purpose of fixation + unclear + repeated to clarify a previously illegible or badly written text or mark + + + + + + + + (sequence) assigns a sequence number related to the order in which the encoded features carrying this attribute are believed to have occurred. + + + + + + + + + + + specifies the date on which the source text was extracted and sent to the translator + + + + + + + + + + + + + identifies the unit of information conveyed by the element, e.g. columns, pages, volume. +Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] part; 7] column + + volume + the element contains a volume number. + issue + the element contains an issue number, or volume and issue numbers. + page + the element contains a page number or page range. + line + the element contains a line number or line range. + chapter + the element contains a chapter indication (number and/or title) + part + the element identifies a part of a book or collection. + column + the element identifies a column. + + + + + + + + + specifies the starting point of the range of units indicated by the unit attribute. + + + + + + + + specifies the end-point of the range of units indicated by the unit attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + provides a pointer to the bibliographical source from which a quotation or citation is drawn. + + + + + + + + + + + + + + + + + + + + + + + indicates whether the name component is given in full, as an abbreviation or simply as an initial. + + yes + the name component is spelled out in full. + abb + (abbreviated) the name component is given in an abbreviated form. + init + (initial letter) the name component is indicated only by one initial. + + + + + + + + specifies the sort order of the name component in relation to others within the name. + + + + + + + + + + + + + + + provides a conventional name for the kind of section changing at this milestone. +Suggested values include: 1] page; 2] column; 3] line; 4] book; 5] poem; 6] canto; 7] speaker; 8] stanza; 9] act; 10] scene; 11] section; 12] absent; 13] unnumbered + + page + physical page breaks (synonymous with the pb element). + column + column breaks. + line + line breaks (synonymous with the lb element). + book + any units termed book, liber, etc. + poem + individual poems in a collection. + canto + cantos or other major sections of a poem. + speaker + changes of speaker or narrator. + stanza + stanzas within a poem, book, or canto. + act + acts within a play. + scene + scenes within a play or act. + section + sections of any kind. + absent + passages not present in the reference edition. + unnumbered + passages present in the text, but not to be included as part of the reference. + + + + + + + (paragraph) marks paragraphs in prose. [3.1. 7.2.5. ] + + + + + + + + + + identifies a word or phrase as belonging to some language other than that of the surrounding text. [3.3.2.1. ] + + + + + + + + (emphasized) marks words or phrases which are stressed or emphasized for linguistic or rhetorical effect. [3.3.2.2. 3.3.2. ] + + + + + + + + (highlighted) marks a word or phrase as graphically distinct from the surrounding text, for reasons concerning which no claim is made. [3.3.2.2. 3.3.2. ] + + + + + + + + identifies any word or phrase which is regarded as linguistically distinct, for example as archaic, technical, dialectal, non-preferred, etc., or as forming part of a sublanguage. [3.3.2.3. ] + + + + + specifies the sublanguage or register to which the word or phrase is being assigned + + + + + + specifies how the phrase is distinct diachronically + + + + + + specifies how the phrase is distinct diatopically + + + + + + specifies how the phrase is distinct diastatically + + + + + + + + + (speech or thought) indicates passages thought or spoken aloud, whether explicitly indicated in the source or not, whether directly or indirectly reported, whether by real people or fictional characters. [3.3.3. ] + + + + + + may be used to indicate whether the quoted matter is regarded as having been vocalized or signed. + + + + + + may be used to indicate whether the quoted matter is regarded as direct or indirect speech. + + + + + + + + + (quotation) contains a phrase or passage attributed by the narrator or author to some agency external to the text. [3.3.3. 4.3.1. ] + + + + + + + + + + + (quoted) contains material which is distinguished from the surrounding text using quotation marks or a similar method, for any one of a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used. [3.3.3. ] + + + + + + + may be used to indicate whether the offset passage is spoken or thought, or to characterize it more finely. +Suggested values include: 1] spoken; 2] thought; 3] written; 4] soCalled; 5] foreign; 6] distinct; 7] term; 8] emph; 9] mentioned + + spoken + representation of speech + thought + representation of thought, e.g. internal monologue + written + quotation from a written source + soCalled + authorial distance + foreign + + distinct + linguistically distinct + term + technical term + emph + rhetorically emphasized + mentioned + refering to itself, not its normal referent + + + + + + + + + + (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. 4.3.1. 9.3.5.1. ] + + + + + + + + + + + + + + + + + + marks words or phrases mentioned, not used. [3.3.3. ] + + + + + + + + contains a word or phrase for which the author or narrator indicates a disclaiming of responsibility, for example by the use of scare quotes or italics. [3.3.3. ] + + + + + + + + (description) contains a brief description of the object documented by its parent element, including its intended usage, purpose, or application where this is appropriate. [22.4.1. ] + + + + + + + + + + identifies a phrase or word used to provide a gloss or definition for some other word or phrase. [3.3.4. 22.4.1. ] + + + + + + + + + + + + + contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. [3.3.4. ] + + + + + + + + + + + + + + (Latin for thus or so + ) contains text reproduced although apparently incorrect or inaccurate. [3.4.1. ] + + + + + + + + + (correction) contains the correct form of a passage apparently erroneous in the copy text. [3.4.1. ] + + + + + + + + + + groups a number of alternative encodings for the same point in a text. [3.4. ] + + + + + + + + + + + + + (regularization) contains a reading which has been regularized or normalized in some sense. [3.4.2. 12. ] + + + + + + + + + + (original form) contains a reading which is marked as following the original, rather than being normalized or corrected. [3.4.2. 12. ] + + + + + + + + + indicates a point where material has been omitted in a transcription, whether for editorial reasons described in the TEI header, as part of sampling practice, or because the material is illegible, invisible, or inaudible. [3.4.3. ] + + + + + + + + + + + gives the reason for omission. Sample values include sampling, inaudible, irrelevant, cancelled. + + + + + + + + + + in the case of text omitted from the transcription because of deliberate deletion by an identifiable hand, indicates the hand which made the deletion. + + + + + + in the case of text omitted because of damage, categorizes the cause of the damage, if it can be identified. +Sample values include: 1] rubbing; 2] mildew; 3] smoke + + + + + + + + + (addition) contains letters, words, or phrases inserted in the source text by an author, scribe, or a previous annotator or corrector. [3.4.3. ] + + + + + + + + + + + (deletion) contains a letter, word, or passage deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, or a previous annotator or corrector. [3.4.3. ] + + + + + + + + + + contains a word, phrase, or passage which cannot be transcribed with certainty because it is illegible or inaudible in the source. [11.3.3.1. 3.4.3. ] + + + + + + indicates why the material is hard to transcribe. + + + + + + + + + + Where the difficulty in transcription arises from action (partial deletion, etc.) assignable to an identifiable hand, signifies the hand responsible for the action. + + + + + + Where the difficulty in transcription arises from damage, categorizes the cause of the damage, if it can be identified. +Sample values include: 1] rubbing; 2] mildew; 3] smoke + + + + + + + + + (name, proper noun) contains a proper noun or noun phrase. [3.5.1. ] + + + + + + + + + + + + (referencing string) contains a general purpose name or referring string. [13.2.1. 3.5.1. ] + + + + + + + + + + + (electronic mail address) contains an email address identifying a location to which email messages can be delivered. [3.5.2. ] + + + + + + + + contains a postal address, for example of a publisher, an organization, or an individual. [3.5.2. 2.2.4. 3.11.2.4. ] + + + + + + + + + + + + + + + + + + + + (address line) contains one line of a postal address. [3.5.2. 2.2.4. 3.11.2.4. ] + + + + + + + + contains a full street address including any name or number identifying a building as well as the name of the street or route on which it is located. [3.5.2. ] + + + + + + + + (postal code) contains a numerical or alphanumeric code used as part of a postal address to simplify sorting or delivery of mail. [3.5.2. ] + + + + + + + + (postal box or post office box) contains a number or other identifier for some postal delivery point other than a street address. [3.5.2. ] + + + + + + + + (number) contains a number, written in any form. [3.5.3. ] + + + + + + indicates the type of numeric value. +Suggested values include: 1] cardinal; 2] ordinal; 3] fraction; 4] percentage + + cardinal + absolute number, e.g. 21, 21.5 + ordinal + ordinal number, e.g. 21st + fraction + fraction, e.g. one half or three-quarters + percentage + a percentage + + + + + + + supplies the value of the number in standard form. + + + + + + + + + contains a word or phrase referring to some quantity of an object or commodity, usually comprising a number, a unit, and a commodity name. [3.5.3. ] + + + + + + specifies the type of measurement in any convenient typology. + + + + + + + + + (measure group) contains a group of dimensional specifications which relate to the same object, for example the height and width of a manuscript page. [10.3.4. ] + + + + + + + + + + + + + + + + contains a date in any format. [3.5.4. 2.2.4. 2.5. 3.11.2.4. 15.2.3. 13.3.6. ] + + + + + + + + + + + + + + + + + + contains a phrase defining a time of day in any format. [3.5.4. ] + + + + + + + + + + + + + + + + + + (abbreviation) contains an abbreviation of any sort. [3.5.5. ] + + + + + + + allows the encoder to classify the abbreviation according to some convenient typology. + + + + + + + + + (expansion) contains the expansion of an abbreviation. [3.5.5. ] + + + + + + + + + (pointer) defines a pointer to another location. [3.6. 16.1. ] + + + + Only one of the +attributes @target and @cRef may be supplied on . + + + + + + + + + + + + + + (reference) defines a reference to another location, possibly modified by additional text or comment. [3.6. 16.1. ] + + + + Only one of the + attributes @target' and @cRef' may be supplied on + + + + + + + + + + + + + + + contains any sequence of items organized as a list. [3.7. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + describes the nature of the items in the list. +Suggested values include: 1] gloss; 2] index; 3] instructions; 4] litany; 5] syllogism + + gloss + each list item glosses some term or concept, which is given by a label element preceding the list item. + index + each list item is an entry in an index such as the alphabetical topical index at the back of a print volume. + instructions + each list item is a step in a sequence of instructions, as in a recipe. + litany + each list item is one of a sequence of petitions, supplications or invocations, typically in a religious ritual. + syllogism + each list item is part of an argument consisting of two or more propositions and a final conclusion derived from them. + + + + + + + + + + contains one component of a list. [3.7. 2.5. ] + + + + + + + + + contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. [3.7. ] + + + + + + + + + + (heading) contains any type of heading, for example the title of a section, or the heading of a list, glossary, manuscript description, etc. [4.2.1. ] + + + + + + + + + + + + + + + + + + + (heading for list labels) contains the heading for the label or term column in a glossary list or similar structured list. [3.7. ] + + + + + + + + (heading for list items) contains the heading for the item or gloss column in a glossary list or similar structured list. [3.7. ] + + + + + + + + contains a note or annotation. [3.8.1. 2.2.6. 3.11.2.8. 9.3.5.4. ] + + + + + + + + + indicates whether the copy text shows the exact place of reference for the note. + + + + + + points to the end of the span to which the note is attached, if the note is not embedded in the text at that point. + + + + + + + + + + + + + (index entry) marks a location to be indexed for whatever purpose. [3.8.2. ] + + + + + + + + + + + + + a single word which follows the rules defining a legal XML name (see ), supplying a name to specify which index (of several) the index entry belongs to. + + + + + + + + + indicates the location of any form of external media such as an audio or video clip etc. [3.9. ] + + + + + + + + + + + + + (MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type + + + + + + + + + + + + indicates the location of an inline graphic, illustration, or figure. [3.9. ] + + + + + + + + + + + + + provides encoded binary data representing an inline graphic, audio, video or other object. [3.9. ] + + + + + + + + The encoding used to encode the binary data. If not specified, this is assumed to be Base64. + + + + + + + + + + + + + marks a boundary point separating any kind of section of a text, typically but not necessarily indicating a point at which some part of a standard reference system changes, where the change is not represented by a structural element. [3.10.3. ] + + + + + + + + + + + + + (gathering begins) marks the point in a transcribed codex at which a new gathering or quire begins. [3.10.3. ] + + + + + + + + + + + (page break) marks the start of a new page in a paginated document. [3.10.3. ] + + + + + + + + + + + + (line break) marks the start of a new (typographic) line in some edition or version of a text. [3.10.3. 7.2.5. ] + + + + + + + + + + + + (column break) marks the beginning of a new column of a text on a multi-column page. [3.10.3. ] + + + + + + + + + + + + (analytic level) contains bibliographic elements describing an item (e.g. an article or poem) published within a monograph or journal and not as an independent publication. [3.11.2.1. ] + + + + + + + + + + + + + + + + + + + + (monographic level) contains bibliographic elements describing an item (e.g. a book or journal) published as an independent item (i.e. as a separate physical object). [3.11.2.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (series information) contains information about the series in which a book or other bibliographic item has appeared. [3.11.2.1. ] + + + + + + + + + + + + + + + + + + + + + + in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [3.11.2.2. 2.2.1. ] + + + + + + + + + contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. [3.11.2.2. ] + + + + + + + + + (statement of responsibility) supplies a statement of responsibility for the intellectual content of a text, edition, recording, or series, where the specialized elements for authors, editors, etc. do not suffice or do not apply. May also be used to encode information about individuals or organizations which have played a role in the production or distribution of a bibliographic work. [3.11.2.2. 2.2.1. 2.2.2. 2.2.5. ] + + + + + + + + + + + + + + + + + + + + + + + + + + (responsibility) contains a phrase describing the nature of a person's intellectual responsibility, or an organization's role in the production or distribution of a work. [3.11.2.2. 2.2.1. 2.2.2. 2.2.5. ] + + + + + + + + + + contains a title for any kind of work. [3.11.2.2. 2.2.1. 2.2.5. ] + + + + + + + classifies the title according to some convenient typology. +Sample values include: 1] main; 2] sub(subordinate) ; 3] alt(alternate) ; 4] short; 5] desc(descriptive) + + + + + + indicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material. + + a + (analytic) the title applies to an analytic item, such as an article, poem, or other work published as part of a larger item. + m + (monographic) the title applies to a monograph such as a book or other item considered to be a distinct publication, including single volumes of multi-volume works + j + (journal) the title applies to any serial or periodical publication such as a journal, magazine, or newspaper + s + (series) the title applies to a series of otherwise distinct publications such as a collection + u + (unpublished) the title applies to any unpublished material (including theses and dissertations unless published by a commercial press) + + + + + + + + + contains the formalized descriptive title for a meeting or conference, for use in a bibliographic description for an item derived from such a meeting, or as a heading or preamble to publications emanating from it. [3.11.2.2. ] + + + + + + + + + groups information relating to the publication or distribution of a bibliographic item. [3.11.2.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + provides the name of the organization responsible for the publication or distribution of a bibliographic item. [3.11.2.4. 2.2.4. ] + + + + + + + + (scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. [3.11.2.5. ] + + + + + + identifies the type of information conveyed by the element, e.g. columns, pages, volume. +Suggested values include: 1] vol(volume) ; 2] issue; 3] pp(pages) ; 4] ll(lines) ; 5] chap(chapter) ; 6] part + + vol + (volume) the element contains a volume number. + issue + the element contains an issue number, or volume and issue numbers. + pp + (pages) the element contains a page number or page range. + ll + (lines) the element contains a line number or line range. + chap + (chapter) the element contains a chapter indication (number and/or title) + part + the element identifies a part of a book or collection. + + + + + + + + + + (cited range) defines the range of cited content, often represented by pages or other units [3.11.2.5. ] + + + + + + + + + + (publication place) contains the name of the place where a bibliographic item was published. [3.11.2.4. ] + + + + + + + + + (bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [3.11.1. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + (structured bibliographic citation) contains a structured bibliographic citation, in which only bibliographic sub-elements appear and in a specified order. [3.11.1. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (citation list) contains a list of bibliographic citations of any kind. [3.11.1. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + contains or references some other bibliographic item which is related to the present one in some specified manner, for example as a constituent or alternative version of it. [3.11.2.7. ] + + + + + + + + + +If the @target attribute on is used, the +relatedItem element must be empty + + + + + A relatedItem element should have either a 'target' attribute + or a child element to indicate the related bibliographic item + + + + + + + points to the related bibliographic element by means of an absolute or relative URI reference + + + + + + + + + (verse line) contains a single, possibly incomplete, line of verse. [3.12.1. 3.12. 7.2.5. ] + + + + + + + + + (line group) contains one or more verse lines functioning as a formal unit, e.g. a stanza, refrain, verse paragraph, etc. [3.12.1. 3.12. 7.2.5. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An lg element + must contain at least one child l, lg or gap element. + + + + + + + + + + + + (speech) contains an individual speech in a performance text, or a passage presented as such in a prose or verse text. [3.12.2. 3.12. 7.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment. [3.12.2. ] + + + + + + + + (stage direction) contains any kind of stage direction within a dramatic text or fragment. [3.12.2. 3.12. 7.2.4. ] + + + + + + + indicates the kind of stage direction. +Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed + + setting + describes a setting. + entrance + describes an entrance. + exit + describes an exit. + business + describes stage business. + novelistic + is a narrative, motivating stage direction. + delivery + describes how a character speaks. + modifier + gives some detail about a character. + location + describes a location. + mixed + more than one of the above + + + + + + + + + + contains the whole of a TEI encoded corpus, comprising a single corpus header and one or more TEI elements, each containing a single text header and a text. [4. 15.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + The version of the TEI scheme + + + + + + + + + (automatically generated text division) indicates the location at which a textual division generated automatically by a text-processing application is to appear. [3.8.2. ] + + + + + + + specifies what type of generated text division (e.g. index, table of contents, etc.) is to appear. +Sample values include: 1] index; 2] toc; 3] figlist; 4] tablist + + + + + + + + + (text language) describes the languages and writing systems identified within the bibliographic work being described, rather than its description. [3.11.2.4. 10.6.6. ] + + + + + (main language) supplies a code which identifies the chief language used in the bibliographic work. + + + + + + (other languages) one or more codes identifying any other languages used in the bibliographic work. + + + + + + + + + + + + + + + + + specifies a regular expression against which the values of other attributes can be matched. + + + + + + specifies a replacement pattern, that is, the skeleton of a relative or absolute URI containing references to groups in the matchPattern which, once subpattern substitution has been performed, complete the URI. + + + + + + (TEI header) supplies the descriptive and declarative information making up an electronic title page for every TEI-conformant document. [2.1.1. 15.1. ] + + + + + + + + + + + + + specifies the kind of document to which the header is attached, for example whether it is a corpus or individual text. +Sample values include: 1] text; 2] corpus + + + + + + + + + (file description) contains a full bibliographic description of an electronic file. [2.2. 2.1.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + (title statement) groups information about the title of a work and those responsible for its content. [2.2.1. 2.2. ] + + + + + + + + + + + + + + + specifies the name of a sponsoring organization or institution. [2.2.1. ] + + + + + + + + + (funding body) specifies the name of an individual, institution, or organization responsible for the funding of a project or text. [2.2.1. ] + + + + + + + + + (principal researcher) supplies the name of the principal researcher responsible for the creation of an electronic text. [2.2.1. ] + + + + + + + + + (edition statement) groups information relating to one edition of a text. [2.2.2. 2.2. ] + + + + + + + + + + + + + + + + + + describes the particularities of one edition of a text. [2.2.2. ] + + + + + + + + describes the approximate size of a text stored on some carrier medium or of some other object, digital or non-digital, specified in any convenient units. [2.2.3. 2.2. 3.11.2.4. 10.7.1. ] + + + + + + + + (publication statement) groups information concerning the publication or distribution of an electronic or other text. [2.2.4. 2.2. ] + + + + + + + + + + + + + + + + + + + + + + supplies the name of a person or other agency responsible for the distribution of a text. [2.2.4. ] + + + + + + + + (release authority) supplies the name of a person or other agency responsible for making a work available, other than a publisher or distributor. [2.2.4. ] + + + + + + + + (identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. [2.2.4. 2.2.5. 3.11.2.4. ] + + + + + + + + + + + + categorizes the identifier, for example as an ISBN, Social Security number, etc. + + + + + + + + + supplies information about the availability of a text, for example any restrictions on its use or distribution, its copyright status, any licence applying to it, etc. [2.2.4. ] + + + + + + + + + + + supplies a code identifying the current availability of the text. + + free + the text is freely available. + unknown + the status of the text is unknown. + restricted + the text is not freely available. + + + + + + + + + contains information about a licence or other legal agreement applicable to the text. [2.2.4. ] + + + + + + + + + + (series statement) groups information about the series, if any, to which a publication belongs. [2.2.5. 2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (notes statement) collects together any notes providing information about a text additional to that recorded in other parts of the bibliographic description. [2.2.6. 2.2. ] + + + + + + + + + + + + + (source description) describes the source from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as "born digital" for a text which has no previous existence. [2.2.7. ] + + + + + + + + + + + + + + + + + + + + (fully-structured bibliographic citation) contains a fully-structured bibliographic citation, in which all components of the TEI file description are present. [3.11.1. 2.2. 2.2.7. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (encoding description) documents the relationship between an electronic text and the source or sources from which it was derived. [2.3. 2.1.1. ] + + + + + + + + + + + + + + + (project description) describes in detail the aim or purpose for which an electronic file was encoded, together with any other relevant information concerning the process by which it was assembled or collected. [2.3.1. 2.3. 15.3.2. ] + + + + + + + + + + + (sampling declaration) contains a prose description of the rationale and methods used in sampling texts in the creation of a corpus or collection. [2.3.2. 2.3. 15.3.2. ] + + + + + + + + + + + (editorial practice declaration) provides details of editorial principles and practices applied during the encoding of a text. [2.3.3. 2.3. 15.3.2. ] + + + + + + + + + + + + + + (correction principles) states how and under what circumstances corrections have been made in the text. [2.3.3. 15.3.2. ] + + + + + + + + indicates the degree of correction applied to the text. + + high + the text has been thoroughly checked and proofread. + medium + the text has been checked at least once. + low + the text has not been checked. + unknown + the correction status of the text is unknown. + + + + + + indicates the method adopted to indicate corrections within the text. + + silent + corrections have been made silently + markup + corrections have been represented using markup + + + + + + + + + indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form. [2.3.3. 15.3.2. ] + + + + + + + + indicates a bibliographic description or other resource documenting the principles underlying the normalization carried out. + + + + + + indicates the method adopted to indicate normalizations within the text. + + silent + normalization made silently + markup + normalization represented using markup + + + + + + + + + specifies editorial practice adopted with respect to quotation marks in the original. [2.3.3. 15.3.2. ] + + + + + + +On , either the @marks attribute should be used, or a paragraph of description provided + + + + + + + (quotation marks) indicates whether or not quotation marks have been retained as content within the text. + + none + no quotation marks have been retained + some + some quotation marks have been retained + all + all quotation marks have been retained + + + + + + + + + summarizes the way in which hyphenation in a source text has been treated in an encoded version of it. [2.3.3. 15.3.2. ] + + + + + + + + (end-of-line) indicates whether or not end-of-line hyphenation has been retained in a text. + + all + all end-of-line hyphenation has been retained, even though the lineation of the original may not have been. + some + end-of-line hyphenation has been retained in some cases. + hard + all soft end-of-line hyphenation has been removed: any remaining end-of-line hyphenation should be retained. + none + all end-of-line hyphenation has been removed: any remaining hyphenation occurred within the line. + + + + + + + + + describes the principles according to which the text has been segmented, for example into sentences, tone-units, graphemic strata, etc. [2.3.3. 15.3.2. ] + + + + + + + + + + + (standard values) specifies the format used when standardized date or number values are supplied. [2.3.3. 15.3.2. ] + + + + + + + + + + + describes the scope of any analytic or interpretive information added to the text in addition to the transcription. [2.3.3. ] + + + + + + + + + + + specifies editorial practice adopted with respect to punctuation marks in the original. [2.3.3. 3.2. ] + + + + + + + + indicates whether or not punctation marks have been retained as content within the text. + + none + no punctuation marks have been retained + some + some punctuation marks have been retained + all + all punctuation marks have been retained + + + + + + indicates whether punctation marks have been captured inside or outside of an adjacent element. + + internal + punctuation marks are captured inside adjacent elements + external + punctuation marks are captured outside adjacent elements + + + + + + + + + (tagging declaration) provides detailed information about the tagging applied to a document. [2.3.4. 2.3. ] + + + + + + + + + + + + + + + supplies information about the usage of a specific element within a text. [2.3.4. ] + + + + (generic identifier) specifies the name (generic identifier) of the element indicated by the tag, within the namespace indicated by the parent namespace element. + + + + + specifies the number of occurrences of this element within the text. + + + + + + (with unique identifier) specifies the number of occurrences of this element within the text which bear a distinct value for the global xml:id attribute. + + + + + + specifies the identifier of a rendition element which defines how this element was rendered in the source text. + + + + + + + + + + + + + supplies the formal name of the namespace to which the elements documented by its children belong. [2.3.4. ] + + + + + + specifies the full formal name of the namespace concerned. + + + + + + + + supplies information about the rendition or appearance of one or more elements in the source text. [2.3.4. ] + + + + + + where CSS is used, provides a way of defining pseudo-elements, that is, styling rules applicable to specific sub-portions of an element. +Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after + + + + + + + + + (style definition language declaration) specifies the name of the formal language in which style or renditional information is supplied elsewhere in the document. The specific version of the scheme may also be supplied. [2.3.5. ] + + + + + + + + + + + + (references declaration) specifies how canonical references are constructed for this text. [2.3.6.3. 2.3. 2.3.6. ] + + + + + + + + + + + + + + + + + + + (canonical reference pattern) specifies an expression and replacement pattern for transforming a canonical reference into a URI. [2.3.6.3. 2.3.6. 2.3.6.2. ] + + + + + + + + + + + (prefixing scheme used in data.pointer values) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. ] + + + + + + + supplies a name which functions as the prefix for an abbreviated pointing scheme such as a private URI scheme. The prefix constitutes the text preceding the first colon. + + + + + + + + (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. ] + + + + + + + + + + + + + + + (reference state) specifies one component of a canonical reference defined by the milestone method. [2.3.6.3. 2.3.6. ] + + + + + + + specifies the fixed length of the reference component. + + + + + + (delimiter) supplies a delimiting string following the reference component. + + + + + + + + + (classification declarations) contains one or more taxonomies defining any classificatory codes used elsewhere in the text. [2.3.7. 2.3. ] + + + + + + + + + + defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy. [2.3.7. ] + + + + + + + + + + + + + + + + + + + + + + + + + + contains an individual descriptive category, possibly nested within a superordinate category, within a user-defined taxonomy. [2.3.7. ] + + + + + + + + + + + + + + + + + + + + + + + (category description) describes some category within a taxonomy or text typology, either in the form of a brief prose description or in terms of the situational parameters used by the TEI formal textDesc. [2.3.7. ] + + + + + + + + + + + + + + (geographic coordinates declaration) documents the notation and the datum used for geographic coordinates expressed as content of the geo element elsewhere within the document. [2.3.8. ] + + + + + + supplies a commonly used code name for the datum employed. +Suggested values include: 1] WGS84(World Geodetic System) ; 2] MGRS(Military Grid Reference System) ; 3] OSGB36(ordnance survey great britain) ; 4] ED50(European Datum coordinate system) + + WGS84 + (World Geodetic System) a pair of numbers to be interpreted as latitude followed by longitude according to the World Geodetic System. + MGRS + (Military Grid Reference System) the values supplied are geospatial entity object codes, based on + OSGB36 + (ordnance survey great britain) the value supplied is to be interpreted as a British National Grid Reference. + ED50 + (European Datum coordinate system) the value supplied is to be interpreted as latitude followed by longitude according to the European Datum coordinate system. + + + + + + + + + + (application information) records information about an application which has edited the TEI file. [2.3.10. ] + + + + + + + + + + provides information about an application which has acted upon the document. [2.3.10. ] + + + + + + + + + + + + + + + + + + supplies an identifier for the application, independent of its version number or display name. + + + + supplies a version number for the application, independent of its identifier or display name. + + + + + + + + (text-profile description) provides a detailed description of non-bibliographic aspects of a text, specifically the languages and sublanguages used, the situation in which it was produced, the participants and their setting. [2.4. 2.1.1. ] + + + + + + + + + + + + (note on hand) describes a particular style or hand distinguished within a manuscript. [10.7.2. ] + + + + + + + + + contains a summary or formal abstract prefixed to an existing source document by the encoder. [2.4.4. ] + + + + + + + + + + + + + + contains information about the creation of a text. [2.4.1. 2.4. ] + + + + + + + + + + + + + + + (language usage) describes the languages, sublanguages, registers, dialects, etc. represented within a text. [2.4.2. 2.4. 15.3.2. ] + + + + + + + + + + + characterizes a single language or sublanguage used within a text. [2.4.2. ] + + + + (identifier) Supplies a language code constructed as defined in BCP 47 which is used to identify the language documented by this element, and which is referenced by the global xml:lang attribute. + + + + + specifies the approximate percentage (by volume) of the text which uses this language. + + 100 + + + + + + + + + (text classification) groups information which describes the nature or topic of a text in terms of a standard classification scheme, thesaurus, etc. [2.4.3. ] + + + + + + + + + + + + + + + contains a list of keywords or phrases identifying the topic or nature of a text. [2.4.3. ] + + + + + + + + + + identifies the controlled vocabulary within which the set of keywords concerned is defined identifies the classification scheme within which the set of categories concerned is defined, for example by a taxonomy element, or by some other resource. + + + + + + + + + (classification code) contains the classification code used for this text in some standard classification system. [2.4.3. ] + + + + identifies the classification system in use, as defined by for example by a taxonomy element, or some other resource.. + + + + + + + + (category reference) specifies one or more defined categories within some taxonomy or text typology. [2.4.3. ] + + + + + + identifies the classification scheme within which the set of categories concerned is defined, for example by a taxonomy element, or by some other resource. + + + + + + + + + (calendar description) contains a description of the calendar system used in any dating expression found in the text. [2.4. 2.4.5. ] + + + + + + + + + + describes a calendar or dating system used in a dating formula in the text. [2.4.5. ] + + + + + + + + + + + (revision description) summarizes the revision history for a file. [2.5. 2.1.1. ] + + + + + + + + + + + + + + + documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.5. 2.4.1. 11.7. ] + + + + + + + + + points to one or more elements that belong to this change. + + + + + + + + + + + + + describes a particular font or other significant typographic feature distinguished within the description of a printed resource. [10.7.2. ] + + + + + + + + + describes a particular script distinguished within the description of a manuscript or similar resource. [10.7.2. ] + + + + + + + + + groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.5. 11.7. ] + + + + + + + + + + + indicates whether the ordering of its child change elements is to be considered significant or not + + + + + + + + + + + + + + + + + + + + (corresponds) points to elements that correspond to the current element in some way. + + + + + + + + + + + + (synchronous) points to elements that are synchronous with the current element. + + + + + + + + + + + + points to an element that is the same as the current element. + + + + + + + + points to an element of which the current element is a copy. + + + + + + + + points to the next element of a virtual aggregate of which the current element is part. + + + + + + + + (previous) points to the previous element of a virtual aggregate of which the current element is part. + + + + + + + + points to elements that are in exclusive alternation with the current element. + + + + + + + + + + + + selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected. + + + + + + + + + + + defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. [16.1. ] + + + + You must supply at least two values for @target or on + + + + + + + + + + + + (link group) defines a collection of associations or hypertextual links. [16.1. ] + + + + + + + + + + + + + + (anonymous block) contains any arbitrary component-level unit of text, acting as an anonymous container for phrase or inter level elements analogous to, but without the semantic baggage of, a paragraph. [16.3. ] + + + + + + + + + + + (anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. [8.4.2. 16.4. ] + + + + + + + + + (arbitrary segment) represents any segmentation of text below the chunk level. [16.3. 6.2. 7.2.5. ] + + + + + + + + + + + indicates a point in time either relative to other elements in the same timeline tag, or absolutely. [16.5.2. ] + + + + + supplies an absolute value for the time. + + + + + + specifies the unit of time in which the interval value is expressed, if this is not inherited from the parent timeline. +Suggested values include: 1] d(days) ; 2] h(hours) ; 3] min(minutes) ; 4] s(seconds) ; 5] ms(milliseconds) + + d + (days) + h + (hours) + min + (minutes) + s + (seconds) + ms + (milliseconds) + + + + + + + specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + + + + + + identifies the reference point for determining the time of the current when element, which is obtained by adding the interval to the time of the reference point. + + + + + + + + + provides a set of ordered points in time which can be linked to elements of a spoken text to create a temporal alignment of that text. [16.5.2. ] + + + + + + + designates the origin of the timeline, i.e. the time at which it begins. + + + + + + specifies the unit of time corresponding to the interval value of the timeline or of its constituent points in time. +Suggested values include: 1] d(days) ; 2] h(hours) ; 3] min(minutes) ; 4] s(seconds) ; 5] ms(milliseconds) + + d + (days) + h + (hours) + min + (minutes) + s + (seconds) + ms + (milliseconds) + + + + + + + specifies a time interval either as a positive integral value or using one of a set of predefined codes. + + + + + + + + + identifies a possibly fragmented segment of text, by pointing at the possibly discontiguous elements which compose it. [16.7. ] + + + + + + + + + +You must supply at least two values for @target on + + + + + + + + + specifies the name of an element which this aggregation may be understood to represent. + + + + + + indicates whether the targets to be joined include the entire element indicated (the entire subtree including its root), or just the children of the target (the branches of the subtree). + + root + the rooted subtrees indicated by the target attribute are joined, each subtree become a child of the virtual element created by the join + branches + the children of the subtrees indicated by the target attribute become the children of the virtual element (i.e. the roots of the subtrees are discarded) + + + + + + + + + (join group) groups a collection of join elements and possibly pointers. [16.7. ] + + + + + + + + + + + + + + + + supplies the default value for the result on each join included within the group. + + + + + + + + + (alternation) identifies an alternation or a set of choices among elements or passages. [16.8. ] + + + + + + + + specifies the destination of the reference by supplying one or more URI References + + + + + + + + + + + + states whether the alternations gathered in this collection are exclusive or inclusive. + + excl + (exclusive) indicates that the alternation is exclusive, i.e. that at most one of the alternatives occurs. + incl + (inclusive) indicates that the alternation is not exclusive, i.e. that one or more of the alternatives occur. + + + + + + If mode is , each weight states the probability that the corresponding alternative occurs. If mode is incl each weight states the probability that the corresponding alternative occurs given that at least one of the other alternatives occurs. + + + + + + + + + + + + + + + (alternation group) groups a collection of alt elements and possibly pointers. [16.8. ] + + + + + + + + + + + states whether the alternations gathered in this collection are exclusive or inclusive. + + excl + (exclusive) indicates that the alternation is exclusive, i.e. that at most one of the alternatives occurs. + incl + (inclusive) indicates that the alternation is not exclusive, i.e. that one or more of the alternatives occur. + + + + + + + + + (TEI document) contains a single TEI-conformant document, comprising a TEI header and a text, either in isolation or as part of a teiCorpus element. [4. 15.1. ] + + + + + + + + + + + + + + + + + + + + + specifies the major version number of the TEI Guidelines against which this document is valid. + + + + + + + + + contains a single text of any kind, whether unitary or composite, for example a poem or drama, a collection of essays, a novel, a dictionary, or a corpus sample. [4. 15.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (text body) contains the whole body of a single unitary text, excluding any front or back matter. [4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains the body of a composite text, grouping together a sequence of distinct texts (or groups of such texts) which are regarded as a unit for some purpose, for example the collected works of an author, a sequence of prose essays, etc. [4. 4.3.1. 15.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a single text of any kind, whether unitary or composite, which interrupts the text containing it at any point and after which the surrounding text resumes. [4.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (text division) contains a subdivision of the front, body, or back of a text. [4.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-1 text division) contains a first-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-2 text division) contains a second-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-3 text division) contains a third-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-4 text division) contains a fourth-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-5 text division) contains a fifth-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-6 text division) contains a sixth-level subdivision of the front, body, or back of a text. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (level-7 text division) contains the smallest possible subdivision of the front, body or back of a text, larger than a paragraph. [4.1.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a closing title or footer appearing at the end of a division of a text. [4.2.4. 4.2. ] + + + + + + + + + + + + + + + + + + + contains the primary statement of responsibility given for a work on its title page or at the head or end of the work. [4.2.2. 4.5. ] + + + + + + + + + + + + + + + + contains a brief description of the place, date, time, etc. of production of a letter, newspaper story, or other work, prefixed or suffixed to it as a kind of heading or trailer. [4.2.2. ] + + + + + + + + + + + + + + + + contains a formal list or prose description of the topics addressed by a subdivision of a text. [4.2. 4.6. ] + + + + + + + + + + + + + + + + + + + + + + + contains a quotation, anonymous or attributed, appearing at the start or end of a section or on a title page. [4.2.3. 4.2. 4.6. ] + + + + + + + + + + + + + groups together dateline, byline, salutation, and similar phrases appearing as a preliminary group at the start of a division, especially of a letter. [4.2. ] + + + + + + + + + + + + + + + + + + + + + groups together salutations, datelines, and similar phrases appearing as a final group at the end of a division, especially of a letter. [4.2.2. 4.2. ] + + + + + + + + + + + + + + + + + + (salutation) contains a salutation or greeting prefixed to a foreword, dedicatory epistle, or other division of a text, or the salutation in the closing of a letter, preface, etc. [4.2.2. ] + + + + + + + + (signature) contains the closing salutation, etc., appended to a foreword, dedicatory epistle, or other division of a text. [4.2.2. ] + + + + + + + + contains a postscript, e.g. to a letter. [4.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (title page) contains the title page of a text, appearing within the front or back matter. [4.6. ] + + + + + + + + + + + + + + + + + + classifies the title page according to any convenient typology. + + + + + + + + + (document title) contains the title of a document, including all its constituents, as given on a title page. [4.6. ] + + + + + + + + + + + + + + + + + + + contains a subsection or division of the title of a work, as indicated on a title page. [4.6. ] + + + + + specifies the role of this subdivision of the title. +Suggested values include: 1] main; 2] sub(subordinate) ; 3] alt(alternate) ; 4] short; 5] desc(descriptive) + + main + main title of the work + sub + (subordinate) subtitle of the work + alt + (alternate) alternative title of the work + short + abbreviated form of title + desc + (descriptive) descriptive paraphrase of the work + + + + + + + + + + (document author) contains the name of the author of the document, as given on the title page (often but not always contained in a byline). [4.6. ] + + + + + + + + + contains a formal statement authorizing the publication of a work, sometimes required to appear on a title page or its verso. [4.6. ] + + + + + + + + (document edition) contains an edition statement as presented on a title page of a document. [4.6. ] + + + + + + + + (document imprint) contains the imprint statement (place and date of publication, publisher name), as given (usually) at the foot of a title page. [4.6. ] + + + + + + + + + + + + + + + + + + (document date) contains the date of a document, as given on a title page or in a dateline. [4.6. ] + + + + + gives the value of the date in standard form, i.e. YYYY-MM-DD. + + + + + + + + + (front matter) contains any prefatory matter (headers, title page, prefaces, dedications, etc.) found at the start of a document, before the main body. [4.6. 4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (back matter) contains any appendixes, etc. following the main part of a text. [4.7. 4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + supplies the value of a date or time in some standard form. + + + + + + + + + + + + specifies the earliest possible date for the event in some custom standard form. + + + + + + + + + + + + specifies the latest possible date for the event in some custom standard form. + + + + + + + + + + + + indicates the starting point of the period in some standard form. + + + + + + + + + + + + indicates the ending point of the period in some standard form. + + + + + + + + + + + + supplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred + + + + + + + + supplies a pointer to a calendar element or other means of interpreting the values of the custom dating attributes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + supplies the value of a date or time in a standard form. + + + + + + + + specifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + specifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd. + + + + + + + + indicates the starting point of the period in standard form. + + + + + + + + indicates the ending point of the period in standard form. + + + + + + + (organization name) contains an organizational name. [13.2.2. ] + + + + + + + + + + + + (personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc. [13.2.1. ] + + + + + + + + + + + + contains a family (inherited) name, as opposed to a given, baptismal, or nick name. [13.2.1. ] + + + + + + + + + + contains a forename, given or baptismal name. [13.2.1. ] + + + + + + + + + + (generational name component) contains a name component used to distinguish otherwise similar names on the basis of the relative ages or generations of the persons named. [13.2.1. ] + + + + + + + + + + (name link) contains a connecting phrase or link used within a name but not regarded as part of it, such as van der or of. [13.2.1. ] + + + + + + + + + (additional name) contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name. [13.2.1. ] + + + + + + + + + + contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank. [13.2.1. ] + + + + + + + + + + contains an absolute or relative place name. [13.2.3. ] + + + + + + + + + + + + contains the name of a geo-political unit consisting of two or more nation states or countries. [13.2.3. ] + + + + + + + + + + + contains the name of a geo-political unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc. [13.2.3. ] + + + + + + + + + + + contains the name of an administrative unit such as a state, province, or county, larger than a settlement, but smaller than a country. [13.2.3. ] + + + + + + + + + + + contains the name of any kind of subdivision of a settlement, such as a parish, ward, or other administrative or geographic unit. [13.2.3. ] + + + + + + + + + + + contains the name of a settlement such as a city, town, or village identified as a single geo-political or administrative unit. [13.2.3. ] + + + + + + + + + + + marks that part of a relative temporal or spatial expression which indicates the direction of the offset between the two place names, dates, or times involved in the expression. [13.2.3. ] + + + + + + + + + + + + (geographical name) identifies a name associated with some geographical feature such as Windrush Valley or Mount Sinai. [13.2.3. ] + + + + + + + + + + + + (geographical feature name) contains a common noun identifying some geographical feature contained within a geographic name, such as valley, mount, etc. [13.2.3. ] + + + + + + + + + + + + contains an informal description of a person's present or past affiliation with some organization, for example an employer or sponsor. [15.2.2. ] + + + + + + + + + + + specifies the age of a person. [13.3.2.1. ] + + + + + + + supplies a numeric code representing the age or age group + + + + + + + + + contains information about a person's birth, such as its date and place. [15.2.2. ] + + + + + + + + + + + contains information about the physical climate of a place. [13.3.4.3. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains information about a person's death, such as its date and place. [15.2.2. ] + + + + + + + + + + + contains a description of the educational experience of a person. [15.2.2. ] + + + + + + + + + + + contains data relating to any kind of significant event associated with a person, place, or organization. [13.3.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + indicates the location of an event by pointing to a place element + + + + + + + + + specifies the faith, religion, or belief set of a person. [13.3.2.1. ] + + + + + + + + + + + contains information about a person's period of activity. [13.3.2.1. ] + + + + + + + + + + (geographical coordinates) contains any expression of a set of geographic coordinates, representing a point, line, or area on the surface of the earth in some notation. [13.3.4.1. ] + + + + + + + + + (language knowledge) summarizes the state of a person's linguistic knowledge, either as prose or by a list of langKnown elements. [13.3.2.1. ] + + + + + + + + + + + + supplies one or more valid language tags for the languages specified + + + + + + + + + + + + + (language known) summarizes the state of a person's linguistic competence, i.e., knowledge of a single language. [15.2.2. ] + + + + + + supplies a valid language tag for the language concerned. + + + + + a code indicating the person's level of knowledge for this language + + + + + + + + + (list of organizations) contains a list of elements, each of which provides information about an identifiable organization. [13.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + (list of events) contains a list of descriptions, each of which provides information about an identifiable event. [13.3.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + (list of persons) contains a list of descriptions, each of which provides information about an identifiable person or a group of people, for example the participants in a language interaction, or the people referred to in a historical source. [13.3.2. 15.2. 2.4. 15.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + (list of places) contains a list of places, optionally followed by a list of relationships (other than containment) defined amongst them. [2.2.7. 13.3.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + defines the location of a place as a set of geographical coordinates, in terms of other named geo-political entities, or as an address. [13.3.4. ] + + + + + + + + + + + + + + + + + + + + + contains an informal description of a person's present or past nationality or citizenship. [15.2.2. ] + + + + + + + + + + + contains an informal description of a person's trade, profession or occupation. [15.2.2. ] + + + + + + + + indicates the classification system or taxonomy in use, for example by supplying the identifier of a taxonomy element, or pointing to some other resource. + + + + + + identifies an occupation code defined within the classification system or taxonomy defined by the scheme attribute. + + + + + + + + + (organization) provides information about an identifiable organization such as a business, a tribe, or any other grouping of people. [13.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + specifies a primary role or classification for the organization. + + + + + + + + + + + + + provides information about relationships identified amongst people, places, and organizations, either informally as prose or as formally expressed relation links. [13.3.2.3. ] + + + + + + + + + + + + + + + + + + + + + + + provides information about an identifiable individual, for example a participant in a language interaction, or a person referred to in a historical source. [13.3.2. 15.2.2. ] + + + + + + + + + + + + + + + + + specifies a primary role or classification for the person. + + + + + + + + + + specifies the sex of the person. + + + + + + + + + + specifies an age group for the person. + + + + + + + + + (personal group) describes a group of individuals treated as a single person for analytic purposes. [15.2.2. ] + + + + + + + + + + + + + + + + specifies the role of this group of participants in the interaction. + + + + + + specifies the sex of the participant group. + + + + + + + + + + specifies the age group of the participants. + + + + + + describes informally the size or approximate size of the group for example by means of a number and an indication of accuracy e.g. approx 200. + + + + + + + + + + + + + contains data about a geographic location [13.3.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains information about the population of a place. [13.3.4.3. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (relationship) describes any kind of relationship or linkage amongst a specified group of places, events, persons, objects or other items. [13.3.2.3. ] + + + + + + One of the attributes 'name', 'ref' or 'key' must be supplied + + + + + Only one of the attributes +@active and @mutual may be supplied + + + + + the attribute 'passive' + may be supplied only if the attribute 'active' is + supplied + + + + + + + + + + + supplies a name for the kind of relationship of which this is an instance. + + + + + + + identifies the active participants in a non-mutual relationship, or all the participants in a mutual one. + + + + + + + + + + supplies a list of participants amongst all of whom the relationship holds equally. + + + + + + + + + + + identifies the passive participants in a non-mutual relationship. + + + + + + + + + + + + + describes a person's present or past places of residence. [15.2.2. ] + + + + + + + + + + + specifies the sex of a person. [13.3.2.1. ] + + + + + + + supplies a coded value for sex + + + + + + + + + + + + + (socio-economic status) contains an informal description of a person's perceived social or economic status. [15.2.2. ] + + + + + + + + identifies the classification system or taxonomy in use, for example by pointing to a locally-defined taxonomy element or by supplying a URI for an externally-defined system. + + + + + + identifies a status code defined within the classification system or taxonomy defined by the scheme attribute. + + + + + + + + + contains a description of some status or quality attributed to a person, place, or organization often at some specific time or for a specific date range. [13.3.1. 13.3.2.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains information about the physical terrain of a place. [13.3.4.3. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contains a description of some status or quality attributed to a person, place, or organization typically, but not necessarily, independent of the volition or action of the holder and usually not at some specific time or for a specific date range. [13.3.1. 13.3.2.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (canonical name) contains the definition for a canonical name or name component of any kind. [13.3.5. ] + + + + + + + + + + + + + + + + + + + + + + + points to constituent nyms + + + + + + + + + + + + + (list of canonical names) contains a list of nyms, that is, standardized names for any thing. [13.3.5. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (facsimile) points to all or part of an image which corresponds with the content of the element. + + + + + + + + + + + + + + + points to one or more change elements documenting a state or revision campaign to which the element bearing this attribute and its children have been assigned by the encoder. + + + + + + + + + + + + + + + + + + + + indicates the element within a transcription of the text containing at least the start of the writing represented by this zone or surface. + + + + + + + + gives the x coordinate value for the upper left corner of a rectangular space. + + + + + + + + gives the y coordinate value for the upper left corner of a rectangular space. + + + + + + + + gives the x coordinate value for the lower right corner of a rectangular space. + + + + + + + + gives the y coordinate value for the lower right corner of a rectangular space. + + + + + + + + identifies a two dimensional area within the bounding box specified by the other attributes by means of a series of pairs of numbers, each of which gives the x,y coordinates of a point on a line enclosing the area. + + + + + + + + + + + + + + contains a representation of some written source in the form of a set of images rather than as transcribed or encoded text. [11.1. ] + + + + + + + + + + + + + + + + + + + + + + + contains a transcription or other representation of a single source document potentially forming part of a dossier génétique or collection of sources. [11.1. 11.2.2. ] + + + + + + + + + + + + + + + + + + defines a written surface as a two-dimensional coordinate space, optionally grouping one or more graphic representations of that space, zones of interest within that space, and transcriptions of the writing within them. [11.1. 11.2.2. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + describes the method by which this surface is or was connected to the main surface +Sample values include: 1] glued; 2] pinned; 3] sewn + + + + + + indicates whether the surface is attached and folded in such a way as to provide two writing surfaces + + + + + + + + + defines any kind of useful grouping of written surfaces, for example the recto and verso of a single leaf, which the encoder wishes to treat as a single unit. [11.1. ] + + + + + + + + + + + + + + + + defines any two-dimensional area within a surface element. [11.1. 11.2.2. ] + + + + + + + + + + + + + + + indicates the amount by which this zone has been rotated clockwise, with respect to the normal orientation of the parent surface element as implied by the dimensions given in the msDesc element or by the coordinates of the surface itself. The orientation is expressed in arc degrees. + + + + + + + + + (added span of text) marks the beginning of a longer sequence of text added by an author, scribe, annotator or corrector (see also add). [11.3.1.4. ] + + + + The @spanTo attribute of is required. + + + + + L'attribut spanTo est requis. + + + + + + + + + + + + + contains an area of damage to the text witness. [11.3.3.1. ] + + + + + + + + + + (damaged span of text) marks the beginning of a longer sequence of text which is damaged in some way but still legible. [11.3.3.1. ] + + + + +The @spanTo attribute of is required. + + + + + L'attribut spanTo est requis. + + + + + + + + + + + + (deleted span of text) marks the beginning of a longer sequence of text deleted, marked as deleted, or otherwise signaled as superfluous or spurious by an author, scribe, annotator, or corrector. [11.3.1.4. ] + + + + The @spanTo attribute of is required. + + + + + L'attribut spanTo est requis. + + + + + + + + + + + + (editorial expansion) contains a sequence of letters added by an editor or transcriber when expanding an abbreviation. [11.3.1.2. ] + + + + + + + + + (forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [11.6. ] + + + + + + classifies the material encoded according to some useful typology. +Sample values include: 1] header; 2] footer; 3] pageNum(page number) ; 4] lineNum(line number) ; 5] sig(signature) ; 6] catch(catchword) + + + + + + + + + contains one or more handNote elements documenting the different hands identified within the source texts. [11.3.2.1. ] + + + + + + + + + + marks the beginning of a sequence of text written in a new hand, or the beginning of a scribal stint. [11.3.2.1. ] + + + + + + + indicates a handNote element describing the hand concerned. + + + + + + + + + (abbreviation marker) contains a sequence of letters or signs present in an abbreviation which are omitted or replaced in the expanded form of the abbreviation. [11.3.1.2. ] + + + + + + + + + + + + + + + + indicates restoration of text to an earlier state by cancellation of an editorial or authorial marking or instruction. [11.3.1.6. ] + + + + + + + + + + indicates the location of a significant space in the copy text. [11.5.1. ] + + + + + + + + + + + + + (responsible party) (responsible party) indicates the individual responsible for identifying and measuring the space + + + + + + + + + + (dimension) indicates whether the space is horizontal or vertical. + + horizontal + the space is horizontal. + vertical + the space is vertical. + + + + + + + + + (substitution) groups one or more deletions with one or more additions when the combination is to be regarded as a single intervention in the text. [11.3.1.5. ] + + + + + + + + + + + must have at least one child add and at least one child del + + + + + + + + + + (substitution join) identifies a series of possibly fragmented additions, deletions or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. ] + + + + + + + + + + + + + + + signifies text supplied by the transcriber or editor for any reason, typically because the original cannot be read because of physical damage or loss to the original. [11.3.3.1. ] + + + + + + one or more words indicating why the text has had to be supplied, e.g. overbinding, faded-ink, lost-folio, omitted-in-original. + + + + + + + + + + + + + marks text present in the source which the editor believes to be superfluous or redundant. [11.3.3.1. ] + + + + + + one or more words indicating why this text is believed to be superfluous, e.g. repeated, interpolated etc. + + + + + + + + + + + + + contains the transcription of a topographic line in the source document [11.2.2. ] + + + + + + + + + + + + + + + + + supplies a list of transpositions, each of which is indicated at some point in a document typically by means of metamarks. [11.3.4.5. ] + + + + + + + + + + contains or describes any kind of graphic or written signal within a document the function of which is to determine how it should be read rather than forming part of the actual content of the document. [11.3.4.2. ] + + + + + + + describes the function (for example status, insertion, deletion, transposition) of the mark. + + + + + + identifies one or more elements to which the function indicated by the metamark applies. + + + + + + + + + + + + + represents any kind of modification identified within a single document. [11.3.4.1. ] + + + + + + + + + + + indicates one or more cancelled interventions in a document which have subsequently been marked as reaffirmed or repeated. [11.3.4.4. ] + + + + + + + points to one or more elements representing the interventions which are being reasserted. + + + + + + + + + + + + + contains a sequence of writing which has been retraced, for example by over-inking, to clarify or fix it. [11.3.4.3. ] + + + + + + + + + + describes a single textual transposition as an ordered list of at least two pointers specifying the order in which the elements indicated should be re-combined. [11.3.4.5. ] + + + + + + + + + + + + + indicates one or more marked-up interventions in a document which have subsequently been marked for cancellation. [11.3.4.4. ] + + + + + + + points to one or more elements representing the interventions which are to be reverted or undone. + + + + + + + + + + + + + contains text displayed in tabular form, in rows and columns. [14.1.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + indicates the number of rows in the table. + + + + + + (columns) indicates the number of columns in each row of the table. + + + + + + + + + contains one row of a table. [14.1.1. ] + + + + + + + + + + + contains one cell of a table. [14.1.1. ] + + + + + + + + + contains a mathematical or other formula. [14.2. ] + + + + + + + + + + + names the notation used for the content of the element. + + + + + + + + + encodes the presence of music notation in a text [14.3. ] + + + + + + + + + + + + + + + + + groups elements representing or containing graphic information such as an illustration, formula, or figure. [14.4. ] + + + + + + + + + + + + + + + + + + + (description of figure) contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image without displaying it. [14.4. ] + + + + + + + + + + + + indicates whether the passage being quoted is defective, i.e. incomplete through loss or damage. + + + + + + + (manuscript description) contains a description of a single identifiable manuscript or other text-bearing object. [10.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + describes the system used to ensure correct ordering of the quires making up a codex or incunable, typically by means of annotations at the foot of the page. [10.3.7. ] + + + + + + + + contains a dimensional specification. [10.3.4. ] + + + + + + + + + + + +The element may appear once only + + + + + + +The element may appear once only + + + + + + +The element may appear once only + + + + + + + + indicates which aspect of the object is being measured. +Sample values include: 1] leaves; 2] ruled; 3] pricked; 4] written; 5] miniatures; 6] binding; 7] box + + + + + + + + + contains any single measurement forming part of a dimensional specification of some sort. [10.3.4. ] + + + + + + + + + + contains a measurement measured along the axis at right angles to the bottom of the written surface, i.e. parallel to the spine for a codex or book. [10.3.4. ] + + + + + + + + + contains a measurement measured across the spine of a book or codex, or (for other text-bearing objects) perpendicular to the measurement given by the width element. [10.3.4. ] + + + + + + + + + contains a measurement measured along the axis parallel to the bottom of the written surface, i.e. perpendicular to the spine of a book or codex. [10.3.4. ] + + + + + + + + + contains a heraldic formula or phrase, typically found as part of a blazon, coat of arms, etc. [10.3.8. ] + + + + + + + + defines a location within a manuscript or manuscript part, usually as a (possibly discontinuous) sequence of folio references. [10.3.5. ] + + + + + + identifies the foliation scheme in terms of which the location is being specified by pointing to some foliation element defining it, or to some other equivalent resource. + + + + + + specifies the starting point of the location in a normalized form, typically a page number. + + + + + + specifies the end-point of the location in a normalized form, typically as a page number. + + + + + + + + + groups a number of locations which together form a distinct but discontinuous item within a manuscript or manuscript part, according to a specific foliation. [10.3.5. ] + + + + + + + identifies the foliation scheme in terms of which all the locations contained by the group are specified by pointing to some foliation element defining it, or to some other equivalent resource. + + + + + + + + + contains a word or phrase describing the material of which the object being described is composed. [10.3.2. ] + + + + + + + + + contains a word or phrase describing the type of object being referred to. [10.3.2. ] + + + + + + + + + (origin date) contains any form of date, used to identify the date of origin for a manuscript or manuscript part. [10.3.1. ] + + + + + + + + + + + + + + + + + + (origin place) contains any form of place name, used to identify the place of origin for a manuscript or manuscript part. [10.3.1. ] + + + + + + + + + + + + (second folio) marks the word or words taken from a fixed point in a codex (typically the beginning of the second leaf) in order to provide a unique identifier for it. [10.3.7. ] + + + + + + + + contains discussion of the leaf or quire signatures found within a codex. [10.3.7. ] + + + + + + + + contains a word or phrase describing a stamp or similar device. [10.3.3. ] + + + + + + + + + + contains a word or phrase describing a watermark or similar device. [10.3.3. ] + + + + + + + + (manuscript identifier) contains the information required to identify the manuscript being described. [10.4. ] + + + + + + + + + + + + + + + + + + + + + + + + + + An msIdentifier must contain either a repository or location of some type, or a manuscript name + + + + + + + + + contains the name of an organization such as a university or library, with which a manuscript is identified, generally its holding institution. [10.4. ] + + + + + + + + + contains the name of a repository within which manuscripts are stored, possibly forming part of an institution. [10.4. ] + + + + + + + + + contains the name of a collection of manuscripts, not necessarily located within a single repository. [10.4. ] + + + + + + + + + + (alternative identifier) contains an alternative or former structured identifier used for a manuscript, such as a former catalogue number. [10.4. ] + + + + + + + + + + + + + + + + + + + + + + + + (alternative name) contains any form of unstructured alternative name used for a manuscript, such as an ocellus nominum, or nickname. [10.4. ] + + + + + + + + + contains the colophon of a manuscript item: that is, a statement providing information regarding the date, place, agency, or reason for production of the manuscript. [10.6.1. ] + + + + + + + + contains the explicit of a manuscript item, that is, the closing words of the text proper, exclusive of any rubric or colophon which might follow it. [10.6.1. ] + + + + + + + + + + contains information concerning the manuscript's filiation, i.e. its relationship to other surviving manuscripts of the same text, its protographs, antigraphs and apographs. [10.6.1. ] + + + + + + + + + contains the string of words that denotes the end of a text division, often with an assertion as to its author and title, usually set off from the text itself by red ink, by a different size or type of script, or by some other such visual device. [10.6.1. ] + + + + + + + + + contains the incipit of a manuscript item, that is the opening words of the text proper, exclusive of any rubric which might precede it, of sufficient length to identify the work uniquely; such incipits were, in former times, frequently used a means of reference to a work, in place of a title. [10.6.1. ] + + + + + + + + + + (manuscript contents) describes the intellectual content of a manuscript or manuscript part, either as a series of paragraphs or as a series of structured manuscript items. [10.6. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + identifies the text types or classifications applicable to this object by pointing to other elements or resources defining the classification concerned. + + + + + + + + + + + + + (manuscript item) describes an individual work or item within the intellectual content of a manuscript or manuscript part. [10.6.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + identifies the text types or classifications applicable to this item by pointing to other elements or resources defining the classification concerned. + + + + + + + + + + + + + (structured manuscript item) contains a structured description for an individual work or item within the intellectual content of a manuscript or manuscript part. [10.6.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + identifies the text types or classifications applicable to this item by pointing to other elements or resources defining the classification concerned. + + + + + + + + + + + + + contains the text of any rubric or heading attached to a particular manuscript item, that is, a string of words through which a manuscript signals the beginning of a text division, often with an assertion as to its author and title, which is in some way set off from the text itself, usually in red ink, or by use of different size or type of script, or some other such visual device. [10.6.1. ] + + + + + + + + + contains an overview of the available information concerning some aspect of an item (for example, its intellectual content, history, layout, typography etc.) as a complement or alternative to the more detailed information carried by more specific elements. [10.6. ] + + + + + + + + (physical description) contains a full physical description of a manuscript or manuscript part, optionally subdivided using more specialized elements from the model.physDescPart class. [10.7. ] + + + + + + + + + + + + + + + contains a description of the physical components making up the object which is being described. [10.7.1. ] + + + + + + + + + + + + + + + + + a short project-specific name identifying the physical form of the carrier, for example as a codex, roll, fragment, partial leaf, cutting etc. + + + + + + + + + (support description) groups elements describing the physical support for the written part of a manuscript. [10.7.1. ] + + + + + + + + + + + + + + + + + + + + + + + + + + a short project-defined name for the material composing the majority of the support +Suggested values include: 1] paper; 2] parch(parchment) ; 3] mixed + + paper + + parch + (parchment) + mixed + + + + + + + + + + + contains a description of the materials etc. which make up the physical support for the written part of a manuscript. [10.7.1. ] + + + + + + + + contains a description of how the leaves or bifolia are physically arranged. [10.7.1. ] + + + + + + + + describes the numbering system or systems used to count the leaves or pages in a codex. [10.7.1.4. ] + + + + + + + + contains a description of the physical condition of the manuscript. [10.7.1.5. ] + + + + + + + + (layout description) collects the set of layout descriptions applicable to a manuscript. [10.7.2. ] + + + + + + + + + + + + + + + + + + + + describes how text is laid out on the page, including information about any ruling, pricking, or other evidence of page-preparation techniques. [10.7.2. ] + + + + + specifies the number of columns per page + + + + + + + + + + + specifies the number of ruled lines per column + + + + + + + + + + + specifies the number of written lines per column + + + + + + + + + + + + + + (description of hands) contains a description of all the different kinds of writing used in a manuscript. [10.7.2. ] + + + + + + + + + + + + + + + + + specifies the number of distinct hands identified within the manuscript + + + + + + + + + contains a description of the typefaces or other aspects of the printing of an incunable or other printed source. [10.7.2.1. ] + + + + + + + + + + + + + + + + + + + + contains a description of the scripts used in a manuscript or similar source. [10.7.2.1. ] + + + + + + + + + + + + + + + + + + + + contains description of type of musical notation. [10.7.2. ] + + + + + + + + (decoration description) contains a description of the decoration of a manuscript, either as a sequence of paragraphs, or as a sequence of topically organized decoNote elements. [10.7.3. ] + + + + + + + + + + + + + + + + + + + + (note on decoration) contains a note describing either a decorative component of a manuscript, or a fairly homogenous class of such components. [10.7.3. ] + + + + + + + + + contains a description of any significant additions found within a manuscript, such as marginalia or other annotations. [10.7.2. ] + + + + + + + + (binding description) describes the present and former bindings of a manuscript, either as a series of paragraphs or as a series of distinct binding elements, one for each binding of the manuscript. [10.7.3.1. ] + + + + + + + + + + + + + + + + + + + contains a description of one binding, i.e. type of covering, boards, etc. applied to a manuscript. [10.7.3.1. ] + + + + + + + + + + + + specifies whether or not the binding is contemporary with the majority of its contents + + + + + + + + + (seal description) describes the seals or other external items attached to a manuscript, either as a series of paragraphs or as a series of distinct seal elements, possibly with additional decoNotes. [10.7.3.2. ] + + + + + + + + + + + + + + + + + + + + + + + + contains a description of one seal or similar attachment applied to a manuscript. [10.7.3.2. ] + + + + + + + + + + + + specifies whether or not the seal is contemporary with the item to which it is affixed + + + + + + + + + (accompanying material) contains details of any significant additional material which may be closely associated with the manuscript being described, such as non-contemporaneous documents or fragments bound in with the manuscript at some earlier historical period. [10.7.3.3. ] + + + + + + + + + groups elements describing the full history of a manuscript or manuscript part. [10.8. ] + + + + + + + + + + + + + + + + + + + + + + + + + + contains any descriptive or other information concerning the origin of a manuscript or manuscript part. [10.8. ] + + + + + + + + + + contains any descriptive or other information concerning a single identifiable episode during the history of a manuscript or manuscript part, after its creation but before its acquisition. [10.8. ] + + + + + + + + + + + contains any descriptive or other information concerning the process by which a manuscript or manuscript part entered the holding institution. [10.8. ] + + + + + + + + + groups additional information, combining bibliographic information about a manuscript, or surrogate copies of it with curatorial or administrative information. [10.9. ] + + + + + + + + + + + + + + + + + + (administrative information) contains information about the present custody and availability of the manuscript, and also about the record description itself. [10.9.1. ] + + + + + + + + + + + + + + + + + + + + + (recorded history) provides information about the source and revision status of the parent manuscript description itself. [10.9.1. ] + + + + + + + + + + + + + + + + + + describes the original source for the information contained with a manuscript description. [10.9.1.1. ] + + + + + + + + (custodial history) contains a description of a manuscript's custodial history, either as running prose or as a series of dated custodial events. [10.9.1.2. ] + + + + + + + + + + + + + + + (custodial event) describes a single event during the custodial history of a manuscript. [10.9.1.2. ] + + + + + + + + + + contains information about any representations of the manuscript being described which may exist in the holding institution or elsewhere. [10.9. ] + + + + + + + + (manuscript part) contains information about an originally distinct manuscript or part of a manuscript, now forming part of a composite manuscript. [10.10. ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WARNING: use of deprecated method — the use of the altIdentifier element as a direct child of the msPart element will be removed from the TEI on 2016-09-09 + + + + + + + + + + + + + (analysis) indicates one or more elements containing interpretations of the element on which the ana attribute appears. + + + + + + + + + + + (character) represents a character. [17.1. ] + + + + + + + + + + associates an interpretative annotation directly with a span of text. [17.3. ] + + + + +Only one of the attributes @target and @from may be supplied on + + + + + + +Only one of the attributes @target and @to may be supplied on + + + + + + +If @to is supplied on , @from must be supplied as well + + + + + +The attributes @to and @from on may each contain only a single value + + + + + + + + gives the identifier of the node which is the starting point of the span of text being annotated; if not accompanied by a to attribute, gives the identifier of the node of the entire span of text being annotated. + + + + + + gives the identifier of the node which is the end-point of the span of text being annotated. + + + + + + + + + + + + + diff --git a/src/assets/fonts/evt-icons-project.json b/src/assets/fonts/evt-icons-project.json index 35bfc7ef1..70c2dff1c 100755 --- a/src/assets/fonts/evt-icons-project.json +++ b/src/assets/fonts/evt-icons-project.json @@ -1 +1 @@ -{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M917.806 357.076c-22.21-30.292-53.174-65.7-87.178-99.704s-69.412-64.964-99.704-87.178c-51.574-37.82-76.592-42.194-90.924-42.194h-368c-44.114 0-80 35.888-80 80v736c0 44.112 35.886 80 80 80h608c44.112 0 80-35.888 80-80v-496c0-14.332-4.372-39.35-42.194-90.924zM785.374 302.626c30.7 30.7 54.8 58.398 72.58 81.374h-153.954v-153.946c22.982 17.78 50.678 41.878 81.374 72.572v0zM896 944c0 8.672-7.328 16-16 16h-608c-8.672 0-16-7.328-16-16v-736c0-8.672 7.328-16 16-16 0 0 367.956-0.002 368 0v224c0 17.672 14.324 32 32 32h224v496zM602.924 42.196c-51.574-37.822-76.592-42.196-90.924-42.196h-368c-44.112 0-80 35.888-80 80v736c0 38.632 27.528 70.958 64 78.39v-814.39c0-8.672 7.328-16 16-16h486.876c-9.646-7.92-19.028-15.26-27.952-21.804z"],"isMulticolor":false,"isMulticolor2":false,"tags":["files-empty","files","documents","papers","pages"],"defaultCode":59708,"grid":16},"properties":{"id":1,"order":75,"ligatures":"","prevSize":32,"code":59708,"name":"files-empty"},"setIdx":0,"setId":1,"iconIdx":0},{"icon":{"paths":["M896 448h16c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h-128v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v576h128v-576zM768 256h128v128h-128v-128zM592 832c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-576h-128v576h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v192h128v-192h16zM448 640h128v128h-128v-128zM272 448c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h-128v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v576h128v-576h16zM128 256h128v128h-128v-128z"],"isMulticolor":false,"isMulticolor2":false,"tags":["equalizer","sliders","settings","preferences","dashboard","control"],"defaultCode":59709,"grid":16},"properties":{"id":2,"order":76,"ligatures":"","prevSize":32,"code":59709,"name":"equalizer"},"setIdx":0,"setId":1,"iconIdx":1},{"icon":{"paths":["M749.714 182.857h-475.429c-50.286 0-91.429 41.143-91.429 91.429v475.429c0 50.286 41.143 91.429 91.429 91.429h475.429c50.286 0 91.429-41.143 91.429-91.429v-475.429c0-50.286-41.143-91.429-91.429-91.429zM914.285 274.285v475.429c0 90.857-73.714 164.571-164.571 164.571h-475.429c-90.857 0-164.571-73.714-164.571-164.571v-475.429c0-90.857 73.714-164.571 164.571-164.571h475.429c90.857 0 164.571 73.714 164.571 164.571z"],"isMulticolor":false,"isMulticolor2":false,"tags":["square-o"],"defaultCode":59710,"grid":16},"properties":{"id":3,"order":77,"ligatures":"","prevSize":32,"code":59710,"name":"square-o"},"setIdx":0,"setId":1,"iconIdx":2},{"icon":{"paths":["M969.143 219.428c30.286 0 54.857 24.571 54.857 54.857v694.857c0 30.286-24.571 54.857-54.857 54.857h-548.571c-30.286 0-54.857-24.571-54.857-54.857v-164.571h-310.857c-30.286 0-54.857-24.571-54.857-54.857v-384c0-30.286 17.714-72.571 38.857-93.714l233.143-233.143c21.143-21.143 63.429-38.857 93.714-38.857h237.714c30.286 0 54.857 24.571 54.857 54.857v187.429c22.286-13.143 50.857-22.857 73.143-22.857h237.714zM658.286 341.142l-170.857 170.857h170.857v-170.857zM292.571 121.713l-170.857 170.857h170.857v-170.857zM404.571 491.428l180.571-180.571v-237.714h-219.429v237.714c0 30.286-24.571 54.857-54.857 54.857h-237.714v365.714h292.571v-146.286c0-30.286 17.714-72.571 38.857-93.714zM950.857 950.856v-658.286h-219.429v237.714c0 30.286-24.571 54.857-54.857 54.857h-237.714v365.714h512z"],"isMulticolor":false,"isMulticolor2":false,"tags":["copy","files-o"],"defaultCode":59711,"grid":16},"properties":{"id":4,"order":78,"ligatures":"","prevSize":32,"code":59711,"name":"copy"},"setIdx":0,"setId":1,"iconIdx":3},{"icon":{"paths":["M950.858 932.571v-621.714c0-9.714-8.571-18.286-18.286-18.286h-621.714c-9.714 0-18.286 8.571-18.286 18.286v621.714c0 9.714 8.571 18.286 18.286 18.286h621.714c9.714 0 18.286-8.571 18.286-18.286zM1024.001 310.857v621.714c0 50.286-41.143 91.429-91.429 91.429h-621.714c-50.286 0-91.429-41.143-91.429-91.429v-621.714c0-50.286 41.143-91.429 91.429-91.429h621.714c50.286 0 91.429 41.143 91.429 91.429zM804.572 91.429v91.429h-73.143v-91.429c0-9.714-8.571-18.286-18.286-18.286h-621.714c-9.714 0-18.286 8.571-18.286 18.286v621.714c0 9.714 8.571 18.286 18.286 18.286h91.429v73.143h-91.429c-50.286 0-91.429-41.143-91.429-91.429v-621.714c0-50.286 41.143-91.429 91.429-91.429h621.714c50.286 0 91.429 41.143 91.429 91.429z"],"isMulticolor":false,"isMulticolor2":false,"tags":["clone"],"defaultCode":59712,"grid":16},"properties":{"id":5,"order":79,"ligatures":"","prevSize":32,"code":59712,"name":"clone"},"setIdx":0,"setId":1,"iconIdx":4},{"icon":{"paths":["M475.428 219.428v402.286c0 161.143-131.429 292.571-292.571 292.571h-36.571c-20 0-36.571-16.571-36.571-36.571v-73.143c0-20 16.571-36.571 36.571-36.571h36.571c80.571 0 146.286-65.714 146.286-146.286v-18.286c0-30.286-24.571-54.857-54.857-54.857h-128c-60.571 0-109.714-49.143-109.714-109.714v-219.429c0-60.571 49.143-109.714 109.714-109.714h219.429c60.571 0 109.714 49.143 109.714 109.714zM987.428 219.428v402.286c0 161.143-131.429 292.571-292.571 292.571h-36.571c-20 0-36.571-16.571-36.571-36.571v-73.143c0-20 16.571-36.571 36.571-36.571h36.571c80.571 0 146.286-65.714 146.286-146.286v-18.286c0-30.286-24.571-54.857-54.857-54.857h-128c-60.571 0-109.714-49.143-109.714-109.714v-219.429c0-60.571 49.143-109.714 109.714-109.714h219.429c60.571 0 109.714 49.143 109.714 109.714z"],"isMulticolor":false,"isMulticolor2":false,"tags":["quote-right"],"defaultCode":59713,"grid":16},"properties":{"id":6,"order":80,"ligatures":"","prevSize":32,"code":59713,"name":"quote-right"},"setIdx":0,"setId":1,"iconIdx":5},{"icon":{"paths":["M704 0v124c0 51.264-20 99.488-56.128 135.616l-362.112 360.128c-57.248 57.12-88.768 132.128-92.256 212.256h-129.504l192 192 192-192h-126.624c3.36-46.016 21.888-88.736 54.752-121.76l362.112-360c60.512-60.48 93.76-140.736 93.76-226.24v-124h-128zM830.496 832c-3.488-80.128-35.136-155.136-92.384-212.512l-71.36-70.88-90.752 90.272 71.744 71.36c32.992 32.864 51.488 75.744 54.88 121.76h-126.624l192 192 192-192h-129.504z"],"isMulticolor":false,"isMulticolor2":false,"tags":["fork"],"defaultCode":59714,"grid":16},"properties":{"id":7,"order":81,"ligatures":"","prevSize":32,"code":59714,"name":"fork"},"setIdx":0,"setId":1,"iconIdx":6},{"icon":{"paths":["M475.429 585.143v219.429c0 60.571-49.143 109.714-109.714 109.714h-219.429c-60.571 0-109.714-49.143-109.714-109.714v-402.286c0-161.143 131.429-292.571 292.571-292.571h36.571c20 0 36.571 16.571 36.571 36.571v73.143c0 20-16.571 36.571-36.571 36.571h-36.571c-80.571 0-146.286 65.714-146.286 146.286v18.286c0 30.286 24.571 54.857 54.857 54.857h128c60.571 0 109.714 49.143 109.714 109.714zM987.429 585.143v219.429c0 60.571-49.143 109.714-109.714 109.714h-219.429c-60.571 0-109.714-49.143-109.714-109.714v-402.286c0-161.143 131.429-292.571 292.571-292.571h36.571c20 0 36.571 16.571 36.571 36.571v73.143c0 20-16.571 36.571-36.571 36.571h-36.571c-80.571 0-146.286 65.714-146.286 146.286v18.286c0 30.286 24.571 54.857 54.857 54.857h128c60.571 0 109.714 49.143 109.714 109.714z"],"isMulticolor":false,"isMulticolor2":false,"tags":["quote-left"],"defaultCode":59715,"grid":16},"properties":{"id":8,"order":82,"ligatures":"","prevSize":32,"code":59715,"name":"quote-left"},"setIdx":0,"setId":1,"iconIdx":7},{"icon":{"paths":["M94.442 108.756c-52.315 0-94.442 44.187-94.442 99.099v608.257c0 54.912 42.126 99.133 94.442 99.133h835.116c52.315 0 94.442-44.221 94.442-99.133v-608.257c0-54.912-42.126-99.099-94.442-99.099h-835.116zM67.972 222.616h469.848v476.696h56.912c1.76-37.849 17.649-73.283 46.536-100.264l182.754-170.118c18.231-17.065 28.318-39.819 28.318-64.035v-58.59h64.582v58.59c0 40.39-16.788 78.27-47.323 106.838l-182.72 170.050c-16.584 15.599-25.939 35.792-27.634 57.528h63.897l-96.874 90.709-88.449-82.799v123.206h-469.848v-607.81zM136.971 360.991v67.938h336.984v-67.938h-336.984zM136.971 499.88v58.076h336.984v-58.076h-336.984zM833.541 565.456l35.989 33.489c28.889 27.103 44.878 62.516 46.639 100.366h65.335l-96.874 90.709-96.907-90.709h63.897c-1.712-21.736-11.019-42.005-27.668-57.528l-36.229-33.695 45.817-42.632zM136.971 628.907v73.486h336.984v-73.486h-336.984z"],"isMulticolor":false,"isMulticolor2":false,"tags":["versions"],"defaultCode":59716,"grid":16},"properties":{"id":9,"order":83,"ligatures":"","prevSize":32,"code":59716,"name":"versions"},"setIdx":0,"setId":1,"iconIdx":8},{"icon":{"paths":["M94.408 108.755c-52.315 0-94.408 44.187-94.408 99.1v608.257c0 54.91 42.093 99.133 94.408 99.133h835.151c52.315 0 94.441-44.222 94.441-99.133v-608.257c0-54.91-42.126-99.1-94.441-99.1h-835.151zM51.058 218.161h465.978v607.777h-465.978v-607.777zM690.098 341.197h16.71c9.122 0 16.677 7.111 16.677 15.718v31.47c0 8.607-7.554 15.752-16.677 15.752h-16.71c-36.752 0-66.705 28.297-66.705 62.974v7.842c0 13.036 11.218 23.627 25.032 23.627h58.384c27.629 0 50.029 21.153 50.029 47.222v94.408c0 26.066-22.399 47.222-50.029 47.222h-100.092c-27.629 0-50.062-21.153-50.062-47.222v-173.099c0-69.351 59.943-125.911 133.444-125.911zM923.634 341.197h16.71c9.122 0 16.677 7.111 16.677 15.718v31.47c0 8.607-7.554 15.752-16.677 15.752h-16.71c-36.752 0-66.705 28.297-66.705 62.974v7.842c0 13.036 11.218 23.627 25.032 23.627h58.384c27.629 0 50.029 21.153 50.029 47.222v94.408c0 26.066-22.399 47.222-50.029 47.222h-100.092c-27.629 0-50.062-21.153-50.062-47.222v-173.099c0-69.351 59.943-125.911 133.444-125.911zM118.754 361.708v54.994h337.018v-54.994h-337.018zM118.754 501.865v46.468h337.018v-46.468h-337.018zM118.754 629.624v54.104h337.018v-54.104h-337.018z"],"isMulticolor":false,"isMulticolor2":false,"tags":["src-Txt"],"defaultCode":59717,"grid":16},"properties":{"id":10,"order":84,"ligatures":"","prevSize":32,"code":59717,"name":"srcTxt"},"setIdx":0,"setId":1,"iconIdx":9},{"icon":{"paths":["M930.91 116.364h-837.82c-51.2 0-93.090 41.891-93.090 93.090v605.092c0 51.2 41.891 93.090 93.090 93.090h837.82c51.2 0 93.090-41.891 93.090-93.090v-605.092c0-51.2-41.891-93.090-93.090-93.090zM190.837 693.527l58.181 81.455 86.109-111.709 116.364 151.274h-349.092l88.437-121.017zM640 693.527l58.181 81.455 86.109-111.709 116.364 151.274h-349.092l88.437-121.017z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookreader"],"defaultCode":59652,"grid":16},"properties":{"id":5,"order":89,"ligatures":"","prevSize":32,"code":59652,"name":"bookreader"},"setIdx":1,"setId":0,"iconIdx":4},{"icon":{"paths":["M397.962 484.072h228.073v55.855h-228.073v-55.855zM397.962 390.982h228.073v55.855h-228.073v-55.855zM397.962 577.165h228.073v55.855h-228.073v-55.855zM930.909 116.364h-837.819c-51.2 0-93.090 41.892-93.090 93.090v605.092c0 51.2 41.892 93.090 93.090 93.090h837.819c51.2 0 93.090-41.892 93.090-93.090v-605.092c0-51.2-41.892-93.090-93.090-93.090zM651.636 814.546h-279.273v-605.092h279.273v605.092zM88.434 484.072h228.073v55.855h-228.073v-55.855zM88.434 390.982h228.073v55.855h-228.073v-55.855zM88.434 577.165h228.073v55.855h-228.073v-55.855zM674.907 484.072h228.073v55.855h-228.073v-55.855zM674.907 390.982h228.073v55.855h-228.073v-55.855zM674.907 577.165h228.073v55.855h-228.073v-55.855zM930.909 814.546h-279.273v-605.092h279.273v605.092z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_collation"],"defaultCode":59656,"grid":16},"properties":{"id":9,"order":120,"ligatures":"","prevSize":32,"code":59656,"name":"collation"},"setIdx":1,"setId":0,"iconIdx":8},{"icon":{"paths":["M558.546 488.728h325.819v69.819h-325.819v-69.819zM558.546 372.363h325.819v69.819h-325.819v-69.819zM558.546 605.092h325.819v69.819h-325.819v-69.819zM930.91 116.364h-837.82c-51.2 0-93.090 41.891-93.090 93.090v605.092c0 51.2 41.891 93.090 93.090 93.090h837.82c51.2 0 93.090-41.891 93.090-93.090v-605.092c0-51.2-41.891-93.090-93.090-93.090zM930.91 814.546h-418.909v-605.092h418.909v605.092zM190.837 693.527l58.181 81.455 86.109-111.709 116.364 151.274h-349.092l88.437-121.017z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_imgtxt"],"defaultCode":59676,"grid":16},"properties":{"id":29,"order":112,"ligatures":"","prevSize":32,"code":59676,"name":"imgTxt"},"setIdx":1,"setId":0,"iconIdx":28},{"icon":{"paths":["M381.906 115.911h-195.14c-51.108 0-92.923 34.846-92.923 78.985v634.207c0 44.139 41.816 78.985 92.923 78.985h650.468c51.108 0 92.923-34.846 92.923-78.985v-634.207c0-44.139-41.816-78.985-92.923-78.985h-195.14zM837.234 815.165h-650.468v-604.007h650.468v604.007zM286.659 478.315h448.358v69.694h-448.358v-69.694zM286.659 362.161h448.358v69.694h-448.358v-69.694zM286.659 594.47h448.358v69.694h-448.358v-69.694z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_txt"],"defaultCode":59694,"grid":16},"properties":{"id":47,"order":131,"ligatures":"","prevSize":32,"code":59694,"name":"txt"},"setIdx":1,"setId":0,"iconIdx":46},{"icon":{"paths":["M558.546 488.728h325.819v69.819h-325.819v-69.819zM558.546 372.363h325.819v69.819h-325.819v-69.819zM558.546 605.092h325.819v69.819h-325.819v-69.819zM930.91 116.364h-837.82c-51.2 0-93.090 41.891-93.090 93.090v605.092c0 51.2 41.891 93.090 93.090 93.090h837.82c51.2 0 93.090-41.891 93.090-93.090v-605.092c0-51.2-41.891-93.090-93.090-93.090zM930.91 814.546h-418.909v-605.092h418.909v605.092zM104.728 488.728h325.819v69.819h-325.819v-69.819zM104.728 372.363h325.819v69.819h-325.819v-69.819zM104.728 605.092h325.819v69.819h-325.819v-69.819z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_txttxt"],"defaultCode":59695,"grid":16},"properties":{"id":48,"order":132,"ligatures":"","prevSize":32,"code":59695,"name":"txtTxt"},"setIdx":1,"setId":0,"iconIdx":47},{"icon":{"paths":["M810.958 554.708h-256.25v256.25h-85.416v-256.25h-256.25v-85.416h256.25v-256.25h85.416v256.25h256.25v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_add"],"defaultCode":59648,"grid":4},"properties":{"id":1,"order":85,"ligatures":"","prevSize":32,"code":59648,"name":"add"},"setIdx":1,"setId":0,"iconIdx":0},{"icon":{"paths":["M832.313 191.688v694.011h-561.615c-44.844 0-81.146-36.302-81.146-81.146s36.302-81.146 81.146-81.146h508.229v-638.491h-533.854c-59.791 0-106.771 49.115-106.771 106.771v640.626c0 59.791 49.115 106.771 106.771 106.771h640.626v-747.397h-53.385zM270.698 778.928v0 0c-14.948 0-27.76 12.813-27.76 25.625s12.813 27.76 27.76 27.76v0 0h508.229v-53.385h-508.229z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_book"],"defaultCode":59649,"grid":4},"properties":{"id":2,"order":86,"ligatures":"","prevSize":32,"code":59649,"name":"book"},"setIdx":1,"setId":0,"iconIdx":1},{"icon":{"paths":["M712.729 152.182h-401.459c-44.844 0-79.010 36.302-79.010 79.010v638.491l279.74-117.448 279.74 119.584v-638.491c0-44.844-36.302-81.146-79.010-81.146zM712.729 752.234l-200.729-87.553-200.729 87.553v-518.907h399.323v518.907z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookmark-alt"],"defaultCode":59650,"grid":4},"properties":{"id":3,"order":87,"ligatures":"","prevSize":32,"code":59650,"name":"bookmark-alt"},"setIdx":1,"setId":0,"iconIdx":2},{"icon":{"paths":["M710.594 152.182h-397.188c-42.709 0-79.010 36.302-79.010 79.010v640.626l277.604-119.584 277.604 119.584v-638.491c0-44.844-36.302-81.146-79.010-81.146z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookmark"],"defaultCode":59651,"grid":4},"properties":{"id":4,"order":88,"ligatures":"","prevSize":32,"code":59651,"name":"bookmark"},"setIdx":1,"setId":0,"iconIdx":3},{"icon":{"paths":["M233.138 170.334h-166.563c-14.948 0-25.625 12.813-25.625 27.76v627.813c0 14.948 10.677 27.76 25.625 27.76h164.428c14.948 0 27.76-12.813 27.76-27.76v-627.813c2.135-14.948-10.677-27.76-25.625-27.76zM205.378 341.167h-111.041v-57.656h111.041v57.656zM506.472 170.334h-164.428c-14.948 0-27.76 12.813-27.76 27.76v627.813c0 14.948 12.813 27.76 27.76 27.76h164.428c14.948 0 27.76-12.813 27.76-27.76v-627.813c0-14.948-10.677-27.76-27.76-27.76zM480.847 341.167h-111.041v-57.656h111.041v57.656zM696.525 213.042l-147.344 76.875c-12.813 6.406-19.219 23.49-12.813 38.438l247.709 508.229c6.406 14.948 23.49 19.219 36.302 12.813l147.344-76.875c12.813-6.406 19.219-23.49 12.813-38.438l-245.573-508.229c-6.406-12.813-23.49-19.219-38.438-12.813z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_books"],"defaultCode":59653,"grid":4},"properties":{"id":6,"order":90,"ligatures":"","prevSize":32,"code":59653,"name":"books"},"setIdx":1,"setId":0,"iconIdx":5},{"icon":{"paths":["M810.958 272.833l-59.791-59.791-239.167 239.167-239.167-239.167-59.791 59.791 239.167 239.167-239.167 239.167 59.791 59.791 239.167-239.167 239.167 239.167 59.791-59.791-239.167-239.167 239.167-239.167z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_close"],"defaultCode":59654,"grid":4},"properties":{"id":7,"order":91,"ligatures":"","prevSize":32,"code":59654,"name":"close"},"setIdx":1,"setId":0,"iconIdx":6},{"icon":{"paths":["M400.959 708.459l-194.323-196.459 196.459-196.459-61.927-59.791-256.25 256.25 256.25 256.25 59.791-59.791zM623.042 708.459l196.459-196.459-196.459-196.459 59.791-59.791 256.25 256.25-256.25 256.25-59.791-59.791z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_code"],"defaultCode":59655,"grid":4},"properties":{"id":8,"order":92,"ligatures":"","prevSize":32,"code":59655,"name":"code"},"setIdx":1,"setId":0,"iconIdx":7},{"icon":{"paths":["M910.255 553.64h-341.667v-85.416h341.667v85.416zM910.255 297.39h-341.667v85.416h341.667v-85.416zM568.587 724.473h341.667v-85.416h-341.667v85.416zM269.629 297.39c0 0-155.885 168.698-155.885 273.334 0 85.416 70.469 155.885 155.885 155.885s155.885-70.469 155.885-155.885c0-104.635-155.885-273.334-155.885-273.334z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_color-legend"],"defaultCode":59657,"grid":4},"properties":{"id":10,"order":93,"ligatures":"","prevSize":32,"code":59657,"name":"color-legend"},"setIdx":1,"setId":0,"iconIdx":9},{"icon":{"paths":["M512 127.626c-211.406 0-384.375 172.969-384.375 384.375s172.969 384.375 384.375 384.375c36.302 0 64.063-27.76 64.063-64.063 0-17.084-6.406-32.031-17.084-42.709s-17.084-25.625-17.084-42.709c0-36.302 27.76-64.063 64.063-64.063h76.875c117.448 0 213.542-96.094 213.542-213.542 0-187.917-172.969-341.667-384.375-341.667zM277.104 512.002c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063zM405.229 341.168c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063zM618.772 341.168c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063zM746.897 512.002c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_color-lens"],"defaultCode":59658,"grid":4},"properties":{"id":11,"order":94,"ligatures":"","prevSize":32,"code":59658,"name":"color-lens"},"setIdx":1,"setId":0,"iconIdx":10},{"icon":{"paths":["M706.323 531.219l-382.24-382.24-59.791 59.791 102.5 102.5-219.948 219.948c-25.625 25.625-25.625 66.198 0 89.688l234.896 234.896c12.813 12.813 29.896 19.219 44.844 19.219s32.031-6.406 44.844-19.219l234.896-234.896c25.625-23.49 25.625-66.198 0-89.688zM221.584 576.063l205-205 205 205h-410zM810.959 640.126c0 0-85.416 91.823-85.416 149.479 0 46.979 38.438 85.416 85.416 85.416s85.416-38.438 85.416-85.416c0-57.656-85.416-149.479-85.416-149.479z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_colors-fill"],"defaultCode":59659,"grid":4},"properties":{"id":12,"order":95,"ligatures":"","prevSize":32,"code":59659,"name":"colors-fill"},"setIdx":1,"setId":0,"iconIdx":11},{"icon":{"paths":["M512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM512 853.667c-187.917 0-341.667-153.75-341.667-341.667s153.75-341.667 341.667-341.667 341.667 153.75 341.667 341.667c0 187.917-153.75 341.667-341.667 341.667zM430.854 462.886c2.135-12.813 6.406-25.625 12.813-36.302s14.948-19.219 25.625-25.625c10.677-6.406 23.49-8.541 38.438-10.677 10.677 0 19.219 2.135 27.76 6.406s17.084 8.541 21.354 14.948c6.406 6.406 10.677 14.948 14.948 23.49s4.271 17.084 6.406 27.76h76.875c0-19.219-4.271-38.438-10.677-55.521s-17.084-32.031-29.896-42.709-27.76-21.354-46.979-27.76c-17.084-6.406-38.438-10.677-59.791-10.677-27.76 0-51.25 4.271-72.604 14.948-21.354 8.541-38.438 23.49-51.25 38.438-12.813 17.084-23.49 36.302-29.896 57.656s-10.677 44.844-10.677 70.469v10.677c0 25.625 4.271 46.979 10.677 70.469 6.406 21.354 17.084 40.573 29.896 57.656s29.896 29.896 51.25 38.438c21.354 10.677 44.844 14.948 72.604 14.948 19.219 0 38.438-4.271 55.521-10.677s32.031-14.948 46.979-27.76c12.813-10.677 23.49-25.625 32.031-40.573s12.813-32.031 12.813-49.115h-79.010c0 8.541-2.135 17.084-6.406 25.625s-8.541 14.948-14.948 19.219c-6.406 4.271-14.948 10.677-23.49 12.813s-17.084 4.271-25.625 4.271c-14.948 0-27.76-4.271-38.438-10.677s-19.219-14.948-25.625-25.625-10.677-23.49-12.813-38.438c-2.135-12.813-2.135-25.625-2.135-40.573v-10.677c0-17.084 0-29.896 4.271-44.844z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_copyright"],"defaultCode":59660,"grid":4},"properties":{"id":13,"order":96,"ligatures":"","prevSize":32,"code":59660,"name":"copyright"},"setIdx":1,"setId":0,"iconIdx":12},{"icon":{"paths":["M298.458 405.229l213.542 213.542 213.542-213.542h-427.084z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_drop-down"],"defaultCode":59661,"grid":4},"properties":{"id":14,"order":97,"ligatures":"","prevSize":32,"code":59661,"name":"drop-down"},"setIdx":1,"setId":0,"iconIdx":13},{"icon":{"paths":["M298.458 618.771l213.542-213.542 213.542 213.542h-427.084z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_drop-up"],"defaultCode":59662,"grid":4},"properties":{"id":15,"order":98,"ligatures":"","prevSize":32,"code":59662,"name":"drop-up"},"setIdx":1,"setId":0,"iconIdx":14},{"icon":{"paths":["M618.771 810.959v0-384.375l234.896-213.542h-683.334l234.896 213.542v298.959l213.542 85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_filter"],"defaultCode":59663,"grid":4},"properties":{"id":16,"order":99,"ligatures":"","prevSize":32,"code":59663,"name":"filter"},"setIdx":1,"setId":0,"iconIdx":15},{"icon":{"paths":["M853.666 836.584v-495.417l-256.25-256.25h-341.667c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h512.5c19.219 0 36.302-6.406 51.25-17.084l-190.053-190.053c-34.166 23.49-74.74 36.302-117.448 36.302-117.448 0-213.542-96.094-213.542-213.542s96.094-213.542 213.542-213.542 213.542 96.094 213.542 213.542c0 42.709-12.813 83.281-36.302 117.448l164.428 164.428zM383.874 554.708c0 70.469 57.656 128.125 128.125 128.125s128.125-57.656 128.125-128.125c0-70.469-57.656-128.125-128.125-128.125s-128.125 57.656-128.125 128.125z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_find-in-page"],"defaultCode":59664,"grid":4},"properties":{"id":17,"order":100,"ligatures":"","prevSize":32,"code":59664,"name":"find-in-page"},"setIdx":1,"setId":0,"iconIdx":16},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM870.751 330.491h-294.688v-59.791h294.688z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-minu-alt"],"defaultCode":59665,"grid":4},"properties":{"id":18,"order":101,"ligatures":"","prevSize":32,"code":59665,"name":"font-size-minu-alt"},"setIdx":1,"setId":0,"iconIdx":17},{"icon":{"paths":["M620.906 833.381h102.5l-251.979-642.761h-91.823l-251.979 642.761h102.5l55.521-147.344h277.604l57.656 147.344zM324.083 585.673l102.5-271.198 102.5 273.334h-205zM595.281 376.401h301.094v-61.927h-301.094z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-minus"],"defaultCode":59666,"grid":4},"properties":{"id":19,"order":102,"ligatures":"","prevSize":32,"code":59666,"name":"font-size-minus"},"setIdx":1,"setId":0,"iconIdx":18},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM870.751 330.491h-117.448v117.448h-59.791v-117.448h-117.448v-59.791h117.448v-117.448h59.791v117.448h117.448v59.791z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-plus-alt"],"defaultCode":59667,"grid":4},"properties":{"id":20,"order":103,"ligatures":"","prevSize":32,"code":59667,"name":"font-size-plus-alt"},"setIdx":1,"setId":0,"iconIdx":19},{"icon":{"paths":["M620.906 833.381h102.5l-251.979-642.761h-91.823l-251.979 642.761h102.5l55.521-147.344h277.604l57.656 147.344zM324.083 585.673l102.5-271.198 102.5 273.334h-205zM774.656 314.475v-121.719h-61.927v121.719h-121.719v61.927h121.719v121.719h61.927v-121.719h121.719v-61.927z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-plus"],"defaultCode":59668,"grid":4},"properties":{"id":21,"order":104,"ligatures":"","prevSize":32,"code":59668,"name":"font-size-plus"},"setIdx":1,"setId":0,"iconIdx":20},{"icon":{"paths":["M792.808 325.151c0-17.084-12.813-29.896-29.896-29.896s-29.896 12.813-29.896 29.896 12.813 29.896 29.896 29.896 29.896-12.813 29.896-29.896zM762.912 190.62c-74.74 0-134.531 59.791-134.531 134.531h-44.844l59.791 59.791 59.791-59.791h-44.844c0-57.656 46.979-104.635 104.635-104.635s104.635 46.979 104.635 104.635c0 57.656-46.979 104.635-104.635 104.635-23.49 0-42.709-6.406-59.791-19.219l-21.354 21.354c23.49 17.084 51.25 27.76 81.146 27.76 74.74 0 134.531-59.791 134.531-134.531-2.135-72.604-61.927-134.531-134.531-134.531zM619.839 833.381h102.5l-251.979-642.761h-91.823l-251.979 642.761h102.5l55.521-147.344h277.604l57.656 147.344zM323.016 585.673l102.5-271.198 102.5 273.334h-205z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-reset"],"defaultCode":59669,"grid":4},"properties":{"id":22,"order":105,"ligatures":"","prevSize":32,"code":59669,"name":"font-size-reset"},"setIdx":1,"setId":0,"iconIdx":21},{"icon":{"paths":["M768.248 725.54h-512.5v-85.416h512.5v85.416zM768.248 554.707h-512.5v-85.416h512.5v85.416zM768.248 383.873h-512.5v-85.416h512.5v85.416zM127.622 939.083l64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063v-854.167l-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063v854.167z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_fragment"],"defaultCode":59670,"grid":4},"properties":{"id":23,"order":106,"ligatures":"","prevSize":32,"code":59670,"name":"fragment"},"setIdx":1,"setId":0,"iconIdx":22},{"icon":{"paths":["M576.064 56.089c0 0 32.031 113.178 32.031 205 0 87.553-57.656 160.156-145.209 160.156s-155.885-70.469-155.885-160.156l2.135-14.948c-85.416 102.5-138.803 234.896-138.803 380.104 0 187.917 153.75 341.667 341.667 341.667s341.667-153.75 341.667-341.667c0-230.625-111.041-435.625-277.604-570.157zM499.189 839.788c-76.875 0-136.666-59.791-136.666-134.531 0-68.334 44.844-117.448 119.584-132.396s153.75-51.25 196.459-111.041c17.084 55.521 25.625 113.178 25.625 172.969 0 113.178-91.823 205-205 205z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_heatmap-alt"],"defaultCode":59671,"grid":4},"properties":{"id":24,"order":107,"ligatures":"","prevSize":32,"code":59671,"name":"heatmap-alt"},"setIdx":1,"setId":0,"iconIdx":23},{"icon":{"paths":["M127.625 426.583h213.542v-85.416h-213.542v85.416zM405.229 426.583h213.542v-85.416h-213.542v85.416zM682.834 426.583h213.542v-85.416h-213.542v85.416zM127.625 255.749h85.416v-85.416h-85.416v85.416zM298.459 255.749h85.416v-85.416h-85.416v85.416zM469.292 255.749h85.416v-85.416h-85.416v85.416zM640.126 255.749h85.416v-85.416h-85.416v85.416zM810.959 255.749h85.416v-85.416h-85.416v85.416zM127.625 597.416h341.667v-85.416h-341.667v85.416zM554.709 597.416h341.667v-85.416h-341.667v85.416zM896.376 853.666v-170.834h-768.751v170.834h768.751z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_heatmap"],"defaultCode":59672,"grid":4},"properties":{"id":25,"order":108,"ligatures":"","prevSize":32,"code":59672,"name":"heatmap"},"setIdx":1,"setId":0,"iconIdx":24},{"icon":{"paths":["M469.292 768.251h85.416v-85.416h-85.416v85.416zM512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084c0-234.896-192.188-427.084-427.084-427.084zM512 853.667c-187.917 0-341.667-153.75-341.667-341.667s153.75-341.667 341.667-341.667 341.667 153.75 341.667 341.667-153.75 341.667-341.667 341.667zM512 255.75c-93.959 0-170.834 76.875-170.834 170.834h85.416c0-46.979 38.438-85.416 85.416-85.416s85.416 38.438 85.416 85.416c0 85.416-128.125 74.74-128.125 213.542h85.416c0-96.094 128.125-106.771 128.125-213.542 0-93.959-76.875-170.834-170.834-170.834z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_help-alt"],"defaultCode":59673,"grid":4},"properties":{"id":26,"order":109,"ligatures":"","prevSize":32,"code":59673,"name":"help-alt"},"setIdx":1,"setId":0,"iconIdx":25},{"icon":{"paths":["M512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM554.709 810.959h-85.416v-85.416h85.416v85.416zM642.261 479.969l-38.438 38.438c-29.896 32.031-49.115 57.656-49.115 121.719h-85.416v-21.354c0-46.979 19.219-89.688 49.115-121.719l53.385-53.385c14.948-14.948 25.625-36.302 25.625-59.791 0-46.979-38.438-85.416-85.416-85.416s-85.416 38.438-85.416 85.416h-85.416c0-93.959 76.875-170.834 170.834-170.834s170.834 76.875 170.834 170.834c0 38.438-14.948 72.604-40.573 96.094z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_help"],"defaultCode":59674,"grid":4},"properties":{"id":27,"order":110,"ligatures":"","prevSize":32,"code":59674,"name":"help"},"setIdx":1,"setId":0,"iconIdx":26},{"icon":{"paths":["M879.293 205.567h-260.521v-59.791c0-34.166-25.625-59.791-59.791-59.791h-414.272c-34.166 0-59.791 25.625-59.791 59.791v307.5c0 34.166 25.625 59.791 59.791 59.791h207.135v25.625h-100.365c-34.166 0-59.791 25.625-59.791 59.791v279.74c0 34.166 25.625 59.791 59.791 59.791h401.459c34.166 0 59.791-25.625 59.791-59.791v-113.178h166.563c34.166 0 59.791-25.625 59.791-59.791v-439.897c0-32.031-25.625-59.791-59.791-59.791zM178.876 419.109v-239.167h345.938v25.625h-113.178c-34.166 0-59.791 25.625-59.791 59.791v153.75h-172.969zM524.814 299.526v119.584h-81.146v-119.584h81.146zM618.773 846.193h-333.125v-213.542h66.198v72.604c0 34.166 25.625 59.791 59.791 59.791h207.135v81.146zM618.773 673.224h-172.969v-40.573h172.969v40.573zM845.127 673.224h-132.396v-72.604c0-34.166-25.625-59.791-59.791-59.791h-207.135v-27.76h113.178c34.166 0 59.791-25.625 59.791-59.791v-153.75h226.354v373.698z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_hotspot"],"defaultCode":59675,"grid":4},"properties":{"id":28,"order":111,"ligatures":"","prevSize":32,"code":59675,"name":"hotspot"},"setIdx":1,"setId":0,"iconIdx":27},{"icon":{"paths":["M512 148.978c-200.729 0-363.022 162.291-363.022 363.022s162.291 363.022 363.022 363.022 363.022-162.291 363.022-363.022-162.291-363.022-363.022-363.022zM548.303 691.375h-72.604v-215.678h72.604v215.678zM548.303 403.093h-72.604v-72.604h72.604v72.604z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info-alt-r"],"defaultCode":59677,"grid":4},"properties":{"id":30,"order":113,"ligatures":"","prevSize":32,"code":59677,"name":"info-alt-r"},"setIdx":1,"setId":0,"iconIdx":29},{"icon":{"paths":["M802.417 148.979h-580.834c-40.573 0-72.604 32.031-72.604 72.604v580.834c0 40.573 32.031 72.604 72.604 72.604h580.834c40.573 0 72.604-32.031 72.604-72.604v-580.834c0-40.573-32.031-72.604-72.604-72.604zM548.303 693.511h-72.604v-217.813h72.604v217.813zM548.303 403.093h-72.604v-72.604h72.604v72.604z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info-alt-sq"],"defaultCode":59678,"grid":4},"properties":{"id":31,"order":114,"ligatures":"","prevSize":32,"code":59678,"name":"info-alt-sq"},"setIdx":1,"setId":0,"iconIdx":30},{"icon":{"paths":["M469.292 725.542h85.416v-256.25h-85.416v256.25zM512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM512 853.667c-187.917 0-341.667-153.75-341.667-341.667s153.75-341.667 341.667-341.667 341.667 153.75 341.667 341.667c0 187.917-153.75 341.667-341.667 341.667zM469.292 383.875h85.416v-85.416h-85.416v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info-alt"],"defaultCode":59679,"grid":4},"properties":{"id":32,"order":115,"ligatures":"","prevSize":32,"code":59679,"name":"info-alt"},"setIdx":1,"setId":0,"iconIdx":31},{"icon":{"paths":["M512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM554.709 725.542h-85.416v-256.25h85.416v256.25zM554.709 383.875h-85.416v-85.416h85.416v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info"],"defaultCode":59680,"grid":4},"properties":{"id":33,"order":116,"ligatures":"","prevSize":32,"code":59680,"name":"info"},"setIdx":1,"setId":0,"iconIdx":32},{"icon":{"paths":["M166.063 512c0-72.604 59.791-132.396 132.396-132.396h170.834v-81.146h-170.834c-117.448 0-213.542 96.094-213.542 213.542s96.094 213.542 213.542 213.542h170.834v-81.146h-170.834c-72.604 0-132.396-59.791-132.396-132.396zM341.167 554.708h341.667v-85.416h-341.667v85.416zM725.542 298.458h-170.834v81.146h170.834c72.604 0 132.396 59.791 132.396 132.396s-59.791 132.396-132.396 132.396h-170.834v81.146h170.834c117.448 0 213.542-96.094 213.542-213.542s-96.094-213.542-213.542-213.542z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_link"],"defaultCode":59681,"grid":4},"properties":{"id":34,"order":117,"ligatures":"","prevSize":32,"code":59681,"name":"link"},"setIdx":1,"setId":0,"iconIdx":33},{"icon":{"paths":["M148.979 597.417h170.834v-170.834h-170.834v170.834zM148.979 810.959h170.834v-170.834h-170.834v170.834zM148.979 383.875h170.834v-170.834h-170.834v170.834zM362.52 597.417h512.5v-170.834h-512.5v170.834zM362.52 810.959h512.5v-170.834h-512.5v170.834zM362.52 213.042v170.834h512.5v-170.834h-512.5z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_list-alt"],"defaultCode":59682,"grid":4},"properties":{"id":35,"order":118,"ligatures":"","prevSize":32,"code":59682,"name":"list-alt"},"setIdx":1,"setId":0,"iconIdx":34},{"icon":{"paths":["M127.625 554.709h85.416v-85.416h-85.416v85.416zM127.625 725.542h85.416v-85.416h-85.416v85.416zM127.625 383.875h85.416v-85.416h-85.416v85.416zM298.459 554.709h597.917v-85.416h-597.917v85.416zM298.459 725.542h597.917v-85.416h-597.917v85.416zM298.459 298.459v85.416h597.917v-85.416h-597.917z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_list"],"defaultCode":59683,"grid":4},"properties":{"id":36,"order":119,"ligatures":"","prevSize":32,"code":59683,"name":"list"},"setIdx":1,"setId":0,"iconIdx":35},{"icon":{"paths":["M853.667 170.334h-683.334c-46.979 0-85.416 38.438-85.416 85.416v512.5c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-512.5c0-46.979-38.438-85.416-85.416-85.416zM853.667 341.167l-341.667 213.542-341.667-213.542v-85.416l341.667 213.542 341.667-213.542v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_mail"],"defaultCode":59684,"grid":4},"properties":{"id":37,"order":121,"ligatures":"","prevSize":32,"code":59684,"name":"mail"},"setIdx":1,"setId":0,"iconIdx":36},{"icon":{"paths":["M127.625 768.25h768.751v-85.416h-768.751v85.416zM127.625 554.708h768.751v-85.416h-768.751v85.416zM127.625 255.749v85.416h768.751v-85.416h-768.751z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_menu"],"defaultCode":59685,"grid":4},"properties":{"id":38,"order":122,"ligatures":"","prevSize":32,"code":59685,"name":"menu"},"setIdx":1,"setId":0,"iconIdx":37},{"icon":{"paths":["M413.772 586.74v245.573h98.229v-542.397h98.229v542.397h98.229v-542.397h98.229v-98.229h-392.917c-108.906 0-196.459 87.553-196.459 196.459s87.553 198.594 196.459 198.594z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_paragraph"],"defaultCode":59689,"grid":4},"properties":{"id":42,"order":126,"ligatures":"","prevSize":32,"code":59689,"name":"paragraph"},"setIdx":1,"setId":0,"iconIdx":41},{"icon":{"paths":["M672.156 608.093h-34.166l-12.813-10.677c42.709-49.115 66.198-111.041 66.198-181.51 0-153.75-123.854-277.604-277.604-277.604s-275.469 123.854-275.469 277.604 123.854 277.604 277.604 277.604c68.334 0 132.396-25.625 181.51-66.198l10.677 10.677v34.166l213.542 213.542 64.063-64.063-213.542-213.542zM415.906 608.093c-106.771 0-192.188-85.416-192.188-192.188s85.416-192.188 192.188-192.188 192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_search"],"defaultCode":59693,"grid":4},"properties":{"id":46,"order":130,"ligatures":"","prevSize":32,"code":59693,"name":"search"},"setIdx":1,"setId":0,"iconIdx":45},{"icon":{"paths":["M138.302 822.703l64.063 64.063 213.542-213.542v-34.166l10.677-12.813c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604c-153.75 0-277.604 123.854-277.604 277.604 0 68.334 25.625 132.396 66.198 181.51l-10.677 12.813h-34.166l-213.542 213.542zM415.906 416.973c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188zM501.322 395.619h85.416v-85.416h42.709v85.416h85.416v42.709h-85.416v85.416h-42.709v-85.416h-85.416v-42.709z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-fit"],"defaultCode":59696,"grid":4},"properties":{"id":49,"order":133,"ligatures":"","prevSize":32,"code":59696,"name":"zoom-fit"},"setIdx":1,"setId":0,"iconIdx":48},{"icon":{"paths":["M138.302 821.635l64.063 64.063 213.542-213.542v-34.166l10.677-10.677c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604-277.604 123.854-277.604 277.604c0 68.334 25.625 132.396 66.198 181.51l-10.677 10.677h-34.166l-213.542 213.542zM415.907 415.905c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188zM710.595 281.374h-59.791v29.896h59.791v59.791h29.896v-59.791c0-17.084-12.813-29.896-29.896-29.896zM710.595 520.541h-59.791v29.896h59.791c17.084 0 29.896-12.813 29.896-29.896v-59.791h-29.896v59.791zM501.323 460.749h-29.896v59.791c0 17.084 12.813 29.896 29.896 29.896h59.791v-29.896h-59.791v-59.791zM469.292 311.27v59.791h32.031v-59.791h59.791v-29.896h-59.791c-17.084 0-32.031 12.813-32.031 29.896z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-in"],"defaultCode":59697,"grid":4},"properties":{"id":50,"order":134,"ligatures":"","prevSize":32,"code":59697,"name":"zoom-in"},"setIdx":1,"setId":0,"iconIdx":49},{"icon":{"paths":["M138.302 822.703l64.063 64.063 213.542-213.542v-34.166l10.677-12.813c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604c-153.75 0-277.604 123.854-277.604 277.604 0 68.334 25.625 132.396 66.198 181.51l-10.677 12.813h-34.166l-213.542 213.542zM415.906 416.973c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188zM714.865 438.328h-213.542v-42.709h213.542v42.709z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-one"],"defaultCode":59698,"grid":4},"properties":{"id":51,"order":135,"ligatures":"","prevSize":32,"code":59698,"name":"zoom-one"},"setIdx":1,"setId":0,"iconIdx":50},{"icon":{"paths":["M646.532 544.030v-256.25h-42.709l-85.416 42.709v42.709h64.063v170.834h64.063zM138.302 821.635l64.063 64.063 213.542-213.542v-34.166l10.677-10.677c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604-277.604 123.854-277.604 277.604c0 68.334 25.625 132.396 66.198 181.51l-10.677 10.677h-34.166l-213.542 213.542zM415.907 415.905c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-out"],"defaultCode":59699,"grid":4},"properties":{"id":52,"order":136,"ligatures":"","prevSize":32,"code":59699,"name":"zoom-out"},"setIdx":1,"setId":0,"iconIdx":51},{"icon":{"paths":["M138.302 821.635l64.063 64.063 213.542-213.542v-34.166l10.677-10.677c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604-277.604 123.854-277.604 277.604c0 68.334 25.625 132.396 66.198 181.51l-10.677 10.677h-34.166l-213.542 213.542zM415.906 415.905c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom"],"defaultCode":59700,"grid":4},"properties":{"id":53,"order":137,"ligatures":"","prevSize":32,"code":59700,"name":"zoom"},"setIdx":1,"setId":0,"iconIdx":52},{"icon":{"paths":["M725.54 896.376h85.416v-256.25h-85.416v256.25zM213.040 896.376h85.416v-427.084h-85.416v427.084zM896.374 469.292h-85.416v-341.667h-85.416v341.667h-85.416v85.416h256.25v-85.416zM383.873 725.542h85.416v170.834h85.416v-170.834h85.416v-85.416h-256.25v85.416zM554.707 127.625h-85.416v427.084h85.416v-427.084zM383.873 383.875v-85.416h-85.416v-170.834h-85.416v170.834h-85.416v85.416h256.25z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_align"],"defaultCode":59701,"grid":4},"properties":{"id":54,"order":138,"ligatures":"","prevSize":32,"code":59701,"name":"align"},"setIdx":1,"setId":0,"iconIdx":53},{"icon":{"paths":["M768.25 147.911h-512.5c-46.979 0-85.416 32.031-85.416 72.604v582.969c0 40.573 38.438 72.604 85.416 72.604h512.5c46.979 0 85.416-32.031 85.416-72.604v-582.969c0-40.573-38.438-72.604-85.416-72.604zM255.749 220.516h213.542v292.553l-106.771-55.521-106.771 55.521v-292.553z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookmark-alt2"],"defaultCode":59702,"grid":4},"properties":{"id":55,"order":139,"ligatures":"","prevSize":32,"code":59702,"name":"bookmark-alt2"},"setIdx":1,"setId":0,"iconIdx":54},{"icon":{"paths":["M896.375 170.332c-46.979-14.948-100.365-21.354-149.479-21.354-83.281 0-172.969 17.084-234.896 64.063-61.927-46.979-151.615-64.063-234.896-64.063s-172.969 17.084-234.896 64.063v625.678c0 10.677 10.677 21.354 21.354 21.354 4.271 0 6.406-2.135 10.677-2.135 57.656-27.76 140.938-46.979 202.865-46.979 83.281 0 172.969 17.084 234.896 64.063 57.656-36.302 162.291-64.063 234.896-64.063 70.469 0 143.073 12.813 202.865 44.844 4.271 2.135 6.406 2.135 10.677 2.135 10.677 0 21.354-10.677 21.354-21.354v-623.542c-25.625-19.219-53.385-32.031-85.416-42.709zM896.375 746.895c-46.979-14.948-98.229-21.354-149.479-21.354-72.604 0-177.24 27.76-234.896 64.063v-491.147c57.656-36.302 162.291-64.063 234.896-64.063 51.25 0 102.5 6.406 149.479 21.354v491.147z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookreader-alt"],"defaultCode":59703,"grid":4},"properties":{"id":56,"order":140,"ligatures":"","prevSize":32,"code":59703,"name":"bookreader-alt"},"setIdx":1,"setId":0,"iconIdx":55},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM875.022 345.439h-292.553v-59.791h292.553z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-minus-alt"],"defaultCode":59704,"grid":4},"properties":{"id":57,"order":141,"ligatures":"","prevSize":32,"code":59704,"name":"font-size-minus-alt"},"setIdx":1,"setId":0,"iconIdx":56},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM721.272 443.668c-55.521 0-104.635-34.166-123.854-81.146h46.979c17.084 25.625 44.844 40.573 79.010 40.573 53.385 0 96.094-42.709 96.094-96.094s-42.709-96.094-96.094-96.094c-36.302 0-68.334 21.354-83.281 51.25l42.709 42.709h-108.906v-106.771l36.302 36.302c21.354-38.438 64.063-64.063 111.041-64.063 74.74 0 136.666 61.927 136.666 136.666s-61.927 136.666-136.666 136.666z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-reset-alt"],"defaultCode":59705,"grid":4},"properties":{"id":58,"order":142,"ligatures":"","prevSize":32,"code":59705,"name":"font-size-reset-alt"},"setIdx":1,"setId":0,"iconIdx":57},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM740.491 270.699c-21.354 0-40.573 17.084-40.573 40.573s17.084 40.573 40.573 40.573 40.573-17.084 40.573-40.573-19.219-40.573-40.573-40.573zM845.126 311.273c0 4.271 0 8.541 0 12.813l29.896 23.49c2.135 2.135 4.271 6.406 2.135 8.541l-29.896 49.115c-2.135 2.135-6.406 4.271-8.541 2.135l-34.166-14.948c-6.406 6.406-14.948 10.677-23.49 12.813l-4.271 36.302c0 4.271-4.271 6.406-6.406 6.406h-55.521c-4.271 0-6.406-2.135-6.406-6.406l-4.271-36.302c-8.541-4.271-17.084-8.541-23.49-12.813l-34.166 14.948c-4.271 2.135-6.406 0-8.541-2.135l-27.76-49.115c-2.135-2.135 0-6.406 2.135-8.541l29.896-23.49c0-4.271 0-8.541 0-12.813s0-8.541 0-12.813l-29.896-23.49c-2.135-2.135-4.271-6.406-2.135-8.541l27.76-49.115c2.135-2.135 6.406-4.271 8.541-2.135l34.166 14.948c6.406-6.406 14.948-10.677 23.49-12.813v-40.573c0-4.271 4.271-6.406 6.406-6.406h57.656c4.271 0 6.406 2.135 6.406 6.406l4.271 36.302c8.541 4.271 17.084 8.541 23.49 12.813l34.166-14.948c2.135-2.135 6.406 0 8.541 2.135l27.76 49.115c2.135 2.135 0 6.406-2.135 8.541l-29.896 23.49c4.271 6.406 4.271 12.813 4.271 17.084z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size"],"defaultCode":59706,"grid":4},"properties":{"id":59,"order":143,"ligatures":"","prevSize":32,"code":59706,"name":"font-size"},"setIdx":1,"setId":0,"iconIdx":58},{"icon":{"paths":["M148.979 490.645h213.542v-256.25h-213.542v256.25zM148.979 789.604h213.542v-256.25h-213.542v256.25zM405.229 789.604h213.542v-256.25h-213.542v256.25zM661.479 789.604h213.542v-256.25h-213.542v256.25zM405.229 490.645h213.542v-256.25h-213.542v256.25zM661.479 234.395v256.25h213.542v-256.25h-213.542z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_thumbnails"],"defaultCode":59707,"grid":4},"properties":{"id":60,"order":144,"ligatures":"","prevSize":32,"code":59707,"name":"thumbnails"},"setIdx":1,"setId":0,"iconIdx":59}],"height":1024,"metadata":{"name":"evt-icons"},"preferences":{"showGlyphs":true,"showCodes":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"evt-icon-","metadata":{"fontFamily":"evt-icons","description":"Font generated for EVT","majorVersion":1,"minorVersion":0},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"includeMetadata":true,"embed":false,"ie7":true,"noie8":false,"cssVars":false,"cssVarsFormat":"scss","showSelector":true,"showMetrics":false,"showMetadata":false,"showVersion":true},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"name":"icomoon","classSelector":".icon"},"historySize":50,"gridSize":16,"showGrid":true}} \ No newline at end of file +{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M917.806 357.076c-22.21-30.292-53.174-65.7-87.178-99.704s-69.412-64.964-99.704-87.178c-51.574-37.82-76.592-42.194-90.924-42.194h-368c-44.114 0-80 35.888-80 80v736c0 44.112 35.886 80 80 80h608c44.112 0 80-35.888 80-80v-496c0-14.332-4.372-39.35-42.194-90.924zM785.374 302.626c30.7 30.7 54.8 58.398 72.58 81.374h-153.954v-153.946c22.982 17.78 50.678 41.878 81.374 72.572v0zM896 944c0 8.672-7.328 16-16 16h-608c-8.672 0-16-7.328-16-16v-736c0-8.672 7.328-16 16-16 0 0 367.956-0.002 368 0v224c0 17.672 14.324 32 32 32h224v496zM602.924 42.196c-51.574-37.822-76.592-42.196-90.924-42.196h-368c-44.112 0-80 35.888-80 80v736c0 38.632 27.528 70.958 64 78.39v-814.39c0-8.672 7.328-16 16-16h486.876c-9.646-7.92-19.028-15.26-27.952-21.804z"],"isMulticolor":false,"isMulticolor2":false,"tags":["files-empty","files","documents","papers","pages"],"defaultCode":59708,"grid":16},"properties":{"id":1,"order":75,"ligatures":"","prevSize":32,"code":59708,"name":"files-empty"},"setIdx":0,"setId":1,"iconIdx":0},{"icon":{"paths":["M896 448h16c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h-128v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v576h128v-576zM768 256h128v128h-128v-128zM592 832c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-576h-128v576h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v192h128v-192h16zM448 640h128v128h-128v-128zM272 448c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h-128v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v576h128v-576h16zM128 256h128v128h-128v-128z"],"isMulticolor":false,"isMulticolor2":false,"tags":["equalizer","sliders","settings","preferences","dashboard","control"],"defaultCode":59709,"grid":16},"properties":{"id":2,"order":76,"ligatures":"","prevSize":32,"code":59709,"name":"equalizer"},"setIdx":0,"setId":1,"iconIdx":1},{"icon":{"paths":["M749.714 182.857h-475.429c-50.286 0-91.429 41.143-91.429 91.429v475.429c0 50.286 41.143 91.429 91.429 91.429h475.429c50.286 0 91.429-41.143 91.429-91.429v-475.429c0-50.286-41.143-91.429-91.429-91.429zM914.285 274.285v475.429c0 90.857-73.714 164.571-164.571 164.571h-475.429c-90.857 0-164.571-73.714-164.571-164.571v-475.429c0-90.857 73.714-164.571 164.571-164.571h475.429c90.857 0 164.571 73.714 164.571 164.571z"],"isMulticolor":false,"isMulticolor2":false,"tags":["square-o"],"defaultCode":59710,"grid":16},"properties":{"id":3,"order":77,"ligatures":"","prevSize":32,"code":59710,"name":"square-o"},"setIdx":0,"setId":1,"iconIdx":2},{"icon":{"paths":["M969.143 219.428c30.286 0 54.857 24.571 54.857 54.857v694.857c0 30.286-24.571 54.857-54.857 54.857h-548.571c-30.286 0-54.857-24.571-54.857-54.857v-164.571h-310.857c-30.286 0-54.857-24.571-54.857-54.857v-384c0-30.286 17.714-72.571 38.857-93.714l233.143-233.143c21.143-21.143 63.429-38.857 93.714-38.857h237.714c30.286 0 54.857 24.571 54.857 54.857v187.429c22.286-13.143 50.857-22.857 73.143-22.857h237.714zM658.286 341.142l-170.857 170.857h170.857v-170.857zM292.571 121.713l-170.857 170.857h170.857v-170.857zM404.571 491.428l180.571-180.571v-237.714h-219.429v237.714c0 30.286-24.571 54.857-54.857 54.857h-237.714v365.714h292.571v-146.286c0-30.286 17.714-72.571 38.857-93.714zM950.857 950.856v-658.286h-219.429v237.714c0 30.286-24.571 54.857-54.857 54.857h-237.714v365.714h512z"],"isMulticolor":false,"isMulticolor2":false,"tags":["copy","files-o"],"defaultCode":59711,"grid":16},"properties":{"id":4,"order":78,"ligatures":"","prevSize":32,"code":59711,"name":"copy"},"setIdx":0,"setId":1,"iconIdx":3},{"icon":{"paths":["M950.858 932.571v-621.714c0-9.714-8.571-18.286-18.286-18.286h-621.714c-9.714 0-18.286 8.571-18.286 18.286v621.714c0 9.714 8.571 18.286 18.286 18.286h621.714c9.714 0 18.286-8.571 18.286-18.286zM1024.001 310.857v621.714c0 50.286-41.143 91.429-91.429 91.429h-621.714c-50.286 0-91.429-41.143-91.429-91.429v-621.714c0-50.286 41.143-91.429 91.429-91.429h621.714c50.286 0 91.429 41.143 91.429 91.429zM804.572 91.429v91.429h-73.143v-91.429c0-9.714-8.571-18.286-18.286-18.286h-621.714c-9.714 0-18.286 8.571-18.286 18.286v621.714c0 9.714 8.571 18.286 18.286 18.286h91.429v73.143h-91.429c-50.286 0-91.429-41.143-91.429-91.429v-621.714c0-50.286 41.143-91.429 91.429-91.429h621.714c50.286 0 91.429 41.143 91.429 91.429z"],"isMulticolor":false,"isMulticolor2":false,"tags":["clone"],"defaultCode":59712,"grid":16},"properties":{"id":5,"order":79,"ligatures":"","prevSize":32,"code":59712,"name":"clone"},"setIdx":0,"setId":1,"iconIdx":4},{"icon":{"paths":["M475.428 219.428v402.286c0 161.143-131.429 292.571-292.571 292.571h-36.571c-20 0-36.571-16.571-36.571-36.571v-73.143c0-20 16.571-36.571 36.571-36.571h36.571c80.571 0 146.286-65.714 146.286-146.286v-18.286c0-30.286-24.571-54.857-54.857-54.857h-128c-60.571 0-109.714-49.143-109.714-109.714v-219.429c0-60.571 49.143-109.714 109.714-109.714h219.429c60.571 0 109.714 49.143 109.714 109.714zM987.428 219.428v402.286c0 161.143-131.429 292.571-292.571 292.571h-36.571c-20 0-36.571-16.571-36.571-36.571v-73.143c0-20 16.571-36.571 36.571-36.571h36.571c80.571 0 146.286-65.714 146.286-146.286v-18.286c0-30.286-24.571-54.857-54.857-54.857h-128c-60.571 0-109.714-49.143-109.714-109.714v-219.429c0-60.571 49.143-109.714 109.714-109.714h219.429c60.571 0 109.714 49.143 109.714 109.714z"],"isMulticolor":false,"isMulticolor2":false,"tags":["quote-right"],"defaultCode":59713,"grid":16},"properties":{"id":6,"order":80,"ligatures":"","prevSize":32,"code":59713,"name":"quote-right"},"setIdx":0,"setId":1,"iconIdx":5},{"icon":{"paths":["M704 0v124c0 51.264-20 99.488-56.128 135.616l-362.112 360.128c-57.248 57.12-88.768 132.128-92.256 212.256h-129.504l192 192 192-192h-126.624c3.36-46.016 21.888-88.736 54.752-121.76l362.112-360c60.512-60.48 93.76-140.736 93.76-226.24v-124h-128zM830.496 832c-3.488-80.128-35.136-155.136-92.384-212.512l-71.36-70.88-90.752 90.272 71.744 71.36c32.992 32.864 51.488 75.744 54.88 121.76h-126.624l192 192 192-192h-129.504z"],"isMulticolor":false,"isMulticolor2":false,"tags":["fork"],"defaultCode":59714,"grid":16},"properties":{"id":7,"order":81,"ligatures":"","prevSize":32,"code":59714,"name":"fork"},"setIdx":0,"setId":1,"iconIdx":6},{"icon":{"paths":["M475.429 585.143v219.429c0 60.571-49.143 109.714-109.714 109.714h-219.429c-60.571 0-109.714-49.143-109.714-109.714v-402.286c0-161.143 131.429-292.571 292.571-292.571h36.571c20 0 36.571 16.571 36.571 36.571v73.143c0 20-16.571 36.571-36.571 36.571h-36.571c-80.571 0-146.286 65.714-146.286 146.286v18.286c0 30.286 24.571 54.857 54.857 54.857h128c60.571 0 109.714 49.143 109.714 109.714zM987.429 585.143v219.429c0 60.571-49.143 109.714-109.714 109.714h-219.429c-60.571 0-109.714-49.143-109.714-109.714v-402.286c0-161.143 131.429-292.571 292.571-292.571h36.571c20 0 36.571 16.571 36.571 36.571v73.143c0 20-16.571 36.571-36.571 36.571h-36.571c-80.571 0-146.286 65.714-146.286 146.286v18.286c0 30.286 24.571 54.857 54.857 54.857h128c60.571 0 109.714 49.143 109.714 109.714z"],"isMulticolor":false,"isMulticolor2":false,"tags":["quote-left"],"defaultCode":59715,"grid":16},"properties":{"id":8,"order":82,"ligatures":"","prevSize":32,"code":59715,"name":"quote-left"},"setIdx":0,"setId":1,"iconIdx":7},{"icon":{"paths":["M94.442 108.756c-52.315 0-94.442 44.187-94.442 99.099v608.257c0 54.912 42.126 99.133 94.442 99.133h835.116c52.315 0 94.442-44.221 94.442-99.133v-608.257c0-54.912-42.126-99.099-94.442-99.099h-835.116zM67.972 222.616h469.848v476.696h56.912c1.76-37.849 17.649-73.283 46.536-100.264l182.754-170.118c18.231-17.065 28.318-39.819 28.318-64.035v-58.59h64.582v58.59c0 40.39-16.788 78.27-47.323 106.838l-182.72 170.050c-16.584 15.599-25.939 35.792-27.634 57.528h63.897l-96.874 90.709-88.449-82.799v123.206h-469.848v-607.81zM136.971 360.991v67.938h336.984v-67.938h-336.984zM136.971 499.88v58.076h336.984v-58.076h-336.984zM833.541 565.456l35.989 33.489c28.889 27.103 44.878 62.516 46.639 100.366h65.335l-96.874 90.709-96.907-90.709h63.897c-1.712-21.736-11.019-42.005-27.668-57.528l-36.229-33.695 45.817-42.632zM136.971 628.907v73.486h336.984v-73.486h-336.984z"],"isMulticolor":false,"isMulticolor2":false,"tags":["versions"],"defaultCode":59716,"grid":16},"properties":{"id":9,"order":83,"ligatures":"","prevSize":32,"code":59716,"name":"versions"},"setIdx":0,"setId":1,"iconIdx":8},{"icon":{"paths":["M94.408 108.755c-52.315 0-94.408 44.187-94.408 99.1v608.257c0 54.91 42.093 99.133 94.408 99.133h835.151c52.315 0 94.441-44.222 94.441-99.133v-608.257c0-54.91-42.126-99.1-94.441-99.1h-835.151zM51.058 218.161h465.978v607.777h-465.978v-607.777zM690.098 341.197h16.71c9.122 0 16.677 7.111 16.677 15.718v31.47c0 8.607-7.554 15.752-16.677 15.752h-16.71c-36.752 0-66.705 28.297-66.705 62.974v7.842c0 13.036 11.218 23.627 25.032 23.627h58.384c27.629 0 50.029 21.153 50.029 47.222v94.408c0 26.066-22.399 47.222-50.029 47.222h-100.092c-27.629 0-50.062-21.153-50.062-47.222v-173.099c0-69.351 59.943-125.911 133.444-125.911zM923.634 341.197h16.71c9.122 0 16.677 7.111 16.677 15.718v31.47c0 8.607-7.554 15.752-16.677 15.752h-16.71c-36.752 0-66.705 28.297-66.705 62.974v7.842c0 13.036 11.218 23.627 25.032 23.627h58.384c27.629 0 50.029 21.153 50.029 47.222v94.408c0 26.066-22.399 47.222-50.029 47.222h-100.092c-27.629 0-50.062-21.153-50.062-47.222v-173.099c0-69.351 59.943-125.911 133.444-125.911zM118.754 361.708v54.994h337.018v-54.994h-337.018zM118.754 501.865v46.468h337.018v-46.468h-337.018zM118.754 629.624v54.104h337.018v-54.104h-337.018z"],"isMulticolor":false,"isMulticolor2":false,"tags":["src-Txt"],"defaultCode":59717,"grid":16},"properties":{"id":10,"order":84,"ligatures":"","prevSize":32,"code":59717,"name":"srcTxt"},"setIdx":0,"setId":1,"iconIdx":9},{"icon":{"paths":["M930.91 116.364h-837.82c-51.2 0-93.090 41.891-93.090 93.090v605.092c0 51.2 41.891 93.090 93.090 93.090h837.82c51.2 0 93.090-41.891 93.090-93.090v-605.092c0-51.2-41.891-93.090-93.090-93.090zM190.837 693.527l58.181 81.455 86.109-111.709 116.364 151.274h-349.092l88.437-121.017zM640 693.527l58.181 81.455 86.109-111.709 116.364 151.274h-349.092l88.437-121.017z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookreader"],"defaultCode":59652,"grid":16},"properties":{"id":5,"order":89,"ligatures":"","prevSize":32,"code":59652,"name":"bookreader"},"setIdx":1,"setId":0,"iconIdx":4},{"icon":{"paths":["M397.962 484.072h228.073v55.855h-228.073v-55.855zM397.962 390.982h228.073v55.855h-228.073v-55.855zM397.962 577.165h228.073v55.855h-228.073v-55.855zM930.909 116.364h-837.819c-51.2 0-93.090 41.892-93.090 93.090v605.092c0 51.2 41.892 93.090 93.090 93.090h837.819c51.2 0 93.090-41.892 93.090-93.090v-605.092c0-51.2-41.892-93.090-93.090-93.090zM651.636 814.546h-279.273v-605.092h279.273v605.092zM88.434 484.072h228.073v55.855h-228.073v-55.855zM88.434 390.982h228.073v55.855h-228.073v-55.855zM88.434 577.165h228.073v55.855h-228.073v-55.855zM674.907 484.072h228.073v55.855h-228.073v-55.855zM674.907 390.982h228.073v55.855h-228.073v-55.855zM674.907 577.165h228.073v55.855h-228.073v-55.855zM930.909 814.546h-279.273v-605.092h279.273v605.092z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_collation"],"defaultCode":59656,"grid":16},"properties":{"id":9,"order":120,"ligatures":"","prevSize":32,"code":59656,"name":"collation"},"setIdx":1,"setId":0,"iconIdx":8},{"icon":{"paths":["M558.546 488.728h325.819v69.819h-325.819v-69.819zM558.546 372.363h325.819v69.819h-325.819v-69.819zM558.546 605.092h325.819v69.819h-325.819v-69.819zM930.91 116.364h-837.82c-51.2 0-93.090 41.891-93.090 93.090v605.092c0 51.2 41.891 93.090 93.090 93.090h837.82c51.2 0 93.090-41.891 93.090-93.090v-605.092c0-51.2-41.891-93.090-93.090-93.090zM930.91 814.546h-418.909v-605.092h418.909v605.092zM190.837 693.527l58.181 81.455 86.109-111.709 116.364 151.274h-349.092l88.437-121.017z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_imgtxt"],"defaultCode":59676,"grid":16},"properties":{"id":29,"order":112,"ligatures":"","prevSize":32,"code":59676,"name":"imgTxt"},"setIdx":1,"setId":0,"iconIdx":28},{"icon":{"paths":["M381.906 115.911h-195.14c-51.108 0-92.923 34.846-92.923 78.985v634.207c0 44.139 41.816 78.985 92.923 78.985h650.468c51.108 0 92.923-34.846 92.923-78.985v-634.207c0-44.139-41.816-78.985-92.923-78.985h-195.14zM837.234 815.165h-650.468v-604.007h650.468v604.007zM286.659 478.315h448.358v69.694h-448.358v-69.694zM286.659 362.161h448.358v69.694h-448.358v-69.694zM286.659 594.47h448.358v69.694h-448.358v-69.694z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_txt"],"defaultCode":59694,"grid":16},"properties":{"id":47,"order":131,"ligatures":"","prevSize":32,"code":59694,"name":"txt"},"setIdx":1,"setId":0,"iconIdx":46},{"icon":{"paths":["M558.546 488.728h325.819v69.819h-325.819v-69.819zM558.546 372.363h325.819v69.819h-325.819v-69.819zM558.546 605.092h325.819v69.819h-325.819v-69.819zM930.91 116.364h-837.82c-51.2 0-93.090 41.891-93.090 93.090v605.092c0 51.2 41.891 93.090 93.090 93.090h837.82c51.2 0 93.090-41.891 93.090-93.090v-605.092c0-51.2-41.891-93.090-93.090-93.090zM930.91 814.546h-418.909v-605.092h418.909v605.092zM104.728 488.728h325.819v69.819h-325.819v-69.819zM104.728 372.363h325.819v69.819h-325.819v-69.819zM104.728 605.092h325.819v69.819h-325.819v-69.819z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_txttxt"],"defaultCode":59695,"grid":16},"properties":{"id":48,"order":132,"ligatures":"","prevSize":32,"code":59695,"name":"txtTxt"},"setIdx":1,"setId":0,"iconIdx":47},{"icon":{"paths":["M810.958 554.708h-256.25v256.25h-85.416v-256.25h-256.25v-85.416h256.25v-256.25h85.416v256.25h256.25v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_add"],"defaultCode":59648,"grid":4},"properties":{"id":1,"order":85,"ligatures":"","prevSize":32,"code":59648,"name":"add"},"setIdx":1,"setId":0,"iconIdx":0},{"icon":{"paths":["M832.313 191.688v694.011h-561.615c-44.844 0-81.146-36.302-81.146-81.146s36.302-81.146 81.146-81.146h508.229v-638.491h-533.854c-59.791 0-106.771 49.115-106.771 106.771v640.626c0 59.791 49.115 106.771 106.771 106.771h640.626v-747.397h-53.385zM270.698 778.928v0 0c-14.948 0-27.76 12.813-27.76 25.625s12.813 27.76 27.76 27.76v0 0h508.229v-53.385h-508.229z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_book"],"defaultCode":59649,"grid":4},"properties":{"id":2,"order":86,"ligatures":"","prevSize":32,"code":59649,"name":"book"},"setIdx":1,"setId":0,"iconIdx":1},{"icon":{"paths":["M712.729 152.182h-401.459c-44.844 0-79.010 36.302-79.010 79.010v638.491l279.74-117.448 279.74 119.584v-638.491c0-44.844-36.302-81.146-79.010-81.146zM712.729 752.234l-200.729-87.553-200.729 87.553v-518.907h399.323v518.907z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookmark-alt"],"defaultCode":59650,"grid":4},"properties":{"id":3,"order":87,"ligatures":"","prevSize":32,"code":59650,"name":"bookmark-alt"},"setIdx":1,"setId":0,"iconIdx":2},{"icon":{"paths":["M710.594 152.182h-397.188c-42.709 0-79.010 36.302-79.010 79.010v640.626l277.604-119.584 277.604 119.584v-638.491c0-44.844-36.302-81.146-79.010-81.146z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookmark"],"defaultCode":59651,"grid":4},"properties":{"id":4,"order":88,"ligatures":"","prevSize":32,"code":59651,"name":"bookmark"},"setIdx":1,"setId":0,"iconIdx":3},{"icon":{"paths":["M233.138 170.334h-166.563c-14.948 0-25.625 12.813-25.625 27.76v627.813c0 14.948 10.677 27.76 25.625 27.76h164.428c14.948 0 27.76-12.813 27.76-27.76v-627.813c2.135-14.948-10.677-27.76-25.625-27.76zM205.378 341.167h-111.041v-57.656h111.041v57.656zM506.472 170.334h-164.428c-14.948 0-27.76 12.813-27.76 27.76v627.813c0 14.948 12.813 27.76 27.76 27.76h164.428c14.948 0 27.76-12.813 27.76-27.76v-627.813c0-14.948-10.677-27.76-27.76-27.76zM480.847 341.167h-111.041v-57.656h111.041v57.656zM696.525 213.042l-147.344 76.875c-12.813 6.406-19.219 23.49-12.813 38.438l247.709 508.229c6.406 14.948 23.49 19.219 36.302 12.813l147.344-76.875c12.813-6.406 19.219-23.49 12.813-38.438l-245.573-508.229c-6.406-12.813-23.49-19.219-38.438-12.813z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_books"],"defaultCode":59653,"grid":4},"properties":{"id":6,"order":90,"ligatures":"","prevSize":32,"code":59653,"name":"books"},"setIdx":1,"setId":0,"iconIdx":5},{"icon":{"paths":["M810.958 272.833l-59.791-59.791-239.167 239.167-239.167-239.167-59.791 59.791 239.167 239.167-239.167 239.167 59.791 59.791 239.167-239.167 239.167 239.167 59.791-59.791-239.167-239.167 239.167-239.167z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_close"],"defaultCode":59654,"grid":4},"properties":{"id":7,"order":91,"ligatures":"","prevSize":32,"code":59654,"name":"close"},"setIdx":1,"setId":0,"iconIdx":6},{"icon":{"paths":["M400.959 708.459l-194.323-196.459 196.459-196.459-61.927-59.791-256.25 256.25 256.25 256.25 59.791-59.791zM623.042 708.459l196.459-196.459-196.459-196.459 59.791-59.791 256.25 256.25-256.25 256.25-59.791-59.791z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_code"],"defaultCode":59655,"grid":4},"properties":{"id":8,"order":92,"ligatures":"","prevSize":32,"code":59655,"name":"code"},"setIdx":1,"setId":0,"iconIdx":7},{"icon":{"paths":["M910.255 553.64h-341.667v-85.416h341.667v85.416zM910.255 297.39h-341.667v85.416h341.667v-85.416zM568.587 724.473h341.667v-85.416h-341.667v85.416zM269.629 297.39c0 0-155.885 168.698-155.885 273.334 0 85.416 70.469 155.885 155.885 155.885s155.885-70.469 155.885-155.885c0-104.635-155.885-273.334-155.885-273.334z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_color-legend"],"defaultCode":59657,"grid":4},"properties":{"id":10,"order":93,"ligatures":"","prevSize":32,"code":59657,"name":"color-legend"},"setIdx":1,"setId":0,"iconIdx":9},{"icon":{"paths":["M512 127.626c-211.406 0-384.375 172.969-384.375 384.375s172.969 384.375 384.375 384.375c36.302 0 64.063-27.76 64.063-64.063 0-17.084-6.406-32.031-17.084-42.709s-17.084-25.625-17.084-42.709c0-36.302 27.76-64.063 64.063-64.063h76.875c117.448 0 213.542-96.094 213.542-213.542 0-187.917-172.969-341.667-384.375-341.667zM277.104 512.002c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063zM405.229 341.168c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063zM618.772 341.168c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063zM746.897 512.002c-36.302 0-64.063-27.76-64.063-64.063s27.76-64.063 64.063-64.063 64.063 27.76 64.063 64.063-27.76 64.063-64.063 64.063z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_color-lens"],"defaultCode":59658,"grid":4},"properties":{"id":11,"order":94,"ligatures":"","prevSize":32,"code":59658,"name":"color-lens"},"setIdx":1,"setId":0,"iconIdx":10},{"icon":{"paths":["M706.323 531.219l-382.24-382.24-59.791 59.791 102.5 102.5-219.948 219.948c-25.625 25.625-25.625 66.198 0 89.688l234.896 234.896c12.813 12.813 29.896 19.219 44.844 19.219s32.031-6.406 44.844-19.219l234.896-234.896c25.625-23.49 25.625-66.198 0-89.688zM221.584 576.063l205-205 205 205h-410zM810.959 640.126c0 0-85.416 91.823-85.416 149.479 0 46.979 38.438 85.416 85.416 85.416s85.416-38.438 85.416-85.416c0-57.656-85.416-149.479-85.416-149.479z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_colors-fill"],"defaultCode":59659,"grid":4},"properties":{"id":12,"order":95,"ligatures":"","prevSize":32,"code":59659,"name":"colors-fill"},"setIdx":1,"setId":0,"iconIdx":11},{"icon":{"paths":["M512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM512 853.667c-187.917 0-341.667-153.75-341.667-341.667s153.75-341.667 341.667-341.667 341.667 153.75 341.667 341.667c0 187.917-153.75 341.667-341.667 341.667zM430.854 462.886c2.135-12.813 6.406-25.625 12.813-36.302s14.948-19.219 25.625-25.625c10.677-6.406 23.49-8.541 38.438-10.677 10.677 0 19.219 2.135 27.76 6.406s17.084 8.541 21.354 14.948c6.406 6.406 10.677 14.948 14.948 23.49s4.271 17.084 6.406 27.76h76.875c0-19.219-4.271-38.438-10.677-55.521s-17.084-32.031-29.896-42.709-27.76-21.354-46.979-27.76c-17.084-6.406-38.438-10.677-59.791-10.677-27.76 0-51.25 4.271-72.604 14.948-21.354 8.541-38.438 23.49-51.25 38.438-12.813 17.084-23.49 36.302-29.896 57.656s-10.677 44.844-10.677 70.469v10.677c0 25.625 4.271 46.979 10.677 70.469 6.406 21.354 17.084 40.573 29.896 57.656s29.896 29.896 51.25 38.438c21.354 10.677 44.844 14.948 72.604 14.948 19.219 0 38.438-4.271 55.521-10.677s32.031-14.948 46.979-27.76c12.813-10.677 23.49-25.625 32.031-40.573s12.813-32.031 12.813-49.115h-79.010c0 8.541-2.135 17.084-6.406 25.625s-8.541 14.948-14.948 19.219c-6.406 4.271-14.948 10.677-23.49 12.813s-17.084 4.271-25.625 4.271c-14.948 0-27.76-4.271-38.438-10.677s-19.219-14.948-25.625-25.625-10.677-23.49-12.813-38.438c-2.135-12.813-2.135-25.625-2.135-40.573v-10.677c0-17.084 0-29.896 4.271-44.844z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_copyright"],"defaultCode":59660,"grid":4},"properties":{"id":13,"order":96,"ligatures":"","prevSize":32,"code":59660,"name":"copyright"},"setIdx":1,"setId":0,"iconIdx":12},{"icon":{"paths":["M298.458 405.229l213.542 213.542 213.542-213.542h-427.084z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_drop-down"],"defaultCode":59661,"grid":4},"properties":{"id":14,"order":97,"ligatures":"","prevSize":32,"code":59661,"name":"drop-down"},"setIdx":1,"setId":0,"iconIdx":13},{"icon":{"paths":["M298.458 618.771l213.542-213.542 213.542 213.542h-427.084z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_drop-up"],"defaultCode":59662,"grid":4},"properties":{"id":15,"order":98,"ligatures":"","prevSize":32,"code":59662,"name":"drop-up"},"setIdx":1,"setId":0,"iconIdx":14},{"icon":{"paths":["M618.771 810.959v0-384.375l234.896-213.542h-683.334l234.896 213.542v298.959l213.542 85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_filter"],"defaultCode":59663,"grid":4},"properties":{"id":16,"order":99,"ligatures":"","prevSize":32,"code":59663,"name":"filter"},"setIdx":1,"setId":0,"iconIdx":15},{"icon":{"paths":["M853.666 836.584v-495.417l-256.25-256.25h-341.667c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h512.5c19.219 0 36.302-6.406 51.25-17.084l-190.053-190.053c-34.166 23.49-74.74 36.302-117.448 36.302-117.448 0-213.542-96.094-213.542-213.542s96.094-213.542 213.542-213.542 213.542 96.094 213.542 213.542c0 42.709-12.813 83.281-36.302 117.448l164.428 164.428zM383.874 554.708c0 70.469 57.656 128.125 128.125 128.125s128.125-57.656 128.125-128.125c0-70.469-57.656-128.125-128.125-128.125s-128.125 57.656-128.125 128.125z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_find-in-page"],"defaultCode":59664,"grid":4},"properties":{"id":17,"order":100,"ligatures":"","prevSize":32,"code":59664,"name":"find-in-page"},"setIdx":1,"setId":0,"iconIdx":16},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM870.751 330.491h-294.688v-59.791h294.688z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-minu-alt"],"defaultCode":59665,"grid":4},"properties":{"id":18,"order":101,"ligatures":"","prevSize":32,"code":59665,"name":"font-size-minu-alt"},"setIdx":1,"setId":0,"iconIdx":17},{"icon":{"paths":["M620.906 833.381h102.5l-251.979-642.761h-91.823l-251.979 642.761h102.5l55.521-147.344h277.604l57.656 147.344zM324.083 585.673l102.5-271.198 102.5 273.334h-205zM595.281 376.401h301.094v-61.927h-301.094z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-minus"],"defaultCode":59666,"grid":4},"properties":{"id":19,"order":102,"ligatures":"","prevSize":32,"code":59666,"name":"font-size-minus"},"setIdx":1,"setId":0,"iconIdx":18},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM870.751 330.491h-117.448v117.448h-59.791v-117.448h-117.448v-59.791h117.448v-117.448h59.791v117.448h117.448v59.791z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-plus-alt"],"defaultCode":59667,"grid":4},"properties":{"id":20,"order":103,"ligatures":"","prevSize":32,"code":59667,"name":"font-size-plus-alt"},"setIdx":1,"setId":0,"iconIdx":19},{"icon":{"paths":["M620.906 833.381h102.5l-251.979-642.761h-91.823l-251.979 642.761h102.5l55.521-147.344h277.604l57.656 147.344zM324.083 585.673l102.5-271.198 102.5 273.334h-205zM774.656 314.475v-121.719h-61.927v121.719h-121.719v61.927h121.719v121.719h61.927v-121.719h121.719v-61.927z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-plus"],"defaultCode":59668,"grid":4},"properties":{"id":21,"order":104,"ligatures":"","prevSize":32,"code":59668,"name":"font-size-plus"},"setIdx":1,"setId":0,"iconIdx":20},{"icon":{"paths":["M792.808 325.151c0-17.084-12.813-29.896-29.896-29.896s-29.896 12.813-29.896 29.896 12.813 29.896 29.896 29.896 29.896-12.813 29.896-29.896zM762.912 190.62c-74.74 0-134.531 59.791-134.531 134.531h-44.844l59.791 59.791 59.791-59.791h-44.844c0-57.656 46.979-104.635 104.635-104.635s104.635 46.979 104.635 104.635c0 57.656-46.979 104.635-104.635 104.635-23.49 0-42.709-6.406-59.791-19.219l-21.354 21.354c23.49 17.084 51.25 27.76 81.146 27.76 74.74 0 134.531-59.791 134.531-134.531-2.135-72.604-61.927-134.531-134.531-134.531zM619.839 833.381h102.5l-251.979-642.761h-91.823l-251.979 642.761h102.5l55.521-147.344h277.604l57.656 147.344zM323.016 585.673l102.5-271.198 102.5 273.334h-205z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-reset"],"defaultCode":59669,"grid":4},"properties":{"id":22,"order":105,"ligatures":"","prevSize":32,"code":59669,"name":"font-size-reset"},"setIdx":1,"setId":0,"iconIdx":21},{"icon":{"paths":["M768.248 725.54h-512.5v-85.416h512.5v85.416zM768.248 554.707h-512.5v-85.416h512.5v85.416zM768.248 383.873h-512.5v-85.416h512.5v85.416zM127.622 939.083l64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063 64.063-64.063 64.063 64.063v-854.167l-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063-64.063 64.063-64.063-64.063v854.167z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_fragment"],"defaultCode":59670,"grid":4},"properties":{"id":23,"order":106,"ligatures":"","prevSize":32,"code":59670,"name":"fragment"},"setIdx":1,"setId":0,"iconIdx":22},{"icon":{"paths":["M576.064 56.089c0 0 32.031 113.178 32.031 205 0 87.553-57.656 160.156-145.209 160.156s-155.885-70.469-155.885-160.156l2.135-14.948c-85.416 102.5-138.803 234.896-138.803 380.104 0 187.917 153.75 341.667 341.667 341.667s341.667-153.75 341.667-341.667c0-230.625-111.041-435.625-277.604-570.157zM499.189 839.788c-76.875 0-136.666-59.791-136.666-134.531 0-68.334 44.844-117.448 119.584-132.396s153.75-51.25 196.459-111.041c17.084 55.521 25.625 113.178 25.625 172.969 0 113.178-91.823 205-205 205z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_heatmap-alt"],"defaultCode":59671,"grid":4},"properties":{"id":24,"order":107,"ligatures":"","prevSize":32,"code":59671,"name":"heatmap-alt"},"setIdx":1,"setId":0,"iconIdx":23},{"icon":{"paths":["M127.625 426.583h213.542v-85.416h-213.542v85.416zM405.229 426.583h213.542v-85.416h-213.542v85.416zM682.834 426.583h213.542v-85.416h-213.542v85.416zM127.625 255.749h85.416v-85.416h-85.416v85.416zM298.459 255.749h85.416v-85.416h-85.416v85.416zM469.292 255.749h85.416v-85.416h-85.416v85.416zM640.126 255.749h85.416v-85.416h-85.416v85.416zM810.959 255.749h85.416v-85.416h-85.416v85.416zM127.625 597.416h341.667v-85.416h-341.667v85.416zM554.709 597.416h341.667v-85.416h-341.667v85.416zM896.376 853.666v-170.834h-768.751v170.834h768.751z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_heatmap"],"defaultCode":59672,"grid":4},"properties":{"id":25,"order":108,"ligatures":"","prevSize":32,"code":59672,"name":"heatmap"},"setIdx":1,"setId":0,"iconIdx":24},{"icon":{"paths":["M469.292 768.251h85.416v-85.416h-85.416v85.416zM512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084c0-234.896-192.188-427.084-427.084-427.084zM512 853.667c-187.917 0-341.667-153.75-341.667-341.667s153.75-341.667 341.667-341.667 341.667 153.75 341.667 341.667-153.75 341.667-341.667 341.667zM512 255.75c-93.959 0-170.834 76.875-170.834 170.834h85.416c0-46.979 38.438-85.416 85.416-85.416s85.416 38.438 85.416 85.416c0 85.416-128.125 74.74-128.125 213.542h85.416c0-96.094 128.125-106.771 128.125-213.542 0-93.959-76.875-170.834-170.834-170.834z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_help-alt"],"defaultCode":59673,"grid":4},"properties":{"id":26,"order":109,"ligatures":"","prevSize":32,"code":59673,"name":"help-alt"},"setIdx":1,"setId":0,"iconIdx":25},{"icon":{"paths":["M512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM554.709 810.959h-85.416v-85.416h85.416v85.416zM642.261 479.969l-38.438 38.438c-29.896 32.031-49.115 57.656-49.115 121.719h-85.416v-21.354c0-46.979 19.219-89.688 49.115-121.719l53.385-53.385c14.948-14.948 25.625-36.302 25.625-59.791 0-46.979-38.438-85.416-85.416-85.416s-85.416 38.438-85.416 85.416h-85.416c0-93.959 76.875-170.834 170.834-170.834s170.834 76.875 170.834 170.834c0 38.438-14.948 72.604-40.573 96.094z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_help"],"defaultCode":59674,"grid":4},"properties":{"id":27,"order":110,"ligatures":"","prevSize":32,"code":59674,"name":"help"},"setIdx":1,"setId":0,"iconIdx":26},{"icon":{"paths":["M879.293 205.567h-260.521v-59.791c0-34.166-25.625-59.791-59.791-59.791h-414.272c-34.166 0-59.791 25.625-59.791 59.791v307.5c0 34.166 25.625 59.791 59.791 59.791h207.135v25.625h-100.365c-34.166 0-59.791 25.625-59.791 59.791v279.74c0 34.166 25.625 59.791 59.791 59.791h401.459c34.166 0 59.791-25.625 59.791-59.791v-113.178h166.563c34.166 0 59.791-25.625 59.791-59.791v-439.897c0-32.031-25.625-59.791-59.791-59.791zM178.876 419.109v-239.167h345.938v25.625h-113.178c-34.166 0-59.791 25.625-59.791 59.791v153.75h-172.969zM524.814 299.526v119.584h-81.146v-119.584h81.146zM618.773 846.193h-333.125v-213.542h66.198v72.604c0 34.166 25.625 59.791 59.791 59.791h207.135v81.146zM618.773 673.224h-172.969v-40.573h172.969v40.573zM845.127 673.224h-132.396v-72.604c0-34.166-25.625-59.791-59.791-59.791h-207.135v-27.76h113.178c34.166 0 59.791-25.625 59.791-59.791v-153.75h226.354v373.698z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_hotspot"],"defaultCode":59675,"grid":4},"properties":{"id":28,"order":111,"ligatures":"","prevSize":32,"code":59675,"name":"hotspot"},"setIdx":1,"setId":0,"iconIdx":27},{"icon":{"paths":["M512 148.978c-200.729 0-363.022 162.291-363.022 363.022s162.291 363.022 363.022 363.022 363.022-162.291 363.022-363.022-162.291-363.022-363.022-363.022zM548.303 691.375h-72.604v-215.678h72.604v215.678zM548.303 403.093h-72.604v-72.604h72.604v72.604z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info-alt-r"],"defaultCode":59677,"grid":4},"properties":{"id":30,"order":113,"ligatures":"","prevSize":32,"code":59677,"name":"info-alt-r"},"setIdx":1,"setId":0,"iconIdx":29},{"icon":{"paths":["M802.417 148.979h-580.834c-40.573 0-72.604 32.031-72.604 72.604v580.834c0 40.573 32.031 72.604 72.604 72.604h580.834c40.573 0 72.604-32.031 72.604-72.604v-580.834c0-40.573-32.031-72.604-72.604-72.604zM548.303 693.511h-72.604v-217.813h72.604v217.813zM548.303 403.093h-72.604v-72.604h72.604v72.604z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info-alt-sq"],"defaultCode":59678,"grid":4},"properties":{"id":31,"order":114,"ligatures":"","prevSize":32,"code":59678,"name":"info-alt-sq"},"setIdx":1,"setId":0,"iconIdx":30},{"icon":{"paths":["M469.292 725.542h85.416v-256.25h-85.416v256.25zM512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM512 853.667c-187.917 0-341.667-153.75-341.667-341.667s153.75-341.667 341.667-341.667 341.667 153.75 341.667 341.667c0 187.917-153.75 341.667-341.667 341.667zM469.292 383.875h85.416v-85.416h-85.416v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info-alt"],"defaultCode":59679,"grid":4},"properties":{"id":32,"order":115,"ligatures":"","prevSize":32,"code":59679,"name":"info-alt"},"setIdx":1,"setId":0,"iconIdx":31},{"icon":{"paths":["M512 84.916c-234.896 0-427.084 192.188-427.084 427.084s192.188 427.084 427.084 427.084 427.084-192.188 427.084-427.084-192.188-427.084-427.084-427.084zM554.709 725.542h-85.416v-256.25h85.416v256.25zM554.709 383.875h-85.416v-85.416h85.416v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_info"],"defaultCode":59680,"grid":4},"properties":{"id":33,"order":116,"ligatures":"","prevSize":32,"code":59680,"name":"info"},"setIdx":1,"setId":0,"iconIdx":32},{"icon":{"paths":["M166.063 512c0-72.604 59.791-132.396 132.396-132.396h170.834v-81.146h-170.834c-117.448 0-213.542 96.094-213.542 213.542s96.094 213.542 213.542 213.542h170.834v-81.146h-170.834c-72.604 0-132.396-59.791-132.396-132.396zM341.167 554.708h341.667v-85.416h-341.667v85.416zM725.542 298.458h-170.834v81.146h170.834c72.604 0 132.396 59.791 132.396 132.396s-59.791 132.396-132.396 132.396h-170.834v81.146h170.834c117.448 0 213.542-96.094 213.542-213.542s-96.094-213.542-213.542-213.542z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_link"],"defaultCode":59681,"grid":4},"properties":{"id":34,"order":117,"ligatures":"","prevSize":32,"code":59681,"name":"link"},"setIdx":1,"setId":0,"iconIdx":33},{"icon":{"paths":["M148.979 597.417h170.834v-170.834h-170.834v170.834zM148.979 810.959h170.834v-170.834h-170.834v170.834zM148.979 383.875h170.834v-170.834h-170.834v170.834zM362.52 597.417h512.5v-170.834h-512.5v170.834zM362.52 810.959h512.5v-170.834h-512.5v170.834zM362.52 213.042v170.834h512.5v-170.834h-512.5z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_list-alt"],"defaultCode":59682,"grid":4},"properties":{"id":35,"order":118,"ligatures":"","prevSize":32,"code":59682,"name":"list-alt"},"setIdx":1,"setId":0,"iconIdx":34},{"icon":{"paths":["M127.625 554.709h85.416v-85.416h-85.416v85.416zM127.625 725.542h85.416v-85.416h-85.416v85.416zM127.625 383.875h85.416v-85.416h-85.416v85.416zM298.459 554.709h597.917v-85.416h-597.917v85.416zM298.459 725.542h597.917v-85.416h-597.917v85.416zM298.459 298.459v85.416h597.917v-85.416h-597.917z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_list"],"defaultCode":59683,"grid":4},"properties":{"id":36,"order":119,"ligatures":"","prevSize":32,"code":59683,"name":"list"},"setIdx":1,"setId":0,"iconIdx":35},{"icon":{"paths":["M853.667 170.334h-683.334c-46.979 0-85.416 38.438-85.416 85.416v512.5c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-512.5c0-46.979-38.438-85.416-85.416-85.416zM853.667 341.167l-341.667 213.542-341.667-213.542v-85.416l341.667 213.542 341.667-213.542v85.416z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_mail"],"defaultCode":59684,"grid":4},"properties":{"id":37,"order":121,"ligatures":"","prevSize":32,"code":59684,"name":"mail"},"setIdx":1,"setId":0,"iconIdx":36},{"icon":{"paths":["M127.625 768.25h768.751v-85.416h-768.751v85.416zM127.625 554.708h768.751v-85.416h-768.751v85.416zM127.625 255.749v85.416h768.751v-85.416h-768.751z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_menu"],"defaultCode":59685,"grid":4},"properties":{"id":38,"order":122,"ligatures":"","prevSize":32,"code":59685,"name":"menu"},"setIdx":1,"setId":0,"iconIdx":37},{"icon":{"paths":["M413.772 586.74v245.573h98.229v-542.397h98.229v542.397h98.229v-542.397h98.229v-98.229h-392.917c-108.906 0-196.459 87.553-196.459 196.459s87.553 198.594 196.459 198.594z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_paragraph"],"defaultCode":59689,"grid":4},"properties":{"id":42,"order":126,"ligatures":"","prevSize":32,"code":59689,"name":"paragraph"},"setIdx":1,"setId":0,"iconIdx":41},{"icon":{"paths":["M672.156 608.093h-34.166l-12.813-10.677c42.709-49.115 66.198-111.041 66.198-181.51 0-153.75-123.854-277.604-277.604-277.604s-275.469 123.854-275.469 277.604 123.854 277.604 277.604 277.604c68.334 0 132.396-25.625 181.51-66.198l10.677 10.677v34.166l213.542 213.542 64.063-64.063-213.542-213.542zM415.906 608.093c-106.771 0-192.188-85.416-192.188-192.188s85.416-192.188 192.188-192.188 192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_search"],"defaultCode":59693,"grid":4},"properties":{"id":46,"order":130,"ligatures":"","prevSize":32,"code":59693,"name":"search"},"setIdx":1,"setId":0,"iconIdx":45},{"icon":{"paths":["M138.302 822.703l64.063 64.063 213.542-213.542v-34.166l10.677-12.813c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604c-153.75 0-277.604 123.854-277.604 277.604 0 68.334 25.625 132.396 66.198 181.51l-10.677 12.813h-34.166l-213.542 213.542zM415.906 416.973c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188zM501.322 395.619h85.416v-85.416h42.709v85.416h85.416v42.709h-85.416v85.416h-42.709v-85.416h-85.416v-42.709z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-fit"],"defaultCode":59696,"grid":4},"properties":{"id":49,"order":133,"ligatures":"","prevSize":32,"code":59696,"name":"zoom-fit"},"setIdx":1,"setId":0,"iconIdx":48},{"icon":{"paths":["M138.302 821.635l64.063 64.063 213.542-213.542v-34.166l10.677-10.677c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604-277.604 123.854-277.604 277.604c0 68.334 25.625 132.396 66.198 181.51l-10.677 10.677h-34.166l-213.542 213.542zM415.907 415.905c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188zM710.595 281.374h-59.791v29.896h59.791v59.791h29.896v-59.791c0-17.084-12.813-29.896-29.896-29.896zM710.595 520.541h-59.791v29.896h59.791c17.084 0 29.896-12.813 29.896-29.896v-59.791h-29.896v59.791zM501.323 460.749h-29.896v59.791c0 17.084 12.813 29.896 29.896 29.896h59.791v-29.896h-59.791v-59.791zM469.292 311.27v59.791h32.031v-59.791h59.791v-29.896h-59.791c-17.084 0-32.031 12.813-32.031 29.896z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-in"],"defaultCode":59697,"grid":4},"properties":{"id":50,"order":134,"ligatures":"","prevSize":32,"code":59697,"name":"zoom-in"},"setIdx":1,"setId":0,"iconIdx":49},{"icon":{"paths":["M138.302 822.703l64.063 64.063 213.542-213.542v-34.166l10.677-12.813c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604c-153.75 0-277.604 123.854-277.604 277.604 0 68.334 25.625 132.396 66.198 181.51l-10.677 12.813h-34.166l-213.542 213.542zM415.906 416.973c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188zM714.865 438.328h-213.542v-42.709h213.542v42.709z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-one"],"defaultCode":59698,"grid":4},"properties":{"id":51,"order":135,"ligatures":"","prevSize":32,"code":59698,"name":"zoom-one"},"setIdx":1,"setId":0,"iconIdx":50},{"icon":{"paths":["M646.532 544.030v-256.25h-42.709l-85.416 42.709v42.709h64.063v170.834h64.063zM138.302 821.635l64.063 64.063 213.542-213.542v-34.166l10.677-10.677c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604-277.604 123.854-277.604 277.604c0 68.334 25.625 132.396 66.198 181.51l-10.677 10.677h-34.166l-213.542 213.542zM415.907 415.905c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom-out"],"defaultCode":59699,"grid":4},"properties":{"id":52,"order":136,"ligatures":"","prevSize":32,"code":59699,"name":"zoom-out"},"setIdx":1,"setId":0,"iconIdx":51},{"icon":{"paths":["M138.302 821.635l64.063 64.063 213.542-213.542v-34.166l10.677-10.677c49.115 42.709 111.041 66.198 181.51 66.198 153.75 0 277.604-123.854 277.604-277.604s-123.854-277.604-277.604-277.604-277.604 123.854-277.604 277.604c0 68.334 25.625 132.396 66.198 181.51l-10.677 10.677h-34.166l-213.542 213.542zM415.906 415.905c0-106.771 85.416-192.188 192.188-192.188s192.188 85.416 192.188 192.188-85.416 192.188-192.188 192.188-192.188-85.416-192.188-192.188z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_zoom"],"defaultCode":59700,"grid":4},"properties":{"id":53,"order":137,"ligatures":"","prevSize":32,"code":59700,"name":"zoom"},"setIdx":1,"setId":0,"iconIdx":52},{"icon":{"paths":["M725.54 896.376h85.416v-256.25h-85.416v256.25zM213.040 896.376h85.416v-427.084h-85.416v427.084zM896.374 469.292h-85.416v-341.667h-85.416v341.667h-85.416v85.416h256.25v-85.416zM383.873 725.542h85.416v170.834h85.416v-170.834h85.416v-85.416h-256.25v85.416zM554.707 127.625h-85.416v427.084h85.416v-427.084zM383.873 383.875v-85.416h-85.416v-170.834h-85.416v170.834h-85.416v85.416h256.25z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_align"],"defaultCode":59701,"grid":4},"properties":{"id":54,"order":138,"ligatures":"","prevSize":32,"code":59701,"name":"align"},"setIdx":1,"setId":0,"iconIdx":53},{"icon":{"paths":["M768.25 147.911h-512.5c-46.979 0-85.416 32.031-85.416 72.604v582.969c0 40.573 38.438 72.604 85.416 72.604h512.5c46.979 0 85.416-32.031 85.416-72.604v-582.969c0-40.573-38.438-72.604-85.416-72.604zM255.749 220.516h213.542v292.553l-106.771-55.521-106.771 55.521v-292.553z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookmark-alt2"],"defaultCode":59702,"grid":4},"properties":{"id":55,"order":139,"ligatures":"","prevSize":32,"code":59702,"name":"bookmark-alt2"},"setIdx":1,"setId":0,"iconIdx":54},{"icon":{"paths":["M896.375 170.332c-46.979-14.948-100.365-21.354-149.479-21.354-83.281 0-172.969 17.084-234.896 64.063-61.927-46.979-151.615-64.063-234.896-64.063s-172.969 17.084-234.896 64.063v625.678c0 10.677 10.677 21.354 21.354 21.354 4.271 0 6.406-2.135 10.677-2.135 57.656-27.76 140.938-46.979 202.865-46.979 83.281 0 172.969 17.084 234.896 64.063 57.656-36.302 162.291-64.063 234.896-64.063 70.469 0 143.073 12.813 202.865 44.844 4.271 2.135 6.406 2.135 10.677 2.135 10.677 0 21.354-10.677 21.354-21.354v-623.542c-25.625-19.219-53.385-32.031-85.416-42.709zM896.375 746.895c-46.979-14.948-98.229-21.354-149.479-21.354-72.604 0-177.24 27.76-234.896 64.063v-491.147c57.656-36.302 162.291-64.063 234.896-64.063 51.25 0 102.5 6.406 149.479 21.354v491.147z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_bookreader-alt"],"defaultCode":59703,"grid":4},"properties":{"id":56,"order":140,"ligatures":"","prevSize":32,"code":59703,"name":"bookreader-alt"},"setIdx":1,"setId":0,"iconIdx":55},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM875.022 345.439h-292.553v-59.791h292.553z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-minus-alt"],"defaultCode":59704,"grid":4},"properties":{"id":57,"order":141,"ligatures":"","prevSize":32,"code":59704,"name":"font-size-minus-alt"},"setIdx":1,"setId":0,"iconIdx":56},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM721.272 443.668c-55.521 0-104.635-34.166-123.854-81.146h46.979c17.084 25.625 44.844 40.573 79.010 40.573 53.385 0 96.094-42.709 96.094-96.094s-42.709-96.094-96.094-96.094c-36.302 0-68.334 21.354-83.281 51.25l42.709 42.709h-108.906v-106.771l36.302 36.302c21.354-38.438 64.063-64.063 111.041-64.063 74.74 0 136.666 61.927 136.666 136.666s-61.927 136.666-136.666 136.666z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size-reset-alt"],"defaultCode":59705,"grid":4},"properties":{"id":58,"order":142,"ligatures":"","prevSize":32,"code":59705,"name":"font-size-reset-alt"},"setIdx":1,"setId":0,"iconIdx":57},{"icon":{"paths":["M356.115 576.064h177.24l-87.553-234.896-89.688 234.896zM853.667 84.917h-683.334c-46.979 0-85.416 38.438-85.416 85.416v683.334c0 46.979 38.438 85.416 85.416 85.416h683.334c46.979 0 85.416-38.438 85.416-85.416v-683.334c0-46.979-38.438-85.416-85.416-85.416zM614.501 789.606l-49.115-128.125h-241.303l-46.979 128.125h-89.688l217.813-555.209h79.010l219.948 555.209h-89.688zM740.491 270.699c-21.354 0-40.573 17.084-40.573 40.573s17.084 40.573 40.573 40.573 40.573-17.084 40.573-40.573-19.219-40.573-40.573-40.573zM845.126 311.273c0 4.271 0 8.541 0 12.813l29.896 23.49c2.135 2.135 4.271 6.406 2.135 8.541l-29.896 49.115c-2.135 2.135-6.406 4.271-8.541 2.135l-34.166-14.948c-6.406 6.406-14.948 10.677-23.49 12.813l-4.271 36.302c0 4.271-4.271 6.406-6.406 6.406h-55.521c-4.271 0-6.406-2.135-6.406-6.406l-4.271-36.302c-8.541-4.271-17.084-8.541-23.49-12.813l-34.166 14.948c-4.271 2.135-6.406 0-8.541-2.135l-27.76-49.115c-2.135-2.135 0-6.406 2.135-8.541l29.896-23.49c0-4.271 0-8.541 0-12.813s0-8.541 0-12.813l-29.896-23.49c-2.135-2.135-4.271-6.406-2.135-8.541l27.76-49.115c2.135-2.135 6.406-4.271 8.541-2.135l34.166 14.948c6.406-6.406 14.948-10.677 23.49-12.813v-40.573c0-4.271 4.271-6.406 6.406-6.406h57.656c4.271 0 6.406 2.135 6.406 6.406l4.271 36.302c8.541 4.271 17.084 8.541 23.49 12.813l34.166-14.948c2.135-2.135 6.406 0 8.541 2.135l27.76 49.115c2.135 2.135 0 6.406-2.135 8.541l-29.896 23.49c4.271 6.406 4.271 12.813 4.271 17.084z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_font-size"],"defaultCode":59706,"grid":4},"properties":{"id":59,"order":143,"ligatures":"","prevSize":32,"code":59706,"name":"font-size"},"setIdx":1,"setId":0,"iconIdx":58},{"icon":{"paths":["M148.979 490.645h213.542v-256.25h-213.542v256.25zM148.979 789.604h213.542v-256.25h-213.542v256.25zM405.229 789.604h213.542v-256.25h-213.542v256.25zM661.479 789.604h213.542v-256.25h-213.542v256.25zM405.229 490.645h213.542v-256.25h-213.542v256.25zM661.479 234.395v256.25h213.542v-256.25h-213.542z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_thumbnails"],"defaultCode":59707,"grid":4},"properties":{"id":60,"order":144,"ligatures":"","prevSize":32,"code":59707,"name":"thumbnails"},"setIdx":1,"setId":0,"iconIdx":59},{"icon":{"paths":["M103.5 0C465.5 0 827.5 0 1189.5 0 1181.7 0.7 1173.9 1.2 1168.6 1.7 1229-1.6 1286.9 48.7 1290 109.8 1290.5 136.6 1290.8 163.4 1290.7 190.2 1290.5 336.4 1290.2 482.6 1290 628.8 1290 712.3 1290 795.7 1290.2 879.1 1290.2 895.5 1287 910.9 1280.3 925.7 1257.2 983.9 1194.3 1002.8 1136.4 1000 1086.7 1000.3 1037 1000.3 987.2 1000.2 702.2 999.8 417.1 999.5 132.1 999.3 113.8 999.3 96 996.5 78.9 989.8-0.7 960.3-1 893.3 0.2 819.7 0.2 587.4 0.7 355.3 0.5 123-0.5 60.4 48.9 1.9 113.5 2.6 113.5 2.6 113.5 2.2 113.5 2.1 110 1.4 106.7 0.7 103.5 0ZM643.7 116.1C649.4 368.2 646.1 620.9 644.2 873.2 644.4 877.5 647 880 651.6 880 660.3 880.1 668.9 881.2 677.5 881.2 844.9 880.7 1012.1 881.3 1179.4 883.1 1177.7 633.5 1183.1 383.9 1177 134.5 1176 117.3 1175.3 116.2 1159.4 116.2 987.4 116.2 815.5 116.2 643.7 116.2ZM123.8 880.8C275.1 881.7 424.9 882.4 576 883.2 524.7 818 476.5 750.1 420.4 688.9 380.7 733 350.1 779.8 312.6 825.4 291 796.5 271.8 766.3 249.7 737.8 246.6 733.9 243.2 729.7 235.9 729.5 196.7 778.1 159.4 829 124 880.7ZM201.4 338.3C249.7 161.7 513.8 175.3 510.4 356.8 508.8 440.8 462 505.5 379.4 513.8 332.6 518.5 285.1 508.6 251.3 477.7 237.8 465.8 210.2 491.9 222.5 506.7 376.7 662.2 644.2 473.9 543 277.7 454.2 105.4 187.2 142.5 161.1 333.3 159.2 347.7 140.2 336.1 126.6 340.4 124 345.3 125.9 348.9 128.5 352 143.7 370.8 159.1 389.5 174.6 407.9 180.7 415.2 186.4 415.2 192.2 407.9 207.8 385.8 229.4 367 239.9 342.1 226.9 336.3 214.3 339.7 201.4 338.3ZM277.2 459.8C292.9 455.4 323 447.3 335.4 438.9 364.4 408.8 396.2 380.3 423.7 349.1 411.2 336.6 399.3 324.7 387.6 313 361 341.6 331.8 368.9 304.1 396.7 287.6 413.5 284.6 438.2 277.4 459.8ZM432 340.1C460.3 316.2 464.6 311.1 434.5 285.7 419 273.4 407.4 296 397.2 304.3 409.3 316.8 420.6 328.3 432 340.1ZM707.6 468.7H1114.9C1117.6 494.8 1115.9 521.1 1116.4 547.3 1116.4 555.8 1115 557 1106.6 557.9 973.6 557.9 840.2 561 707.4 555.4V468.7ZM709.3 703.5C706.7 697.9 705.7 630.9 707.8 621.2 843.7 617.8 980.3 618.7 1116.2 620.2 1117.1 645.4 1116.6 670.6 1116.2 695.9 1115.5 701.7 1113.8 703.1 1107.8 703.1 975 702.8 842 701 709.2 703.5ZM707.8 409.3C705.7 382.7 707.3 355.4 706.9 327.5H1116.1C1116.1 351.5 1116.4 375.1 1116.4 399.1 1116.1 407.9 1114.7 409.3 1105.9 409.3 972.7 409.3 841.1 409.3 707.8 409.3Z"],"isMulticolor":false,"isMulticolor2":false,"tags":["evt_documix"],"defaultCode":59708,"grid":16},"properties":{"id":61,"order":145,"ligatures":"","prevSize":32,"code":59461,"name":"documix"},"setIdx":1,"setId":0,"iconIdx":60}],"height":1024,"metadata":{"name":"evt-icons"},"preferences":{"showGlyphs":true,"showCodes":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"evt-icon-","metadata":{"fontFamily":"evt-icons","description":"Font generated for EVT","majorVersion":1,"minorVersion":0},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"includeMetadata":true,"embed":false,"ie7":true,"noie8":false,"cssVars":false,"cssVarsFormat":"scss","showSelector":true,"showMetrics":false,"showMetadata":false,"showVersion":true},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"name":"icomoon","classSelector":".icon"},"historySize":50,"gridSize":16,"showGrid":true}} \ No newline at end of file diff --git a/src/assets/fonts/evt-icons.eot b/src/assets/fonts/evt-icons.eot index 60a39e2f5..dfdd1dde6 100755 Binary files a/src/assets/fonts/evt-icons.eot and b/src/assets/fonts/evt-icons.eot differ diff --git a/src/assets/fonts/evt-icons.svg b/src/assets/fonts/evt-icons.svg index 040331ad8..1ccbf0e1a 100755 --- a/src/assets/fonts/evt-icons.svg +++ b/src/assets/fonts/evt-icons.svg @@ -87,4 +87,8 @@ + + + + \ No newline at end of file diff --git a/src/assets/fonts/evt-icons.ttf b/src/assets/fonts/evt-icons.ttf index 04361acb1..5be59060b 100755 Binary files a/src/assets/fonts/evt-icons.ttf and b/src/assets/fonts/evt-icons.ttf differ diff --git a/src/assets/fonts/evt-icons.woff b/src/assets/fonts/evt-icons.woff index 7520004c7..e880bb07c 100755 Binary files a/src/assets/fonts/evt-icons.woff and b/src/assets/fonts/evt-icons.woff differ diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 686e2c0f8..9670994aa 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -51,6 +51,9 @@ "omitted": "omitted", "prose": "Prose", "verses": "Verses", + "option_prose": "Prose", + "option_prose_mixed": "Prose with verse numbers", + "option_verses": "Verses", "page": "Page {{value}}", "front": "Front", "mainText": "Main text", @@ -172,5 +175,32 @@ "moreInfoAboutApp": "More info about the apparatus entry", "omit": "omit.", "wit": "Wit:", - "xml": "XML" + "xml": "XML", + "criticalApparatus": "Critical Apparatus", + "sources": "Sources", + "analogues": "Analogues", + "source": "Source", + "analogue": "Analogue", + "notes": "Notes", + "refBibl": "Bibliographic references", + "quotedSources": "Quoted sources", + "quotedText": "Text", + "references": "References", + "analogueIn": "Analogue in", + "corresps": "Correspondences", + "addImage": "Add image", + "removeImage": "Remove image", + "bibliography": "Bibliografia", + "style": "Style", + "sortBy": "Sort by", + "year": "Year", + "order": "Order", + "asc": "Ascendent", + "desc": "Descendent", + "reprintedIn": "Repr. in", + "editedBy": "Edited by", + "corrSeq": "Correction sequence", + "criticalNote": "Critical note", + "showsDeletions": "Show deletions", + "hidesDeletions": "Hide deletions" } \ No newline at end of file diff --git a/src/assets/i18n/en.json.bak b/src/assets/i18n/en.json.bak new file mode 100644 index 000000000..686e2c0f8 --- /dev/null +++ b/src/assets/i18n/en.json.bak @@ -0,0 +1,176 @@ +{ + "defaultTitle": "EVT Viewer", + "changeLanguage": "Change language", + "languageEn": "English", + "languageIt": "Italian", + "changeTheme": "Change theme", + "currentTheme": "Current theme", + "themeNeutral": "Neutral", + "themeModern": "Modern", + "themeClassic": "Classic", + "shortcuts": "Shortcuts", + "aboutEVT": "About EVT", + "projectInfo": "Project Info", + "openLists": "Open Lists", + "bookmark": "Bookmark", + "downloadXML": "Download XML", + "pinboard": "Pinboard", + "pinboardLoading": "Pinboard Loading...", + "pinboardEmpty": "Your pinboard is empty.", + "filteredPinboardEmpty": "No pin found for selected types.", + "filterPins": "Filter pins", + "more": "more", + "lists": "Lists", + "noEntities": "No entities in this list", + "search": "Search", + "noMatches": "No matches for input given", + "entityNotFound": "Entity not found", + "noOccurrences": "No occurrences", + "relations": "Relations", + "selectItems": "Select items", + "persons": "Persons", + "places": "Places", + "organizations": "Organizations", + "events": "Events", + "roles": "Roles", + "measures": "Measures", + "selectAll": "Select all", + "clearAll": "Clear all", + "bishops": "Bishops", + "diplomatic": "Diplomatic", + "interpretative": "Interpretative", + "critical": "Critical", + "line": "line", + "lines": "lines", + "char": "character", + "chars": "characters", + "word": "word", + "words": "words", + "missingS": "missing", + "missingP": "missing", + "omitted": "omitted", + "prose": "Prose", + "verses": "Verses", + "page": "Page {{value}}", + "front": "Front", + "mainText": "Main text", + "addVersion": "Add version", + "addWitness": "Add witness", + "collection": "Collection", + "place": "Place", + "msIdentifier": "Manuscript identifier", + "repository": "Repository", + "institution": "Institution", + "msName": "Name", + "idno": "Shelfmark", + "altIdentifier": "Other", + "msContents": "Manuscript contents", + "textLang": "Language", + "author": "Author", + "docDate": "Date", + "title": "Title", + "summary": "Summary", + "items": "Contents", + "incipit": "Incipit", + "explicit": "Explicit", + "colophon": "Colophon", + "note": "Note", + "docImprint": "Document imprint", + "phyDesc": "Physical description", + "supportDesc": "Support", + "extent": "Extent", + "layoutDesc": "Layout", + "handDesc": "Writing", + "decoDesc": "Decoration", + "collation": "Collation", + "description": "Description", + "bindingDesc": "Binding", + "condition": "Condition", + "foliation": "Foliation", + "history": "Manuscript history", + "origin": "Origin", + "provenance": "Provenance", + "acquisition": "Acquisition", + "additional": "Additional information", + "listBibl": "Citation list", + "surrogates": "Surrogates", + "adminInfo": "Administrative information", + "recordHist": "Recorded history", + "custodialHist": "Custodial history", + "availability": "Availability", + "msFrag": "Manuscript fragment", + "altIdentifierLabel": "Alternative identifier", + "msPart": "Manuscript part", + "origPlace": "Origin place", + "origDate": "Origin date", + "selectMsDesc": "Select MsDesc", + "thumbnails": "Thumbnails", + "firstPage": "First page", + "previousPage": "Previous page", + "nextPage": "Next page", + "lastPage": "Last page", + "toggleToolbar": "Toggle navigation toolbar", + "viscoll": "Viscoll", + "editors": "Editors", + "sponsors": "Sponsors", + "funders": "Funders", + "principals": "Principal researchers", + "responsibles": "Responsibles", + "publicationStatement": "Publication statement", + "publisher": "Publisher", + "distributor": "Distributor", + "authority": "Authority", + "publicationPlace": "Publication place", + "address": "Address", + "date": "Date", + "licence": "Licence", + "editionStatement": "Edition statement", + "edition": "Edition", + "seriesStatement": "Series statement", + "notesStatement": "Notes statement", + "sourceDesc": "Source description", + "fileDesc": "File Description", + "encodingDesc": "Encoding", + "profileDesc": "Profile", + "revisionDesc": "Revisions", + "projectDesc": "Project description", + "samplingDecl": "Sampling declaration", + "editorialDecl": "Editorial practices declaration", + "tagsDecl": "Tagging declaration", + "styleDefDecl": "Style definition language declaration", + "refsDecl": "References declaration", + "classDecl": "Classification declarations", + "geoDecl": "Geographic coordinates declaration", + "unitDecl": "Unit declarations", + "schemaSpec": "Schema specification", + "schemaRef": "Schema reference", + "correction": "Correction", + "hyphenation": "Hyphenation", + "interpretation": "Interpretation", + "normalization": "Normalization", + "punctuation": "Punctuation", + "quotation": "Quotation", + "segmentation": "Segmentation", + "stdVals": "Standard values", + "scope": "Scope", + "selector": "Selector", + "scheme": "Scheme", + "rules": "Rules", + "renditionFirstLineDesc": "styling applies to the first line of the target element", + "renditionFirstLetterDesc": "styling applies to the first letter of the target element", + "renditionBeforeDesc": "styling should be applied immediately before the content of the target element", + "renditionAfterDesc": "styling should be applied immediately after the content of the target element", + "occurrence": "occurrence", + "occurrences": "occurrences", + "withId": "with identifier", + "criticalNotes": "Critical Notes", + "ortographicVariants": "Orthographic Variants", + "info": "Info", + "metadataForLemma": "Metadata for lemma", + "metadataFor": "Metadata for", + "noDataAvailable": "No data available", + "moreInfoAboutApp": "More info about the apparatus entry", + "omit": "omit.", + "wit": "Wit:", + "xml": "XML" +} \ No newline at end of file diff --git a/src/assets/i18n/it.json b/src/assets/i18n/it.json index c599b88e2..782d94914 100644 --- a/src/assets/i18n/it.json +++ b/src/assets/i18n/it.json @@ -1,175 +1,205 @@ { - "defaultTitle": "Visualizzatore EVT", - "changeLanguage": "Cambia lingua", - "languageEn": "Inglese", - "languageIt": "Italiano", - "changeTheme": "Cambia tema", - "themeNeutral": "Neutro", - "themeModern": "Moderno", - "themeClassic": "Classico", - "shortcuts": "Scorciatoie da tastiera", - "aboutEVT": "Info su EVT", - "projectInfo": "Informazioni progetto", - "openLists": "Apri liste", - "bookmark": "Segnalibro", - "downloadXML": "Scarica XML", - "pinboard": "Bacheca appunti", - "pinboardLoading": "Caricamento appunti...", - "pinboardEmpty": "Nessun appunto trovato.", - "filteredPinboardEmpty": "Nessun appunto trovato per i filtri impostati.", - "filterPins": "Filtra appunti", - "more": "in più", - "lists": "Liste", - "noEntities": "Nessuna entità in questa lista", - "search": "Cerca", - "noMatches": "Nessun risultato", - "entityNotFound": "Entità non trovata", - "noOccurrences": "Nessuna occorrenza", - "relations": "Relazioni", - "selectItems": "Seleziona elementi", - "persons": "Persone", - "places": "Luoghi", - "organizations": "Organizzazioni", - "events": "Eventi", - "roles": "Ruoli", - "measures": "Misure", - "selectAll": "Seleziona tutto", - "clearAll": "Pulisci selezione", - "bishops": "Vescovi", - "diplomatic": "Diplomatica", - "interpretative": "Interpretativa", - "critical": "Critica", - "line": "linea", - "lines": "linee", - "char": "carattere", - "chars": "caratteri", - "word": "parola", - "words": "parole", - "missingS": "mancante", - "missingP": "mancanti", - "omitted": "omissione", - "prose": "Prosa", - "verses": "Versi", - "page": "Pagina {{value}}", - "front": "Front", - "mainText": "Testo principale", - "addVersion": "Aggiungi versione", - "addWitness": "Aggiungi testimone", - "collection": "Raccolta", - "place": "Luogo", - "msIdentifier": "Identificatore del manoscritto", - "repository": "Archivio", - "institution": "Istituzione", - "msName": "Nome", - "idno": "Identificatore", - "altIdentifier": "Identificatore alternativo", - "msContents": "Contenuto del manoscritto", - "textLang": "Lingua", - "author": "Autore", - "docDate": "Data", - "title": "Titolo", - "summary": "Riassunto", - "items": "Testi", - "incipit": "Incipit", - "explicit": "Explicit", - "colophon": "Colophon", - "note": "Note", - "docImprint": "Sigla editoriale", - "phyDesc": "Descrizione fisica", - "supportDesc": "Supporto", - "extent": "Grandezza", - "layoutDesc": "Layout", - "handDesc": "Scrittura", - "decoDesc": "Decorazioni", - "collation": "Collazione", - "description": "Descrizione", - "bindingDesc": "Rilegatura", - "condition": "Condizione fisica", - "foliation": "Foliazione", - "history": "Storia del manoscritto", - "origin": "Origine", - "provenance": "Provenienza", - "acquisition": "Acquisizione", - "additional": "Ulteriori informazioni", - "listBibl": "Lista di citazioni", - "surrogates": "Surrogati", - "adminInfo": "Informazioni amministrative", - "recordHist": "Storia registrata", - "custodialHist": "Storia della conservazione", - "availability": "Disponibilità", - "msFrag": "Frammento del manoscritto", - "altIdentifierLabel": "Identificatore alternativo", - "msPart": "Parte del manoscritto", - "origPlace": "Luogo di origine", - "origDate": "Data di origine", - "selectMsDesc": "Seleziona MsDesc", - "thumbnails": "Miniature", - "firstPage": "Prima pagina", - "previousPage": "Pagina precedente", - "nextPage": "Pagina successiva", - "lastPage": "Ultima pagina", - "toggleToolbar": "Apri/chiudi barra di navigazione", - "viscoll": "Viscoll", - "editors": "Editori", - "sponsors": "Sponsor", - "funders": "Finanziatori", - "principals": "Ricercatori principali", - "responsibles": "Responsabili", - "publicationStatement": "Informazioni sulla pubblicazione", - "publisher": "Editore", - "distributor": "Distributore", - "authority": "Autorità", - "publicationPlace": "Luogo di pubblicazione", - "address": "Indirizzo", - "date": "Data", - "licence": "Licenza", - "editionStatement": "Informazioni sull'edizione", - "edition": "Edizione", - "seriesStatement": "Informazioni sulla serie", - "notesStatement": "Note", - "sourceDesc": "Descrizione della fonte", - "fileDesc": "Descrizione del file", - "encodingDesc": "Codifica", - "profileDesc": "Profilo del testo", - "revisionDesc": "Revisioni", - "projectDesc": "Descrizione del progetto", - "samplingDecl": "Dichiarazione di campionatura", - "editorialDecl": "Dichiarazione sulle pratiche editoriali", - "tagsDecl": "Dichiarazione sulla marcatura", - "styleDefDecl": "Dichiarazione sul linguaggio stile", - "refsDecl": "Dichiarazione sui riferimenti", - "classDecl": "Dichiarazioni sulla classificazione", - "geoDecl": "Dichiarazione sulle coordinate geografiche", - "unitDecl": "Dichiarazione sulle unità di misurazione", - "schemaSpec": "Specifica dello schema", - "schemaRef": "Riferimento allo schema", - "correction": "Principi di correzione", - "hyphenation": "Principi di sillabazione", - "interpretation": "Principi di interpretazione", - "normalization": "Principi di normalizzazione", - "punctuation": "Principi di punteggiatura", - "quotation": "Gestione delle virgolette", - "segmentation": "Principi di segmentazione", - "stdVals": "Valori standard", - "scope": "Ambito", - "selector": "Selettore", - "scheme": "Schema", - "rules": "Regole", - "renditionFirstLineDesc": "lo stile si applica alla prima riga dell'elemento di destinazione", - "renditionFirstLetterDesc": "lo stile si applica alla prima lettera dell'elemento di destinazione", - "renditionBeforeDesc": "lo stile dovrebbe essere applicato immediatamente prima del contenuto dell'elemento di destinazione", - "renditionAfterDesc": "lo stile dovrebbe essere applicato immediatamente dopo il contenuto dell'elemento di destinazione", - "occurrence": "occorrenza", - "occurrences": "occorrenze", - "withId": "con l'identificativo", - "criticalNotes": "Note critiche", - "ortographicVariants": "Varianti ortografiche", - "info": "Info", - "metadataForLemma": "Metadata per il lemma", - "metadataFor": "Metadata per", - "noDataAvailable": "Nessuna informazione disponibile", - "moreInfoAboutApp": "Maggiori informazioni per l'entrata d'apparato", - "omit": "omit.", - "wit": "Wit:", - "xml": "XML" + "defaultTitle": "Visualizzatore EVT", + "changeLanguage": "Cambia lingua", + "languageEn": "Inglese", + "languageIt": "Italiano", + "changeTheme": "Cambia tema", + "themeNeutral": "Neutro", + "themeModern": "Moderno", + "themeClassic": "Classico", + "shortcuts": "Scorciatoie da tastiera", + "aboutEVT": "Info su EVT", + "projectInfo": "Informazioni progetto", + "openLists": "Apri liste", + "bookmark": "Segnalibro", + "downloadXML": "Scarica XML", + "pinboard": "Bacheca appunti", + "pinboardLoading": "Caricamento appunti...", + "pinboardEmpty": "Nessun appunto trovato.", + "filteredPinboardEmpty": "Nessun appunto trovato per i filtri impostati.", + "filterPins": "Filtra appunti", + "more": "in più", + "lists": "Liste", + "noEntities": "Nessuna entità in questa lista", + "search": "Cerca", + "noMatches": "Nessun risultato", + "entityNotFound": "Entità non trovata", + "noOccurrences": "Nessuna occorrenza", + "relations": "Relazioni", + "selectItems": "Seleziona elementi", + "persons": "Persone", + "places": "Luoghi", + "organizations": "Organizzazioni", + "events": "Eventi", + "roles": "Ruoli", + "measures": "Misure", + "selectAll": "Seleziona tutto", + "clearAll": "Pulisci selezione", + "bishops": "Vescovi", + "diplomatic": "Diplomatica", + "interpretative": "Interpretativa", + "critical": "Critica", + "line": "linea", + "lines": "linee", + "char": "carattere", + "chars": "caratteri", + "word": "parola", + "words": "parole", + "missingS": "mancante", + "missingP": "mancanti", + "omitted": "omissione", + "prose": "Prosa", + "verses": "Versi", + "option_prose": "Prose", + "option_prose_mixed": "Prose with verse numbers", + "option_verses": "Verses", + "page": "Pagina {{value}}", + "front": "Front", + "mainText": "Testo principale", + "addVersion": "Aggiungi versione", + "addWitness": "Aggiungi testimone", + "collection": "Raccolta", + "place": "Luogo", + "msIdentifier": "Identificatore del manoscritto", + "repository": "Archivio", + "institution": "Istituzione", + "msName": "Nome", + "idno": "Identificatore", + "altIdentifier": "Identificatore alternativo", + "msContents": "Contenuto del manoscritto", + "textLang": "Lingua", + "author": "Autore", + "docDate": "Data", + "title": "Titolo", + "summary": "Riassunto", + "items": "Testi", + "incipit": "Incipit", + "explicit": "Explicit", + "colophon": "Colophon", + "note": "Note", + "docImprint": "Sigla editoriale", + "phyDesc": "Descrizione fisica", + "supportDesc": "Supporto", + "extent": "Grandezza", + "layoutDesc": "Layout", + "handDesc": "Scrittura", + "decoDesc": "Decorazioni", + "collation": "Collazione", + "description": "Descrizione", + "bindingDesc": "Rilegatura", + "condition": "Condizione fisica", + "foliation": "Foliazione", + "history": "Storia del manoscritto", + "origin": "Origine", + "provenance": "Provenienza", + "acquisition": "Acquisizione", + "additional": "Ulteriori informazioni", + "listBibl": "Lista di citazioni", + "surrogates": "Surrogati", + "adminInfo": "Informazioni amministrative", + "recordHist": "Storia registrata", + "custodialHist": "Storia della conservazione", + "availability": "Disponibilità", + "msFrag": "Frammento del manoscritto", + "altIdentifierLabel": "Identificatore alternativo", + "msPart": "Parte del manoscritto", + "origPlace": "Luogo di origine", + "origDate": "Data di origine", + "selectMsDesc": "Seleziona MsDesc", + "thumbnails": "Miniature", + "firstPage": "Prima pagina", + "previousPage": "Pagina precedente", + "nextPage": "Pagina successiva", + "lastPage": "Ultima pagina", + "toggleToolbar": "Apri/chiudi barra di navigazione", + "viscoll": "Viscoll", + "editors": "Editori", + "sponsors": "Sponsor", + "funders": "Finanziatori", + "principals": "Ricercatori principali", + "responsibles": "Responsabili", + "publicationStatement": "Informazioni sulla pubblicazione", + "publisher": "Editore", + "distributor": "Distributore", + "authority": "Autorità", + "publicationPlace": "Luogo di pubblicazione", + "address": "Indirizzo", + "date": "Data", + "licence": "Licenza", + "editionStatement": "Informazioni sull'edizione", + "edition": "Edizione", + "seriesStatement": "Informazioni sulla serie", + "notesStatement": "Note", + "sourceDesc": "Descrizione della fonte", + "fileDesc": "Descrizione del file", + "encodingDesc": "Codifica", + "profileDesc": "Profilo del testo", + "revisionDesc": "Revisioni", + "projectDesc": "Descrizione del progetto", + "samplingDecl": "Dichiarazione di campionatura", + "editorialDecl": "Dichiarazione sulle pratiche editoriali", + "tagsDecl": "Dichiarazione sulla marcatura", + "styleDefDecl": "Dichiarazione sul linguaggio stile", + "refsDecl": "Dichiarazione sui riferimenti", + "classDecl": "Dichiarazioni sulla classificazione", + "geoDecl": "Dichiarazione sulle coordinate geografiche", + "unitDecl": "Dichiarazione sulle unità di misurazione", + "schemaSpec": "Specifica dello schema", + "schemaRef": "Riferimento allo schema", + "correction": "Principi di correzione", + "hyphenation": "Principi di sillabazione", + "interpretation": "Principi di interpretazione", + "normalization": "Principi di normalizzazione", + "punctuation": "Principi di punteggiatura", + "quotation": "Gestione delle virgolette", + "segmentation": "Principi di segmentazione", + "stdVals": "Valori standard", + "scope": "Ambito", + "selector": "Selettore", + "scheme": "Schema", + "rules": "Regole", + "renditionFirstLineDesc": "lo stile si applica alla prima riga dell'elemento di destinazione", + "renditionFirstLetterDesc": "lo stile si applica alla prima lettera dell'elemento di destinazione", + "renditionBeforeDesc": "lo stile dovrebbe essere applicato immediatamente prima del contenuto dell'elemento di destinazione", + "renditionAfterDesc": "lo stile dovrebbe essere applicato immediatamente dopo il contenuto dell'elemento di destinazione", + "occurrence": "occorrenza", + "occurrences": "occorrenze", + "withId": "con l'identificativo", + "criticalNotes": "Note critiche", + "ortographicVariants": "Varianti ortografiche", + "info": "Info", + "metadataForLemma": "Metadata per il lemma", + "metadataFor": "Metadata per", + "noDataAvailable": "Nessuna informazione disponibile", + "moreInfoAboutApp": "Maggiori informazioni per l'entrata d'apparato", + "omit": "omit.", + "wit": "Wit:", + "xml": "XML", + "criticalApparatus": "Apparato Critico", + "sources": "Fonti", + "analogues": "Passi Paralleli", + "source": "Fonte", + "analogue": "Passo Parallelo", + "notes": "Note Critiche", + "refBibl": "Riferimenti Bibliografici", + "quotedSources": "Fonti citate", + "quotedText": "Testo", + "references": "Riferimenti", + "analogueIn": "Passo parallelo in", + "corresps": "Corrispondenze", + "addImage": "Aggiungi immagine", + "removeImage": "Rimuovi immagine", + "bibliography": "Bibliografia", + "style": "Stile", + "sortBy": "Ordina per", + "year": "Anno", + "order": "Ordine", + "asc": "Crescente", + "desc": "Decrescente", + "reprintedIn": "Rist. in", + "editedBy": "A cura di", + "corrSeq": "Sequenza correzioni", + "criticalNote": "Nota critica", + "showsDeletions": "Mostra cancellazioni", + "hidesDeletions": "Nascondi cancellazioni" } \ No newline at end of file diff --git a/src/assets/i18n/it.json.bak b/src/assets/i18n/it.json.bak new file mode 100644 index 000000000..c599b88e2 --- /dev/null +++ b/src/assets/i18n/it.json.bak @@ -0,0 +1,175 @@ +{ + "defaultTitle": "Visualizzatore EVT", + "changeLanguage": "Cambia lingua", + "languageEn": "Inglese", + "languageIt": "Italiano", + "changeTheme": "Cambia tema", + "themeNeutral": "Neutro", + "themeModern": "Moderno", + "themeClassic": "Classico", + "shortcuts": "Scorciatoie da tastiera", + "aboutEVT": "Info su EVT", + "projectInfo": "Informazioni progetto", + "openLists": "Apri liste", + "bookmark": "Segnalibro", + "downloadXML": "Scarica XML", + "pinboard": "Bacheca appunti", + "pinboardLoading": "Caricamento appunti...", + "pinboardEmpty": "Nessun appunto trovato.", + "filteredPinboardEmpty": "Nessun appunto trovato per i filtri impostati.", + "filterPins": "Filtra appunti", + "more": "in più", + "lists": "Liste", + "noEntities": "Nessuna entità in questa lista", + "search": "Cerca", + "noMatches": "Nessun risultato", + "entityNotFound": "Entità non trovata", + "noOccurrences": "Nessuna occorrenza", + "relations": "Relazioni", + "selectItems": "Seleziona elementi", + "persons": "Persone", + "places": "Luoghi", + "organizations": "Organizzazioni", + "events": "Eventi", + "roles": "Ruoli", + "measures": "Misure", + "selectAll": "Seleziona tutto", + "clearAll": "Pulisci selezione", + "bishops": "Vescovi", + "diplomatic": "Diplomatica", + "interpretative": "Interpretativa", + "critical": "Critica", + "line": "linea", + "lines": "linee", + "char": "carattere", + "chars": "caratteri", + "word": "parola", + "words": "parole", + "missingS": "mancante", + "missingP": "mancanti", + "omitted": "omissione", + "prose": "Prosa", + "verses": "Versi", + "page": "Pagina {{value}}", + "front": "Front", + "mainText": "Testo principale", + "addVersion": "Aggiungi versione", + "addWitness": "Aggiungi testimone", + "collection": "Raccolta", + "place": "Luogo", + "msIdentifier": "Identificatore del manoscritto", + "repository": "Archivio", + "institution": "Istituzione", + "msName": "Nome", + "idno": "Identificatore", + "altIdentifier": "Identificatore alternativo", + "msContents": "Contenuto del manoscritto", + "textLang": "Lingua", + "author": "Autore", + "docDate": "Data", + "title": "Titolo", + "summary": "Riassunto", + "items": "Testi", + "incipit": "Incipit", + "explicit": "Explicit", + "colophon": "Colophon", + "note": "Note", + "docImprint": "Sigla editoriale", + "phyDesc": "Descrizione fisica", + "supportDesc": "Supporto", + "extent": "Grandezza", + "layoutDesc": "Layout", + "handDesc": "Scrittura", + "decoDesc": "Decorazioni", + "collation": "Collazione", + "description": "Descrizione", + "bindingDesc": "Rilegatura", + "condition": "Condizione fisica", + "foliation": "Foliazione", + "history": "Storia del manoscritto", + "origin": "Origine", + "provenance": "Provenienza", + "acquisition": "Acquisizione", + "additional": "Ulteriori informazioni", + "listBibl": "Lista di citazioni", + "surrogates": "Surrogati", + "adminInfo": "Informazioni amministrative", + "recordHist": "Storia registrata", + "custodialHist": "Storia della conservazione", + "availability": "Disponibilità", + "msFrag": "Frammento del manoscritto", + "altIdentifierLabel": "Identificatore alternativo", + "msPart": "Parte del manoscritto", + "origPlace": "Luogo di origine", + "origDate": "Data di origine", + "selectMsDesc": "Seleziona MsDesc", + "thumbnails": "Miniature", + "firstPage": "Prima pagina", + "previousPage": "Pagina precedente", + "nextPage": "Pagina successiva", + "lastPage": "Ultima pagina", + "toggleToolbar": "Apri/chiudi barra di navigazione", + "viscoll": "Viscoll", + "editors": "Editori", + "sponsors": "Sponsor", + "funders": "Finanziatori", + "principals": "Ricercatori principali", + "responsibles": "Responsabili", + "publicationStatement": "Informazioni sulla pubblicazione", + "publisher": "Editore", + "distributor": "Distributore", + "authority": "Autorità", + "publicationPlace": "Luogo di pubblicazione", + "address": "Indirizzo", + "date": "Data", + "licence": "Licenza", + "editionStatement": "Informazioni sull'edizione", + "edition": "Edizione", + "seriesStatement": "Informazioni sulla serie", + "notesStatement": "Note", + "sourceDesc": "Descrizione della fonte", + "fileDesc": "Descrizione del file", + "encodingDesc": "Codifica", + "profileDesc": "Profilo del testo", + "revisionDesc": "Revisioni", + "projectDesc": "Descrizione del progetto", + "samplingDecl": "Dichiarazione di campionatura", + "editorialDecl": "Dichiarazione sulle pratiche editoriali", + "tagsDecl": "Dichiarazione sulla marcatura", + "styleDefDecl": "Dichiarazione sul linguaggio stile", + "refsDecl": "Dichiarazione sui riferimenti", + "classDecl": "Dichiarazioni sulla classificazione", + "geoDecl": "Dichiarazione sulle coordinate geografiche", + "unitDecl": "Dichiarazione sulle unità di misurazione", + "schemaSpec": "Specifica dello schema", + "schemaRef": "Riferimento allo schema", + "correction": "Principi di correzione", + "hyphenation": "Principi di sillabazione", + "interpretation": "Principi di interpretazione", + "normalization": "Principi di normalizzazione", + "punctuation": "Principi di punteggiatura", + "quotation": "Gestione delle virgolette", + "segmentation": "Principi di segmentazione", + "stdVals": "Valori standard", + "scope": "Ambito", + "selector": "Selettore", + "scheme": "Schema", + "rules": "Regole", + "renditionFirstLineDesc": "lo stile si applica alla prima riga dell'elemento di destinazione", + "renditionFirstLetterDesc": "lo stile si applica alla prima lettera dell'elemento di destinazione", + "renditionBeforeDesc": "lo stile dovrebbe essere applicato immediatamente prima del contenuto dell'elemento di destinazione", + "renditionAfterDesc": "lo stile dovrebbe essere applicato immediatamente dopo il contenuto dell'elemento di destinazione", + "occurrence": "occorrenza", + "occurrences": "occorrenze", + "withId": "con l'identificativo", + "criticalNotes": "Note critiche", + "ortographicVariants": "Varianti ortografiche", + "info": "Info", + "metadataForLemma": "Metadata per il lemma", + "metadataFor": "Metadata per", + "noDataAvailable": "Nessuna informazione disponibile", + "moreInfoAboutApp": "Maggiori informazioni per l'entrata d'apparato", + "omit": "omit.", + "wit": "Wit:", + "xml": "XML" +} \ No newline at end of file diff --git a/src/assets/scss/_colors.scss b/src/assets/scss/_colors.scss index 8178afda0..d273742ee 100644 --- a/src/assets/scss/_colors.scss +++ b/src/assets/scss/_colors.scss @@ -17,6 +17,8 @@ $editionColors: ( ), commentNotes: rgb(87, 14, 105), criticalNotes: rgb(24, 70, 155), + analogueNotes: rgb(24, 70, 155), + sourceNotes: rgb(24, 155, 90), normalization: #69513a, normalizationBackground: #fffbf3, emendation: #934d4d, diff --git a/src/assets/scss/_themes.scss b/src/assets/scss/_themes.scss index 2e718bebc..da1fde7b3 100644 --- a/src/assets/scss/_themes.scss +++ b/src/assets/scss/_themes.scss @@ -29,7 +29,7 @@ $themes: ( toolsBackgroundDarker: #b0bec5, toolsColorActive: #ffdd00, appEntryBoxBackground: #f1f4f5, - appEntryBoxActiveTabBg: #eaecec, + appEntryBoxActiveTabBg: #e2e4e4b0, ), classic: ( baseColorDark: rgb(54, 45, 40), diff --git a/src/index.html b/src/index.html index 7ef5fb325..28389f867 100644 --- a/src/index.html +++ b/src/index.html @@ -3,9 +3,10 @@ EvtViewerAngular - + + diff --git a/src/styles.scss b/src/styles.scss index 581e02b93..9b0fb6042 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -6,179 +6,341 @@ @import "./assets/scss/bootstrapOverrides"; @font-face { - font-family: "Junicode"; - src: url("/assets/fonts/Junicode.woff") format("woff"); - font-weight: normal; - font-style: normal; + font-family: "Junicode"; + src: url("assets/fonts/Junicode.woff") format("woff"); + font-weight: normal; + font-style: normal; } @font-face { - font-family: "Junicode"; - src: url("/assets/fonts/Junicode-Bold.woff") format("woff"); - font-weight: bold; - font-style: normal; + font-family: "Junicode"; + src: url("assets/fonts/Junicode-Bold.woff") format("woff"); + font-weight: bold; + font-style: normal; } @font-face { - font-family: "Junicode"; - src: url("/assets/fonts/Junicode-Italic.woff") format("woff"); - font-weight: normal; - font-style: italic; + font-family: "Junicode"; + src: url("assets/fonts/Junicode-Italic.woff") format("woff"); + font-weight: normal; + font-style: italic; } @font-face { - font-family: "Junicode"; - src: url("/assets/fonts/Junicode-BoldItalic.woff") format("woff"); - font-weight: bold; - font-style: italic; + font-family: "Junicode"; + src: url("assets/fonts/Junicode-BoldItalic.woff") format("woff"); + font-weight: bold; + font-style: italic; } html, body { - height: 100%; + height: 100%; } body { - overflow: hidden; -} - -.edition-font { - font-family: Junicode, Times, serif; -} - -.ui-font { - font-family: Arial, sans-serif; // TODO: decide which font to use for the UI + overflow: hidden; } // ng-select overwrites .ng-select { - position: relative; - display: inline-flex !important; + position: relative; + display: inline-flex !important; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; + + .ng-select-container .ng-value-container .ng-placeholder { + top: 0 !important; + position: relative !important; + } + + &.ng-select-focused:not(.ng-select-opened) > .ng-select-container { + border: none; + } + + .ng-select-container { + height: 31px !important; + min-height: 0.6rem; vertical-align: middle; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; + border: none; + + @include themify($themes) { + background-color: themed("toolsBackground") !important; + color: themed("toolsColor"); + } + } + + .ng-arrow-wrapper { + padding-left: 0.35rem; + user-select: none; + height: 100%; + width: 1.5rem; + opacity: 0.5; - .ng-select-container .ng-value-container .ng-placeholder { - top: 0 !important; - position: relative !important; + &:hover { + opacity: 1; } - &.ng-select-focused:not(.ng-select-opened) > .ng-select-container { - border: none; + @include themify($themes) { + background-color: themed("toolsBackgroundDarker") !important; } - .ng-select-container { - height: 31px !important; - min-height: 31px; - vertical-align: middle; - border: none; + .ng-arrow { + border-width: 5px 5px 0; + vertical-align: text-bottom; - @include themify($themes) { - background-color: themed("toolsBackground") !important; - color: themed("toolsColor"); - } + @include themify($themes) { + border-color: themed("baseColorDark") transparent transparent; + } } + } + &.ng-select-opened > .ng-select-container { .ng-arrow-wrapper { - padding-left: 6px; - user-select: none; - height: 100%; - width: 24px; - opacity: 0.5; - - &:hover { - opacity: 1; - } + opacity: 1; + .ng-arrow { @include themify($themes) { - background-color: themed("toolsBackgroundDarker") !important; - } - - .ng-arrow { - border-width: 5px 5px 0; - vertical-align: text-bottom; - - @include themify($themes) { - border-color: themed("baseColorDark") transparent transparent; - } + border-color: transparent transparent themed("baseColorDark"); } + } } + } - &.ng-select-opened > .ng-select-container { - .ng-arrow-wrapper { - opacity: 1; - - .ng-arrow { - @include themify($themes) { - border-color: transparent transparent themed("baseColorDark"); - } - } - } + .ng-dropdown-panel { + @include themify($themes) { + background-color: themed("toolsBackground") !important; + color: themed("toolsColor"); } + } + .ng-dropdown-panel-items { + @include set("box-shadow", "0 0.125rem 0.25rem rgba(0, 0, 0, 0.1)"); - .ng-dropdown-panel { + .ng-option { + @include themify($themes) { + background-color: themed("toolsBackground") !important; + color: themed("toolsColor"); + } + &.ng-option-marked { @include themify($themes) { - background-color: themed("toolsBackground") !important; - color: themed("toolsColor"); + background-color: rgba(themed("baseColorDark"), 0.1) !important; } - } - .ng-dropdown-panel-items { - @include set("box-shadow", "0 0.125rem 0.25rem rgba(0, 0, 0, 0.1)"); - - .ng-option { - @include themify($themes) { - background-color: themed("toolsBackground") !important; - color: themed("toolsColor"); - } - &.ng-option-marked { - @include themify($themes) { - background-color: rgba(themed("baseColorDark"), 0.1) !important; - } - } - &.ng-option-selected { - @include themify($themes) { - background-color: themed("baseColorDark") !important; - color: themed("baseColorLight") !important; - } - } + } + &.ng-option-selected { + @include themify($themes) { + background-color: themed("baseColorDark") !important; + color: themed("baseColorLight") !important; } + } } + } - &.ng-select-opened { - .ng-arrow-wrapper .ng-arrow { - border-width: 0 4px 4px; - } + &.ng-select-opened { + .ng-arrow-wrapper .ng-arrow { + border-width: 0 4px 4px; } + } } .overflow-y-auto { - overflow-y: auto; + overflow-y: auto; } .pointer { - cursor: pointer; + cursor: pointer; } .abbr, .expan { - color: purple; - text-decoration: underline; + color: purple; + text-decoration: underline; } .ex { - font-style: italic; + font-style: italic; } .hidden { - display: none; + display: none; } .btn-close { - height: 20px !important; - width: 20px !important; - line-height: 0.8rem; - padding: 0; - font-size: 0.9rem; + height: 1.25rem !important; + width: 1.25rem !important; + line-height: 0.8rem; + padding: 0; + font-size: 0.9rem; +} + +evt-biblio-entry span:last-of-type { + display: none !important; +} + +evt-biblio-list .msIdentifier { + margin-bottom: 2rem; + margin-left: 1em; + font-size: 90%; + line-height: 1.4rem; +} + +evt-quote-entry evt-source-detail > div { + box-shadow: none !important; + margin: 0 !important; +} + +evt-analogue-entry evt-analogue-detail > div { + box-shadow: none !important; + margin: 0 !important; +} + +.popover { + min-width: 8rem; +} + +.popover-body evt-quote-entry, +.popover-body evt-analogue-entry { + pointer-events: none; +} + +.biblio-list li { + margin-left: 1rem; +} + +.source-detail-content p { + margin-bottom: 0; + margin-top: 0; +} + +evt-analogue-detail .verse-num, +evt-source-detail .verse-num { + display: none !important; +} + +evt-analogue-entry evt-paragraph, +evt-quote-entry evt-paragraph { + display: inline-block; +} + +evt-analogue-entry evt-paragraph p, +evt-quote-entry evt-paragraph p { + margin-bottom: 0; +} + +evt-apparatus-entry-detail evt-original-encoding-viewer pre, +evt-mod-detail evt-original-encoding-viewer pre, +evt-mod-group evt-original-encoding-viewer pre, +evt-source-detail evt-original-encoding-viewer pre, +evt-analogue-detail evt-original-encoding-viewer pre { + margin-top:-1% !important; + padding: 0 !important; + background-color: transparent !important; +} + +evt-apparatus-entry-detail evt-original-encoding-viewer code, +evt-mod-detail evt-original-encoding-viewer code, +evt-mod-group evt-original-encoding-viewer code, +evt-source-detail evt-original-encoding-viewer code, +evt-analogue-detail evt-original-encoding-viewer code { + font-size: 85%; +} + +.mod-highlighted { + text-decoration: underline 14%; +} + +.mod-text .mod { + text-decoration: none !important; +} + +.card { + border-radius: 0; +} + +.highlightverse{ + cursor: pointer; + background-color: rgba(230,206,160,0.8); + color: #000000; + padding: 3px 0px; + &.selected{ + background-color: rgb(248, 230, 191); + } +} + +.layerMarker { + display: inline-block; + border-radius: 25%; + padding: 0 0.2em 0 0.2em; + line-height: 1.2em; + font-size: 95%; + font-weight: 600; + font-family: serif; + border: 1px solid #80808033; + color: white; +} + +.mod-text .layerMarker { + display: none !important; +} + +.substMarker { + font-family: cursive; + font-weight: 600; +} + +.changeSeparator, .changeGroupSeparator { + display: none; + font-family: cursive; + font-weight: 600; + margin: 0 0.2em 0 0.1em; + line-height: 1rem; + font-size: 1.3rem; +} + +.app-entry-rdg .changeGroupSeparator { + display: inline-block; +} + +.app-detail-content .changeSeparator { + display: inline-block; +} + +.app-detail-content .changeSeparator:first-of-type { + display: none; +} + +.first-mod .changeGroupSeparator, .app-detail-content .changeGroupSeparator { + display: none; +} + +.first-mod { + margin-right: 0.2rem; +} + +evt-mod-group .substMarker { + display: none !important; +} + +.mod-text { + font-style: normal; +} + +evt-mod-group .tab-content > .active, +evt-mod-detail .tab-content > .active { + display: inline-block; +} + +evt-main-header .svg-inline--fa { + height: 0.85em; +} + +evt-page :not(evt-apparatus-entry-detail) .head { + font-weight: bold; + display: block; + padding: 0.5em 0.1em 0.5em 0em; } +[ng-reflect-text-flow="verses"] evt-verse { + display: block; +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 3b7de9bb3..af404ae69 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,7 @@ "lib": [ "es2018", "es2019", - "dom", + "dom" ] }, "angularCompilerOptions": {