From 45ab6ef8415e112423a354b429fd657e1d258cb4 Mon Sep 17 00:00:00 2001 From: oolidu Date: Sun, 25 Jun 2023 21:47:38 -0400 Subject: [PATCH 01/30] =?UTF-8?q?verificaci=C3=B3n=20de=20conexi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e78340d..b057d196 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Data Lovers -## Índice +## ÍndiceAAA * [1. Preámbulo](#1-preámbulo) * [2. Resumen del proyecto](#2-resumen-del-proyecto) From 99c78c3160f2b297ff40d8fae82060e963fd7791 Mon Sep 17 00:00:00 2001 From: oolidu Date: Sun, 25 Jun 2023 22:03:21 -0400 Subject: [PATCH 02/30] =?UTF-8?q?verificaci=C3=B3n=202=20de=20conexi=C3=B3?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b057d196..5337a5f9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Data Lovers +# Data LoversSSS ## ÍndiceAAA From 2b11cb83a01f5364d292ac4b855bcd3820687e81 Mon Sep 17 00:00:00 2001 From: Cpizarro12 Date: Mon, 26 Jun 2023 11:30:31 -0400 Subject: [PATCH 03/30] prueba cambios --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5337a5f9..54bc5d50 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ *** -## 1. Preámbulo +## 1. Preámbulo--CAMBIO Según [Forbes](https://www.forbes.com/sites/bernardmarr/2018/05/21/how-much-data-do-we-create-every-day-the-mind-blowing-stats-everyone-should-read), el 90% de la data que existe hoy ha sido creada durante los últimos dos años. From 363b900f82dbebb5242fe7fc455c9f59a7e33775 Mon Sep 17 00:00:00 2001 From: oolidu Date: Tue, 27 Jun 2023 19:38:07 -0400 Subject: [PATCH 04/30] =?UTF-8?q?estructura=20html/CSS=20con=20men=C3=BA?= =?UTF-8?q?=20desplegable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 7515 +++++++++++++++++++++++++++ src/imagenes/2-removebg-preview.png | Bin 0 -> 28947 bytes src/imagenes/fondo 7.jpg | Bin 0 -> 23453 bytes src/imagenes/letras.png | Bin 0 -> 13822 bytes src/imagenes/pngwing.com.png | Bin 0 -> 104522 bytes src/index.html | 73 +- src/style.css | 132 + 7 files changed, 7718 insertions(+), 2 deletions(-) create mode 100644 package-lock.json create mode 100644 src/imagenes/2-removebg-preview.png create mode 100644 src/imagenes/fondo 7.jpg create mode 100644 src/imagenes/letras.png create mode 100644 src/imagenes/pngwing.com.png diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..2105e3ae --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7515 @@ +{ + "name": "data-lovers", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "data-lovers", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.6.2", + "@babel/plugin-transform-modules-commonjs": "^7.6.0", + "babel-jest": "^27.0.1", + "eslint": "^8.3.0", + "gh-pages": "^3.1.0", + "htmlhint": "^1.0.0", + "jest": "^27.0.1", + "opener": "^1.5.1", + "serve": "^13.0.2" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", + "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", + "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", + "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@zeit/schemas": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", + "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", + "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001508", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz", + "integrity": "sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clipboardy/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/clipboardy/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clipboardy/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/clipboardy/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/clipboardy/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.440", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.440.tgz", + "integrity": "sha512-r6dCgNpRhPwiWlxbHzZQ/d9swfPaEJGi8ekqRBwQYaR3WmA5VkqQfBWSDDjuJU1ntO+W9tHx8OHV/96Q8e0dVw==", + "dev": true + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", + "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.43.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "dev": true, + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlhint": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz", + "integrity": "sha512-tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==", + "dev": true, + "dependencies": { + "async": "3.2.3", + "chalk": "^4.1.2", + "commander": "^9.1.0", + "glob": "^7.2.0", + "is-glob": "^4.0.3", + "node-fetch": "^2.6.2", + "strip-json-comments": "3.1.0", + "xml": "1.0.1" + }, + "bin": { + "htmlhint": "bin/htmlhint" + } + }, + "node_modules/htmlhint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/htmlhint/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "node_modules/htmlhint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/htmlhint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/htmlhint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/htmlhint/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/htmlhint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlhint/node_modules/strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlhint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz", + "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serve": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.4.tgz", + "integrity": "sha512-Lj8rhXmphJCRQVv5qwu0NQZ2h+0MrRyRJxDZu5y3qLH2i/XY6a0FPj/VmjMUdkJb672MBfE8hJ274PU6JzBd0Q==", + "dev": true, + "dependencies": { + "@zeit/schemas": "2.6.0", + "ajv": "6.12.6", + "arg": "2.0.0", + "boxen": "5.1.2", + "chalk": "2.4.1", + "clipboardy": "2.3.0", + "compression": "1.7.3", + "serve-handler": "6.1.3", + "update-check": "1.5.2" + }, + "bin": { + "serve": "bin/serve.js" + } + }, + "node_modules/serve-handler": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", + "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", + "dev": true, + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tr46/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-check": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", + "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "dev": true, + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/src/imagenes/2-removebg-preview.png b/src/imagenes/2-removebg-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..d69214f26f7282ef52972f6e2cb960b2a49dc7da GIT binary patch literal 28947 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 literal 0 HcmV?d00001 diff --git a/src/imagenes/fondo 7.jpg b/src/imagenes/fondo 7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b27296e541b89a5c729962adcb7226b4c1d89a92 GIT binary patch literal 23453 zcmeFZV|=Ag(=NJV+fF97HL-2mwrx%(oR|~awr!ge+s2&ypXYt|-si(PPxhDnY4^%6 zxqo+GbyeNHdR2E<)ym)HzuN#rNl^(=01yxmK>YIs_`3!W0)T^pfrEj9gM)!XK!8I+ zBSJ$%K|!O!BfuhJpkiWTprWH=# z1OWj74GE0`4UIy9jgC$6zuo@!0+1j<0H6R6pl<+RBp?tZpuhb98~_ji806F1|Jgvn zfI+~4AU->>Kkt9`{jZ(CAfP~C;D1*Euppm;h#-gn01%um;s2EWzgPc9MgRofjjc;( zB3fsg<9|aRM527FH-+_Pl6vAXJpR+E?URL?1M%-MW@1{%La*Id6n5k3$Z44gbDul-3OV%|wbdM`;ln2uCC8cj z%yzSKwdJ+}PnR@2xTRC*c#EsC^Y+(82{9d4zD+VUrRNKN>3OM*vq2K;GvOB$Kzl`C zvl}wK=mP*L5}j)fDyiY(0MsVgE6#Ol+On4)Q+K#`yWplRZS9dEPyAmXBvu|VzR!(t z3Aof5^I=1NUWZRlO~ycdBzK4t$^Mk5ra5Vy8*{-`iLFbH)=i!Q{paR?YAhE+zh<<| zl^Sy<85r7C)A4^CsSEp4rT2_!fpS{S5L40Kj~L;j^#b!-!ni ziD#d;|B?L<4V1Eh)gof0io6P%&0QAf&g;+}>>|vC&OO1#|0@bX@ggrs8XK&9k2A4SU*8Xq%F(n z_>xf%I`C+iygzepW1Tu|OkC!3gvzSRqUvqZPL?G06MYhQlPE>y((i4bwMA09zeWyG z^n>e}>Z52vqk{)&oKG13*S#xKRSVu+UU7E&hAl4_3?}FM_b4?qls~;~#y97;zEOVx zbjbc+VTWj3PZZ9oU5xVHzc@2r`t@_N$mszs@uK^;T2AR-z$lKxUF!83OoUVkZX$-< zsLb9AyjFRLsjg+?XzOoD!b~TZqqwrZev6y0C`0zXuvLl_tP|~*VG-O;l8QxU>JVzhA^6Qaw?}8>(l{zPxYAes{2#6flIbhL6y(_IQ`6U z#{Zx7!Pw44oz;4ZBR$<1gKM^*wc?VP-T`;u9DBk$#;9Omf0&Q4HhGjeK>0V8xT34A zzjrKqZ}SG+_V<40pR)GAeq)%~`_Ebc=o>{)D|>g(Xg! za+IqM37!qeG`LH79{B!%d5e=Lk7U!cPOmL{redOe@C^-(bo;HF?EkC>EaWeM(^bbVMSX0NmG$sE=r7=i53TF zF1S|x#meoDU&|qE~6$5fy}ytUSY0AO}nvulZn^fvb z*GzN@FO#7ZzhpWN4UtUGok9A-F}a%h(eZ(%n+J@dyZO5Tjp)|nl^i9%5slqfl zC}-R&c4tg#)6$=1n76NuOFSKS4EsrMX59-fS9ufoGIRYH4dZVSvXa<+dna`Ok<8Kp zM{OZi1YGluFMei`>r^_#SB!?pf6wyT^C@<;O0(&xs_?k@jo&uqJyuGpb53sNe{cl= zPKQD|FUKv3;lrt3J!5-Y{?d75rOKN=jk~G_03WSGx7L1g8tr?LiDPL~hLyu}+a{Fc z4`!{QU|r5N&c4&77mUsQr9BEDj;_wsPPJSAg@JvyWRuRK%0t%k0n5TgXZA6r<2K8m zyLE+Pgib-DZH8DhSFFX_ZWKh{%p%8uUCcaBI#Fnq^cu<_#z=W~KZO+pebUCc!q{ zzr@IMJ3H?F7hn&-(pEgEyhoQ~EN$veP=DQ3L|xs#221n@KdTx0T$cZ9PfhT7u%|-= z00RMof`I~qd>-)s(E{{&1&WA-tPh4lNW}DwfsvV*1(k#!jZ`4}^RN&383OVp;!>2X=ztoQptN)3jF_!9X!{AIJzr_5Tx-R9M1pxZ z<%$gWW#~5onqCqeM-npitnVY$GBPYhR`+4PCUoJkH}A867111&Y<8yAXwhOzApVFZ zg*{g|3i({;;PO!jK>lvCM#)Z$M-*N7$YIP`HQ_)sRtbmhxK&xkP4jKZDgYE#`G6g7 z=I*t6V5EMh=9ca$-Lie>+R?@YJGb#?dKjd3`MwUaa@?VDNd||&y)9RjqwclxmzVoD+FvUqB2zbbw(ftsB~a!9kB70^97?k@6flq71W2)l%~z=h(Ss-}~!R%aV`lLo0nX zG%&XzH%Iac@@bhJ+@P%4O1-SfM7!RDrf8S#?r3xJniaoE^92sYOU{l(?gPT^L>Tn@ zbT)ybUu~6^%0Ts-SG4I8$1TZSBBF`wij9e(JZQw0-V($1 zyNUM>HAj6RzL#z6%bSev=`r-m=Y`zNmr4X8ZRX9DOw0|v-N)^ZX0JGde07f6jdp>J zjwR!hUJDuRr@Ca!wY_XJ}JQk}z?!!#!&M_8DUq2N~qed47DH|CjIpiZVB-iilaL`)os zX2~jJuu6d;Xr>uurZE?)dBAE(o*$XlfQEgfGrFsoo9u$E7EY!pT0m#FJ4eTen>F?D z4cqu+xPn;IIQ92mR!A z04u|c9cmNZ(-8L$`Sr3Hzz-XsB2ghlklz{Hsli2s|Gb%&pvSKPgKFXxYE0osYLA}GJPiupNfnV+mLl_ z`iGO3%UH}LOL_G^#2*fwSX%R!Nl2B2AVl+~2U@Ec+imZXFFCHw3a6} ztVoko?O1D!!^V@U(Bi#bD2+m4jb&P03nw~#R=1!T{eS)f>Qt)_gKr#XD-v#gktz@_ zU}3$=?ock*)MnfYM6T+T36~ z<2{miJ!Pu`IZ0bBmL-=k#Ga1OL=mp!lK>~9>)G_=U^2%Ycc-lMWj-E0mY)TBeFeU5 z^USHAT;7Dl2rV)1amoJyIxH8qm2>>Gs1G|Wi@_(@iJCcAcr&73!9LYz!qj$m zuA1E4;j0V7v=i3T(RRPOJssS0D}HmZQ;w?)8QlHH7QFTe(4FwHDHhej{n@t!3(#pb?7; zC8b!*h5FeUQ<4|4XADtJY(pH^Ew`C2Lg9uK(tkn*pyU@lW(egkr@>G0Mk7N??u{I| zRAzw>!1C-wF>)in3ydb2qT!bA!L4BL2a8cMW|-mW3YAVK(Tb0%pPud&LcS*>n_~_%yopJGyLrbj`bKpwj>C~ zmfV}c{zEv9344dMSLVq4LBG-p0@n5EI}P5{>R97tj**U^acdY@1;VQYPC~okXNEow z^LdRJAmk4uSVcmxX*rw&Ek;*I)!uSOY9K5R+Q!T4u=&MHlD5Tb!a>bN_9l7j48yM| z?+x;=d{Ff1f|labFuFC}fMQ*Lb+7vnlFzBC+L{1)TnKpMWcq zWVF*$-v)W~Wv|#vL^dZVM`+36unl$3bE$Uww8Zm*`%(Y-gn$RxCsPgIYl8cQ?Dc!m zD|?2YnebnLovdNu=e3@h$k0j(?Z?9=+23;p1gDwRRJE(YzK z)Bb!H!S3hQj1dU{1Of~O36*0=T8wt{pXMI!M?V%$w>6$+ z%=N1;lhB7*75j}`VyI>0=5D$CiWD#uG74}BZV0j=Y?M7n_Hs?#LbGYt7tZ|WK%$(y zvu~7tJG(_CRuduR0wLv=zj`Oacn@rJyS14p(N&s}%6^xDd*oE8 zqU_(EsuO9kmUBmTcO#^N!^Fah{9}e;xyT3Wo%~n6tpy^x7@|Fn+q@?NsSLSv{EPCI zIet%&*AEo}>lYGsrMk&YsppR(EXCoP?9z7Ztf1^cx30;vN;d>d~~f@m8a{ z#wVc@Xtrfgev01N-%z$WDhiUf^R~r-a1r369?aY~(GCtRGOl$i4gZqqcRtPXA)H#v*fMu8GC~O(NfNj1Eh6W0UAZsOzzb1Z*M} zT|^Nfd0Eb==9<21M2YQ2zt6!%(gtlwp)1keOB1E$THv;;QZlNog?rzEihy5%XA3Fm z#fW%JEB7hYk19z`!h0ANFDBxB=c9#6EwV*LqTV8nh3453XwYE4H<}&h7bC}0YWrKN zS9lF&B8g`__VHew8%1O*F0@gtb?~qxqA%04%d(%=_y{0ov<6)XXGw>9DP{M z$=%!b3EGsq$L&oCSD~xOe(o}-RLl+`yhAn1Tqb&GYZ+dSS-9)<=e;#)2hwaD{N5X3 z7;JwAI84~~{+Nn_e=sDbu2~zg*(r{5@7z^7(^c;TTPj278-A`Rm$+g~d> z1)Ps6JjLhTNE8oIbeeF^!NudH=%IxDyx6)-z}^tuoJ9)B6dxqxDl zPJom$LZ&ywNa8VLVNuhYVc~o+n&*-E@sa%LSSbH-ET7ri&okeDC3HU%xJV#~jL3vU z@=T!L7z9uhhy@k>|K(7C|LsuP3dApUujWrGxj=?xDn8o6RNv_*6_`ghmy&i^SA!oK zs4Ta=oj39y5`Vvob<1&CeAimxI7aCh@X7V4=H3iA;G*i}TKCW_pH1@+9_GI(es)!v zLTb)(YodyGho~*NV0KFpg4}hNmO&)0p{l~4@obUq<#?hztaFH`AWD=MmwvJ^t1UHX z#2~(yoZK!kc2&VCMU&&1!bwBpBU)LoYjuN^&+WZOGj76ez)fhv;E8joel)Vs^LIjaCQ;e&+IX7p9o#2Zt>14mh-Y-uWT zTQX5BOpxAZEm)Q*#2S%x&HbJDT^J?^@-;ZPj|d6APA7j9+~dsZnaa7rQ64}Qv(R04 z<1akW6WliiwbB9Mr#sm6tLP7!+B=v`{D|zR<3d9Qxo&EhE30D{2^+AL3+iq`87ZGR zqfs>$UWn+hv}ry7Q)Oz_vLpetSW`8f-G&coWr1mL{(3aAbT!FM;R-K~(I7;L3$VO4 zeSKD%VpCn}Vdo&zfq*~S@*;z5z(tk)LD|7bYHnFP&G4hn?)c4%YJ!<6_K`S2i=|5Z zwL+!$&mFfH4H6HYhJs~j+c>_o7wkShvTsQ`a;hCr(wZfo> z47!I6CF-X0vhWQwoi00`8KN+bOd|cW4JHq!IVW*Lk6O&WpX_aCC|D(edQd;U>)y7Q zDo?R3&hJ4YR@XdZW}5qAQ!A`Gys1S9-LU~^2*Q8sQyi5=Nf4Sg*VnS-bzTymZw}31Hp%?{-MA*Ga*jWbxu|TgXT2>|CD0j_F(fOe!8gviCaj zJQAeu-byvM(P51ne%k^=Nj=P(*L5Qa1o^{mJ#>p$%agkWkzuf&&5p;&LG|ZHvr5c7 zk+Ii6*4v*5yUY<5uR(=6*JyCS(a{S2+fDkR~jz5#t19N1ggO^ zTcNZogoycumgC4qOAhMBFnA3x{IxynR*6~8h)f5kSlB-I;ggW#wF$^*y=kuZN{%Ua z0y_~@Hu0Fj7?`YfgSH3;uIxT3D?WeZ{Hp2P=tZIO%_zj+K19Mdne_bfO z(!0{M%8>*3^?X!;QTQZ5@7M#Vdc)>EC_59=32aaY73i|r4iUvTXN1g&0pQ(ha(3ax z6Xj@jNPbIb`wywGcE-qM^BVOH;#yKEC!|t1tnANf8OyXKLtG5Ro+Zr+F^{bt06pA{ z`E3QEsC$V1rD5i3P3(Y!7FH%O953ptBbm{bJ9?CHvy&2!**Oe*q z5AV$KWNd7o3ZKZ*rd}t-k=QM{U&upFk@JaSTtjlInEj-qMs~hF=M0 zt$s53C2L&El#JP8Ax)H_rGc%LIq$u$&flpj34;P@Ilj%gg*i=ZhCZs`nzftm5_U;r zpu!w;XB#k2cTKCX%;LwBQcJoi;c1p|p%Kp-$mRrtnwGS1sH0K+1*EK}Pt{i7+*Gm~ zB;c9bTa$ST#twoXy zC3kui3h6LA`{9u44}$hq#}1KVA1hZrYtbiPHhNJS+$u|?`LqGAxPVX~eFv*A(IcI` zFpz8JCJB%CTtUFNfxN)#z&)!DMkJ8WAtoM_S%C!U@#@cWBrIh)gF2ONX(5L6)kdUgAjmiX`^K_OH|ewv?-2c_L8XI- z-Do2_L7P_|;`Kc;Zo}z0(kAn5|6NovSSY_V-10|9zrLFmR(4QkcG_P+0%-h?Yx~lW zq7X5(r3W27V_`D;9~-JhoAj5$gxp0Q&0vQfipm>B$5H7n%z{ANuFddjk#+21nG5|3 z$E>pebHr;v`erhT0^~Z~N9CBzlE?xdMaOcYrcgi7;*Q9+tYrB|#Gq8EWr(3Fsl;fh zS7$WwCNCZ6_3A#9W@$*opk;xQy9AQGU^XopECaiFnFgo{%4}`QzE+dsEBWBT&t>*eGO4Xt zxJzmZ(xVw(lzH)-iT`5CtAeVPazAlIY+zc!^aul#{FP8t(#T~@$T?b}*`TlRkexKX z#64P^9TsRKV9BhCCp$x{#-*#LV|Y9GDf}!Q2u0ioJCM?_t%2VFl52z+N0xO& z>_$Or_LMsa)QwM*i5=^3n>rgZReOxh2{D~m1A->UxL&e?;H; zh&~stKLe{DmCzp(ep*@O)LhVWb+nw>eDw$}P{lBpOeNyiOC( zx@wo$H4H`JHN)41f-IU4zSgOTXlAd8zuz44wA7YZq4U9PXd&JfZOf`yfZ4#`yTwU2m_itc)*d9dXN>QG*}naS4l)@JZk_o?LavGnPu$z7l7i^*>bO7QgK<}OCgBBZO;<>}p@hmf2~VC-(dZ#tbG?@dK!>1CnzEd-6Rd+8;Q9II%N(}2>v zt#a@O)mM&($^A& z(2T)p>*8;=Pm7BdJxt4$Pc&q!c}vd`(bYWdZfDpJmBvwPEqK($G>o?j93pV5A7=1) z$iBGV^`2{kjO%I*9%(eNH8QQnYQ_zQYrs_3Q$9YYW#K;8$7o09#_{wRJhL5%UKhq_ z8lbZZraL@~3mCPT#+aNbqz%5*_OU!1>_o)-b{MOQVaK|+se}lwOxE-vyKVmI?25a2 z5(V*0Ygn`+r+!lr1T1-z6HoNr%^a?NF2GTJqM5m9=!{CzMBrf>-oa18&VP z(^4xMm0y)EL0r~S#RyqaYYdj;<^~IK7}Xr9-jpcIPSSo<9mFb9IQ5Y_bBC=a#!;?8 zo=jsU-j^AKn2rU*wKo7;WWr>O$6+JxU^085EeWfZ9PqGr7NGESJ?Xo{qu(5kwQ8qwm7invIl5! zflqIzqF&&3*J;VQtb2q#+e+kG0y*d9;8qxM;j|Z;Hji{uF8)@2!rH^oSj8BXsQ4~I zdYhIRmc^w&0HGJC9`bSi`VXt+zh$3#U3DEEO6gFzW`)R7fE3&q+qMt&#` z_c!oEi1tIU`?(Rzc`Pv_PiAU55S|3*gkQ3boQtAu4QX@}aPl@gxio(Pwm^_8L*yB; z+e!N0XE1ktOI-{2}$0hFy5CE5n}(q{U(@Ar^&%qBPeTjEt6#h?O!>7kX%}x@=m~lin%2fDW|_-(wensbr=AknDw_>^C`YU}$C z_QK|fBsUA4IXsTV;@|3%aR%r~*u?xsJOkgd1?BBnHfxD|iX{>?t&J}X0B($#8mUg) zkS=vE%Ea@2*Z=?_gCbx;yVQO|CW1X#uMpm=nf46-PCt5rX?eBB!grJdwo#=jja|tw zK&?%zt`pyu!HY(IfJj#KZ5aMmO{fDv{6O0T?mQ{PRxdN`yIGN05nc7C&ZM|DK=wNL zQT60pp2EnWfW|`mTaj7=KzKolI6$e$BP4tNw!Cv4TYCs@EjmH@^+a0>d0$cf1>+z! z=T=kw0;d!J3@(Z+NAEdKDuNim+2&V2g63rZG2mwv_@pOePs>VWW9)Nv8z8G^6e2OM z*SvDd!m^wqX!C^a4-T)~`P%y*+}bGh861b1_gxB}N@5CE5ErbbD5zXv zTVkc%e)q8$I?{?-H7-uBQ(H(@uLsAAhPoxLts_A!qP<6PMs z0tg@vHo2@V(2XiV(}hoz;o{LX?@V)^re5RKRB6iEDzHI^jZoay$;Vfy(b8@@S7Znx zwO+)q29$^5qZBmn?E;+W<(79bJwg>@eqRe`nzFXl^NZt#rs(O_^pR~&T^87dHmvQ< zpygUsz&?p(z}ZH@BTy$y{sj~TxF3M#FjGt&c^UvB0Qs3wwoj+Q87_8@VPfbd@9}p` z0|L}wxF4%xq#cL%eFc(??I z2R%;3fq~Qmor1@$ap9_ChLLSEw?9xonMly`9r#v-ZdGx1lRV-f-AE%HXr#|04-69G9WoZp9Hg!L8s?8w zuA-}Cj6(mAlekq zShIn8S-xz`4-T9gG-}P-Od&R!^x#Q%DA@N91=r8F)7^Q_YeJ3tadTMAN zr{{@Tw45Bnw=0<91=0@9grnT+X>@jV_Iz!poI=VxP!5b^lH{Pho9c8yZ=I0^en8)) zrWBVRn~90d0>QHc8%6h;Ze_7lODf#cIc0Ae~C<1*(9G2y>JJyEJ8hqFPgO zOe2d)6`b~BP4!fdFbSj-zpFr`0L|a@KN$Ws(buNXv#i!FS^Le@09{=<7_$e0sSY79 zK7sr69XRY)2?P%%$pC#ws>?z98gWpiC=WjaXQ?D5)lBpPihNm$JgTXg+NpAQuNVy2 zFPoWM;w(8|%LuJM;_DHPq!=ex!k$a!QmeU(d}9~E;DZD!(3!0!{;%M1s7@S2n*9rF z$x~^;7}CaS0!lpeJ-{b29*7p*h8h{LMt1lqJ77$bk^q+j{{#-gq~l)WHG=SL4T0|_ z8Z>Miq^uU38Soez?h3Y$#i)yiELfNJUde|rgQrH{Tulp@u0Vt0Es^1kaFH=g<9Von zhwa7>yxbA&QzWo==XZNAV6LEgQasjO4;);2Tzy5EcTeqm=~Dt>LdKZM#~96-*-QnnLa{e~crGyW|ia2b&-StzSUl=TA#npXMAg9SQ*K zTQo}msT`)HSl!~BY$dnMJ&cPSywFu$_XkEi7aWX}d0rxfY*x=t$@EPCl51wmX+36! zj`N{8@&S|gWn0r`VHWbBq8)Juc4(se|Z|+r7hm8#m>&xpZEB}LdUOxSu_sr(l324FnNq`P# z{#48ghc68_qk}7@hosr=z^zjd=6HwX_&uXKX*Nu{7(}YapG6ZIeiX~aTKEfis>LCE zxwqe+(W`%b-v;ncMhNlsvh)A`{2v{GvyZv|oiSg$b^n(755HAg5Y;-SKAD^2{{!-0 z+E4By5DWhT{xPLg>nj46n2>~_Z~x%g>A!@}fh7#w?pwZP**N?XzQgUPm$!WfjFwC7 zOZZOTHaJknK50hYuTJ07<>F2oNJfIM;wSB38I`+{$@RWuPkq^i3mB%YJ}C&qSMbLh zx0B(hc|AuQLNIp!dQ1NQrOrLQiHT$x`sA+q;1IrmzhK=S9_wZ3L%@1Q2YiF)t~l%iGS+%6_juoI>QkxAMaQAt5;uw zNqkDjj9~e`WY6nm3L(YLoX_py)|c#gJq2MQ^ze`Bll%QO{7GLm+A}P0HyqyA@Y{X5 zXh5(WLvW6~UwPiw6QMQ#C|HJRSX!Si;eYkPPoIBIIRMAoSMV>feeg#@^$dM9JicGS zza9#~0U^FI^p$_@{d&C=f@Kf{N9-&9(tQ3LLl9UFL0G35|F6yG&+&m}5j)Qbf@S~s zxBZ{tRVt*<+&19<6=1Og^~UOARga( zf|QsqeJ!e=e4j@2+u6|aeluMP1Bqq`E@Ky_WYdUvD6OI@ZFB_;J zAC)AEO*&Dx0(bZwLS+nBf_4H`9{=(*8xOFp@Hz7OBR#F8r0{`?HTlBb54mBpXv*J$ zNsECm5m5XW04E2L3I+r@Q6Mfwc;ptw4g0jfZk7sJxzgPrVlyyW?M4paZF1CwJB)I2 zKgxYj@zxHVfv?hUsx=_DmKsPa7Y@7$+h3sHCw+~-$~EraRF*%rrtH-fuF^2J@!`aN z{~Jn@)tBgplU$U~PQVsy_dU6P`QwL-e7cHIc`Ye4m#$gz$#-n=qw5Hy5nm?G${@Iq z*FDKhR1i6ND(&PCe)FV4`82#P$G|0b$@gLljp(%%X2IyyPS^EMA#en-8J;=GRK97%aX9Dul^MJ(1}UJIpO#^?%8q3|6tg2Ht< zcmEB*|)q_XMVd=Bw z{Txx*?B2)Msje%~I?&o}2Ve?!PL*79C&dV_BHkI#2)zQ}h*(qcas!LB1Fxo1^v_-K zawcL}U)>Vlbfaw|fX78(UnyiPL}8rpagUJ?XT}j$K|_KWNsWvZvh7R5Jn<>$SC;Ce zhnD-~?H_19a(Zk+#NK%oDw&-?rj3P_)+8+k&3e|!r=+-K&-Kj+_d zdHOEzthj{D_QUqa!!B+W5U^Yy#9E%k9cStaw+nx~tN7Pc%(Z@cFFeR@6VhU2v-}I#`ZXy7YS-7m?1?kZRevvuSq7fYy7Bzc zLa&gFdCqh+ZIOWBNmbI^l#{2R=PNA|YCyX~g9Ev+D~S};$%|w>MlC`i$%n7j3vpRF z9E$-~&mE5C=AlOCZAW#M-aI?}WLZYjzOF@+B_nUK@8F$=k8h|-cC?sAHM5desK#9o zd}UrPS#f}Kmt`d_TsZkwT~2($;^<7}q9Or4ws-bcpKW@j7(1dvY??v@9KlJVu$%i+ z)b@uC4ohyAu3na?>}CD2b@82_Ki z%g@}U0pjP{N~r%&?vi2W>iU04UVeTEHn*VwgKE%{Q&vg_tIEr+EL^~M^5KGHogNxN z8eOLWmx@3a1S%w(BGDhHigAY$aM8$Bd6r?vM_xO!$fVU~@j;h|0(+F24z{RpgO}IO zbdcxXqLbcfpDF*;sfnkOU1*d!^eSO0RqZy{X85@qrk_9TNH&bs`*`W5m1c&r2!B$209nu;Y&s!g+S>1HaOS=c3)EraqkGZ4Y7|J&{O+f12@{C3jw=espb(HG56nmRU5v+1$b!%bBL@I|Bg?TE*M}+sIo90h5!mcFqx#F8o|Co}om~5g4lJ4-`>@+Mf#E@NOb6^fSd zBInVM(c+*Vi@}))ye(wWl?uu6?GnpP>_!M2v-|iXp`VHnW^|Qe9R)@)am%I@oy?1i zctIj%oKMilG!37IBN&pan{$59^DQ?M=zzawQsKBe99xzMabMKi}+#Hm2VDU5{w3Q|tzyG#0Qha~Hvk-;m4Unp^6 zGp82wwD)kOhVH}Do4#Z|c$sC?k?A$Uk1|c7DRkGcbU_%@r~FIXm*yR;((pupoqP8Y zg4ba`VqXiWo~JBb6!=B&^yhckkT4a}4~W?`ZfC1HgQfYW#AYmk${yc~4HRRDcyhDp zU|G)F8q)(GmDWJvj4=8LTVek4Zlq{;dmpC--!fS88v5NtR8Uc)I*62&6eyi>L3{-XwQmEQ&fe~)-Tfh1;-L#5sOB;Iw(d0))N12iZ!rPu zk(`Eim14oDfHLzR9onLbg8G_jls!3?v=7SpoHFr?bGV2DUEnV? zP@c)7rW3IGuEK;91?xQ?a7;J4l@cb~sgP1PoA?RHi4_+sao!(L_&?0d8joPc`O8a=+D{d$zcn8Pe_(TwmNao-i z`zXttU3?0wAdW({seD#l2AofThEw%VNbcGdqp-7FI4iB zJM!^gk|!Q;o<+6{Wd?LzRlXpMz3{)!b%yYng^V5Js@aT3mlsZ@03-TF5Ku#r>+5|6 zZf-X@LH;~^&XU>v2XPmPZZ`u5;y8$67LS@y>i!oYjf*>uXT`@K_V&Mz2w>A~hrF)S z*V#*H=Wd`vez-zgi%(Hz&-6@pKj%ziEF1`$!rCxiEhKkjqfAys^=Ed0$EG{K%ORVO zZi0IC3CbgX|6op8T#eaown`&T?3kG zR%K_tI*V<8B7`RWEh#%jqahIqf$ymVA!rQ>S4ZBhnF0>@KgOvecgm1aTT6kNye38e<^=X5Pii$#_G zoRaag;9lBm04u6;8Rcial+YPSEY|$D4})1Mya+EIhN#kh3>;ive5dX9tCqz;dvzRZ z*o)44uveC$=7(!&?KFX4Q%Z6#O>=(R_+CzzLVeL#60yjDK;p&JK%~vCr8G=$#8vGg z_wO0liYGq`uR1I)nkM(-J0JzObfsP6e*q5$NYc$Ue|y z$So*PsDM5bpDutOx)Cyc=6YcuEA%d`Z|#oAR;7A8T_1_q=O2)EV(;0LhYvhOimRyu_kCeME=`#Cgd44Zi8PM1`4JfT?<+@qzLf=HZD?O7)jv}nb6U> zta`X`_<<5kNPf-CM*|0QeA>)rZm_{Cd-|d^Wj6}*D?TV)T`T2%f9&cB->SF)!_atk zF>oEY<1|0%wyI4`yGsc6TOj6M)jwLScAhQVWNWpYvA--pvVJAxp<&20m> zLSFW#5(b#u`C){*3?$=p;veT2=< zE-XG{N(F;4EhVyU;#Jk&c+Du;T`f(E?-p^wz4PVAe7YRD$;UEDLM4v}5^;vwc&?uH zI^xZeT4W$g8dqB6N@B4V%Vmjd8b&S?Sj{FFd4R@I!}*yNn_{Z)((&;!etAJwsE^Gm zmqGuv)(aj@6l2xyEumKj&`s*3nPhtCz=Cnrga0S*3lQ{esq>ABL@U|La+~|%K21#; zob%jF`jOXxG(t|&zr6LOA)!5A1X+jqiV*-^Rw%1w4m8_W zr#qB_ZdZ=m8(?KYU5q&z3u$5w_!M%>0g!3;i;I2?HY?bJ+Js3U`FT_!JVRxhyt2zZ zDN8)2ZuG!ir19-3%6Yxq7+OzRPl7?|>X`QrWl3P#pvN zzk*{1uRdY_Cpu=CEFHD$LgD#*gZ%NrWBAi?E-M~4>TA2yt{-qggR z8K6bve^k!Mb0+l08E`aDssKbJHas`h7I}!u=)W8=gK(5F%*erpdKB>%N>_J;0Ne|z z#1$Q(EoT1!4coZ|Avnp{U*PRVMG&hw&`t^#yt_fj--9r)y4d~-EP=2dH=Qt(32V7A zKkYIYi@hGy0e`|?BO6z!o?$lNPVjs9e}wrgb z?ZVw9>0o?T6UKS%P1zN4m(ZYu_Fet!M@%7|CUX1 z(D{U;NC0rgUxI~A18~IK{I1J|l+KcDFHm|dwJB9qR%O04az^Mx!>H2zU8b3p5|&nP zGp#^XnASvl3Id~VDSnD`$wlU$bPy6uB>GSQ1QBEK$y}Hg?>!2Y41Olh_ zdK%QH18J~7ue~vHTu87b$2geYjUYHC0@~X}s{lpes%7B9k1Yj15_Y|RocIbNH<_St zN=Bfce;Osx9@K5-15OCrbp0(T=zUbRAS@Uy(*pQHv;}JggOJtM>yHA7Nh&jyJhC;% zNTtLY-q60S)r7Dn8Nb%4M>6lL9}O`C4UP-^l_TQ)()|7=;tKx&+SCOUaB=#0CkbIi z@jWcR;8MDIflEY@(JBFn0XUWu*R^8#Jz5NnD!6r`B;O&2mqXRgE^!hTg%KAMxo1um zi!hy_zpB<2*S?8IymR8@z+G6Vpis;9s0n9S!_oVt;+}MdhtyUidW~X9hZUxJwOoHr~F+?)S5`@l?i!=a-j>y4vV(vqS8^{d?EN9Ry0TwO7(fSO( zxRBGpD{Kl zxKrta+rUQ56J?8ZI25KCP2rDN;I5|y8Eep}41)t+d;%qM1*^jz?{D1zJ?806%9x2X z`fFXppJ%Ni!cGwpPz~m8Ju#sPxuv}|^cWeguLn=T>pncqD1;F)$agphZX|P);NZc9 z!7#IW3X{8#Ys!ET#noT46kxjd_pPK*k8cu`0_%}ZrW_4jU#U< zw|ALIY)rN&1c_D%kP`4S4uWn=?BNQta;^j?%^1G7gZUeN2FL~0uMrm2yWs=^Rk6E4 zXNC7INVQ)ME?{+JNZ`x~_G!Ue}8p+w07-2uUv^ z+%7D{M8w)4J(GqPI#Liqp)eazeUSF4E`}cUA=n=Z^}-Y0lnQ_`tP^Q}>(-1y3=IbU z0w(+*M+=ANhhe+1;=tZ~$P@ur16N7`B1NGS3%%vwV#>}!W74e&W}bhygF-0bY^wnx z8d_hE1PO?bHr~`Q7qHcgnU&?+4@yg7&?);L-iVVHdAm(M&q@Hp7=GysAO_i0gZUp? z(E$br2!l|1&&P}0dwGz6J*;tUCm2B`xRzQJOj>i8_6{DI?9ria4up?~!2p~}^taCl zHxH$}1|t3zgb5AShusoDAT;BH%k$#*p3j*H35e?lwDEAWJ)sp=vzK{zD>}>3qC+0? zd<$8WbaB5(?ZHnY{qNwA1%fq}j2Knkuh)Vs!aWD<@f%&2%!Lj^E_=qKW3Hr$&~MBG=hCMI5!}IkvEVzbM<-r%fs*0gv7M9qw*(158q?(t zxqhf_i4w-r+&4Rqd6i-?p%F8a28A zX?ra=uK1+{@9BZpb^>SDmUj|9;17gP1Y{y@u#N4}LOeUvjn$8}T)g7&MZORt+Py{j4@d?u#QU3?aqbPkMrJPr8R3yez` zq8%A{Jfav9$a6y@|*0DC`lFmE{{^Gh-=hf{C& zlx2Z(;XZZO9emb&#+tf#FAc(ZmiTzutaHBz1|p3c$7ZL6P!x$Wdm~UIGWS1pQCTeL z?Ljrje$A+F$S}l{*Og2urGk7?Bq4}?PXb7cMh^71H($#S@`b>_=rZM>FEw8Hziu-y z0PFFaQ<8`*@fY>ri}G>tQ%?Ip_@W7)oJzUGI#id49ixS|wLG8KDbz~mk;{Wo0QYou zqG1vfNXNko=sBO{RN`8LlINPHOh9$w1uP4Bxb=^EkOk~?{(KW?v3x!%El4^k^HCiD z8{jOR%lI$?vbGDCem3y~JxqT5B5G2aUP^>$GMYL2K4^=%&;E(oV;Tg+Z=6<-^%a_CEpejWXA-X@3#m~lcyZyk~zoSH$M!h2=|Ehp9Ci|9?uE?0P6|+ z_wzpX0Pp^IBANnTq4)2`%)-Z9et6p~Smi(EIQ|I)TvyBZd=UwDE^z$tYo&xWW9jQ# zo@RkWd>_w&Lq-*%Gc^L%l+iIgBZN7{`aj1TLjZb~ek&K?g9%ie%ln6hz*&Q*1xGM* zi+p*S3AFcrejDk>H;|ss0&D>fCYKQ;;SLv94}KCmf;o$PPX~m_b1n5qG?9;w(7oRU zywlAP6JX9~>Wm3jp9nC3i)PE(rdr|}3_UnTGg9i$&jxsTI<+bb+am=2%92Xk#pzz} zfWgnrCuegA{txjqgNWQ*m7}d9SPFG3CyUa(-vNow%|4*edevld(N# zz+>j0TzJeKOVsd>;>0P##LmDyC&7s4=A1r$Gb8;^ghuFpJ8*M69=pvj1&Bsw$AQTc z$n#DIGskx{_3)T(rS~{uq|7DpzeiS`Lp5&wd(@P6D6DqF#gF{M%_b*59AnA}Gbn|# zX>k2<1V9Ye0;0q&VS_cjIlLGY5-i3+hp&$lb@NGy_y8;qQ%6#qD5NtP(3S}}q~%U1 ZK{=WplfwrYa&mQ7=<)vm4uA50|Je-%x~2dC literal 0 HcmV?d00001 diff --git a/src/imagenes/letras.png b/src/imagenes/letras.png new file mode 100644 index 0000000000000000000000000000000000000000..19d668653e16ef6bfc0f25d230a48b571be012c5 GIT binary patch literal 13822 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˙hDYFgTbRh-NakxI?ZddcoYf zUZ<$R0vFP0O~p@~BnZak6T9YO)h(8WOvaWdAkdUvj}${*3mo!${-66j*3-hlUH_mv zYq;(v^{b>C+_Ao{c021nR>!ywlK@!Q37L@BFz^M`N)89ia4a z{3b0q($h)t6MwOwv9r{82%Z9KFK|80!wv{6tx>Uxt9l z*7tm)jsS0`Kj!4_7jwLI+l9I)=~g;iN~%N$3R3;OLjDMz1!%v&%1%V2J4WmS7+xM{}CiR-xylD2pN)$sk+K4vj3K@ zxwf^ZQJA3&5 zo+vBEN?Rx9bkE9lV`9zh1F7wiAI2OD(+HFHvvLi!11E{to-hRZiAJG`?t2ys{kWL5 zOK6&f&3lp+kb!lDP$YXth>wuMQiqK(oKH9PscFRbx7ZpPm5^u(!HhW<_u<@M35HA` z^a<%ezzB%y>5DXK+A+Ue>+BEh>p8Mc@LnSmOXoPnPmj<{nPNzP4Yl`fbqeo-@4*5m zGn}?UsD8q;yqF+QVWuhg_>V@@UZo96WPC!DNIkK1u}wQL+-9Wj+35nlznme=FL>gX zmWPLx7M##Er)NX33Ph!M8|`W9IvPTrP?(X8`vzuH39Svdq%Ca4h6CrR&!t>+v+>ee zt?7id@#05F3#r5Qm|$IH)A0rc+a-Rl6Y5f2aS9&M)N`GelSFU-y|;_s+XE{(WR>q) zg?(Mu&64QtSSxAb30JV2XtE+?DYl_4EQH9PiA$PA{%c`1b}E%DEsKhc@{{F2yz3%5 zK@h_jFh#UeD1fupSWU3omAt-=-cB(PuxO?jQ($6$BZ3Dpf{2bgWfDvBt*YD5r(QBB zkrZH}iiuqPU z5E!y>Q3k=ttsnYfo-)${2r)D5uM3)Zr-~IP`;Du_);Og+Lh^darTFPLPxA@q_@&?G zC0$`f$S|2Cl=XPlzV60}7j`iR`E;K8yvU8n01lWm7lkWgzb?)A$8ZvgnGa05lBef^ zNR_W4BfJMdBKYN9Mi?0uyx9!HhgcuO-l$;{x`Mh76%&l>jBChi=o7SciUCa4Ffhl! zO0g{nZ2&Vd6o2oD_)4V}Dc@BJ>49_)tZ=MVXB>i^E*4HWpPF%lyHJLUseWY9Qx5tw z@`Nb~OI$&N(ayB3l}+ZR)5nRHSQK+^V42%dDP3Q~7Uy*(g5~KwWY=6ES*(T?ha+cA zZd+FNv-l)Xrry9vI;QrxrP9bB*haF#lmhpZ%azHS(fOrhuYov1R9=7_;laWU;qkS^I*?_U_C}gG3N1n#a z{naSqDr=xQWKKDOS1+_^$u5R^WGc+56+*vemmS)nZG4^boyaK+|0jA3c?h;?lI!Y= zBpvU(;(c1Kb|Wql?ldOJYC?TeFor2Y!(h0QFcCh)Ex9)vrm!X%mE8d9|2LYg86TOl zu9#Ztkd=2?I#udvc!8{|Zb^$Z8Xi^TQJJctSop-LVi&lqL#vj`Izl*aK35!pM~b<4 z6^pq$AD+^I@4$my)G*gmrlDxXjIErIfr=OQga7=2gku)$(RG{33EVcJ2-J<3Ya9m+ zl46gyW{>Y=w|UloH4o{qxLv}>Dr?i!kH_F^002H%V@$2B*1bRugsI@J1CPUg8ry8$KjpEYpDLq2Y zAe|vMrfpIyi+QcgA()SokUQ= zl�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

V~#Mq7;fZh;phEr3A^@Z5kNfTMr5lhaMujU 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 literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html index 5aef81f0..d9e99864 100644 --- a/src/index.html +++ b/src/index.html @@ -5,8 +5,77 @@ Data Lovers + -

+ +
+ + + +
+ + + + +
+

Elaborado por Conny y Oli en Laboratoria

+
+ + + + + + - +- \ No newline at end of file diff --git a/src/style.css b/src/style.css index e69de29b..770a5dd3 100644 --- a/src/style.css +++ b/src/style.css @@ -0,0 +1,132 @@ +/* Estilos iniciales para que no tome los que tiene el navegador por defecto */ +/* "*" es un selector universal*/ +* { + margin: 0; + padding: 0; /* relleno */ + box-sizing: border-box; + font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; +} + +#logo{ + width: 400px; + height: auto; + margin: 0 auto; + display: block; +} + +nav{ + max-width: 900px; + margin: auto; + background-color: #333; + font-size: 20px; + margin-top: 50px; +} + +body{ + background: url(imagenes/fondo\ 7.jpg) no-repeat; /* no repeat */ + background-size: cover; /* La imagen de fondo se ajusta para cubrir todo el elemento */ +} + +/* Selecciona los elementos con la clase "menu-horizontal" */ +.menu-horizontal{ + list-style: none; /* Elimina estilos de lista predeterminados */ + display: flex; /* Los elementos de la lista se muestran en línea uno al lado del otro */ + justify-content: space-around; /* Los elementos se distribuyen equitativamente*/ +} + +/* Selecciona los elementos de ancla dentro de los elementos
  • que son hijos directos de elementos con la clase "menu-horizontal" */ +.menu-horizontal > li > a{ + display: block; + padding: 15px 20px; + color: white; + text-decoration: none; +} + +/* Selecciona los elementos
  • cuando se pasa el cursor por encima de ellos, dentro de elementos con la clase "menu-horizontal" */ +.menu-horizontal > li:hover{ + background-color: #44A6A6; /* Color de fondo cuando se pasa el cursor por encima*/ +} + +/* Selecciona los elementos con la clase "menu-vertical" */ +.menu-vertical{ + position: absolute; + display: none; /* El menú vertical está oculto por defecto */ + list-style: none; + width: 200px; + background-color: #44A6A6; +} + +/* Selecciona los elementos con la clase "menu-vertical" cuando se pasa el cursor por encima de los elementos
  • dentro de elementos con la clase "menu-horizontal" */ +/* hover: pasar el cursor por encima. en CSS se utilizan las pseudoclases :hover */ +.menu-horizontal li:hover .menu-vertical{ + display: block; /* Muestra el menú vertical cuando se pasa el cursor por encima de los elementos de la lista horizontal */ +} + +/* Selecciona los elementos
  • cuando se pasa el cursor por encima de ellos, dentro de elementos con la clase "menu-vertical" */ +.menu-vertical li:hover{ + background-color:rgb(255, 255, 255); /* Color de fondo cuando se pasa el cursor por encima de los elementos del menú vertical */ + cursor: pointer; /*Para que el cursor muestre la mano de selección no solo en el elemento
      , sino también en los elementos
    • dentro de él*/ +} + +/* Selecciona los elementos de ancla dentro de los elementos
    • dentro de elementos con la clase "menu-vertical" */ +.menu-vertical li a{ + display: block; + color: rgb(0, 0, 0); + padding: 15px 15px 15px 20px; + text-decoration: none; +} + +footer { + position: fixed; + bottom: 0; + width: 100%; + text-align: center; + font-weight: bold; + margin-bottom: 20px; + } + + + +/*.menu-vertical{ + position: absolute; + +} + +/*body { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + text-align: center; + background: url(imagenes/fondo\ 7.jpg) no-repeat center/cover; +} + +/* h1 { + align-items: ; +} + +#box { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: baseline; + min-height: 80vh; + width: 80vh; + max-width: 600px; + background-color: rgba(255, 255, 255, 0.5); + /*border: 4px solid rgba(255, 255, 255, 0.5); +} + +.button{ + font-size: 2rem; + font-weight: bold; + color: white; + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + width: 100%; + height: 80px; + margin: 15px 0; + background-color: rgb(20, 126, 90); +}*/ \ No newline at end of file From 357b815f8b1a975c3da7a25dafa1bee49558215c Mon Sep 17 00:00:00 2001 From: Cpizarro12 Date: Wed, 28 Jun 2023 17:34:09 -0400 Subject: [PATCH 05/30] cambios en css y html --- package-lock.json | 7515 +++++++++++++++++ .../png-transparent-studio-ghibli-hd-logo.png | Bin 0 -> 15756 bytes ...ind.com-my-neighbor-totoro-png-3661780.png | Bin 0 -> 52485 bytes src/images/pngwing.com.png | Bin 0 -> 104543 bytes src/index.html | 35 + src/main.js | 3 +- src/style.css | 44 + 7 files changed, 7596 insertions(+), 1 deletion(-) create mode 100644 package-lock.json create mode 100644 src/images/png-transparent-studio-ghibli-hd-logo.png create mode 100644 src/images/pngfind.com-my-neighbor-totoro-png-3661780.png create mode 100644 src/images/pngwing.com.png diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..2c4ff7a6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7515 @@ +{ + "name": "data-lovers", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "data-lovers", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.6.2", + "@babel/plugin-transform-modules-commonjs": "^7.6.0", + "babel-jest": "^27.0.1", + "eslint": "^8.3.0", + "gh-pages": "^3.1.0", + "htmlhint": "^1.0.0", + "jest": "^27.0.1", + "opener": "^1.5.1", + "serve": "^13.0.2" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", + "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", + "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "20.3.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", + "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@zeit/schemas": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", + "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", + "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001508", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz", + "integrity": "sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clipboardy/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/clipboardy/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clipboardy/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/clipboardy/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/clipboardy/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.441", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.441.tgz", + "integrity": "sha512-LlCgQ8zgYZPymf5H4aE9itwiIWH4YlCiv1HFLmmcBeFYi5E+3eaIFnjHzYtcFQbaKfAW+CqZ9pgxo33DZuoqPg==", + "dev": true + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", + "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.43.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "dev": true, + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlhint": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz", + "integrity": "sha512-tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==", + "dev": true, + "dependencies": { + "async": "3.2.3", + "chalk": "^4.1.2", + "commander": "^9.1.0", + "glob": "^7.2.0", + "is-glob": "^4.0.3", + "node-fetch": "^2.6.2", + "strip-json-comments": "3.1.0", + "xml": "1.0.1" + }, + "bin": { + "htmlhint": "bin/htmlhint" + } + }, + "node_modules/htmlhint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/htmlhint/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "node_modules/htmlhint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/htmlhint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/htmlhint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/htmlhint/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/htmlhint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlhint/node_modules/strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlhint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz", + "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serve": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.4.tgz", + "integrity": "sha512-Lj8rhXmphJCRQVv5qwu0NQZ2h+0MrRyRJxDZu5y3qLH2i/XY6a0FPj/VmjMUdkJb672MBfE8hJ274PU6JzBd0Q==", + "dev": true, + "dependencies": { + "@zeit/schemas": "2.6.0", + "ajv": "6.12.6", + "arg": "2.0.0", + "boxen": "5.1.2", + "chalk": "2.4.1", + "clipboardy": "2.3.0", + "compression": "1.7.3", + "serve-handler": "6.1.3", + "update-check": "1.5.2" + }, + "bin": { + "serve": "bin/serve.js" + } + }, + "node_modules/serve-handler": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", + "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", + "dev": true, + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tr46/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-check": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", + "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "dev": true, + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/src/images/png-transparent-studio-ghibli-hd-logo.png b/src/images/png-transparent-studio-ghibli-hd-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7332b628759165ccf0882be9c1b9653e98bdc7da GIT binary patch literal 15756 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 KMNUMnLSTZpIh4Wx literal 0 HcmV?d00001 diff --git a/src/images/pngfind.com-my-neighbor-totoro-png-3661780.png b/src/images/pngfind.com-my-neighbor-totoro-png-3661780.png new file mode 100644 index 0000000000000000000000000000000000000000..1313caca23cb88e2aae3efec9a5ae68d95fc2be6 GIT binary patch literal 52485 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 C#axsC literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html index 5aef81f0..6dacc272 100644 --- a/src/index.html +++ b/src/index.html @@ -6,6 +6,41 @@ +

      + +
      + + +
      +
      + +
      + + +
      diff --git a/src/main.js b/src/main.js index 71c59f2d..7b013886 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,7 @@ import { example } from './data.js'; // import data from './data/lol/lol.js'; -import data from './data/pokemon/pokemon.js'; +import data from './data/ghibli/ghibli.js'; // import data from './data/rickandmorty/rickandmorty.js'; + console.log(example, data); diff --git a/src/style.css b/src/style.css index e69de29b..1cf1101e 100644 --- a/src/style.css +++ b/src/style.css @@ -0,0 +1,44 @@ + + +body{ + max-width: 100%; + margin:0; + padding:0; + background-color: #71c8d6; +} +nav{ + max-width: 700px; + margin: auto; + background-color: #138287; + font-size: 20px; + margin-top: 50px; +} +.logo{ + width: 350px; + display: block; + margin: 0 auto; +} +.navegation-bar{ + list-style: none; + display: flex; + justify-content: space-between; +} +.navegation-bar > li{ + display: block; + padding: 10px 15px; + color: #ffffff; + text-decoration: none; +} +.navegation-bar > li:hover{ + background-color: red; +} +.vertical-menu{ + position: absolute; + display: none; + list-style: none; + width: 200px; + background-color: rgba(0, 0, 0, 0.5); +} +.navegation-bar li:hover .vertical-menu{ + display: block; +} From d02d8246f4bee6e36a98b059db2e9ffff73dc813 Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 28 Jun 2023 18:01:22 -0400 Subject: [PATCH 06/30] =?UTF-8?q?correci=C3=B3n=20de=20=20errores=20de=20s?= =?UTF-8?q?intaxis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/index.html b/src/index.html index d9e99864..56758ab1 100644 --- a/src/index.html +++ b/src/index.html @@ -24,24 +24,24 @@ Películas
    • Personajes
    • Curiosidades
    @@ -77,5 +77,6 @@

    Studio Ghibli

    --> + - \ No newline at end of file From c533411d7c2d81eef604194840fc30f0d6e9c150 Mon Sep 17 00:00:00 2001 From: oolidu Date: Thu, 29 Jun 2023 20:03:08 -0400 Subject: [PATCH 07/30] importe data ghibli --- src/data.js | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/index.html | 9 ++++++- src/main.js | 13 +++++++--- src/style.css | 6 +++++ 4 files changed, 90 insertions(+), 5 deletions(-) diff --git a/src/data.js b/src/data.js index 6291453d..44e982e9 100644 --- a/src/data.js +++ b/src/data.js @@ -7,3 +7,70 @@ export const example = () => { export const anotherExample = () => { return 'OMG'; }; + +//Ordenar alfabéticamente +export const orderByAlphabetical = (array, getter, order = 'asc')=> { + array.sort( (a, b) => { + const first = getter(a); + const second = getter (b); + //Compara los elementos + const compare = first.localeCompare(second); + //Devuelve la comparación en el orden que le pedimos + return order === 'asc' ? compare :-compare; + }) + return array; +} + +//Arreglo de people (aún no sé traerlo de la data así que pegué directamente el de una película) +const people = [ + { + "id": "fe93adf2-2f3a-4ec4-9f68-5422f1b87c01", + "name": "Pazu", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8b/Pazu.jpg", + "gender": "Male", + "age": "13", + "eye_color": "Black", + "hair_color": "Brown", + "specie": "Human" + }, + { + "id": "598f7048-74ff-41e0-92ef-87dc1ad980a9", + "name": "Lusheeta Toel Ul Laputa", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c3/Sheeta.jpg", + "gender": "Female", + "age": "13", + "eye_color": "Black", + "hair_color": "Black", + "specie": "Human" + }, + { + "id": "3bc0b41e-3569-4d20-ae73-2da329bf0786", + "name": "Dola", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/b/b3/Dola.png", + "gender": "Female", + "age": "60", + "eye_color": "Black", + "hair_color": "Peach", + "specie": "Human" + }, +] +//Muestra el nuevo arreglo en la consola +console.log(people); + + +const sortedPeople = orderByAlphabetical(people, person => person.name); +console.log(sortedPeople); + + +const personList = document.getElementById('person-list'); + + +sortedPeople.forEach(({ name, img, gender }) => { + const li = document.createElement('li'); + li.innerHTML = ` + ${name} +

    Name: ${name}

    +

    Gender: ${gender}

    + `; + personList.appendChild(li); +}); \ No newline at end of file diff --git a/src/index.html b/src/index.html index 56758ab1..8245ae46 100644 --- a/src/index.html +++ b/src/index.html @@ -50,6 +50,13 @@ +
    +
    +
    +
    + + +

    Elaborado por Conny y Oli en Laboratoria

    @@ -79,4 +86,4 @@

    Studio Ghibli

    -- \ No newline at end of file + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 7b013886..fdff7364 100644 --- a/src/main.js +++ b/src/main.js @@ -1,7 +1,12 @@ -import { example } from './data.js'; -// import data from './data/lol/lol.js'; +import { orderByAlphabetical } from './data.js'; + import data from './data/ghibli/ghibli.js'; -// import data from './data/rickandmorty/rickandmorty.js'; +// import { people } from './data/ghibli/ghibli.js'; + +console.log(example, data.films); +const ghibli = data.films; + +console.log(orderByAlphabetical (ghibli)) -console.log(example, data); +// console.log(people); \ No newline at end of file diff --git a/src/style.css b/src/style.css index cb734573..99b48be8 100644 --- a/src/style.css +++ b/src/style.css @@ -130,3 +130,9 @@ footer { margin: 15px 0; background-color: rgb(20, 126, 90); }*/ + +img { + width: 200px; + height: 150px; + + } \ No newline at end of file From e8f5834467bad9cf12bf3ae1e0694fd6a9bee7cc Mon Sep 17 00:00:00 2001 From: oolidu Date: Mon, 3 Jul 2023 15:04:37 -0400 Subject: [PATCH 08/30] se muestra data en el navegador --- src/data.js | 71 +++++++++++++++----------------------------------- src/index.html | 27 +++---------------- src/main.js | 39 ++++++++++++++++++++++----- src/style.css | 50 ++++------------------------------- 4 files changed, 61 insertions(+), 126 deletions(-) diff --git a/src/data.js b/src/data.js index 44e982e9..ccc68a0c 100644 --- a/src/data.js +++ b/src/data.js @@ -1,68 +1,39 @@ -// estas funciones son de ejemplo +//import { people } from './main.js'; -export const example = () => { - return 'example'; -}; +//Estamos usando JavaScript modular. Export e Import son declaraciones. +//El uso de export/import permite compartir elementos (variables, funciones, clases) entre diferentes archivos en un proyecto de JS +//Solo se agrega la declaración export antes de la declaración de la variable -export const anotherExample = () => { - return 'OMG'; -}; + + + +/*people.sort(); + +console.log(people);*/ + + + +/* //Ordenar alfabéticamente -export const orderByAlphabetical = (array, getter, order = 'asc')=> { - array.sort( (a, b) => { +export const orderByAlphabetical = (array, getter, order = 'asc') => { + array.sort((a, b) => { const first = getter(a); - const second = getter (b); + const second = getter(b); //Compara los elementos const compare = first.localeCompare(second); //Devuelve la comparación en el orden que le pedimos - return order === 'asc' ? compare :-compare; + return order === 'asc' ? compare : -compare; }) return array; } -//Arreglo de people (aún no sé traerlo de la data así que pegué directamente el de una película) -const people = [ - { - "id": "fe93adf2-2f3a-4ec4-9f68-5422f1b87c01", - "name": "Pazu", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8b/Pazu.jpg", - "gender": "Male", - "age": "13", - "eye_color": "Black", - "hair_color": "Brown", - "specie": "Human" - }, - { - "id": "598f7048-74ff-41e0-92ef-87dc1ad980a9", - "name": "Lusheeta Toel Ul Laputa", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c3/Sheeta.jpg", - "gender": "Female", - "age": "13", - "eye_color": "Black", - "hair_color": "Black", - "specie": "Human" - }, - { - "id": "3bc0b41e-3569-4d20-ae73-2da329bf0786", - "name": "Dola", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/b/b3/Dola.png", - "gender": "Female", - "age": "60", - "eye_color": "Black", - "hair_color": "Peach", - "specie": "Human" - }, -] -//Muestra el nuevo arreglo en la consola -console.log(people); - const sortedPeople = orderByAlphabetical(people, person => person.name); console.log(sortedPeople); -const personList = document.getElementById('person-list'); +const peopleList = document.getElementById('people-list'); sortedPeople.forEach(({ name, img, gender }) => { @@ -72,5 +43,5 @@ sortedPeople.forEach(({ name, img, gender }) => {

    Name: ${name}

    Gender: ${gender}

    `; - personList.appendChild(li); -}); \ No newline at end of file + peopleList.appendChild(li); +});*/ \ No newline at end of file diff --git a/src/index.html b/src/index.html index 8245ae46..1d3e2ea2 100644 --- a/src/index.html +++ b/src/index.html @@ -51,7 +51,7 @@
    -
    +
    @@ -60,30 +60,9 @@

    Elaborado por Conny y Oli en Laboratoria

    - - - - - - \ No newline at end of file + + diff --git a/src/main.js b/src/main.js index fdff7364..b8c473eb 100644 --- a/src/main.js +++ b/src/main.js @@ -1,12 +1,37 @@ -import { orderByAlphabetical } from './data.js'; - +//en este archivo se importar data y funciones desde diferentes archivos. También se hacen impresiones en la cónsola +//se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; -// import { people } from './data/ghibli/ghibli.js'; -console.log(example, data.films); -const ghibli = data.films; +//Método map() es una función de los arreglos en JS que ITERA sobre cada elemento del arreglo y crea un nuevo arreglo +const people = data.films.flatMap(film => film.people.map(person => ({ + name: person.name, + image: person.img +}))); +people.sort((a, b) => a.name.localeCompare(b.name)); +console.log(data, data.films, people); + +//export { people }; aún no se sabe cómo usarlo efectivame en data.js + + +const peopleList = document.getElementById('people-list'); +peopleList.innerHTML = ''; + +// Recorrer el arreglo ordenado y crear elementos HTML para cada persona +people.forEach(person => { + const personItem = document.createElement('div'); + const personImage = document.createElement('img'); + const personName = document.createElement('p'); + + personImage.src = person.image; + personName.textContent = person.name; + + personItem.appendChild(personImage); + personItem.appendChild(personName); + + peopleList.appendChild(personItem); +}); + + -console.log(orderByAlphabetical (ghibli)) -// console.log(people); \ No newline at end of file diff --git a/src/style.css b/src/style.css index 99b48be8..d5d377ce 100644 --- a/src/style.css +++ b/src/style.css @@ -85,51 +85,11 @@ footer { margin-bottom: 20px; } - - -/*.menu-vertical{ - position: absolute; - -} - -/*body { - display: flex; - justify-content: center; - align-items: center; - height: 100vh; - text-align: center; - background: url(imagenes/fondo\ 7.jpg) no-repeat center/cover; -} - -/* h1 { - align-items: ; -} - -#box { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: baseline; - min-height: 80vh; - width: 80vh; - max-width: 600px; - background-color: rgba(255, 255, 255, 0.5); - /*border: 4px solid rgba(255, 255, 255, 0.5); -} - -.button{ - font-size: 2rem; - font-weight: bold; - color: white; - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; - width: 100%; - height: 80px; - margin: 15px 0; - background-color: rgb(20, 126, 90); -}*/ + #people-list { + display: grid; + grid-template-columns: repeat(4, 1fr); /* 4 columnas */ + grid-gap: 20px; /* Espacio entre los elementos */ + } img { width: 200px; From 2064764322168c3c60a5cc79fc3fb57dbbef62d4 Mon Sep 17 00:00:00 2001 From: oolidu Date: Mon, 3 Jul 2023 15:14:07 -0400 Subject: [PATCH 09/30] comentarios sobre main.js --- src/main.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main.js b/src/main.js index b8c473eb..dc139949 100644 --- a/src/main.js +++ b/src/main.js @@ -2,8 +2,8 @@ //se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; - //Método map() es una función de los arreglos en JS que ITERA sobre cada elemento del arreglo y crea un nuevo arreglo +//Obtener la lista de personas ordenadas alfabéticamente const people = data.films.flatMap(film => film.people.map(person => ({ name: person.name, image: person.img @@ -13,11 +13,11 @@ console.log(data, data.films, people); //export { people }; aún no se sabe cómo usarlo efectivame en data.js - +//HTML de la lista de personas const peopleList = document.getElementById('people-list'); -peopleList.innerHTML = ''; +peopleList.innerHTML = ''; // Limpiar el contenido de la lista de personas -// Recorrer el arreglo ordenado y crear elementos HTML para cada persona +//Recorrer el arreglo ordenado y crear elementos HTML para cada persona people.forEach(person => { const personItem = document.createElement('div'); const personImage = document.createElement('img'); @@ -28,7 +28,6 @@ people.forEach(person => { personItem.appendChild(personImage); personItem.appendChild(personName); - peopleList.appendChild(personItem); }); From c3adcf0c7ec6a721d2ac9ad438947b35c03ccf43 Mon Sep 17 00:00:00 2001 From: oolidu Date: Tue, 4 Jul 2023 14:22:22 -0400 Subject: [PATCH 10/30] =?UTF-8?q?se=20vincul=C3=B3=20la=20data=20con=20el?= =?UTF-8?q?=20men=C3=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 5 +++-- src/main.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++++- src/style.css | 34 ++++++++++++++++++++++++++++-- 3 files changed, 91 insertions(+), 5 deletions(-) diff --git a/src/index.html b/src/index.html index 1d3e2ea2..3e1fbf0f 100644 --- a/src/index.html +++ b/src/index.html @@ -26,7 +26,7 @@
  • Por año
  • Por director
  • -
  • Orden alfabético
  • +
  • Orden alfabético
  • @@ -34,7 +34,7 @@
  • Curiosidades @@ -51,6 +51,7 @@
    +
    diff --git a/src/main.js b/src/main.js index dc139949..dc13b864 100644 --- a/src/main.js +++ b/src/main.js @@ -3,7 +3,7 @@ import data from './data/ghibli/ghibli.js'; //Método map() es una función de los arreglos en JS que ITERA sobre cada elemento del arreglo y crea un nuevo arreglo -//Obtener la lista de personas ordenadas alfabéticamente +//______PERSONAJES ORDENADOS ALFABÉTICAMENTE const people = data.films.flatMap(film => film.people.map(person => ({ name: person.name, image: person.img @@ -31,6 +31,61 @@ people.forEach(person => { peopleList.appendChild(personItem); }); +//______PELÍCULAS ORDENADAS ALFABÉTICAMENTE +const films = data.films.flatMap(film => ({ + title: film.title, + poster: film.poster +})); +films.sort((a, b) => a.title.localeCompare(b.title)); +console.log(films); +const filmsList = document.getElementById('films-list'); +filmsList.innerHTML = ''; +films.forEach(film => { + const titleItem = document.createElement('div'); + const titleImage = document.createElement('img'); + const titleName = document.createElement('p'); + + titleImage.src = film.poster; + titleName.textContent = film.title; + + titleItem.appendChild(titleImage); + titleItem.appendChild(titleName); + filmsList.appendChild(titleItem); +}); + +//______CLICK PELÍCULAS ORDENADAS ALFABÉTICAMENTE +const ordenAlfabeticoFilmsLink = document.getElementById('orden-alfabetico-films'); + +ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (peopleList.style.display !== 'none') { + peopleList.style.display = 'none'; + } + + if (filmsList.style.display === 'none') { + filmsList.style.display = 'grid'; + } else { + filmsList.style.display = 'none'; + } +}); + +//______CLICK PERSONAJES ORDENADOS ALFABÉTICAMENTE +const ordenAlfabeticoPeopleLink = document.getElementById('orden-alfabetico-people'); + +ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (filmsList.style.display !== 'none') { + filmsList.style.display = 'none'; + } + + if (peopleList.style.display === 'none') { + peopleList.style.display = 'grid'; + } else { + peopleList.style.display = 'none'; + } +}); diff --git a/src/style.css b/src/style.css index d5d377ce..da00e623 100644 --- a/src/style.css +++ b/src/style.css @@ -20,6 +20,7 @@ nav{ background-color: #333; font-size: 20px; margin-top: 50px; + border-radius: 20px; } body{ @@ -77,18 +78,47 @@ body{ } footer { + background-color: white; position: fixed; bottom: 0; width: 100%; + height: 3%; text-align: center; font-weight: bold; - margin-bottom: 20px; + padding: 10px; + } #people-list { - display: grid; + display: none; grid-template-columns: repeat(4, 1fr); /* 4 columnas */ grid-gap: 20px; /* Espacio entre los elementos */ + margin-top: 40px; + margin-bottom: 60px; + margin-left: 120px; + margin-right: 120px; + text-align: center; + font-weight: bold; + background-color: rgb(255, 255, 255, 0.5); + cursor: pointer; + border-radius: 40px; + padding: 30px 30px; + } + + #films-list { + display: none; + grid-template-columns: repeat(4, 1fr); /* 4 columnas */ + grid-gap: 20px; /* Espacio entre los elementos */ + margin-top: 40px; + margin-bottom: 60px; + margin-left: 120px; + margin-right: 120px; + text-align: center; + font-weight: bold; + background-color: rgb(255, 255, 255, 0.5); + cursor: pointer; + border-radius: 40px; + padding: 30px 30px; } img { From d4532c09eb2139238aedd625731a197ceda16522 Mon Sep 17 00:00:00 2001 From: oolidu Date: Tue, 4 Jul 2023 18:03:08 -0400 Subject: [PATCH 11/30] =?UTF-8?q?se=20cre=C3=B3=20funci=C3=B3n=20en=20data?= =?UTF-8?q?.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data.js | 42 ++++------------------------------------ src/index.html | 1 - src/main.js | 52 +++++++++++++++++++++++++++----------------------- src/style.css | 2 +- 4 files changed, 33 insertions(+), 64 deletions(-) diff --git a/src/data.js b/src/data.js index ccc68a0c..93a772c3 100644 --- a/src/data.js +++ b/src/data.js @@ -4,44 +4,10 @@ //El uso de export/import permite compartir elementos (variables, funciones, clases) entre diferentes archivos en un proyecto de JS //Solo se agrega la declaración export antes de la declaración de la variable - - - - -/*people.sort(); - -console.log(people);*/ - - - -/* -//Ordenar alfabéticamente -export const orderByAlphabetical = (array, getter, order = 'asc') => { - array.sort((a, b) => { - const first = getter(a); - const second = getter(b); - //Compara los elementos - const compare = first.localeCompare(second); - //Devuelve la comparación en el orden que le pedimos - return order === 'asc' ? compare : -compare; - }) - return array; +function orderByAlphabetical (array) { + const arrayOrdered = array.sort((a, b) => a.name.localeCompare(b.name)); + return arrayOrdered; } +export {orderByAlphabetical} -const sortedPeople = orderByAlphabetical(people, person => person.name); -console.log(sortedPeople); - - -const peopleList = document.getElementById('people-list'); - - -sortedPeople.forEach(({ name, img, gender }) => { - const li = document.createElement('li'); - li.innerHTML = ` - ${name} -

    Name: ${name}

    -

    Gender: ${gender}

    - `; - peopleList.appendChild(li); -});*/ \ No newline at end of file diff --git a/src/index.html b/src/index.html index 3e1fbf0f..c65cdf76 100644 --- a/src/index.html +++ b/src/index.html @@ -53,7 +53,6 @@
    -
    diff --git a/src/main.js b/src/main.js index dc13b864..dad14695 100644 --- a/src/main.js +++ b/src/main.js @@ -2,16 +2,19 @@ //se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; -//Método map() es una función de los arreglos en JS que ITERA sobre cada elemento del arreglo y crea un nuevo arreglo +import { orderByAlphabetical } from './data.js'; + +//Método map() y flatMap() son funciones de los arreglos en JS que ITERAN sobre cada elemento del arreglo y crea un nuevo arreglo + //______PERSONAJES ORDENADOS ALFABÉTICAMENTE const people = data.films.flatMap(film => film.people.map(person => ({ name: person.name, image: person.img }))); -people.sort((a, b) => a.name.localeCompare(b.name)); -console.log(data, data.films, people); - -//export { people }; aún no se sabe cómo usarlo efectivame en data.js +//people.sort((a, b) => a.name.localeCompare(b.name)); +const peopleOrdered = orderByAlphabetical (people); +console.log("estoy ordenando personas",peopleOrdered); +console.log("estoy mostrando la data", data, data.films, people); //HTML de la lista de personas const peopleList = document.getElementById('people-list'); @@ -31,14 +34,32 @@ people.forEach(person => { peopleList.appendChild(personItem); }); +//______CLICK PERSONAJES ORDENADOS ALFABÉTICAMENTE +const ordenAlfabeticoPeopleLink = document.getElementById('orden-alfabetico-people'); + +ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (filmsList.style.display !== 'none') { + filmsList.style.display = 'none'; + } + + if (peopleList.style.display === 'none') { + peopleList.style.display = 'grid'; + } else { + peopleList.style.display = 'none'; + } +}); + //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE const films = data.films.flatMap(film => ({ title: film.title, poster: film.poster })); + films.sort((a, b) => a.title.localeCompare(b.title)); -console.log(films); +console.log("estoy ordenando películas", films); const filmsList = document.getElementById('films-list'); filmsList.innerHTML = ''; @@ -71,21 +92,4 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { } else { filmsList.style.display = 'none'; } -}); - -//______CLICK PERSONAJES ORDENADOS ALFABÉTICAMENTE -const ordenAlfabeticoPeopleLink = document.getElementById('orden-alfabetico-people'); - -ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { - event.preventDefault(); // Evita que el enlace realice la acción predeterminada - - if (filmsList.style.display !== 'none') { - filmsList.style.display = 'none'; - } - - if (peopleList.style.display === 'none') { - peopleList.style.display = 'grid'; - } else { - peopleList.style.display = 'none'; - } -}); +}); \ No newline at end of file diff --git a/src/style.css b/src/style.css index da00e623..8269c048 100644 --- a/src/style.css +++ b/src/style.css @@ -122,7 +122,7 @@ footer { } img { - width: 200px; + width: 150px; height: 150px; } \ No newline at end of file From 44636f2f2b5e14f241505cd3a13624e9a2889c8c Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 5 Jul 2023 13:19:24 -0400 Subject: [PATCH 12/30] =?UTF-8?q?iniciamos=20orden=20films=20por=20a=C3=B1?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 7 +++++++ src/main.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/index.html b/src/index.html index c65cdf76..e525bdb9 100644 --- a/src/index.html +++ b/src/index.html @@ -51,8 +51,15 @@
    +
    +
    +
    +
    +
    +
    +
    diff --git a/src/main.js b/src/main.js index dad14695..a4b2310a 100644 --- a/src/main.js +++ b/src/main.js @@ -18,7 +18,7 @@ console.log("estoy mostrando la data", data, data.films, people); //HTML de la lista de personas const peopleList = document.getElementById('people-list'); -peopleList.innerHTML = ''; // Limpiar el contenido de la lista de personas +//peopleList.innerHTML = ''; // Limpiar el contenido de la lista de personas //Recorrer el arreglo ordenado y crear elementos HTML para cada persona people.forEach(person => { @@ -62,7 +62,7 @@ films.sort((a, b) => a.title.localeCompare(b.title)); console.log("estoy ordenando películas", films); const filmsList = document.getElementById('films-list'); -filmsList.innerHTML = ''; +//filmsList.innerHTML = ''; films.forEach(film => { const titleItem = document.createElement('div'); @@ -80,6 +80,51 @@ films.forEach(film => { //______CLICK PELÍCULAS ORDENADAS ALFABÉTICAMENTE const ordenAlfabeticoFilmsLink = document.getElementById('orden-alfabetico-films'); +ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (peopleList.style.display !== 'none') { + peopleList.style.display = 'none'; + } + + if (filmsList.style.display === 'none') { + filmsList.style.display = 'grid'; + } else { + filmsList.style.display = 'none'; + } +}); + + +//______PELÍCULAS ORDENADAS POR AÑO ('release_date') + +const filmsDate = data.films.flatMap(film => ({ + title: film.title, + poster: film.poster, + date: film.release_date +})); + +filmsDate.sort((a, b) => a.release_date.localeCompare(b.release_date)); +console.log("estoy ordenando películas por año", filmsDate); + +const filmsDateList = document.getElementById('films-list-year'); +//filmsList.innerHTML = ''; + +filmsDate.forEach(film => { + const dateItem = document.createElement('div'); + const dateImage = document.createElement('img'); + const dateName = document.createElement('p'); + + dateImage.src = film.poster; + dateName.textContent = film.release_date; + + dateItem.appendChild(dateImage); + dateItem.appendChild(dateName); + filmsDateList.appendChild(dateItem); +}); + +//______CLICK PELÍCULAS ORDENADAS POR AÑO ('release_date') +const ordenDateFilmsLink = document.getElementById('orden-alfabetico-films'); + ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada From 6e4b0c1e2c637c2002d93896ad9e031d182e0ca4 Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 5 Jul 2023 15:13:19 -0400 Subject: [PATCH 13/30] =?UTF-8?q?funci=C3=B3n=20ordenar=20films=20por=20a?= =?UTF-8?q?=C3=B1o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 2 +- src/main.js | 28 +++++++++++++++++----------- src/style.css | 17 +++++++++++++++++ 3 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/index.html b/src/index.html index e525bdb9..76b9f2dd 100644 --- a/src/index.html +++ b/src/index.html @@ -24,7 +24,7 @@ Películas diff --git a/src/main.js b/src/main.js index a4b2310a..7b295f16 100644 --- a/src/main.js +++ b/src/main.js @@ -40,12 +40,14 @@ const ordenAlfabeticoPeopleLink = document.getElementById('orden-alfabetico-peop ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada - if (filmsList.style.display !== 'none') { + if (filmsList.style.display === 'grid') { filmsList.style.display = 'none'; } if (peopleList.style.display === 'none') { peopleList.style.display = 'grid'; + filmsDateList.style.display = 'none'; // Oculta filmsDateList + } else { peopleList.style.display = 'none'; } @@ -83,12 +85,13 @@ const ordenAlfabeticoFilmsLink = document.getElementById('orden-alfabetico-films ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada - if (peopleList.style.display !== 'none') { + if (peopleList.style.display === 'grid') { peopleList.style.display = 'none'; } if (filmsList.style.display === 'none') { filmsList.style.display = 'grid'; + filmsDateList.style.display = 'none'; // Oculta filmsDateList } else { filmsList.style.display = 'none'; } @@ -100,7 +103,7 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { const filmsDate = data.films.flatMap(film => ({ title: film.title, poster: film.poster, - date: film.release_date + release_date: film.release_date })); filmsDate.sort((a, b) => a.release_date.localeCompare(b.release_date)); @@ -113,28 +116,31 @@ filmsDate.forEach(film => { const dateItem = document.createElement('div'); const dateImage = document.createElement('img'); const dateName = document.createElement('p'); + const dateYear = document.createElement('p'); dateImage.src = film.poster; - dateName.textContent = film.release_date; + dateName.textContent = film.title; + dateYear.textContent = film.release_date; dateItem.appendChild(dateImage); dateItem.appendChild(dateName); + dateItem.appendChild(dateYear); filmsDateList.appendChild(dateItem); }); //______CLICK PELÍCULAS ORDENADAS POR AÑO ('release_date') -const ordenDateFilmsLink = document.getElementById('orden-alfabetico-films'); +const ordenDateFilmsLink = document.getElementById('orden-date-films'); -ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { +ordenDateFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada - if (peopleList.style.display !== 'none') { - peopleList.style.display = 'none'; + if (filmsList.style.display === 'grid') { + filmsList.style.display = 'none'; } - if (filmsList.style.display === 'none') { - filmsList.style.display = 'grid'; + if (filmsDateList.style.display === 'none') { + filmsDateList.style.display = 'grid'; } else { - filmsList.style.display = 'none'; + filmsDateList.style.display = 'none'; } }); \ No newline at end of file diff --git a/src/style.css b/src/style.css index 8269c048..eb83ac9c 100644 --- a/src/style.css +++ b/src/style.css @@ -120,6 +120,23 @@ footer { border-radius: 40px; padding: 30px 30px; } + + #films-list-year { + display: none; + grid-template-columns: repeat(4, 1fr); /* 4 columnas */ + grid-gap: 20px; /* Espacio entre los elementos */ + margin-top: 40px; + margin-bottom: 60px; + margin-left: 120px; + margin-right: 120px; + text-align: center; + font-weight: bold; + background-color: rgb(255, 255, 255, 0.5); + cursor: pointer; + border-radius: 40px; + padding: 30px 30px; + } + img { width: 150px; From 4542c4ea49379b2bd8fd7ffd438b76afb8c33039 Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 5 Jul 2023 16:31:08 -0400 Subject: [PATCH 14/30] un solo click para historias con if --- src/index.html | 12 ++++++------ src/main.js | 32 +++++++++----------------------- 2 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/index.html b/src/index.html index 76b9f2dd..186810dc 100644 --- a/src/index.html +++ b/src/index.html @@ -25,23 +25,23 @@
  • Personajes
  • Curiosidades
  • diff --git a/src/main.js b/src/main.js index 7b295f16..2d1e717b 100644 --- a/src/main.js +++ b/src/main.js @@ -40,17 +40,11 @@ const ordenAlfabeticoPeopleLink = document.getElementById('orden-alfabetico-peop ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada - if (filmsList.style.display === 'grid') { - filmsList.style.display = 'none'; - } - - if (peopleList.style.display === 'none') { + if (peopleList.style.display === '' || peopleList.style.display === 'none') { peopleList.style.display = 'grid'; filmsDateList.style.display = 'none'; // Oculta filmsDateList - - } else { - peopleList.style.display = 'none'; - } + filmsList.style.display = 'none'; // Oculta filmsList + } }); //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE @@ -85,15 +79,10 @@ const ordenAlfabeticoFilmsLink = document.getElementById('orden-alfabetico-films ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada - if (peopleList.style.display === 'grid') { - peopleList.style.display = 'none'; - } - - if (filmsList.style.display === 'none') { + if (filmsList.style.display === '' || filmsList.style.display === 'none') { filmsList.style.display = 'grid'; filmsDateList.style.display = 'none'; // Oculta filmsDateList - } else { - filmsList.style.display = 'none'; + peopleList.style.display = 'none'; // Oculta peopleList } }); @@ -134,13 +123,10 @@ const ordenDateFilmsLink = document.getElementById('orden-date-films'); ordenDateFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada - if (filmsList.style.display === 'grid') { - filmsList.style.display = 'none'; - } - - if (filmsDateList.style.display === 'none') { + if (filmsDateList.style.display === '' || filmsDateList.style.display === 'none') { filmsDateList.style.display = 'grid'; - } else { - filmsDateList.style.display = 'none'; + filmsList.style.display = 'none'; // Oculta filmsList + peopleList.style.display = 'none'; // Oculta peopleList + } }); \ No newline at end of file From c1bb96f54dfdbbcab634fba8ac42a551b428b74f Mon Sep 17 00:00:00 2001 From: oolidu Date: Thu, 6 Jul 2023 11:18:16 -0400 Subject: [PATCH 15/30] =?UTF-8?q?avance=20filtro=20personajes=20por=20pel?= =?UTF-8?q?=C3=ADcula?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++++--- src/style.css | 15 ++++++++++++++ 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/src/main.js b/src/main.js index 2d1e717b..a660da50 100644 --- a/src/main.js +++ b/src/main.js @@ -9,7 +9,8 @@ import { orderByAlphabetical } from './data.js'; //______PERSONAJES ORDENADOS ALFABÉTICAMENTE const people = data.films.flatMap(film => film.people.map(person => ({ name: person.name, - image: person.img + image: person.img, + title: film.title }))); //people.sort((a, b) => a.name.localeCompare(b.name)); const peopleOrdered = orderByAlphabetical (people); @@ -40,10 +41,12 @@ const ordenAlfabeticoPeopleLink = document.getElementById('orden-alfabetico-peop ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada - if (peopleList.style.display === '' || peopleList.style.display === 'none') { - peopleList.style.display = 'grid'; + // if para el caso de que no se haya interactuado aún en la página y para el caso en el que haya interactuado érp peoplelist display=none + if (peopleList.style.display === '' || peopleList.style.display === 'none') { + peopleList.style.display = 'grid'; // Muestra peopleList filmsDateList.style.display = 'none'; // Oculta filmsDateList filmsList.style.display = 'none'; // Oculta filmsList + peopleFilmList.style.display = 'none'; } }); @@ -83,6 +86,7 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { filmsList.style.display = 'grid'; filmsDateList.style.display = 'none'; // Oculta filmsDateList peopleList.style.display = 'none'; // Oculta peopleList + peopleFilmList.style.display = 'none'; } }); @@ -127,6 +131,53 @@ ordenDateFilmsLink.addEventListener('click', function(event) { filmsDateList.style.display = 'grid'; filmsList.style.display = 'none'; // Oculta filmsList peopleList.style.display = 'none'; // Oculta peopleList + peopleFilmList.style.display = 'none'; + } +}); + +//______PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') + +const peopleFilm = data.films.flatMap(film => + film.people.map(person => ({ + name: person.name, + image: person.img, + film: film.title + })) +); + +peopleFilm.sort((a, b) => a.film.localeCompare(b.film)); +console.log("Estoy clasificando personajes por película", peopleFilm); + +const peopleFilmList = document.getElementById('people-list-film'); + +// Recorrer el arreglo ordenado y crear elementos HTML para cada personaje +peopleFilm.forEach(person => { + const personItem = document.createElement('div'); + const personImage = document.createElement('img'); + const personName = document.createElement('p'); + const personFilm = document.createElement('p'); + + personImage.src = person.image; + personName.textContent = person.name; + personFilm.textContent = person.film; + + personItem.appendChild(personImage); + personItem.appendChild(personName); + personItem.appendChild(personFilm); + peopleFilmList.appendChild(personItem); +}); + +//______CLICK PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') +const ordenPeopleFilmsLink = document.getElementById('orden-people-films'); + +ordenPeopleFilmsLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (peopleFilmList.style.display === '' || peopleFilmList.style.display === 'none') { + peopleFilmList.style.display = 'grid'; + filmsDateList.style.display = 'none'; + filmsList.style.display = 'none'; // Oculta filmsList + peopleList.style.display = 'none'; // Oculta peopleList } }); \ No newline at end of file diff --git a/src/style.css b/src/style.css index eb83ac9c..86aaaed5 100644 --- a/src/style.css +++ b/src/style.css @@ -137,6 +137,21 @@ footer { padding: 30px 30px; } + #people-list-film { + display: none; + grid-template-columns: repeat(4, 1fr); /* 4 columnas */ + grid-gap: 20px; /* Espacio entre los elementos */ + margin-top: 40px; + margin-bottom: 60px; + margin-left: 120px; + margin-right: 120px; + text-align: center; + font-weight: bold; + background-color: rgb(255, 255, 255, 0.5); + cursor: pointer; + border-radius: 40px; + padding: 30px 30px; + } img { width: 150px; From 7a24bafa544517f9ef1a7e896157e13c266399d6 Mon Sep 17 00:00:00 2001 From: oolidu Date: Thu, 6 Jul 2023 11:58:32 -0400 Subject: [PATCH 16/30] =?UTF-8?q?funciona=20personajes=20por=20pel=C3=ADcu?= =?UTF-8?q?la?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 6 +++--- src/main.js | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/index.html b/src/index.html index 186810dc..65c8da25 100644 --- a/src/index.html +++ b/src/index.html @@ -25,15 +25,15 @@
  • Personajes
  • diff --git a/src/main.js b/src/main.js index a660da50..2c30cc62 100644 --- a/src/main.js +++ b/src/main.js @@ -170,6 +170,8 @@ peopleFilm.forEach(person => { //______CLICK PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') const ordenPeopleFilmsLink = document.getElementById('orden-people-films'); +//const ordenPeopleFilmsName = document.getElementById('name-films'); + ordenPeopleFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada From 65f4f74c6247a931a2a5ca006844dea63fccf6f5 Mon Sep 17 00:00:00 2001 From: oolidu Date: Thu, 6 Jul 2023 15:20:53 -0400 Subject: [PATCH 17/30] funciones filmsDirector peopleFilm OK --- src/main.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/style.css | 17 +++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/src/main.js b/src/main.js index 2c30cc62..08f9918e 100644 --- a/src/main.js +++ b/src/main.js @@ -47,6 +47,7 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { filmsDateList.style.display = 'none'; // Oculta filmsDateList filmsList.style.display = 'none'; // Oculta filmsList peopleFilmList.style.display = 'none'; + filmsListDirector.style.display = 'none'; } }); @@ -87,6 +88,7 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { filmsDateList.style.display = 'none'; // Oculta filmsDateList peopleList.style.display = 'none'; // Oculta peopleList peopleFilmList.style.display = 'none'; + filmsListDirector.style.display = 'none'; } }); @@ -132,6 +134,7 @@ ordenDateFilmsLink.addEventListener('click', function(event) { filmsList.style.display = 'none'; // Oculta filmsList peopleList.style.display = 'none'; // Oculta peopleList peopleFilmList.style.display = 'none'; + filmsListDirector.style.display = 'none'; } }); @@ -180,6 +183,51 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { filmsDateList.style.display = 'none'; filmsList.style.display = 'none'; // Oculta filmsList peopleList.style.display = 'none'; // Oculta peopleList + filmsListDirector.style.display = 'none'; + + } +}); + +//______PELÍCULAS ORDENADAS POR DIRECTOR +const filmsDirector = data.films.flatMap(film => ({ + title: film.title, + poster: film.poster, + director: film.director +})); +const filmsListDirector = document.getElementById('films-list-director') + + +filmsDirector.sort((a, b) => a.director.localeCompare(b.director)); +console.log("estoy ordenando películas por director", filmsDirector); + +filmsDirector.forEach(film => { + const directorItem = document.createElement('div'); + const directorImage = document.createElement('img'); + const directorName = document.createElement('p'); + const directorDirector = document.createElement('p'); + + directorImage.src = film.poster; + directorName.textContent = film.title; + directorDirector.textContent = film.director; + + directorItem.appendChild(directorImage); + directorItem.appendChild(directorName); + directorItem.appendChild(directorDirector); + filmsListDirector.appendChild(directorItem); +}); + +//______CLICK PELÍCULAS ORDENADAS POR DIRECTOR ('director') + +const ordenDirectorFilmsLink = document.getElementById('orden-director-films'); + +ordenDirectorFilmsLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (filmsListDirector.style.display === '' || filmsListDirector.style.display === 'none') { + filmsListDirector.style.display = 'grid'; + filmsDateList.style.display = 'none'; + filmsList.style.display = 'none'; // Oculta filmsList + peopleList.style.display = 'none'; // Oculta peopleList } }); \ No newline at end of file diff --git a/src/style.css b/src/style.css index 86aaaed5..562631b4 100644 --- a/src/style.css +++ b/src/style.css @@ -153,6 +153,23 @@ footer { padding: 30px 30px; } + #films-list-director { + display: none; + grid-template-columns: repeat(4, 1fr); /* 4 columnas */ + grid-gap: 20px; /* Espacio entre los elementos */ + margin-top: 40px; + margin-bottom: 60px; + margin-left: 120px; + margin-right: 120px; + text-align: center; + font-weight: bold; + background-color: rgb(255, 255, 255, 0.5); + cursor: pointer; + border-radius: 40px; + padding: 30px 30px; + } + + img { width: 150px; height: 150px; From cbb6c81f1034959ab6a5c56f7c11e8d8c27533ae Mon Sep 17 00:00:00 2001 From: oolidu Date: Mon, 10 Jul 2023 10:26:46 -0400 Subject: [PATCH 18/30] avance responsive y filtro agePeople --- src/index.html | 5 +- src/main.js | 45 +++++++++++++-- src/style.css | 137 ++++++++++++++++++++++++---------------------- test/data.spec.js | 19 ++++++- 4 files changed, 133 insertions(+), 73 deletions(-) diff --git a/src/index.html b/src/index.html index 65c8da25..062aeb22 100644 --- a/src/index.html +++ b/src/index.html @@ -1,7 +1,8 @@ - + + Data Lovers @@ -50,7 +51,7 @@ -
    +
    diff --git a/src/main.js b/src/main.js index 08f9918e..0fc5b0ed 100644 --- a/src/main.js +++ b/src/main.js @@ -19,6 +19,7 @@ console.log("estoy mostrando la data", data, data.films, people); //HTML de la lista de personas const peopleList = document.getElementById('people-list'); +//const contenedorList = document.getElementById('contenedor'); //peopleList.innerHTML = ''; // Limpiar el contenido de la lista de personas //Recorrer el arreglo ordenado y crear elementos HTML para cada persona @@ -173,7 +174,7 @@ peopleFilm.forEach(person => { //______CLICK PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') const ordenPeopleFilmsLink = document.getElementById('orden-people-films'); -//const ordenPeopleFilmsName = document.getElementById('name-films'); +const ordenPeopleFilmsName = document.getElementById('name-films'); ordenPeopleFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada @@ -183,12 +184,12 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { filmsDateList.style.display = 'none'; filmsList.style.display = 'none'; // Oculta filmsList peopleList.style.display = 'none'; // Oculta peopleList - filmsListDirector.style.display = 'none'; + ordenPeopleFilmsName.style.display = 'none'; } }); -//______PELÍCULAS ORDENADAS POR DIRECTOR +//______PELÍCULAS ORDENADAS POR DIRECTOR ('director') const filmsDirector = data.films.flatMap(film => ({ title: film.title, poster: film.poster, @@ -230,4 +231,40 @@ ordenDirectorFilmsLink.addEventListener('click', function(event) { peopleList.style.display = 'none'; // Oculta peopleList } -}); \ No newline at end of file +}); + +/*//______PERSONAJES ORDENADOS POR GRUPO ETARIO ('age') +const agePeople = data.films.flatMap(film => + film.people.map(person => ({ + name: person.name, + image: person.img, + title: film.title, + age: film.age +})) +); +const peopleListAge = document.getElementById('people-list-age') + + +agePeople.sort((a, b) => { + if (a.age && b.age) { + return a.age.localeCompare(b.age); + } + return 0; +}); + console.log("estoy ordenando personajes por edad", agePeople); + +agePeople.forEach(person => { + const personItem = document.createElement('div'); + const personImage = document.createElement('img'); + const personName = document.createElement('p'); + const personAge = document.createElement('p'); + + personImage.src = person.image; + personName.textContent = person.name; + personAge.textContent = person.age; + + personItem.appendChild(personImage); + personItem.appendChild(personName); + personItem.appendChild(personAge); + peopleListAge.appendChild(personItem); +});*/ \ No newline at end of file diff --git a/src/style.css b/src/style.css index 562631b4..9d135d07 100644 --- a/src/style.css +++ b/src/style.css @@ -16,11 +16,13 @@ nav{ max-width: 900px; - margin: auto; background-color: #333; font-size: 20px; margin-top: 50px; border-radius: 20px; + padding: 5px 0; + margin-left: auto; + margin-right: auto; } body{ @@ -89,89 +91,96 @@ footer { } - #people-list { - display: none; - grid-template-columns: repeat(4, 1fr); /* 4 columnas */ - grid-gap: 20px; /* Espacio entre los elementos */ + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director { + background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; margin-left: 120px; margin-right: 120px; - text-align: center; - font-weight: bold; - background-color: rgb(255, 255, 255, 0.5); - cursor: pointer; - border-radius: 40px; - padding: 30px 30px; - } - - #films-list { - display: none; - grid-template-columns: repeat(4, 1fr); /* 4 columnas */ - grid-gap: 20px; /* Espacio entre los elementos */ - margin-top: 40px; - margin-bottom: 60px; - margin-left: 120px; - margin-right: 120px; - text-align: center; - font-weight: bold; - background-color: rgb(255, 255, 255, 0.5); + display:none; + flex-wrap: wrap; + gap: 30px; + padding: 30px; cursor: pointer; border-radius: 40px; - padding: 30px 30px; - } - - #films-list-year { - display: none; - grid-template-columns: repeat(4, 1fr); /* 4 columnas */ - grid-gap: 20px; /* Espacio entre los elementos */ - margin-top: 40px; - margin-bottom: 60px; - margin-left: 120px; - margin-right: 120px; text-align: center; font-weight: bold; - background-color: rgb(255, 255, 255, 0.5); - cursor: pointer; - border-radius: 40px; - padding: 30px 30px; + justify-content: space-between; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } - #people-list-film { - display: none; - grid-template-columns: repeat(4, 1fr); /* 4 columnas */ - grid-gap: 20px; /* Espacio entre los elementos */ + + /*#contenedor { + background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; margin-left: 120px; margin-right: 120px; - text-align: center; - font-weight: bold; - background-color: rgb(255, 255, 255, 0.5); + display:flex; + flex-wrap: wrap; + gap: 30px; + padding: 30px; cursor: pointer; border-radius: 40px; - padding: 30px 30px; - } - - #films-list-director { - display: none; - grid-template-columns: repeat(4, 1fr); /* 4 columnas */ - grid-gap: 20px; /* Espacio entre los elementos */ - margin-top: 40px; - margin-bottom: 60px; - margin-left: 120px; - margin-right: 120px; text-align: center; font-weight: bold; - background-color: rgb(255, 255, 255, 0.5); - cursor: pointer; - border-radius: 40px; - padding: 30px 30px; - } + justify-content: space-between; + }*/ img { width: 150px; - height: 150px; + height:fit-content; - } \ No newline at end of file + } + +/* Estilos para dispositivos con un ancho máximo de 768 píxeles */ + @media screen and (max-width: 930px) { + + #logo { + width: 250px; + + } + + nav { + max-width: 600px; + font-size: 14px; + padding: 2px 0; + margin-left: auto; + margin-right: auto; + word-spacing: -2px; + + } + + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director { + background-color: rgba(255, 255, 255, 0.5); + margin-top: 40px; + margin-bottom: 60px; + margin-left: 60px; + margin-right: 60px; + display:none; + flex-wrap: wrap; + gap: 15px; + padding: 30px; + cursor: pointer; + border-radius: 40px; + text-align: center; + font-weight: bold; + justify-content:center; + grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); + font-size: 70%; + } + + img { + width: 90px; + height:fit-content; + + } + + } + + +/* Estilos para dispositivos con un ancho máximo de 1199 píxeles y un ancho máximo de 769 píxeles + @media (max-width: 1199px) and (max-width: 769px) { + + }*/ \ No newline at end of file diff --git a/test/data.spec.js b/test/data.spec.js index 09b1f23f..67b60b24 100644 --- a/test/data.spec.js +++ b/test/data.spec.js @@ -1,7 +1,20 @@ -import { example, anotherExample } from '../src/data.js'; +//import { example, anotherExample } from '../src/data.js'; +import { test, expect } from '@playwright/test'; -describe('example', () => { +test.beforeEach(async ({page}) => { + await page.goto(' http://localhost:3000'); +}); + + +describe('Testing filtros películas', () => { + it('debería mostrar las películas por año', () => { + expect(typeof 'nombreFunción').toBe('function'); + }); +}); + + +/*/describe('example', () => { it('is a function', () => { expect(typeof example).toBe('function'); }); @@ -20,4 +33,4 @@ describe('anotherExample', () => { it('returns `anotherExample`', () => { expect(anotherExample()).toBe('OMG'); }); -}); +});*/ From 43adb693e22605cc4fc8c556859200a10e2acc82 Mon Sep 17 00:00:00 2001 From: oolidu Date: Mon, 10 Jul 2023 20:42:39 -0400 Subject: [PATCH 19/30] promedio rt score --- src/data.js | 12 ++++- src/main.js | 147 +++++++++++++++++++++++++++++++------------------- src/style.css | 12 +++-- 3 files changed, 110 insertions(+), 61 deletions(-) diff --git a/src/data.js b/src/data.js index 93a772c3..c6edc5ea 100644 --- a/src/data.js +++ b/src/data.js @@ -9,5 +9,15 @@ function orderByAlphabetical (array) { return arrayOrdered; } -export {orderByAlphabetical} +function prom(array) { + let suma = 0; + for (let i = 0; i < array.length; i++) { + const score = parseInt(array[i].score, 10); + suma = suma + score; + } + return suma / array.length; +} + + +export {orderByAlphabetical, prom} diff --git a/src/main.js b/src/main.js index 0fc5b0ed..cda2aa46 100644 --- a/src/main.js +++ b/src/main.js @@ -2,14 +2,14 @@ //se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; -import { orderByAlphabetical } from './data.js'; +import { orderByAlphabetical, prom } from './data.js'; //Método map() y flatMap() son funciones de los arreglos en JS que ITERAN sobre cada elemento del arreglo y crea un nuevo arreglo //______PERSONAJES ORDENADOS ALFABÉTICAMENTE -const people = data.films.flatMap(film => film.people.map(person => ({ - name: person.name, - image: person.img, +const people = data.films.flatMap(film => film.people.map(people => ({ + name: people.name, + image: people.img, title: film.title }))); //people.sort((a, b) => a.name.localeCompare(b.name)); @@ -23,17 +23,17 @@ const peopleList = document.getElementById('people-list'); //peopleList.innerHTML = ''; // Limpiar el contenido de la lista de personas //Recorrer el arreglo ordenado y crear elementos HTML para cada persona -people.forEach(person => { - const personItem = document.createElement('div'); - const personImage = document.createElement('img'); - const personName = document.createElement('p'); +people.forEach(people => { + const peopleItem = document.createElement('div'); + const peopleImage = document.createElement('img'); + const peopleName = document.createElement('p'); - personImage.src = person.image; - personName.textContent = person.name; + peopleImage.src = people.image; + peopleName.textContent = people.name; - personItem.appendChild(personImage); - personItem.appendChild(personName); - peopleList.appendChild(personItem); + peopleItem.appendChild(peopleImage); + peopleItem.appendChild(peopleName); + peopleList.appendChild(peopleItem); }); //______CLICK PERSONAJES ORDENADOS ALFABÉTICAMENTE @@ -49,6 +49,7 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { filmsList.style.display = 'none'; // Oculta filmsList peopleFilmList.style.display = 'none'; filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; } }); @@ -90,6 +91,7 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { peopleList.style.display = 'none'; // Oculta peopleList peopleFilmList.style.display = 'none'; filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; } }); @@ -136,15 +138,16 @@ ordenDateFilmsLink.addEventListener('click', function(event) { peopleList.style.display = 'none'; // Oculta peopleList peopleFilmList.style.display = 'none'; filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; } }); //______PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') const peopleFilm = data.films.flatMap(film => - film.people.map(person => ({ - name: person.name, - image: person.img, + film.people.map(people => ({ + name: people.name, + image: people.img, film: film.title })) ); @@ -155,26 +158,26 @@ console.log("Estoy clasificando personajes por película", peopleFilm); const peopleFilmList = document.getElementById('people-list-film'); // Recorrer el arreglo ordenado y crear elementos HTML para cada personaje -peopleFilm.forEach(person => { - const personItem = document.createElement('div'); - const personImage = document.createElement('img'); - const personName = document.createElement('p'); - const personFilm = document.createElement('p'); - - personImage.src = person.image; - personName.textContent = person.name; - personFilm.textContent = person.film; - - personItem.appendChild(personImage); - personItem.appendChild(personName); - personItem.appendChild(personFilm); - peopleFilmList.appendChild(personItem); +peopleFilm.forEach(people => { + const peopleItem = document.createElement('div'); + const peopleImage = document.createElement('img'); + const peopleName = document.createElement('p'); + const peopleFilm = document.createElement('p'); + + peopleImage.src = people.image; + peopleName.textContent = people.name; + peopleFilm.textContent = people.film; + + peopleItem.appendChild(peopleImage); + peopleItem.appendChild(peopleName); + peopleItem.appendChild(peopleFilm); + peopleFilmList.appendChild(peopleItem); }); //______CLICK PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') const ordenPeopleFilmsLink = document.getElementById('orden-people-films'); -const ordenPeopleFilmsName = document.getElementById('name-films'); +//const ordenPeopleFilmsName = document.getElementById('name-films'); ordenPeopleFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada @@ -184,7 +187,8 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { filmsDateList.style.display = 'none'; filmsList.style.display = 'none'; // Oculta filmsList peopleList.style.display = 'none'; // Oculta peopleList - ordenPeopleFilmsName.style.display = 'none'; + filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; } }); @@ -215,6 +219,7 @@ filmsDirector.forEach(film => { directorItem.appendChild(directorName); directorItem.appendChild(directorDirector); filmsListDirector.appendChild(directorItem); + }); //______CLICK PELÍCULAS ORDENADAS POR DIRECTOR ('director') @@ -229,42 +234,74 @@ ordenDirectorFilmsLink.addEventListener('click', function(event) { filmsDateList.style.display = 'none'; filmsList.style.display = 'none'; // Oculta filmsList peopleList.style.display = 'none'; // Oculta peopleList + peopleFilmList.style.display = 'none'; + peopleListAge.style.display = 'none'; } }); -/*//______PERSONAJES ORDENADOS POR GRUPO ETARIO ('age') +//______PERSONAJES ORDENADOS POR GRUPO ETARIO ('age') const agePeople = data.films.flatMap(film => - film.people.map(person => ({ - name: person.name, - image: person.img, - title: film.title, - age: film.age -})) + film.people.map(people => ({ + name: people.name, + image: people.img, + age: parseInt(people.age, 10) +})).filter(person => Number(person.age)) ); const peopleListAge = document.getElementById('people-list-age') agePeople.sort((a, b) => { if (a.age && b.age) { - return a.age.localeCompare(b.age); + const ageA = parseInt(a.age); + const ageB = parseInt(b.age); + + return ageA - ageB; } return 0; }); console.log("estoy ordenando personajes por edad", agePeople); -agePeople.forEach(person => { - const personItem = document.createElement('div'); - const personImage = document.createElement('img'); - const personName = document.createElement('p'); - const personAge = document.createElement('p'); - - personImage.src = person.image; - personName.textContent = person.name; - personAge.textContent = person.age; - - personItem.appendChild(personImage); - personItem.appendChild(personName); - personItem.appendChild(personAge); - peopleListAge.appendChild(personItem); -});*/ \ No newline at end of file +agePeople.forEach(people => { + const peopleItem = document.createElement('div'); + const peopleImage = document.createElement('img'); + const peopleName = document.createElement('p'); + const peopleAge = document.createElement('p'); + + peopleImage.src = people.image; + peopleName.textContent = people.name; + peopleAge.textContent = people.age; + + peopleItem.appendChild(peopleImage); + peopleItem.appendChild(peopleName); + peopleItem.appendChild(peopleAge); + peopleListAge.appendChild(peopleItem); +}); + +//______CLICK PERSONAJES ORDENADOS POR GRUPO ETARIO ('age') + +const ordenPeopleAgeLink = document.getElementById('orden-people-age'); + +ordenPeopleAgeLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (peopleListAge.style.display === '' || peopleListAge.style.display === 'none') { + peopleListAge.style.display = 'grid'; + filmsDateList.style.display = 'none'; + filmsList.style.display = 'none'; // Oculta filmsList + peopleList.style.display = 'none'; // Oculta peopleList + filmsListDirector.style.display = 'none'; + peopleFilmList.style.display = 'none'; + + } +}); + +// SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') + +const rtScore = data.films.flatMap(films => ({ + score: films.rt_score +})); + +prom(rtScore); + +console.log("Estoy mostrando el promedio en rotten tomatoes", prom(rtScore)); \ No newline at end of file diff --git a/src/style.css b/src/style.css index 9d135d07..c43be878 100644 --- a/src/style.css +++ b/src/style.css @@ -80,18 +80,20 @@ body{ } footer { - background-color: white; - position: fixed; + background-color: #333; + color:rgb(255, 255, 255); + position:fixed; bottom: 0; width: 100%; height: 3%; text-align: center; font-weight: bold; - padding: 10px; + padding: 20px; + margin-bottom: 20px; } - #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director { + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age { background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; @@ -152,7 +154,7 @@ img { } - #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director { + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age { background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; From b43071b2ed222972c4bdc275b211b03693cc7b46 Mon Sep 17 00:00:00 2001 From: oolidu Date: Tue, 11 Jul 2023 13:57:40 -0400 Subject: [PATCH 20/30] =?UTF-8?q?peliculas=20ordenadas=20alfab=C3=A9ticame?= =?UTF-8?q?nte=20con=20filter=20y=20sort?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.js | 77 +++++++++++++++++++++++++++++++++++++++++++++++++-- src/style.css | 6 ++-- 2 files changed, 77 insertions(+), 6 deletions(-) diff --git a/src/main.js b/src/main.js index cda2aa46..e9e1a12a 100644 --- a/src/main.js +++ b/src/main.js @@ -50,15 +50,18 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { peopleFilmList.style.display = 'none'; filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; } }); //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE -const films = data.films.flatMap(film => ({ +/*const films = data.films.flatMap(film => ({ title: film.title, poster: film.poster -})); +}));*/ + +const films = data.films.filter(film => film.title); films.sort((a, b) => a.title.localeCompare(b.title)); console.log("estoy ordenando películas", films); @@ -92,6 +95,7 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { peopleFilmList.style.display = 'none'; filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; } }); @@ -139,6 +143,7 @@ ordenDateFilmsLink.addEventListener('click', function(event) { peopleFilmList.style.display = 'none'; filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; } }); @@ -189,6 +194,7 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { peopleList.style.display = 'none'; // Oculta peopleList filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; } }); @@ -236,6 +242,7 @@ ordenDirectorFilmsLink.addEventListener('click', function(event) { peopleList.style.display = 'none'; // Oculta peopleList peopleFilmList.style.display = 'none'; peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; } }); @@ -292,10 +299,62 @@ ordenPeopleAgeLink.addEventListener('click', function(event) { peopleList.style.display = 'none'; // Oculta peopleList filmsListDirector.style.display = 'none'; peopleFilmList.style.display = 'none'; + filmsListSpecie.style.display = 'none'; } }); +//______PERSONAJES POR ESPECIE + +const peopleSpecie = data.films.flatMap(film => + film.people.map(people => ({ + name: people.name, + image: people.img, + specie: people.specie + })) +); + +const filmsListSpecie = document.getElementById("people-specie") + +peopleSpecie.sort((a, b) => a.specie.localeCompare(b.specie)); +console.log("Estoy ordenando por especie", peopleSpecie); + +peopleSpecie.forEach(specie => { + const specieItem = document.createElement('div'); + const specieImage = document.createElement('img'); + const specieName = document.createElement('p'); + const specieSpecie = document.createElement('p'); + + specieImage.src = specie.image; + specieName.textContent = specie.name; + specieSpecie.textContent = specie.specie; + + specieItem.appendChild(specieImage); + specieItem.appendChild(specieName); + specieItem.appendChild(specieSpecie); + filmsListSpecie.appendChild(specieItem); +}); + +//______CLICK PERSONAJES POR ESPECIE ('specie') + +const ordenSpecieFilmsLink = document.getElementById('people-specie-prom'); + +ordenSpecieFilmsLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (filmsListSpecie.style.display === '' || filmsListSpecie.style.display === 'none') { + filmsListSpecie.style.display = 'grid'; + filmsDateList.style.display = 'none'; + filmsList.style.display = 'none'; // Oculta filmsList + peopleList.style.display = 'none'; // Oculta peopleList + filmsListDirector.style.display = 'none'; // Oculta peliculas por director + peopleListAge.style.display = 'none'; + peopleFilmList.style.display = 'none'; + + } +}); + + // SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') const rtScore = data.films.flatMap(films => ({ @@ -304,4 +363,16 @@ const rtScore = data.films.flatMap(films => ({ prom(rtScore); -console.log("Estoy mostrando el promedio en rotten tomatoes", prom(rtScore)); \ No newline at end of file +console.log("Estoy mostrando el promedio en rotten tomatoes", prom(rtScore)); + + + +//______VEHÍCULOS +/*const vehiclesS = data.films.flatMap(film => + film.vehicles.map(vehicles => ({ + name: vehicles.name, + film: data.films, + vehicles: films.vehicles, + image: vehicles.img, + description: vehicles.description + })));*/ \ No newline at end of file diff --git a/src/style.css b/src/style.css index c43be878..b6be4a39 100644 --- a/src/style.css +++ b/src/style.css @@ -93,7 +93,7 @@ footer { } - #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age { + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age, #people-specie { background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; @@ -154,7 +154,7 @@ img { } - #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age { + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age, #people-specie { background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; @@ -178,7 +178,7 @@ img { height:fit-content; } - + } From 93c48e932760cb5a86c776e61ace81d08fffbd12 Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 12 Jul 2023 12:45:41 -0400 Subject: [PATCH 21/30] =?UTF-8?q?filter=20en=20pel=C3=ADculas=20y=20arregl?= =?UTF-8?q?o=20de=20im=C3=A1genes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data/ghibli/ghibli.js | 28 ++++++++++++++-------------- src/index.html | 6 +++--- src/main.js | 38 ++++++++++++++++++++++++++------------ 3 files changed, 43 insertions(+), 29 deletions(-) diff --git a/src/data/ghibli/ghibli.js b/src/data/ghibli/ghibli.js index 5122d330..3d2b7805 100644 --- a/src/data/ghibli/ghibli.js +++ b/src/data/ghibli/ghibli.js @@ -226,7 +226,7 @@ export default { { "id": "d5df3c04-f355-4038-833c-83bd3502b6b9", "name": "Mei Kusakabe", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/b/b5/God_Jul_Mei_%C3%B6nskar_fr%C3%A5n_Tomten.jpg", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/01/Mei_Kusakabe.jpg", "gender": "Female", "age": "4", "eye_color": "Brown", @@ -510,7 +510,7 @@ export default { { "id": "227c01a6-4e29-4582-bc4b-35106a704ab0", "name": "Mrs. Yokokawa", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/3/39/SeitaMother.png", + "img": "https://cintilatio.com/wp-content/uploads/2020/09/La-tumba-de-las-luciernagas-1.3.jpg", "gender": "Female", "age": "Adult", "eye_color": "Black", @@ -520,7 +520,7 @@ export default { { "id": "023306e3-9fc6-4d1d-b681-d4649dcbfff9", "name": "Kiyoshi Yokokawa", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/f/f6/SeitaFather3.jpg", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/b/b3/Seita_Father_3.jpg", "gender": "Male", "age": "40", "eye_color": "Black", @@ -530,7 +530,7 @@ export default { { "id": "0e18b23d-1f21-4a83-a6de-f01147624875", "name": "Seita's Aunt", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/09/SeitaAunt.jpg", + "img": "https://www.ecartelera.com/images/sets/33300/33310.jpg", "gender": "Female", "age": "Elder", "eye_color": "Black", @@ -574,7 +574,7 @@ export default { { "id": "52ed5cad-2464-481f-9786-8533b8de95ff", "name": "Mr. Okajima", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/5/58/Mr._Okajima.png", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/2/21/Taeko%27s_Father.png", "gender": "Male", "age": "Middle age", "eye_color": "Black", @@ -1021,7 +1021,7 @@ export default { { "id": "34277bec-7401-43fa-a00a-5aee64b45b08", "name": "Eboshi", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/9/9f/Eboshi.png", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/5/53/Eboshi.jpg", "gender": "Female", "age": "Adult", "eye_color": "Hazel", @@ -1259,7 +1259,7 @@ export default { { "id": "cf0a2a1b-8b65-4794-98ae-bd89de49fa62", "name": "Lin", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/3/35/Lin-HBO_Max.png", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/f/f2/Lin_face.png", "gender": "Female", "age": "Adult", "eye_color": "Brown", @@ -1497,7 +1497,7 @@ export default { { "id": "1287b275-6c32-4113-947f-519316d4a6be", "name": "Witch of the Waste", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/e/e1/Howls-moving-castle-disneyscreencaps.com-10507.jpg", + "img": "https://static.wikia.nocookie.net/howlscastle/images/e/e7/64074.jpg", "gender": "Female", "age": "59", "eye_color": "Brown", @@ -1527,7 +1527,7 @@ export default { { "id": "45237428-93bf-4dd6-97ce-f10647300429", "name": "Prince Justin or Turnip Head", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/d/d9/Prince_Justin.png", + "img": "https://static.wikia.nocookie.net/howlscastle/images/2/25/3613-447544121.jpg", "gender": "Male", "age": "20-30", "eye_color": "Grey", @@ -1742,7 +1742,7 @@ export default { { "id": "0cb26464-3416-4490-8f42-cd9d7276884e", "name": "Kōichi", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/4/49/Sosuke%27s_Father.png", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/01/Koichi.png", "gender": "Male", "age": "30", "eye_color": "Dark brown", @@ -2224,7 +2224,7 @@ export default { { "id": "a21fbdd5-16bc-4931-80d0-3ce89ffce778", "name": "Sutemaru", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/3/37/Sutemaru.PNG", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/d/d0/Sutemaru.png", "gender": "Male", "age": "Adult", "eye_color": "Black", @@ -2234,7 +2234,7 @@ export default { { "id": "4c697b7d-4f64-4ac9-ae29-e155eb1693f3", "name": "Ishitsukuri", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/5/5c/Ghibli-kaguya-ishitsukuri.jpg", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/6/6d/Ghibli_Kaguya_Ishitsukuri.jpg", "gender": "Male", "age": "Adult", "eye_color": "Black", @@ -2274,7 +2274,7 @@ export default { { "id": "942fb1029-b51f-4100-8bee-86547c09b0ff", "name": "Inbe no Akita", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/1/1c/Ghibli-kaguya-akita.jpg", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/e/e7/Ghibli_Kaguya_Akita.jpg", "gender": "Male", "age": "Elder", "eye_color": "Black", @@ -2330,7 +2330,7 @@ export default { { "id": "28d07ace-c309-48c6-b48e-ae2ece3a238c", "name": "Anna Sasaki", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/a/ae/Anna.png", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/2/29/Anna_Sasaki.jpg", "gender": "Female", "age": "12", "eye_color": "Blue", diff --git a/src/index.html b/src/index.html index 062aeb22..2a3e92aa 100644 --- a/src/index.html +++ b/src/index.html @@ -40,9 +40,9 @@
  • Curiosidades
  • diff --git a/src/main.js b/src/main.js index e9e1a12a..8eaff2c5 100644 --- a/src/main.js +++ b/src/main.js @@ -102,11 +102,13 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { //______PELÍCULAS ORDENADAS POR AÑO ('release_date') -const filmsDate = data.films.flatMap(film => ({ +/*const filmsDate = data.films.flatMap(film => ({ title: film.title, poster: film.poster, release_date: film.release_date -})); +}));*/ + +const filmsDate = data.films.filter(film => film.release_date); filmsDate.sort((a, b) => a.release_date.localeCompare(b.release_date)); console.log("estoy ordenando películas por año", filmsDate); @@ -154,8 +156,12 @@ const peopleFilm = data.films.flatMap(film => name: people.name, image: people.img, film: film.title - })) -); + }))); + +/*const peopleFilm = []; +data.films.forEach(film => { + film.people.filter(people => people.name).forEach(({ name }) => peopleFilm.push({ name, film: film.title })); +});*/ peopleFilm.sort((a, b) => a.film.localeCompare(b.film)); console.log("Estoy clasificando personajes por película", peopleFilm); @@ -200,13 +206,15 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { }); //______PELÍCULAS ORDENADAS POR DIRECTOR ('director') -const filmsDirector = data.films.flatMap(film => ({ +/*const filmsDirector = data.films.flatMap(film => ({ title: film.title, poster: film.poster, director: film.director -})); -const filmsListDirector = document.getElementById('films-list-director') +}));*/ +const filmsDirector = data.films.filter(film => film.director); + +const filmsListDirector = document.getElementById('films-list-director') filmsDirector.sort((a, b) => a.director.localeCompare(b.director)); console.log("estoy ordenando películas por director", filmsDirector); @@ -248,15 +256,20 @@ ordenDirectorFilmsLink.addEventListener('click', function(event) { }); //______PERSONAJES ORDENADOS POR GRUPO ETARIO ('age') -const agePeople = data.films.flatMap(film => +/*const agePeople = data.films.flatMap(film => film.people.map(people => ({ name: people.name, image: people.img, age: parseInt(people.age, 10) })).filter(person => Number(person.age)) -); -const peopleListAge = document.getElementById('people-list-age') +);*/ +const agePeople = []; +data.films.forEach(film => { + film.people.filter(people => Number(people.age)).forEach(people => agePeople.push(people)); +}); + +const peopleListAge = document.getElementById('people-list-age') agePeople.sort((a, b) => { if (a.age && b.age) { @@ -267,7 +280,8 @@ agePeople.sort((a, b) => { } return 0; }); - console.log("estoy ordenando personajes por edad", agePeople); + +console.log("estoy ordenando personajes por edad", agePeople); agePeople.forEach(people => { const peopleItem = document.createElement('div'); @@ -275,7 +289,7 @@ agePeople.forEach(people => { const peopleName = document.createElement('p'); const peopleAge = document.createElement('p'); - peopleImage.src = people.image; + peopleImage.src = people.img; peopleName.textContent = people.name; peopleAge.textContent = people.age; From ae17ffd04f84dea5be69bdd35d970e6e899e3ed0 Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 12 Jul 2023 14:59:04 -0400 Subject: [PATCH 22/30] antes de las funciones y de borrar comentarios obsoletos --- src/data.js | 6 +----- src/main.js | 44 ++++++++++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/data.js b/src/data.js index c6edc5ea..ed00729f 100644 --- a/src/data.js +++ b/src/data.js @@ -4,10 +4,6 @@ //El uso de export/import permite compartir elementos (variables, funciones, clases) entre diferentes archivos en un proyecto de JS //Solo se agrega la declaración export antes de la declaración de la variable -function orderByAlphabetical (array) { - const arrayOrdered = array.sort((a, b) => a.name.localeCompare(b.name)); - return arrayOrdered; -} function prom(array) { let suma = 0; @@ -19,5 +15,5 @@ function prom(array) { } -export {orderByAlphabetical, prom} +export {prom} diff --git a/src/main.js b/src/main.js index 8eaff2c5..962101d4 100644 --- a/src/main.js +++ b/src/main.js @@ -2,19 +2,22 @@ //se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; -import { orderByAlphabetical, prom } from './data.js'; - -//Método map() y flatMap() son funciones de los arreglos en JS que ITERAN sobre cada elemento del arreglo y crea un nuevo arreglo +import { prom } from './data.js'; //______PERSONAJES ORDENADOS ALFABÉTICAMENTE -const people = data.films.flatMap(film => film.people.map(people => ({ +/*const people = data.films.flatMap(film => film.people.map(people => ({ name: people.name, image: people.img, title: film.title -}))); -//people.sort((a, b) => a.name.localeCompare(b.name)); -const peopleOrdered = orderByAlphabetical (people); -console.log("estoy ordenando personas",peopleOrdered); +})));*/ + +const people = []; +data.films.forEach(film => { + film.people.filter(people => people.name).forEach(({ name, img }) => people.push({ name, film: film.title, img })); +}); + +people.sort((a, b) => a.name.localeCompare(b.name)); +console.log("estoy ordenando personas",people); console.log("estoy mostrando la data", data, data.films, people); //HTML de la lista de personas @@ -28,7 +31,7 @@ people.forEach(people => { const peopleImage = document.createElement('img'); const peopleName = document.createElement('p'); - peopleImage.src = people.image; + peopleImage.src = people.img; peopleName.textContent = people.name; peopleItem.appendChild(peopleImage); @@ -151,17 +154,17 @@ ordenDateFilmsLink.addEventListener('click', function(event) { //______PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') -const peopleFilm = data.films.flatMap(film => +/*const peopleFilm = data.films.flatMap(film => film.people.map(people => ({ name: people.name, image: people.img, film: film.title - }))); + })));*/ -/*const peopleFilm = []; +const peopleFilm = []; data.films.forEach(film => { - film.people.filter(people => people.name).forEach(({ name }) => peopleFilm.push({ name, film: film.title })); -});*/ + film.people.filter(people => people.name).forEach(({ name, img }) => peopleFilm.push({ name, film: film.title, img })); +}); peopleFilm.sort((a, b) => a.film.localeCompare(b.film)); console.log("Estoy clasificando personajes por película", peopleFilm); @@ -175,7 +178,7 @@ peopleFilm.forEach(people => { const peopleName = document.createElement('p'); const peopleFilm = document.createElement('p'); - peopleImage.src = people.image; + peopleImage.src = people.img; peopleName.textContent = people.name; peopleFilm.textContent = people.film; @@ -320,13 +323,18 @@ ordenPeopleAgeLink.addEventListener('click', function(event) { //______PERSONAJES POR ESPECIE -const peopleSpecie = data.films.flatMap(film => +/*const peopleSpecie = data.films.flatMap(film => film.people.map(people => ({ name: people.name, image: people.img, specie: people.specie })) -); +);*/ + +const peopleSpecie = []; +data.films.forEach(film => { + film.people.filter(people => people.name).forEach(({ name, img, specie }) => peopleSpecie.push({ name, specie, img })); +}); const filmsListSpecie = document.getElementById("people-specie") @@ -339,7 +347,7 @@ peopleSpecie.forEach(specie => { const specieName = document.createElement('p'); const specieSpecie = document.createElement('p'); - specieImage.src = specie.image; + specieImage.src = specie.img; specieName.textContent = specie.name; specieSpecie.textContent = specie.specie; From a2ab83232a28e36b8b765d14a9808f1fc4423c58 Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 12 Jul 2023 19:21:26 -0400 Subject: [PATCH 23/30] =?UTF-8?q?funciones=20de=20c=C3=A1lculo=20agregado?= =?UTF-8?q?=20en=20data.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data.js | 24 +++++++++++++++++- src/main.js | 72 ++++++++++------------------------------------------- 2 files changed, 36 insertions(+), 60 deletions(-) diff --git a/src/data.js b/src/data.js index ed00729f..7e4a020e 100644 --- a/src/data.js +++ b/src/data.js @@ -4,6 +4,7 @@ //El uso de export/import permite compartir elementos (variables, funciones, clases) entre diferentes archivos en un proyecto de JS //Solo se agrega la declaración export antes de la declaración de la variable +import data from './data/ghibli/ghibli.js'; function prom(array) { let suma = 0; @@ -14,6 +15,27 @@ function prom(array) { return suma / array.length; } +function countSpecies() { + const uniqueSpecies = new Set(); + data.films.forEach(film => { + film.people.filter(people => people.specie).forEach(person => { + const arraySpecies = Object.keys(person.specie); + arraySpecies.forEach(specie => uniqueSpecies.add(specie)); + }); + }); + return uniqueSpecies.size; +}; -export {prom} +function countVehicles() { + const uniqueVehicles = new Set(); + data.films.forEach(film => { + film.vehicles.forEach(vehicles => { + const arrayVehicles = Object.keys(vehicles); + arrayVehicles.forEach(vehicles => uniqueVehicles.add(vehicles)); + }); + }); + return uniqueVehicles.size; +}; + +export {prom, countSpecies, countVehicles} diff --git a/src/main.js b/src/main.js index 962101d4..201d963e 100644 --- a/src/main.js +++ b/src/main.js @@ -2,14 +2,9 @@ //se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; -import { prom } from './data.js'; +import { prom, countSpecies, countVehicles } from './data.js'; //______PERSONAJES ORDENADOS ALFABÉTICAMENTE -/*const people = data.films.flatMap(film => film.people.map(people => ({ - name: people.name, - image: people.img, - title: film.title -})));*/ const people = []; data.films.forEach(film => { @@ -59,11 +54,6 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE -/*const films = data.films.flatMap(film => ({ - title: film.title, - poster: film.poster -}));*/ - const films = data.films.filter(film => film.title); films.sort((a, b) => a.title.localeCompare(b.title)); @@ -105,12 +95,6 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { //______PELÍCULAS ORDENADAS POR AÑO ('release_date') -/*const filmsDate = data.films.flatMap(film => ({ - title: film.title, - poster: film.poster, - release_date: film.release_date -}));*/ - const filmsDate = data.films.filter(film => film.release_date); filmsDate.sort((a, b) => a.release_date.localeCompare(b.release_date)); @@ -136,6 +120,7 @@ filmsDate.forEach(film => { }); //______CLICK PELÍCULAS ORDENADAS POR AÑO ('release_date') + const ordenDateFilmsLink = document.getElementById('orden-date-films'); ordenDateFilmsLink.addEventListener('click', function(event) { @@ -154,13 +139,6 @@ ordenDateFilmsLink.addEventListener('click', function(event) { //______PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') -/*const peopleFilm = data.films.flatMap(film => - film.people.map(people => ({ - name: people.name, - image: people.img, - film: film.title - })));*/ - const peopleFilm = []; data.films.forEach(film => { film.people.filter(people => people.name).forEach(({ name, img }) => peopleFilm.push({ name, film: film.title, img })); @@ -189,9 +167,8 @@ peopleFilm.forEach(people => { }); //______CLICK PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') -const ordenPeopleFilmsLink = document.getElementById('orden-people-films'); -//const ordenPeopleFilmsName = document.getElementById('name-films'); +const ordenPeopleFilmsLink = document.getElementById('orden-people-films'); ordenPeopleFilmsLink.addEventListener('click', function(event) { event.preventDefault(); // Evita que el enlace realice la acción predeterminada @@ -209,11 +186,6 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { }); //______PELÍCULAS ORDENADAS POR DIRECTOR ('director') -/*const filmsDirector = data.films.flatMap(film => ({ - title: film.title, - poster: film.poster, - director: film.director -}));*/ const filmsDirector = data.films.filter(film => film.director); @@ -259,13 +231,6 @@ ordenDirectorFilmsLink.addEventListener('click', function(event) { }); //______PERSONAJES ORDENADOS POR GRUPO ETARIO ('age') -/*const agePeople = data.films.flatMap(film => - film.people.map(people => ({ - name: people.name, - image: people.img, - age: parseInt(people.age, 10) -})).filter(person => Number(person.age)) -);*/ const agePeople = []; data.films.forEach(film => { @@ -323,14 +288,6 @@ ordenPeopleAgeLink.addEventListener('click', function(event) { //______PERSONAJES POR ESPECIE -/*const peopleSpecie = data.films.flatMap(film => - film.people.map(people => ({ - name: people.name, - image: people.img, - specie: people.specie - })) -);*/ - const peopleSpecie = []; data.films.forEach(film => { film.people.filter(people => people.name).forEach(({ name, img, specie }) => peopleSpecie.push({ name, specie, img })); @@ -376,8 +333,17 @@ ordenSpecieFilmsLink.addEventListener('click', function(event) { } }); +//______________TOTAL DE ESPECIES -// SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') +const speciesCount = countSpecies(); +console.log("Estoy mostrando el total de especies", speciesCount); + +//______________TOTAL DE VEHÍCULOS + +const vehiclesCount = countVehicles(); +console.log("Estoy mostrando el total de vehículos", vehiclesCount); + +//______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') const rtScore = data.films.flatMap(films => ({ score: films.rt_score @@ -386,15 +352,3 @@ const rtScore = data.films.flatMap(films => ({ prom(rtScore); console.log("Estoy mostrando el promedio en rotten tomatoes", prom(rtScore)); - - - -//______VEHÍCULOS -/*const vehiclesS = data.films.flatMap(film => - film.vehicles.map(vehicles => ({ - name: vehicles.name, - film: data.films, - vehicles: films.vehicles, - image: vehicles.img, - description: vehicles.description - })));*/ \ No newline at end of file From 42d4e4866498c027519b4669db0b2fe2c151d3d8 Mon Sep 17 00:00:00 2001 From: oolidu Date: Wed, 12 Jul 2023 22:52:06 -0400 Subject: [PATCH 24/30] funciones orden alpha films y people en data.js --- src/data.js | 23 ++++++++++++++++++++++- src/main.js | 19 +++++++++---------- src/style.css | 2 +- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/data.js b/src/data.js index 7e4a020e..fa0168e7 100644 --- a/src/data.js +++ b/src/data.js @@ -6,6 +6,7 @@ import data from './data/ghibli/ghibli.js'; +//______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') function prom(array) { let suma = 0; for (let i = 0; i < array.length; i++) { @@ -15,6 +16,7 @@ function prom(array) { return suma / array.length; } +//______________TOTAL DE ESPECIES function countSpecies() { const uniqueSpecies = new Set(); data.films.forEach(film => { @@ -26,6 +28,7 @@ function countSpecies() { return uniqueSpecies.size; }; +//______________TOTAL DE VEHÍCULOS function countVehicles() { const uniqueVehicles = new Set(); data.films.forEach(film => { @@ -37,5 +40,23 @@ function countVehicles() { return uniqueVehicles.size; }; -export {prom, countSpecies, countVehicles} +//______PERSONAJES ORDENADOS ALFABÉTICAMENTE +function alphabeticalOrderPeople(people) { + + data.films.forEach(film => { + film.people.filter(people => people.name).forEach(({ name, img }) => { + people.push({ name, film: film.title, img }); + }); + }); + people.sort((a, b) => a.name.localeCompare(b.name)); +}; + +//______PELÍCULAS ORDENADAS ALFABÉTICAMENTE +function alphabeticalOrderFilms(films) { + films.sort((a, b) => a.title.localeCompare(b.title)); +} + + + +export {prom, countSpecies, countVehicles, alphabeticalOrderPeople, alphabeticalOrderFilms } diff --git a/src/main.js b/src/main.js index 201d963e..569f3ec6 100644 --- a/src/main.js +++ b/src/main.js @@ -2,16 +2,13 @@ //se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; -import { prom, countSpecies, countVehicles } from './data.js'; +import { prom, countSpecies, countVehicles, alphabeticalOrderPeople, alphabeticalOrderFilms } from './data.js'; //______PERSONAJES ORDENADOS ALFABÉTICAMENTE const people = []; -data.films.forEach(film => { - film.people.filter(people => people.name).forEach(({ name, img }) => people.push({ name, film: film.title, img })); -}); -people.sort((a, b) => a.name.localeCompare(b.name)); +alphabeticalOrderPeople(people); console.log("estoy ordenando personas",people); console.log("estoy mostrando la data", data, data.films, people); @@ -54,9 +51,9 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE -const films = data.films.filter(film => film.title); +const films = data.films; -films.sort((a, b) => a.title.localeCompare(b.title)); +alphabeticalOrderFilms(films); console.log("estoy ordenando películas", films); const filmsList = document.getElementById('films-list'); @@ -95,7 +92,9 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { //______PELÍCULAS ORDENADAS POR AÑO ('release_date') -const filmsDate = data.films.filter(film => film.release_date); +const filmsDate = data.films ; + +data.films.filter(film => film.release_date); filmsDate.sort((a, b) => a.release_date.localeCompare(b.release_date)); console.log("estoy ordenando películas por año", filmsDate); @@ -189,11 +188,11 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { const filmsDirector = data.films.filter(film => film.director); -const filmsListDirector = document.getElementById('films-list-director') - filmsDirector.sort((a, b) => a.director.localeCompare(b.director)); console.log("estoy ordenando películas por director", filmsDirector); +const filmsListDirector = document.getElementById('films-list-director') + filmsDirector.forEach(film => { const directorItem = document.createElement('div'); const directorImage = document.createElement('img'); diff --git a/src/style.css b/src/style.css index b6be4a39..7330d075 100644 --- a/src/style.css +++ b/src/style.css @@ -26,7 +26,7 @@ nav{ } body{ - background: url(imagenes/fondo\ 7.jpg) no-repeat; /* no repeat */ + background-color: #44A6A6; /* no repeat */ background-size: cover; /* La imagen de fondo se ajusta para cubrir todo el elemento */ } From 03e96cfe4d3c31ef3d9c113cd278b04016140f90 Mon Sep 17 00:00:00 2001 From: oolidu Date: Thu, 13 Jul 2023 20:09:04 -0400 Subject: [PATCH 25/30] funciones en data.js consolidadas sin importar objeto data --- package-lock.json | 284 +++++++++++++++++++--------------------------- package.json | 4 +- src/data.js | 26 ++--- src/main.js | 9 +- test/data.spec.js | 8 +- 5 files changed, 138 insertions(+), 193 deletions(-) diff --git a/package-lock.json b/package-lock.json index 530e928d..669f8a26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "eslint": "^8.3.0", "gh-pages": "^3.1.0", "htmlhint": "^1.0.0", - "jest": "^27.0.1", + "jest": "^27.5.1", "opener": "^1.5.1", "serve": "^13.0.2" }, @@ -23,6 +23,15 @@ "node": ">=16.x" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -49,35 +58,35 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", + "@babel/traverse": "^7.22.8", "@babel/types": "^7.22.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.2", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -88,9 +97,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", "dev": true, "dependencies": { "@babel/types": "^7.22.5", @@ -103,16 +112,16 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.5", + "@babel/compat-data": "^7.22.9", "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -168,22 +177,22 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-module-imports": "^7.22.5", "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { @@ -208,9 +217,9 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" @@ -247,13 +256,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", - "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", "dev": true, "dependencies": { "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", + "@babel/traverse": "^7.22.6", "@babel/types": "^7.22.5" }, "engines": { @@ -275,9 +284,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -480,18 +489,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", + "@babel/generator": "^7.22.7", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" @@ -545,14 +554,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -613,9 +622,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1460,9 +1469,9 @@ } }, "node_modules/@types/node": { - "version": "^20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", + "version": "20.4.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", "dev": true }, "node_modules/@types/prettier": { @@ -1518,9 +1527,9 @@ } }, "node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2113,9 +2122,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001508", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz", - "integrity": "sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==", + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", "dev": true, "funding": [ { @@ -2279,9 +2288,9 @@ } }, "node_modules/clipboardy/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -2342,9 +2351,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "node_modules/color-convert": { @@ -2618,9 +2627,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "^1.4.440", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.440.tgz", - "integrity": "sha512-r6dCgNpRhPwiWlxbHzZQ/d9swfPaEJGi8ekqRBwQYaR3WmA5VkqQfBWSDDjuJU1ntO+W9tHx8OHV/96Q8e0dVw==", + "version": "1.4.459", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.459.tgz", + "integrity": "sha512-XXRS5NFv8nCrBL74Rm3qhJjA2VCsRFx0OjHKBMPI0otij56aun8UWiKTDABmd5/7GTR021pA4wivs+Ri6XCElg==", "dev": true }, "node_modules/email-addresses": { @@ -2684,15 +2693,14 @@ } }, "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", @@ -2705,67 +2713,16 @@ "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.43.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -2777,7 +2734,7 @@ "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "espree": "^9.6.0", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2797,7 +2754,7 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -3029,12 +2986,12 @@ } }, "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", + "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -5339,9 +5296,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5991,9 +5948,9 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -6039,9 +5996,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/normalize-path": { @@ -6066,9 +6023,9 @@ } }, "node_modules/nwsapi": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz", - "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, "node_modules/object-assign": { @@ -6123,17 +6080,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "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" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -6626,9 +6583,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -7341,15 +7298,6 @@ "node": ">=8" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index 665506b6..13d375b2 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint": "^8.3.0", "gh-pages": "^3.1.0", "htmlhint": "^1.0.0", - "jest": "^27.0.1", + "jest": "^27.5.1", "opener": "^1.5.1", "serve": "^13.0.2" }, @@ -31,4 +31,4 @@ "version": "6.3.0", "commit": "19ca89e6e299d9b55d5e47f92352b74ee10a3c0a" } -} \ No newline at end of file +} diff --git a/src/data.js b/src/data.js index fa0168e7..b7284f6a 100644 --- a/src/data.js +++ b/src/data.js @@ -1,10 +1,6 @@ -//import { people } from './main.js'; - //Estamos usando JavaScript modular. Export e Import son declaraciones. //El uso de export/import permite compartir elementos (variables, funciones, clases) entre diferentes archivos en un proyecto de JS -//Solo se agrega la declaración export antes de la declaración de la variable -import data from './data/ghibli/ghibli.js'; //______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') function prom(array) { @@ -17,9 +13,9 @@ function prom(array) { } //______________TOTAL DE ESPECIES -function countSpecies() { +function countSpecies(array) { const uniqueSpecies = new Set(); - data.films.forEach(film => { + array.forEach(film => { film.people.filter(people => people.specie).forEach(person => { const arraySpecies = Object.keys(person.specie); arraySpecies.forEach(specie => uniqueSpecies.add(specie)); @@ -29,9 +25,9 @@ function countSpecies() { }; //______________TOTAL DE VEHÍCULOS -function countVehicles() { +function countVehicles(array) { const uniqueVehicles = new Set(); - data.films.forEach(film => { + array.forEach(film => { film.vehicles.forEach(vehicles => { const arrayVehicles = Object.keys(vehicles); arrayVehicles.forEach(vehicles => uniqueVehicles.add(vehicles)); @@ -41,19 +37,21 @@ function countVehicles() { }; //______PERSONAJES ORDENADOS ALFABÉTICAMENTE -function alphabeticalOrderPeople(people) { +function alphabeticalOrderPeople(array) { + const result = []; - data.films.forEach(film => { + array.forEach(film => { film.people.filter(people => people.name).forEach(({ name, img }) => { - people.push({ name, film: film.title, img }); + result.push({ name, film: film.title, img }); }); }); - people.sort((a, b) => a.name.localeCompare(b.name)); + result.sort((a, b) => a.name.localeCompare(b.name)); + return result; }; //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE -function alphabeticalOrderFilms(films) { - films.sort((a, b) => a.title.localeCompare(b.title)); +function alphabeticalOrderFilms(array) { + array.sort((a, b) => a.title.localeCompare(b.title)); } diff --git a/src/main.js b/src/main.js index 569f3ec6..27c4fe93 100644 --- a/src/main.js +++ b/src/main.js @@ -6,11 +6,10 @@ import { prom, countSpecies, countVehicles, alphabeticalOrderPeople, alphabetica //______PERSONAJES ORDENADOS ALFABÉTICAMENTE -const people = []; +const people = alphabeticalOrderPeople(data.films); -alphabeticalOrderPeople(people); console.log("estoy ordenando personas",people); -console.log("estoy mostrando la data", data, data.films, people); +console.log("estoy mostrando la data", data); //HTML de la lista de personas const peopleList = document.getElementById('people-list'); @@ -334,12 +333,12 @@ ordenSpecieFilmsLink.addEventListener('click', function(event) { //______________TOTAL DE ESPECIES -const speciesCount = countSpecies(); +const speciesCount = countSpecies(data.films); console.log("Estoy mostrando el total de especies", speciesCount); //______________TOTAL DE VEHÍCULOS -const vehiclesCount = countVehicles(); +const vehiclesCount = countVehicles(data.films); console.log("Estoy mostrando el total de vehículos", vehiclesCount); //______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') diff --git a/test/data.spec.js b/test/data.spec.js index 67b60b24..f1c87a45 100644 --- a/test/data.spec.js +++ b/test/data.spec.js @@ -1,6 +1,6 @@ -//import { example, anotherExample } from '../src/data.js'; +import { prom, countSpecies, countVehicles, alphabeticalOrderPeople, alphabeticalOrderFilms } from '../src/data.js'; -import { test, expect } from '@playwright/test'; +//import { test, expect } from ''; test.beforeEach(async ({page}) => { await page.goto(' http://localhost:3000'); @@ -8,8 +8,8 @@ test.beforeEach(async ({page}) => { describe('Testing filtros películas', () => { - it('debería mostrar las películas por año', () => { - expect(typeof 'nombreFunción').toBe('function'); + it('debería mostrar las películas ordenadas alfabéticamente', () => { + expect(typeof alphabeticalOrderFilms).toBe('alphabeticalOrderFilms'); }); }); From 01dd95a2ff1afe423c5f5a7de386aca240d04c63 Mon Sep 17 00:00:00 2001 From: oolidu Date: Mon, 24 Jul 2023 22:48:23 -0400 Subject: [PATCH 26/30] tests al 67% --- src/data.js | 84 +++++++++++++-- src/index.html | 141 +++++++++++++------------ src/main.js | 113 +++++++++++++------- src/style.css | 24 ++++- test/.eslintrc | 16 ++- test/data.spec.js | 259 +++++++++++++++++++++++++++++++++++++++++++--- 6 files changed, 508 insertions(+), 129 deletions(-) diff --git a/src/data.js b/src/data.js index b7284f6a..4ef88496 100644 --- a/src/data.js +++ b/src/data.js @@ -1,15 +1,22 @@ +/* eslint-disable no-undef */ //Estamos usando JavaScript modular. Export e Import son declaraciones. //El uso de export/import permite compartir elementos (variables, funciones, clases) entre diferentes archivos en un proyecto de JS -//______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') +//______________SCORE PROMEDIO EN ROTTEN TOMATOES function prom(array) { let suma = 0; + let contador = 0; + for (let i = 0; i < array.length; i++) { - const score = parseInt(array[i].score, 10); - suma = suma + score; + const score = parseFloat(array[i].rt_score); + if (!isNaN(score)) { + suma = suma + score; + contador++; + } } - return suma / array.length; + + return contador === 0 ? 0 : suma / contador; } //______________TOTAL DE ESPECIES @@ -17,15 +24,15 @@ function countSpecies(array) { const uniqueSpecies = new Set(); array.forEach(film => { film.people.filter(people => people.specie).forEach(person => { - const arraySpecies = Object.keys(person.specie); - arraySpecies.forEach(specie => uniqueSpecies.add(specie)); + const specie = person.specie; + uniqueSpecies.add(specie); }); }); return uniqueSpecies.size; -}; +} //______________TOTAL DE VEHÍCULOS -function countVehicles(array) { +/*function countVehicles(array) { const uniqueVehicles = new Set(); array.forEach(film => { film.vehicles.forEach(vehicles => { @@ -34,7 +41,20 @@ function countVehicles(array) { }); }); return uniqueVehicles.size; -}; +}*/ + +function countVehicles(array) { + const uniqueVehicles = new Set(); + array.forEach(film => { + if (film.vehicles) { + film.vehicles.forEach(vehicles => { + const vehiclesName = vehicles.name; + uniqueVehicles.add(vehiclesName); + }); + } + }); + return uniqueVehicles.size; +} //______PERSONAJES ORDENADOS ALFABÉTICAMENTE function alphabeticalOrderPeople(array) { @@ -47,14 +67,56 @@ function alphabeticalOrderPeople(array) { }); result.sort((a, b) => a.name.localeCompare(b.name)); return result; -}; +} //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE function alphabeticalOrderFilms(array) { array.sort((a, b) => a.title.localeCompare(b.title)); + return array; +} + +//______PELÍCULAS ORDENADAS POR AÑO + +function yearOrderMovies(array) { + + array.filter(film => film.release_date); + + array.sort((a, b) => a.release_date.localeCompare(b.release_date)); + + return array; } +//______PELÍCULAS ORDENADAS POR DIRECTOR + +function directorOrderMovies(array) { + + const filteredMovies = array.filter(film => film.director); + + filteredMovies.sort((a, b) => a.director.localeCompare(b.director)); + +} + + +//_____________________________________________________________________________________ + +//______PERSONAJES ORDENADOS POR PELÍCULA + +function moviesOrderPeople(array) { + + const resultArray = []; + array.forEach(film => { + film.people.filter(people => people.name).forEach(({ name, img }) => resultArray.push({ name, film: film.title, img })); + }); + + resultArray.sort((a, b) => a.film.localeCompare(b.film)); + + return resultArray; +} + +//______PERSONAJES ORDENADOS POR GRUPO ETARIO + + -export {prom, countSpecies, countVehicles, alphabeticalOrderPeople, alphabeticalOrderFilms } +export {prom, alphabeticalOrderPeople, alphabeticalOrderFilms, yearOrderMovies, directorOrderMovies, countSpecies, countVehicles, moviesOrderPeople } diff --git a/src/index.html b/src/index.html index 2a3e92aa..00da931a 100644 --- a/src/index.html +++ b/src/index.html @@ -1,76 +1,89 @@ - - - - Data Lovers - - - - -
    - - - -
    + + + + Data Lovers + + - - + + +
  • Curiosidades + +
  • + + + + + +
    + + + + +
    +

    Elaborado por Oli en Laboratoria

    +
    -
    -

    Elaborado por Conny y Oli en Laboratoria

    -
    - - + - - + + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 27c4fe93..ab3fb05c 100644 --- a/src/main.js +++ b/src/main.js @@ -2,14 +2,14 @@ //se importa un objeto que llamaremos data desde el archivo './data/ghibli/ghibli.js' - el objeto tiene una exportación default import data from './data/ghibli/ghibli.js'; -import { prom, countSpecies, countVehicles, alphabeticalOrderPeople, alphabeticalOrderFilms } from './data.js'; +import { prom, alphabeticalOrderPeople, alphabeticalOrderFilms, yearOrderMovies, directorOrderMovies, countSpecies, countVehicles, moviesOrderPeople } from './data.js'; //______PERSONAJES ORDENADOS ALFABÉTICAMENTE const people = alphabeticalOrderPeople(data.films); -console.log("estoy ordenando personas",people); -console.log("estoy mostrando la data", data); +//console.log("estoy ordenando personas",people); +//console.log("estoy mostrando la data", data); //HTML de la lista de personas const peopleList = document.getElementById('people-list'); @@ -45,6 +45,7 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; } }); @@ -53,7 +54,7 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { const films = data.films; alphabeticalOrderFilms(films); -console.log("estoy ordenando películas", films); +//console.log("estoy ordenando películas", films); const filmsList = document.getElementById('films-list'); //filmsList.innerHTML = ''; @@ -85,18 +86,17 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; } }); //______PELÍCULAS ORDENADAS POR AÑO ('release_date') -const filmsDate = data.films ; +const filmsDate = data.films; -data.films.filter(film => film.release_date); - -filmsDate.sort((a, b) => a.release_date.localeCompare(b.release_date)); -console.log("estoy ordenando películas por año", filmsDate); +yearOrderMovies(filmsDate); +//console.log("estoy ordenando películas por año", filmsDate); const filmsDateList = document.getElementById('films-list-year'); //filmsList.innerHTML = ''; @@ -132,37 +132,46 @@ ordenDateFilmsLink.addEventListener('click', function(event) { filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; } }); //______PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') +const peopleFilm = data.films; +moviesOrderPeople(peopleFilm); -const peopleFilm = []; -data.films.forEach(film => { - film.people.filter(people => people.name).forEach(({ name, img }) => peopleFilm.push({ name, film: film.title, img })); -}); +//console.log("Estoy clasificando personajes por película", data.films); +//console.log(data.films); +/*const peopleFilm = [];*/ +//data.films.forEach(film => { +//film.people.filter(people => people.name).forEach(({ name, img }) => peopleFilm.push({ name, film: film.title, img })); +//}); -peopleFilm.sort((a, b) => a.film.localeCompare(b.film)); -console.log("Estoy clasificando personajes por película", peopleFilm); + +//peopleFilm.sort((a, b) => a.film.localeCompare(b.film)); +//console.log("Estoy clasificando personajes por película", peopleFilm); const peopleFilmList = document.getElementById('people-list-film'); // Recorrer el arreglo ordenado y crear elementos HTML para cada personaje -peopleFilm.forEach(people => { + +peopleFilm.forEach(film => { const peopleItem = document.createElement('div'); const peopleImage = document.createElement('img'); const peopleName = document.createElement('p'); const peopleFilm = document.createElement('p'); + film.people.forEach (people=> { + peopleImage.src = people.img; + peopleName.textContent = people.name; + peopleFilm.textContent = people.film; - peopleImage.src = people.img; - peopleName.textContent = people.name; - peopleFilm.textContent = people.film; + peopleItem.appendChild(peopleImage); + peopleItem.appendChild(peopleName); + peopleItem.appendChild(peopleFilm); + peopleFilmList.appendChild(peopleItem); - peopleItem.appendChild(peopleImage); - peopleItem.appendChild(peopleName); - peopleItem.appendChild(peopleFilm); - peopleFilmList.appendChild(peopleItem); -}); + })}, +); //______CLICK PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') @@ -179,16 +188,17 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; } }); //______PELÍCULAS ORDENADAS POR DIRECTOR ('director') -const filmsDirector = data.films.filter(film => film.director); +const filmsDirector = data.films; -filmsDirector.sort((a, b) => a.director.localeCompare(b.director)); -console.log("estoy ordenando películas por director", filmsDirector); +directorOrderMovies(filmsDirector); +//console.log("estoy ordenando películas por director", filmsDirector); const filmsListDirector = document.getElementById('films-list-director') @@ -224,6 +234,7 @@ ordenDirectorFilmsLink.addEventListener('click', function(event) { peopleFilmList.style.display = 'none'; peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; } }); @@ -247,7 +258,7 @@ agePeople.sort((a, b) => { return 0; }); -console.log("estoy ordenando personajes por edad", agePeople); +//console.log("estoy ordenando personajes por edad", agePeople); agePeople.forEach(people => { const peopleItem = document.createElement('div'); @@ -280,6 +291,7 @@ ordenPeopleAgeLink.addEventListener('click', function(event) { filmsListDirector.style.display = 'none'; peopleFilmList.style.display = 'none'; filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; } }); @@ -294,7 +306,7 @@ data.films.forEach(film => { const filmsListSpecie = document.getElementById("people-specie") peopleSpecie.sort((a, b) => a.specie.localeCompare(b.specie)); -console.log("Estoy ordenando por especie", peopleSpecie); +//console.log("Estoy ordenando por especie", peopleSpecie); peopleSpecie.forEach(specie => { const specieItem = document.createElement('div'); @@ -327,26 +339,51 @@ ordenSpecieFilmsLink.addEventListener('click', function(event) { filmsListDirector.style.display = 'none'; // Oculta peliculas por director peopleListAge.style.display = 'none'; peopleFilmList.style.display = 'none'; + homeContent.style.display = 'none'; } }); //______________TOTAL DE ESPECIES -const speciesCount = countSpecies(data.films); -console.log("Estoy mostrando el total de especies", speciesCount); +countSpecies(data.films); +//console.log("Estoy mostrando el total de especies", data.films); //______________TOTAL DE VEHÍCULOS -const vehiclesCount = countVehicles(data.films); -console.log("Estoy mostrando el total de vehículos", vehiclesCount); +countVehicles(data.films); +//console.log("Estoy mostrando el total de vehículos", data.films); //______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') -const rtScore = data.films.flatMap(films => ({ - score: films.rt_score -})); +prom(data.films); +//console.log("Estoy mostrando el promedio en rotten tomatoes", prom(data.films)); + + -prom(rtScore); +//______CLICK home +const homeContent = document.getElementById('home-content') +const homeLink = document.getElementById('home-link'); -console.log("Estoy mostrando el promedio en rotten tomatoes", prom(rtScore)); +function showHomeContent() { + homeContent.style.display = 'grid'; // Muestra homeContent + // Oculta otros elementos si es necesario +} + +// Mostrar homeContent al iniciar la página +showHomeContent(); + +homeLink.addEventListener('click', function(event) { + event.preventDefault(); // Evita que el enlace realice la acción predeterminada + + if (homeContent.style.display === '' || homeContent.style.display === 'none') { + homeContent.style.display = 'grid'; // Muestra peopleList + peopleList.style.display = 'none'; + filmsDateList.style.display = 'none'; // Oculta filmsDateList + filmsList.style.display = 'none'; // Oculta filmsList + peopleFilmList.style.display = 'none'; + filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; + } +}); \ No newline at end of file diff --git a/src/style.css b/src/style.css index 7330d075..03775149 100644 --- a/src/style.css +++ b/src/style.css @@ -4,7 +4,7 @@ margin: 0; padding: 0; /* relleno */ box-sizing: border-box; - font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; + font-family: 'Calibri', 'Trebuchet MS', sans-serif; } #logo{ @@ -93,7 +93,7 @@ footer { } - #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age, #people-specie { + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age, #people-specie, #home-content { background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; @@ -135,6 +135,18 @@ img { height:fit-content; } + + #home-content img { + width: 350px; + } + + #home-content p { + font-size: 22px; + text-align: justify; + font-weight: 400; + font-family: 'Calibri', 'Trebuchet MS', sans-serif; + + } /* Estilos para dispositivos con un ancho máximo de 768 píxeles */ @media screen and (max-width: 930px) { @@ -154,7 +166,7 @@ img { } - #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age, #people-specie { + #people-list, #films-list, #films-list-year, #people-list-film, #films-list-director, #people-list-age, #people-specie, #home-content { background-color: rgba(255, 255, 255, 0.5); margin-top: 40px; margin-bottom: 60px; @@ -178,6 +190,12 @@ img { height:fit-content; } + + #home-content img { + width: 300px; + } + + } diff --git a/test/.eslintrc b/test/.eslintrc index 55f121d1..70e485b3 100644 --- a/test/.eslintrc +++ b/test/.eslintrc @@ -1,5 +1,19 @@ { "env": { - "jest": true + "jest": true, + "node": true + }, + "rules": { + "no-restricted-syntax": [ + "error", + { + "selector": "NewExpression[callee.name='Set']", + "message": "Sets are not allowed." + } + ] + }, + "parserOptions": { + "ecmaVersion": 6 } + } diff --git a/test/data.spec.js b/test/data.spec.js index f1c87a45..2b3e2ec9 100644 --- a/test/data.spec.js +++ b/test/data.spec.js @@ -1,30 +1,265 @@ -import { prom, countSpecies, countVehicles, alphabeticalOrderPeople, alphabeticalOrderFilms } from '../src/data.js'; +import { alphabeticalOrderFilms, alphabeticalOrderPeople, yearOrderMovies, countSpecies, countVehicles, prom } from '../src/data.js'; -//import { test, expect } from ''; +const moviesDataGhibli = { + "films": [ + { + "title": "Porco Rosso", + "director": "Hayao Miyazaki", + "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/4/41/Porco_Rosso.jpg", + "release_date": "1992", + "rt_score": "94", + "people": [ + { + "name": "Porco Rosso", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/02/Porcellino%21.png", + "age": "47", + "specie": "Human" + }, + { + "name": "Donald Curtis", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/6/61/Donald_Curtis.jpg", + "age": "Adult", + "specie": "Human" + } + ], + "vehicles": [ + { + "name": "Red Wing", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8f/Porco%27s_Plane.jpg" + }, + { + "name": "Dabohaze", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/9/99/Aiuto_Gang.jpg" + } + ] + }, + + { + "title": "My Neighbor Totoro", + "director": "Hayao Miyazaki", + "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/d/db/My_Neighbor_Totoro.jpg", + "release_date": "1988", + "rt_score": "93", + "people": [ + { + "name": "Satsuki Kusakabe", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/f/f2/Satsuki_Kusakabe.jpg", + "age": "11", + "specie": "Human" + }, + { + "name": "Mei Kusakabe", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/01/Mei_Kusakabe.jpg", + "age": "4", + "specie": "Human" + } + ] + }, + { -test.beforeEach(async ({page}) => { - await page.goto(' http://localhost:3000'); -}); + "title": "Castle in the Sky", + "director": "Hayao Miyazaki", + "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c1/Castle_in_the_Sky.jpg", + "release_date": "1986", + "rt_score": "95", + "people": [ + { + "name": "Pazu", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8b/Pazu.jpg", + "age": "13", + "specie": "Human" + }, + { + "name": "Lusheeta Toel Ul Laputa", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c3/Sheeta.jpg", + "age": "13", + "specie": "Human" + } + ], + "vehicles": [ + { + "name": "Air Destroyer Goliath", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/e/e5/Goliath.png" + } + ] + } + ] +}; -describe('Testing filtros películas', () => { +describe('Testing filtrar películas por orden alfabético', () => { + const moviesDataDataGhibli = { + "films": [ + { + "title": "Castle in the Sky", + "director": "Hayao Miyazaki", + "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c1/Castle_in_the_Sky.jpg", + "release_date": "1986", + "rt_score": "95", + "people": [ + { + "name": "Pazu", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8b/Pazu.jpg", + "age": "13", + "specie": "Human" + }, + { + "name": "Lusheeta Toel Ul Laputa", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c3/Sheeta.jpg", + "age": "13", + "specie": "Human" + } + ], + "vehicles": [ + { + "name": "Air Destroyer Goliath", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/e/e5/Goliath.png" + } + ] + }, + { + "title": "My Neighbor Totoro", + "director": "Hayao Miyazaki", + "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/d/db/My_Neighbor_Totoro.jpg", + "release_date": "1988", + "rt_score": "93", + "people": [ + { + "name": "Satsuki Kusakabe", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/f/f2/Satsuki_Kusakabe.jpg", + "age": "11", + "specie": "Human" + }, + { + "name": "Mei Kusakabe", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/01/Mei_Kusakabe.jpg", + "age": "4", + "specie": "Human" + } + ] + }, + { + "title": "Porco Rosso", + "director": "Hayao Miyazaki", + "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/4/41/Porco_Rosso.jpg", + "release_date": "1992", + "rt_score": "94", + "people": [ + { + "name": "Porco Rosso", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/02/Porcellino%21.png", + "age": "47", + "specie": "Human" + }, + { + "name": "Donald Curtis", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/6/61/Donald_Curtis.jpg", + "age": "Adult", + "specie": "Human" + } + ], + "vehicles": [ + { + "name": "Red Wing", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8f/Porco%27s_Plane.jpg" + }, + { + "name": "Dabohaze", + "img": "https://static.wikia.nocookie.net/studio-ghibli/images/9/99/Aiuto_Gang.jpg" + } + ] + } + ] + }; it('debería mostrar las películas ordenadas alfabéticamente', () => { - expect(typeof alphabeticalOrderFilms).toBe('alphabeticalOrderFilms'); + expect(typeof alphabeticalOrderFilms).toBe('function'); + }); + + it('returns `Castle in the Sky, My Neighbor Totoro, Porco Rosso`', () => { + const films = moviesDataGhibli.films; + expect(alphabeticalOrderFilms(films)).toEqual(moviesDataDataGhibli.films); }); }); +describe('Contar número de especies', () => { + it('debería ser una función', () => { + expect(typeof countSpecies).toBe('function'); + }); + + it('debería retornar el total de especies únicas en la data proporcionada', () => { + const films = moviesDataGhibli.films; + const totalSpecies = countSpecies(films); + expect(totalSpecies).toBe(1); + }); +}); -/*/describe('example', () => { - it('is a function', () => { - expect(typeof example).toBe('function'); +describe('Contar número de vehículos', () => { + it('debería ser una función', () => { + expect(typeof countVehicles).toBe('function'); + }); + + it('debería retornar el total de vehículos únicos en la data proporcionada', () => { + const films = moviesDataGhibli.films; + const totalVehicles = countVehicles(films); + expect(totalVehicles).toBe(3); + }); +}); + +describe('Promediar puntajes', () => { + it('debería ser una función', () => { + expect(typeof prom).toBe('function'); + }); + + it('debería retornar el promedio de puntaje en rotten tomatoes para la data proporcionada', () => { + const films = moviesDataGhibli.films; + const promMovies = prom(films); + expect(promMovies).toBe(94); + }); +}); + +describe('Testing filtrar personajes por orden alfabético', () => { + it('debería ser una función', () => { + expect(typeof alphabeticalOrderPeople).toBe('function'); }); - it('returns `example`', () => { - expect(example()).toBe('example'); + it('debería retornar el listado de personas ordenadas alfabéticamente', () => { + const films = moviesDataGhibli.films; + const expectedPeople = [ + 'Donald Curtis', + 'Lusheeta Toel Ul Laputa', + 'Mei Kusakabe', + 'Pazu', + 'Porco Rosso', + 'Satsuki Kusakabe', + ]; + const peopleList = alphabeticalOrderPeople(films).map(person => person.name); + expect(peopleList).toEqual(expectedPeople); }); }); +describe('Testing filtrar películas por orden cronológico', () => { + it('debería ser una función', () => { + expect(typeof yearOrderMovies).toBe('function'); + }); + + it('debería retornar los nombres de películas ordenadas por año de lanzamiento', () => { + const films = moviesDataGhibli.films; + const expectedFilms = ['1986', '1988', '1992']; + const filmsList = yearOrderMovies(films).map(films => films.release_date); + expect(filmsList).toEqual(expectedFilms); + }); +}); + + + + + + + + + +/* describe('anotherExample', () => { it('is a function', () => { expect(typeof anotherExample).toBe('function'); From 9b34ca13bb62c88c944fde925f5e4edc1fceaf67 Mon Sep 17 00:00:00 2001 From: oolidu Date: Thu, 27 Jul 2023 10:28:01 -0400 Subject: [PATCH 27/30] clicks faltantes de curiosidades y primera parte README --- README.md | 83 ++++++++---------------- src/data.js | 41 ++++++------ src/index.html | 2 +- src/main.js | 150 ++++++++++++++++++++++++++++++------------ src/style.css | 37 ++++++----- test/data.spec.js | 162 +++++++++++++--------------------------------- 6 files changed, 223 insertions(+), 252 deletions(-) diff --git a/README.md b/README.md index 54bc5d50..dd1624e4 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Data LoversSSS +# Data Lovers -## ÍndiceAAA +## Índice -* [1. Preámbulo](#1-preámbulo) +* [1. ¿Qué haré?](#1-preámbulo) * [2. Resumen del proyecto](#2-resumen-del-proyecto) * [3. Objetivos de aprendizaje](#3-objetivos-de-aprendizaje) * [4. Consideraciones generales](#4-consideraciones-generales) @@ -14,67 +14,40 @@ *** -## 1. Preámbulo--CAMBIO +## 1. ¿Qué haré? -Según [Forbes](https://www.forbes.com/sites/bernardmarr/2018/05/21/how-much-data-do-we-create-every-day-the-mind-blowing-stats-everyone-should-read), -el 90% de la data que existe hoy ha sido creada durante los últimos dos años. -Cada día generamos 2.5 millones de terabytes de datos, una cifra sin -precedentes. +Página web para visualizar un conjunto (set) de datos: +- Visualizar la data +- Filtrar la data +- Ordenar la data +- Hacer algún cálculo agregado -No obstante, los datos por sí mismos son de poca utilidad. Para que esas -grandes cantidades de datos se conviertan en **información** fácil de leer para -los usuarios, necesitamos entender y procesar estos datos. Una manera simple de -hacerlo es creando _interfaces_ y _visualizaciones_. +La página web se desarrollará teniendo en cuenta la información que se descubra acerca de las preferencias y requerimientos del usuario, de modo que la visualización de los datos se adapte a sus necesidades específicas. -En la siguiente imagen, podrás ver cómo con la data que que se ve en la parte -izquierda se puede construir una interfaz amigable y entendible por las -usuarias, al lado derecho. +¿Por qué lo haré? +El objetivo principal de este proyecto es aprender a diseñar y construir una interfaz web donde se pueda visualizar y manipular data, entendiendo lo que el usuario necesita. -![pokemon-data-to-ui](https://user-images.githubusercontent.com/12631491/218505816-c6d11758-9de4-428f-affb-2a56ea4d68c4.png) -## 2. Resumen del proyecto +## 2. ¿Qué entregaré? -En este proyecto **construirás una _página web_ para visualizar un -_conjunto (set) de datos_** que se adecúe a lo que descubras que tu usuario -necesita. +El proyecto será entregado subiendo el código a GitHub (commit/push) y la interfaz será desplegada usando GitHub Pages. -Como entregable final tendrás una página web que permita **visualizar la data, -filtrarla, ordenarla y hacer algún cálculo agregado**. Con cálculo agregado -nos referimos a distintos cálculos que puedes hacer con la data para mostrar -información aún más relevante para los usuarios (promedio, el valor máximo -o mínimo, etc). +Esta es mi interpretación de los criterios mínimos de aceptación: -Esta vez te proponemos una serie de datos de diferentes _temáticas_ para que -explores y decidas con qué temática te interesa trabajar. Hemos elegido -específicamente estos sets de datos porque creemos que se adecúan bien a esta -etapa de tu aprendizaje. +* Definición del producto (1era etapa) +- Documenta: README.md: proceso de diseño y cómo el producto resuelve el problema (o problemas) que tiene tu usuario. +- Historias de usuario: incluir la definición de terminado (definition of done) y los criterios de aceptación para cada una. +- Termina una historia de usuario antes de pasar a la siguiente. +- Diseño de la interfaz de usuario: prototipo de baja fidelidad (papel +fotos), alta fidelidad (ideal), testeos de usabilidad (para iterar, con problemas de usabilidad y sus soluciones - no son lo mismo que las pruebas unitarias). +* Implementación (2da etapa) +- Implementación de la Interfaz de Usuario (HTML/CSS/JS): +- Muestra +- Interactúa +- Responsive (se adapta a los tamaños de pantalla) +- Visual design +* Pruebas (3ra etapa) +- Pruebas unitarias que no son lo mismo que los test de usabilidad en prototipos: para las funciones encargadas de procesar, filtrar y ordenar la data, así como calcular estadísticas (cubrir al menos el 70%). -Una vez que definas tu área de interés, buscar entender quién es tu usuario -y qué necesita saber o ver exactamente; luego podrás construir la interfaz que -le ayude a interactuar y entender mejor esos datos. - -Estos son datos que te proponemos: - -* [Pokémon](src/data/pokemon/pokemon.json): - En este set encontrarás una lista con los 251 Pokémon de la región de Kanto - y Johto, junto con sus respectivas estadísticas usadas en el juego - [Pokémon GO](http://pokemongolive.com). - - [Investigación con jugadores de Pokémon Go](src/data/pokemon/README.md) - -* [League of Legends - Challenger leaderboard](src/data/lol/lol.json): - Este set de datos muestra la lista de campeones en una liga del - juego League of Legends (LoL). - - [Investigación con jugadores de LoL](src/data/lol/README.md) - -* [Rick and Morty](src/data/rickandmorty/rickandmorty.json). - Este set nos proporciona la lista de los personajes de la serie Rick and - Morty. [API Rick and Morty](https://rickandmortyapi.com). - - [Investigación con seguidores de Rick and Morty](src/data/rickandmorty/README.md) - -* [Juegos Olímpicos de Río de Janeiro](src/data/athletes/athletes.json). - Este set nos proporciona la lista de los atletas que ganaron medallas en las - olímpiadas de Río de Janeiro. - - [Investigación con interesados en juegos olímpicos de Río de Janeiro](src/data/athletes/README.md) * [Studio Ghibli](src/data/ghibli/ghibli.json). En este set encontrarás una lista de las animaciones y sus personajes del diff --git a/src/data.js b/src/data.js index 4ef88496..7e2062e8 100644 --- a/src/data.js +++ b/src/data.js @@ -9,19 +9,19 @@ function prom(array) { let contador = 0; for (let i = 0; i < array.length; i++) { - const score = parseFloat(array[i].rt_score); - if (!isNaN(score)) { + const score = parseFloat(array[i].rt_score);//convertir array en número + if (!isNaN(score)) { //...si es un número suma = suma + score; contador++; } } - return contador === 0 ? 0 : suma / contador; + return contador === 0 ? 0 : suma / contador; //operador ternario los dos puntos separan las dos alternativas } //______________TOTAL DE ESPECIES function countSpecies(array) { - const uniqueSpecies = new Set(); + const uniqueSpecies = new Set();//para crear conjunto único array.forEach(film => { film.people.filter(people => people.specie).forEach(person => { const specie = person.specie; @@ -32,17 +32,6 @@ function countSpecies(array) { } //______________TOTAL DE VEHÍCULOS -/*function countVehicles(array) { - const uniqueVehicles = new Set(); - array.forEach(film => { - film.vehicles.forEach(vehicles => { - const arrayVehicles = Object.keys(vehicles); - arrayVehicles.forEach(vehicles => uniqueVehicles.add(vehicles)); - }); - }); - return uniqueVehicles.size; -}*/ - function countVehicles(array) { const uniqueVehicles = new Set(); array.forEach(film => { @@ -53,7 +42,7 @@ function countVehicles(array) { }); } }); - return uniqueVehicles.size; + return uniqueVehicles.size; } //______PERSONAJES ORDENADOS ALFABÉTICAMENTE @@ -65,7 +54,7 @@ function alphabeticalOrderPeople(array) { result.push({ name, film: film.title, img }); }); }); - result.sort((a, b) => a.name.localeCompare(b.name)); + result.sort((a, b) => a.name.localeCompare(b.name));//método sort para ordenar el arreglo result return result; } @@ -83,7 +72,12 @@ function yearOrderMovies(array) { array.sort((a, b) => a.release_date.localeCompare(b.release_date)); - return array; + const orderedMoviesAge = array.map(film => ({ + title: film.title, + release_date: film.release_date, + })); + + return orderedMoviesAge; } //______PELÍCULAS ORDENADAS POR DIRECTOR @@ -94,20 +88,27 @@ function directorOrderMovies(array) { filteredMovies.sort((a, b) => a.director.localeCompare(b.director)); + const orderedMoviesDirector = array.map(film => ({ + title: film.title, + director: film.director, + })); + + return orderedMoviesDirector; } + //_____________________________________________________________________________________ //______PERSONAJES ORDENADOS POR PELÍCULA function moviesOrderPeople(array) { - const resultArray = []; + array.forEach(film => { film.people.filter(people => people.name).forEach(({ name, img }) => resultArray.push({ name, film: film.title, img })); }); - + resultArray.sort((a, b) => a.film.localeCompare(b.film)); return resultArray; diff --git a/src/index.html b/src/index.html index 00da931a..379179c1 100644 --- a/src/index.html +++ b/src/index.html @@ -72,7 +72,7 @@
    -
    +
    diff --git a/src/main.js b/src/main.js index ab3fb05c..59f4f079 100644 --- a/src/main.js +++ b/src/main.js @@ -13,8 +13,6 @@ const people = alphabeticalOrderPeople(data.films); //HTML de la lista de personas const peopleList = document.getElementById('people-list'); -//const contenedorList = document.getElementById('contenedor'); -//peopleList.innerHTML = ''; // Limpiar el contenido de la lista de personas //Recorrer el arreglo ordenado y crear elementos HTML para cada persona people.forEach(people => { @@ -46,13 +44,15 @@ ordenAlfabeticoPeopleLink.addEventListener('click', function(event) { peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; homeContent.style.display = 'none'; + vehiclesElement.style.display = 'none'; + promElement.style.display = 'none'; + + } }); //______PELÍCULAS ORDENADAS ALFABÉTICAMENTE - const films = data.films; - alphabeticalOrderFilms(films); //console.log("estoy ordenando películas", films); @@ -87,14 +87,14 @@ ordenAlfabeticoFilmsLink.addEventListener('click', function(event) { peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; homeContent.style.display = 'none'; + vehiclesElement.style.display = 'none'; + promElement.style.display = 'none'; } }); //______PELÍCULAS ORDENADAS POR AÑO ('release_date') - const filmsDate = data.films; - yearOrderMovies(filmsDate); //console.log("estoy ordenando películas por año", filmsDate); @@ -133,45 +133,33 @@ ordenDateFilmsLink.addEventListener('click', function(event) { peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; homeContent.style.display = 'none'; + vehiclesElement.style.display = 'none'; + promElement.style.display = 'none'; } }); //______PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') const peopleFilm = data.films; -moviesOrderPeople(peopleFilm); - -//console.log("Estoy clasificando personajes por película", data.films); -//console.log(data.films); -/*const peopleFilm = [];*/ -//data.films.forEach(film => { -//film.people.filter(people => people.name).forEach(({ name, img }) => peopleFilm.push({ name, film: film.title, img })); -//}); - - -//peopleFilm.sort((a, b) => a.film.localeCompare(b.film)); -//console.log("Estoy clasificando personajes por película", peopleFilm); +const peopleFilmOrdered = moviesOrderPeople(peopleFilm); // Almacena el resultado ordenado en una nueva variable const peopleFilmList = document.getElementById('people-list-film'); // Recorrer el arreglo ordenado y crear elementos HTML para cada personaje - -peopleFilm.forEach(film => { +peopleFilmOrdered.forEach(({ name, film, img }) => { const peopleItem = document.createElement('div'); const peopleImage = document.createElement('img'); const peopleName = document.createElement('p'); - const peopleFilm = document.createElement('p'); - film.people.forEach (people=> { - peopleImage.src = people.img; - peopleName.textContent = people.name; - peopleFilm.textContent = people.film; + const peopleFilmElement = document.createElement('p'); // Cambiar el nombre para evitar conflicto de nombres - peopleItem.appendChild(peopleImage); - peopleItem.appendChild(peopleName); - peopleItem.appendChild(peopleFilm); - peopleFilmList.appendChild(peopleItem); + peopleImage.src = img; + peopleName.textContent = name; + peopleFilmElement.textContent = film; // Cambiar el nombre para evitar conflicto de nombres - })}, -); + peopleItem.appendChild(peopleImage); + peopleItem.appendChild(peopleName); + peopleItem.appendChild(peopleFilmElement); // Cambiar el nombre para evitar conflicto de nombres + peopleFilmList.appendChild(peopleItem); +}); //______CLICK PERSONAJES ORDENADOS POR PELÍCULA ('people' y 'film') @@ -189,14 +177,14 @@ ordenPeopleFilmsLink.addEventListener('click', function(event) { peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; homeContent.style.display = 'none'; + vehiclesElement.style.display = 'none'; + promElement.style.display = 'none'; } }); //______PELÍCULAS ORDENADAS POR DIRECTOR ('director') - const filmsDirector = data.films; - directorOrderMovies(filmsDirector); //console.log("estoy ordenando películas por director", filmsDirector); @@ -235,12 +223,13 @@ ordenDirectorFilmsLink.addEventListener('click', function(event) { peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; homeContent.style.display = 'none'; + vehiclesElement.style.display = 'none'; + promElement.style.display = 'none'; } }); //______PERSONAJES ORDENADOS POR GRUPO ETARIO ('age') - const agePeople = []; data.films.forEach(film => { film.people.filter(people => Number(people.age)).forEach(people => agePeople.push(people)); @@ -292,6 +281,8 @@ ordenPeopleAgeLink.addEventListener('click', function(event) { peopleFilmList.style.display = 'none'; filmsListSpecie.style.display = 'none'; homeContent.style.display = 'none'; + vehiclesElement.style.display = 'none'; + promElement.style.display = 'none'; } }); @@ -340,26 +331,103 @@ ordenSpecieFilmsLink.addEventListener('click', function(event) { peopleListAge.style.display = 'none'; peopleFilmList.style.display = 'none'; homeContent.style.display = 'none'; + promElement.style.display = 'none'; + vehiclesElement.style.display = 'none'; } }); //______________TOTAL DE ESPECIES -countSpecies(data.films); -//console.log("Estoy mostrando el total de especies", data.films); +const totalSpeciesCount = data.films; +const mostrarTotalSpecies = countSpecies(totalSpeciesCount); +console.log("Estoy mostrando el total de especies", countSpecies(data.films)); + +const resulTotalSpecies = document.querySelector('.total-species'); +resulTotalSpecies.textContent = `Total de Especies en Ghibli: ${mostrarTotalSpecies}`; + +const speciesTotalLink = document.getElementById('people-specie-prom'); + +speciesTotalLink.addEventListener('click', function(event) { + event.preventDefault(); + + if (resulTotalSpecies.style.display === '' || resulTotalSpecies.style.display === 'none') { + resulTotalSpecies.style.display = 'grid'; + filmsDateList.style.display = 'none'; // Oculta filmsDateList + filmsList.style.display = 'none'; // Oculta filmsList + peopleFilmList.style.display = 'none'; + filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; + peopleList.style.display = 'none'; + promElement.style.display = 'none'; + vehiclesElement.style.display = 'none'; + } + +}); + //______________TOTAL DE VEHÍCULOS -countVehicles(data.films); -//console.log("Estoy mostrando el total de vehículos", data.films); +const totalVehiclesCount = data.films; +const mostrarTotalVehiculos = countVehicles(totalVehiclesCount); +console.log("Estoy mostrando el total de vehículos", countVehicles(data.films)); -//______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') +const vehiclesElement = document.getElementById('vehicles'); +vehiclesElement.textContent = `Total de Vehículos: ${mostrarTotalVehiculos}`; -prom(data.films); +const vehiclesLink = document.getElementById('vehicles-prom'); + +vehiclesLink.addEventListener('click', function(event) { + event.preventDefault(); + + if (vehiclesElement.style.display === '' || vehiclesElement.style.display === 'none') { + vehiclesElement.style.display = 'grid'; + filmsDateList.style.display = 'none'; // Oculta filmsDateList + filmsList.style.display = 'none'; // Oculta filmsList + peopleFilmList.style.display = 'none'; + filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; + peopleList.style.display = 'none'; + promElement.style.display = 'none'; + } + +}); + + + + +//______________SCORE PROMEDIO EN ROTTEN TOMATOES ('rt_score') + +const score = data.films; +const mostrarScore = prom(score); //console.log("Estoy mostrando el promedio en rotten tomatoes", prom(data.films)); +const promElement = document.getElementById('prom'); +promElement.textContent = `Promedio Rotten Tomatoes: ${mostrarScore}`; + +const promPromLink = document.getElementById('prom-prom'); + +promPromLink.addEventListener('click', function(event) { + event.preventDefault(); + if (promElement.style.display === '' || promElement.style.display === 'none') { + promElement.style.display = 'grid'; + filmsDateList.style.display = 'none'; // Oculta filmsDateList + filmsList.style.display = 'none'; // Oculta filmsList + peopleFilmList.style.display = 'none'; + filmsListDirector.style.display = 'none'; + peopleListAge.style.display = 'none'; + filmsListSpecie.style.display = 'none'; + homeContent.style.display = 'none'; + peopleList.style.display = 'none'; + vehiclesElement.style.display = 'none'; + } + +}); //______CLICK home const homeContent = document.getElementById('home-content') @@ -385,5 +453,7 @@ homeLink.addEventListener('click', function(event) { filmsListDirector.style.display = 'none'; peopleListAge.style.display = 'none'; filmsListSpecie.style.display = 'none'; + vehiclesElement.style.display = 'none'; + promElement.style.display = 'none'; } }); \ No newline at end of file diff --git a/src/style.css b/src/style.css index 03775149..d9a98cf4 100644 --- a/src/style.css +++ b/src/style.css @@ -111,25 +111,6 @@ footer { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } - - /*#contenedor { - background-color: rgba(255, 255, 255, 0.5); - margin-top: 40px; - margin-bottom: 60px; - margin-left: 120px; - margin-right: 120px; - display:flex; - flex-wrap: wrap; - gap: 30px; - padding: 30px; - cursor: pointer; - border-radius: 40px; - text-align: center; - font-weight: bold; - justify-content: space-between; - - }*/ - img { width: 150px; height:fit-content; @@ -147,6 +128,24 @@ img { font-family: 'Calibri', 'Trebuchet MS', sans-serif; } +/*#vehicles, #people-specie, #prom*/ + #prom, #vehicles { + background-color: rgba(255, 255, 255, 0.5); + padding: 30px; + font-size: 16px; + font-weight: bold; + border-radius: 40px; + display:none; + } + + .total-species { + background-color: rgba(255, 255, 255, 0.5); + padding: 30px; + font-size: 16px; + font-weight: bold; + border-radius: 40px; + display:none; + } /* Estilos para dispositivos con un ancho máximo de 768 píxeles */ @media screen and (max-width: 930px) { diff --git a/test/data.spec.js b/test/data.spec.js index 2b3e2ec9..e7cb5452 100644 --- a/test/data.spec.js +++ b/test/data.spec.js @@ -1,23 +1,20 @@ -import { alphabeticalOrderFilms, alphabeticalOrderPeople, yearOrderMovies, countSpecies, countVehicles, prom } from '../src/data.js'; +import { alphabeticalOrderFilms, alphabeticalOrderPeople, yearOrderMovies, directorOrderMovies, countSpecies, countVehicles, prom, moviesOrderPeople } from '../src/data.js'; const moviesDataGhibli = { "films": [ { "title": "Porco Rosso", "director": "Hayao Miyazaki", - "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/4/41/Porco_Rosso.jpg", "release_date": "1992", - "rt_score": "94", + "rt_score": "not a number", "people": [ { "name": "Porco Rosso", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/02/Porcellino%21.png", "age": "47", "specie": "Human" }, { "name": "Donald Curtis", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/6/61/Donald_Curtis.jpg", "age": "Adult", "specie": "Human" } @@ -25,11 +22,9 @@ const moviesDataGhibli = { "vehicles": [ { "name": "Red Wing", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8f/Porco%27s_Plane.jpg" }, { "name": "Dabohaze", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/9/99/Aiuto_Gang.jpg" } ] }, @@ -37,19 +32,16 @@ const moviesDataGhibli = { { "title": "My Neighbor Totoro", "director": "Hayao Miyazaki", - "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/d/db/My_Neighbor_Totoro.jpg", "release_date": "1988", "rt_score": "93", "people": [ { "name": "Satsuki Kusakabe", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/f/f2/Satsuki_Kusakabe.jpg", "age": "11", "specie": "Human" }, { "name": "Mei Kusakabe", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/01/Mei_Kusakabe.jpg", "age": "4", "specie": "Human" } @@ -59,19 +51,16 @@ const moviesDataGhibli = { "title": "Castle in the Sky", "director": "Hayao Miyazaki", - "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c1/Castle_in_the_Sky.jpg", "release_date": "1986", "rt_score": "95", "people": [ { "name": "Pazu", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8b/Pazu.jpg", "age": "13", "specie": "Human" }, { "name": "Lusheeta Toel Ul Laputa", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c3/Sheeta.jpg", "age": "13", "specie": "Human" } @@ -79,108 +68,26 @@ const moviesDataGhibli = { "vehicles": [ { "name": "Air Destroyer Goliath", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/e/e5/Goliath.png" } ] } ] }; - +//__________________________________________________________________________________ describe('Testing filtrar películas por orden alfabético', () => { - const moviesDataDataGhibli = { - "films": [ - { - "title": "Castle in the Sky", - "director": "Hayao Miyazaki", - "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c1/Castle_in_the_Sky.jpg", - "release_date": "1986", - "rt_score": "95", - "people": [ - { - "name": "Pazu", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8b/Pazu.jpg", - "age": "13", - "specie": "Human" - }, - { - "name": "Lusheeta Toel Ul Laputa", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/c/c3/Sheeta.jpg", - "age": "13", - "specie": "Human" - } - ], - "vehicles": [ - { - "name": "Air Destroyer Goliath", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/e/e5/Goliath.png" - } - ] - }, - { - "title": "My Neighbor Totoro", - "director": "Hayao Miyazaki", - "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/d/db/My_Neighbor_Totoro.jpg", - "release_date": "1988", - "rt_score": "93", - "people": [ - { - "name": "Satsuki Kusakabe", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/f/f2/Satsuki_Kusakabe.jpg", - "age": "11", - "specie": "Human" - }, - { - "name": "Mei Kusakabe", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/01/Mei_Kusakabe.jpg", - "age": "4", - "specie": "Human" - } - ] - }, - { - "title": "Porco Rosso", - "director": "Hayao Miyazaki", - "poster": "https://static.wikia.nocookie.net/studio-ghibli/images/4/41/Porco_Rosso.jpg", - "release_date": "1992", - "rt_score": "94", - "people": [ - { - "name": "Porco Rosso", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/0/02/Porcellino%21.png", - "age": "47", - "specie": "Human" - }, - { - "name": "Donald Curtis", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/6/61/Donald_Curtis.jpg", - "age": "Adult", - "specie": "Human" - } - ], - "vehicles": [ - { - "name": "Red Wing", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/8/8f/Porco%27s_Plane.jpg" - }, - { - "name": "Dabohaze", - "img": "https://static.wikia.nocookie.net/studio-ghibli/images/9/99/Aiuto_Gang.jpg" - } - ] - } - ] - }; it('debería mostrar las películas ordenadas alfabéticamente', () => { expect(typeof alphabeticalOrderFilms).toBe('function'); }); it('returns `Castle in the Sky, My Neighbor Totoro, Porco Rosso`', () => { const films = moviesDataGhibli.films; - expect(alphabeticalOrderFilms(films)).toEqual(moviesDataDataGhibli.films); + expect(alphabeticalOrderFilms(films)[0].title).toEqual("Castle in the Sky"); + expect(alphabeticalOrderFilms(films)[1].title).toEqual("My Neighbor Totoro"); + expect(alphabeticalOrderFilms(films)[2].title).toEqual("Porco Rosso"); }); }); - +//__________________________________________________________________________________ describe('Contar número de especies', () => { it('debería ser una función', () => { expect(typeof countSpecies).toBe('function'); @@ -192,7 +99,7 @@ describe('Contar número de especies', () => { expect(totalSpecies).toBe(1); }); }); - +//__________________________________________________________________________________ describe('Contar número de vehículos', () => { it('debería ser una función', () => { expect(typeof countVehicles).toBe('function'); @@ -204,7 +111,7 @@ describe('Contar número de vehículos', () => { expect(totalVehicles).toBe(3); }); }); - +//__________________________________________________________________________________ describe('Promediar puntajes', () => { it('debería ser una función', () => { expect(typeof prom).toBe('function'); @@ -216,7 +123,7 @@ describe('Promediar puntajes', () => { expect(promMovies).toBe(94); }); }); - +//__________________________________________________________________________________ describe('Testing filtrar personajes por orden alfabético', () => { it('debería ser una función', () => { expect(typeof alphabeticalOrderPeople).toBe('function'); @@ -236,7 +143,7 @@ describe('Testing filtrar personajes por orden alfabético', () => { expect(peopleList).toEqual(expectedPeople); }); }); - +//__________________________________________________________________________________ describe('Testing filtrar películas por orden cronológico', () => { it('debería ser una función', () => { expect(typeof yearOrderMovies).toBe('function'); @@ -244,28 +151,49 @@ describe('Testing filtrar películas por orden cronológico', () => { it('debería retornar los nombres de películas ordenadas por año de lanzamiento', () => { const films = moviesDataGhibli.films; - const expectedFilms = ['1986', '1988', '1992']; - const filmsList = yearOrderMovies(films).map(films => films.release_date); + const expectedFilms = [ + { "title": "Castle in the Sky", "release_date": "1986" }, + { "title": "My Neighbor Totoro", "release_date": "1988" }, + { "title": "Porco Rosso", "release_date": "1992" } + ]; + const filmsList = yearOrderMovies(films); expect(filmsList).toEqual(expectedFilms); }); }); +//__________________________________________________________________________________ +describe('Testing filtrar películas por orden director', () => { + it('debería ser una función', () => { + expect(typeof directorOrderMovies).toBe('function'); + }); + it('debería retornar los nombres de películas ordenadas por cada director', () => { + const films = moviesDataGhibli.films; + const expectedFilmsDirectors = [ + { "title": "Castle in the Sky", "director": "Hayao Miyazaki" }, + { "title": "My Neighbor Totoro", "director": "Hayao Miyazaki" }, + { "title": "Porco Rosso", "director": "Hayao Miyazaki" }, + ]; + const filmsList = directorOrderMovies(films); + expect(filmsList).toEqual(expectedFilmsDirectors); + }); +}); +//__________________________________________________________________________________ +describe('Testing filtrar personajes por películas', () => { + it('debería ser una función', () => { + expect(typeof moviesOrderPeople).toBe('function'); + }); + it('debería retornar los nombres de personajes ordenados por películas', () => { + const films = moviesDataGhibli.films; + expect(moviesOrderPeople(films)[0]).toEqual({ "name": "Pazu", "film": "Castle in the Sky" }); + expect(moviesOrderPeople(films)[1]).toEqual({ "name": "Lusheeta Toel Ul Laputa", "film": "Castle in the Sky" }); + expect(moviesOrderPeople(films)[2]).toEqual({ "name": "Satsuki Kusakabe", "film": "My Neighbor Totoro" }); + }); +}); - -/* -describe('anotherExample', () => { - it('is a function', () => { - expect(typeof anotherExample).toBe('function'); - }); - - it('returns `anotherExample`', () => { - expect(anotherExample()).toBe('OMG'); - }); -});*/ From 6206176a14925cc7fe26552ebd729300578993a9 Mon Sep 17 00:00:00 2001 From: oolidu Date: Fri, 28 Jul 2023 14:33:05 -0400 Subject: [PATCH 28/30] readme --- README.md | 565 ++++-------------------------------------------------- 1 file changed, 34 insertions(+), 531 deletions(-) diff --git a/README.md b/README.md index dd1624e4..7266ed28 100644 --- a/README.md +++ b/README.md @@ -34,565 +34,68 @@ El proyecto será entregado subiendo el código a GitHub (commit/push) y la inte Esta es mi interpretación de los criterios mínimos de aceptación: -* Definición del producto (1era etapa) +Definición del producto (1era etapa) - Documenta: README.md: proceso de diseño y cómo el producto resuelve el problema (o problemas) que tiene tu usuario. - Historias de usuario: incluir la definición de terminado (definition of done) y los criterios de aceptación para cada una. - Termina una historia de usuario antes de pasar a la siguiente. - Diseño de la interfaz de usuario: prototipo de baja fidelidad (papel +fotos), alta fidelidad (ideal), testeos de usabilidad (para iterar, con problemas de usabilidad y sus soluciones - no son lo mismo que las pruebas unitarias). -* Implementación (2da etapa) +Implementación (2da etapa) - Implementación de la Interfaz de Usuario (HTML/CSS/JS): - Muestra - Interactúa - Responsive (se adapta a los tamaños de pantalla) - Visual design -* Pruebas (3ra etapa) +Pruebas (3ra etapa) - Pruebas unitarias que no son lo mismo que los test de usabilidad en prototipos: para las funciones encargadas de procesar, filtrar y ordenar la data, así como calcular estadísticas (cubrir al menos el 70%). * [Studio Ghibli](src/data/ghibli/ghibli.json). - En este set encontrarás una lista de las animaciones y sus personajes del + Este set es el que será mi data. [Studio Ghibli](https://ghiblicollection.com/). - [Investigación con seguidores de las animaciones del Studio Ghibli](src/data/ghibli/README.md) -El objetivo principal de este proyecto es que aprendas a diseñar y construir una -interfaz web donde se pueda visualizar y manipular data, entendiendo lo que el -usuario necesita. +El corazón de este proyecto es la manipulación de datos a través de arreglos y objetos. -## 3. Objetivos de aprendizaje -Reflexiona y luego marca los objetivos que has llegado a entender y aplicar en tu proyecto. Piensa en eso al decidir tu estrategia de trabajo. +## 3. Selección de tema: -### HTML +Una vez definida el área de interés, buscar entender quién es el usuario y qué necesita saber o ver exactamente -- [ ] **Uso de HTML semántico** +### Seleccioné: +Studio Ghibli -
    Links

    +Lo que necesitan usuarias de Ghibli: +Hay un grupo que desea poder interactuar y ver la información de las animaciones y sus personajes. Lo que necesitan las usuarias se reflejan en las historias: - * [HTML semántico](https://curriculum.laboratoria.la/es/topics/html/02-html5/02-semantic-html) - * [Semantics - MDN Web Docs Glossary](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#Semantics_in_HTML) -

    +### Historias: -### CSS +## Historia 1: +Yo, como fanático de Ghibli quiero visualizar la lista de personajes por película. Para analizar los personajes por su película y recordar los que ya he visto pero he olvidado. -- [ ] **Uso de selectores de CSS** +## Criterios de aceptación: +Tiene botón para filtrar personajes por películas. +Se aplica correctamente los filtros de orden por película. +Se realiza un cálculo agregado sobre: +Cada personaje con ficha que contenga: nombre, edad, género y especie. -
    Links

    +## Definición de terminado (se relaciona con la calidad, aplica para el resto de historias de usuarios): +- El usuario entra cómodamente a la página y se desplaza de manera intuitiva +- El usuario reconoce que la página se trata del Studio Ghibli +- Responsive +- Estilos CSS +- Código en el repositorio +- Código pasa los test +- Historia testeada por 2 usuarios que notaron las mejoras después del testeo de usabilidad. - * [Intro a CSS](https://curriculum.laboratoria.la/es/topics/css/01-css/01-intro-css) - * [CSS Selectors - MDN](https://developer.mozilla.org/es/docs/Web/CSS/CSS_Selectors) -

    +## Historia 2: +Yo, como fanático del cine quiero conocer la lista de películas en Ghibli organizadas según sus directores. Con ficha que contenga el poster de la película y breve descripción. Para saber qué directores han repetido producciones con el Studio Ghibli. -- [ ] **Modelo de caja (box model): borde, margen, padding** +## Historia 3: +Yo, como fanático automotriz, quisiera conocer los vehículos raros en las películas Ghibli, ordenados según su clase. Y en su ficha algún tipo de descripción. Para conocer nuevos vehículos. -
    Links

    +## Historia 4: +Yo, como ilustrador, quisiera conocer las especies raras en las películas Ghibli, ordenadas según su clase. Y en su ficha algún tipo de descripción. Para analizar cuántas especies hay en las películas del Studio Ghibli. - * [Box Model & Display](https://curriculum.laboratoria.la/es/topics/css/01-css/02-boxmodel-and-display) - * [The box model - MDN](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model) - * [Introduction to the CSS box model - MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model) - * [CSS display - MDN](https://developer.mozilla.org/pt-BR/docs/Web/CSS/display) - * [display - CSS Tricks](https://css-tricks.com/almanac/properties/d/display/) -

    +Más información sobre las historias y sus actividades específicas se encuentran en el siguiente tablero de figma, incluidas las gráficas de los prototipos de alta y baja fidelidad: https://www.figma.com/file/K6QRYN1ZpzO5Uv6NsJXqI6/SCRUM-DATA-LOVERS?type=design&node-id=0-1&mode=design&t=ei5RKGyngPX5lXQY-0 -- [ ] **Uso de flexbox en CSS** -
    Links

    - - * [A Complete Guide to Flexbox - CSS Tricks](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) - * [Flexbox Froggy](https://flexboxfroggy.com/#es) - * [Flexbox - MDN](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox) -

    - -### Web APIs - -- [ ] **Uso de selectores del DOM** - -
    Links

    - - * [Manipulación del DOM](https://curriculum.laboratoria.la/es/topics/browser/02-dom/03-1-dom-methods-selection) - * [Introducción al DOM - MDN](https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction) - * [Localizando elementos DOM usando selectores - MDN](https://developer.mozilla.org/es/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors) -

    - -- [ ] **Manejo de eventos del DOM (listeners, propagación, delegación)** - -
    Links

    - - * [Introducción a eventos - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/Events) - * [EventTarget.addEventListener() - MDN](https://developer.mozilla.org/es/docs/Web/API/EventTarget/addEventListener) - * [EventTarget.removeEventListener() - MDN](https://developer.mozilla.org/es/docs/Web/API/EventTarget/removeEventListener) - * [El objeto Event](https://developer.mozilla.org/es/docs/Web/API/Event) -

    - -- [ ] **Manipulación dinámica del DOM** - -
    Links

    - - * [Introducción al DOM](https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction) - * [Node.appendChild() - MDN](https://developer.mozilla.org/es/docs/Web/API/Node/appendChild) - * [Document.createElement() - MDN](https://developer.mozilla.org/es/docs/Web/API/Document/createElement) - * [Document.createTextNode()](https://developer.mozilla.org/es/docs/Web/API/Document/createTextNode) - * [Element.innerHTML - MDN](https://developer.mozilla.org/es/docs/Web/API/Element/innerHTML) - * [Node.textContent - MDN](https://developer.mozilla.org/es/docs/Web/API/Node/textContent) -

    - -### JavaScript - -- [ ] **Diferenciar entre tipos de datos primitivos y no primitivos** - -- [ ] **Arrays (arreglos)** - -
    Links

    - - * [Arreglos](https://curriculum.laboratoria.la/es/topics/javascript/04-arrays) - * [Array - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/) - * [Array.prototype.sort() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) - * [Array.prototype.forEach() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) - * [Array.prototype.map() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map) - * [Array.prototype.filter() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) - * [Array.prototype.reduce() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce) -

    - -- [ ] **Objetos (key, value)** - -
    Links

    - - * [Objetos en JavaScript](https://curriculum.laboratoria.la/es/topics/javascript/05-objects/01-objects) -

    - -- [ ] **Variables (declaración, asignación, ámbito)** - -
    Links

    - - * [Valores, tipos de datos y operadores](https://curriculum.laboratoria.la/es/topics/javascript/01-basics/01-values-variables-and-types) - * [Variables](https://curriculum.laboratoria.la/es/topics/javascript/01-basics/02-variables) -

    - -- [ ] **Uso de condicionales (if-else, switch, operador ternario, lógica booleana)** - -
    Links

    - - * [Estructuras condicionales y repetitivas](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/01-conditionals-and-loops) - * [Tomando decisiones en tu código — condicionales - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/conditionals) -

    - -- [ ] **Uso de bucles/ciclos (while, for, for..of)** - -
    Links

    - - * [Bucles (Loops)](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/02-loops) - * [Bucles e iteración - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Loops_and_iteration) -

    - -- [ ] **Funciones (params, args, return)** - -
    Links

    - - * [Funciones (control de flujo)](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/03-functions) - * [Funciones clásicas](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/01-classic) - * [Arrow Functions](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/02-arrow) - * [Funciones — bloques de código reutilizables - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/Functions) -

    - -- [ ] **Pruebas unitarias (unit tests)** - -
    Links

    - - * [Empezando con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/getting-started) -

    - -- [ ] **Módulos de ECMAScript (ES Modules)** - -
    Links

    - - * [import - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/import) - * [export - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/export) -

    - -- [ ] **Uso de linter (ESLINT)** - -- [ ] **Uso de identificadores descriptivos (Nomenclatura y Semántica)** - -- [ ] **Diferenciar entre expresiones (expressions) y sentencias (statements)** - -### Control de Versiones (Git y GitHub) - -- [ ] **Git: Instalación y configuración** - -- [ ] **Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)** - -- [ ] **Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)** - -- [ ] **GitHub: Creación de cuenta y repos, configuración de llaves SSH** - -- [ ] **GitHub: Despliegue con GitHub Pages** - -
    Links

    - - * [Sitio oficial de GitHub Pages](https://pages.github.com/) -

    - -- [ ] **GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)** - -### Centrado en el usuario - -- [ ] **Diseñar y desarrollar un producto o servicio poniendo a las usuarias en el centro** - -### Diseño de producto - -- [ ] **Crear prototipos de alta fidelidad que incluyan interacciones** - -- [ ] **Seguir los principios básicos de diseño visual** - -### Investigación - -- [ ] **Planear y ejecutar testeos de usabilidad de prototipos en distintos niveles de fidelidad** - -
    Links

    - - * [Intro a testeos usabilidad](https://coda.io/@bootcamp-laboratoria/contenido-ux/test-de-usabilidad-15) - * [Pruebas con Usuarios 1 — ¿Qué, cuándo y para qué testeamos?](https://eugeniacasabona.medium.com/pruebas-con-usuarios-1-qu%C3%A9-cu%C3%A1ndo-y-para-qu%C3%A9-testeamos-7c3a89b4b5e7) -

    - -## 4. Consideraciones generales - -* Este proyecto se debe resolver en duplas. -* El rango de tiempo estimado para completar el proyecto es de 3 a 4 Sprints. -* El proyecto será entregado subiendo tu código a GitHub (commit/push) y la - interfaz será desplegada usando [GitHub Pages](https://pages.github.com/). - -## 5. Criterios de aceptación mínimos del proyecto - -Los criterios para considerar que has completado este proyecto son: - -### Definición del producto - -Documenta brevemente tu trabajo en el archivo `README.md` de tu repositorio, -contándonos cómo fue tu proceso de diseño y cómo crees que el producto resuelve -el problema (o problemas) que tiene tu usuario. - -### Historias de usuario - -Una vez que entiendas las necesidades de tus usuarios, escribe las [Historias -de Usuario](https://es.wikipedia.org/wiki/Historias_de_usuario) que representen -todo lo que el usuario necesita hacer/ver. Las **Historias de Usuario** deben -ser el resultado de tu proceso de investigación o _research_ de tus usuarios. - -Asegúrate de incluir la definición de terminado (_definition of done_) y los -Criterios de Aceptación para cada una. - -En la medida de lo posible, termina una historia de usuario antes de pasar -a la siguiente (Cumple con Definición de Terminado + Criterios de Aceptación). - -### Diseño de la Interfaz de Usuario - -#### Prototipo de baja fidelidad - -Durante tu trabajo deberás haber hecho e iterado bocetos (_sketches_) de tu -solución usando papel y lápiz. Te recomendamos tomar fotos de todas las -iteraciones que hagas, que las subas a tu repositorio y las menciones en tu -`README.md`. - -#### Prototipo de alta fidelidad - -Lo siguiente es diseñar tu Interfaz de Usuario (UI por sus siglas en inglés - -_User Interface_). Para eso debes aprender a utilizar alguna herramienta de -diseño visual. Nosotros te recomendamos [Figma](https://www.figma.com/) que es -una herramienta que funciona en el navegador y, además, puedes crear una cuenta -gratis. Sin embargo, eres libre de utilizar otros editores gráficos como -Illustrator, Photoshop, PowerPoint, Keynote, etc. - -El diseño debe representar el _ideal_ de tu solución. Digamos que es lo que -desearías implementar si tuvieras tiempo ilimitado para trabajar. Además, tu -diseño debe seguir los fundamentos de _visual design_. - -#### Testeos de usabilidad - -Durante el reto deberás hacer _tests_ de usabilidad con distintos usuarios, y -en base a los resultados, deberás iterar tus diseños. Cuéntanos -qué problemas de usabilidad detectaste a través de los _tests_ y cómo los -mejoraste en tu propuesta final. - -### Implementación de la Interfaz de Usuario (HTML/CSS/JS) - -Luego de diseñar tu interfaz de usuario deberás trabajar en su implementación. -**No** es necesario que construyas la interfaz exactamente como la diseñaste. -Tu tiempo de hacking es escaso, así que deberás priorizar - -Como mínimo, tu implementación debe: - -1. Mostrar la data en una interfaz: puede ser un card, una tabla, una lista, - etc. -2. Permitir al usuario interactuar para obtener la infomación que necesita. -3. Ser _responsive_, es decir, debe visualizarse sin problemas desde distintos - tamaños de pantallas: móviles, tablets y desktops. -4. Que la interfaz siga los fundamentos de _visual design_. - -### Pruebas unitarias - -El _boilerplate_ de este proyecto no incluye Pruebas Unitarias (_tests_), así es -que tendrás que escribirlas tú para las funciones encargadas de _procesar_, -_filtrar_ y _ordenar_ la data, así como _calcular_ estadísticas. - -Tus _pruebas unitarias_ deben dar una cobertura del 70% de _statements_ -(_sentencias_), _functions_ (_funciones_), _lines_ (_líneas_), y _branches_ -(_ramas_) del archivo `src/data.js` que contenga tus funciones y está detallado -en la sección de [Consideraciones técnicas](#srcdatajs). - -## 6. Hacker edition - -Las secciones llamadas _Hacker Edition_ son **opcionales**. Si **terminaste** -con todo lo anterior y te queda tiempo, intenta completarlas. Así podrás -profundizar y/o ejercitar más sobre los objetivos de aprendizaje del proyecto. - -Features/características extra sugeridas: - -* En lugar de consumir la data estática brindada en este repositorio, puedes - consumir la data de forma dinámica, cargando un archivo JSON por medio de - `fetch`. La carpeta `src/data` contiene una versión `.js` y una `.json` de - de cada set datos. -* Agregarle a tu interfaz de usuario implementada visualizaciones gráficas. Para - ello te recomendamos explorar librerías de gráficas como - [Chart.js](https://www.chartjs.org/) - o [Google Charts](https://developers.google.com/chart/). -* 100% Coverage - -## 7. Consideraciones técnicas - -La lógica del proyecto debe estar implementada completamente en JavaScript -(ES6), HTML y CSS. En este proyecto NO está permitido usar librerías o -frameworks, solo [vanilla JavaScript](https://medium.com/laboratoria-how-to/vanillajs-vs-jquery-31e623bbd46e), -con la excepción de librerías para hacer gráficas (charts); ver -[_Parte opcional_](#6-hacker-edition) más arriba. - -El _boilerplate_ contiene una estructura de archivos como punto de partida así -como toda la configuración de dependencias: - -```text -. -├── EXTRA.md -├── README.md -├── package.json -├── src -| ├── data (según con qué data trabajes) -| | ├── lol -| | | ├── lol.js -| | | ├── lol.json -| | | └── README.md -| | ├── pokemon -| | | ├── pokemon.js -| | | ├── pokemon.json -| | | └── README.md -| | └── rickandmorty -| | | ├── rickandmorty.js -| | | ├── rickandmorty.json -| | | └── README.md -| | └── athletes -| | | ├── athletes.js -| | | ├── athletes.json -| | | └── README.md -| | └── ghibli -| | | ├── ghibli.js -| | | ├── ghibli.json -| | | └── README.md -| ├── data.js -| ├── index.html -| ├── main.js -| └── style.css -└── test - └── data.spec.js - -directory: 7 file: 20 -``` - -### `src/index.html` - -Como en el proyecto anterior, existe un archivo `index.html`. Como ya sabes, -acá va la página que se mostrará al usuario. También nos sirve para indicar -qué scripts se usarán y unir todo lo que hemos hecho. - -### `src/main.js` - -Recomendamos usar `src/main.js` para todo tu código que tenga que ver con -mostrar los datos en la pantalla. Con esto nos referimos básicamente a la -interacción con el DOM. Operaciones como creación de nodos, registro de -manejadores de eventos (_event listeners_ o _event handlers_), .... - -Esta no es la única forma de dividir tu código, puedes usar más archivos y -carpetas, siempre y cuando la estructura sea clara para tus compañeras. - -En este archivo encontrarás una serie de _imports_ _comentados_. Para _cargar_ -las diferentes fuentes de datos tendrás que _descomentar_ la línea -correspondiente. - -Por ejemplo, si "descomentamos" la siguiente línea: - -```js -// import data from './data/lol/lol.js'; -``` - -La línea quedaría así: - -```js -import data from './data/lol/lol.js'; -``` - -Y ahora tendríamos la variable `data` disponible en el script `src/main.js`. - -### `src/data.js` - -El corazón de este proyecto es la manipulación de datos a través de arreglos -y objetos. - -Te recomendamos que este archivo contenga toda la funcionalidad que corresponda -a obtener, procesar y manipular datos (tus funciones). Por ejemplo: - -* `filterData(data, condition)`: esta función `filter` o filtrar recibiría la - data, y nos retornaría aquellos datos que sí cumplan con la condición. - -* `sortData(data, sortBy, sortOrder)`: esta función `sort` u ordenar - recibe tres parámetros. - El primer parámetro, `data`, nos entrega los datos. - El segundo parámetro, `sortBy`, nos dice con respecto a cuál de los campos de - la data se quiere ordenar. - El tercer parámetro, `sortOrder`, indica si se quiere ordenar de manera - ascendente o descendente. - -* `computeStats(data)`: la función `compute` o calcular, nos permitirá hacer - cálculos estadísticos básicos para ser mostrados de acuerdo a la data - proporcionada. - -Estos nombres de funciones y de parámetros son solamente referenciales, lo que -decidas depende de tu propia implementación. - -Estas funciones deben ser [_puras_](https://medium.com/laboratoria-developers/introducci%C3%B3n-a-la-programaci%C3%B3n-funcional-en-javascript-parte-2-funciones-puras-b99e08c2895d) -e independientes del DOM. Estas funciones serán después usadas desde el archivo -`src/main.js`, al cargar la página, y cada vez que el usuario interactúe (click, -filtrado, ordenado, ...). - -### `src/data` - -En esta carpeta están los datos de las diferentes fuentes. Encontrarás una -carpeta por cada fuente, y dentro de cada carpeta dos archivos: uno con la -extensión `.js` y otro `.json`. Ambos archivos contienen la misma data; la -diferencia es que el `.js` lo usaremos a través de una etiqueta `