diff --git a/package-lock.json b/package-lock.json index 6b839d0..bd843f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -250,9 +250,9 @@ }, "dependencies": { "@types/node": { - "version": "12.19.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.16.tgz", - "integrity": "sha512-7xHmXm/QJ7cbK2laF+YYD7gb5MggHIIQwqyjin3bpEGiSuvScMQ5JZZXPvRipi1MwckTQbJZROMns/JxdnIL1Q==" + "version": "12.20.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.1.tgz", + "integrity": "sha512-tCkE96/ZTO+cWbln2xfyvd6ngHLanvVlJ3e5BeirJ3BYI5GbAyubIrmV4JjjugDly5D9fHjOL5MNsqsCnqwW6g==" } } }, @@ -338,9 +338,9 @@ } }, "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jef/pushbullet": { @@ -538,9 +538,9 @@ "dev": true }, "@types/cheerio": { - "version": "0.22.23", - "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.23.tgz", - "integrity": "sha512-QfHLujVMlGqcS/ePSf3Oe5hK3H8wi/yN2JYuxSB1U10VvW1fO3K8C+mURQesFYS1Hn7lspOsTT75SKq/XtydQg==", + "version": "0.22.24", + "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.24.tgz", + "integrity": "sha512-iKXt/cwltGvN06Dd6zwQG1U35edPwId9lmcSeYfcxSNvvNg4vysnFB+iBQNjj06tSVV7MBj0GWMQ7dwb4Z+p8Q==", "dev": true, "requires": { "@types/node": "*" @@ -659,15 +659,15 @@ "dev": true }, "@types/mocha": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz", - "integrity": "sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.1.tgz", + "integrity": "sha512-NysN+bNqj6E0Hv4CTGWSlPzMW6vTKjDpOteycDkV4IWBsO+PU48JonrPzV9ODjiI2XrjmA05KInLgF5ivZ/YGQ==", "dev": true }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==" + "version": "14.14.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.28.tgz", + "integrity": "sha512-lg55ArB+ZiHHbBBttLpzD07akz0QPrZgUODNakeC09i62dnrywr9mFErHuaPlB6I7z+sEbK+IYmplahvplCj2g==" }, "@types/node-fetch": { "version": "2.5.8", @@ -1524,9 +1524,9 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "c8": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.5.0.tgz", - "integrity": "sha512-GSkLsbvDr+FIwjNSJ8OwzWAyuznEYGTAd1pzb/Kr0FMLuV4vqYJTyjboDTwmlUNAG6jAU3PFWzqIdKrOt1D8tw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.6.0.tgz", + "integrity": "sha512-cQYCSepX54npWqOKAmRWwOnmN2XPyShpP3Hnw2VoaB/8fdiIke72tKClHLim4U5kSTFc1vjit0771oe+BL7qHw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", @@ -1690,9 +1690,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001185", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz", - "integrity": "sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==", + "version": "1.0.30001187", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001187.tgz", + "integrity": "sha512-w7/EP1JRZ9552CyrThUnay2RkZ1DXxKe/Q2swTC4+LElLh9RRYrL1Z+27LlakB8kzY0fSmHw9mc7XYDUKAKWMA==", "dev": true }, "caseless": { @@ -2192,9 +2192,9 @@ "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" }, "devtools-protocol": { - "version": "0.0.818844", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz", - "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==" + "version": "0.0.847576", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.847576.tgz", + "integrity": "sha512-0M8kobnSQE0Jmly7Mhbeq0W/PpZfnuK+WjN2ZRVPbGqYwCHCioAVp84H0TcLimgECcN5H976y5QiXMGBC9JKmg==" }, "diff": { "version": "4.0.2", @@ -2392,9 +2392,9 @@ } }, "electron-to-chromium": { - "version": "1.3.657", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.657.tgz", - "integrity": "sha512-/9ROOyvEflEbaZFUeGofD+Tqs/WynbSTbNgNF+/TJJxH1ePD/e6VjZlDJpW3FFFd3nj5l3Hd8ki2vRwy+gyRFw==", + "version": "1.3.667", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.667.tgz", + "integrity": "sha512-Ot1pPtAVb5nd7jeVF651zmfLFilRVFomlDzwXmdlWe5jyzOGa6mVsQ06XnAurT7wWfg5VEIY+LopbAdD/bpo5w==", "dev": true }, "emoji-regex": { @@ -4484,92 +4484,64 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "mocha": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", - "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.0.tgz", + "integrity": "sha512-TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.4.3", - "debug": "4.2.0", - "diff": "4.0.2", + "chokidar": "3.5.1", + "debug": "4.3.1", + "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.1.6", "growl": "1.10.5", "he": "1.2.0", - "js-yaml": "3.14.0", + "js-yaml": "4.0.0", "log-symbols": "4.0.0", "minimatch": "3.0.4", - "ms": "2.1.2", - "nanoid": "3.1.12", + "ms": "2.1.3", + "nanoid": "3.1.20", "serialize-javascript": "5.0.1", "strip-json-comments": "3.1.1", - "supports-color": "7.2.0", + "supports-color": "8.1.1", "which": "2.0.2", "wide-align": "1.1.3", - "workerpool": "6.0.2", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", + "workerpool": "6.1.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" } }, - "cliui": { + "diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "escape-string-regexp": { @@ -4588,20 +4560,38 @@ "path-exists": "^4.0.0" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "is-glob": "^4.0.1" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, + "requires": { + "argparse": "^2.0.1" } }, "locate-path": { @@ -4613,6 +4603,12 @@ "p-locate": "^5.0.0" } }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -4631,114 +4627,13 @@ "p-limit": "^3.0.2" } }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "has-flag": "^4.0.0" } } } @@ -4785,9 +4680,9 @@ "dev": true }, "nanoid": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", - "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", + "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", "dev": true }, "natural-compare": { @@ -4963,9 +4858,9 @@ "dev": true }, "nodemailer": { - "version": "6.4.17", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.17.tgz", - "integrity": "sha512-89ps+SBGpo0D4Bi5ZrxcrCiRFaMmkCt+gItMXQGzEtZVR3uAD3QAQIDoxTWnx3ky0Dwwy/dhFrQ+6NNGXpw/qQ==" + "version": "6.4.18", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.18.tgz", + "integrity": "sha512-ht9cXxQ+lTC+t00vkSIpKHIyM4aXIsQ1tcbQCn5IOnxYHi81W2XOaU66EQBFFpbtzLEBTC94gmkbD4mGZQzVpA==" }, "nodemon": { "version": "2.0.7", @@ -6934,9 +6829,9 @@ } }, "open": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", - "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "requires": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -7440,44 +7335,28 @@ } }, "puppeteer": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.5.0.tgz", - "integrity": "sha512-OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-7.1.0.tgz", + "integrity": "sha512-lqOLzqCKdh7yUAHvK6LxgOpQrL8Bv1/jvS8MLDXxcNms2rlM3E8p/Wlwc7efbRZ0twxTzUeqjN5EqrTwxOwc9g==", "requires": { "debug": "^4.1.0", - "devtools-protocol": "0.0.818844", + "devtools-protocol": "0.0.847576", "extract-zip": "^2.0.0", - "https-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", "node-fetch": "^2.6.1", "pkg-dir": "^4.2.0", "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", + "proxy-from-env": "^1.1.0", "rimraf": "^3.0.2", "tar-fs": "^2.0.0", "unbzip2-stream": "^1.3.3", "ws": "^7.2.3" - }, - "dependencies": { - "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==" - }, - "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", - "requires": { - "agent-base": "5", - "debug": "4" - } - } } }, "puppeteer-extra": { - "version": "3.1.16", - "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.1.16.tgz", - "integrity": "sha512-7XpScQH1n2Qx5CBZFizAi3HsKoRY8kgVntVg7P/QNiOVvLwcXTi5r3j8Dg25xj2Ga6p7PdWzqY21c4v4C42+Yg==", + "version": "3.1.17", + "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.1.17.tgz", + "integrity": "sha512-KkrIEZGuQ1uqRK9wo0hIGEspGPlYHQIr31MQcbVy4l3RBCICdNbGpKH5TIyvTwSuuqjjGl62gFq5Naa51OpYsA==", "requires": { "@types/debug": "^4.1.0", "@types/puppeteer": "*", @@ -7517,9 +7396,9 @@ } }, "puppeteer-extra-plugin-stealth": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-stealth/-/puppeteer-extra-plugin-stealth-2.7.4.tgz", - "integrity": "sha512-d7C7MwOSPNtf6khDc0LYFAEUBH8vQXKrbHReeAhNGS/I1m5MJvy5Ir9WwcBz6xOwPhcFuSQEUcs+x1peIxA00Q==", + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-stealth/-/puppeteer-extra-plugin-stealth-2.7.5.tgz", + "integrity": "sha512-4LR5SRw7zlW+qSokvXJsjdQoDDvDlZsQ9QR1pD01mwxDAFAeJ3dCBvTBt33ppm//tesLCCBxPr78s2HyBIVp4A==", "requires": { "debug": "^4.1.1", "puppeteer-extra-plugin": "^3.1.8", @@ -7866,12 +7745,6 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -8037,12 +7910,6 @@ "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -8435,9 +8302,9 @@ "dev": true }, "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz", + "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -8717,12 +8584,13 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "twilio": { - "version": "3.55.1", - "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.55.1.tgz", - "integrity": "sha512-7S8658CaMKArxRgYr+UvZQTxbp7n3WzurjuQdNX2GwVO34vZzmiuAuYvldaJrZ2mSBgsXUSNVcofQT6tGHGRSg==", + "version": "3.56.0", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.56.0.tgz", + "integrity": "sha512-SXnYInB5P00UP2umFkOow0e++2UoWpabPkcltCzsKdsZQLI+AfLd0xyVP3dF8Z7An8i78GvnFTC/bSYXhrddzA==", "requires": { "axios": "^0.21.1", "dayjs": "^1.8.29", + "https-proxy-agent": "^5.0.0", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.19", "q": "2.0.x", @@ -8741,9 +8609,9 @@ } }, "twitch": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/twitch/-/twitch-4.4.9.tgz", - "integrity": "sha512-KqXebXk5BKYxTTjn505FePQubecYaz3M0fmD6Ty4dRGAGD2Nx5svTIV9O38ms+m1NS4fcCiRoGBoDpjykifGJA==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/twitch/-/twitch-4.4.11.tgz", + "integrity": "sha512-v6UBSK3o56k8mF1ySn+mq7zGdIYgI0cbAdb/n5v+uG1JFbktFqG1plD7JWL4nUbEAWbn+tltOMO5omLDoDuHLw==", "requires": { "@d-fischer/cache-decorators": "^2.1.1", "@d-fischer/deprecate": "^2.0.2", @@ -8752,41 +8620,41 @@ "@d-fischer/shared-utils": "^3.0.1", "top-package": "^1.0.0", "tslib": "^2.0.3", - "twitch-api-call": "^4.4.9", - "twitch-auth": "^4.4.9", - "twitch-common": "^4.4.9" + "twitch-api-call": "^4.4.11", + "twitch-auth": "^4.4.11", + "twitch-common": "^4.4.11" } }, "twitch-api-call": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/twitch-api-call/-/twitch-api-call-4.4.9.tgz", - "integrity": "sha512-avsGou1gbLlMBpcafe12f5nFLVip0ZSERWpzaj3mo8WglJFQAcOSKzkYBtZFJjVbk9qGP0eWcgWL2iJ/5ZL1bA==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/twitch-api-call/-/twitch-api-call-4.4.11.tgz", + "integrity": "sha512-wy9BCaxYq7HfStMEO6DOWeNxTkpm52UfZfYTUzFqVHpOfQbtdynJaW+bCkcwiK7Ka3TvxxviTwojAEXrapkpPQ==", "requires": { "@d-fischer/cross-fetch": "^4.0.2", "@d-fischer/qs": "^7.0.2", "@types/node-fetch": "^2.5.7", "node-fetch": "^2.6.1", "tslib": "^2.0.3", - "twitch-common": "^4.4.9" + "twitch-common": "^4.4.11" } }, "twitch-auth": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/twitch-auth/-/twitch-auth-4.4.9.tgz", - "integrity": "sha512-0oMco1Duz1p2jHwSKk9OwN80iQ1r0l+hLOe5n8B2Elpq4RwDk4U8EuH51p6+I02ccvCK2AipJCjRmRvoGc/U6A==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/twitch-auth/-/twitch-auth-4.4.11.tgz", + "integrity": "sha512-4xbZm/fJtliZ3uX/8pPV9DZ8vtAoFxqp8ftGPPnHZF3KkqCEXWt9y9cMvCzAzljO3jjOkN7vAZCqtbNrf3hhAw==", "requires": { "@d-fischer/deprecate": "^2.0.2", "@d-fischer/logger": "^3.1.0", "@d-fischer/shared-utils": "^3.0.1", "tslib": "^2.0.3", - "twitch-api-call": "^4.4.9", - "twitch-common": "^4.4.9" + "twitch-api-call": "^4.4.11", + "twitch-common": "^4.4.11" } }, "twitch-chat-client": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/twitch-chat-client/-/twitch-chat-client-4.4.9.tgz", - "integrity": "sha512-PQurvJNZRP2mXnyoH97TrL/EN3ryiXrOKUXd1eBaPkm+CXF/3HnWtCaxsPDv8rEeRlZSV9290NIc9p2O0sBiqA==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/twitch-chat-client/-/twitch-chat-client-4.4.11.tgz", + "integrity": "sha512-CHsRbVnEKqDEnFNq87242Eig5uyuUwQLenWkjh7V/3YsyP3zwmDCfHkJVr8zLxT6dzuSAArr7DqU79icPDRi/A==", "requires": { "@d-fischer/cache-decorators": "^2.1.1", "@d-fischer/deprecate": "^2.0.2", @@ -8796,14 +8664,14 @@ "@d-fischer/typed-event-emitter": "^3.2.2", "ircv3": "^0.26.12", "tslib": "^2.0.3", - "twitch-auth": "^4.4.9", - "twitch-common": "^4.4.9" + "twitch-auth": "^4.4.11", + "twitch-common": "^4.4.11" } }, "twitch-common": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/twitch-common/-/twitch-common-4.4.9.tgz", - "integrity": "sha512-vcnth5Pne4jCQDOfD5+pGchiQbk90oaMIEkhKO+vrOdSnQ8N01k0FFUvuKfM6A/NXDWkTy6wcIgT/7chCzlxXg==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/twitch-common/-/twitch-common-4.4.11.tgz", + "integrity": "sha512-g3xcwMCNy2IWlDvYRF6Zi33FM0rk7lNNNQDw62CbJxLJiC+lIN4AURBiiuLnn569x0pyk6y6g60Il6mxIIsTqg==", "requires": { "@d-fischer/logger": "^3.1.0", "@d-fischer/shared-utils": "^3.0.1", @@ -8852,9 +8720,9 @@ } }, "typescript": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.4.tgz", - "integrity": "sha512-+Uru0t8qIRgjuCpiSPpfGuhHecMllk5Zsazj5LZvVsEStEjmIRRBZe+jHjGQvsgS7M1wONy2PQXd67EMyV6acg==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", + "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", "dev": true }, "unbzip2-stream": { @@ -8969,9 +8837,9 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.0.tgz", + "integrity": "sha512-9iT6N4s93SMfzunOyDPe4vo4nLcSu1yq0IQK1gURmjm8tQNlM6loiuCRrKG1hHGXfB2EWd6H4cGi7tGdaygMFw==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -9095,9 +8963,9 @@ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" }, "webpack": { - "version": "5.21.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.21.2.tgz", - "integrity": "sha512-xHflCenx+AM4uWKX71SWHhxml5aMXdy2tu/vdi4lClm7PADKxlyDAFFN1rEFzNV0MAoPpHtBeJnl/+K6F4QBPg==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.22.0.tgz", + "integrity": "sha512-xqlb6r9RUXda/d9iA6P7YRTP1ChWeP50TEESKMMNIg0u8/Rb66zN9YJJO7oYgJTRyFyYi43NVC5feG45FSO1vQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -9174,12 +9042,6 @@ "isexe": "^2.0.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -9298,9 +9160,9 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "workerpool": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", - "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", + "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", "dev": true }, "wrap-ansi": { diff --git a/package.json b/package.json index 4272c69..abbc293 100644 --- a/package.json +++ b/package.json @@ -45,43 +45,42 @@ "node-hue-api": "^4.0.10", "node-notifier": "^9.0.0", "node-pagerduty": "^1.3.6", - "nodemailer": "^6.4.17", - "open": "^7.4.0", + "nodemailer": "^6.4.18", + "open": "^7.4.2", "play-sound": "^1.1.3", - "puppeteer": "^5.5.0", - "puppeteer-extra": "^3.1.16", + "puppeteer": "^7.1.0", + "puppeteer-extra": "^3.1.17", "puppeteer-extra-plugin-adblocker": "^2.11.10", "puppeteer-extra-plugin-block-resources": "^2.2.8", - "puppeteer-extra-plugin-stealth": "^2.7.4", + "puppeteer-extra-plugin-stealth": "^2.7.5", "pushover-notifications": "^1.2.2", "redis": "^3.0.2", "top-user-agents": "^1.0.21", - "twilio": "^3.55.1", - "twitch": "^4.4.9", - "twitch-auth": "^4.4.9", - "twitch-chat-client": "^4.4.9", + "twilio": "^3.56.0", + "twitch": "^4.4.11", + "twitch-auth": "^4.4.11", + "twitch-chat-client": "^4.4.11", "twitter": "^1.7.1", "winston": "^3.3.3" }, "devDependencies": { "@types/async": "^3.2.5", - "@types/cheerio": "^0.22.23", - "@types/mocha": "^8.2.0", - "@types/node": "^14.14.25", + "@types/cheerio": "^0.22.24", + "@types/mocha": "^8.2.1", + "@types/node": "^14.14.28", "@types/node-fetch": "^2.5.8", "@types/node-notifier": "^8.0.0", "@types/nodemailer": "^6.4.0", - "@types/puppeteer": "^5.4.3", "@types/redis": "^2.8.28", "@types/sinon": "^9.0.10", "@types/twitter": "^1.7.0", - "c8": "^7.5.0", + "c8": "^7.6.0", "gts": "^3.1.0", - "mocha": "^8.2.1", + "mocha": "^8.3.0", "nodemon": "^2.0.7", "sinon": "^9.2.4", "ts-node": "^9.1.1", - "typescript": "^4.1.4", - "webpack": "^5.21.2" + "typescript": "^4.1.5", + "webpack": "^5.22.0" } } diff --git a/src/index.ts b/src/index.ts index 7a5b9ef..0c60dd2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,16 +1,12 @@ import * as Process from 'process'; import {config} from './config'; // Needs to be loaded first -import {startAPIServer, stopAPIServer} from './web'; // eslint-disable-line sort-imports -import {Browser} from 'puppeteer'; +import {startAPIServer, stopAPIServer} from './web'; +import {Browser, launch} from 'puppeteer'; import {getSleepTime} from './util'; import {logger} from './logger'; -import puppeteer from 'puppeteer-extra'; -import stealthPlugin from 'puppeteer-extra-plugin-stealth'; import {storeList} from './store/model'; import {tryLookupAndLoop} from './store'; -puppeteer.use(stealthPlugin()); - let browser: Browser | undefined; async function sleep(ms: number) { @@ -63,7 +59,7 @@ async function main() { } await stop(); - browser = await puppeteer.launch({ + browser = await launch({ args, defaultViewport: { height: config.page.height, diff --git a/src/store/lookup.ts b/src/store/lookup.ts index 06e5ce5..e01712a 100644 --- a/src/store/lookup.ts +++ b/src/store/lookup.ts @@ -1,10 +1,9 @@ import { Browser, Page, - PageEventObj, - Request, - RespondOptions, - Response, + HTTPRequest, + HTTPResponse, + ResponseForRequest, } from 'puppeteer'; import {Link, Store, getStores} from './model'; import {Print, logger} from '../logger'; @@ -54,7 +53,7 @@ function nextProxy(store: Store) { return store.proxyList[store.currentProxyIndex]; } -async function handleLowBandwidth(request: Request) { +async function handleLowBandwidth(request: HTTPRequest) { if (!config.browser.lowBandwidth) { return false; } @@ -73,7 +72,7 @@ async function handleLowBandwidth(request: Request) { return false; } -async function handleProxy(request: Request, proxy?: string) { +async function handleProxy(request: HTTPRequest, proxy?: string) { if (!proxy) { return false; } @@ -92,7 +91,7 @@ async function handleProxy(request: Request, proxy?: string) { return true; } -async function handleAdBlock(request: Request, adBlockRequestHandler: any) { +async function handleAdBlock(request: HTTPRequest, adBlockRequestHandler: any) { if (!adBlockRequestHandler) { return false; } @@ -112,7 +111,7 @@ async function handleAdBlock(request: Request, adBlockRequestHandler: any) { resolve(true); }; - const respondFunc = async (response: RespondOptions) => { + const respondFunc = async (response: ResponseForRequest) => { try { await request.respond(response); } catch { @@ -199,7 +198,7 @@ async function lookup(browser: Browser, store: Store) { let adBlockRequestHandler: any; let pageProxy; if (useAdBlock) { - const onProxyFunc = (event: keyof PageEventObj, handler: any) => { + const onProxyFunc = (event: string, handler: any) => { if (event !== 'request') { page.on(event, handler); return; @@ -298,7 +297,7 @@ async function lookupCard( link: Link ): Promise { const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0'; - const response: Response | null = await page.goto(link.url, { + const response: HTTPResponse | null = await page.goto(link.url, { waitUntil: givenWaitFor, }); @@ -347,7 +346,7 @@ async function handleResponse( store: Store, page: Page, link: Link, - response?: Response | null, + response?: HTTPResponse | null, recursionDepth = 0 ) { if (!response) { @@ -364,7 +363,7 @@ async function handleResponse( if (recursionDepth > 4) { logger.warn(Print.recursionLimit(link, store, true)); } else { - const response: Response | null = await page.waitForNavigation({ + const response: HTTPResponse | null = await page.waitForNavigation({ waitUntil: 'networkidle0', }); recursionDepth++; @@ -522,7 +521,7 @@ async function runCaptchaDeterrent(browser: Browser, store: Store, page: Page) { try { const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0'; - const response: Response | null = await page.goto(link.url, { + const response: HTTPResponse | null = await page.goto(link.url, { waitUntil: givenWaitFor, }); statusCode = await handleResponse(browser, store, page, link, response); diff --git a/src/store/model/store.ts b/src/store/model/store.ts index a5775da..588fcc3 100644 --- a/src/store/model/store.ts +++ b/src/store/model/store.ts @@ -1,4 +1,4 @@ -import {Browser, LoadEvent} from 'puppeteer'; +import {Browser, PuppeteerLifeCycleEvent} from 'puppeteer'; export type Element = { container?: string; @@ -229,7 +229,7 @@ export type Store = { * 0 -> 399 inclusive. */ successStatusCodes?: StatusCodeRangeArray; - waitUntil?: LoadEvent; + waitUntil?: PuppeteerLifeCycleEvent; minPageSleep?: number; maxPageSleep?: number; diff --git a/src/util.ts b/src/util.ts index a96059b..1f78f11 100644 --- a/src/util.ts +++ b/src/util.ts @@ -1,4 +1,4 @@ -import {Browser, Page, Response} from 'puppeteer'; +import {Browser, Page, HTTPResponse} from 'puppeteer'; import {StatusCodeRangeArray, Store} from './store/model'; import {config} from './config'; import {disableBlockerInPage} from './adblocker'; @@ -45,7 +45,11 @@ export function isStatusCodeInRange( export async function usingResponse( browser: Browser, url: string, - cb: (response: Response | null, page: Page, browser: Browser) => Promise + cb: ( + response: HTTPResponse | null, + page: Page, + browser: Browser + ) => Promise ): Promise { return usingPage(browser, async (page, browser) => { const response = await page.goto(url, {waitUntil: 'domcontentloaded'});