diff --git a/package-lock.json b/package-lock.json index fac017e..3f7ba40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,8 +5,7 @@ "requires": true, "packages": { "": { - "name": "medblocks-ui", - "version": "0.0.53", + "version": "0.0.56", "license": "Apache-2.0", "dependencies": { "@shoelace-style/shoelace": "^2.0.0-beta.39", @@ -22,7 +21,7 @@ "@typescript-eslint/parser": "^4.22.0", "@web/dev-server": "^0.1.17", "@web/dev-server-storybook": "^0.3.5", - "@web/test-runner": "^0.12.20", + "@web/test-runner": "^0.13.16", "@web/test-runner-puppeteer": "^0.10.0", "concurrently": "^5.3.0", "copy-and-watch": "^0.1.5", @@ -2081,6 +2080,12 @@ "@types/node": "*" } }, + "node_modules/@types/babel__code-frame": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", + "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", + "dev": true + }, "node_modules/@types/body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", @@ -2107,9 +2112,9 @@ } }, "node_modules/@types/co-body": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-5.1.0.tgz", - "integrity": "sha512-iRL97yYTJNGFv495U63ikKG9r60thDtQ403jEzBEFR4IY6kMxw2IfcPoxI8+HY3nRNLrwHFYuCnWGEB/0hFVwg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", "dev": true, "dependencies": { "@types/node": "*", @@ -2812,18 +2817,18 @@ "dev": true }, "node_modules/@web/test-runner": { - "version": "0.12.20", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.12.20.tgz", - "integrity": "sha512-ibuZDuvXy30PWn05//ca06f2NCr0WM42m0QyNdQZ/GIR03W4FpNQ/6ogSq4O4mTBg1KW88IOfHvEXWL449bR6g==", + "version": "0.13.16", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.13.16.tgz", + "integrity": "sha512-eFPxxuqgLzyAOa7WEYTMi+DXWrqxU3tpuH4bCiTfDDx7uRRF/tbKA0PrQ1zv2BfSyZP1tQ+nfc6ehJQrBPUBNQ==", "dev": true, "dependencies": { - "@web/browser-logs": "^0.2.0", + "@web/browser-logs": "^0.2.2", "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.11", - "@web/test-runner-chrome": "^0.9.4", - "@web/test-runner-commands": "^0.4.3", - "@web/test-runner-core": "^0.10.14", - "@web/test-runner-mocha": "^0.7.2", + "@web/dev-server": "^0.1.17", + "@web/test-runner-chrome": "^0.10.2", + "@web/test-runner-commands": "^0.5.10", + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-mocha": "^0.7.4", "camelcase": "^6.2.0", "chalk": "^4.1.0", "command-line-args": "^5.1.1", @@ -2843,27 +2848,27 @@ } }, "node_modules/@web/test-runner-chrome": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.9.4.tgz", - "integrity": "sha512-Ymfp0HqQvELFITdwhdicuzndLY5loePpbDj6teXKKNTILph0ExWl3R3NMPG7pD40pB84GGd9i8wkz9yvyN30Zg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.2.tgz", + "integrity": "sha512-Casm5au6/bYa8iA87Zw93r5PkfEhDYRVRKB15HjkmTHGRNYZ5054QzANUpk6c8b8NV9Wd6gXqsZs7rdcdDdFmw==", "dev": true, "dependencies": { - "@web/test-runner-core": "^0.10.8", - "@web/test-runner-coverage-v8": "^0.4.5", - "chrome-launcher": "^0.13.4", - "puppeteer-core": "^5.5.0" + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-coverage-v8": "^0.4.8", + "chrome-launcher": "^0.14.0", + "puppeteer-core": "^9.1.0" }, "engines": { "node": ">=12.0.0" } }, "node_modules/@web/test-runner-commands": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.4.5.tgz", - "integrity": "sha512-jbhsS+nZmnbZPj/XL/g4se1c9TRtIgwrlYpaIIcWkHhCu5mKbdipgZ/nlFIhFS9UaVY52NiulmVj6dhAx7w4SA==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.5.12.tgz", + "integrity": "sha512-W5ajWzO7+d3u1R0/FPBU8q3d4y5faOQVIWnOruFNvXu3Qjfg2VCWFOtARegA7ATNCE18H0dGRuF4KGxHDmMe3g==", "dev": true, "dependencies": { - "@web/test-runner-core": "^0.10.14", + "@web/test-runner-core": "^0.10.20", "mkdirp": "^1.0.4" }, "engines": { @@ -2883,13 +2888,14 @@ } }, "node_modules/@web/test-runner-core": { - "version": "0.10.17", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.17.tgz", - "integrity": "sha512-T8yLQ6W4tHwREEYlAvAMYXpNkRE4XBynuWQQVq1qf5hf/IFNdYkOVELkgsHevtYLRElxi9/wHeRrn1SkDgj0Ug==", + "version": "0.10.20", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.20.tgz", + "integrity": "sha512-zUU8YxVMCAfYrsK3YPR6EIA5CWBrGUGUd/fNgEu4iCYsSxHFWpZsHNMOuNZS0/ssKbHJLvdDjpZ6T6EuqJT69Q==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.11", - "@types/co-body": "^5.1.0", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", "@types/convert-source-map": "^1.5.1", "@types/debounce": "^1.2.0", "@types/istanbul-lib-coverage": "^2.0.3", @@ -2929,37 +2935,37 @@ } }, "node_modules/@web/test-runner-coverage-v8": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.6.tgz", - "integrity": "sha512-Mt8hzLUZfMBrpFlo8PYIkM5H77XmnuiF2VrRXvLRRMBz6sZ+WqZmPT5fOznvTEoqOXh92XG9SsW+G0uV6HjdPQ==", + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.8.tgz", + "integrity": "sha512-Ib0AscR8Xf9E/V7rf3XOVQTe4vKIbwSTupxV1xGgzj3x4RKUuMUg9FLz9EigZ5iN0mOzZKDllyRS523hbdhDtA==", "dev": true, "dependencies": { - "@web/test-runner-core": "^0.10.9", + "@web/test-runner-core": "^0.10.20", "istanbul-lib-coverage": "^3.0.0", "picomatch": "^2.2.2", - "v8-to-istanbul": "^7.1.0" + "v8-to-istanbul": "^8.0.0" }, "engines": { "node": ">=12.0.0" } }, "node_modules/@web/test-runner-mocha": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.2.tgz", - "integrity": "sha512-UsaLvJ0k5Kb53WegF0J0pmKxCLdo6Nxl7GHYykO7m99Irz+jIGXV7VJP9/b8t+HH3fHyqB2Nmd5q9oxXwIJyNw==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.4.tgz", + "integrity": "sha512-EvAz6eCyBpVyXUq/bTSYpSwcSd/jH8XY+vAwS/xprWNo2WFY0LW0FcwcuWdq4LckDxTZVXaGb1dj3lDfEsOeVw==", "dev": true, "dependencies": { "@types/mocha": "^8.2.0", - "@web/test-runner-core": "^0.10.8" + "@web/test-runner-core": "^0.10.20" }, "engines": { "node": ">=12.0.0" } }, "node_modules/@web/test-runner-mocha/node_modules/@types/mocha": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", - "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", "dev": true }, "node_modules/@web/test-runner-puppeteer": { @@ -2976,157 +2982,6 @@ "node": ">=12.0.0" } }, - "node_modules/@web/test-runner-puppeteer/node_modules/@web/test-runner-chrome": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.0.tgz", - "integrity": "sha512-pCRDkVXznkpHCGwhka8AxMTq7fAufujhknJilNxopXcGXANfy9jkMPUUwWYmkJg2w+zDoz9vnlcHPGPX7j3EkQ==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.8", - "@web/test-runner-coverage-v8": "^0.4.5", - "chrome-launcher": "^0.13.4", - "puppeteer-core": "^8.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/node_modules/devtools-protocol": { - "version": "0.0.854822", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.854822.tgz", - "integrity": "sha512-xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==", - "dev": true - }, - "node_modules/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/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/@web/test-runner-puppeteer/node_modules/puppeteer-core": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-8.0.0.tgz", - "integrity": "sha512-kRTiGh42+4eiw9tl489p//8Zpg3LWmz0K3mOpv0qj5PsCV7jE43SLIi0E50suLh8OghXsFhJFoE98vEmXUnDew==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "devtools-protocol": "0.0.854822", - "extract-zip": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "pkg-dir": "^4.2.0", - "progress": "^2.0.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "tar-fs": "^2.0.0", - "unbzip2-stream": "^1.3.3", - "ws": "^7.2.3" - }, - "engines": { - "node": ">=10.18.1" - } - }, "node_modules/@web/test-runner/node_modules/camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", @@ -3210,10 +3065,13 @@ "dev": true }, "node_modules/agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "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" } @@ -4060,17 +3918,30 @@ "dev": true }, "node_modules/chrome-launcher": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", - "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.0.tgz", + "integrity": "sha512-W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ==", "dev": true, "dependencies": { "@types/node": "*", - "escape-string-regexp": "^1.0.5", + "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^0.5.3", - "rimraf": "^3.0.2" + "lighthouse-logger": "^1.0.0" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-launcher/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/ci-info": { @@ -6385,9 +6256,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.818844", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz", - "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==", + "version": "0.0.869402", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz", + "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==", "dev": true }, "node_modules/diff": { @@ -8972,16 +8843,16 @@ "dev": true }, "node_modules/https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { - "agent-base": "5", + "agent-base": "6", "debug": "4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 6" } }, "node_modules/human-signals": { @@ -10056,13 +9927,13 @@ } }, "node_modules/lighthouse-logger": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", - "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", + "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", "dev": true, "dependencies": { - "debug": "^2.6.8", - "marky": "^1.2.0" + "debug": "^2.6.9", + "marky": "^1.2.2" } }, "node_modules/lighthouse-logger/node_modules/debug": { @@ -11876,19 +11747,19 @@ } }, "node_modules/puppeteer-core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-5.5.0.tgz", - "integrity": "sha512-tlA+1n+ziW/Db03hVV+bAecDKse8ihFRXYiEypBe9IlLRvOCzYFG6qrCMBYK34HO/Q/Ecjc+tvkHRAfLVH+NgQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-9.1.1.tgz", + "integrity": "sha512-zbedbitVIGhmgz0nt7eIdLsnaoVZSlNJfBivqm2w67T8LR2bU1dvnruDZ8nQO0zn++Iet7zHbAOdnuS5+H2E7A==", "dev": true, "dependencies": { "debug": "^4.1.0", - "devtools-protocol": "0.0.818844", + "devtools-protocol": "0.0.869402", "extract-zip": "^2.0.0", - "https-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", "node-fetch": "^2.6.1", "pkg-dir": "^4.2.0", "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", + "proxy-from-env": "^1.1.0", "rimraf": "^3.0.2", "tar-fs": "^2.0.0", "unbzip2-stream": "^1.3.3", @@ -11980,18 +11851,6 @@ "node": ">=8" } }, - "node_modules/puppeteer/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/puppeteer/node_modules/devtools-protocol": { "version": "0.0.854822", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.854822.tgz", @@ -12011,19 +11870,6 @@ "node": ">=8" } }, - "node_modules/puppeteer/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/puppeteer/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -14938,9 +14784,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -14948,7 +14794,7 @@ "source-map": "^0.7.3" }, "engines": { - "node": ">=10.10.0" + "node": ">=10.12.0" } }, "node_modules/v8-to-istanbul/node_modules/source-map": { @@ -17450,6 +17296,12 @@ "@types/node": "*" } }, + "@types/babel__code-frame": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", + "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", + "dev": true + }, "@types/body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", @@ -17476,9 +17328,9 @@ } }, "@types/co-body": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-5.1.0.tgz", - "integrity": "sha512-iRL97yYTJNGFv495U63ikKG9r60thDtQ403jEzBEFR4IY6kMxw2IfcPoxI8+HY3nRNLrwHFYuCnWGEB/0hFVwg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", "dev": true, "requires": { "@types/node": "*", @@ -18067,18 +17919,18 @@ "dev": true }, "@web/test-runner": { - "version": "0.12.20", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.12.20.tgz", - "integrity": "sha512-ibuZDuvXy30PWn05//ca06f2NCr0WM42m0QyNdQZ/GIR03W4FpNQ/6ogSq4O4mTBg1KW88IOfHvEXWL449bR6g==", + "version": "0.13.16", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.13.16.tgz", + "integrity": "sha512-eFPxxuqgLzyAOa7WEYTMi+DXWrqxU3tpuH4bCiTfDDx7uRRF/tbKA0PrQ1zv2BfSyZP1tQ+nfc6ehJQrBPUBNQ==", "dev": true, "requires": { - "@web/browser-logs": "^0.2.0", + "@web/browser-logs": "^0.2.2", "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.11", - "@web/test-runner-chrome": "^0.9.4", - "@web/test-runner-commands": "^0.4.3", - "@web/test-runner-core": "^0.10.14", - "@web/test-runner-mocha": "^0.7.2", + "@web/dev-server": "^0.1.17", + "@web/test-runner-chrome": "^0.10.2", + "@web/test-runner-commands": "^0.5.10", + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-mocha": "^0.7.4", "camelcase": "^6.2.0", "chalk": "^4.1.0", "command-line-args": "^5.1.1", @@ -18111,24 +17963,24 @@ } }, "@web/test-runner-chrome": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.9.4.tgz", - "integrity": "sha512-Ymfp0HqQvELFITdwhdicuzndLY5loePpbDj6teXKKNTILph0ExWl3R3NMPG7pD40pB84GGd9i8wkz9yvyN30Zg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.2.tgz", + "integrity": "sha512-Casm5au6/bYa8iA87Zw93r5PkfEhDYRVRKB15HjkmTHGRNYZ5054QzANUpk6c8b8NV9Wd6gXqsZs7rdcdDdFmw==", "dev": true, "requires": { - "@web/test-runner-core": "^0.10.8", - "@web/test-runner-coverage-v8": "^0.4.5", - "chrome-launcher": "^0.13.4", - "puppeteer-core": "^5.5.0" + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-coverage-v8": "^0.4.8", + "chrome-launcher": "^0.14.0", + "puppeteer-core": "^9.1.0" } }, "@web/test-runner-commands": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.4.5.tgz", - "integrity": "sha512-jbhsS+nZmnbZPj/XL/g4se1c9TRtIgwrlYpaIIcWkHhCu5mKbdipgZ/nlFIhFS9UaVY52NiulmVj6dhAx7w4SA==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.5.12.tgz", + "integrity": "sha512-W5ajWzO7+d3u1R0/FPBU8q3d4y5faOQVIWnOruFNvXu3Qjfg2VCWFOtARegA7ATNCE18H0dGRuF4KGxHDmMe3g==", "dev": true, "requires": { - "@web/test-runner-core": "^0.10.14", + "@web/test-runner-core": "^0.10.20", "mkdirp": "^1.0.4" }, "dependencies": { @@ -18141,13 +17993,14 @@ } }, "@web/test-runner-core": { - "version": "0.10.17", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.17.tgz", - "integrity": "sha512-T8yLQ6W4tHwREEYlAvAMYXpNkRE4XBynuWQQVq1qf5hf/IFNdYkOVELkgsHevtYLRElxi9/wHeRrn1SkDgj0Ug==", + "version": "0.10.20", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.20.tgz", + "integrity": "sha512-zUU8YxVMCAfYrsK3YPR6EIA5CWBrGUGUd/fNgEu4iCYsSxHFWpZsHNMOuNZS0/ssKbHJLvdDjpZ6T6EuqJT69Q==", "dev": true, "requires": { "@babel/code-frame": "^7.12.11", - "@types/co-body": "^5.1.0", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", "@types/convert-source-map": "^1.5.1", "@types/debounce": "^1.2.0", "@types/istanbul-lib-coverage": "^2.0.3", @@ -18183,31 +18036,31 @@ } }, "@web/test-runner-coverage-v8": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.6.tgz", - "integrity": "sha512-Mt8hzLUZfMBrpFlo8PYIkM5H77XmnuiF2VrRXvLRRMBz6sZ+WqZmPT5fOznvTEoqOXh92XG9SsW+G0uV6HjdPQ==", + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.8.tgz", + "integrity": "sha512-Ib0AscR8Xf9E/V7rf3XOVQTe4vKIbwSTupxV1xGgzj3x4RKUuMUg9FLz9EigZ5iN0mOzZKDllyRS523hbdhDtA==", "dev": true, "requires": { - "@web/test-runner-core": "^0.10.9", + "@web/test-runner-core": "^0.10.20", "istanbul-lib-coverage": "^3.0.0", "picomatch": "^2.2.2", - "v8-to-istanbul": "^7.1.0" + "v8-to-istanbul": "^8.0.0" } }, "@web/test-runner-mocha": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.2.tgz", - "integrity": "sha512-UsaLvJ0k5Kb53WegF0J0pmKxCLdo6Nxl7GHYykO7m99Irz+jIGXV7VJP9/b8t+HH3fHyqB2Nmd5q9oxXwIJyNw==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.4.tgz", + "integrity": "sha512-EvAz6eCyBpVyXUq/bTSYpSwcSd/jH8XY+vAwS/xprWNo2WFY0LW0FcwcuWdq4LckDxTZVXaGb1dj3lDfEsOeVw==", "dev": true, "requires": { "@types/mocha": "^8.2.0", - "@web/test-runner-core": "^0.10.8" + "@web/test-runner-core": "^0.10.20" }, "dependencies": { "@types/mocha": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", - "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", "dev": true } } @@ -18221,123 +18074,6 @@ "@web/test-runner-chrome": "^0.10.0", "@web/test-runner-core": "^0.10.8", "puppeteer": "^8.0.0" - }, - "dependencies": { - "@web/test-runner-chrome": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.0.tgz", - "integrity": "sha512-pCRDkVXznkpHCGwhka8AxMTq7fAufujhknJilNxopXcGXANfy9jkMPUUwWYmkJg2w+zDoz9vnlcHPGPX7j3EkQ==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.8", - "@web/test-runner-coverage-v8": "^0.4.5", - "chrome-launcher": "^0.13.4", - "puppeteer-core": "^8.0.0" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "devtools-protocol": { - "version": "0.0.854822", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.854822.tgz", - "integrity": "sha512-xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "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 - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "puppeteer-core": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-8.0.0.tgz", - "integrity": "sha512-kRTiGh42+4eiw9tl489p//8Zpg3LWmz0K3mOpv0qj5PsCV7jE43SLIi0E50suLh8OghXsFhJFoE98vEmXUnDew==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "devtools-protocol": "0.0.854822", - "extract-zip": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "pkg-dir": "^4.2.0", - "progress": "^2.0.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "tar-fs": "^2.0.0", - "unbzip2-stream": "^1.3.3", - "ws": "^7.2.3" - } - } } }, "@webcomponents/webcomponentsjs": { @@ -18382,10 +18118,13 @@ "dev": true }, "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } }, "aggregate-error": { "version": "3.1.0", @@ -18999,17 +18738,23 @@ "dev": true }, "chrome-launcher": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", - "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.0.tgz", + "integrity": "sha512-W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ==", "dev": true, "requires": { "@types/node": "*", - "escape-string-regexp": "^1.0.5", + "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^0.5.3", - "rimraf": "^3.0.2" + "lighthouse-logger": "^1.0.0" + }, + "dependencies": { + "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 + } } }, "ci-info": { @@ -20765,9 +20510,9 @@ "dev": true }, "devtools-protocol": { - "version": "0.0.818844", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz", - "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==", + "version": "0.0.869402", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz", + "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==", "dev": true }, "diff": { @@ -22749,12 +22494,12 @@ } }, "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "agent-base": "5", + "agent-base": "6", "debug": "4" } }, @@ -23520,13 +23265,13 @@ } }, "lighthouse-logger": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", - "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", + "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", "dev": true, "requires": { - "debug": "^2.6.8", - "marky": "^1.2.0" + "debug": "^2.6.9", + "marky": "^1.2.2" }, "dependencies": { "debug": { @@ -24963,15 +24708,6 @@ "ws": "^7.2.3" }, "dependencies": { - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, "devtools-protocol": { "version": "0.0.854822", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.854822.tgz", @@ -24988,16 +24724,6 @@ "path-exists": "^4.0.0" } }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -25049,19 +24775,19 @@ } }, "puppeteer-core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-5.5.0.tgz", - "integrity": "sha512-tlA+1n+ziW/Db03hVV+bAecDKse8ihFRXYiEypBe9IlLRvOCzYFG6qrCMBYK34HO/Q/Ecjc+tvkHRAfLVH+NgQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-9.1.1.tgz", + "integrity": "sha512-zbedbitVIGhmgz0nt7eIdLsnaoVZSlNJfBivqm2w67T8LR2bU1dvnruDZ8nQO0zn++Iet7zHbAOdnuS5+H2E7A==", "dev": true, "requires": { "debug": "^4.1.0", - "devtools-protocol": "0.0.818844", + "devtools-protocol": "0.0.869402", "extract-zip": "^2.0.0", - "https-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", "node-fetch": "^2.6.1", "pkg-dir": "^4.2.0", "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", + "proxy-from-env": "^1.1.0", "rimraf": "^3.0.2", "tar-fs": "^2.0.0", "unbzip2-stream": "^1.3.3", @@ -27409,9 +27135,9 @@ "dev": true }, "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", diff --git a/package.json b/package.json index 1e80779..1174873 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "manifest": "wca analyze src --format json --outFile ./dist/custom-elements.json && node web-component-manifest.mjs && wca analyze src --format json --outFile ./vscode-custom-data.json", "lint": "eslint --ext .ts,.html . --ignore-path .gitignore && prettier \"**/*.ts\" --check --ignore-path .gitignore", "format": "eslint --ext .ts,.html . --fix --ignore-path .gitignore && prettier \"**/*.ts\" --write --ignore-path .gitignore", - "test": "tsc && wtr --puppeteer", + "test": "tsc && wtr", "test:watch": "tsc && concurrently -k -r \"tsc --watch \" \"wtr --watch\"", "storybook": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds -c .storybook/server.mjs\" \"npm run copy:watch\"", "storybook:build": "npm run build && npm run copy && build-storybook", @@ -43,7 +43,7 @@ "@typescript-eslint/parser": "^4.22.0", "@web/dev-server": "^0.1.17", "@web/dev-server-storybook": "^0.3.5", - "@web/test-runner": "^0.12.20", + "@web/test-runner": "^0.13.16", "@web/test-runner-puppeteer": "^0.10.0", "concurrently": "^5.3.0", "copy-and-watch": "^0.1.5", diff --git a/src/medblocks/EhrElement.ts b/src/medblocks/EhrElement.ts index f0a2293..3d28a7e 100644 --- a/src/medblocks/EhrElement.ts +++ b/src/medblocks/EhrElement.ts @@ -11,11 +11,12 @@ export default abstract class EhrElement extends LitElement { /**Path of the data element. Use the VSCode extension to get the appropriate paths */ @property({ type: String, reflect: true }) path: string; /**Optional label for the element */ - @property({ type: String, reflect: true }) label?: string; + @property({ type: String, reflect: true }) label?: string; /**Data of the element. Setting this will emit an input event automatically. */ abstract data: any; + isMbElement: boolean = true /**An internal representation of type to handle serializing */ @property({ type: String, reflect: true }) datatype?: string; @@ -33,25 +34,22 @@ export default abstract class EhrElement extends LitElement { value: any; }>; - @event('mb-connect') _mbConnect: EventEmitter<{ path: string }>; + @event('mb-path-change') + _pathChangeHandler: EventEmitter<{ oldPath: string, newPath: string }> - @event('mb-disconnect') _mbDisconnect: EventEmitter<{ path: string }>; + @event('mb-connect') + _mbConnect: EventEmitter - connectedCallback() { - super.connectedCallback(); - this._mbConnect.emit({ detail: this.path }); + @watch('path') + handlePathChange(oldPath: string, newPath: string) { + this._pathChangeHandler.emit({ detail: { oldPath, newPath } }) } - disconnectedCallback() { - super.disconnectedCallback(); - this._mbDisconnect.emit({ detail: this.path }); + connectedCallback() { + super.connectedCallback() + this._mbConnect.emit({ detail: this.path }) } - @watch('path') - handlePathChange(oldPath: string, newPath: string) { - this._mbDisconnect.emit({ detail: oldPath }); - this._mbConnect.emit({ detail: newPath }); - } @watch('data') _handleDataChange() { this._mbInput.emit(); diff --git a/src/medblocks/form/form.ts b/src/medblocks/form/form.ts index 97ccae6..d7d1f75 100644 --- a/src/medblocks/form/form.ts +++ b/src/medblocks/form/form.ts @@ -96,7 +96,7 @@ export default class MedblockForm extends LitElement { insertContext() { const nonNullPaths = Object.keys(this.mbElements).filter( - k => this.mbElements[k].data != null ///// check if breaks //// + k => this.mbElements[k].data != null ///// check if breaks //// ); Object.values(this.mbElements) .filter((element: MbContext) => !!element.autocontext) @@ -105,7 +105,7 @@ export default class MedblockForm extends LitElement { const contextData = this.overwritectx ? this.plugin.getContext(path, this.ctx, nonNullPaths) : element.data ?? - this.plugin.getContext(path, this.ctx, nonNullPaths); + this.plugin.getContext(path, this.ctx, nonNullPaths); element.data = contextData; }); } @@ -158,13 +158,18 @@ export default class MedblockForm extends LitElement { this.input.emit(); } - handleChildDisconnect(e: CustomEvent) { - const path = e.detail; - console.log("disconnected this path",path) - // delete this.mbElements[path] + + handleChildPathChange(e: CustomEvent<{ oldPath: string, newPath: string }>) { + const detail = e.detail + const element = this.mbElements[detail.oldPath] + this.removeMbElement(detail.oldPath) + this.mbElements[detail.newPath] = element + this.input.emit() + } + + removeMbElement(path: string) { const { [path]: _, ...rest } = this.mbElements; this.mbElements = rest; - this.input.emit(); } handleDependency(e: CustomEvent<{ key: string; value: any }>) { @@ -174,26 +179,54 @@ export default class MedblockForm extends LitElement { e.detail.value = dependencies[e.detail.key]; } + + @state() observer: MutationObserver + async connectedCallback() { super.connectedCallback(); + this.observer = new MutationObserver((mutationList, _) => { + let updated = false + mutationList.forEach(record => { + if (record.addedNodes.length > 0) { + record.addedNodes.forEach((node: EhrElement) => { + if (node.isMbElement) { + this.mbElements[node.path] = node + updated = true + } + }) + } + + if (record.removedNodes.length > 0) { + record.removedNodes.forEach((node: EhrElement) => { + if (node.isMbElement) { + const { [node.path]: _, ...rest } = this.mbElements; + this.mbElements = rest; + updated = true + } + }) + } + + if (updated) { + this.input.emit() + } + }) + }) + this.observer.observe(this, { childList: true, attributes: false, subtree: true }) + this.addEventListener('mb-connect', this.handleChildConnect) this.addEventListener('mb-dependency', this.handleDependency); - this.addEventListener('mb-connect', this.handleChildConnect); - this.addEventListener('mb-disconnect', this.handleChildDisconnect); + this.addEventListener('mb-path-change', this.handleChildPathChange); this.load.emit(); } disconnectedCallback() { super.disconnectedCallback(); + this.removeEventListener('mb-connect', this.handleChildConnect) this.removeEventListener('mb-dependency', this.handleDependency); - this.removeEventListener('mb-connect', this.handleChildConnect); - this.removeEventListener('mb-disconnect', this.handleChildDisconnect); + this.removeEventListener('mb-path-change', this.handleChildPathChange); + this.observer.disconnect() } render() { - return html` `; + return html``; } } diff --git a/test/mb-form.test.ts b/test/mb-form.test.ts index 2e88c91..1b26539 100644 --- a/test/mb-form.test.ts +++ b/test/mb-form.test.ts @@ -15,7 +15,7 @@ class TestComponent extends LitElement { @property({type: Array}) paths: string[] render(){ return html` - ${this.paths.map(path=>html`console.log(e.detail)} path=${path}>`)} + ${this.paths.map(path=>html``)} ` } } @@ -24,7 +24,7 @@ class RepeateableTest extends LitElement{ render(){ return html ` ${[...Array(this.i)].map((_,i)=>html` - console.log(e.detail)} path=${`path/${i}`}>`)} + `)} ` } } @@ -42,41 +42,36 @@ describe('Form', ()=>{ expect(Object.keys(form.mbElements)).to.eql(["test/path"]) }) - // it('should react to change in path', async ()=>{ - // let paths = ['hello/there', 'another/path'] - // const component = await fixture(html``) - // const form = querySelectorDeep('mb-form') as MbForm - // expect(Object.keys(form.mbElements)).to.eql(["hello/there", "another/path"]) - // component.paths = ['test2/another', 'changed/path'] - // await elementUpdated(component) - // expect(Object.keys(form.mbElements)).to.eql(['test2/another', 'changed/path']) - // component.paths = ['test2/another', 'changed/path2'] - // await elementUpdated(component) - // expect(Object.keys(form.mbElements)).to.eql(['test2/another', 'changed/path2']) - // }) + it('should react to change in path', async ()=>{ + let paths = ['hello/there', 'another/path'] + const component = await fixture(html``) + const form = querySelectorDeep('mb-form') as MbForm + expect(Object.keys(form.mbElements)).to.eql(["hello/there", "another/path"]) + component.paths = ['test2/another', 'changed/path'] + await elementUpdated(component) + expect(Object.keys(form.mbElements)).to.eql(['test2/another', 'changed/path']) + component.paths = ['test2/another', 'changed/path2'] + await elementUpdated(component) + expect(Object.keys(form.mbElements)).to.eql(['test2/another', 'changed/path2']) + }) + it('should react to deletion in path', async ()=>{ let paths = ['hello/there', 'another/path'] const component = await fixture(html``) const form = querySelectorDeep('mb-form') as MbForm expect(Object.keys(form.mbElements)).to.eql(["hello/there", "another/path"]) - console.log('------------------') component.paths = ['hello/there'] await elementUpdated(component) expect(Object.keys(form.mbElements)).to.eql(['hello/there']) - // component.paths = ['test2/another', 'changed/path2'] - // await elementUpdated(component) - // expect(Object.keys(form.mbElements)).to.eql(['test2/another', 'changed/path2']) }) - // it('should remove children elements properly',async()=>{ - // const component = await fixture(html``) - // const form = querySelectorDeep('mb-form') as MbForm - // console.log(form.mbElements) - // expect(Object.keys(form.data).length).to.eql(2) - // component.i = 1 - // await elementUpdated(component) - // console.log(form.mbElements) - // expect(Object.keys(form.data).length).to.eql(1) - // }) + it('should remove children elements properly',async()=>{ + const component = await fixture(html``) + const form = querySelectorDeep('mb-form') as MbForm + expect(Object.keys(form.data).length).to.eql(2) + component.i = 1 + await elementUpdated(component) + expect(Object.keys(form.data).length).to.eql(1) + }) }) \ No newline at end of file diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs index 2e57b01..9759a00 100644 --- a/web-test-runner.config.mjs +++ b/web-test-runner.config.mjs @@ -1,4 +1,4 @@ -// import { playwrightLauncher } from '@web/test-runner-playwright'; +import { chromeLauncher } from '@web/test-runner'; export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({ files: 'dist/test/**/*.test.js', @@ -19,11 +19,9 @@ export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({ // concurrency: 1, /** Browsers to run tests on */ - // browsers: [ - // playwrightLauncher({ product: 'chromium' }), - // playwrightLauncher({ product: 'firefox' }), - // playwrightLauncher({ product: 'webkit' }), - // ], + browsers: [ + chromeLauncher({ launchOptions: { args: ['--no-sandbox'] } }) + ], // See documentation for all available options });