diff --git a/app/index.js b/app/index.js index 1b54398..b72d210 100644 --- a/app/index.js +++ b/app/index.js @@ -3,14 +3,11 @@ // Core modules const fs = require("fs"); -// Public modules from npm -const urlExist = require("url-exist"); - // Modules from file const shared = require("./scripts/shared.js"); const constURLs = require("./scripts/constants/urls.js"); const selectors = require("./scripts/constants/css-selectors.js"); -const { isStringAValidURL } = require("./scripts/urls-helper.js"); +const { isStringAValidURL, urlExists } = require("./scripts/urls-helper.js"); const gameScraper = require("./scripts/game-scraper.js"); const { prepareBrowser, @@ -195,10 +192,10 @@ module.exports.getGameVersion = async function (info) { return info.version; } - let urlExists = await urlExist(info.f95url); + let exists = await urlExists(info.f95url); // F95 change URL at every game update, so if the URL is the same no update is available - if (urlExists) return info.version; + if (exists) return info.version; else return await module.exports.getGameData(info.name, info.isMod).version; }; /** diff --git a/app/scripts/urls-helper.js b/app/scripts/urls-helper.js index e209ee8..3220efa 100644 --- a/app/scripts/urls-helper.js +++ b/app/scripts/urls-helper.js @@ -1,5 +1,11 @@ 'use strict'; +// Public modules from npm +const isUrl = require("is-url-superb"); +const ky = require("ky-universal").create({ + throwHttpErrors: false +}); + // Modules from file const { F95_BASE_URL @@ -29,4 +35,29 @@ module.exports.isStringAValidURL = function(url) { } catch (err) { return false; } +} + +/** + * @public + * Check if a particular URL is valid and reachable on the web. + * @param {String} url URL to check + * @param {Boolean} checkRedirect If true, the function will consider redirects a violation and return false + * @returns {Promise} true if the URL exists, false otherwise + */ +module.exports.urlExists = async function(url, checkRedirect) { + if (!isUrl(url)) { + return false + } + + const response = await ky.head(url); + let valid = response !== undefined && !/4\d\d/.test(response.status); + + if(!valid) return false; + + if(checkRedirect) { + if (response.url === url) valid = true; + else valid = false; + } + + return valid; } \ No newline at end of file diff --git a/coverage.lcov b/coverage.lcov index 0476263..d2032aa 100644 --- a/coverage.lcov +++ b/coverage.lcov @@ -11,15 +11,16 @@ FN:192,(anonymous_7) FN:213,(anonymous_8) FN:252,(anonymous_9) FN:302,(anonymous_10) -FN:320,loadCookies -FN:342,isCookieExpired -FN:378,loadValuesFromLatestPage -FN:412,getValuesFromLatestPage -FN:439,loginF95 -FN:503,getUserWatchedGameThreads -FN:569,getSearchGameResults -FN:614,getOnlyGameThreads -FNF:19 +FN:312,(anonymous_11) +FN:326,loadCookies +FN:348,isCookieExpired +FN:384,loadValuesFromLatestPage +FN:418,getValuesFromLatestPage +FN:445,loginF95 +FN:509,getUserWatchedGameThreads +FN:575,getSearchGameResults +FN:620,getOnlyGameThreads +FNF:20 FNH:15 FNDA:0,(anonymous_0) FNDA:0,(anonymous_1) @@ -32,11 +33,12 @@ FNDA:1,(anonymous_7) FNDA:3,(anonymous_8) FNDA:2,(anonymous_9) FNDA:9,(anonymous_10) -FNDA:12,loadCookies +FNDA:0,(anonymous_11) +FNDA:13,loadCookies FNDA:49,isCookieExpired FNDA:6,loadValuesFromLatestPage FNDA:2,getValuesFromLatestPage -FNDA:5,loginF95 +FNDA:6,loginF95 FNDA:1,getUserWatchedGameThreads FNDA:2,getSearchGameResults FNDA:12,getOnlyGameThreads @@ -75,26 +77,26 @@ DA:93,1 DA:94,1 DA:98,10 DA:99,10 -DA:100,5 -DA:101,5 -DA:102,5 -DA:103,5 -DA:104,5 -DA:105,5 -DA:109,5 +DA:100,4 +DA:101,4 +DA:102,4 +DA:103,4 +DA:104,4 +DA:105,4 +DA:109,6 DA:110,0 -DA:112,5 -DA:113,5 +DA:112,6 +DA:113,6 DA:115,0 DA:116,0 -DA:119,5 -DA:120,5 -DA:122,5 -DA:124,2 -DA:125,2 +DA:119,6 +DA:120,6 +DA:122,6 +DA:124,3 +DA:125,3 DA:127,3 -DA:129,5 -DA:130,5 +DA:129,6 +DA:130,6 DA:139,1 DA:140,5 DA:141,1 @@ -164,141 +166,144 @@ DA:293,1 DA:295,1 DA:302,1 DA:303,9 -DA:304,3 -DA:305,3 -DA:307,6 -DA:322,12 -DA:324,7 -DA:325,7 -DA:328,7 -DA:329,49 -DA:333,7 -DA:334,5 -DA:344,49 -DA:347,49 -DA:349,49 -DA:351,49 +DA:304,4 +DA:305,4 +DA:307,5 +DA:310,5 +DA:311,0 +DA:312,0 +DA:328,13 +DA:330,7 +DA:331,7 +DA:334,7 +DA:335,49 +DA:339,7 +DA:340,6 +DA:350,49 DA:353,49 -DA:354,0 -DA:355,0 -DA:358,0 -DA:362,49 -DA:385,6 -DA:386,6 -DA:387,4 -DA:388,4 -DA:392,2 -DA:393,0 -DA:394,2 -DA:399,2 +DA:355,49 +DA:357,49 +DA:359,49 +DA:360,0 +DA:361,0 +DA:364,0 +DA:368,49 +DA:391,6 +DA:392,6 +DA:393,4 +DA:394,4 +DA:398,2 +DA:399,0 DA:400,2 -DA:413,2 -DA:415,2 -DA:416,2 -DA:418,2 -DA:419,17 -DA:424,17 -DA:426,2 -DA:440,5 -DA:441,5 -DA:444,5 -DA:445,5 -DA:446,5 -DA:447,5 -DA:448,5 -DA:449,5 -DA:450,5 -DA:455,5 -DA:458,5 -DA:465,5 -DA:466,2 -DA:467,2 -DA:468,2 -DA:471,3 -DA:478,3 +DA:405,2 +DA:406,2 +DA:419,2 +DA:421,2 +DA:422,2 +DA:424,2 +DA:425,17 +DA:430,17 +DA:432,2 +DA:446,6 +DA:447,6 +DA:450,6 +DA:451,6 +DA:452,6 +DA:453,6 +DA:454,6 +DA:455,6 +DA:456,6 +DA:461,6 +DA:464,6 +DA:471,6 +DA:472,3 +DA:473,3 +DA:474,3 +DA:477,3 DA:484,3 -DA:485,1 -DA:486,2 -DA:490,2 -DA:491,0 -DA:492,0 -DA:494,5 -DA:495,5 -DA:504,1 -DA:505,1 -DA:508,1 +DA:490,3 +DA:491,1 +DA:492,2 +DA:496,2 +DA:497,0 +DA:498,0 +DA:500,6 +DA:501,6 +DA:510,1 DA:511,1 -DA:512,1 -DA:513,1 DA:514,1 DA:517,1 +DA:518,1 +DA:519,1 +DA:520,1 DA:523,1 -DA:526,1 -DA:527,1 -DA:530,1 -DA:531,1 +DA:529,1 DA:532,1 -DA:534,3 -DA:535,46 -DA:540,46 -DA:541,46 -DA:544,3 +DA:533,1 +DA:536,1 +DA:537,1 +DA:538,1 +DA:540,3 +DA:541,47 +DA:546,47 +DA:547,47 DA:550,3 -DA:551,2 -DA:552,2 -DA:556,1 -DA:557,1 -DA:570,2 -DA:572,2 -DA:573,2 -DA:574,2 +DA:556,3 +DA:557,2 +DA:558,2 +DA:562,1 +DA:563,1 +DA:576,2 +DA:578,2 DA:579,2 DA:580,2 -DA:581,2 -DA:583,2 -DA:584,2 DA:585,2 DA:586,2 +DA:587,2 +DA:589,2 +DA:590,2 DA:591,2 -DA:594,2 -DA:595,2 -DA:596,2 -DA:597,12 -DA:600,12 +DA:592,2 +DA:597,2 +DA:600,2 +DA:601,2 DA:602,2 -DA:603,2 -DA:605,2 -DA:615,12 -DA:618,12 -DA:622,12 -DA:625,12 -DA:627,16 -DA:631,16 -DA:634,16 -DA:636,4 -LF:236 -LH:213 +DA:603,12 +DA:606,12 +DA:608,2 +DA:609,2 +DA:611,2 +DA:621,12 +DA:624,12 +DA:628,12 +DA:631,12 +DA:633,16 +DA:637,16 +DA:640,16 +DA:642,4 +LF:239 +LH:214 BRDA:71,0,0,0 BRDA:71,0,1,0 BRDA:89,1,0,1 BRDA:89,1,1,10 BRDA:90,2,0,0 BRDA:90,2,1,1 -BRDA:99,3,0,5 -BRDA:99,3,1,5 +BRDA:99,3,0,4 +BRDA:99,3,1,6 BRDA:100,4,0,0 -BRDA:100,4,1,5 +BRDA:100,4,1,4 BRDA:109,5,0,0 -BRDA:109,5,1,5 -BRDA:113,6,0,5 +BRDA:109,5,1,6 +BRDA:113,6,0,6 BRDA:113,6,1,0 BRDA:115,7,0,0 BRDA:115,7,1,0 -BRDA:122,8,0,2 +BRDA:122,8,0,3 BRDA:122,8,1,3 BRDA:125,9,0,0 -BRDA:125,9,1,2 -BRDA:129,10,0,5 +BRDA:125,9,1,3 +BRDA:129,10,0,6 BRDA:129,10,1,0 BRDA:140,11,0,1 BRDA:140,11,1,4 @@ -338,62 +343,66 @@ BRDA:289,28,0,1 BRDA:289,28,1,0 BRDA:293,29,0,1 BRDA:293,29,1,0 -BRDA:303,30,0,3 -BRDA:303,30,1,6 -BRDA:322,31,0,7 -BRDA:322,31,1,5 -BRDA:329,32,0,0 -BRDA:329,32,1,49 -BRDA:349,33,0,49 -BRDA:349,33,1,0 -BRDA:353,34,0,0 -BRDA:353,34,1,49 -BRDA:354,35,0,0 -BRDA:354,35,1,0 -BRDA:385,36,0,0 -BRDA:385,36,1,6 -BRDA:386,37,0,4 -BRDA:386,37,1,2 -BRDA:392,38,0,0 -BRDA:392,38,1,2 -BRDA:413,39,0,0 -BRDA:413,39,1,2 -BRDA:465,40,0,2 -BRDA:465,40,1,3 -BRDA:471,41,0,3 -BRDA:471,41,1,0 -BRDA:484,42,0,1 -BRDA:484,42,1,2 -BRDA:486,43,0,2 -BRDA:486,43,1,0 -BRDA:550,44,0,2 -BRDA:550,44,1,1 -BRDA:570,45,0,0 -BRDA:570,45,1,2 -BRDA:594,46,0,0 -BRDA:594,46,1,2 -BRDA:600,47,0,4 -BRDA:600,47,1,8 -BRDA:602,48,0,0 -BRDA:602,48,1,2 -BRDA:634,49,0,8 -BRDA:634,49,1,8 -BRF:100 -BRH:60 +BRDA:303,30,0,4 +BRDA:303,30,1,5 +BRDA:310,31,0,0 +BRDA:310,31,1,5 +BRDA:310,32,0,5 +BRDA:310,32,1,0 +BRDA:328,33,0,7 +BRDA:328,33,1,6 +BRDA:335,34,0,0 +BRDA:335,34,1,49 +BRDA:355,35,0,49 +BRDA:355,35,1,0 +BRDA:359,36,0,0 +BRDA:359,36,1,49 +BRDA:360,37,0,0 +BRDA:360,37,1,0 +BRDA:391,38,0,0 +BRDA:391,38,1,6 +BRDA:392,39,0,4 +BRDA:392,39,1,2 +BRDA:398,40,0,0 +BRDA:398,40,1,2 +BRDA:419,41,0,0 +BRDA:419,41,1,2 +BRDA:471,42,0,3 +BRDA:471,42,1,3 +BRDA:477,43,0,3 +BRDA:477,43,1,0 +BRDA:490,44,0,1 +BRDA:490,44,1,2 +BRDA:492,45,0,2 +BRDA:492,45,1,0 +BRDA:556,46,0,2 +BRDA:556,46,1,1 +BRDA:576,47,0,0 +BRDA:576,47,1,2 +BRDA:600,48,0,0 +BRDA:600,48,1,2 +BRDA:606,49,0,4 +BRDA:606,49,1,8 +BRDA:608,50,0,0 +BRDA:608,50,1,2 +BRDA:640,51,0,8 +BRDA:640,51,1,8 +BRF:104 +BRH:62 end_of_record TN: SF:app\scripts\game-scraper.js FN:23,(anonymous_0) -FN:75,getOverview -FN:90,getMainPostStructuredText -FN:105,getGameAuthor -FN:127,parseConversationPage -FN:154,getGamePreviewSource -FN:173,getGameTitle -FN:192,getGameTags -FN:211,parsePrefixes -FN:238,getGameDownloadLink -FN:287,extractGameHostingData +FN:79,getOverview +FN:94,getMainPostStructuredText +FN:112,getGameAuthor +FN:136,parseConversationPage +FN:162,getGamePreviewSource +FN:184,getGameTitle +FN:205,getGameTags +FN:227,parsePrefixes +FN:256,getGameDownloadLink +FN:323,extractGameHostingData FNF:11 FNH:11 FNDA:4,(anonymous_0) @@ -440,103 +449,104 @@ DA:53,4 DA:54,4 DA:55,4 DA:56,4 -DA:57,4 -DA:58,4 DA:59,4 -DA:61,4 DA:62,4 DA:63,4 -DA:78,4 -DA:79,2 -DA:80,4 -DA:92,4 -DA:95,4 +DA:65,4 +DA:66,4 +DA:67,4 +DA:82,4 +DA:83,2 +DA:84,4 DA:96,4 -DA:107,4 -DA:110,4 -DA:113,4 -DA:116,4 -DA:117,4 -DA:128,4 -DA:131,4 -DA:132,4 -DA:134,838 -DA:137,228 -DA:138,228 -DA:139,228 -DA:142,228 -DA:145,4 -DA:155,4 -DA:164,4 +DA:99,4 +DA:103,4 +DA:114,4 +DA:119,4 +DA:122,4 +DA:125,4 +DA:126,4 +DA:137,4 +DA:140,4 +DA:141,4 +DA:142,838 +DA:145,228 +DA:146,228 +DA:147,228 +DA:150,228 +DA:153,4 +DA:163,4 DA:175,4 -DA:178,4 -DA:181,4 -DA:182,4 -DA:183,4 -DA:193,4 +DA:186,4 +DA:191,4 +DA:194,4 +DA:195,4 DA:196,4 -DA:197,28 -DA:198,28 -DA:200,4 -DA:212,4 -DA:215,4 +DA:206,4 +DA:209,4 +DA:210,28 +DA:214,28 DA:216,4 -DA:217,8 -DA:220,8 -DA:223,8 -DA:224,8 -DA:227,4 -DA:229,4 -DA:240,4 -DA:243,4 -DA:246,4 +DA:228,4 +DA:231,4 +DA:232,4 +DA:233,8 +DA:239,8 +DA:242,8 +DA:243,8 +DA:245,4 DA:247,4 -DA:252,4 -DA:253,4 -DA:254,16 -DA:255,14 -DA:258,14 -DA:259,86 -DA:260,2 -DA:261,2 -DA:265,4 -DA:268,2 -DA:271,2 -DA:272,2 -DA:273,8 -DA:274,8 -DA:276,2 -DA:288,8 -DA:289,8 -DA:290,8 -DA:291,8 -DA:292,8 -DA:293,8 -DA:294,8 -DA:297,8 -DA:298,8 -DA:299,6 -DA:302,6 -DA:307,6 -DA:311,6 -DA:313,6 -DA:314,6 -DA:315,6 -DA:317,30 -DA:320,24 -DA:321,24 -DA:322,24 -DA:325,24 -DA:326,24 -DA:327,24 -DA:329,24 -DA:330,24 -DA:331,24 -DA:332,24 -DA:333,24 -DA:335,24 -DA:338,6 -LF:129 +DA:258,4 +DA:269,4 +DA:272,4 +DA:273,4 +DA:278,4 +DA:279,4 +DA:280,16 +DA:281,14 +DA:289,14 +DA:290,86 +DA:291,2 +DA:292,2 +DA:296,4 +DA:299,2 +DA:307,2 +DA:308,2 +DA:309,8 +DA:310,8 +DA:312,2 +DA:324,8 +DA:325,8 +DA:326,8 +DA:327,8 +DA:328,8 +DA:329,8 +DA:330,8 +DA:333,8 +DA:334,8 +DA:335,6 +DA:339,6 +DA:342,6 +DA:343,0 +DA:346,6 +DA:348,6 +DA:349,6 +DA:350,6 +DA:352,30 +DA:355,24 +DA:356,24 +DA:357,24 +DA:360,24 +DA:361,24 +DA:362,24 +DA:364,24 +DA:365,24 +DA:366,24 +DA:367,24 +DA:368,24 +DA:370,24 +DA:373,6 +LF:130 LH:129 BRDA:24,0,0,0 BRDA:24,0,1,4 @@ -546,40 +556,40 @@ BRDA:29,2,0,0 BRDA:29,2,1,4 BRDA:56,3,0,2 BRDA:56,3,1,2 -BRDA:57,4,0,2 -BRDA:57,4,1,2 -BRDA:62,5,0,0 -BRDA:62,5,1,4 -BRDA:78,6,0,2 -BRDA:78,6,1,2 -BRDA:134,7,0,610 -BRDA:134,7,1,228 -BRDA:142,8,0,124 -BRDA:142,8,1,104 -BRDA:164,9,0,3 -BRDA:164,9,1,1 -BRDA:223,10,0,0 -BRDA:223,10,1,8 -BRDA:224,11,0,4 -BRDA:224,11,1,4 -BRDA:227,12,0,2 -BRDA:227,12,1,2 -BRDA:247,13,0,0 -BRDA:247,13,1,4 -BRDA:254,14,0,2 -BRDA:254,14,1,14 -BRDA:259,15,0,2 -BRDA:259,15,1,84 -BRDA:265,16,0,2 -BRDA:265,16,1,2 -BRDA:298,17,0,2 -BRDA:298,17,1,6 -BRDA:307,18,0,0 -BRDA:307,18,1,6 -BRDA:317,19,0,6 -BRDA:317,19,1,24 -BRDA:329,20,0,24 -BRDA:329,20,1,0 +BRDA:59,4,0,2 +BRDA:59,4,1,2 +BRDA:66,5,0,0 +BRDA:66,5,1,4 +BRDA:82,6,0,2 +BRDA:82,6,1,2 +BRDA:142,7,0,610 +BRDA:142,7,1,228 +BRDA:150,8,0,124 +BRDA:150,8,1,104 +BRDA:175,9,0,2 +BRDA:175,9,1,2 +BRDA:242,10,0,0 +BRDA:242,10,1,8 +BRDA:243,11,0,4 +BRDA:243,11,1,4 +BRDA:245,12,0,2 +BRDA:245,12,1,2 +BRDA:273,13,0,0 +BRDA:273,13,1,4 +BRDA:280,14,0,2 +BRDA:280,14,1,14 +BRDA:290,15,0,2 +BRDA:290,15,1,84 +BRDA:296,16,0,2 +BRDA:296,16,1,2 +BRDA:334,17,0,2 +BRDA:334,17,1,6 +BRDA:342,18,0,0 +BRDA:342,18,1,6 +BRDA:352,19,0,6 +BRDA:352,19,1,24 +BRDA:364,20,0,24 +BRDA:364,20,1,0 BRF:42 BRH:34 end_of_record @@ -590,27 +600,27 @@ FN:31,(anonymous_1) FN:37,(anonymous_2) FNF:3 FNH:3 -FNDA:12,(anonymous_0) -FNDA:17,(anonymous_1) -FNDA:1962,(anonymous_2) +FNDA:13,(anonymous_0) +FNDA:18,(anonymous_1) +FNDA:2117,(anonymous_2) DA:4,1 DA:7,1 DA:15,1 -DA:17,12 -DA:21,12 +DA:17,13 +DA:21,13 DA:31,1 -DA:33,17 -DA:36,17 -DA:37,17 -DA:38,1962 -DA:41,1247 -DA:45,17 -DA:47,17 -DA:49,17 +DA:33,18 +DA:36,18 +DA:37,18 +DA:38,2117 +DA:41,1331 +DA:45,18 +DA:47,18 +DA:49,18 LF:14 LH:14 -BRDA:38,0,0,715 -BRDA:38,0,1,1247 +BRDA:38,0,0,786 +BRDA:38,0,1,1331 BRF:2 BRH:2 end_of_record @@ -635,22 +645,22 @@ FN:149,(anonymous_15) FN:153,(anonymous_16) FNF:17 FNH:14 -FNDA:56,(anonymous_0) +FNDA:58,(anonymous_0) FNDA:31,(anonymous_1) FNDA:21,(anonymous_2) FNDA:8,(anonymous_3) FNDA:8,(anonymous_4) FNDA:0,(anonymous_5) -FNDA:21,(anonymous_6) +FNDA:23,(anonymous_6) FNDA:3,(anonymous_7) FNDA:3,(anonymous_8) -FNDA:23,(anonymous_9) -FNDA:12,(anonymous_10) +FNDA:30,(anonymous_9) +FNDA:13,(anonymous_10) FNDA:3,(anonymous_11) FNDA:3,(anonymous_12) FNDA:0,(anonymous_13) FNDA:0,(anonymous_14) -FNDA:16,(anonymous_15) +FNDA:15,(anonymous_15) FNDA:1,(anonymous_16) DA:4,1 DA:15,1 @@ -661,22 +671,22 @@ DA:35,1 DA:40,1 DA:45,1 DA:51,1 -DA:60,56 +DA:60,58 DA:67,31 DA:74,21 DA:81,8 DA:88,8 DA:95,0 -DA:102,21 +DA:102,23 DA:109,3 DA:116,3 -DA:124,23 -DA:130,12 +DA:124,30 +DA:130,13 DA:134,3 DA:138,3 DA:142,0 DA:146,0 -DA:150,16 +DA:150,15 DA:154,1 DA:159,1 LF:27 @@ -686,25 +696,25 @@ BRH:0 end_of_record TN: SF:app\scripts\urls-helper.js -FN:12,(anonymous_0) -FN:23,(anonymous_1) +FN:14,(anonymous_0) +FN:25,(anonymous_1) FNF:2 FNH:2 FNDA:4,(anonymous_0) FNDA:29,(anonymous_1) -DA:4,1 -DA:12,1 -DA:13,4 -DA:14,0 -DA:23,1 -DA:24,29 -DA:25,29 -DA:26,28 -DA:28,1 +DA:6,1 +DA:14,1 +DA:15,4 +DA:16,0 +DA:25,1 +DA:26,29 +DA:27,29 +DA:28,27 +DA:30,2 LF:9 LH:8 -BRDA:13,0,0,4 -BRDA:13,0,1,0 +BRDA:15,0,0,4 +BRDA:15,0,1,0 BRF:2 BRH:1 end_of_record @@ -792,7 +802,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:app\scripts\costants\css-selectors.js +SF:app\scripts\constants\css-selectors.js FNF:0 FNH:0 DA:1,1 @@ -802,7 +812,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:app\scripts\costants\urls.js +SF:app\scripts\constants\urls.js FNF:0 FNH:0 DA:1,1 diff --git a/package-lock.json b/package-lock.json index ccaab6f..b2f0c3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "f95api", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -555,6 +555,11 @@ "which": "^2.0.1" } }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + }, "debug": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", @@ -714,6 +719,11 @@ "pend": "~1.2.0" } }, + "fetch-blob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.1.tgz", + "integrity": "sha512-Uf+gxPCe1hTOFXwkxYyckn8iUSk6CFXGy5VENZKifovUTZC9eUODWSBhOBS7zICGrAetKzdwLMr85KhIcePMAQ==" + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -945,11 +955,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ip-regex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.2.0.tgz", - "integrity": "sha512-n5cDDeTWWRwK1EBoWwRti+8nP4NbytBBY0pldmnIkq6Z55KNFmWofh4rl9dPZpj+U/nVq7gweR3ylrvMt4YZ5A==" - }, "is-arguments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", @@ -1065,12 +1070,9 @@ "dev": true }, "is-url-superb": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-3.0.0.tgz", - "integrity": "sha512-3faQP+wHCGDQT1qReM5zCPx2mxoal6DzbzquFlCYJLWyy4WPTved33ea2xFbX37z4NoriEwZGIYhFtx8RUB5wQ==", - "requires": { - "url-regex": "^5.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==" }, "is-windows": { "version": "1.0.2", @@ -1236,18 +1238,13 @@ "minimist": "^1.2.5" } }, - "ky": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.19.1.tgz", - "integrity": "sha512-ZwciYrfaWpDI72U2HAruuGYGFW3PCfGNdWWSANGGssg9BGm4rRJ9s/sApiiRpj+8Y245/hlZW9c60zudLr6iwA==" - }, "ky-universal": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.5.0.tgz", - "integrity": "sha512-O+0wjCua5i45lYBZrBy8TyRDRVodtsmzVC/MlE5FN7ZMFu/Icz7ekbZ85sdFw0F/JwGhXZTaKjXq9IgUGwGedQ==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.8.2.tgz", + "integrity": "sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ==", "requires": { "abort-controller": "^3.0.0", - "node-fetch": "^2.6.0" + "node-fetch": "3.0.0-beta.9" } }, "locate-path": { @@ -1600,9 +1597,13 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "3.0.0-beta.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz", + "integrity": "sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==", + "requires": { + "data-uri-to-buffer": "^3.0.1", + "fetch-blob": "^2.1.1" + } }, "node-html-parser": { "version": "1.2.21", @@ -2103,11 +2104,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "tlds": { - "version": "1.210.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.210.0.tgz", - "integrity": "sha512-5bzt4JE+NlnwiKpVW9yzWxuc44m+t2opmPG+eSKDp5V5qdyGvjMngKgBb5ZK8GiheQMbRTCKpRwFJeIEO6pV7Q==" - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -2153,25 +2149,6 @@ "through": "^2.3.8" } }, - "url-exist": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/url-exist/-/url-exist-2.0.2.tgz", - "integrity": "sha512-JqLjYS8pU9xZtY3ro4c54CztoP5R8qRyMlg2Cxr4M9YD1NCe57MOsZHF1rP3y+qQcc7cqiZBBd4Cu5oehcJRlQ==", - "requires": { - "is-url-superb": "^3.0.0", - "ky": "^0.19.0", - "ky-universal": "^0.5.0" - } - }, - "url-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-5.0.0.tgz", - "integrity": "sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g==", - "requires": { - "ip-regex": "^4.1.0", - "tlds": "^1.203.0" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 5798d91..ef6b468 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,10 @@ "node": ">=10.0" }, "dependencies": { + "is-url-superb": "^4.0.0", + "ky-universal": "^0.8.2", "node-html-parser": "^1.2.21", - "puppeteer": "^5.3.1", - "url-exist": "^2.0.2" + "puppeteer": "^5.3.1" }, "devDependencies": { "chai": "^4.2.0",