From 1917deb36ce0fe25d97ed7a3884c3cce0f23f316 Mon Sep 17 00:00:00 2001 From: Christopher Pickering Date: Fri, 23 Jul 2021 18:20:04 +0000 Subject: [PATCH] Release 2021.07.1 --- .gitignore | 2 + .gitlab-ci.yml | 2 +- .pre-commit-config.yaml | 28 +- docs/atlas/etl/updates/changelog.rst | 9 + docs/atlas/updates/changelog.rst | 16 + package-lock.json | 2991 ----------------- package.json | 1 + poetry.lock | 722 ---- readme.rst | 1 + web/Helpers/Extensions.cs | 6 +- web/Models/Atlas_WebContext.cs | 42 + web/Models/DpReportAnnotation.cs | 1 - web/Models/DpTermAnnotation.cs | 1 - web/Models/ReportObject.cs | 3 + web/Models/ReportObjectQuery.cs | 1 + web/Models/ReportObjectTag.cs | 21 + web/Models/ReportObjectTagMembership.cs | 18 + web/Models/ReportObjectType.cs | 2 + web/Pages/Index/About.cshtml | 37 +- web/Pages/Projects/Index.cshtml | 2 +- .../Reports/Editor/_CurrentProjects.cshtml | 49 + web/Pages/Reports/Editor/_Projects.cshtml | 38 + web/Pages/Reports/Index.cshtml | 9 +- web/Pages/Reports/Index.cshtml.cs | 225 +- web/Pages/Reports/_Details.cshtml | 52 +- web/Pages/Reports/_Edit.cshtml | 4 + web/Pages/Reports/_Query.cshtml | 2 +- web/Pages/Reports/_Relationships.cshtml | 8 +- web/Pages/Search/Index.cshtml | 2 + web/Pages/Search/Partials/_Filters.cshtml | 11 +- web/Pages/Shared/_Layout.cshtml | 67 +- web/Pages/Users/Sections/_Favorites.cshtml | 2 + web/atlas-creation_script.sql | 220 +- web/wwwroot/css/page.css | 8 + web/wwwroot/css/search.css | 14 + web/wwwroot/js/access.js | 2 +- web/wwwroot/js/projectEditor.js | 450 +-- web/wwwroot/js/reportEditor.js | 87 + web/wwwroot/js/search.js | 12 +- web/wwwroot/js/utility/modal.js | 2 +- 40 files changed, 1002 insertions(+), 4168 deletions(-) delete mode 100644 package-lock.json delete mode 100644 poetry.lock create mode 100644 web/Models/ReportObjectTag.cs create mode 100644 web/Models/ReportObjectTagMembership.cs create mode 100644 web/Pages/Reports/Editor/_CurrentProjects.cshtml create mode 100644 web/Pages/Reports/Editor/_Projects.cshtml diff --git a/.gitignore b/.gitignore index cafc82ae..2d5600ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. +package-lock.json +poetry.lock .python-version .venv _build diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98262af0..8ef14d6e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,7 +35,6 @@ precommit: - python3 -m ensurepip - pip3 install --no-cache --upgrade pip setuptools - python3 -m pip install pre-commit - - rm package-lock.json - dotnet restore "web/web.csproj" - dotnet --version script: @@ -59,6 +58,7 @@ build_web: - public script: - cd "web" + - sed -i '$s/}/,\n"banner_text":{"site_message":"Atlas Test"}}/' appsettings.json - dotnet publish -r win-x86 --self-contained false -c Release -o out artifacts: paths: ["/builds/atlas/web/atlas-dotnet/web/out/"] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ebc606af..d8ba556d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: # misc file cleanup - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.4.0 + rev: v4.0.1 hooks: - id: pretty-format-json exclude: package-lock.json @@ -26,7 +26,7 @@ repos: # isort python files - repo: https://github.com/timothycrosley/isort - rev: 5.7.0 + rev: 5.9.1 hooks: - id: isort additional_dependencies: [toml] @@ -34,24 +34,24 @@ repos: # reformat python - repo: https://github.com/ambv/black - rev: 20.8b1 + rev: 21.6b0 hooks: - id: black files: \.py$ # reformat js - - repo: https://github.com/pre-commit/mirrors-prettier - rev: 'v2.2.1' - hooks: - - id: prettier - name: prettier-js - args: [--write,--loglevel=error] - types: [javascript] - files: wwwroot/js/.*.js$ + # - repo: https://github.com/pre-commit/mirrors-prettier + # rev: 'v2.3.2' + # hooks: + # - id: prettier + # name: prettier-js + # args: [--write,--loglevel=error] + # types: [javascript] + # files: wwwroot/js/.*.js$ # reformat js - repo: https://github.com/pre-commit/mirrors-eslint - rev: 'v7.19.0' + rev: 'v7.29.0' hooks: - id: eslint args: [--fix] @@ -63,7 +63,7 @@ repos: # reformat css - repo: https://github.com/pre-commit/mirrors-prettier - rev: 'v2.2.1' + rev: 'v2.3.2' hooks: - id: prettier name: prettier-css @@ -73,7 +73,7 @@ repos: # reformat css - repo: https://github.com/awebdeveloper/pre-commit-stylelint - rev: '' + rev: '0.0.2' hooks: - id: stylelint files: wwwroot/css/.*.css$ diff --git a/docs/atlas/etl/updates/changelog.rst b/docs/atlas/etl/updates/changelog.rst index 9dc5339c..4e8de329 100644 --- a/docs/atlas/etl/updates/changelog.rst +++ b/docs/atlas/etl/updates/changelog.rst @@ -19,6 +19,15 @@ Changelog ********* +Version 2021.07.1 +----------------- + +- Added SlicerDicer session info to ETL +- Updated certification tags to include self-service +- Fixed Tableau rundata +- Updated hierarchies for sessions +- Added Clarity tags and tag memberships + Version 2021.06.1 ----------------- diff --git a/docs/atlas/updates/changelog.rst b/docs/atlas/updates/changelog.rst index 8a6b54e1..2bf00f10 100644 --- a/docs/atlas/updates/changelog.rst +++ b/docs/atlas/updates/changelog.rst @@ -19,6 +19,22 @@ Changelog ********* +Version 2021.07.1 +----------------- + +- Added ShortName column to ReportObjectType +- Added report tags for Clarity reports +- Added projects to report relationships +- Added Self-Service certification tag +- Added SSRS Files to search +- Removed hardcoded report types from search +- Updated report editor to be able to add data projects to reports +- Modified ReportObjectType table to include visibility +- Added optional banner text to config file +- Fixed script errors on projects page +- Updated metrics to include components in relationships +- Modified report editor to only close on x + Version 2021.06.1 ----------------- diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 4e666988..00000000 --- a/package-lock.json +++ /dev/null @@ -1,2991 +0,0 @@ -{ - "dependencies": { - "@babel/code-frame": { - "dev": true, - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "requires": { - "@babel/highlight": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/core": { - "dependencies": { - "source-map": { - "dev": true, - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "version": "0.5.7" - } - }, - "dev": true, - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/generator": { - "dependencies": { - "source-map": { - "dev": true, - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "version": "0.5.7" - } - }, - "dev": true, - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "version": "7.12.15" - }, - "@babel/helper-function-name": { - "dev": true, - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-get-function-arity": { - "dev": true, - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "requires": { - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-member-expression-to-functions": { - "dev": true, - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "requires": { - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-module-imports": { - "dev": true, - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "requires": { - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-module-transforms": { - "dev": true, - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-optimise-call-expression": { - "dev": true, - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "requires": { - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-replace-supers": { - "dev": true, - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-simple-access": { - "dev": true, - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "requires": { - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-split-export-declaration": { - "dev": true, - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "requires": { - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/helper-validator-identifier": { - "dev": true, - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "version": "7.12.11" - }, - "@babel/helpers": { - "dev": true, - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/highlight": { - "dev": true, - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/parser": { - "dev": true, - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "version": "7.12.15" - }, - "@babel/template": { - "dev": true, - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/traverse": { - "dev": true, - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "version": "7.12.13" - }, - "@babel/types": { - "dev": true, - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "version": "7.12.13" - }, - "@eslint/eslintrc": { - "dependencies": { - "ajv": { - "dev": true, - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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" - }, - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "version": "6.12.6" - }, - "globals": { - "dev": true, - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "requires": { - "type-fest": "^0.8.1" - }, - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "version": "12.4.0" - }, - "ignore": { - "dev": true, - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "version": "4.0.6" - }, - "json-schema-traverse": { - "dev": true, - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "version": "0.4.1" - }, - "type-fest": { - "dev": true, - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "version": "0.8.1" - } - }, - "dev": true, - "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", - "version": "0.3.0" - }, - "@nodelib/fs.scandir": { - "dev": true, - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - }, - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "version": "2.1.4" - }, - "@nodelib/fs.stat": { - "dev": true, - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "version": "2.0.4" - }, - "@nodelib/fs.walk": { - "dev": true, - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - }, - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "version": "1.2.6" - }, - "@stylelint/postcss-css-in-js": { - "dev": true, - "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", - "requires": { - "@babel/core": ">=7.9.0" - }, - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", - "version": "0.37.2" - }, - "@stylelint/postcss-markdown": { - "dev": true, - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "requires": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - }, - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "version": "0.36.2" - }, - "@types/mdast": { - "dev": true, - "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", - "requires": { - "@types/unist": "*" - }, - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", - "version": "3.0.3" - }, - "@types/minimist": { - "dev": true, - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "version": "1.2.1" - }, - "@types/normalize-package-data": { - "dev": true, - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "version": "2.4.0" - }, - "@types/parse-json": { - "dev": true, - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "version": "4.0.0" - }, - "@types/unist": { - "dev": true, - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "version": "2.0.3" - }, - "acorn": { - "dev": true, - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "version": "7.4.1" - }, - "acorn-jsx": { - "dev": true, - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "version": "5.3.1" - }, - "ajv": { - "dev": true, - "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz", - "version": "7.1.0" - }, - "ansi-colors": { - "dev": true, - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "version": "4.1.1" - }, - "ansi-regex": { - "dev": true, - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "version": "5.0.0" - }, - "ansi-styles": { - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - }, - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "version": "3.2.1" - }, - "argparse": { - "dev": true, - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - }, - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "version": "1.0.10" - }, - "array-union": { - "dev": true, - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "version": "2.1.0" - }, - "arrify": { - "dev": true, - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "version": "1.0.1" - }, - "astral-regex": { - "dev": true, - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "version": "2.0.0" - }, - "autoprefixer": { - "dev": true, - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "version": "9.8.6" - }, - "bail": { - "dev": true, - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "version": "1.0.5" - }, - "balanced-match": { - "dev": true, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "version": "1.0.0" - }, - "brace-expansion": { - "dev": true, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "version": "1.1.11" - }, - "braces": { - "dev": true, - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - }, - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "version": "3.0.2" - }, - "browserslist": { - "dev": true, - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - }, - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "version": "4.16.3" - }, - "callsites": { - "dev": true, - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "version": "3.1.0" - }, - "camelcase": { - "dev": true, - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "version": "5.3.1" - }, - "camelcase-keys": { - "dev": true, - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "version": "6.2.2" - }, - "caniuse-lite": { - "dev": true, - "integrity": "sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz", - "version": "1.0.30001185" - }, - "chalk": { - "dependencies": { - "supports-color": { - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "version": "5.5.0" - } - }, - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "version": "2.4.2" - }, - "character-entities": { - "dev": true, - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "version": "1.2.4" - }, - "character-entities-legacy": { - "dev": true, - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "version": "1.1.4" - }, - "character-reference-invalid": { - "dev": true, - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "version": "1.1.4" - }, - "cli": { - "dev": true, - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "requires": { - "exit": "0.1.2", - "glob": "^7.1.1" - }, - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "version": "1.0.1" - }, - "clone-regexp": { - "dev": true, - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "requires": { - "is-regexp": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "version": "2.2.0" - }, - "color-convert": { - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - }, - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "version": "1.9.3" - }, - "color-name": { - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "version": "1.1.3" - }, - "colorette": { - "dev": true, - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "version": "1.2.1" - }, - "concat-map": { - "dev": true, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "version": "0.0.1" - }, - "console-browserify": { - "dev": true, - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "^0.1.4" - }, - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "version": "1.1.0" - }, - "convert-source-map": { - "dev": true, - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - }, - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "version": "1.7.0" - }, - "core-util-is": { - "dev": true, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "version": "1.0.2" - }, - "cosmiconfig": { - "dev": true, - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "requires": { - "@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" - }, - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "version": "7.0.0" - }, - "cross-spawn": { - "dependencies": { - "which": { - "dev": true, - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "version": "2.0.2" - } - }, - "dev": true, - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "version": "7.0.3" - }, - "cssesc": { - "dev": true, - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "version": "3.0.0" - }, - "date-now": { - "dev": true, - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "version": "0.1.4" - }, - "debug": { - "dev": true, - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - }, - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "version": "4.3.1" - }, - "decamelize": { - "dev": true, - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "version": "1.2.0" - }, - "decamelize-keys": { - "dependencies": { - "map-obj": { - "dev": true, - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "version": "1.0.1" - } - }, - "dev": true, - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "version": "1.1.0" - }, - "deep-is": { - "dev": true, - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "version": "0.1.3" - }, - "dir-glob": { - "dev": true, - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "version": "3.0.1" - }, - "doctrine": { - "dev": true, - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - }, - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "version": "3.0.0" - }, - "dom-serializer": { - "dependencies": { - "domelementtype": { - "dev": true, - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "version": "2.1.0" - }, - "entities": { - "dev": true, - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "version": "2.2.0" - } - }, - "dev": true, - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "version": "0.2.2" - }, - "domelementtype": { - "dev": true, - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "version": "1.3.1" - }, - "domhandler": { - "dev": true, - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - }, - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "version": "2.4.2" - }, - "domutils": { - "dev": true, - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "version": "1.7.0" - }, - "electron-to-chromium": { - "dev": true, - "integrity": "sha512-IGBXmTGwdVGUVTnZ8ISEvkhDfhhD+CDFndG4//BhvDcEtPYiVrzoB+rzT/Y12OQCf5bvRCrVmrUbGrS9P7a6FQ==", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.662.tgz", - "version": "1.3.662" - }, - "emoji-regex": { - "dev": true, - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "version": "8.0.0" - }, - "enquirer": { - "dev": true, - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "requires": { - "ansi-colors": "^4.1.1" - }, - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "version": "2.3.6" - }, - "entities": { - "dev": true, - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "version": "1.1.2" - }, - "error-ex": { - "dev": true, - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - }, - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "version": "1.3.2" - }, - "escalade": { - "dev": true, - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "version": "3.1.1" - }, - "escape-string-regexp": { - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "version": "1.0.5" - }, - "eslint": { - "dependencies": { - "ajv": { - "dev": true, - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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" - }, - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "version": "6.12.6" - }, - "ansi-styles": { - "dev": true, - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - }, - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "version": "4.3.0" - }, - "chalk": { - "dev": true, - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "version": "4.1.0" - }, - "color-convert": { - "dev": true, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - }, - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "version": "2.0.1" - }, - "color-name": { - "dev": true, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "version": "1.1.4" - }, - "globals": { - "dev": true, - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "requires": { - "type-fest": "^0.8.1" - }, - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "version": "12.4.0" - }, - "has-flag": { - "dev": true, - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "version": "4.0.0" - }, - "ignore": { - "dev": true, - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "version": "4.0.6" - }, - "json-schema-traverse": { - "dev": true, - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "version": "0.4.1" - }, - "semver": { - "dev": true, - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - }, - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "version": "7.3.4" - }, - "supports-color": { - "dev": true, - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "version": "7.2.0" - }, - "type-fest": { - "dev": true, - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "version": "0.8.1" - } - }, - "dev": true, - "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.3.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.4", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", - "version": "7.19.0" - }, - "eslint-config-prettier": { - "dev": true, - "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", - "version": "7.2.0" - }, - "eslint-plugin-prettier": { - "dev": true, - "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", - "requires": { - "prettier-linter-helpers": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", - "version": "3.3.1" - }, - "eslint-scope": { - "dev": true, - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "version": "5.1.1" - }, - "eslint-utils": { - "dependencies": { - "eslint-visitor-keys": { - "dev": true, - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "version": "1.3.0" - } - }, - "dev": true, - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "version": "2.1.0" - }, - "eslint-visitor-keys": { - "dev": true, - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "version": "2.0.0" - }, - "espree": { - "dependencies": { - "eslint-visitor-keys": { - "dev": true, - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "version": "1.3.0" - } - }, - "dev": true, - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "version": "7.3.1" - }, - "esprima": { - "dev": true, - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "version": "4.0.1" - }, - "esquery": { - "dependencies": { - "estraverse": { - "dev": true, - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "version": "5.2.0" - } - }, - "dev": true, - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "requires": { - "estraverse": "^5.1.0" - }, - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "version": "1.4.0" - }, - "esrecurse": { - "dependencies": { - "estraverse": { - "dev": true, - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "version": "5.2.0" - } - }, - "dev": true, - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "version": "4.3.0" - }, - "estraverse": { - "dev": true, - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "version": "4.3.0" - }, - "esutils": { - "dev": true, - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "version": "2.0.3" - }, - "execall": { - "dev": true, - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "requires": { - "clone-regexp": "^2.1.0" - }, - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "version": "2.0.0" - }, - "exit": { - "dev": true, - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "version": "0.1.2" - }, - "extend": { - "dev": true, - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "version": "3.0.2" - }, - "fast-deep-equal": { - "dev": true, - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "version": "3.1.3" - }, - "fast-diff": { - "dev": true, - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "version": "1.2.0" - }, - "fast-glob": { - "dev": true, - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "version": "3.2.5" - }, - "fast-json-stable-stringify": { - "dev": true, - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "version": "2.1.0" - }, - "fast-levenshtein": { - "dev": true, - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "version": "2.0.6" - }, - "fastest-levenshtein": { - "dev": true, - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "version": "1.0.12" - }, - "fastq": { - "dev": true, - "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", - "requires": { - "reusify": "^1.0.4" - }, - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", - "version": "1.10.1" - }, - "file-entry-cache": { - "dev": true, - "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", - "requires": { - "flat-cache": "^3.0.4" - }, - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", - "version": "6.0.0" - }, - "fill-range": { - "dev": true, - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - }, - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "version": "7.0.1" - }, - "find-up": { - "dev": true, - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "version": "4.1.0" - }, - "flat-cache": { - "dev": true, - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "version": "3.0.4" - }, - "flatted": { - "dev": true, - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "version": "3.1.1" - }, - "fs.realpath": { - "dev": true, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "version": "1.0.0" - }, - "function-bind": { - "dev": true, - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "version": "1.1.1" - }, - "functional-red-black-tree": { - "dev": true, - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "version": "1.0.1" - }, - "gensync": { - "dev": true, - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "version": "1.0.0-beta.2" - }, - "get-stdin": { - "dev": true, - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "version": "8.0.0" - }, - "glob": { - "dev": true, - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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" - }, - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "version": "7.1.6" - }, - "glob-parent": { - "dev": true, - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - }, - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "version": "5.1.1" - }, - "global-modules": { - "dev": true, - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "version": "2.0.0" - }, - "global-prefix": { - "dev": true, - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "version": "3.0.0" - }, - "globals": { - "dev": true, - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "version": "11.12.0" - }, - "globby": { - "dev": true, - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "version": "11.0.2" - }, - "globjoin": { - "dev": true, - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "version": "0.1.4" - }, - "gonzales-pe": { - "dev": true, - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "requires": { - "minimist": "^1.2.5" - }, - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "version": "4.3.0" - }, - "hard-rejection": { - "dev": true, - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "version": "2.1.0" - }, - "has": { - "dev": true, - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - }, - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "version": "1.0.3" - }, - "has-flag": { - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "version": "3.0.0" - }, - "hosted-git-info": { - "dev": true, - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "requires": { - "lru-cache": "^6.0.0" - }, - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "version": "3.0.8" - }, - "html-tags": { - "dev": true, - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "version": "3.1.0" - }, - "htmlparser2": { - "dev": true, - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "version": "3.10.1" - }, - "ignore": { - "dev": true, - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "version": "5.1.8" - }, - "import-fresh": { - "dependencies": { - "resolve-from": { - "dev": true, - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "version": "4.0.0" - } - }, - "dev": true, - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "version": "3.3.0" - }, - "import-lazy": { - "dev": true, - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "version": "4.0.0" - }, - "imurmurhash": { - "dev": true, - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "version": "0.1.4" - }, - "indent-string": { - "dev": true, - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "version": "4.0.0" - }, - "indexes-of": { - "dev": true, - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "version": "1.0.1" - }, - "inflight": { - "dev": true, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - }, - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "version": "1.0.6" - }, - "inherits": { - "dev": true, - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "version": "2.0.4" - }, - "ini": { - "dev": true, - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "version": "1.3.8" - }, - "is-alphabetical": { - "dev": true, - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "version": "1.0.4" - }, - "is-alphanumerical": { - "dev": true, - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "version": "1.0.4" - }, - "is-arrayish": { - "dev": true, - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "version": "0.2.1" - }, - "is-buffer": { - "dev": true, - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "version": "2.0.5" - }, - "is-core-module": { - "dev": true, - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "requires": { - "has": "^1.0.3" - }, - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "version": "2.2.0" - }, - "is-decimal": { - "dev": true, - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "version": "1.0.4" - }, - "is-extglob": { - "dev": true, - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "version": "2.1.1" - }, - "is-fullwidth-code-point": { - "dev": true, - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "version": "3.0.0" - }, - "is-glob": { - "dev": true, - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - }, - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "version": "4.0.1" - }, - "is-hexadecimal": { - "dev": true, - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "version": "1.0.4" - }, - "is-number": { - "dev": true, - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "version": "7.0.0" - }, - "is-plain-obj": { - "dev": true, - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "version": "2.1.0" - }, - "is-regexp": { - "dev": true, - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "version": "2.1.0" - }, - "is-typedarray": { - "dev": true, - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "version": "1.0.0" - }, - "isarray": { - "dev": true, - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "version": "0.0.1" - }, - "isexe": { - "dev": true, - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "version": "2.0.0" - }, - "js-tokens": { - "dev": true, - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "version": "4.0.0" - }, - "js-yaml": { - "dev": true, - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "version": "3.14.1" - }, - "jsesc": { - "dev": true, - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "version": "2.5.2" - }, - "jshint": { - "dependencies": { - "domhandler": { - "dev": true, - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "requires": { - "domelementtype": "1" - }, - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "version": "2.3.0" - }, - "domutils": { - "dev": true, - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "version": "1.5.1" - }, - "entities": { - "dev": true, - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "version": "1.0.0" - }, - "htmlparser2": { - "dev": true, - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - }, - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "version": "3.8.3" - }, - "readable-stream": { - "dev": true, - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - }, - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "version": "1.1.14" - }, - "string_decoder": { - "dev": true, - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "version": "0.10.31" - }, - "strip-json-comments": { - "dev": true, - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "version": "1.0.4" - } - }, - "dev": true, - "integrity": "sha512-TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==", - "requires": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "~4.17.19", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - }, - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.12.0.tgz", - "version": "2.12.0" - }, - "json-parse-even-better-errors": { - "dev": true, - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "version": "2.3.1" - }, - "json-schema-traverse": { - "dev": true, - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "version": "1.0.0" - }, - "json-stable-stringify-without-jsonify": { - "dev": true, - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "version": "1.0.1" - }, - "json5": { - "dev": true, - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - }, - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "version": "2.2.0" - }, - "kind-of": { - "dev": true, - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "version": "6.0.3" - }, - "known-css-properties": { - "dev": true, - "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", - "version": "0.21.0" - }, - "levn": { - "dev": true, - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "version": "0.4.1" - }, - "lines-and-columns": { - "dev": true, - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "version": "1.1.6" - }, - "locate-path": { - "dev": true, - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - }, - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "version": "5.0.0" - }, - "lodash": { - "dev": true, - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "version": "4.17.20" - }, - "log-symbols": { - "dependencies": { - "ansi-styles": { - "dev": true, - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - }, - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "version": "4.3.0" - }, - "chalk": { - "dev": true, - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "version": "4.1.0" - }, - "color-convert": { - "dev": true, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - }, - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "version": "2.0.1" - }, - "color-name": { - "dev": true, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "version": "1.1.4" - }, - "has-flag": { - "dev": true, - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "version": "4.0.0" - }, - "supports-color": { - "dev": true, - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "version": "7.2.0" - } - }, - "dev": true, - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "requires": { - "chalk": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "version": "4.0.0" - }, - "longest-streak": { - "dev": true, - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "version": "2.0.4" - }, - "lru-cache": { - "dev": true, - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "version": "6.0.0" - }, - "map-obj": { - "dev": true, - "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", - "version": "4.1.0" - }, - "markdown-include": { - "integrity": "sha1-usZVVALG2pOg9SlSIl37mmzMcxs=", - "requires": { - "q": "^1.2.0" - }, - "resolved": "https://registry.npmjs.org/markdown-include/-/markdown-include-0.4.3.tgz", - "version": "0.4.3" - }, - "mathml-tag-names": { - "dev": true, - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "version": "2.1.3" - }, - "mdast-util-from-markdown": { - "dev": true, - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "version": "0.8.5" - }, - "mdast-util-to-markdown": { - "dev": true, - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "requires": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "version": "0.6.5" - }, - "mdast-util-to-string": { - "dev": true, - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "version": "2.0.0" - }, - "meow": { - "dev": true, - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "version": "9.0.0" - }, - "merge2": { - "dev": true, - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "version": "1.4.1" - }, - "micromark": { - "dev": true, - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "version": "2.11.4" - }, - "micromatch": { - "dev": true, - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "version": "4.0.2" - }, - "min-indent": { - "dev": true, - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "version": "1.0.1" - }, - "minimatch": { - "dev": true, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - }, - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "version": "3.0.4" - }, - "minimist": { - "dev": true, - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "version": "1.2.5" - }, - "minimist-options": { - "dependencies": { - "is-plain-obj": { - "dev": true, - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "version": "1.1.0" - } - }, - "dev": true, - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "version": "4.1.0" - }, - "ms": { - "dev": true, - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "version": "2.1.2" - }, - "natural-compare": { - "dev": true, - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "version": "1.4.0" - }, - "node-releases": { - "dev": true, - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "version": "1.1.70" - }, - "normalize-package-data": { - "dependencies": { - "semver": { - "dev": true, - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - }, - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "version": "7.3.4" - } - }, - "dev": true, - "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==", - "requires": { - "hosted-git-info": "^3.0.6", - "resolve": "^1.17.0", - "semver": "^7.3.2", - "validate-npm-package-license": "^3.0.1" - }, - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz", - "version": "3.0.0" - }, - "normalize-range": { - "dev": true, - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "version": "0.1.2" - }, - "normalize-selector": { - "dev": true, - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "version": "0.2.0" - }, - "num2fraction": { - "dev": true, - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "version": "1.2.2" - }, - "once": { - "dev": true, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - }, - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "version": "1.4.0" - }, - "optionator": { - "dev": true, - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "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" - }, - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "version": "0.9.1" - }, - "p-limit": { - "dev": true, - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "version": "2.3.0" - }, - "p-locate": { - "dev": true, - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - }, - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "version": "4.1.0" - }, - "p-try": { - "dev": true, - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "version": "2.2.0" - }, - "parent-module": { - "dev": true, - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "version": "1.0.1" - }, - "parse-entities": { - "dev": true, - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "version": "2.0.0" - }, - "parse-json": { - "dev": true, - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@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" - }, - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "version": "5.2.0" - }, - "path-exists": { - "dev": true, - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "version": "4.0.0" - }, - "path-is-absolute": { - "dev": true, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "version": "1.0.1" - }, - "path-key": { - "dev": true, - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "version": "3.1.1" - }, - "path-parse": { - "dev": true, - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "version": "1.0.6" - }, - "path-type": { - "dev": true, - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "version": "4.0.0" - }, - "picomatch": { - "dev": true, - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "version": "2.2.2" - }, - "postcss": { - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "version": "7.0.35" - }, - "postcss-html": { - "dev": true, - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "requires": { - "htmlparser2": "^3.10.0" - }, - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "version": "0.36.0" - }, - "postcss-less": { - "dev": true, - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", - "requires": { - "postcss": "^7.0.14" - }, - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "version": "3.1.4" - }, - "postcss-media-query-parser": { - "dev": true, - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "version": "0.2.3" - }, - "postcss-resolve-nested-selector": { - "dev": true, - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "version": "0.1.1" - }, - "postcss-safe-parser": { - "dev": true, - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "requires": { - "postcss": "^7.0.26" - }, - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "version": "4.0.2" - }, - "postcss-sass": { - "dev": true, - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "requires": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - }, - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "version": "0.4.4" - }, - "postcss-scss": { - "dev": true, - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "requires": { - "postcss": "^7.0.6" - }, - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "version": "2.1.1" - }, - "postcss-selector-parser": { - "dev": true, - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - }, - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "version": "6.0.4" - }, - "postcss-syntax": { - "dev": true, - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "version": "0.36.2" - }, - "postcss-value-parser": { - "dev": true, - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "version": "4.1.0" - }, - "prelude-ls": { - "dev": true, - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "version": "1.2.1" - }, - "prettier": { - "dev": true, - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "version": "2.2.1" - }, - "prettier-linter-helpers": { - "dev": true, - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "requires": { - "fast-diff": "^1.1.2" - }, - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "version": "1.0.0" - }, - "progress": { - "dev": true, - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "version": "2.0.3" - }, - "punycode": { - "dev": true, - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "version": "2.1.1" - }, - "q": { - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "version": "1.5.1" - }, - "queue-microtask": { - "dev": true, - "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", - "version": "1.2.2" - }, - "quick-lru": { - "dev": true, - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "version": "4.0.1" - }, - "read-pkg": { - "dependencies": { - "hosted-git-info": { - "dev": true, - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "version": "2.8.8" - }, - "normalize-package-data": { - "dev": true, - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "version": "2.5.0" - }, - "type-fest": { - "dev": true, - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "version": "0.6.0" - } - }, - "dev": true, - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "version": "5.2.0" - }, - "read-pkg-up": { - "dependencies": { - "type-fest": { - "dev": true, - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "version": "0.8.1" - } - }, - "dev": true, - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "version": "7.0.1" - }, - "readable-stream": { - "dev": true, - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "version": "3.6.0" - }, - "redent": { - "dev": true, - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "version": "3.0.0" - }, - "regexpp": { - "dev": true, - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "version": "3.1.0" - }, - "remark": { - "dev": true, - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "version": "13.0.0" - }, - "remark-parse": { - "dev": true, - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "requires": { - "mdast-util-from-markdown": "^0.8.0" - }, - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "version": "9.0.0" - }, - "remark-stringify": { - "dev": true, - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "requires": { - "mdast-util-to-markdown": "^0.6.0" - }, - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "version": "9.0.1" - }, - "repeat-string": { - "dev": true, - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "version": "1.6.1" - }, - "require-from-string": { - "dev": true, - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "version": "2.0.2" - }, - "resolve": { - "dev": true, - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "version": "1.20.0" - }, - "resolve-from": { - "dev": true, - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "version": "5.0.0" - }, - "reusify": { - "dev": true, - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "version": "1.0.4" - }, - "rimraf": { - "dev": true, - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - }, - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "version": "3.0.2" - }, - "run-parallel": { - "dev": true, - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - }, - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "version": "1.2.0" - }, - "safe-buffer": { - "dev": true, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "version": "5.1.2" - }, - "semver": { - "dev": true, - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "version": "5.7.1" - }, - "shebang-command": { - "dev": true, - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "version": "2.0.0" - }, - "shebang-regex": { - "dev": true, - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "version": "3.0.0" - }, - "shelljs": { - "dev": true, - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "version": "0.3.0" - }, - "signal-exit": { - "dev": true, - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "version": "3.0.3" - }, - "slash": { - "dev": true, - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "version": "3.0.0" - }, - "slice-ansi": { - "dependencies": { - "ansi-styles": { - "dev": true, - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - }, - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "version": "4.3.0" - }, - "color-convert": { - "dev": true, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - }, - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "version": "2.0.1" - }, - "color-name": { - "dev": true, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "version": "1.1.4" - } - }, - "dev": true, - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "version": "4.0.0" - }, - "source-map": { - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "version": "0.6.1" - }, - "spdx-correct": { - "dev": true, - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "version": "3.1.1" - }, - "spdx-exceptions": { - "dev": true, - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "version": "2.3.0" - }, - "spdx-expression-parse": { - "dev": true, - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "version": "3.0.1" - }, - "spdx-license-ids": { - "dev": true, - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "version": "3.0.7" - }, - "specificity": { - "dev": true, - "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", - "version": "0.4.1" - }, - "sprintf-js": { - "dev": true, - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "version": "1.0.3" - }, - "string-width": { - "dev": true, - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "version": "4.2.0" - }, - "string_decoder": { - "dependencies": { - "safe-buffer": { - "dev": true, - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "version": "5.2.1" - } - }, - "dev": true, - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "version": "1.3.0" - }, - "strip-ansi": { - "dev": true, - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - }, - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "version": "6.0.0" - }, - "strip-indent": { - "dev": true, - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "version": "3.0.0" - }, - "strip-json-comments": { - "dev": true, - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "version": "3.1.1" - }, - "style-search": { - "dev": true, - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "version": "0.1.0" - }, - "stylelint": { - "dependencies": { - "ansi-styles": { - "dev": true, - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - }, - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "version": "4.3.0" - }, - "chalk": { - "dev": true, - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "version": "4.1.0" - }, - "color-convert": { - "dev": true, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - }, - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "version": "2.0.1" - }, - "color-name": { - "dev": true, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "version": "1.1.4" - }, - "has-flag": { - "dev": true, - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "version": "4.0.0" - }, - "supports-color": { - "dev": true, - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "version": "7.2.0" - } - }, - "dev": true, - "integrity": "sha512-eDuLrL0wzPKbl5/TbNGZcbw0lTIGbDEr5W6lCODvb1gAg0ncbgCRt7oU0C2VFDvbrcY0A3MFZOwltwTRmc0XCw==", - "requires": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", - "balanced-match": "^1.0.0", - "chalk": "^4.1.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "execall": "^2.0.0", - "fast-glob": "^3.2.5", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.0", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.0.2", - "globjoin": "^0.1.4", - "html-tags": "^3.1.0", - "ignore": "^5.1.8", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "known-css-properties": "^0.21.0", - "lodash": "^4.17.20", - "log-symbols": "^4.0.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.2", - "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.4", - "postcss-syntax": "^0.36.2", - "postcss-value-parser": "^4.1.0", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "specificity": "^0.4.1", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "style-search": "^0.1.0", - "sugarss": "^2.0.0", - "svg-tags": "^1.0.0", - "table": "^6.0.7", - "v8-compile-cache": "^2.2.0", - "write-file-atomic": "^3.0.3" - }, - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.10.0.tgz", - "version": "13.10.0" - }, - "stylelint-config-prettier": { - "dev": true, - "integrity": "sha512-TN1l93iVTXpF9NJstlvP7nOu9zY2k+mN0NSFQ/VEGz15ZIP9ohdDZTtCWHs5LjctAhSAzaILULGbgiM0ItId3A==", - "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-8.0.2.tgz", - "version": "8.0.2" - }, - "stylelint-config-recommended": { - "dev": true, - "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz", - "version": "3.0.0" - }, - "stylelint-config-standard": { - "dev": true, - "integrity": "sha512-IB2iFdzOTA/zS4jSVav6z+wGtin08qfj+YyExHB3LF9lnouQht//YyB0KZq9gGz5HNPkddHOzcY8HsUey6ZUlA==", - "requires": { - "stylelint-config-recommended": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz", - "version": "20.0.0" - }, - "stylelint-prettier": { - "dev": true, - "integrity": "sha512-8QZ+EtBpMCXYB6cY0hNE3aCDKMySIx4Q8/malLaqgU/KXXa6Cj2KK8ulG1AJvUMD5XSSP8rOotqaCzR/BW6qAA==", - "requires": { - "prettier-linter-helpers": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-1.1.2.tgz", - "version": "1.1.2" - }, - "sugarss": { - "dev": true, - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "requires": { - "postcss": "^7.0.2" - }, - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "version": "2.0.0" - }, - "supports-color": { - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "version": "6.1.0" - }, - "svg-tags": { - "dev": true, - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "version": "1.0.0" - }, - "table": { - "dev": true, - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", - "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" - }, - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "version": "6.0.7" - }, - "text-table": { - "dev": true, - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "version": "0.2.0" - }, - "to-fast-properties": { - "dev": true, - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "version": "2.0.0" - }, - "to-regex-range": { - "dev": true, - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - }, - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "version": "5.0.1" - }, - "trim-newlines": { - "dev": true, - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "version": "3.0.0" - }, - "trough": { - "dev": true, - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "version": "1.0.5" - }, - "type-check": { - "dev": true, - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "requires": { - "prelude-ls": "^1.2.1" - }, - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "version": "0.4.0" - }, - "type-fest": { - "dev": true, - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "version": "0.18.1" - }, - "typedarray-to-buffer": { - "dev": true, - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - }, - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "version": "3.1.5" - }, - "unified": { - "dev": true, - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "version": "9.2.0" - }, - "uniq": { - "dev": true, - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "version": "1.0.1" - }, - "unist-util-find-all-after": { - "dev": true, - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "requires": { - "unist-util-is": "^4.0.0" - }, - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "version": "3.0.2" - }, - "unist-util-is": { - "dev": true, - "integrity": "sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz", - "version": "4.0.4" - }, - "unist-util-stringify-position": { - "dev": true, - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "requires": { - "@types/unist": "^2.0.2" - }, - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "version": "2.0.3" - }, - "uri-js": { - "dev": true, - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - }, - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "version": "4.4.1" - }, - "util-deprecate": { - "dev": true, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "version": "1.0.2" - }, - "v8-compile-cache": { - "dev": true, - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "version": "2.2.0" - }, - "validate-npm-package-license": { - "dev": true, - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - }, - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "version": "3.0.4" - }, - "vfile": { - "dev": true, - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "version": "4.2.1" - }, - "vfile-message": { - "dev": true, - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "version": "2.0.4" - }, - "which": { - "dev": true, - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - }, - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "version": "1.3.1" - }, - "word-wrap": { - "dev": true, - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "version": "1.2.3" - }, - "wrappy": { - "dev": true, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "version": "1.0.2" - }, - "write-file-atomic": { - "dev": true, - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - }, - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "version": "3.0.3" - }, - "yallist": { - "dev": true, - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "version": "4.0.0" - }, - "yaml": { - "dev": true, - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "version": "1.10.0" - }, - "yargs-parser": { - "dev": true, - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "version": "20.2.4" - }, - "zwitch": { - "dev": true, - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "version": "1.0.5" - } - }, - "lockfileVersion": 1, - "name": "atlas", - "requires": true -} diff --git a/package.json b/package.json index 38f45589..cb5ca47d 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "prettier" ], "rules": { + "no-console": "error", "prettier/prettier": "error" } }, diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 1db501a7..00000000 --- a/poetry.lock +++ /dev/null @@ -1,722 +0,0 @@ -[[package]] -name = "alabaster" -version = "0.7.12" -description = "A configurable sidebar-enabled Sphinx theme" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "attrs" -version = "20.3.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] -docs = ["furo", "sphinx", "zope.interface"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] - -[[package]] -name = "babel" -version = "2.9.0" -description = "Internationalization utilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -pytz = ">=2015.7" - -[[package]] -name = "beautifulsoup4" -version = "4.9.3" -description = "Screen-scraping library" -category = "dev" -optional = true -python-versions = "*" - -[package.dependencies] -soupsieve = {version = ">1.2", markers = "python_version >= \"3.0\""} - -[package.extras] -html5lib = ["html5lib"] -lxml = ["lxml"] - -[[package]] -name = "certifi" -version = "2020.12.5" -description = "Python package for providing Mozilla's CA Bundle." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "chardet" -version = "4.0.0" -description = "Universal encoding detector for Python 2 and 3" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "colorama" -version = "0.4.4" -description = "Cross-platform colored terminal text." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "docutils" -version = "0.16" -description = "Docutils -- Python Documentation Utilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "furo" -version = "2021.3.20b31" -description = "A clean customisable Sphinx documentation theme." -category = "dev" -optional = true -python-versions = ">=3.6" - -[package.dependencies] -beautifulsoup4 = "*" -sphinx = ">=3.0,<4.0" - -[package.extras] -doc = ["myst-parser", "sphinx-copybutton", "sphinx-inline-tabs"] -test = ["pytest", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "idna" -version = "2.10" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "imagesize" -version = "1.2.0" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "importlib-resources" -version = "3.0.0" -description = "Read resources from Python packages" -category = "dev" -optional = true -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" - -[package.dependencies] -zipp = {version = ">=0.4", markers = "python_version < \"3.8\""} - -[package.extras] -docs = ["sphinx", "rst.linker", "jaraco.packaging"] - -[[package]] -name = "jinja2" -version = "2.11.3" -description = "A very fast and expressive template engine." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -MarkupSafe = ">=0.23" - -[package.extras] -i18n = ["Babel (>=0.8)"] - -[[package]] -name = "markdown-it-py" -version = "0.6.2" -description = "Python port of markdown-it. Markdown parsing, done right!" -category = "dev" -optional = true -python-versions = "~=3.6" - -[package.dependencies] -attrs = ">=19,<21" -mdit-py-plugins = ">=0.2.1,<0.3.0" - -[package.extras] -code_style = ["pre-commit (==2.6)"] -compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistune (>=0.8.4,<0.9.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "panflute (>=1.12,<2.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["myst-nb (>=0.11.1,<0.12.0)", "sphinx-book-theme", "sphinx-panels (>=0.4.0,<0.5.0)", "sphinx-copybutton", "sphinx (>=2,<4)", "pyyaml"] -testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions", "pytest-benchmark (>=3.2,<4.0)", "psutil"] - -[[package]] -name = "markupsafe" -version = "1.1.1" -description = "Safely add untrusted strings to HTML/XML markup." -category = "dev" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" - -[[package]] -name = "mdit-py-plugins" -version = "0.2.6" -description = "Collection of plugins for markdown-it-py" -category = "dev" -optional = true -python-versions = "~=3.6" - -[package.dependencies] -markdown-it-py = ">=0.5.8,<2.0.0" - -[package.extras] -code_style = ["pre-commit (==2.6)"] -testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "myst-parser" -version = "0.13.5" -description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." -category = "dev" -optional = true -python-versions = ">=3.6" - -[package.dependencies] -docutils = ">=0.15" -jinja2 = "*" -markdown-it-py = ">=0.6.2,<0.7.0" -mdit-py-plugins = ">=0.2.5,<0.3.0" -pyyaml = "*" -sphinx = ">=2,<4" - -[package.extras] -code_style = ["flake8 (>=3.7.0,<3.8.0)", "black", "pre-commit (==1.17.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["sphinxcontrib-bibtex (<2.0.0)", "ipython", "sphinx-book-theme (>=0.0.36)", "sphinx-panels (>=0.5.2,<0.6.0)"] -testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions", "beautifulsoup4"] - -[[package]] -name = "packaging" -version = "20.9" -description = "Core utilities for Python packages" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -pyparsing = ">=2.0.2" - -[[package]] -name = "pygments" -version = "2.8.1" -description = "Pygments is a syntax highlighting package written in Python." -category = "dev" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "pyparsing" -version = "2.4.7" -description = "Python parsing module" -category = "dev" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" - -[[package]] -name = "pytz" -version = "2021.1" -description = "World timezone definitions, modern and historical" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "pyyaml" -version = "5.4.1" -description = "YAML parser and emitter for Python" -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[[package]] -name = "requests" -version = "2.25.1" -description = "Python HTTP for Humans." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -certifi = ">=2017.4.17" -chardet = ">=3.0.2,<5" -idna = ">=2.5,<3" -urllib3 = ">=1.21.1,<1.27" - -[package.extras] -security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] - -[[package]] -name = "selenium" -version = "3.141.0" -description = "Python bindings for Selenium" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -urllib3 = "*" - -[[package]] -name = "snowballstemmer" -version = "2.1.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "soupsieve" -version = "2.2.1" -description = "A modern CSS selector implementation for Beautiful Soup." -category = "dev" -optional = true -python-versions = ">=3.6" - -[[package]] -name = "sphinx" -version = "3.5.3" -description = "Python documentation generator" -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -alabaster = ">=0.7,<0.8" -babel = ">=1.3" -colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.12" -imagesize = "*" -Jinja2 = ">=2.3" -packaging = "*" -Pygments = ">=2.0" -requests = ">=2.5.0" -snowballstemmer = ">=1.1" -sphinxcontrib-applehelp = "*" -sphinxcontrib-devhelp = "*" -sphinxcontrib-htmlhelp = "*" -sphinxcontrib-jsmath = "*" -sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = "*" - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"] -test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] - -[[package]] -name = "sphinx-copybutton" -version = "0.3.1" -description = "Add a copy button to each of your code cells." -category = "dev" -optional = true -python-versions = "*" - -[package.dependencies] -sphinx = ">=1.8" - -[package.extras] -code_style = ["flake8 (>=3.7.0,<3.8.0)", "black", "pre-commit (==1.17.0)"] - -[[package]] -name = "sphinx-inline-tabs" -version = "2020.10.19b4" -description = "Add inline tabbed content to your Sphinx documentation." -category = "dev" -optional = true -python-versions = ">=3.5" - -[package.extras] -doc = ["sphinx (>=3)", "myst-parser", "furo"] -test = ["pytest", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "sphinx-panels" -version = "0.5.2" -description = "A sphinx extension for creating panels in a grid layout." -category = "dev" -optional = true -python-versions = "*" - -[package.dependencies] -docutils = "*" -importlib-resources = {version = ">=3.0.0,<3.1.0", markers = "python_version < \"3.7\""} -sphinx = ">=2,<4" - -[package.extras] -code_style = ["pre-commit (>=2.7.0,<2.8.0)"] -live-dev = ["sphinx-autobuild", "web-compile (>=0.2.0,<0.3.0)"] -testing = ["pytest (>=6.0.1,<6.1.0)", "pytest-regressions (>=2.0.1,<2.1.0)"] -themes = ["sphinx-rtd-theme", "pydata-sphinx-theme (>=0.4.0,<0.5.0)", "sphinx-book-theme (>=0.0.36,<0.1.0)", "myst-parser (>=0.12.9,<0.13.0)"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "1.0.2" -description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "1.0.2" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "1.0.3" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest", "html5lib"] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.extras] -test = ["pytest", "flake8", "mypy"] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "1.0.3" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "1.1.4" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-youtube" -version = "1.0" -description = "" -category = "dev" -optional = false -python-versions = "*" -develop = false - -[package.dependencies] -Sphinx = ">=0.6" - -[package.source] -type = "git" -url = "https://github.com/sphinx-contrib/youtube.git" -reference = "master" -resolved_reference = "635c8a908e3cac552ce43293c1516e7270cc4ce8" - -[[package]] -name = "urllib3" -version = "1.26.4" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" - -[package.extras] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] -brotli = ["brotlipy (>=0.6.0)"] - -[[package]] -name = "zipp" -version = "3.4.1" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "dev" -optional = true -python-versions = ">=3.6" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] - -[extras] -docs = [] - -[metadata] -lock-version = "1.1" -python-versions = "^3.6.2" -content-hash = "eca8f0508ed19643bcb61a60d1374d82589a0e9b0d353732fb4e41524e516ea7" - -[metadata.files] -alabaster = [ - {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, - {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, -] -attrs = [ - {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, - {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, -] -babel = [ - {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"}, - {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"}, -] -beautifulsoup4 = [ - {file = "beautifulsoup4-4.9.3-py2-none-any.whl", hash = "sha256:4c98143716ef1cb40bf7f39a8e3eec8f8b009509e74904ba3a7b315431577e35"}, - {file = "beautifulsoup4-4.9.3-py3-none-any.whl", hash = "sha256:fff47e031e34ec82bf17e00da8f592fe7de69aeea38be00523c04623c04fb666"}, - {file = "beautifulsoup4-4.9.3.tar.gz", hash = "sha256:84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25"}, -] -certifi = [ - {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, - {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"}, -] -chardet = [ - {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, - {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] -docutils = [ - {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, - {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, -] -furo = [ - {file = "furo-2021.3.20b31-py3-none-any.whl", hash = "sha256:34bd70a839794872d4ba6656d18b4d94cca16684e16e224a0073cf1977f29e43"}, - {file = "furo-2021.3.20b31.tar.gz", hash = "sha256:6fd32e204195d0bc39ca9eb15dd7cbeb068410a496bc4f76b9cd198cb4e12eaf"}, -] -idna = [ - {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, - {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, -] -imagesize = [ - {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"}, - {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"}, -] -importlib-resources = [ - {file = "importlib_resources-3.0.0-py2.py3-none-any.whl", hash = "sha256:d028f66b66c0d5732dae86ba4276999855e162a749c92620a38c1d779ed138a7"}, - {file = "importlib_resources-3.0.0.tar.gz", hash = "sha256:19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3"}, -] -jinja2 = [ - {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, - {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, -] -markdown-it-py = [ - {file = "markdown-it-py-0.6.2.tar.gz", hash = "sha256:c3b9f995be0792cbbc8ab2f53d74072eb7ff8a8b622be8d61d38ab879709eca3"}, - {file = "markdown_it_py-0.6.2-py3-none-any.whl", hash = "sha256:30b3e9f8198dc82a5df0dcb73fd31d56cd9a43bf8a747feb10b2ba74f962bcb1"}, -] -markupsafe = [ - {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"}, - {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, -] -mdit-py-plugins = [ - {file = "mdit-py-plugins-0.2.6.tar.gz", hash = "sha256:1e467ca2ea056e8065cbd5d6c61e5052bb50826bde84c40f6a5ed77e82125710"}, - {file = "mdit_py_plugins-0.2.6-py3-none-any.whl", hash = "sha256:77fd75dad81109ee91f30eb49146196f79afbbae041f298ae4886c8c2b5e23d7"}, -] -myst-parser = [ - {file = "myst-parser-0.13.5.tar.gz", hash = "sha256:72cf89cc0d6f35070736da19643c9ef52e570e3e13e30c007ad9b94a21f5457a"}, - {file = "myst_parser-0.13.5-py3-none-any.whl", hash = "sha256:47e469cef8ba209f4dcb82cd0b4f935171c78c6a2cc0072cd3a9724242eb81ee"}, -] -packaging = [ - {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, - {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, -] -pygments = [ - {file = "Pygments-2.8.1-py3-none-any.whl", hash = "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"}, - {file = "Pygments-2.8.1.tar.gz", hash = "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"}, -] -pyparsing = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, -] -pytz = [ - {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"}, - {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"}, -] -pyyaml = [ - {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, - {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, - {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, - {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, - {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, - {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"}, - {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, - {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, - {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, -] -requests = [ - {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, - {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, -] -selenium = [ - {file = "selenium-3.141.0-py2.py3-none-any.whl", hash = "sha256:2d7131d7bc5a5b99a2d9b04aaf2612c411b03b8ca1b1ee8d3de5845a9be2cb3c"}, - {file = "selenium-3.141.0.tar.gz", hash = "sha256:deaf32b60ad91a4611b98d8002757f29e6f2c2d5fcaf202e1c9ad06d6772300d"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"}, - {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"}, -] -soupsieve = [ - {file = "soupsieve-2.2.1-py3-none-any.whl", hash = "sha256:c2c1c2d44f158cdbddab7824a9af8c4f83c76b1e23e049479aa432feb6c4c23b"}, - {file = "soupsieve-2.2.1.tar.gz", hash = "sha256:052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc"}, -] -sphinx = [ - {file = "Sphinx-3.5.3-py3-none-any.whl", hash = "sha256:3f01732296465648da43dec8fb40dc451ba79eb3e2cc5c6d79005fd98197107d"}, - {file = "Sphinx-3.5.3.tar.gz", hash = "sha256:ce9c228456131bab09a3d7d10ae58474de562a6f79abb3dc811ae401cf8c1abc"}, -] -sphinx-copybutton = [ - {file = "sphinx-copybutton-0.3.1.tar.gz", hash = "sha256:0e0461df394515284e3907e3f418a0c60ef6ab6c9a27a800c8552772d0a402a2"}, - {file = "sphinx_copybutton-0.3.1-py3-none-any.whl", hash = "sha256:5125c718e763596e6e52d92e15ee0d6f4800ad3817939be6dee51218870b3e3d"}, -] -sphinx-inline-tabs = [ - {file = "sphinx_inline_tabs-2020.10.19b4-py3-none-any.whl", hash = "sha256:73af2770e9b5390df4f01fac74a25f46e066e7a214d5c919d16e34a7751566e3"}, - {file = "sphinx_inline_tabs-2020.10.19b4.tar.gz", hash = "sha256:d1e0d18af2011820e4c49429bcf1d2b392a1262fb01ebb8520e3b45ab2db57e4"}, -] -sphinx-panels = [ - {file = "sphinx-panels-0.5.2.tar.gz", hash = "sha256:b7b3faa05f37b7318fd14cd85c4effa1ab905dfc8bed236a63978565ea461ae4"}, - {file = "sphinx_panels-0.5.2-py3-none-any.whl", hash = "sha256:2b2e18448b0494e7a232d6c7dfb9aa3982e7aeb92aeea7d1b146e34e9261d2f1"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"}, - {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"}, - {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, -] -sphinxcontrib-youtube = [] -urllib3 = [ - {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"}, - {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"}, -] -zipp = [ - {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"}, - {file = "zipp-3.4.1.tar.gz", hash = "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76"}, -] diff --git a/readme.rst b/readme.rst index 3e80688d..a07480bd 100644 --- a/readme.rst +++ b/readme.rst @@ -90,6 +90,7 @@ Atlas was created by the Riverside Healthcare Analytics team - * `Scott Manley `_ * `Madeline Matz `_ * `Christopher Pickering `_ +* `Sean Pickering `_ * `Dan Ryan `_ * `Richard Schissler `_ * `Eric Shultz `_ diff --git a/web/Helpers/Extensions.cs b/web/Helpers/Extensions.cs index 7763b177..49f85962 100644 --- a/web/Helpers/Extensions.cs +++ b/web/Helpers/Extensions.cs @@ -390,7 +390,7 @@ public static string ReportManageUrlFromParams(string Domain, HttpContext Contex { string Url = null; bool Epic = IsEpic(Context); - if (ReportType == "SSRS Report" && !Epic) + if ((ReportType == "SSRS Report" || ReportType == "SSRS File") && !Epic) { Url = "https://" + SourceServer + "." + Domain + "/Reports/manage/catalogitem/properties" + ReportServerPath; } @@ -404,7 +404,7 @@ public static string ReportUrlFromParams(string Domain, HttpContext Context, str string ReportName = Name.Replace("|", " ").Replace("=", " "); bool Epic = IsEpic(Context); - if (((Url != "" && Url != null) || (ReportType != "SSRS Report" && Epic && ReportType != "Source Radar Dashboard Component")) && ReportType != "Epic-Crystal Report") + if (((Url != "" && Url != null) || (ReportType != "SSRS Report" && ReportType != "SSRS File" && Epic && ReportType != "Source Radar Dashboard Component")) && ReportType != "Epic-Crystal Report") { if (EpicMasterFile == "HRX") { @@ -414,7 +414,7 @@ public static string ReportUrlFromParams(string Domain, HttpContext Context, str { NewUrl = "EpicAct:WM_DASHBOARD_LAUNCHER,runparams:" + EpicRecordId; } - else if ((ReportType == "SSRS Report" || ReportType == "Tableau Workbook" || ReportType == "Tableau Dashboard") && Epic) + else if ((ReportType == "SSRS Report" || ReportType == "SSRS File" || ReportType == "Tableau Workbook" || ReportType == "Tableau Dashboard") && Epic) { if (EnabledForHyperspace == "Y") { diff --git a/web/Models/Atlas_WebContext.cs b/web/Models/Atlas_WebContext.cs index dbd00f75..73450d7d 100644 --- a/web/Models/Atlas_WebContext.cs +++ b/web/Models/Atlas_WebContext.cs @@ -68,6 +68,8 @@ public Atlas_WebContext(DbContextOptions options) public virtual DbSet ReportObjectRunData { get; set; } public virtual DbSet ReportObjectRunTimes { get; set; } public virtual DbSet ReportObjectSubscriptions { get; set; } + public virtual DbSet ReportObjectTags { get; set; } + public virtual DbSet ReportObjectTagMemberships { get; set; } public virtual DbSet ReportObjectTopRuns { get; set; } public virtual DbSet ReportObjectTypes { get; set; } public virtual DbSet ReportObjectWeightedRunRanks { get; set; } @@ -1230,6 +1232,44 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FK_ReportObjectSubscriptions_User"); }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.TagId); + + entity.Property(e => e.TagId).HasColumnName("TagID"); + + entity.Property(e => e.EpicTagId) + .HasColumnType("numeric(18, 0)") + .HasColumnName("EpicTagID"); + + entity.Property(e => e.TagName) + .HasMaxLength(200) + .IsUnicode(false); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.TagMembershipId); + + entity.Property(e => e.TagMembershipId).HasColumnName("TagMembershipID"); + + entity.Property(e => e.ReportObjectId).HasColumnName("ReportObjectID"); + + entity.Property(e => e.TagId).HasColumnName("TagID"); + + entity.HasOne(d => d.ReportObject) + .WithMany(p => p.ReportObjectTagMemberships) + .HasForeignKey(d => d.ReportObjectId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_ReportObjectTagMemberships_ReportObject"); + + entity.HasOne(d => d.Tag) + .WithMany(p => p.ReportObjectTagMemberships) + .HasForeignKey(d => d.TagId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_ReportObjectTagMemberships_ReportObjectTags"); + }); + modelBuilder.Entity(entity => { entity.ToTable("ReportObjectTopRuns", "app"); @@ -1258,6 +1298,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) entity.Property(e => e.LastLoadDate).HasColumnType("datetime"); entity.Property(e => e.Name).IsRequired(); + + entity.Property(e => e.Visible).HasMaxLength(1); }); modelBuilder.Entity(entity => diff --git a/web/Models/DpReportAnnotation.cs b/web/Models/DpReportAnnotation.cs index 95361dae..3d193265 100644 --- a/web/Models/DpReportAnnotation.cs +++ b/web/Models/DpReportAnnotation.cs @@ -12,7 +12,6 @@ public partial class DpReportAnnotation public int? ReportId { get; set; } public int? DataProjectId { get; set; } public int? Rank { get; set; } - public int? Archived { get; set; } public virtual DpDataProject DataProject { get; set; } public virtual ReportObject Report { get; set; } diff --git a/web/Models/DpTermAnnotation.cs b/web/Models/DpTermAnnotation.cs index df93f23a..9c67e009 100644 --- a/web/Models/DpTermAnnotation.cs +++ b/web/Models/DpTermAnnotation.cs @@ -12,7 +12,6 @@ public partial class DpTermAnnotation public int? TermId { get; set; } public int? DataProjectId { get; set; } public int? Rank { get; set; } - public int? Archived { get; set; } public virtual DpDataProject DataProject { get; set; } public virtual Term Term { get; set; } diff --git a/web/Models/ReportObject.cs b/web/Models/ReportObject.cs index 1a25cbed..65e33c3c 100644 --- a/web/Models/ReportObject.cs +++ b/web/Models/ReportObject.cs @@ -20,6 +20,7 @@ public ReportObject() ReportObjectReportRunTimes = new HashSet(); ReportObjectRunData = new HashSet(); ReportObjectSubscriptions = new HashSet(); + ReportObjectTagMemberships = new HashSet(); ReportObjectTopRuns = new HashSet(); } @@ -48,6 +49,7 @@ public ReportObject() public string RepositoryDescription { get; set; } public string EpicReleased { get; set; } public string CertificationTag { get; set; } + public string Availability { get; set; } public virtual User AuthorUser { get; set; } public virtual User LastModifiedByUser { get; set; } @@ -64,6 +66,7 @@ public ReportObject() public virtual ICollection ReportObjectReportRunTimes { get; set; } public virtual ICollection ReportObjectRunData { get; set; } public virtual ICollection ReportObjectSubscriptions { get; set; } + public virtual ICollection ReportObjectTagMemberships { get; set; } public virtual ICollection ReportObjectTopRuns { get; set; } } } diff --git a/web/Models/ReportObjectQuery.cs b/web/Models/ReportObjectQuery.cs index 9ae76e79..8c68bc8b 100644 --- a/web/Models/ReportObjectQuery.cs +++ b/web/Models/ReportObjectQuery.cs @@ -12,6 +12,7 @@ public partial class ReportObjectQuery public string Query { get; set; } public DateTime? LastLoadDate { get; set; } public string SourceServer { get; set; } + public string Language { get; set; } public virtual ReportObject ReportObject { get; set; } } diff --git a/web/Models/ReportObjectTag.cs b/web/Models/ReportObjectTag.cs new file mode 100644 index 00000000..882a64a9 --- /dev/null +++ b/web/Models/ReportObjectTag.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; + +#nullable disable + +namespace Atlas_Web.Models +{ + public partial class ReportObjectTag + { + public ReportObjectTag() + { + ReportObjectTagMemberships = new HashSet(); + } + + public int TagId { get; set; } + public decimal? EpicTagId { get; set; } + public string TagName { get; set; } + + public virtual ICollection ReportObjectTagMemberships { get; set; } + } +} diff --git a/web/Models/ReportObjectTagMembership.cs b/web/Models/ReportObjectTagMembership.cs new file mode 100644 index 00000000..588f4507 --- /dev/null +++ b/web/Models/ReportObjectTagMembership.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +#nullable disable + +namespace Atlas_Web.Models +{ + public partial class ReportObjectTagMembership + { + public int TagMembershipId { get; set; } + public int ReportObjectId { get; set; } + public int TagId { get; set; } + public int? Line { get; set; } + + public virtual ReportObject ReportObject { get; set; } + public virtual ReportObjectTag Tag { get; set; } + } +} diff --git a/web/Models/ReportObjectType.cs b/web/Models/ReportObjectType.cs index 2ca2a6c1..fcfeea38 100644 --- a/web/Models/ReportObjectType.cs +++ b/web/Models/ReportObjectType.cs @@ -16,6 +16,8 @@ public ReportObjectType() public string Name { get; set; } public string DefaultEpicMasterFile { get; set; } public DateTime? LastLoadDate { get; set; } + public string ShortName { get; set; } + public string Visible { get; set; } public virtual ICollection ReportObjects { get; set; } } diff --git a/web/Pages/Index/About.cshtml b/web/Pages/Index/About.cshtml index e9a9c2a6..248b196d 100644 --- a/web/Pages/Index/About.cshtml +++ b/web/Pages/Index/About.cshtml @@ -26,23 +26,20 @@ -

Analytics Cheat Sheet

Data Sources

Chronicles 

-

Real-time production database 

Chronicles is the Epic production system, the database management system that underlies all of Epic’s applications. Each application builds upon the Chronicles unified data model to create clinical, financial, and administrative data sets. Because user-entered data is immediately available in Chronicles for real-time reporting, Hyperspace users requiring up to-the-minute results will most benefit from Chronicles-based reporting.

Clarity

Operational data store 

Clarity extracts data from Chronicles and loads it to a dedicated reporting server. You can use this data to create analytical reports on large amounts of long-term data without slowing your production system. Use the Clarity database for reports that don’t need access to real-time data and require significant analysis.

Caboodle 

Enterprise data warehouse 

Caboodle, an enterprise data warehouse platform, brings together information from varied sources in a curated healthcare data model for improved data management and analytics. The Caboodle data warehouse can help your organization get more value from the information in your system and broaden the scope of your analytical reporting. Caboodle provides an analytics platform that is intuitive, flexible, and customizable.

Other Third-Party Sources

In addition to the data available from the Epic platform, Analytics utilizes external sources of information to expand and enhance our reporting capabilities. These sources include market data from COMPData, claims data from Rush Health and Health Alliance, legacy data from Affinity, and extracts from our own non-Epic internal systems such as employee rosters and budget information. This data is mostly stored alongside Epic data on the Clarity and Caboodle servers but is generally referenced separately and not considered to be part of those datasets.

 

Reporting Tools

Data sitting in a database is not much use to anyone. Reporting tools allow us to track, visualize, and understand our data. Here’s a breakdown of what we use at Riverside:

Reporting Workbench

Real Time Epic-Native Reports

Reporting workbench is Epic’s internal reporting tool used for tracking near-term, real-time data. It pulls directly from the Chronicles database and returns detailed, record-level information. Most reporting workbench reports can only be run for the last thirty days, so it is not the best tool for long-term, retrospective reporting, but it is a great way to see what’s happening in the hospital right now. Examples: Hours in Observation Report, COVID Patients In-House Report

Radar Dashboards

Real-Time Monitoring and Long Term Trending

Radar is Epic’s native dashboarding tool, it allows users to view a collection of small tables and graphs in a single report for quick reference and monitoring. Data in Radar Dashboards can come from Chronicles, Clarity, or Caboodle and can summarize data over longer periods of time than what is typically available in Reporting Workbench Reports. While a great resource customization is limited and other tools are required to access the detailed data behind Radar Dashboard summaries. Examples: Daily Census Dashboard, COVID Pulse Dashboard

SQL Server Reporting Service (SSRS)

Custom Long Term Reports

SSRS is the primary way we report out of the Clarity and Caboodle databases. It gives developers the ability to create highly customized reports with record detail and summaries and can utilize sophisticated calculations and logic to meet the specific needs of the report consumer. SSRS reports can be run both inside and outside of Epic, making them easier to access than other reporting tools. SSRS also has better tools for setting up and monitoring email subscriptions.

Examples: IP to OP Converted Accounts Detail, Medicaid Inpatient Percentage Monthly, Part B Only

Tableau

Powerful Data Visualization

Tableau was new to Riverside in 2020. It is a visualization platform that can incorporate and transform data from Clarity, Caboodle, and a variety of other non-Epic data sources into powerful interactive visualizations that make it easy for end users to gain insight from large datasets. 

Examples: Cost and Utilization Dashboard, Leakage Dashboard, Pneumonia Readmissions Dashboard

 

Other Tools

Cobalt – Internally developed dashboard platform that leverages the speed and power of Microsoft Analysis Services. Go-to tool for monitoring market conditions using COMPData.

Cubes – Interactive data sources that can be used for self-service reporting in Excel. We have over 20 cubes in production covering topics such as Denials, Perioperative Services, ED Visits, Revenue and Usage, Supply and Drug Costs, Referrals, Blood Utilization, Narcotic Orders, Accounts, AR Aging, and Payments.

SlicerDicer – This is Epic’s self-service reporting tool that is built into Hyperspace. Similar cubes, SlicerDicer is designed to make it easier for end users to pull data for themselves. Epic has released over 50 SlicerDicer data models, though each can require significant build and validation work on the customer’s end to deploy. Currently, the following models are deployed or in the validation pipeline: Patients, HB Accounts, Births, HB Denials, PB Denials, HB Transactions, PB Transactions, Surgical Services.

Crystal Reports – Crystal Reports is a tool similar to SSRS that can be used to for long-term, SQL based reporting. Due to platform limitations and licensing costs, SSRS is the preferred platform at Riverside for these style reports. However, due to the large number of Epic-released Crystal reports that are still useful to our users, we continue to support the tool for legacy content.

 

- -

Validation Tags -

In an effort to both make more content available and help end users better understand the reliability of different reports, we have added Validation Tags to every report in Atlas. These tags indicate how reliable a report should be considered based on its origin and amount of testing. There are five tags: 

-

image

-

Certified reports have received the highest level of scrutiny from the Analytics Team and the owning end user. These reports are the most reliable and accurate in the system.

-

image

-

Reviewed reports have gone through the standard Analytics code review and validation process. Reviewed reports can be trusted for monitoring most operational processes.

-

image

-

Epic Released Reports are limited to the standard Epic configuration. They cannot be customized to match Riverside’s unique system build and may not always be accurate. Use with caution.

-

image

-

Legacy reports have not been validated by the Analytics team for accuracy and reliability. Use with caution.

-

image

-

High Risk reports have not been validated by the Analytics Team and do not have a usage track record. It may display inaccurate or misleading information. Use at your own risk.

-

 

-

 

-

 

-

 

-

 

+

Analytics Cheat Sheet

Data Sources

Chronicles 

+

Real-time production database 

Chronicles is the Epic production system, the database management system that underlies all of Epic’s applications. Each application builds upon the Chronicles unified data model to create clinical, financial, and administrative data sets. Because user-entered data is immediately available in Chronicles for real-time reporting, Hyperspace users requiring up to-the-minute results will most benefit from Chronicles-based reporting.

Clarity

Operational data store 

Clarity extracts data from Chronicles and loads it to a dedicated reporting server. You can use this data to create analytical reports on large amounts of long-term data without slowing your production system. Use the Clarity database for reports that don’t need access to real-time data and require significant analysis.

Caboodle 

Enterprise data warehouse 

Caboodle, an enterprise data warehouse platform, brings together information from varied sources in a curated healthcare data model for improved data management and analytics. The Caboodle data warehouse can help your organization get more value from the information in your system and broaden the scope of your analytical reporting. Caboodle provides an analytics platform that is intuitive, flexible, and customizable.

Other Third-Party Sources

In addition to the data available from the Epic platform, Analytics utilizes external sources of information to expand and enhance our reporting capabilities. These sources include market data from COMPData, claims data from Rush Health and Health Alliance, legacy data from Affinity, and extracts from our own non-Epic internal systems such as employee rosters and budget information. This data is mostly stored alongside Epic data on the Clarity and Caboodle servers but is generally referenced separately and not considered to be part of those datasets.

 

Reporting Tools

Data sitting in a database is not much use to anyone. Reporting tools allow us to track, visualize, and understand our data. Here’s a breakdown of what we use at Riverside:

Reporting Workbench

Real Time Epic-Native Reports

Reporting workbench is Epic’s internal reporting tool used for tracking near-term, real-time data. It pulls directly from the Chronicles database and returns detailed, record-level information. Most reporting workbench reports can only be run for the last thirty days, so it is not the best tool for long-term, retrospective reporting, but it is a great way to see what’s happening in the hospital right now. Examples: Hours in Observation Report, COVID Patients In-House Report

Radar Dashboards

Real-Time Monitoring and Long Term Trending

Radar is Epic’s native dashboarding tool, it allows users to view a collection of small tables and graphs in a single report for quick reference and monitoring. Data in Radar Dashboards can come from Chronicles, Clarity, or Caboodle and can summarize data over longer periods of time than what is typically available in Reporting Workbench Reports. While a great resource customization is limited and other tools are required to access the detailed data behind Radar Dashboard summaries. Examples: Daily Census Dashboard, COVID Pulse Dashboard

SQL Server Reporting Service (SSRS)

Custom Long Term Reports

SSRS is the primary way we report out of the Clarity and Caboodle databases. It gives developers the ability to create highly customized reports with record detail and summaries and can utilize sophisticated calculations and logic to meet the specific needs of the report consumer. SSRS reports can be run both inside and outside of Epic, making them easier to access than other reporting tools. SSRS also has better tools for setting up and monitoring email subscriptions.

Examples: IP to OP Converted Accounts Detail, Medicaid Inpatient Percentage Monthly, Part B Only

Tableau

Powerful Data Visualization

Tableau was new to Riverside in 2020. It is a visualization platform that can incorporate and transform data from Clarity, Caboodle, and a variety of other non-Epic data sources into powerful interactive visualizations that make it easy for end users to gain insight from large datasets. 

Examples: Cost and Utilization Dashboard, Leakage Dashboard, Pneumonia Readmissions Dashboard

 

Other Tools

Cobalt – Internally developed dashboard platform that leverages the speed and power of Microsoft Analysis Services. Go-to tool for monitoring market conditions using COMPData.

Cubes – Interactive data sources that can be used for self-service reporting in Excel. We have over 20 cubes in production covering topics such as Denials, Perioperative Services, ED Visits, Revenue and Usage, Supply and Drug Costs, Referrals, Blood Utilization, Narcotic Orders, Accounts, AR Aging, and Payments.

SlicerDicer – This is Epic’s self-service reporting tool that is built into Hyperspace. Similar cubes, SlicerDicer is designed to make it easier for end users to pull data for themselves. Epic has released over 50 SlicerDicer data models, though each can require significant build and validation work on the customer’s end to deploy. Currently, the following models are deployed or in the validation pipeline: Patients, HB Accounts, Births, HB Denials, PB Denials, HB Transactions, PB Transactions, Surgical Services.

Crystal Reports – Crystal Reports is a tool similar to SSRS that can be used to for long-term, SQL based reporting. Due to platform limitations and licensing costs, SSRS is the preferred platform at Riverside for these style reports. However, due to the large number of Epic-released Crystal reports that are still useful to our users, we continue to support the tool for legacy content.

 

+ +

Validation Tags +

In an effort to both make more content available and help end users better understand the reliability of different reports, we have added Validation Tags to every report in Atlas. These tags indicate how reliable a report should be considered based on its origin and amount of testing. There are five tags: 

+

Analytics Certified

+

Certified reports have received the highest level of scrutiny from the Analytics Team and the owning end user. These reports are the most reliable and accurate in the system.

+

Analytics Reviewed

+

Reviewed reports have gone through the standard Analytics code review and validation process. Reviewed reports can be trusted for monitoring most operational processes.

+

Epic Released

+

Epic Released Reports are limited to the standard Epic configuration. They cannot be customized to match Riverside’s unique system build and may not always be accurate. Use with caution.

+

Legacy

+

Legacy reports have not been validated by the Analytics team for accuracy and reliability. Use with caution.

+

High Risk

+

High Risk reports have not been validated by the Analytics Team and do not have a usage track record. It may display inaccurate or misleading information. Use at your own risk.

+

Self-Service

+

Data has been validated but content produced via self-service is the responsibility of the end user.

diff --git a/web/Pages/Projects/Index.cshtml b/web/Pages/Projects/Index.cshtml index 9eb0c5f2..4c4bfc8e 100644 --- a/web/Pages/Projects/Index.cshtml +++ b/web/Pages/Projects/Index.cshtml @@ -99,7 +99,7 @@ } @section js { - + } } else { diff --git a/web/Pages/Reports/Editor/_CurrentProjects.cshtml b/web/Pages/Reports/Editor/_CurrentProjects.cshtml new file mode 100644 index 00000000..68a16966 --- /dev/null +++ b/web/Pages/Reports/Editor/_CurrentProjects.cshtml @@ -0,0 +1,49 @@ +@* + Atlas of Information Management business intelligence library and documentation database. + Copyright (C) 2020 Riverside Healthcare, Kankakee, IL + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*@ + +@model Atlas_Web.Pages.Reports.IndexModel + +@if (ViewBag.RelatedProjects.Count > 0) +{ +

Existing Linked Projects

+ + @foreach (var t in ViewBag.RelatedProjects) + { +

+ Edit @t.Name Link + +

+ + + } +} diff --git a/web/Pages/Reports/Editor/_Projects.cshtml b/web/Pages/Reports/Editor/_Projects.cshtml new file mode 100644 index 00000000..5fd637b1 --- /dev/null +++ b/web/Pages/Reports/Editor/_Projects.cshtml @@ -0,0 +1,38 @@ +@* + Atlas of Information Management business intelligence library and documentation database. + Copyright (C) 2020 Riverside Healthcare, Kankakee, IL + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*@ + +@model Atlas_Web.Pages.Reports.IndexModel + + +

Add Link to Data Project

+
+ +
+ + + +
+ +

Annotation

+
+

+
+ +
+ +
diff --git a/web/Pages/Reports/Index.cshtml b/web/Pages/Reports/Index.cshtml index a61abb65..7ad86bea 100644 --- a/web/Pages/Reports/Index.cshtml +++ b/web/Pages/Reports/Index.cshtml @@ -31,6 +31,7 @@ var groups = Model.Groups.Count() > 0; var query = (Model.ReportQuery.Count() + Model.ComponentQuery.Count()) > 0; var terms = Model.ViewerReportTerms.Count() > 0; + var projects = Model.RelatedProjects.Count() > 0; var maintlog = Model.ReportMaintLogs.Count() > 0; } @@ -107,7 +108,7 @@ - + } } @@ -121,6 +122,8 @@ {@Model.Report.EpicReleased} else if(Model.Report.EpicReleased == "Legacy") {@Model.Report.EpicReleased} + else if(Model.Report.EpicReleased == "Self-Service") + {@Model.Report.EpicReleased} else {@Model.Report.EpicReleased} @@ -153,7 +156,7 @@ Query } - @if (parents || children || groups) + @if (parents || children || groups || projects) { Relationships } @@ -212,7 +215,7 @@ } -@if (parents || children) +@if (parents || children || groups || projects) {
diff --git a/web/Pages/Reports/Index.cshtml.cs b/web/Pages/Reports/Index.cshtml.cs index 5ef8293d..cad005d2 100644 --- a/web/Pages/Reports/Index.cshtml.cs +++ b/web/Pages/Reports/Index.cshtml.cs @@ -120,6 +120,12 @@ public class ReportFragilityTagData public string Name { get; set; } public int Id { get; set; } } + + public class ReportTagData + { + public string Name { get; set; } + public int Id { get; set; } + } public class MaintStatus { public string Required { get; set; } @@ -139,8 +145,8 @@ public class ReportTermsData public string Summary { get; set; } public string Definition { get; set; } public int? ReportId { get; set; } - } - + } + public class ReportQueryData { public string Query { get; set; } @@ -182,6 +188,15 @@ public class ReportChildrenData public string Description { get; set; } public IEnumerable Img { get; set; } public IEnumerable Child { get; set; } + } + + public class ReportProjectData + { + public string Name { get; set; } + public int? Id { get; set; } + public string Description { get; set; } + public int AnnotationId { get; set; } + public int? ReportId { get; set; } } public class ChildImgData @@ -240,9 +255,11 @@ public class GrandChildData [BindProperty] public int[] SelectedFragilityTagIds { get; set; } [BindProperty] public ReportObjectDocTerm NewTermLink { get; set; } [BindProperty] public Term NewTerm { get; set; } + [BindProperty] public DpReportAnnotation DpReportAnnotation { get; set; } [BindProperty] public ReportManageEngineTicket ManageEngineTicket { get; set; } public ReportData Report { get; set; } public List ReportFragilityTags { get; set; } + public List ReportTags { get; set; } public ReportObjectImagesDoc RemovedImage { get; set; } public IEnumerable ReportTerms { get; set; } public IEnumerable ViewerReportTerms { get; set; } @@ -253,7 +270,7 @@ public class GrandChildData public IEnumerable ReportParents { get; set; } public IEnumerable ManageEngineTickets { get; set; } public IEnumerable Groups { get; set; } - public IEnumerable RelatedProjects { get; set; } + public IEnumerable RelatedProjects { get; set; } public async Task OnGetAsync(int? id) { @@ -353,6 +370,10 @@ from rfi in tmp.DefaultIfEmpty() where r.ReportObjectId == id select new ReportFragilityTagData { Name = r.FragilityTag.FragilityTagName, Id = r.FragilityTagId }).ToListAsync(); + ReportTags = await (from r in _context.ReportObjectTagMemberships + where r.ReportObjectId == id + select new ReportTagData { Name = r.Tag.TagName, Id = r.TagId }).ToListAsync(); + var report_terms = await (from r in _context.ReportObjectDocTerms where r.ReportObjectId == id @@ -402,9 +423,10 @@ join r in _context.ReportObjectDocTerms on ggc.ChildReportObjectId equals r.Repo }).ToListAsync(); ViewerReportTerms = report_terms.Union(child_report_terms).Union(grandchild_report_terms).Union(great_grandchild_report_terms).Distinct().Select(x => new ReportTermsData { Name = x.Name, Id = x.Id, Summary = x.Summary, Definition = x.Definition }).ToList(); - ReportTerms = report_terms.Select(x => new ReportTermsData { Name = x.Name, Id = x.Id, Summary = x.Summary, Definition = x.Definition, ReportId = id }).ToList(); - - + ReportTerms = report_terms.Select(x => new ReportTermsData { Name = x.Name, Id = x.Id, Summary = x.Summary, Definition = x.Definition, ReportId = id }).ToList(); + + + ReportQuery = await (from r in _context.ReportObjectQueries where r.ReportObjectId == id select new ReportQueryData @@ -513,37 +535,62 @@ from gc in nc.ChildReportObject.ReportObjectHierarchyParentReportObjects } }).ToListAsync(); - ReportParents = await (from p in _context.ReportObjectHierarchies - where p.ChildReportObjectId == id - && p.ParentReportObject.ReportObjectTypeId != 12 - && (p.ParentReportObject.ReportObjectDoc.Hidden ?? "N") == "N" - && p.ChildReportObject.DefaultVisibilityYn == "Y" - orderby p.Line, p.ParentReportObject.EpicMasterFile, p.ParentReportObject.Name - select new ReportChildrenData - { - Name = p.ParentReportObject.DisplayName, - Id = p.ParentReportObjectId, - Img = - from img in p.ParentReportObject.ReportObjectImagesDocs - orderby img.ImageOrdinal - select new ChildImgData - { - Src = "data/img?id=" + img.ImageId, - Id = img.ImageId - }, - }).ToListAsync(); - + var ReportParentsPartOne = await (from p in _context.ReportObjectHierarchies + where p.ChildReportObjectId == id + && p.ParentReportObject.ReportObjectTypeId != 12 //Personal dashboard + && (p.ParentReportObject.ReportObjectDoc.Hidden ?? "N") == "N" + && p.ChildReportObject.DefaultVisibilityYn == "Y" + orderby p.Line, p.ParentReportObject.EpicMasterFile, p.ParentReportObject.Name + select new ReportChildrenData + { + Name = p.ParentReportObject.DisplayName, + Id = p.ParentReportObjectId, + Img = + from img in p.ParentReportObject.ReportObjectImagesDocs + orderby img.ImageOrdinal + select new ChildImgData + { + Src = "data/img?id=" + img.ImageId, + Id = img.ImageId + }, + }).ToListAsync(); + + + var ReportParentsPartTwo = await (from gc in _context.ReportObjectHierarchies + join ggc in _context.ReportObjectHierarchies on gc.ChildReportObjectId equals ggc.ParentReportObjectId + where ggc.ChildReportObjectId == id + && ggc.ChildReportObject.EpicMasterFile == "IDN" + && gc.ParentReportObject.EpicMasterFile == "IDB" + && (gc.ParentReportObject.ReportObjectDoc.Hidden ?? "N") == "N" + select new ReportChildrenData + { + Name = gc.ParentReportObject.DisplayName, + Id = gc.ParentReportObjectId, + Img = + from img in gc.ParentReportObject.ReportObjectImagesDocs + orderby img.ImageOrdinal + select new ChildImgData + { + Src = "data/img?id=" + img.ImageId, + Id = img.ImageId + } + }).ToListAsync(); + + ReportParents = ReportParentsPartOne.Union(ReportParentsPartTwo).Select(x => new ReportChildrenData { Name = x.Name, Id = x.Id, Img = x.Img }).ToList(); + RelatedProjects = await (from p in _context.DpReportAnnotations where p.ReportId == id orderby p.Report.Name - select new ReportChildrenData + select new ReportProjectData { Name = p.DataProject.Name, Id = (int)p.DataProjectId, - Description = p.Annotation + Description = p.Annotation, + AnnotationId = p.ReportAnnotationId, + ReportId = p.ReportId }).ToListAsync(); - + ViewData["RelatedProjects"] = RelatedProjects; Permissions = UserHelpers.GetUserPermissions(_cache, _context, User.Identity.Name); ViewData["Permissions"] = Permissions; @@ -785,6 +832,126 @@ public async Task OnPostNewDocumentation() return Content("success"); } + public async Task OnGetDeleteLinkedProject(int id) + { + + var checkpoint = UserHelpers.CheckUserPermissions(_cache, _context, User.Identity.Name, 28); + var ta = _context.DpReportAnnotations.Where(x => x.ReportAnnotationId == id).FirstOrDefault().ReportId; + if (checkpoint) + { + _context.DpReportAnnotations.Remove(_context.DpReportAnnotations.Where(x => x.ReportAnnotationId == id).FirstOrDefault()); + await _context.SaveChangesAsync(); + } + + var MyUser = UserHelpers.GetUser(_cache, _context, User.Identity.Name); + + + ViewData["RelatedProjects"] = await (from r in _context.DpReportAnnotations + where r.ReportId == ta + join q in (from f in _context.UserFavorites + where f.ItemType.ToLower() == "project" + && f.UserId == MyUser.UserId + select new { f.ItemId }) + on r.ReportId equals q.ItemId into tmp + from rfi in tmp.DefaultIfEmpty() + orderby r.Rank, r.Report.Name + select new ReportProjectData + { + AnnotationId = r.ReportAnnotationId, + Id = r.DataProjectId, + Name = r.DataProject.Name, + Description = r.Annotation, + ReportId = r.ReportId, + }).ToListAsync(); + //return Partial((".+?")); + return new PartialViewResult() + { + ViewName = "Editor/_CurrentProjects", + ViewData = ViewData + }; + } + + public async Task OnPostAddLinkedProject() + { + var checkpoint = UserHelpers.CheckUserPermissions(_cache, _context, User.Identity.Name, 28); + if (ModelState.IsValid && DpReportAnnotation.DataProjectId > 0 && DpReportAnnotation.ReportId > 0 && checkpoint) + { + if (!_context.DpReportAnnotations.Any(x => x.ReportId == DpReportAnnotation.ReportId && x.DataProjectId == DpReportAnnotation.DataProjectId)) + { + _context.Add(DpReportAnnotation); + + // update last update date on report. + _context.DpDataProjects.Where(d => d.DataProjectId == DpReportAnnotation.DataProjectId).FirstOrDefault().LastUpdateDate = DateTime.Now; + _context.DpDataProjects.Where(d => d.DataProjectId == DpReportAnnotation.DataProjectId).FirstOrDefault().LastUpdateUser = UserHelpers.GetUser(_cache, _context, User.Identity.Name).UserId; + await _context.SaveChangesAsync(); + } + } + + var MyUser = UserHelpers.GetUser(_cache, _context, User.Identity.Name); + + ViewData["RelatedProjects"] = await (from r in _context.DpReportAnnotations + where r.ReportId == DpReportAnnotation.ReportId + join q in (from f in _context.UserFavorites + where f.ItemType.ToLower() == "project" + && f.UserId == MyUser.UserId + select new { f.ItemId }) + on r.ReportId equals q.ItemId into tmp + from rfi in tmp.DefaultIfEmpty() + orderby r.Rank, r.Report.Name + select new ReportProjectData + { + AnnotationId = r.ReportAnnotationId, + Id = r.DataProjectId, + Name = r.DataProject.Name, + Description = r.Annotation, + ReportId = r.ReportId, + }).ToListAsync(); + + return new PartialViewResult() + { + ViewName = "Editor/_CurrentProjects", + ViewData = ViewData + }; + } + + public async Task OnPostEditLinkedProject() + { + + var checkpoint = UserHelpers.CheckUserPermissions(_cache, _context, User.Identity.Name, 28); + if (ModelState.IsValid && DpReportAnnotation.ReportAnnotationId > 0 && checkpoint) + { + var q = _context.DpReportAnnotations.Where(x => x.ReportAnnotationId == DpReportAnnotation.ReportAnnotationId).FirstOrDefault(); + q.Annotation = DpReportAnnotation.Annotation; + q.Rank = DpReportAnnotation.Rank; + await _context.SaveChangesAsync(); + } + + var MyUser = UserHelpers.GetUser(_cache, _context, User.Identity.Name); + + ViewData["RelatedProjects"] = await (from r in _context.DpReportAnnotations + where r.ReportId == DpReportAnnotation.ReportId + join q in (from f in _context.UserFavorites + where f.ItemType.ToLower() == "project" + && f.UserId == MyUser.UserId + select new { f.ItemId }) + on r.ReportId equals q.ItemId into tmp + from rfi in tmp.DefaultIfEmpty() + orderby r.Rank, r.Report.Name + select new ReportProjectData + { + AnnotationId = r.ReportAnnotationId, + Id = r.DataProjectId, + Name = r.DataProject.Name, + Description = r.Annotation, + ReportId = r.ReportId, + }).ToListAsync(); + + return new PartialViewResult() + { + ViewName = "Editor/_CurrentProjects", + ViewData = ViewData + }; + } public async Task OnPostAddTermLink() { if (!ModelState.IsValid) diff --git a/web/Pages/Reports/_Details.cshtml b/web/Pages/Reports/_Details.cshtml index 360a0026..24384e21 100644 --- a/web/Pages/Reports/_Details.cshtml +++ b/web/Pages/Reports/_Details.cshtml @@ -25,8 +25,8 @@
@if (@m.Report.OldName != null) { - Report Name - @m.Report.OldName + Report Name + @m.Report.OldName } Report Type @@ -69,7 +69,7 @@ Report Requester @m.Report.Requester } - + @if (m.Report.OpsOwner != null) { Operational Owner @@ -88,29 +88,30 @@ @if (m.Report.RecordViewerUrl != null) { @: - } + } @m.Report.EpicMasterFile  @if (m.Report.EpicId != null) { - @m.Report.EpicId - @if (@m.Report.EpicTemplateId != null) - { - @:(Template @m.Report.EpicTemplateId) - } - - } + + @m.Report.EpicId + @if (@m.Report.EpicTemplateId != null) + { + @:(Template @m.Report.EpicTemplateId) + } + + } @if (m.Report.RecordViewerUrl != null) { - @: - } + @: + } } - + Atlas Id @m.Report.Id - + @if (m.Report.Orphaned == "Y") { Orphaned? @@ -130,7 +131,8 @@ @if (m.Report.Hyperspace == "Y") { @:Yes - } else + } + else { @:No } @@ -193,6 +195,24 @@ } } + + @if (m.ReportTags.Count > 0) + { + var length = m.ReportTags.Count; + var counter = 0; + Report Tags + + @foreach (var tag in m.ReportTags) + { + @if (counter == (length - 1)) + { + @tag.Name + } + else + { + @tag.Name, }counter++; + } + }
diff --git a/web/Pages/Reports/_Edit.cshtml b/web/Pages/Reports/_Edit.cshtml index 2be1083f..e0025303 100644 --- a/web/Pages/Reports/_Edit.cshtml +++ b/web/Pages/Reports/_Edit.cshtml @@ -32,6 +32,7 @@ Images Description Terms + Projects Details Service Requests @@ -47,6 +48,9 @@
+
+ +
diff --git a/web/Pages/Reports/_Query.cshtml b/web/Pages/Reports/_Query.cshtml index df932932..77e82f90 100644 --- a/web/Pages/Reports/_Query.cshtml +++ b/web/Pages/Reports/_Query.cshtml @@ -39,7 +39,7 @@ { @foreach(var t in Model.ComponentQuery) { -

@t.Name (@if(t.Url != "" && t.Url != null){@t.EpicName}else {@t.EpicName})

+

@t.Name (@t.EpicName)

@t.Description

diff --git a/web/Pages/Reports/_Relationships.cshtml b/web/Pages/Reports/_Relationships.cshtml index a09a826a..3e7bcd76 100644 --- a/web/Pages/Reports/_Relationships.cshtml +++ b/web/Pages/Reports/_Relationships.cshtml @@ -60,11 +60,11 @@ @foreach (var child in Model.ReportChildren) {
- @child.Name [@child.EpicMasterFile] + @child.Name @if (child.EpicMasterFile is not null){[@child.EpicMasterFile]}
if (child.Img.Count() == 1) - { + {
Image loading..
@@ -101,12 +101,12 @@ @foreach (var subchild in child.Child) {
- @subchild.Name [@subchild.EpicMasterFile] + @subchild.Name @if (subchild.EpicMasterFile is not null){[@subchild.EpicMasterFile]}
@foreach (var supersubchild in subchild.GrandChild) { -
@supersubchild.Name [@supersubchild.EpicMasterFile]
+
@supersubchild.Name @if (supersubchild.EpicMasterFile is not null){[@supersubchild.EpicMasterFile]}
} } } diff --git a/web/Pages/Search/Index.cshtml b/web/Pages/Search/Index.cshtml index 053024cb..94384232 100644 --- a/web/Pages/Search/Index.cshtml +++ b/web/Pages/Search/Index.cshtml @@ -129,6 +129,8 @@ {@result.EpicReleased} @if (result.EpicReleased == "High Risk") {@result.EpicReleased} + @if (result.EpicReleased == "Self-Service") + {@result.EpicReleased} @if (result.Orphaned > 0) {Orphaned} diff --git a/web/Pages/Search/Partials/_Filters.cshtml b/web/Pages/Search/Partials/_Filters.cshtml index ab04152e..53c902a2 100644 --- a/web/Pages/Search/Partials/_Filters.cshtml +++ b/web/Pages/Search/Partials/_Filters.cshtml @@ -51,7 +51,7 @@
- checked="checked" } value='4,18' /> + checked="checked" } value='4,18' />
@@ -61,15 +61,20 @@
- checked="checked" } value='36,38' /> + checked="checked" } value='36,38' />
- checked="checked" } value='37' /> + checked="checked" } value='37,41' />
+
+ checked="checked" } value='23' /> + + +
Category
diff --git a/web/Pages/Shared/_Layout.cshtml b/web/Pages/Shared/_Layout.cshtml index c26ffc11..89562447 100644 --- a/web/Pages/Shared/_Layout.cshtml +++ b/web/Pages/Shared/_Layout.cshtml @@ -21,13 +21,14 @@ - + +@inject IConfiguration Configuration -@RenderSection("css", required: false) +@RenderSection("css", required: false) @@ -44,19 +45,22 @@ else } -@if(@ViewData["SiteMessage"] != null && @ViewData["SiteMessage"].ToString() != "") +@if (@ViewData["SiteMessage"] != null && @ViewData["SiteMessage"].ToString() != "") {
- +

@ViewData["SiteMessage"].ToString()

- +
}
- + @if (@Configuration["banner_text:site_message"] != null && @Configuration["banner_text:site_message"].ToString() != "") + { +
@Configuration["banner_text:site_message"]
+ }