From 7ada63cd6d1f02cbd6fc9da1f159b629d6d831ab Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 20 Apr 2023 16:31:19 -0700 Subject: [PATCH 1/8] update to lighthouse 10.1.1 --- package.json | 2 +- yarn.lock | 212 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 141 insertions(+), 73 deletions(-) diff --git a/package.json b/package.json index 82f912ef..13c45285 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "@tusbar/cache-control": "^0.3.1", "@types/esprima": "^4.0.2", - "lighthouse": "9.5.0-dev.20220907-2", + "lighthouse": "10.1.1", "lodash.clonedeep": "^4.5.0", "yargs": "16.1.1" }, diff --git a/yarn.lock b/yarn.lock index 7fc07cf1..e0520b29 100644 --- a/yarn.lock +++ b/yarn.lock @@ -76,6 +76,20 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@puppeteer/browsers@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-0.4.1.tgz#fae81939adb743420cc2466f3aa37481f7081712" + integrity sha512-4IICvy1McAkT/HyNZHIs7sp8ngBX1dmO0TPQ+FWq9ATQMqI8p+Ulm5A3kS2wYDh5HDHHkYrrETOu6rlj64VuTw== + dependencies: + debug "4.3.4" + extract-zip "2.0.1" + https-proxy-agent "5.0.1" + progress "2.0.3" + proxy-from-env "1.1.0" + tar-fs "2.1.1" + unbzip2-stream "1.4.3" + yargs "17.7.1" + "@sentry/core@6.19.7": version "6.19.7" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.7.tgz#156aaa56dd7fad8c89c145be6ad7a4f7209f9785" @@ -470,10 +484,10 @@ axe-core@4.1.3: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.3.tgz#64a4c85509e0991f5168340edc4bedd1ceea6966" integrity sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ== -axe-core@4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" - integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== +axe-core@4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== balanced-match@^1.0.0: version "1.0.2" @@ -771,6 +785,13 @@ chrome-launcher@^0.15.1: is-wsl "^2.2.0" lighthouse-logger "^1.0.0" +chromium-bidi@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.4.6.tgz#a082151834083ed002624f12fa35e748817b2ee5" + integrity sha512-TQOkWRaLI/IWvoP8XC+7jO4uHTIiAUiklXU1T0qszlUFEai9LgKXIBXy3pOS3EnQZ3bQtMbKUPkug0fTAEHCSw== + dependencies: + mitt "3.0.0" + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -823,6 +844,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -1125,10 +1155,15 @@ details-element-polyfill@^2.4.0: resolved "https://registry.yarnpkg.com/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz#e0622adef7902662faf27b4ab8acba5dc4e3a6e6" integrity sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g== -devtools-protocol@0.0.1019158: - version "0.0.1019158" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz#4b08d06108a784a2134313149626ba55f030a86f" - integrity sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ== +devtools-protocol@0.0.1107588: + version "0.0.1107588" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz#f8cac707840b97cc30b029359341bcbbb0ad8ffa" + integrity sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg== + +devtools-protocol@0.0.1130274: + version "0.0.1130274" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1130274.tgz#1cd0c472a84fc9a09becaaed35a247a6eab9310c" + integrity sha512-kIozBWajgsi1g0W8yzALI4ZdCp6KG1yWaq8NN1ehQM3zX6JRegLSzfexz7XT5eFjmq1RkpMYgeKmfi3GsHrCLw== devtools-protocol@^0.0.1040073: version "0.0.1040073" @@ -1913,6 +1948,11 @@ http-link-header@^0.8.0: resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-0.8.0.tgz#a22b41a0c9b1e2d8fac1bf1b697c6bd532d5f5e4" integrity sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ= +http-link-header@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.1.1.tgz#f0e6971b0ed86e858d2077066ecb7ba4f2e50de9" + integrity sha512-mW3N/rTYpCn99s1do0zx6nzFZSwLH9HGfUM4ZqLWJ16ylmYaC2v5eYGqrNTQlByx8AzUgGI+V/32gXPugs1+Sw== + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -2330,10 +2370,10 @@ js-library-detector@^6.4.0: resolved "https://registry.yarnpkg.com/js-library-detector/-/js-library-detector-6.4.0.tgz#63e165cb84a4a0a7f7bbf1e97d60623921baae14" integrity sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g== -js-library-detector@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/js-library-detector/-/js-library-detector-6.5.0.tgz#96de02e9926a185c2d7a9a6967286d2ba20b5f79" - integrity sha512-Kq7VckJ5kb26kHMAu1sDO8t2qr7M5Uw6Gf7fVGtu1YceoHdqTcobwnB5kStcktusPuPmiCE8PbCaiLzhiBsSAw== +js-library-detector@^6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/js-library-detector/-/js-library-detector-6.6.0.tgz#b531a4784f8242d87f68f6f3eafc771a0650fb9d" + integrity sha512-z8OkDmXALZ22bIzBtIW8cpJ39MV93/Zu1rWrFdhsNw+sity2rOLaGT2kfWWQ6mnRTWs4ddONY5kiroA8e98Gvg== js-tokens@^4.0.0: version "4.0.0" @@ -2464,16 +2504,49 @@ lighthouse-logger@^1.3.0: debug "^2.6.9" marky "^1.2.2" -lighthouse-stack-packs@1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.8.2.tgz#55111bebe50ed516de3fad0a474795a2556ac36e" - integrity sha512-vlCUxxQAB8Nu6LQHqPpDRiMi06Du593/my/6JbMttQeEfJ7pf4OS8obSTh5xSOS80U/O7fq59Q8rQGAUxQatUQ== +lighthouse-stack-packs@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.9.1.tgz#e83f76e302cb3dec717ad6a3af2da07c91d8f8f5" + integrity sha512-9prq6oMkVHz3GeCkphq4FHXXdj3M/WPiFWUvJAczLYV8j/oTxsgiHSPMqh1KVV11CP0VTxD40hFC0pDfXF+khQ== lighthouse-stack-packs@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.4.0.tgz#bf98e0fb04a091ec2d73648842698b41070968ef" integrity sha512-wdv94WUjaqUwtW8DOapng45Yah62c5O5geNVeoSQlnoagfbTO/YbiwNlfzDIF1xNKRkPlsfr/oWHhXsaHXDivg== +lighthouse@10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-10.1.1.tgz#b59820ea83d78d95810a6aef0790df9eb407dfba" + integrity sha512-fw+IErhG3MB3SS8SWDcz+RMzM7n6/CPBShdQUTnc39U4V1yDVr+qBRtlXBhbpH5SFASzJnD6Xkm5SoYyCACHMg== + dependencies: + "@sentry/node" "^6.17.4" + axe-core "4.6.3" + chrome-launcher "^0.15.1" + configstore "^5.0.1" + csp_evaluator "1.1.1" + devtools-protocol "0.0.1130274" + enquirer "^2.3.6" + http-link-header "^1.1.1" + intl-messageformat "^4.4.0" + jpeg-js "^0.4.4" + js-library-detector "^6.6.0" + lighthouse-logger "^1.3.0" + lighthouse-stack-packs "1.9.1" + lodash "^4.17.21" + lookup-closest-locale "6.2.0" + metaviewport-parser "0.3.0" + open "^8.4.0" + parse-cache-control "1.0.1" + ps-list "^8.0.0" + puppeteer-core "^19.6.0" + robots-parser "^3.0.0" + semver "^5.3.0" + speedline-core "^1.4.3" + third-party-web "^0.20.2" + ws "^7.0.0" + yargs "^17.3.1" + yargs-parser "^21.0.0" + lighthouse@7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-7.3.0.tgz#bcd5d68b8ae6416daaa8fba20dee23ec186369f8" @@ -2515,39 +2588,6 @@ lighthouse@7.3.0: yargs "^16.1.1" yargs-parser "^20.2.4" -lighthouse@9.5.0-dev.20220907-2: - version "9.5.0-dev.20220907-2" - resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-9.5.0-dev.20220907-2.tgz#c7a554e044e5ea48a062b945f8bb388a54998059" - integrity sha512-O1X8Fsm1tYw19zvnjNNEPiOK/9e/ZxFp1vYaUr5usbcnQQ9FULdDXNwOHp6QQqtIeZQqW4ZJxS91WTgIzj6wQQ== - dependencies: - "@sentry/node" "^6.17.4" - axe-core "4.4.1" - chrome-launcher "^0.15.1" - configstore "^5.0.1" - csp_evaluator "1.1.1" - cssstyle "1.2.1" - enquirer "^2.3.6" - http-link-header "^0.8.0" - intl-messageformat "^4.4.0" - jpeg-js "^0.4.4" - js-library-detector "^6.5.0" - lighthouse-logger "^1.3.0" - lighthouse-stack-packs "1.8.2" - lodash "^4.17.21" - lookup-closest-locale "6.2.0" - metaviewport-parser "0.2.0" - open "^8.4.0" - parse-cache-control "1.0.1" - ps-list "^8.0.0" - puppeteer-core "^16.1.0" - robots-parser "^3.0.0" - semver "^5.3.0" - speedline-core "^1.4.3" - third-party-web "^0.17.1" - ws "^7.0.0" - yargs "^17.3.1" - yargs-parser "^21.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -2712,6 +2752,11 @@ metaviewport-parser@0.2.0: resolved "https://registry.yarnpkg.com/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz#535c3ce1ccf6223a5025fddc6a1c36505f7e7db1" integrity sha1-U1w84cz2IjpQJf3cahw2UF9+fbE= +metaviewport-parser@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz#6af1e99b5eaf250c049e0af1e84143a39750dea6" + integrity sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -2769,6 +2814,11 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +mitt@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd" + integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ== + mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -3281,22 +3331,22 @@ pupa@^2.0.1: dependencies: escape-goat "^2.0.0" -puppeteer-core@^16.1.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-16.2.0.tgz#ea790cd53f8a0ffeaf03679ff6fd82b0e210b3e3" - integrity sha512-f1q7egbAR5IhAVb0LNhiLKD2O/WtAHS/Oeided2+8RFBZx9OjZ26sIDD7QUTrOuUXHY257ShVJNN42fANEiSXQ== +puppeteer-core@^19.6.0: + version "19.10.0" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-19.10.0.tgz#f92d60693be370ea9a927d7b1ad62704681608ea" + integrity sha512-F6btgaEJXcpdw/kJszBhe7t4kx1C42oG159romCagX8ttComuk5dqkmAd/AQc/E4cS3onOUsHI5WgjIstuYsFw== dependencies: + "@puppeteer/browsers" "0.4.1" + chromium-bidi "0.4.6" cross-fetch "3.1.5" debug "4.3.4" - devtools-protocol "0.0.1019158" + devtools-protocol "0.0.1107588" extract-zip "2.0.1" https-proxy-agent "5.0.1" - progress "2.0.3" proxy-from-env "1.1.0" - rimraf "3.0.2" tar-fs "2.1.1" unbzip2-stream "1.4.3" - ws "8.8.1" + ws "8.13.0" qs@6.7.0: version "6.7.0" @@ -3497,13 +3547,6 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@3.0.2, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - rimraf@^2.6.1, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -3511,6 +3554,13 @@ rimraf@^2.6.1, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + robots-parser@^2.0.1: version "2.3.0" resolved "https://registry.yarnpkg.com/robots-parser/-/robots-parser-2.3.0.tgz#d79e86e26e13fa0a806adbc37f4cf1b96aebc8c3" @@ -3964,10 +4014,10 @@ third-party-web@^0.12.2: resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.12.3.tgz#715694cf882d99dfcde228f536464e205ef5c063" integrity sha512-wnPlVUKzet4hnejKMEsVj5eIL0V2PLzgjJ3fLyGo9GV1pUOMa0NjeIzJNJ0pTEUL2GJAqlFKxo8EYML27SF/ng== -third-party-web@^0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.17.1.tgz#22e03f1ff519a6380bae4594b704b9bb28e15158" - integrity sha512-X9Mha8cVeBwakunlZXkXL6xRzw8VCcDGWqT59EzeTYAJIi8ien3CuufnEGEx4ZUFahumNQdoOwf4H2T9Ca6lBg== +third-party-web@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.20.2.tgz#62eb414c648e120f64aa16c926ba120a62cbd6c5" + integrity sha512-KFaFBDto+gH2DZW6ooFCGYrR8CGV6b/Ibsc2RTUkKhTPbxOWZuKs0NTftdAMoz0Aivf4bAHgW+kAGKciSQpqFg== through@^2.3.6, through@^2.3.8: version "2.3.8" @@ -4391,10 +4441,10 @@ ws@3.3.2: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@8.8.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== +ws@8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== ws@^7.0.0: version "7.5.5" @@ -4467,6 +4517,11 @@ yargs-parser@^21.0.0: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-unparser@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" @@ -4503,6 +4558,19 @@ yargs@16.2.0, yargs@^16.1.1: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@17.7.1: + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" From 3ffdd680c1379d51ba26bcb33b63a4eb6c4c665e Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 4 May 2023 10:42:58 -0700 Subject: [PATCH 2/8] node 16 in ci --- .github/workflows/ci.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9a834ba2..afd2940a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,10 +10,10 @@ jobs: steps: - name: git clone uses: actions/checkout@v2 - - name: Use Node.js 14.x + - name: Use Node.js 16.x uses: actions/setup-node@v1 with: - node-version: 14.x + node-version: 16.x - run: yarn install --frozen-lockfile --network-timeout 1000000 - run: yarn lint @@ -23,10 +23,10 @@ jobs: steps: - name: git clone uses: actions/checkout@v2 - - name: Use Node.js 14.x + - name: Use Node.js 16.x uses: actions/setup-node@v1 with: - node-version: 14.x + node-version: 16.x - run: yarn install --frozen-lockfile --network-timeout 1000000 - run: yarn type-check @@ -36,10 +36,10 @@ jobs: steps: - name: git clone uses: actions/checkout@v2 - - name: Use Node.js 14.x + - name: Use Node.js 16.x uses: actions/setup-node@v1 with: - node-version: 14.x + node-version: 16.x - run: yarn install --frozen-lockfile --network-timeout 1000000 - run: yarn test @@ -49,10 +49,10 @@ jobs: steps: - name: git clone uses: actions/checkout@v2 - - name: Use Node.js 14.x + - name: Use Node.js 16.x uses: actions/setup-node@v1 with: - node-version: 14.x + node-version: 16.x - run: yarn install --frozen-lockfile --network-timeout 1000000 - run: sudo apt-get install xvfb - name: Run smoke tests @@ -64,10 +64,10 @@ jobs: steps: - name: git clone uses: actions/checkout@v2 - - name: Use Node.js 14.x + - name: Use Node.js 16.x uses: actions/setup-node@v1 with: - node-version: 14.x + node-version: 16.x - name: npm install run: npm install - name: Install Lighthouse CI From 6137d38652fd9adffa199a374df633073fc1d151 Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 4 May 2023 11:54:59 -0700 Subject: [PATCH 3/8] big ol types update --- .../audits/ad-blocking-tasks.js | 12 +- .../audits/ad-render-blocking-resources.js | 28 +-- .../audits/ad-request-critical-path.js | 22 ++- .../audits/ad-request-from-tag-load.js | 10 +- .../audits/ad-top-of-viewport.js | 4 +- .../audits/ads-in-viewport.js | 4 +- .../audits/blocking-load-events.js | 21 +-- .../audits/bottleneck-requests.js | 17 +- .../audits/cumulative-ad-shift.js | 4 +- .../audits/deprecated-api-usage.js | 4 +- .../audits/duplicate-tags.js | 4 +- .../audits/gpt-bids-parallel.js | 14 +- .../audits/gpt-errors-overall.js | 4 +- .../audits/idle-network-times.js | 28 ++- .../audits/script-injected-tags.js | 14 +- .../audits/serial-header-bidding.js | 13 +- .../audits/tag-load-time.js | 10 +- .../audits/total-ad-blocking-time.js | 8 +- .../audits/viewport-ad-density.js | 3 +- .../computed/ad-lantern-metric.js | 12 +- .../computed/long-tasks.js | 10 +- .../computed/tag-load-time.js | 27 +-- .../smoke/expectations/cumulative-ad-shift.js | 2 +- .../expectations/deprecated-api-usage.js | 2 +- .../test/smoke/expectations/duplicate-tags.js | 2 +- .../smoke/expectations/gpt-errors-overall.js | 2 +- .../test/smoke/expectations/lazy-load.js | 2 +- .../limited-ads-dynamic-loading.js | 2 +- .../test/smoke/expectations/long-tasks.js | 2 +- .../test/smoke/expectations/not-applicable.js | 2 +- .../expectations/render-blocking-tags.js | 2 +- .../smoke/expectations/script-injected.js | 2 +- .../smoke/expectations/top-of-viewport.js | 2 +- .../test/smoke/smoke-test-dfns.js | 90 ++++----- lighthouse-plugin-publisher-ads/tsconfig.json | 15 +- .../typings/audits.d.ts | 4 - .../typings/lh-externs.d.ts | 42 +---- .../typings/lighthouse.d.ts | 176 +++++++++--------- .../utils/graph.js | 14 +- .../utils/network-timing.js | 38 ++-- .../utils/resource-classification.js | 6 +- 41 files changed, 318 insertions(+), 362 deletions(-) diff --git a/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js b/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js index bbb315ac..5dd39af8 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js @@ -50,19 +50,19 @@ const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); const HEADINGS = [ { key: 'script', - itemType: 'url', - text: str_(UIStrings.columnScript), + valueType: 'url', + label: str_(UIStrings.columnScript), }, { key: 'startTime', - itemType: 'ms', - text: str_(UIStrings.columnStartTime), + valueType: 'ms', + label: str_(UIStrings.columnStartTime), granularity: 1, }, { key: 'duration', - itemType: 'ms', - text: str_(UIStrings.columnDuration), + valueType: 'ms', + label: str_(UIStrings.columnDuration), granularity: 1, }, ]; diff --git a/lighthouse-plugin-publisher-ads/audits/ad-render-blocking-resources.js b/lighthouse-plugin-publisher-ads/audits/ad-render-blocking-resources.js index 26c19f4d..8fe570ef 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-render-blocking-resources.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-render-blocking-resources.js @@ -52,19 +52,19 @@ const THRESHOLD_MS = 100; const HEADINGS = [ { key: 'url', - itemType: 'url', - text: str_(UIStrings.columnUrl), + valueType: 'url', + label: str_(UIStrings.columnUrl), }, { key: 'startTime', - itemType: 'ms', - text: str_(UIStrings.columnStartTime), + valueType: 'ms', + label: str_(UIStrings.columnStartTime), granularity: 1, }, { key: 'duration', - itemType: 'ms', - text: str_(UIStrings.columnDuration), + valueType: 'ms', + label: str_(UIStrings.columnDuration), granularity: 1, }, ]; @@ -82,7 +82,7 @@ class AdRenderBlockingResources extends Audit { scoreDisplayMode: 'binary', description: str_(UIStrings.description), requiredArtifacts: - ['LinkElements', 'ScriptElements', 'devtoolsLogs', 'traces'], + ['LinkElements', 'ScriptElements', 'devtoolsLogs', 'traces', 'URL'], }; } @@ -102,7 +102,7 @@ class AdRenderBlockingResources extends Audit { /** @type {Map} */ const timingsByRecord = - await getTimingsByRecord(trace, devtoolsLog, context); + await getTimingsByRecord(trace, devtoolsLog, artifacts.URL, context); // NOTE(warrengm): Ideally we would key be requestId here but LinkElements // don't have request IDs. @@ -125,7 +125,7 @@ class AdRenderBlockingResources extends Audit { const blockingNetworkRecords = networkRecords // Don't fail on sync resources loaded after the tag. This includes sync // resources loaded inside of iframes. - .filter((r) => r.endTime < tag.startTime) + .filter((r) => r.networkEndTime < tag.networkRequestTime) .filter((r) => r != tag.initiatorRequest) // Sanity check to filter out duplicate requests which were async. If // type != parser then the resource was dynamically added and is @@ -147,11 +147,9 @@ class AdRenderBlockingResources extends Audit { const blockingStart = Math.min(...startTimes); const blockingEnd = Math.min(Math.max(...endTimes), tagTime.startTime); const opportunity = blockingEnd - blockingStart; - let displayValue = ''; - if (tableView.length > 0 && opportunity > 0) { - displayValue = str_( - UIStrings.failureDisplayValue, {timeInMs: opportunity}); - } + const displayValue = tableView.length > 0 && opportunity > 0 ? + str_(UIStrings.failureDisplayValue, {timeInMs: opportunity}) : + ''; const failed = tableView.length > 0 && opportunity > THRESHOLD_MS; return { @@ -160,7 +158,9 @@ class AdRenderBlockingResources extends Audit { numericUnit: 'unitless', displayValue, details: { + // @ts-expect-error opportunity, + // @ts-expect-error ...AdRenderBlockingResources.makeTableDetails(HEADINGS, tableView), }, }; diff --git a/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js b/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js index c3fe0824..154d4fad 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js @@ -45,24 +45,24 @@ const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); const HEADINGS = [ { key: 'nameOrTld', - itemType: 'text', - text: str_(UIStrings.columnType), + valueType: 'text', + label: str_(UIStrings.columnType), }, { key: 'url', - itemType: 'url', - text: str_(UIStrings.columnUrl), + valueType: 'url', + label: str_(UIStrings.columnUrl), }, { key: 'startTime', - itemType: 'ms', - text: str_(UIStrings.columnStartTime), + valueType: 'ms', + label: str_(UIStrings.columnStartTime), granularity: 1, }, { key: 'endTime', - itemType: 'ms', - text: str_(UIStrings.columnEndTime), + valueType: 'ms', + label: str_(UIStrings.columnEndTime), granularity: 1, }, ]; @@ -127,7 +127,7 @@ class AdRequestCriticalPath extends Audit { failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), scoreDisplayMode: 'informative', - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL'], }; } @@ -141,7 +141,7 @@ class AdRequestCriticalPath extends Audit { const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; const tableView = - (await computeAdRequestWaterfall(trace, devtoolsLog, context)) + (await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context)) .filter((r) => r.startTime > 0 && r.startTime < r.endTime); if (!tableView.length) { return auditNotApplicable.NoAds; @@ -163,10 +163,12 @@ class AdRequestCriticalPath extends Audit { score: failed ? 0 : 1, displayValue: str_(UIStrings.displayValue, {serialResources: depth}), details: { + // @ts-expect-error size: tableView.length, depth, maxIdleTime, totalIdleTime, + // @ts-expect-error ...AdRequestCriticalPath.makeTableDetails(HEADINGS, tableView), }, }; diff --git a/lighthouse-plugin-publisher-ads/audits/ad-request-from-tag-load.js b/lighthouse-plugin-publisher-ads/audits/ad-request-from-tag-load.js index 333703ca..a6411982 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-request-from-tag-load.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-request-from-tag-load.js @@ -46,7 +46,7 @@ class AdRequestFromTagLoad extends Audit { description: str_(UIStrings.description), // @ts-ignore scoreDisplayMode: Audit.SCORING_MODES.NUMERIC, - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL', 'GatherContext'], }; } @@ -77,7 +77,13 @@ class AdRequestFromTagLoad extends Audit { static async audit(artifacts, context) { const trace = artifacts.traces[Audit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; - const metricData = {trace, devtoolsLog, settings: context.settings}; + const metricData = { + trace, + devtoolsLog, + settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, + }; const {timing: tagEndTime} = await ComputedTagLoadTime.request(metricData, context); diff --git a/lighthouse-plugin-publisher-ads/audits/ad-top-of-viewport.js b/lighthouse-plugin-publisher-ads/audits/ad-top-of-viewport.js index c3f1fbbc..430665cd 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-top-of-viewport.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-top-of-viewport.js @@ -41,14 +41,14 @@ const SCROLL_PX_THRESHOLD = 100; * @type {LH.Audit.Details.Table['headings']} */ const HEADINGS = [ - {key: 'slot', itemType: 'text', text: str_(UIStrings.columnSlot)}, + {key: 'slot', valueType: 'text', label: str_(UIStrings.columnSlot)}, ]; /** @inheritDoc */ class AdTopOfViewport extends Audit { /** - * @return {AuditMetadata} + * @return {LH.Audit.Meta} */ static get meta() { return { diff --git a/lighthouse-plugin-publisher-ads/audits/ads-in-viewport.js b/lighthouse-plugin-publisher-ads/audits/ads-in-viewport.js index 43c8191c..591539bd 100644 --- a/lighthouse-plugin-publisher-ads/audits/ads-in-viewport.js +++ b/lighthouse-plugin-publisher-ads/audits/ads-in-viewport.js @@ -41,13 +41,13 @@ const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); * @type {LH.Audit.Details.Table['headings']} */ const HEADINGS = [ - {key: 'slot', itemType: 'text', text: str_(UIStrings.columnSlot)}, + {key: 'slot', valueType: 'text', label: str_(UIStrings.columnSlot)}, ]; /** @inheritDoc */ class AdsInViewport extends Audit { /** - * @return {AuditMetadata} + * @return {LH.Audit.Meta} */ static get meta() { return { diff --git a/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js b/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js index b1e0b9f9..587376c0 100644 --- a/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js +++ b/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js @@ -13,13 +13,8 @@ // limitations under the License. import * as i18n from 'lighthouse/core/lib/i18n/i18n.js'; - import {NetworkRecords} from 'lighthouse/core/computed/network-records.js'; - -// @ts-expect-error import {ProcessedTrace} from 'lighthouse/core/computed/processed-trace.js'; - -// @ts-expect-error import {ProcessedNavigation} from 'lighthouse/core/computed/processed-navigation.js'; import {auditNotApplicable} from '../messages/common-strings.js'; @@ -53,10 +48,10 @@ const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); * @type {LH.Audit.Details.Table['headings']} */ const HEADINGS = [ - {key: 'eventName', itemType: 'text', text: str_(UIStrings.columnEvent)}, - {key: 'time', itemType: 'ms', text: str_(UIStrings.columnTime), granularity: 1}, - {key: 'url', itemType: 'url', text: str_(UIStrings.columnScript)}, - {key: 'functionName', itemType: 'text', text: str_(UIStrings.columnFunctionName)}, + {key: 'eventName', valueType: 'text', label: str_(UIStrings.columnEvent)}, + {key: 'time', valueType: 'ms', label: str_(UIStrings.columnTime), granularity: 1}, + {key: 'url', valueType: 'url', label: str_(UIStrings.columnScript)}, + {key: 'functionName', valueType: 'text', label: str_(UIStrings.columnFunctionName)}, ]; /** @typedef {import('../utils/graph.js').SimpleRequest} SimpleRequest */ @@ -169,7 +164,7 @@ class BlockingLoadEvents extends Audit { title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL'], }; } @@ -188,10 +183,10 @@ class BlockingLoadEvents extends Audit { const {processEvents} = processedTrace; /** @type {Map} */ const timingsByRecord = - await getTimingsByRecord(trace, devtoolsLog, context); + await getTimingsByRecord(trace, devtoolsLog, artifacts.URL, context); const criticalRequests = - (await computeAdRequestWaterfall(trace, devtoolsLog, context)) + (await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context)) // Sort by start time so we process the earliest requests first. .sort((a, b) => a.startTime - b.startTime); @@ -229,6 +224,7 @@ class BlockingLoadEvents extends Audit { const blockingEvent = Object.assign({ eventName: interval.eventName, blockedUrl: r.url, + // @ts-expect-error time: timings[interval.eventName], blockedTime: Infinity, }, callFrame); @@ -250,6 +246,7 @@ class BlockingLoadEvents extends Audit { displayValue: failed && blockedTime ? str_(UIStrings.displayValue, {timeInMs: blockedTime}) : '', + // @ts-expect-error details: BlockingLoadEvents.makeTableDetails(HEADINGS, blockingEvents), }; } diff --git a/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js b/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js index b16b4a1b..99c0acf7 100644 --- a/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js +++ b/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js @@ -48,19 +48,19 @@ const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); const HEADINGS = [ { key: 'url', - itemType: 'url', - text: str_(UIStrings.columnUrl), + valueType: 'url', + label: str_(UIStrings.columnUrl), }, { key: 'selfTime', - itemType: 'ms', - text: str_(UIStrings.columnSelfTime), + valueType: 'ms', + label: str_(UIStrings.columnSelfTime), granularity: 1, }, { key: 'duration', - itemType: 'ms', - text: str_(UIStrings.columnDuration), + valueType: 'ms', + label: str_(UIStrings.columnDuration), granularity: 1, }, ]; @@ -79,7 +79,7 @@ class BottleneckRequests extends Audit { title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL'], }; } @@ -93,7 +93,7 @@ class BottleneckRequests extends Audit { const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; const waterfall = - (await computeAdRequestWaterfall(trace, devtoolsLog, context)) + (await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context)) .filter((r) => r.startTime > 0); if (!waterfall.length) { return auditNotApplicable.NoAdRelatedReq; @@ -126,6 +126,7 @@ class BottleneckRequests extends Audit { score: failed ? 0 : 1, displayValue: failed ? str_(UIStrings.displayValue, {blockedTime}) : '', details: + // @ts-expect-error BottleneckRequests.makeTableDetails(HEADINGS, criticalRequests), }; } diff --git a/lighthouse-plugin-publisher-ads/audits/cumulative-ad-shift.js b/lighthouse-plugin-publisher-ads/audits/cumulative-ad-shift.js index 5c72de42..059edd80 100644 --- a/lighthouse-plugin-publisher-ads/audits/cumulative-ad-shift.js +++ b/lighthouse-plugin-publisher-ads/audits/cumulative-ad-shift.js @@ -64,7 +64,7 @@ class CumulativeAdShift extends Audit { /** * @param {LH.TraceEvent} shiftEvent - * @param {Artifacts['IFrameElement'][]} ads + * @param {LH.Artifacts.IFrameElement[]} ads * @return {boolean} */ static isAdExpansion(shiftEvent, ads) { @@ -113,7 +113,7 @@ class CumulativeAdShift extends Audit { * Computes the ad shift score for the page. * @param {LH.TraceEvent[]} shiftEvents * @param {LH.TraceEvent[]} scriptEvents - * @param {Artifacts['IFrameElement'][]} ads + * @param {LH.Artifacts.IFrameElement[]} ads * @param {number} tagLoadTs */ static compute(shiftEvents, scriptEvents, ads, tagLoadTs) { diff --git a/lighthouse-plugin-publisher-ads/audits/deprecated-api-usage.js b/lighthouse-plugin-publisher-ads/audits/deprecated-api-usage.js index bea6a49c..79d333ea 100644 --- a/lighthouse-plugin-publisher-ads/audits/deprecated-api-usage.js +++ b/lighthouse-plugin-publisher-ads/audits/deprecated-api-usage.js @@ -85,8 +85,8 @@ class DeprecatedApiUsage extends Audit { /** @type {LH.Audit.Details.Table['headings']} */ const headings = [ - {key: 'url', itemType: 'url', text: str_(i18n.UIStrings.columnURL)}, - {key: 'description', itemType: 'code', text: str_(i18n.UIStrings.columnDescription)}, + {key: 'url', valueType: 'url', label: str_(i18n.UIStrings.columnURL)}, + {key: 'description', valueType: 'code', label: str_(i18n.UIStrings.columnDescription)}, ]; const details = Audit.makeTableDetails(headings, tableRows); diff --git a/lighthouse-plugin-publisher-ads/audits/duplicate-tags.js b/lighthouse-plugin-publisher-ads/audits/duplicate-tags.js index 9504c41b..81fdd122 100644 --- a/lighthouse-plugin-publisher-ads/audits/duplicate-tags.js +++ b/lighthouse-plugin-publisher-ads/audits/duplicate-tags.js @@ -51,8 +51,8 @@ const tags = [ * @type {LH.Audit.Details.Table['headings']} */ const HEADINGS = [ - {key: 'script', itemType: 'url', text: str_(UIStrings.columnScript)}, - {key: 'numReqs', itemType: 'text', text: str_(UIStrings.columnNumReqs)}, + {key: 'script', valueType: 'url', label: str_(UIStrings.columnScript)}, + {key: 'numReqs', valueType: 'text', label: str_(UIStrings.columnNumReqs)}, ]; /** * Simple audit that checks if any specified tags are duplicated within the same diff --git a/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js b/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js index 173d607a..e99efae4 100644 --- a/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js +++ b/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js @@ -45,10 +45,10 @@ const UIStrings = { * @type {LH.Audit.Details.Table['headings']} */ const HEADINGS = [ - {key: 'bidder', itemType: 'text', text: UIStrings.columnBidder}, - {key: 'url', itemType: 'url', text: UIStrings.columnUrl}, - {key: 'startTime', itemType: 'ms', text: UIStrings.columnStartTime}, - {key: 'duration', itemType: 'ms', text: UIStrings.columnDuration}, + {key: 'bidder', valueType: 'text', label: UIStrings.columnBidder}, + {key: 'url', valueType: 'url', label: UIStrings.columnUrl}, + {key: 'startTime', valueType: 'ms', label: UIStrings.columnStartTime}, + {key: 'duration', valueType: 'ms', label: UIStrings.columnDuration}, ]; /** @@ -64,7 +64,7 @@ class GptBidsInParallel extends Audit { title: UIStrings.title, failureTitle: UIStrings.failureTitle, description: UIStrings.description, - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL'], }; } @@ -91,12 +91,12 @@ class GptBidsInParallel extends Audit { /** @type {Map} */ const timingsByRecord = await getTimingsByRecord( - trace, devtoolsLog, context); + trace, devtoolsLog, artifacts.URL, context); const tableView = []; /** @type {Set} */ const seen = new Set(); for (const bid of bids) { if (getCriticalGraph(network, trace.traceEvents, bid).has(pubadsImpl)) { - const {startTime, endTime} = timingsByRecord.get(bid) || bid; + const {startTime, endTime} = timingsByRecord.get(bid) || {startTime: bid.networkRequestTime, endTime: bid.networkEndTime}; const bidder = assert(getHeaderBidder(bid.url)); if (seen.has(bidder)) { // Don't include multiple requests from the same bidder in the results diff --git a/lighthouse-plugin-publisher-ads/audits/gpt-errors-overall.js b/lighthouse-plugin-publisher-ads/audits/gpt-errors-overall.js index 1acb07a3..6ae4e359 100644 --- a/lighthouse-plugin-publisher-ads/audits/gpt-errors-overall.js +++ b/lighthouse-plugin-publisher-ads/audits/gpt-errors-overall.js @@ -85,8 +85,8 @@ class GptErrorsOverall extends Audit { /** @type {LH.Audit.Details.Table['headings']} */ const headings = [ - {key: 'url', itemType: 'url', text: str_(i18n.UIStrings.columnURL)}, - {key: 'description', itemType: 'code', text: str_(i18n.UIStrings.columnDescription)}, + {key: 'url', valueType: 'url', label: str_(i18n.UIStrings.columnURL)}, + {key: 'description', valueType: 'code', label: str_(i18n.UIStrings.columnDescription)}, ]; const details = Audit.makeTableDetails(headings, tableRows); diff --git a/lighthouse-plugin-publisher-ads/audits/idle-network-times.js b/lighthouse-plugin-publisher-ads/audits/idle-network-times.js index 9594be42..1dbc17b0 100644 --- a/lighthouse-plugin-publisher-ads/audits/idle-network-times.js +++ b/lighthouse-plugin-publisher-ads/audits/idle-network-times.js @@ -16,11 +16,7 @@ import * as i18n from 'lighthouse/core/lib/i18n/i18n.js'; import {MainThreadTasks} from 'lighthouse/core/computed/main-thread-tasks.js'; import {NetworkRecords} from 'lighthouse/core/computed/network-records.js'; - -// @ts-expect-error import {ProcessedTrace} from 'lighthouse/core/computed/processed-trace.js'; - -// @ts-expect-error import {ProcessedNavigation} from 'lighthouse/core/computed/processed-navigation.js'; import {auditNotApplicable} from '../messages/common-strings.js'; @@ -54,7 +50,7 @@ const UIStrings = { const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); -/** @enum {string} */ +/** @enum {LH.IcuMessage} */ const Cause = { DOM_CONTENT_LOADED: str_(UIStrings.causeDomContentLoaded), LOAD_EVENT: str_(UIStrings.causeLoadEvent), @@ -70,7 +66,7 @@ const Cause = { * @property {number} endTime * @property {number} duration * @property {string} url The attributable url - * @property {string} cause + * @property {string|LH.IcuMessage} cause */ /** @@ -80,24 +76,24 @@ const Cause = { const HEADINGS = [ { key: 'cause', - itemType: 'text', - text: str_(UIStrings.columnCause), + valueType: 'text', + label: str_(UIStrings.columnCause), }, { key: 'url', - itemType: 'url', - text: str_(UIStrings.columnUrl), + valueType: 'url', + label: str_(UIStrings.columnUrl), }, { key: 'startTime', - itemType: 'ms', - text: str_(UIStrings.columnStartTime), + valueType: 'ms', + label: str_(UIStrings.columnStartTime), granularity: 1, }, { key: 'duration', - itemType: 'ms', - text: str_(UIStrings.columnDuration), + valueType: 'ms', + label: str_(UIStrings.columnDuration), granularity: 1, }, ]; @@ -255,7 +251,7 @@ class IdleNetworkTimes extends Audit { title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - requiredArtifacts: ['devtoolsLogs', 'traces', 'TagsBlockingFirstPaint'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'TagsBlockingFirstPaint', 'URL'], }; } @@ -283,7 +279,7 @@ class IdleNetworkTimes extends Audit { const pageStartTime = getPageStartTime(networkRecords); const blockingRequests = - await computeAdRequestWaterfall(trace, devtoolsLog, context); + await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context); if (!blockingRequests.length) { return auditNotApplicable.NoAdRelatedReq; } diff --git a/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js b/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js index c6d80a12..2cdfa84a 100644 --- a/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js +++ b/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js @@ -50,14 +50,14 @@ const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); const HEADINGS = [ { key: 'url', - itemType: 'url', - text: str_(UIStrings.columnUrl), + valueType: 'url', + label: str_(UIStrings.columnUrl), }, { key: 'loadTime', - itemType: 'ms', + valueType: 'ms', granularity: 1, - text: str_(UIStrings.columnLoadTime), + label: str_(UIStrings.columnLoadTime), }, ]; @@ -107,7 +107,7 @@ async function findStaticallyLoadableTags(artifacts, context) { // Next add any scripts that appear that they can be loaded statically based // on page analysis. const criticalRequests = - await computeAdRequestWaterfall(trace, devtoolsLog, context); + await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context); for (const {record} of criticalRequests) { if (!record || record.resourceType !== 'Script') { // Don't count resources that aren't scripts. @@ -132,7 +132,7 @@ class StaticAdTags extends Audit { title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL'], }; } @@ -153,7 +153,7 @@ class StaticAdTags extends Audit { const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; const trace = artifacts.traces[Audit.DEFAULT_PASS]; const scriptTimes = - await getScriptEvaluationTimes(trace, devtoolsLog, context); + await getScriptEvaluationTimes(trace, devtoolsLog, artifacts.URL, context); for (const tag of tagReqs) { if (seenUrls.has(tag.url)) continue; seenUrls.add(tag.url); diff --git a/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js b/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js index 8554e8e3..97e71462 100644 --- a/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js +++ b/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js @@ -62,10 +62,10 @@ const MIN_BID_DURATION = .05; * @type {LH.Audit.Details.Table['headings']} */ const HEADINGS = [ - {key: 'bidder', itemType: 'text', text: str_(UIStrings.columnBidder)}, - {key: 'url', itemType: 'url', text: str_(UIStrings.columnUrl)}, - {key: 'startTime', itemType: 'ms', text: str_(UIStrings.columnStartTime)}, - {key: 'duration', itemType: 'ms', text: str_(UIStrings.columnDuration)}, + {key: 'bidder', valueType: 'text', label: str_(UIStrings.columnBidder)}, + {key: 'url', valueType: 'url', label: str_(UIStrings.columnUrl)}, + {key: 'startTime', valueType: 'ms', label: str_(UIStrings.columnStartTime)}, + {key: 'duration', valueType: 'ms', label: str_(UIStrings.columnDuration)}, ]; /** @@ -124,7 +124,7 @@ function checkRecordType(record) { function isPossibleBid(rec) { return (rec.resourceSize == null || rec.resourceSize > 0) && (rec.resourceType != 'Image') && - (rec.endTime - rec.startTime >= MIN_BID_DURATION) && + (rec.networkEndTime - rec.networkRequestTime >= MIN_BID_DURATION) && !isCacheable(rec); } @@ -198,7 +198,7 @@ class SerialHeaderBidding extends Audit { /** @type {Map} */ const timingsByRecord = await getTimingsByRecord( - trace, devtoolsLog, context); + trace, devtoolsLog, artifacts.URL, context); const headerBiddingRecords = constructRecords( recordsByType.get(RequestType.BID) || [], RequestType.BID, @@ -239,6 +239,7 @@ class SerialHeaderBidding extends Audit { numericUnit: 'unitless', score: hasSerialHeaderBidding ? 0 : 1, details: hasSerialHeaderBidding ? + // @ts-expect-error SerialHeaderBidding.makeTableDetails(HEADINGS, serialBids) : undefined, }; } diff --git a/lighthouse-plugin-publisher-ads/audits/tag-load-time.js b/lighthouse-plugin-publisher-ads/audits/tag-load-time.js index dc1b39a9..18c8de6a 100644 --- a/lighthouse-plugin-publisher-ads/audits/tag-load-time.js +++ b/lighthouse-plugin-publisher-ads/audits/tag-load-time.js @@ -46,7 +46,7 @@ class TagLoadTime extends Audit { description: str_(UIStrings.description), // @ts-ignore scoreDisplayMode: Audit.SCORING_MODES.NUMERIC, - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL', 'GatherContext'], }; } @@ -76,7 +76,13 @@ class TagLoadTime extends Audit { static async audit(artifacts, context) { const trace = artifacts.traces[Audit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; - const metricData = {trace, devtoolsLog, settings: context.settings}; + const metricData = { + trace, + devtoolsLog, + settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, + }; const scoreOptions = context.options[ context.settings.throttlingMethod == 'provided' ? 'provided' : diff --git a/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js b/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js index ee2f15c6..32325c95 100644 --- a/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js +++ b/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js @@ -44,13 +44,13 @@ const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings); const HEADINGS = [ { key: 'name', - itemType: 'text', - text: str_(UIStrings.columnName), + valueType: 'text', + label: str_(UIStrings.columnName), }, { key: 'blockingTime', - itemType: 'ms', - text: str_(UIStrings.columnBlockingTime), + valueType: 'ms', + label: str_(UIStrings.columnBlockingTime), granularity: 1, }, ]; diff --git a/lighthouse-plugin-publisher-ads/audits/viewport-ad-density.js b/lighthouse-plugin-publisher-ads/audits/viewport-ad-density.js index 57e71833..2a2c71a8 100644 --- a/lighthouse-plugin-publisher-ads/audits/viewport-ad-density.js +++ b/lighthouse-plugin-publisher-ads/audits/viewport-ad-density.js @@ -82,7 +82,7 @@ function computeAdLength(slots, viewport) { /** @inheritDoc */ class ViewportAdDensity extends Audit { /** - * @return {AuditMetadata} + * @return {LH.Audit.Meta} */ static get meta() { return { @@ -110,6 +110,7 @@ class ViewportAdDensity extends Audit { } if (viewport.innerHeight <= 0) { + // @ts-expect-error throw new Error(auditError.ViewportAreaZero); } diff --git a/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js b/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js index b28dd939..44711694 100644 --- a/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js +++ b/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +/** @typedef {import('lighthouse/core/lib/dependency-graph/base-node.js').Node} Node */ + import {BaseNode} from 'lighthouse/core/lib/dependency-graph/base-node.js'; // eslint-disable-next-line no-unused-vars @@ -94,7 +96,7 @@ function addEdge(a, b) { /** * Inserts edges between bid requests and ad requests. - * @param {BaseNode} graph + * @param {Node} graph */ function addEdges(graph) { /** @type {NetworkNode[]} */ const adRequestNodes = []; @@ -152,9 +154,9 @@ class AdLanternMetric extends LanternMetric { } /** - * @param {BaseNode} graph Root of the dependency graph, i.e. the + * @param {Node} graph Root of the dependency graph, i.e. the * document node. - * @return {BaseNode} + * @return {Node} */ static getPessimisticGraph(graph) { // The pessimistic graph is the whole graph. @@ -164,9 +166,9 @@ class AdLanternMetric extends LanternMetric { } /** - * @param {BaseNode} graph Root of the dependency graph, i.e. the + * @param {Node} graph Root of the dependency graph, i.e. the * document node. - * @return {BaseNode} + * @return {Node} */ static getOptimisticGraph(graph) { // @ts-ignore diff --git a/lighthouse-plugin-publisher-ads/computed/long-tasks.js b/lighthouse-plugin-publisher-ads/computed/long-tasks.js index 25d9b15a..dee9f1b8 100644 --- a/lighthouse-plugin-publisher-ads/computed/long-tasks.js +++ b/lighthouse-plugin-publisher-ads/computed/long-tasks.js @@ -38,6 +38,8 @@ import {NetworkNode} from 'lighthouse/core/lib/dependency-graph/network-node.js' import {NetworkRecords} from 'lighthouse/core/computed/network-records.js'; import {PageDependencyGraph} from 'lighthouse/core/computed/page-dependency-graph.js'; +/** @typedef {import('lighthouse/core/lib/dependency-graph/base-node.js').Node} Node */ + const PROVIDED_LONG_TASK_THRESHOLD_MS = 50; const SIMULATED_LONG_TASK_THRESHOLD_MS = 100; @@ -64,15 +66,15 @@ function isLong(task, knownScripts) { } /** Finds long tasks, with support for simulation. */ +// @ts-expect-error TODO why is this a ComputedMetric? Should it just be a Computed artifact? It returns task nodes, no Metric/LanternMetric. class LongTasks extends ComputedMetric { /** * @param {LH.Trace} trace * @param {LH.DevtoolsLog} devtoolsLog * @param {LH.Audit.Context} context - * @return {Promise} networkRecords + * @return {Promise} networkRecords */ static async getSimulationGraph(trace, devtoolsLog, context) { - /** @type {NetworkNode} */ const documentNode = // @ts-ignore Property 'request' does not appear on PageDependencyGraph await PageDependencyGraph.request({trace, devtoolsLog}, context); @@ -105,9 +107,13 @@ class LongTasks extends ComputedMetric { selfTime: timing.duration, // TODO: subtract child time attributableURLs: Array.from(node.getEvaluateScriptURLs()), children: [], + // @ts-expect-error TODO Nodes do not have this information though? parent: node.parent, + // @ts-expect-error TODO Nodes do not have this information though? unbounded: node.unbounded, + // @ts-expect-error TODO Nodes do not have this information though? group: node.group, + endEvent: undefined, }); } return tasks; diff --git a/lighthouse-plugin-publisher-ads/computed/tag-load-time.js b/lighthouse-plugin-publisher-ads/computed/tag-load-time.js index 178c73a6..2f4e45c2 100644 --- a/lighthouse-plugin-publisher-ads/computed/tag-load-time.js +++ b/lighthouse-plugin-publisher-ads/computed/tag-load-time.js @@ -44,9 +44,7 @@ class LanternTagLoadTime extends AdLanternMetric { } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -LanternTagLoadTime = makeComputedArtifact(LanternTagLoadTime); +const ComputedLanternTagLoadTime = makeComputedArtifact(LanternTagLoadTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); /** Computes the tag load time metric. */ class TagLoadTime extends ComputedMetric { @@ -56,8 +54,7 @@ class TagLoadTime extends ComputedMetric { * @return {Promise} */ static async computeSimulatedMetric(data, context) { - // @ts-ignore request does not exist on LanternTagLoadTime - return LanternTagLoadTime.request(data, context); + return ComputedLanternTagLoadTime.request(data, context); } /** @@ -72,24 +69,8 @@ class TagLoadTime extends ComputedMetric { const tagLoadMs = (tagEndTime - pageStartTime) * 1000; return Promise.resolve({timing: tagLoadMs}); } - - /** - * @param {unknown} artifacts - * @param {LH.Audit.Context} context - * @return {Promise} - */ - static async request(artifacts, context) { - // Implement request() to make the compiler happy. It will be implemented - // below with decoration. Long term we should find a good way to have the - // compiler infer this. - throw Error('Not implemented -- class not decorated'); - } } -// Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -TagLoadTime = makeComputedArtifact(TagLoadTime); - -export default TagLoadTime; +const ComputedTagLoadTime = makeComputedArtifact(TagLoadTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); +export default ComputedTagLoadTime; diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/cumulative-ad-shift.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/cumulative-ad-shift.js index bdbd2dfb..74f76117 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/cumulative-ad-shift.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/cumulative-ad-shift.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/layout-shift.html', - finalUrl: 'http://localhost:8081/layout-shift.html', + finalDisplayedUrl: 'http://localhost:8081/layout-shift.html', audits: { 'cumulative-ad-shift': { numericValue: '0.3 +/- 0.1', diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/deprecated-api-usage.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/deprecated-api-usage.js index e0973517..e0ea696b 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/deprecated-api-usage.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/deprecated-api-usage.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/deprecated-api-usage.html', - finalUrl: 'http://localhost:8081/deprecated-api-usage.html', + finalDisplayedUrl: 'http://localhost:8081/deprecated-api-usage.html', audits: { 'deprecated-gpt-api-usage': { score: null, diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/duplicate-tags.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/duplicate-tags.js index 3ac2644a..032e120d 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/duplicate-tags.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/duplicate-tags.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/duplicate-tags.html', - finalUrl: 'http://localhost:8081/duplicate-tags.html', + finalDisplayedUrl: 'http://localhost:8081/duplicate-tags.html', audits: { 'duplicate-tags': { score: 0, diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/gpt-errors-overall.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/gpt-errors-overall.js index 1567c753..11386612 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/gpt-errors-overall.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/gpt-errors-overall.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/gpt-errors-overall.html', - finalUrl: 'http://localhost:8081/gpt-errors-overall.html', + finalDisplayedUrl: 'http://localhost:8081/gpt-errors-overall.html', audits: { 'gpt-errors-overall': { score: null, diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/lazy-load.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/lazy-load.js index f3f13586..8bf5ef11 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/lazy-load.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/lazy-load.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/lazy-load.html', - finalUrl: 'http://localhost:8081/lazy-load.html', + finalDisplayedUrl: 'http://localhost:8081/lazy-load.html', audits: { 'ad-top-of-viewport': { score: 0, diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/limited-ads-dynamic-loading.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/limited-ads-dynamic-loading.js index fefaa93c..2618b247 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/limited-ads-dynamic-loading.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/limited-ads-dynamic-loading.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/limited-ads-dynamic-loading.html', - finalUrl: 'http://localhost:8081/limited-ads-dynamic-loading.html', + finalDisplayedUrl: 'http://localhost:8081/limited-ads-dynamic-loading.html', audits: { 'loads-gpt-from-official-source': { score: 1, diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/long-tasks.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/long-tasks.js index 192db77e..3fc05ad0 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/long-tasks.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/long-tasks.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/long-tasks.html', - finalUrl: 'http://localhost:8081/long-tasks.html', + finalDisplayedUrl: 'http://localhost:8081/long-tasks.html', audits: { 'tag-load-time': { numericValue: '6800 +/- 1000', diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/not-applicable.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/not-applicable.js index c3b45c86..3acc420f 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/not-applicable.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/not-applicable.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/not-applicable.html', - finalUrl: 'http://localhost:8081/not-applicable.html', + finalDisplayedUrl: 'http://localhost:8081/not-applicable.html', runWarnings: [ 'No ads were requested when fetching this page.', 'No ads were rendered when rendering this page.', diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/render-blocking-tags.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/render-blocking-tags.js index f1a227c8..b4a1caa8 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/render-blocking-tags.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/render-blocking-tags.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/render-blocking-tags.html', - finalUrl: 'http://localhost:8081/render-blocking-tags.html', + finalDisplayedUrl: 'http://localhost:8081/render-blocking-tags.html', audits: { 'ad-render-blocking-resources': { scoreDisplayMode: 'binary', diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/script-injected.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/script-injected.js index c4506140..f9f14d3c 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/script-injected.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/script-injected.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/script-injected.html', - finalUrl: 'http://localhost:8081/script-injected.html', + finalDisplayedUrl: 'http://localhost:8081/script-injected.html', audits: { 'script-injected-tags': { score: 0, diff --git a/lighthouse-plugin-publisher-ads/test/smoke/expectations/top-of-viewport.js b/lighthouse-plugin-publisher-ads/test/smoke/expectations/top-of-viewport.js index fdd7edc9..dab43c1c 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/expectations/top-of-viewport.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/expectations/top-of-viewport.js @@ -20,7 +20,7 @@ export default [ { lhr: { requestedUrl: 'http://localhost:8081/top-of-viewport.html', - finalUrl: 'http://localhost:8081/top-of-viewport.html', + finalDisplayedUrl: 'http://localhost:8081/top-of-viewport.html', audits: { 'ad-top-of-viewport': { score: 0, diff --git a/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js b/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js index e9c98894..39f4b412 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js @@ -27,56 +27,56 @@ import config from './config.js'; /** @type {Array} */ const smokeTests = [ // TODO(jburger): Add back `gpt-error-overall` case once fix reaches prod. - { - id: 'deprecated-api-usage', - expectations: deprecatedApiUsage, - config, - }, - { - id: 'duplicate-tags', - expectations: duplicateTags, - config, - }, - { - id: 'lazy-load', - expectations: lazyLoad, - config, - }, - { - id: 'long-tasks', - expectations: longTasks, - config, - }, - { - id: 'render-blocking-tasks', - expectations: renderBlockingTags, - config, - }, - { - id: 'script-injected', - expectations: scriptInjected, - config, - }, + // { + // id: 'deprecated-api-usage', + // expectations: deprecatedApiUsage, + // config, + // }, + // { + // id: 'duplicate-tags', + // expectations: duplicateTags, + // config, + // }, + // { + // id: 'lazy-load', + // expectations: lazyLoad, + // config, + // }, + // { + // id: 'long-tasks', + // expectations: longTasks, + // config, + // }, + // { + // id: 'render-blocking-tasks', + // expectations: renderBlockingTags, + // config, + // }, + // { + // id: 'script-injected', + // expectations: scriptInjected, + // config, + // }, { id: 'top-of-viewport', expectations: topOfViewport, config, }, - { - id: 'not-applicable', - expectations: notApplicable, - config, - }, - { - id: 'limited-ads-dynamic-loading', - expectations: limitedAdsDynamicLoading, - config, - }, - { - id: 'cumulative-ad-shift', - expectations: cumulativeAdShift, - config, - }, + // { + // id: 'not-applicable', + // expectations: notApplicable, + // config, + // }, + // { + // id: 'limited-ads-dynamic-loading', + // expectations: limitedAdsDynamicLoading, + // config, + // }, + // { + // id: 'cumulative-ad-shift', + // expectations: cumulativeAdShift, + // config, + // }, ]; export default smokeTests; diff --git a/lighthouse-plugin-publisher-ads/tsconfig.json b/lighthouse-plugin-publisher-ads/tsconfig.json index b8175e23..3464c97f 100644 --- a/lighthouse-plugin-publisher-ads/tsconfig.json +++ b/lighthouse-plugin-publisher-ads/tsconfig.json @@ -19,20 +19,7 @@ "include": [ "**/*.js", "**/*.d.ts", - "../node_modules/lighthouse/types/lookup-closest-locale/index.d.ts", - "../node_modules/lighthouse/shared/*.js", - "../node_modules/lighthouse/shared/localization/*.js", - "../node_modules/lighthouse/root.js", - "../node_modules/lighthouse/esm-utils.js", - "../node_modules/lighthouse/core/report/html/renderer/util.js", - "../node_modules/lighthouse/core/report/html/renderer/i18n.js", - "../node_modules/lighthouse/core/lib/network-request.js", - "../node_modules/lighthouse/core/lib/url-utils.js", - "../node_modules/lighthouse/core/lib/lh-error.js", - "../node_modules/lighthouse/core/lib/i18n/*.js", - "../node_modules/lighthouse/core/util.cjs", - "../node_modules/lighthouse/core/lib/dependency-graph/*.js", - "../node_modules/lighthouse/core/lib/third-party-web.js", + "../node_modules/lighthouse/types/lh.js", ], "exclude": [ "test/**/*.js", diff --git a/lighthouse-plugin-publisher-ads/typings/audits.d.ts b/lighthouse-plugin-publisher-ads/typings/audits.d.ts index d55c042d..1969fc07 100644 --- a/lighthouse-plugin-publisher-ads/typings/audits.d.ts +++ b/lighthouse-plugin-publisher-ads/typings/audits.d.ts @@ -17,10 +17,6 @@ import './lh-externs'; //TODO: make an Audit namespace and NetworkDetails namespace (and change files) // associated with this change, such as audits. declare global { - export interface AuditMetadata extends LH.Audit.Meta { - requiredArtifacts: Array - } - export namespace NetworkDetails { export enum RequestType { AD = "ad", diff --git a/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts b/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts index f8ab39e4..1a1aa32c 100644 --- a/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts +++ b/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts @@ -12,36 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -/** - * LH module - Lighthouse internal types - * - * The export list can be semi-auto generated by running the following command: - * - * find node_modules/lighthouse/types node_modules/lighthouse/types/lhr -name '*.d.ts' -maxdepth 1 | sed -E "s#node_modules/(.*).d.ts#import '\1';#g" - */ - import 'lighthouse/types/user-flow'; - import 'lighthouse/types/audit'; - import 'lighthouse/types/smokehouse'; - import 'lighthouse/types/global-lh'; - import 'lighthouse/types/gatherer'; - import 'lighthouse/types/config'; - import 'lighthouse/types/rollup-plugin-postprocess'; - import 'lighthouse/types/structured-data'; - import 'lighthouse/types/enquirer'; - import 'lighthouse/types/test'; - import 'lighthouse/types/node-fetch'; - import 'lighthouse/types/protocol'; - import 'lighthouse/types/externs'; - import 'lighthouse/types/jsonlint-mod'; - import 'lighthouse/types/query-selector'; - import 'lighthouse/types/node'; - import 'lighthouse/types/es-main'; - import 'lighthouse/types/artifacts'; - import 'lighthouse/types/lhr/settings'; - import 'lighthouse/types/lhr/lhr'; - import 'lighthouse/types/lhr/i18n'; - import 'lighthouse/types/lhr/flow'; - import 'lighthouse/types/lhr/audit-details'; - import 'lighthouse/types/lhr/budget'; - import 'lighthouse/types/lhr/audit-result'; - import 'lighthouse/types/lhr/treemap'; +// declare global { +// module LH { +// export * from 'lighthouse/types/lh.js'; +// } +// } + +export * from 'lighthouse/types/lh.js'; + +export as namespace LH; diff --git a/lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts b/lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts index d59bbcfe..338ea557 100644 --- a/lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts +++ b/lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts @@ -19,91 +19,91 @@ * * TODO: Remove file once https://github.com/GoogleChrome/lighthouse/issues/1773 is closed */ -declare module 'lighthouse' { - export = lighthouse; - - function lighthouse(url: string, flags: CoreFlags, config: LH.Config) - : Promise; - - export interface CoreFlags extends SharedFlagsSettings { - logLevel?: 'silent' | 'error' | 'info' | 'verbose'; - hostname?: string; - output?: any; - port: number; - } - - namespace lighthouse { - export class Audit { - // NOTE: commented as a workaround for our custom artifacts, otherwise - // typescript complains that RequiredArtifacts is an unrelated type. - // static get meta(): LH.Audit.Meta; - - static audit(artifacts: LH.Artifacts, context: LH.Audit.Context) - : LH.Audit.Product | Promise; - - static makeTableDetails( - headings: LH.Audit.Heading[], - results: { [x: string]: LH.Audit.DetailsItem }[], - summary?: LH.Audit.DetailsRendererDetailsSummary - ): LH.Audit.DetailsRendererDetailsJSON; - - static get DEFAULT_PASS(): string; - - static computeLogNormalScore( - controlPoints : {median: number, p10: number}, - value: number, - ): number; - } - - export class Gatherer { - pass(passContext: LH.Gatherer.PassContext): PhaseResult; - - beforePass(passContext: LH.Gatherer.PassContext): PhaseResult; - - afterPass(passContext: LH.Gatherer.PassContext, - loadData: LH.Gatherer.LoadData): PhaseResult; - } - - // Alias used inside lighthouse/core/gatherers/gatherer.js - type PhaseResult = void | LH.GathererArtifacts[keyof LH.GathererArtifacts]; - } -} - -declare module 'lighthouse-logger' { - export function setLevel(level: string): void; - export function log(title: string, ...args: StringFormat): void; - export function warn(title: string, ...args: StringFormat): void; - export function error(title: string, ...args: StringFormat): void; - - interface StringFormat extends Array { - 0: string, - } -} - -declare module 'lighthouse/core/computed/network-records.js' { - export class NetworkRecords { - static request(devToolsLog: LH.DevtoolsLog, context: LH.Audit.Context): Promise>; - } -} - -declare module 'lighthouse/core/computed/main-resource.js' { - export class MainResource { - static request(data: {URL: LH.Artifacts['URL'], devtoolsLog: LH.DevtoolsLog}, context: LH.Audit.Context): Promise; - } -} - -declare module 'lighthouse/core/computed/page-dependency-graph.js' { - export class PageDependencyGraph { - static getNetworkInitiators(record: LH.Artifacts.NetworkRequest): Array; - } -} - -declare module 'lighthouse/core/computed/main-thread-tasks.js' { - export class MainThreadTasks { - static request(trace: LH.Trace, context: LH.Audit.Context): Promise>; - } -} - -declare module 'lighthouse/core/lib/i18n/i18n.js'; { - export function createIcuMessageFn(filename: string, fileStrings: Record); -} +// declare module 'lighthouse' { +// export = lighthouse; + +// function lighthouse(url: string, flags: CoreFlags, config: LH.Config) +// : Promise; + +// export interface CoreFlags extends SharedFlagsSettings { +// logLevel?: 'silent' | 'error' | 'info' | 'verbose'; +// hostname?: string; +// output?: any; +// port: number; +// } + +// namespace lighthouse { +// export class Audit { +// // NOTE: commented as a workaround for our custom artifacts, otherwise +// // typescript complains that RequiredArtifacts is an unrelated type. +// // static get meta(): LH.Audit.Meta; + +// static audit(artifacts: LH.Artifacts, context: LH.Audit.Context) +// : LH.Audit.Product | Promise; + +// static makeTableDetails( +// headings: LH.Audit.Heading[], +// results: { [x: string]: LH.Audit.DetailsItem }[], +// summary?: LH.Audit.DetailsRendererDetailsSummary +// ): LH.Audit.DetailsRendererDetailsJSON; + +// static get DEFAULT_PASS(): string; + +// static computeLogNormalScore( +// controlPoints : {median: number, p10: number}, +// value: number, +// ): number; +// } + +// export class Gatherer { +// pass(passContext: LH.Gatherer.PassContext): PhaseResult; + +// beforePass(passContext: LH.Gatherer.PassContext): PhaseResult; + +// afterPass(passContext: LH.Gatherer.PassContext, +// loadData: LH.Gatherer.LoadData): PhaseResult; +// } + +// // Alias used inside lighthouse/core/gatherers/gatherer.js +// type PhaseResult = void | LH.GathererArtifacts[keyof LH.GathererArtifacts]; +// } +// } + +// declare module 'lighthouse-logger' { +// export function setLevel(level: string): void; +// export function log(title: string, ...args: StringFormat): void; +// export function warn(title: string, ...args: StringFormat): void; +// export function error(title: string, ...args: StringFormat): void; + +// interface StringFormat extends Array { +// 0: string, +// } +// } + +// declare module 'lighthouse/core/computed/network-records.js' { +// export class NetworkRecords { +// static request(devToolsLog: LH.DevtoolsLog, context: LH.Audit.Context): Promise>; +// } +// } + +// declare module 'lighthouse/core/computed/main-resource.js' { +// export class MainResource { +// static request(data: {URL: LH.Artifacts['URL'], devtoolsLog: LH.DevtoolsLog}, context: LH.Audit.Context): Promise; +// } +// } + +// declare module 'lighthouse/core/computed/page-dependency-graph.js' { +// export class PageDependencyGraph { +// static getNetworkInitiators(record: LH.Artifacts.NetworkRequest): Array; +// } +// } + +// declare module 'lighthouse/core/computed/main-thread-tasks.js' { +// export class MainThreadTasks { +// static request(trace: LH.Trace, context: LH.Audit.Context): Promise>; +// } +// } + +// declare module 'lighthouse/core/lib/i18n/i18n.js'; { +// export function createIcuMessageFn(filename: string, fileStrings: Record); +// } diff --git a/lighthouse-plugin-publisher-ads/utils/graph.js b/lighthouse-plugin-publisher-ads/utils/graph.js index 87a77e37..5a837f67 100644 --- a/lighthouse-plugin-publisher-ads/utils/graph.js +++ b/lighthouse-plugin-publisher-ads/utils/graph.js @@ -14,9 +14,6 @@ import {BaseNode} from 'lighthouse/core/lib/dependency-graph/base-node.js'; -// eslint-disable-next-line no-unused-vars -import {CPUNode} from 'lighthouse/core/lib/dependency-graph/cpu-node.js'; - // eslint-disable-next-line no-unused-vars import {NetworkNode} from 'lighthouse/core/lib/dependency-graph/network-node.js'; @@ -159,7 +156,7 @@ function addInitiatedRequests( const initiatedRequests = networkSummary.allRecords .filter((r) => r.resourceType != undefined) .filter((r) => ['Script', 'XHR'].includes(r.resourceType || '') && - r.endTime < parentReq.startTime) + r.networkEndTime < parentReq.networkRequestTime) .filter((r) => r.initiatorRequest == scriptReq || PageDependencyGraph.getNetworkInitiators(r).includes(scriptReq.url)); @@ -368,10 +365,11 @@ function computeSelfTimes(requests) { * set if no ad requests are present. * @param {LH.Trace} trace * @param {LH.DevtoolsLog} devtoolsLog + * @param {LH.Artifacts.URL} URL * @param {LH.Audit.Context} context * @return {Promise} */ -async function computeAdRequestWaterfall(trace, devtoolsLog, context) { +async function computeAdRequestWaterfall(trace, devtoolsLog, URL, context) { const networkRecords = await NetworkRecords.request(devtoolsLog, context); const maybeFirstAdRequest = @@ -386,7 +384,7 @@ async function computeAdRequestWaterfall(trace, devtoolsLog, context) { const tagRequests = networkRecords.filter((r) => isGpt(r.url) || isAdSense(r.url)); const bidRequests = networkRecords.filter((r) => - isBidRequest(r) && r.endTime <= firstAdRequest.startTime); + isBidRequest(r) && r.networkEndTime <= firstAdRequest.networkRequestTime); const summary = buildNetworkSummary(networkRecords, trace.traceEvents); for (const req of [firstAdRequest, ...bidRequests, ...tagRequests]) { linkGraph(summary, req, criticalRequests); @@ -395,13 +393,13 @@ async function computeAdRequestWaterfall(trace, devtoolsLog, context) { const REQUEST_TYPES = new Set([ 'Script', 'XHR', 'Fetch', 'EventStream', 'Document', undefined]); const waterfall = Array.from(criticalRequests) - .filter((r) => r.endTime < firstAdRequest.startTime) + .filter((r) => r.endTime < firstAdRequest.networkRequestTime) .filter((r) => REQUEST_TYPES.has(r.resourceType)) .filter((r) => r.mimeType != 'text/css'); /** @type {Map} */ const timingsByRecord = - await getTimingsByRecord(trace, devtoolsLog, context); + await getTimingsByRecord(trace, devtoolsLog, URL, context); const timedWaterfall = waterfall.map((req) => { const {startTime, endTime} = timingsByRecord.get(req) || req; return { diff --git a/lighthouse-plugin-publisher-ads/utils/network-timing.js b/lighthouse-plugin-publisher-ads/utils/network-timing.js index d45c1768..1aad91b1 100644 --- a/lighthouse-plugin-publisher-ads/utils/network-timing.js +++ b/lighthouse-plugin-publisher-ads/utils/network-timing.js @@ -36,7 +36,7 @@ import {isAdRequest, isBidRequest, isImplTag, isImpressionPing} from './resource function getTagEndTime(networkRecords) { const tagRecord = networkRecords.find( (record) => isImplTag(new URL(record.url))); - return tagRecord ? tagRecord.endTime : -1; + return tagRecord ? tagRecord.networkEndTime : -1; } /** @@ -46,7 +46,7 @@ function getTagEndTime(networkRecords) { */ function getAdStartTime(networkRecords) { const firstAdRecord = networkRecords.find(isAdRequest); - return firstAdRecord ? firstAdRecord.startTime : -1; + return firstAdRecord ? firstAdRecord.networkRequestTime : -1; } /** @@ -56,7 +56,7 @@ function getAdStartTime(networkRecords) { */ function getBidStartTime(networkRecords) { const firstBidRecord = networkRecords.find(isBidRequest); - return firstBidRecord ? firstBidRecord.startTime : -1; + return firstBidRecord ? firstBidRecord.networkRequestTime : -1; } /** @@ -67,7 +67,7 @@ function getBidStartTime(networkRecords) { function getImpressionStartTime(networkRecords) { const firstImpressionRecord = networkRecords.find( (record) => isImpressionPing(record.url)); - return firstImpressionRecord ? firstImpressionRecord.startTime : -1; + return firstImpressionRecord ? firstImpressionRecord.networkRequestTime : -1; } /** @@ -79,7 +79,7 @@ function getImpressionStartTime(networkRecords) { function getPageStartTime(networkRecords, defaultValue = -1) { const firstSuccessRecord = networkRecords.find( (record) => record.statusCode == 200); - return firstSuccessRecord ? firstSuccessRecord.startTime : defaultValue; + return firstSuccessRecord ? firstSuccessRecord.networkRequestTime : defaultValue; } /** @@ -92,39 +92,38 @@ function getPageResponseTime(networkRecords, defaultValue = -1) { const firstSuccessRecord = networkRecords.find( (record) => record.statusCode == 200); return firstSuccessRecord ? - firstSuccessRecord.responseReceivedTime : defaultValue; + firstSuccessRecord.responseHeadersEndTime : defaultValue; } /** * @param {LH.Trace} trace * @param {LH.DevtoolsLog} devtoolsLog + * @param {LH.Artifacts.URL} URL * @param {LH.Audit.Context} context * @return {Promise>} */ -async function getTimingsByRecord(trace, devtoolsLog, context) { +async function getTimingsByRecord(trace, devtoolsLog, URL, context) { /** @type {Map} */ const timingsByRecord = new Map(); const networkRecords = await NetworkRecords.request(devtoolsLog, context); if (context.settings.throttlingMethod == 'simulate') { - /** @type {NetworkNode} */ const documentNode = - // @ts-ignore Property 'request' does not appear on PageDependencyGraph - await PageDependencyGraph.request({trace, devtoolsLog}, context); + await PageDependencyGraph.request({trace, devtoolsLog, URL}, context); const releventGraph = AdLanternMetric.getOptimisticGraph(documentNode); const simulator = await LoadSimulator.request( {devtoolsLog, settings: context.settings}, context); const {nodeTimings} = simulator.simulate(releventGraph, {}); - for (const [{record}, timing] of nodeTimings.entries()) { - if (!record) continue; - timingsByRecord.set(record, timing); + for (const [node, timing] of nodeTimings.entries()) { + if (node.type !== 'network') continue; + timingsByRecord.set(node.record, timing); } } else { const pageStartTime = getPageStartTime(networkRecords); for (const record of networkRecords) { timingsByRecord.set(record, { - startTime: (record.startTime - pageStartTime) * 1000, - endTime: (record.endTime - pageStartTime) * 1000, - duration: (record.endTime - record.startTime) * 1000, + startTime: (record.networkRequestTime - pageStartTime) * 1000, + endTime: (record.networkEndTime - pageStartTime) * 1000, + duration: (record.networkEndTime - record.networkRequestTime) * 1000, }); } } @@ -157,11 +156,12 @@ function getScriptUrl(e) { * time (for example if the script was preloaded). * @param {LH.Trace} trace * @param {LH.DevtoolsLog} devtoolsLog + * @param {LH.Artifacts.URL} URL * @param {LH.Audit.Context} context * @return {Promise>} A map from script URL to evaluation * time. */ -async function getScriptEvaluationTimes(trace, devtoolsLog, context) { +async function getScriptEvaluationTimes(trace, devtoolsLog, URL, context) { const networkRecords = await NetworkRecords.request(devtoolsLog, context); const pageStartTime = getPageStartTime(networkRecords) * 1000; /** @type {Map} */ @@ -181,7 +181,7 @@ async function getScriptEvaluationTimes(trace, devtoolsLog, context) { return rawTimes; } // Offset each timing by network timings to account for simulation. - const timingsByRecord = await getTimingsByRecord(trace, devtoolsLog, context); + const timingsByRecord = await getTimingsByRecord(trace, devtoolsLog, URL, context); /** @type {Map} */ const simulatedTimes = new Map(); for (const [req, timing] of timingsByRecord.entries()) { @@ -192,7 +192,7 @@ async function getScriptEvaluationTimes(trace, devtoolsLog, context) { if (simulatedTimes.has(req.url)) { continue; } - const unsimulatedNetworkTime = req.startTime * 1000 - pageStartTime; + const unsimulatedNetworkTime = req.networkRequestTime * 1000 - pageStartTime; const simulatedNetworkTime = timing.endTime; const cpuFactor = context.settings.throttling.cpuSlowdownMultiplier; diff --git a/lighthouse-plugin-publisher-ads/utils/resource-classification.js b/lighthouse-plugin-publisher-ads/utils/resource-classification.js index bdd1b5f7..40f28c4c 100644 --- a/lighthouse-plugin-publisher-ads/utils/resource-classification.js +++ b/lighthouse-plugin-publisher-ads/utils/resource-classification.js @@ -99,7 +99,7 @@ function isAdSenseAdRequest(request) { } /** - * @param {Artifacts['IFrameElement']} iframe + * @param {LH.Artifacts.IFrameElement} iframe * @return {boolean} */ function isAdSenseIframe(iframe) { @@ -226,7 +226,7 @@ function isAMPAdRequest(request) { } /** - * @param {Artifacts['IFrameElement']} iframe + * @param {LH.Artifacts.IFrameElement} iframe * @return {boolean} */ function isGptIframe(iframe) { @@ -264,7 +264,7 @@ function isAdRequest(request) { /** * Checks if an iframe is an AdSense or GPT iframe. - * @param {Artifacts['IFrameElement']} iframe + * @param {LH.Artifacts.IFrameElement} iframe * @return {boolean} */ function isAdIframe(iframe) { From 2a16b50ee5fdf13494a18ee0ce04e96e1146a282 Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 4 May 2023 12:17:25 -0700 Subject: [PATCH 4/8] fix computed stuff. lints --- .../audits/ad-blocking-tasks.js | 10 ++- .../audits/ad-request-critical-path.js | 1 + .../audits/ad-request-from-page-start.js | 10 ++- .../audits/bid-request-from-page-start.js | 10 ++- .../audits/blocking-load-events.js | 1 + .../audits/bottleneck-requests.js | 4 +- .../audits/first-ad-render.js | 9 +- .../audits/gpt-bids-parallel.js | 4 +- .../audits/idle-network-times.js | 1 + .../audits/script-injected-tags.js | 4 +- .../audits/serial-header-bidding.js | 10 ++- .../audits/total-ad-blocking-time.js | 10 ++- .../computed/ad-lantern-metric.js | 12 ++- .../computed/ad-render-time.js | 28 +----- .../computed/ad-request-time.js | 29 +----- .../computed/bid-request-time.js | 30 +------ .../computed/long-tasks.js | 56 ++++-------- .../test/smoke/smoke-test-dfns.js | 90 +++++++++---------- .../utils/network-timing.js | 10 ++- 19 files changed, 141 insertions(+), 188 deletions(-) diff --git a/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js b/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js index 5dd39af8..6985f26a 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-blocking-tasks.js @@ -78,7 +78,7 @@ class AdBlockingTasks extends Audit { title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - requiredArtifacts: ['traces', 'devtoolsLogs'], + requiredArtifacts: ['traces', 'devtoolsLogs', 'URL', 'GatherContext'], }; } @@ -97,7 +97,13 @@ class AdBlockingTasks extends Audit { context.settings.throttlingMethod == 'simulate' ? 200 : 100; const trace = artifacts.traces[Audit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; - const metricData = {trace, devtoolsLog, settings: context.settings}; + const metricData = { + trace, + devtoolsLog, + settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, + }; let longTasks = []; try { longTasks = await LongTasks.request(metricData, context); diff --git a/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js b/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js index 154d4fad..03e3e605 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-request-critical-path.js @@ -141,6 +141,7 @@ class AdRequestCriticalPath extends Audit { const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; const tableView = + // eslint-disable-next-line max-len (await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context)) .filter((r) => r.startTime > 0 && r.startTime < r.endTime); if (!tableView.length) { diff --git a/lighthouse-plugin-publisher-ads/audits/ad-request-from-page-start.js b/lighthouse-plugin-publisher-ads/audits/ad-request-from-page-start.js index d8d57a83..b9ecf52f 100644 --- a/lighthouse-plugin-publisher-ads/audits/ad-request-from-page-start.js +++ b/lighthouse-plugin-publisher-ads/audits/ad-request-from-page-start.js @@ -47,7 +47,7 @@ class AdRequestFromPageStart extends Audit { description: str_(UIStrings.description), // @ts-ignore scoreDisplayMode: Audit.SCORING_MODES.NUMERIC, - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL', 'GatherContext'], }; } /** @@ -76,7 +76,13 @@ class AdRequestFromPageStart extends Audit { static async audit(artifacts, context) { const trace = artifacts.traces[Audit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; - const metricData = {trace, devtoolsLog, settings: context.settings}; + const metricData = { + trace, + devtoolsLog, + settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, + }; const scoreOptions = context.options[ context.settings.throttlingMethod == 'provided' ? 'provided' : diff --git a/lighthouse-plugin-publisher-ads/audits/bid-request-from-page-start.js b/lighthouse-plugin-publisher-ads/audits/bid-request-from-page-start.js index 8d1964b8..0c8446f6 100644 --- a/lighthouse-plugin-publisher-ads/audits/bid-request-from-page-start.js +++ b/lighthouse-plugin-publisher-ads/audits/bid-request-from-page-start.js @@ -47,7 +47,7 @@ class BidRequestFromPageStart extends Audit { description: str_(UIStrings.description), // @ts-ignore scoreDisplayMode: Audit.SCORING_MODES.NUMERIC, - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL', 'GatherContext'], }; } @@ -77,7 +77,13 @@ class BidRequestFromPageStart extends Audit { static async audit(artifacts, context) { const trace = artifacts.traces[Audit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; - const metricData = {trace, devtoolsLog, settings: context.settings}; + const metricData = { + trace, + devtoolsLog, + settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, + }; const scoreOptions = context.options[ context.settings.throttlingMethod == 'provided' ? 'provided' : diff --git a/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js b/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js index 587376c0..abb0b4ce 100644 --- a/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js +++ b/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js @@ -186,6 +186,7 @@ class BlockingLoadEvents extends Audit { await getTimingsByRecord(trace, devtoolsLog, artifacts.URL, context); const criticalRequests = + // eslint-disable-next-line max-len (await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context)) // Sort by start time so we process the earliest requests first. .sort((a, b) => a.startTime - b.startTime); diff --git a/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js b/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js index 99c0acf7..99bf984e 100644 --- a/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js +++ b/lighthouse-plugin-publisher-ads/audits/bottleneck-requests.js @@ -93,7 +93,8 @@ class BottleneckRequests extends Audit { const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; const waterfall = - (await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context)) + (await computeAdRequestWaterfall( + trace, devtoolsLog, artifacts.URL, context)) .filter((r) => r.startTime > 0); if (!waterfall.length) { return auditNotApplicable.NoAdRelatedReq; @@ -103,6 +104,7 @@ class BottleneckRequests extends Audit { /** @param {SimpleRequest} r @return {boolean} */ const isBottleneck = (r) => !isAdScript(toURL(r.url)) && + // eslint-disable-next-line max-len (r.selfTime > CRITICAL_SELF_TIME_MS || r.duration > CRITICAL_DURATION_MS); // selfTime is more costly than duration so weigh it more than duration. /** @param {SimpleRequest} r @return {number} */ diff --git a/lighthouse-plugin-publisher-ads/audits/first-ad-render.js b/lighthouse-plugin-publisher-ads/audits/first-ad-render.js index 0fb231e4..6a711715 100644 --- a/lighthouse-plugin-publisher-ads/audits/first-ad-render.js +++ b/lighthouse-plugin-publisher-ads/audits/first-ad-render.js @@ -38,16 +38,13 @@ class FirstAdRender extends Audit { * @return {LH.Audit.Meta} */ static get meta() { - // @ts-ignore return { id: 'first-ad-render', title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - // @ts-ignore scoreDisplayMode: Audit.SCORING_MODES.NUMERIC, - // @ts-ignore - requiredArtifacts: ['devtoolsLogs', 'traces'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL', 'GatherContext'], }; } @@ -79,9 +76,11 @@ class FirstAdRender extends Audit { const trace = artifacts.traces[Audit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; const metricData = { - devtoolsLog, trace, + devtoolsLog, settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, }; const {timing} = await ComputedAdRenderTime.request(metricData, context); diff --git a/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js b/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js index e99efae4..bb7c3c95 100644 --- a/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js +++ b/lighthouse-plugin-publisher-ads/audits/gpt-bids-parallel.js @@ -96,7 +96,9 @@ class GptBidsInParallel extends Audit { /** @type {Set} */ const seen = new Set(); for (const bid of bids) { if (getCriticalGraph(network, trace.traceEvents, bid).has(pubadsImpl)) { - const {startTime, endTime} = timingsByRecord.get(bid) || {startTime: bid.networkRequestTime, endTime: bid.networkEndTime}; + const {startTime, endTime} = + timingsByRecord.get(bid) || + {startTime: bid.networkRequestTime, endTime: bid.networkEndTime}; const bidder = assert(getHeaderBidder(bid.url)); if (seen.has(bidder)) { // Don't include multiple requests from the same bidder in the results diff --git a/lighthouse-plugin-publisher-ads/audits/idle-network-times.js b/lighthouse-plugin-publisher-ads/audits/idle-network-times.js index 1dbc17b0..a89fdf13 100644 --- a/lighthouse-plugin-publisher-ads/audits/idle-network-times.js +++ b/lighthouse-plugin-publisher-ads/audits/idle-network-times.js @@ -279,6 +279,7 @@ class IdleNetworkTimes extends Audit { const pageStartTime = getPageStartTime(networkRecords); const blockingRequests = + // eslint-disable-next-line max-len await computeAdRequestWaterfall(trace, devtoolsLog, artifacts.URL, context); if (!blockingRequests.length) { return auditNotApplicable.NoAdRelatedReq; diff --git a/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js b/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js index 2cdfa84a..41191ac5 100644 --- a/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js +++ b/lighthouse-plugin-publisher-ads/audits/script-injected-tags.js @@ -152,8 +152,8 @@ class StaticAdTags extends Audit { const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS]; const trace = artifacts.traces[Audit.DEFAULT_PASS]; - const scriptTimes = - await getScriptEvaluationTimes(trace, devtoolsLog, artifacts.URL, context); + const scriptTimes = await getScriptEvaluationTimes( + trace, devtoolsLog, artifacts.URL, context); for (const tag of tagReqs) { if (seenUrls.has(tag.url)) continue; seenUrls.add(tag.url); diff --git a/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js b/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js index 97e71462..1d961c88 100644 --- a/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js +++ b/lighthouse-plugin-publisher-ads/audits/serial-header-bidding.js @@ -153,7 +153,7 @@ class SerialHeaderBidding extends Audit { title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - requiredArtifacts: ['devtoolsLogs', 'traces', 'URL'], + requiredArtifacts: ['devtoolsLogs', 'traces', 'URL', 'GatherContext'], }; } @@ -192,7 +192,13 @@ class SerialHeaderBidding extends Audit { return auditNotApplicable.NoBids; } - const metricData = {trace, devtoolsLog, settings: context.settings}; + const metricData = { + trace, + devtoolsLog, + settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, + }; const {timing: adRequestTime} = await ComputedAdRequestTime.request(metricData, context); diff --git a/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js b/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js index 32325c95..e13e5e1f 100644 --- a/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js +++ b/lighthouse-plugin-publisher-ads/audits/total-ad-blocking-time.js @@ -66,7 +66,7 @@ class TotalAdBlockingTime extends Audit { title: str_(UIStrings.title), failureTitle: str_(UIStrings.failureTitle), description: str_(UIStrings.description), - requiredArtifacts: ['traces', 'devtoolsLogs'], + requiredArtifacts: ['traces', 'devtoolsLogs', 'URL', 'GatherContext'], }; } @@ -102,7 +102,13 @@ class TotalAdBlockingTime extends Audit { if (!networkRecords.find((r) => isAdRelated(r.url))) { return auditNotApplicable.NoAdRelatedReq; } - const metricData = {trace, devtoolsLog, settings: context.settings}; + const metricData = { + trace, + devtoolsLog, + settings: context.settings, + URL: artifacts.URL, + gatherContext: artifacts.GatherContext, + }; let longTasks = []; try { longTasks = await LongTasks.request(metricData, context); diff --git a/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js b/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js index 44711694..544b4fb0 100644 --- a/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js +++ b/lighthouse-plugin-publisher-ads/computed/ad-lantern-metric.js @@ -12,17 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. +// eslint-disable-next-line max-len /** @typedef {import('lighthouse/core/lib/dependency-graph/base-node.js').Node} Node */ import {BaseNode} from 'lighthouse/core/lib/dependency-graph/base-node.js'; - // eslint-disable-next-line no-unused-vars import {CPUNode} from 'lighthouse/core/lib/dependency-graph/cpu-node.js'; - -// @ts-ignore Remove request() below after importing the type. +// eslint-disable-next-line max-len import {LanternMetric} from 'lighthouse/core/computed/metrics/lantern-metric.js'; - -// eslint-disable-next-line no-unused-vars +// eslint-disable-next-line max-len, no-unused-vars import {NetworkNode} from 'lighthouse/core/lib/dependency-graph/network-node.js'; import { @@ -226,8 +224,8 @@ class AdLanternMetric extends LanternMetric { static findNetworkTiming(nodeTimings, isTargetRequest) { return this.findTiming( nodeTimings, - (node) => - node.type === BaseNode.TYPES.NETWORK && isTargetRequest(node.record)); + (node) => node.type === BaseNode.TYPES.NETWORK && + isTargetRequest(node.record)); } } diff --git a/lighthouse-plugin-publisher-ads/computed/ad-render-time.js b/lighthouse-plugin-publisher-ads/computed/ad-render-time.js index 4088e7c0..1a981d9b 100644 --- a/lighthouse-plugin-publisher-ads/computed/ad-render-time.js +++ b/lighthouse-plugin-publisher-ads/computed/ad-render-time.js @@ -14,10 +14,7 @@ import AdLanternMetric from './ad-lantern-metric.js'; -// @ts-ignore import ComputedMetric from 'lighthouse/core/computed/metrics/metric.js'; - -// @ts-ignore import {makeComputedArtifact} from 'lighthouse/core/computed/computed-artifact.js'; import {getPageStartTime, getImpressionStartTime} from '../utils/network-timing.js'; @@ -45,9 +42,7 @@ class LanternAdRenderTime extends AdLanternMetric { } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -LanternAdRenderTime = makeComputedArtifact(LanternAdRenderTime); +const ComputedLanternAdRenderTime = makeComputedArtifact(LanternAdRenderTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); /** Computes the first ad render time metric. */ class AdRenderTime extends ComputedMetric { @@ -57,8 +52,7 @@ class AdRenderTime extends ComputedMetric { * @return {Promise} */ static async computeSimulatedMetric(data, context) { - // @ts-ignore request does not exist on LanternAdRenderTime - return LanternAdRenderTime.request(data, context); + return ComputedLanternAdRenderTime.request(data, context); } /** @@ -73,24 +67,10 @@ class AdRenderTime extends ComputedMetric { const firstPaintMs = (impressionStartTime - pageStartTime) * 1000; return Promise.resolve({timing: firstPaintMs}); } - - /** - * @param {unknown} artifacts - * @param {LH.Audit.Context} context - * @return {Promise} - */ - static async request(artifacts, context) { - // Implement request() to make the compiler happy. It will be implemented - // below with decoration. Long term we should find a good way to have the - // compiler infer this. - throw Error('Not implemented -- class not decorated'); - } } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -AdRenderTime = makeComputedArtifact(AdRenderTime); +const ComputedAdRenderTime = makeComputedArtifact(AdRenderTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); -export default AdRenderTime; +export default ComputedAdRenderTime; diff --git a/lighthouse-plugin-publisher-ads/computed/ad-request-time.js b/lighthouse-plugin-publisher-ads/computed/ad-request-time.js index bd695848..98154134 100644 --- a/lighthouse-plugin-publisher-ads/computed/ad-request-time.js +++ b/lighthouse-plugin-publisher-ads/computed/ad-request-time.js @@ -14,16 +14,12 @@ import AdLanternMetric from './ad-lantern-metric.js'; -// @ts-ignore import ComputedMetric from 'lighthouse/core/computed/metrics/metric.js'; - -// @ts-ignore import {makeComputedArtifact} from 'lighthouse/core/computed/computed-artifact.js'; import {getAdStartTime, getPageStartTime} from '../utils/network-timing.js'; import {isAdRequest} from '../utils/resource-classification.js'; -// @ts-ignore // eslint-disable-next-line max-len /** @typedef {import('lighthouse/core/lib/dependency-graph/base-node.js').Node} Node */ @@ -44,9 +40,7 @@ class LanternAdRequestTime extends AdLanternMetric { } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -LanternAdRequestTime = makeComputedArtifact(LanternAdRequestTime); +const ComputedLanternAdRequestTime = makeComputedArtifact(LanternAdRequestTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); /** Computes time to the first ad request. */ class AdRequestTime extends ComputedMetric { @@ -56,8 +50,7 @@ class AdRequestTime extends ComputedMetric { * @return {Promise} */ static async computeSimulatedMetric(data, context) { - // @ts-ignore request does not exist on LanternAdRequestTime - return LanternAdRequestTime.request(data, context); + return ComputedLanternAdRequestTime.request(data, context); } /** @@ -71,23 +64,9 @@ class AdRequestTime extends ComputedMetric { const adRequestTimeMs = (adStartTime - pageStartTime) * 1000; return Promise.resolve({timing: adRequestTimeMs}); } - - /** - * @param {unknown} artifacts - * @param {LH.Audit.Context} context - * @return {Promise} - */ - static async request(artifacts, context) { - // Implement request() to make the compiler happy. It will be implemented - // below with decoration. Long term we should find a good way to have the - // compiler infer this. - throw Error('Not implemented -- class not decorated'); - } } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -AdRequestTime = makeComputedArtifact(AdRequestTime); +const ComputedAdRequestTime = makeComputedArtifact(AdRequestTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); -export default AdRequestTime; +export default ComputedAdRequestTime; diff --git a/lighthouse-plugin-publisher-ads/computed/bid-request-time.js b/lighthouse-plugin-publisher-ads/computed/bid-request-time.js index af24651b..224c36ff 100644 --- a/lighthouse-plugin-publisher-ads/computed/bid-request-time.js +++ b/lighthouse-plugin-publisher-ads/computed/bid-request-time.js @@ -13,17 +13,12 @@ // limitations under the License. import AdLanternMetric from './ad-lantern-metric.js'; - -// @ts-ignore import ComputedMetric from 'lighthouse/core/computed/metrics/metric.js'; - -// @ts-ignore import {makeComputedArtifact} from 'lighthouse/core/computed/computed-artifact.js'; import {getAdStartTime, getBidStartTime, getPageStartTime} from '../utils/network-timing.js'; import {isAdRequest, isBidRequest} from '../utils/resource-classification.js'; -// @ts-ignore // eslint-disable-next-line max-len /** @typedef {import('lighthouse/core/lib/dependency-graph/base-node.js').Node} Node */ @@ -49,9 +44,7 @@ class LanternBidRequestTime extends AdLanternMetric { } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -LanternBidRequestTime = makeComputedArtifact(LanternBidRequestTime); +const ComputedLanternBidRequestTime = makeComputedArtifact(LanternBidRequestTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); /** Computes time to the first ad request. */ class BidRequestTime extends ComputedMetric { @@ -61,8 +54,7 @@ class BidRequestTime extends ComputedMetric { * @return {Promise} */ static async computeSimulatedMetric(data, context) { - // @ts-ignore request does not exist on LanternBidRequestTime - return LanternBidRequestTime.request(data, context); + return ComputedLanternBidRequestTime.request(data, context); } /** @@ -80,23 +72,9 @@ class BidRequestTime extends ComputedMetric { const bidRequestTimeMs = (bidStartTime - pageStartTime) * 1000; return {timing: bidRequestTimeMs}; } - - /** - * @param {unknown} artifacts - * @param {LH.Audit.Context} context - * @return {Promise} - */ - static async request(artifacts, context) { - // Implement request() to make the compiler happy. It will be implemented - // below with decoration. Long term we should find a good way to have the - // compiler infer this. - throw Error('Not implemented -- class not decorated'); - } } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -BidRequestTime = makeComputedArtifact(BidRequestTime); +const ComputedBidRequestTime = makeComputedArtifact(BidRequestTime, ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']); -export default BidRequestTime; +export default ComputedBidRequestTime; diff --git a/lighthouse-plugin-publisher-ads/computed/long-tasks.js b/lighthouse-plugin-publisher-ads/computed/long-tasks.js index dee9f1b8..7d9316d1 100644 --- a/lighthouse-plugin-publisher-ads/computed/long-tasks.js +++ b/lighthouse-plugin-publisher-ads/computed/long-tasks.js @@ -15,29 +15,15 @@ import AdLanternMetric from '../computed/ad-lantern-metric.js'; import {BaseNode} from 'lighthouse/core/lib/dependency-graph/base-node.js'; - -// @ts-ignore import ComputedMetric from 'lighthouse/core/computed/metrics/metric.js'; - -// eslint-disable-next-line no-unused-vars -import {CPUNode} from 'lighthouse/core/lib/dependency-graph/cpu-node.js'; - import {getAttributableUrl} from '../utils/tasks.js'; - -// @ts-ignore import {LoadSimulator} from 'lighthouse/core/computed/load-simulator.js'; - import {MainThreadTasks} from 'lighthouse/core/computed/main-thread-tasks.js'; - -// @ts-ignore import {makeComputedArtifact} from 'lighthouse/core/computed/computed-artifact.js'; - -// eslint-disable-next-line no-unused-vars -import {NetworkNode} from 'lighthouse/core/lib/dependency-graph/network-node.js'; - import {NetworkRecords} from 'lighthouse/core/computed/network-records.js'; import {PageDependencyGraph} from 'lighthouse/core/computed/page-dependency-graph.js'; +// eslint-disable-next-line max-len /** @typedef {import('lighthouse/core/lib/dependency-graph/base-node.js').Node} Node */ const PROVIDED_LONG_TASK_THRESHOLD_MS = 50; @@ -66,29 +52,33 @@ function isLong(task, knownScripts) { } /** Finds long tasks, with support for simulation. */ +// eslint-disable-next-line max-len // @ts-expect-error TODO why is this a ComputedMetric? Should it just be a Computed artifact? It returns task nodes, no Metric/LanternMetric. +// eslint-disable-next-line require-jsdoc class LongTasks extends ComputedMetric { /** * @param {LH.Trace} trace * @param {LH.DevtoolsLog} devtoolsLog + * @param {LH.Artifacts.URL} URL * @param {LH.Audit.Context} context * @return {Promise} networkRecords */ - static async getSimulationGraph(trace, devtoolsLog, context) { + static async getSimulationGraph(trace, devtoolsLog, URL, context) { const documentNode = - // @ts-ignore Property 'request' does not appear on PageDependencyGraph - await PageDependencyGraph.request({trace, devtoolsLog}, context); + await PageDependencyGraph.request({trace, devtoolsLog, URL}, context); return AdLanternMetric.getOptimisticGraph(documentNode); } /** * @param {LH.Trace} trace * @param {LH.DevtoolsLog} devtoolsLog + * @param {LH.Artifacts.URL} URL * @param {LH.Audit.Context} context * @return {Promise} networkRecords */ - static async computeSimulatedResult(trace, devtoolsLog, context) { - const graph = await this.getSimulationGraph(trace, devtoolsLog, context); + static async computeSimulatedResult(trace, devtoolsLog, URL, context) { + const graph = + await this.getSimulationGraph(trace, devtoolsLog, URL, context); const simulator = await LoadSimulator.request( {devtoolsLog, settings: context.settings}, context); const {nodeTimings} = simulator.simulate(graph, {}); @@ -136,32 +126,20 @@ class LongTasks extends ComputedMetric { } /** - * @param {{devtoolsLog: LH.DevtoolsLog, trace: LH.Trace}} data + * @param {{devtoolsLog: LH.DevtoolsLog, + * trace: LH.Trace, URL: LH.Artifacts.URL}} data * @param {LH.Audit.Context} context * @return {Promise} */ - static async compute_({trace, devtoolsLog}, context) { + static async compute_({trace, devtoolsLog, URL}, context) { return context.settings.throttlingMethod == 'simulate' ? - this.computeSimulatedResult(trace, devtoolsLog, context) : + this.computeSimulatedResult(trace, devtoolsLog, URL, context) : this.computeObservedResult(trace, devtoolsLog, context); } - - /** - * @param {unknown} artifacts - * @param {LH.Audit.Context} context - * @return {Promise} - */ - static async request(artifacts, context) { - // Implement request() to make the compiler happy. It will be implemented - // below with decoration. Long term we should find a good way to have the - // compiler infer this. - throw Error('Not implemented -- class not decorated'); - } } // Decorate the class. -// @ts-ignore Allow reassignment for decoration. -// eslint-disable-next-line no-class-assign -LongTasks = makeComputedArtifact(LongTasks); +const ComputedLongTasks = makeComputedArtifact(LongTasks, + ['devtoolsLog', 'trace', 'URL']); -export default LongTasks; +export default ComputedLongTasks; diff --git a/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js b/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js index 39f4b412..e9c98894 100644 --- a/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js +++ b/lighthouse-plugin-publisher-ads/test/smoke/smoke-test-dfns.js @@ -27,56 +27,56 @@ import config from './config.js'; /** @type {Array} */ const smokeTests = [ // TODO(jburger): Add back `gpt-error-overall` case once fix reaches prod. - // { - // id: 'deprecated-api-usage', - // expectations: deprecatedApiUsage, - // config, - // }, - // { - // id: 'duplicate-tags', - // expectations: duplicateTags, - // config, - // }, - // { - // id: 'lazy-load', - // expectations: lazyLoad, - // config, - // }, - // { - // id: 'long-tasks', - // expectations: longTasks, - // config, - // }, - // { - // id: 'render-blocking-tasks', - // expectations: renderBlockingTags, - // config, - // }, - // { - // id: 'script-injected', - // expectations: scriptInjected, - // config, - // }, + { + id: 'deprecated-api-usage', + expectations: deprecatedApiUsage, + config, + }, + { + id: 'duplicate-tags', + expectations: duplicateTags, + config, + }, + { + id: 'lazy-load', + expectations: lazyLoad, + config, + }, + { + id: 'long-tasks', + expectations: longTasks, + config, + }, + { + id: 'render-blocking-tasks', + expectations: renderBlockingTags, + config, + }, + { + id: 'script-injected', + expectations: scriptInjected, + config, + }, { id: 'top-of-viewport', expectations: topOfViewport, config, }, - // { - // id: 'not-applicable', - // expectations: notApplicable, - // config, - // }, - // { - // id: 'limited-ads-dynamic-loading', - // expectations: limitedAdsDynamicLoading, - // config, - // }, - // { - // id: 'cumulative-ad-shift', - // expectations: cumulativeAdShift, - // config, - // }, + { + id: 'not-applicable', + expectations: notApplicable, + config, + }, + { + id: 'limited-ads-dynamic-loading', + expectations: limitedAdsDynamicLoading, + config, + }, + { + id: 'cumulative-ad-shift', + expectations: cumulativeAdShift, + config, + }, ]; export default smokeTests; diff --git a/lighthouse-plugin-publisher-ads/utils/network-timing.js b/lighthouse-plugin-publisher-ads/utils/network-timing.js index 1aad91b1..4d8c54e1 100644 --- a/lighthouse-plugin-publisher-ads/utils/network-timing.js +++ b/lighthouse-plugin-publisher-ads/utils/network-timing.js @@ -79,7 +79,9 @@ function getImpressionStartTime(networkRecords) { function getPageStartTime(networkRecords, defaultValue = -1) { const firstSuccessRecord = networkRecords.find( (record) => record.statusCode == 200); - return firstSuccessRecord ? firstSuccessRecord.networkRequestTime : defaultValue; + return firstSuccessRecord ? + firstSuccessRecord.networkRequestTime : + defaultValue; } /** @@ -181,7 +183,8 @@ async function getScriptEvaluationTimes(trace, devtoolsLog, URL, context) { return rawTimes; } // Offset each timing by network timings to account for simulation. - const timingsByRecord = await getTimingsByRecord(trace, devtoolsLog, URL, context); + const timingsByRecord = + await getTimingsByRecord(trace, devtoolsLog, URL, context); /** @type {Map} */ const simulatedTimes = new Map(); for (const [req, timing] of timingsByRecord.entries()) { @@ -192,7 +195,8 @@ async function getScriptEvaluationTimes(trace, devtoolsLog, URL, context) { if (simulatedTimes.has(req.url)) { continue; } - const unsimulatedNetworkTime = req.networkRequestTime * 1000 - pageStartTime; + const unsimulatedNetworkTime = + req.networkRequestTime * 1000 - pageStartTime; const simulatedNetworkTime = timing.endTime; const cpuFactor = context.settings.throttling.cpuSlowdownMultiplier; From 8f8637828b7e9329b3e5cb458ff9d26ecd32650b Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 4 May 2023 12:24:11 -0700 Subject: [PATCH 5/8] rm old types --- .../typings/artifacts.d.ts | 17 --- .../typings/lh-externs.d.ts | 6 - .../typings/lighthouse.d.ts | 109 ------------------ 3 files changed, 132 deletions(-) delete mode 100644 lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts diff --git a/lighthouse-plugin-publisher-ads/typings/artifacts.d.ts b/lighthouse-plugin-publisher-ads/typings/artifacts.d.ts index e2ddaac7..199f34ae 100644 --- a/lighthouse-plugin-publisher-ads/typings/artifacts.d.ts +++ b/lighthouse-plugin-publisher-ads/typings/artifacts.d.ts @@ -16,23 +16,6 @@ import './lh-externs'; declare global { export interface Artifacts extends LH.Artifacts { - IFrameElement: { - /** The `id` attribute of the iframe. */ - id: string, - /** The `src` attribute of the iframe. */ - src: string, - /** The iframe's ClientRect. @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect */ - clientRect: { - top: number; - bottom: number; - left: number; - right: number; - width: number; - height: number; - }, - /** If the iframe or an ancestor of the iframe is fixed in position. */ - isPositionFixed: boolean, - }; StaticAdTags: Array; } } diff --git a/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts b/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts index 1a1aa32c..19a41a39 100644 --- a/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts +++ b/lighthouse-plugin-publisher-ads/typings/lh-externs.d.ts @@ -12,12 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -// declare global { -// module LH { -// export * from 'lighthouse/types/lh.js'; -// } -// } - export * from 'lighthouse/types/lh.js'; export as namespace LH; diff --git a/lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts b/lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts deleted file mode 100644 index 338ea557..00000000 --- a/lighthouse-plugin-publisher-ads/typings/lighthouse.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2018 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * Type declarations for lighthouse module. - * - * NOTE: Only includes the types in use, feel free to add as necessary. - * - * TODO: Remove file once https://github.com/GoogleChrome/lighthouse/issues/1773 is closed - */ -// declare module 'lighthouse' { -// export = lighthouse; - -// function lighthouse(url: string, flags: CoreFlags, config: LH.Config) -// : Promise; - -// export interface CoreFlags extends SharedFlagsSettings { -// logLevel?: 'silent' | 'error' | 'info' | 'verbose'; -// hostname?: string; -// output?: any; -// port: number; -// } - -// namespace lighthouse { -// export class Audit { -// // NOTE: commented as a workaround for our custom artifacts, otherwise -// // typescript complains that RequiredArtifacts is an unrelated type. -// // static get meta(): LH.Audit.Meta; - -// static audit(artifacts: LH.Artifacts, context: LH.Audit.Context) -// : LH.Audit.Product | Promise; - -// static makeTableDetails( -// headings: LH.Audit.Heading[], -// results: { [x: string]: LH.Audit.DetailsItem }[], -// summary?: LH.Audit.DetailsRendererDetailsSummary -// ): LH.Audit.DetailsRendererDetailsJSON; - -// static get DEFAULT_PASS(): string; - -// static computeLogNormalScore( -// controlPoints : {median: number, p10: number}, -// value: number, -// ): number; -// } - -// export class Gatherer { -// pass(passContext: LH.Gatherer.PassContext): PhaseResult; - -// beforePass(passContext: LH.Gatherer.PassContext): PhaseResult; - -// afterPass(passContext: LH.Gatherer.PassContext, -// loadData: LH.Gatherer.LoadData): PhaseResult; -// } - -// // Alias used inside lighthouse/core/gatherers/gatherer.js -// type PhaseResult = void | LH.GathererArtifacts[keyof LH.GathererArtifacts]; -// } -// } - -// declare module 'lighthouse-logger' { -// export function setLevel(level: string): void; -// export function log(title: string, ...args: StringFormat): void; -// export function warn(title: string, ...args: StringFormat): void; -// export function error(title: string, ...args: StringFormat): void; - -// interface StringFormat extends Array { -// 0: string, -// } -// } - -// declare module 'lighthouse/core/computed/network-records.js' { -// export class NetworkRecords { -// static request(devToolsLog: LH.DevtoolsLog, context: LH.Audit.Context): Promise>; -// } -// } - -// declare module 'lighthouse/core/computed/main-resource.js' { -// export class MainResource { -// static request(data: {URL: LH.Artifacts['URL'], devtoolsLog: LH.DevtoolsLog}, context: LH.Audit.Context): Promise; -// } -// } - -// declare module 'lighthouse/core/computed/page-dependency-graph.js' { -// export class PageDependencyGraph { -// static getNetworkInitiators(record: LH.Artifacts.NetworkRequest): Array; -// } -// } - -// declare module 'lighthouse/core/computed/main-thread-tasks.js' { -// export class MainThreadTasks { -// static request(trace: LH.Trace, context: LH.Audit.Context): Promise>; -// } -// } - -// declare module 'lighthouse/core/lib/i18n/i18n.js'; { -// export function createIcuMessageFn(filename: string, fileStrings: Record); -// } From d0bda913696268bf5aa7c9902c6dbb3e2d74f561 Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 4 May 2023 12:48:41 -0700 Subject: [PATCH 6/8] processed trace --- .../audits/blocking-load-events.js | 2 +- lighthouse-plugin-publisher-ads/audits/idle-network-times.js | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js b/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js index abb0b4ce..13c1573e 100644 --- a/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js +++ b/lighthouse-plugin-publisher-ads/audits/blocking-load-events.js @@ -179,7 +179,7 @@ class BlockingLoadEvents extends Audit { const networkRecords = await NetworkRecords.request(devtoolsLog, context); const processedTrace = await ProcessedTrace.request(trace, context); const {timings} = await ProcessedNavigation - .request(processedTrace, context); + .request(trace, context); const {processEvents} = processedTrace; /** @type {Map} */ const timingsByRecord = diff --git a/lighthouse-plugin-publisher-ads/audits/idle-network-times.js b/lighthouse-plugin-publisher-ads/audits/idle-network-times.js index a89fdf13..324d3067 100644 --- a/lighthouse-plugin-publisher-ads/audits/idle-network-times.js +++ b/lighthouse-plugin-publisher-ads/audits/idle-network-times.js @@ -16,7 +16,6 @@ import * as i18n from 'lighthouse/core/lib/i18n/i18n.js'; import {MainThreadTasks} from 'lighthouse/core/computed/main-thread-tasks.js'; import {NetworkRecords} from 'lighthouse/core/computed/network-records.js'; -import {ProcessedTrace} from 'lighthouse/core/computed/processed-trace.js'; import {ProcessedNavigation} from 'lighthouse/core/computed/processed-navigation.js'; import {auditNotApplicable} from '../messages/common-strings.js'; @@ -270,9 +269,8 @@ class IdleNetworkTimes extends Audit { } catch (e) { // Ignore tracing errors. } - const processedTrace = await ProcessedTrace.request(trace, context); const {timings} = await ProcessedNavigation - .request(processedTrace, context); + .request(trace, context); const timerEvents = trace.traceEvents.filter((t) => t.name.startsWith('Timer')); From ab5d6d49066cee9fa23a9ba25a86b1d376648a47 Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 4 May 2023 12:50:22 -0700 Subject: [PATCH 7/8] bump lhci --- .github/workflows/ci.yml | 2 +- package.json | 2 +- yarn.lock | 1332 ++------------------------------------ 3 files changed, 67 insertions(+), 1269 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index afd2940a..29622c14 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -71,7 +71,7 @@ jobs: - name: npm install run: npm install - name: Install Lighthouse CI - run: npm install -g @lhci/cli@0.6.x + run: npm install -g @lhci/cli@0.12.x - name: Run Lighthouse CI run: lhci autorun env: diff --git a/package.json b/package.json index 13c45285..744cebe8 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "yargs": "16.1.1" }, "devDependencies": { - "@lhci/cli": "0.7.x", + "@lhci/cli": "0.12.x", "@types/lodash": "^4.14.178", "@types/yargs": "^15.0.11", "@typescript-eslint/parser": "^5.31.0", diff --git a/yarn.lock b/yarn.lock index e0520b29..4c811f02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,36 +23,36 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@lhci/cli@0.7.x": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@lhci/cli/-/cli-0.7.1.tgz#d4a9cd5995ea71fd35679afa3876338cdf1718ce" - integrity sha512-hTecqKDOU5d7As+GxCrhmOI+m40ru+U7p5dIa8mNvEJabM0Klcb3NgbXzgbyiU7fxSCJR0Zq9xAAWJjVeXH+3g== +"@lhci/cli@0.12.x": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@lhci/cli/-/cli-0.12.0.tgz#b97bba6c40edd36ab763765d6e678bd956af399d" + integrity sha512-ta0bRmY4tTZ2SArCtElZcTv8mNsPFE7ssDLytwJOAwTUzB8x1mN9qKQrQ/ua3GPBEoQrGCpG9N8DVH5OmvIkRw== dependencies: - "@lhci/utils" "0.7.1" + "@lhci/utils" "0.12.0" chrome-launcher "^0.13.4" compression "^1.7.4" debug "^4.3.1" express "^4.17.1" + https-proxy-agent "^5.0.0" inquirer "^6.3.1" isomorphic-fetch "^3.0.0" - lighthouse "7.3.0" + lighthouse "10.1.0" lighthouse-logger "1.2.0" open "^7.1.0" tmp "^0.1.0" - update-notifier "^3.0.1" uuid "^8.3.1" yargs "^15.4.1" yargs-parser "^13.1.2" -"@lhci/utils@0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@lhci/utils/-/utils-0.7.1.tgz#9d5065edcae4e8275b3bbd8538078306e38fd20f" - integrity sha512-F/NbkqESj0Bsba/CSqrfrfcblYcmPH4DFJQA5sOIHdoK+cpSI2lGoYo4WbcQe44B/kZQ+CrOA5X9Jhyhos/u7g== +"@lhci/utils@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@lhci/utils/-/utils-0.12.0.tgz#25070fd0d540d5e0d97793d01cf8300d737d921d" + integrity sha512-hvFZACP1Psj6u5PWvJUBOlqsVKLTkmH0vc2VSvN8kRbzxWa7mF7TBGyR5aNoamJQYpSNKl1+veX3gTSzmEMWGQ== dependencies: debug "^4.3.1" isomorphic-fetch "^3.0.0" js-yaml "^3.13.1" - lighthouse "7.3.0" + lighthouse "10.1.0" tree-kill "^1.2.1" "@nodelib/fs.scandir@2.1.5": @@ -146,11 +146,6 @@ "@sentry/types" "6.19.7" tslib "^1.9.3" -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - "@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2": version "1.4.0" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78" @@ -187,13 +182,6 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - "@tusbar/cache-control@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@tusbar/cache-control/-/cache-control-0.3.1.tgz#2ee673c6a7166041b5d419f7e15cd9f16e21c8e1" @@ -294,11 +282,6 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== -JSV@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= - accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -324,7 +307,7 @@ agent-base@6: dependencies: debug "4" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: +ajv@^6.10.0, ajv@^6.10.2: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -334,13 +317,6 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - ansi-colors@4.1.1, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -437,18 +413,6 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -459,31 +423,6 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axe-core@4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.3.tgz#64a4c85509e0991f5168340edc4bedd1ceea6966" - integrity sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ== - axe-core@4.6.3: version "4.6.3" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" @@ -499,13 +438,6 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -536,34 +468,6 @@ body-parser@1.19.0: raw-body "2.4.0" type-is "~1.6.17" -boxen@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" - integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^2.4.2" - cli-boxes "^2.2.0" - string-width "^3.0.0" - term-size "^1.2.0" - type-fest "^0.3.0" - widest-line "^2.0.0" - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -607,27 +511,6 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -652,7 +535,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -662,16 +545,6 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -canonicalize@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.5.tgz#b43b390ce981d397908bb847c3a8d9614323a47b" - integrity sha512-mAjKJPIyP0xqqv6IAkvso07StOmz6cmGtNDg3pXCSzXVZOqka7StIkAhJl/zHOi4M2CgpYfD6aeRWbnrmtvBEA== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - chai@^4.1.2: version "4.2.0" resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" @@ -695,7 +568,7 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -704,14 +577,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -733,11 +598,6 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -797,11 +657,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -853,13 +708,6 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -884,13 +732,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - commander@^2.3.0: version "2.20.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" @@ -921,18 +762,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -configstore@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" - integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - configstore@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" @@ -962,11 +791,6 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - cookie@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" @@ -977,11 +801,6 @@ cookie@^0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - cosmiconfig@^5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -999,15 +818,6 @@ cross-fetch@3.1.5: dependencies: node-fetch "2.6.7" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1019,16 +829,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -1039,30 +839,6 @@ csp_evaluator@1.1.1: resolved "https://registry.yarnpkg.com/csp_evaluator/-/csp_evaluator-1.1.1.tgz#12b7bb0c6ae9053d30c86e8ddc52a1e920e6c0f7" integrity sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw== -csp_evaluator@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/csp_evaluator/-/csp_evaluator-1.0.1.tgz#cef3b755b26cfff25701a2fdaeab27ddceb31b7c" - integrity sha512-9L57/vkuwH1tJv9Sw9t13xKGKyRR7OKn/pizcLCHK/83WH+sqRav0JCFBmBLmpurQAcz5usU3efS1rabOPV/qA== - -cssom@0.3.x: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.1.tgz#3aceb2759eaf514ac1a21628d723d6043a819495" - integrity sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A== - dependencies: - cssom "0.3.x" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - debug@2.6.9, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1094,13 +870,6 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" @@ -1108,38 +877,16 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -1150,11 +897,6 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -details-element-polyfill@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz#e0622adef7902662faf27b4ab8acba5dc4e3a6e6" - integrity sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g== - devtools-protocol@0.0.1107588: version "0.0.1107588" resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz#f8cac707840b97cc30b029359341bcbbb0ad8ffa" @@ -1194,13 +936,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dot-prop@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" - integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== - dependencies: - is-obj "^1.0.0" - dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -1208,19 +943,6 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1262,47 +984,11 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1444,19 +1130,6 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.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" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -1506,11 +1179,6 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -1531,16 +1199,6 @@ extract-zip@2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -1676,20 +1334,6 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -1715,11 +1359,6 @@ fsevents@~2.3.1: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -1735,26 +1374,12 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - get-stdin@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -1768,13 +1393,6 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -1794,20 +1412,6 @@ glob@7.1.6, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - globals@^12.1.0: version "12.4.0" resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" @@ -1827,24 +1431,7 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: +graceful-fs@^4.1.2: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -1854,19 +1441,6 @@ growl@1.10.5: resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" @@ -1874,11 +1448,6 @@ has-ansi@^0.1.0: dependencies: ansi-regex "^0.2.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -1889,23 +1458,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -1916,11 +1468,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -1943,25 +1490,11 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-link-header@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-0.8.0.tgz#a22b41a0c9b1e2d8fac1bf1b697c6bd532d5f5e4" - integrity sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ= - -http-link-header@^1.1.1: +http-link-header@^1.1.0, http-link-header@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.1.1.tgz#f0e6971b0ed86e858d2077066ecb7ba4f2e50de9" integrity sha512-mW3N/rTYpCn99s1do0zx6nzFZSwLH9HGfUM4ZqLWJ16ylmYaC2v5eYGqrNTQlByx8AzUgGI+V/32gXPugs1+Sw== -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -2029,11 +1562,6 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2057,16 +1585,6 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - inquirer@^6.3.1: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" @@ -2086,7 +1604,7 @@ inquirer@^6.3.1: strip-ansi "^5.1.0" through "^2.3.6" -inquirer@^7.0.0, inquirer@^7.3.3: +inquirer@^7.0.0: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== @@ -2117,16 +1635,6 @@ intl-messageformat@^4.4.0: dependencies: intl-messageformat-parser "^1.8.1" -intl-pluralrules@^1.0.3: - version "1.2.2" - resolved "https://registry.yarnpkg.com/intl-pluralrules/-/intl-pluralrules-1.2.2.tgz#2b73542a9502a8a3a742cdd917f3d969fb5482fe" - integrity sha512-SBdlNCJAhTA0I0uHg2dn7I+c6BCvSVk6zJ/01ozjwJK7BvKms9RH3w3Sd/Ag24KffZ/Yx6KJRCKAc7eE8TZLNg== - -intl@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde" - integrity sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94= - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -2137,11 +1645,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -2149,23 +1652,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== - dependencies: - call-bind "^1.0.0" - -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -2173,11 +1659,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" @@ -2217,100 +1698,27 @@ is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-npm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" - integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-path-inside@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.1" - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -2327,11 +1735,6 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -2350,11 +1753,6 @@ isomorphic-fetch@^3.0.0: node-fetch "^2.6.1" whatwg-fetch "^3.4.1" -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - jpeg-js@^0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" @@ -2365,11 +1763,6 @@ jpeg-js@^0.4.4: resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.4.tgz#a9f1c6f1f9f0fa80cdb3484ed9635054d28936aa" integrity sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg== -js-library-detector@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/js-library-detector/-/js-library-detector-6.4.0.tgz#63e165cb84a4a0a7f7bbf1e97d60623921baae14" - integrity sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g== - js-library-detector@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/js-library-detector/-/js-library-detector-6.6.0.tgz#b531a4784f8242d87f68f6f3eafc771a0650fb9d" @@ -2395,16 +1788,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -2415,71 +1798,16 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -jsonld@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonld/-/jsonld-4.0.1.tgz#b8d464ae94bf00b54a219a99782cb488c49842d5" - integrity sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A== - dependencies: - canonicalize "^1.0.1" - lru-cache "^5.1.1" - object.fromentries "^2.0.2" - rdf-canonize "^2.0.1" - request "^2.88.0" - semver "^6.3.0" - -jsonlint-mod@^1.7.6: - version "1.7.6" - resolved "https://registry.yarnpkg.com/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz#6f1c4c51fdb5c2002489a0665e3e19a316743319" - integrity sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg== - dependencies: - JSV "^4.0.2" - chalk "^2.4.2" - underscore "^1.9.1" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - just-extend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2488,7 +1816,7 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lighthouse-logger@1.2.0, lighthouse-logger@^1.0.0, lighthouse-logger@^1.2.0: +lighthouse-logger@1.2.0, lighthouse-logger@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz#b76d56935e9c137e86a04741f6bb9b2776e886ca" integrity sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw== @@ -2509,24 +1837,18 @@ lighthouse-stack-packs@1.9.1: resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.9.1.tgz#e83f76e302cb3dec717ad6a3af2da07c91d8f8f5" integrity sha512-9prq6oMkVHz3GeCkphq4FHXXdj3M/WPiFWUvJAczLYV8j/oTxsgiHSPMqh1KVV11CP0VTxD40hFC0pDfXF+khQ== -lighthouse-stack-packs@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.4.0.tgz#bf98e0fb04a091ec2d73648842698b41070968ef" - integrity sha512-wdv94WUjaqUwtW8DOapng45Yah62c5O5geNVeoSQlnoagfbTO/YbiwNlfzDIF1xNKRkPlsfr/oWHhXsaHXDivg== - -lighthouse@10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-10.1.1.tgz#b59820ea83d78d95810a6aef0790df9eb407dfba" - integrity sha512-fw+IErhG3MB3SS8SWDcz+RMzM7n6/CPBShdQUTnc39U4V1yDVr+qBRtlXBhbpH5SFASzJnD6Xkm5SoYyCACHMg== +lighthouse@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-10.1.0.tgz#32018eb76c1feff1bafe8c102369c81a3703030b" + integrity sha512-lIBgCcKK9bdPg95lMA+9RW9f8JZPRewVruloBxxSuu+90Ln422S8dpxC70KhvojdaeqeOLT9zJazZYgG+k1s3g== dependencies: "@sentry/node" "^6.17.4" axe-core "4.6.3" chrome-launcher "^0.15.1" configstore "^5.0.1" csp_evaluator "1.1.1" - devtools-protocol "0.0.1130274" enquirer "^2.3.6" - http-link-header "^1.1.1" + http-link-header "^1.1.0" intl-messageformat "^4.4.0" jpeg-js "^0.4.4" js-library-detector "^6.6.0" @@ -2547,46 +1869,38 @@ lighthouse@10.1.1: yargs "^17.3.1" yargs-parser "^21.0.0" -lighthouse@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-7.3.0.tgz#bcd5d68b8ae6416daaa8fba20dee23ec186369f8" - integrity sha512-c3loU7ptP8TAlR+bBhc+5ClALx/YVRSh8m5KPiDZQ7wNYxRnhZjDDz6rLzd5gLDhjVwhjMv1APypZegDOFkKOQ== +lighthouse@10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-10.1.1.tgz#b59820ea83d78d95810a6aef0790df9eb407dfba" + integrity sha512-fw+IErhG3MB3SS8SWDcz+RMzM7n6/CPBShdQUTnc39U4V1yDVr+qBRtlXBhbpH5SFASzJnD6Xkm5SoYyCACHMg== dependencies: - axe-core "4.1.3" - chrome-launcher "^0.13.4" + "@sentry/node" "^6.17.4" + axe-core "4.6.3" + chrome-launcher "^0.15.1" configstore "^5.0.1" - csp_evaluator "^1.0.1" - cssstyle "1.2.1" - details-element-polyfill "^2.4.0" - http-link-header "^0.8.0" - inquirer "^7.3.3" - intl "^1.2.5" + csp_evaluator "1.1.1" + devtools-protocol "0.0.1130274" + enquirer "^2.3.6" + http-link-header "^1.1.1" intl-messageformat "^4.4.0" - intl-pluralrules "^1.0.3" - jpeg-js "^0.4.1" - js-library-detector "^6.4.0" - jsonld "^4.0.1" - jsonlint-mod "^1.7.6" - lighthouse-logger "^1.2.0" - lighthouse-stack-packs "^1.4.0" - lodash.get "^4.4.2" - lodash.isequal "^4.5.0" - lodash.set "^4.3.2" - lookup-closest-locale "6.0.4" - metaviewport-parser "0.2.0" - open "^6.4.0" + jpeg-js "^0.4.4" + js-library-detector "^6.6.0" + lighthouse-logger "^1.3.0" + lighthouse-stack-packs "1.9.1" + lodash "^4.17.21" + lookup-closest-locale "6.2.0" + metaviewport-parser "0.3.0" + open "^8.4.0" parse-cache-control "1.0.1" - ps-list "^7.2.0" - raven "^2.2.1" - rimraf "^2.6.1" - robots-parser "^2.0.1" + ps-list "^8.0.0" + puppeteer-core "^19.6.0" + robots-parser "^3.0.0" semver "^5.3.0" speedline-core "^1.4.3" - third-party-web "^0.12.2" - update-notifier "^4.1.0" - ws "3.3.2" - yargs "^16.1.1" - yargs-parser "^20.2.4" + third-party-web "^0.20.2" + ws "^7.0.0" + yargs "^17.3.1" + yargs-parser "^21.0.0" locate-path@^3.0.0: version "3.0.0" @@ -2620,16 +1934,6 @@ lodash.get@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - -lodash.set@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" - integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= - lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -2652,41 +1956,11 @@ lolex@^4.1.0: resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.1.0.tgz#ecdd7b86539391d8237947a3419aa8ac975f0fe1" integrity sha512-BYxIEXiVq5lGIXeVHnsFzqa1TxN5acnKnPCdlZSpzm8viNEOhiigupA4vTQ9HEFQ6nLTQ9wQOgBknJgzUYQ9Aw== -lookup-closest-locale@6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz#1279fed7546a601647bbc980f64423ee990a8590" - integrity sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ== - lookup-closest-locale@6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz#57f665e604fd26f77142d48152015402b607bcf3" integrity sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ== -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -2699,13 +1973,6 @@ lru_map@^0.3.3: resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -2723,15 +1990,6 @@ marky@^1.2.2: resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.2.tgz#4456765b4de307a13d263a69b0c79bf226e68323" integrity sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ== -md5@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -2747,11 +2005,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -metaviewport-parser@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz#535c3ce1ccf6223a5025fddc6a1c36505f7e7db1" - integrity sha1-U1w84cz2IjpQJf3cahw2UF9+fbE= - metaviewport-parser@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz#6af1e99b5eaf250c049e0af1e84143a39750dea6" @@ -2775,7 +2028,7 @@ mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@~2.1.24: version "2.1.30" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== @@ -2797,11 +2050,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -2809,7 +2057,7 @@ minimatch@3.0.4, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -2952,11 +2200,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -2964,41 +2207,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.fromentries@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" - integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -3032,13 +2240,6 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== - dependencies: - is-wsl "^1.1.0" - open@^7.1.0: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" @@ -3080,11 +2281,6 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -3137,16 +2333,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -3187,11 +2373,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -3229,11 +2410,6 @@ pend@~1.2.0: resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - picomatch@^2.0.4, picomatch@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" @@ -3244,11 +2420,6 @@ picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -3268,11 +2439,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - progress@2.0.3, progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -3291,26 +2457,11 @@ proxy-from-env@1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -ps-list@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-7.2.0.tgz#3d110e1de8249a4b178c9b1cf2a215d1e4e42fc0" - integrity sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ== - ps-list@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-8.1.0.tgz#aded36339500cd929f1425ece9bf58ac6d3a213e" integrity sha512-NoGBqJe7Ou3kfQxEvDzDyKGAyEgwIuD3YrfXinjcCmBRv0hTld0Xb71hrXvtsNPj7HSFATfemvzB8PPJtq6Yag== -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -3319,18 +2470,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - puppeteer-core@^19.6.0: version "19.10.0" resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-19.10.0.tgz#f92d60693be370ea9a927d7b1ad62704681608ea" @@ -3353,11 +2497,6 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -3375,17 +2514,6 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raven@^2.2.1: - version "2.6.4" - resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.4.tgz#458d4a380c8fbb59e0150c655625aaf60c167ea3" - integrity sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw== - dependencies: - cookie "0.3.1" - md5 "^2.2.1" - stack-trace "0.0.10" - timed-out "4.0.1" - uuid "3.3.2" - raw-body@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" @@ -3396,24 +2524,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -rdf-canonize@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-2.0.1.tgz#12c9b8b41570cd669d9b152c9e679063478ba194" - integrity sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA== - dependencies: - semver "^6.3.0" - setimmediate "^1.0.5" - read-pkg@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" @@ -3445,46 +2555,6 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3512,13 +2582,6 @@ resolve@^1.10.0: dependencies: path-parse "^1.0.6" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -3547,7 +2610,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -3561,11 +2624,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -robots-parser@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/robots-parser/-/robots-parser-2.3.0.tgz#d79e86e26e13fa0a806adbc37f4cf1b96aebc8c3" - integrity sha512-RvuCITckrHM9k8DxCCU9rqWpuuKRfVX9iHG751dC3/EdERxp9gJATxYYdYOT3L0T+TAT4+27lENisk/VbHm47A== - robots-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/robots-parser/-/robots-parser-3.0.0.tgz#66af89306302ecd004455f2f24298310d0966631" @@ -3595,17 +2653,17 @@ rxjs@^6.4.0, rxjs@^6.6.0: dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0: +safe-buffer@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -3620,31 +2678,17 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - "semver@2 || 3 || 4 || 5": version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -semver@^5.0.3, semver@^5.3.0, semver@^5.5.0: +semver@^5.3.0, semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.2: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -3697,11 +2741,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" @@ -3791,26 +2830,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-trace@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= - static-server@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/static-server/-/static-server-2.2.1.tgz#49e3cae2a001736b0ee9e95d21d3d843fc95efaa" @@ -3827,7 +2846,7 @@ static-server@^2.2.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -3844,7 +2863,7 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -3862,22 +2881,6 @@ string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -3930,11 +2933,6 @@ strip-json-comments@3.1.1, strip-json-comments@^3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - supports-color@8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" @@ -3992,28 +2990,11 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -third-party-web@^0.12.2: - version "0.12.3" - resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.12.3.tgz#715694cf882d99dfcde228f536464e205ef5c063" - integrity sha512-wnPlVUKzet4hnejKMEsVj5eIL0V2PLzgjJ3fLyGo9GV1pUOMa0NjeIzJNJ0pTEUL2GJAqlFKxo8EYML27SF/ng== - third-party-web@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.20.2.tgz#62eb414c648e120f64aa16c926ba120a62cbd6c5" @@ -4024,11 +3005,6 @@ through@^2.3.6, through@^2.3.8: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -timed-out@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -4043,11 +3019,6 @@ tmp@^0.1.0: dependencies: rimraf "^2.6.3" -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -4060,14 +3031,6 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -4090,18 +3053,6 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -4119,11 +3070,6 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - type-fest@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" @@ -4154,21 +3100,6 @@ typescript@^4.7.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -unbox-primitive@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - unbzip2-stream@1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" @@ -4177,18 +3108,6 @@ unbzip2-stream@1.4.3: buffer "^5.2.1" through "^2.3.8" -underscore@^1.9.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.0.tgz#3ccdcbb824230fc6bf234ad0ddcd83dff4eafe5f" - integrity sha512-sCs4H3pCytsb5K7i072FAEC9YlSYFIbosvM0tAKAlpSSUgD7yC1iXSEGdl5XrDKQ1YUB+p/HDzYrSG2H2Vl36g== - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -4201,43 +3120,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -update-notifier@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" - integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== - dependencies: - boxen "^3.0.0" - chalk "^2.0.1" - configstore "^4.0.0" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.1.0" - is-npm "^3.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -update-notifier@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -4245,13 +3127,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -4262,16 +3137,6 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - uuid@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -4295,15 +3160,6 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -4322,17 +3178,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -4359,20 +3204,6 @@ wide-align@1.1.3: dependencies: string-width "^1.0.2 || 2" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -4406,15 +3237,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -4432,15 +3254,6 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.2.tgz#96c1d08b3fefda1d5c1e33700d3bfaa9be2d5608" - integrity sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - ws@8.13.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" @@ -4451,11 +3264,6 @@ ws@^7.0.0: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -4471,16 +3279,6 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -4507,7 +3305,7 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2, yargs-parser@^20.2.4: +yargs-parser@^20.2.2: version "20.2.7" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== @@ -4545,7 +3343,7 @@ yargs@16.1.1: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@16.2.0, yargs@^16.1.1: +yargs@16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== From eb8b428febaccfa02f33e1dec0b11c2330a8d25a Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 4 May 2023 13:06:39 -0700 Subject: [PATCH 8/8] tweak long task computed artifact --- lighthouse-plugin-publisher-ads/computed/long-tasks.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lighthouse-plugin-publisher-ads/computed/long-tasks.js b/lighthouse-plugin-publisher-ads/computed/long-tasks.js index 7d9316d1..bb4715b9 100644 --- a/lighthouse-plugin-publisher-ads/computed/long-tasks.js +++ b/lighthouse-plugin-publisher-ads/computed/long-tasks.js @@ -15,7 +15,6 @@ import AdLanternMetric from '../computed/ad-lantern-metric.js'; import {BaseNode} from 'lighthouse/core/lib/dependency-graph/base-node.js'; -import ComputedMetric from 'lighthouse/core/computed/metrics/metric.js'; import {getAttributableUrl} from '../utils/tasks.js'; import {LoadSimulator} from 'lighthouse/core/computed/load-simulator.js'; import {MainThreadTasks} from 'lighthouse/core/computed/main-thread-tasks.js'; @@ -52,16 +51,14 @@ function isLong(task, knownScripts) { } /** Finds long tasks, with support for simulation. */ -// eslint-disable-next-line max-len -// @ts-expect-error TODO why is this a ComputedMetric? Should it just be a Computed artifact? It returns task nodes, no Metric/LanternMetric. // eslint-disable-next-line require-jsdoc -class LongTasks extends ComputedMetric { +class LongTasks { /** * @param {LH.Trace} trace * @param {LH.DevtoolsLog} devtoolsLog * @param {LH.Artifacts.URL} URL * @param {LH.Audit.Context} context - * @return {Promise} networkRecords + * @return {Promise} */ static async getSimulationGraph(trace, devtoolsLog, URL, context) { const documentNode = @@ -74,7 +71,7 @@ class LongTasks extends ComputedMetric { * @param {LH.DevtoolsLog} devtoolsLog * @param {LH.Artifacts.URL} URL * @param {LH.Audit.Context} context - * @return {Promise} networkRecords + * @return {Promise} */ static async computeSimulatedResult(trace, devtoolsLog, URL, context) { const graph =