From 81c780612146793506f81394ead6acf7da55f145 Mon Sep 17 00:00:00 2001 From: Ovyerus Date: Wed, 23 Oct 2019 18:49:21 +1100 Subject: [PATCH 1/4] [constants] Update pattern for rating of Pixiv --- lib/constants.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/constants.ts b/lib/constants.ts index 0e9e8232..602c7883 100644 --- a/lib/constants.ts +++ b/lib/constants.ts @@ -37,13 +37,8 @@ const BASE_SITE_LIST: SiteList = { backupURL: data => `https://www.pixiv.net/member_illust.php?mode=medium&illust_id=${data.data.pixiv_id}`, getRating(data: string) { - const match = data.match( - /

(.*?)<\/p>/i - ); - - if (!match) return RATINGS[1]; - - return match[1].toLowerCase().includes('r-18') ? RATINGS[3] : RATINGS[1]; + const isR18 = /r18/gi.test(data); + return isR18 ? RATINGS[3] : RATINGS[1]; } }, '8': { From 0bc9fd2fd5ad4535572ca39aa474f2bf41730a82 Mon Sep 17 00:00:00 2001 From: Ovyerus Date: Thu, 24 Oct 2019 19:05:06 +1100 Subject: [PATCH 2/4] [sagiri] Fix ratings always being UNKNOWN This is why we should've had proper tests before the port. --- lib/sagiri.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/sagiri.ts b/lib/sagiri.ts index 8d9ee88c..6b3bfbf0 100644 --- a/lib/sagiri.ts +++ b/lib/sagiri.ts @@ -189,10 +189,12 @@ export default class Sagiri { }); if (this.getRating) - returnData.map(async dataSet => ({ - ...dataSet, - rating: await this.resolveRating(dataSet.url) - })); + return Promise.all( + returnData.map(async dataSet => ({ + ...dataSet, + rating: await this.resolveRating(dataSet.url) + })) + ); return returnData; } From 410f6c62e6c34a08a4cad664deadad0eeb2176ff Mon Sep 17 00:00:00 2001 From: Ovyerus Date: Thu, 24 Oct 2019 19:26:57 +1100 Subject: [PATCH 3/4] Rewrite tests to actually test functionality Utilises `nock` in order to mock HTTP responses with preset data so we get a deterministic output and can actually check results. --- .travis.yml | 11 +- package.json | 8 +- tests/file.test.ts | 20 -- tests/fixtures/.env.sample | 1 - tests/fixtures/data.ts | 360 +++++++++++++++++++ tests/fixtures/expectations.ts | 331 ++++++++++++++++++ tests/fixtures/remoteData.ts | 517 ++++++++++++++++++++++++++++ tests/index.spec.ts | 212 ++++++++++++ tests/jest.setup.ts | 10 - tests/url.test.ts | 17 - tests/withOptions.test.ts | 22 -- yarn.lock | 607 ++++++++++++++++++--------------- 12 files changed, 1763 insertions(+), 353 deletions(-) delete mode 100644 tests/file.test.ts delete mode 100644 tests/fixtures/.env.sample create mode 100644 tests/fixtures/data.ts create mode 100644 tests/fixtures/expectations.ts create mode 100644 tests/fixtures/remoteData.ts create mode 100644 tests/index.spec.ts delete mode 100644 tests/jest.setup.ts delete mode 100644 tests/url.test.ts delete mode 100644 tests/withOptions.test.ts diff --git a/.travis.yml b/.travis.yml index bd101cf1..ee30f133 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,11 @@ - sudo: false dist: bionic language: node_js cache: yarn node_js: - - "10" - - "12" + - '10' + - '12' before_script: - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter @@ -14,10 +13,10 @@ before_script: - ./cc-test-reporter before-build install: - - yarn + - yarn script: - - yarn lint && yarn test + - yarn lint && yarn coverage after_script: - - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT \ No newline at end of file + - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT diff --git a/package.json b/package.json index 829c0f30..e8809adb 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "url": "https://github.com/ClarityCafe/issues" }, "scripts": { - "test": "jest --coverage", + "test": "jest", + "coverage": "jest --coverage", "lint": "eslint . --ext .js,.jsx,.ts,.tsx --fix", "prebuild": "yarn lint && yarn test", "build": "tsc", @@ -50,11 +51,11 @@ "devDependencies": { "@types/dotenv": "6.1.1", "@types/jest": "24.0.19", + "@types/lodash.ismatch": "^4.4.6", "@types/node": "12.11.1", "@types/node-fetch": "2.5.2", "@typescript-eslint/eslint-plugin": "2.4.0", "@typescript-eslint/parser": "2.4.0", - "dotenv": "8.2.0", "eslint": "6.5.1", "eslint-config-clarity": "0.2.11", "eslint-plugin-import": "2.18.2", @@ -64,6 +65,9 @@ "eslint-plugin-sift": "0.3.0", "jest": "24.9.0", "jsdoc-to-markdown": "5.0.2", + "lodash.ismatch": "4.4.0", + "nock": "11.4.0", + "parse-multipart": "^1.0.4", "prettier": "1.18.2", "replace": "1.1.1", "ts-jest": "24.1.0", diff --git a/tests/file.test.ts b/tests/file.test.ts deleted file mode 100644 index c09e3a59..00000000 --- a/tests/file.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import path from 'path'; - -import Sagiri from '../lib'; - -describe('Sagiri File test', () => { - let sagiri: Sagiri; - beforeAll(() => { - const token = process.env.SAUCENAO_TOKEN as string; - - sagiri = new Sagiri(token, { testMode: true }); - }); - - test('should get source', async () => { - const imagePath = path.join(__dirname, 'fixtures', 'image.png'); - const results = await sagiri.getSauce(imagePath); - - expect(results).toBeDefined(); - expect(results.length).toBeGreaterThanOrEqual(1); - }); -}); diff --git a/tests/fixtures/.env.sample b/tests/fixtures/.env.sample deleted file mode 100644 index 6f812824..00000000 --- a/tests/fixtures/.env.sample +++ /dev/null @@ -1 +0,0 @@ -SAUCENAO_TOKEN= \ No newline at end of file diff --git a/tests/fixtures/data.ts b/tests/fixtures/data.ts new file mode 100644 index 00000000..cb8247ae --- /dev/null +++ b/tests/fixtures/data.ts @@ -0,0 +1,360 @@ +/* eslint-disable @typescript-eslint/camelcase */ + +// SauceNao output of https://owo.whats-th.is/6MtFNmm.png (upload of image.png) +export const normalData = { + header: { + user_id: '14555', + account_type: '1', + short_limit: '6', + long_limit: '200', + long_remaining: 196, + short_remaining: 5, + status: 0, + results_requested: 5, + index: { + '0': { status: 0, parent_id: 0, id: 0, results: 5 }, + '2': { status: 0, parent_id: 2, id: 2, results: 5 }, + '3': { status: 0, parent_id: 3, id: 3, results: 5 }, + '4': { status: 0, parent_id: 4, id: 4, results: 5 }, + '5': { status: 0, parent_id: 5, id: 5, results: 5 }, + '51': { status: 0, parent_id: 5, id: 51, results: 5 }, + '52': { status: 0, parent_id: 5, id: 52, results: 5 }, + '53': { status: 0, parent_id: 5, id: 53, results: 5 }, + '6': { status: 0, parent_id: 6, id: 6, results: 5 }, + '8': { status: 0, parent_id: 8, id: 8, results: 5 }, + '9': { status: 0, parent_id: 9, id: 9, results: 40 }, + '10': { status: 0, parent_id: 10, id: 10, results: 5 }, + '11': { status: 0, parent_id: 11, id: 11, results: 5 }, + '12': { status: 1, parent_id: 9, id: 12 }, + '16': { status: 0, parent_id: 16, id: 16, results: 5 }, + '18': { status: 0, parent_id: 18, id: 18, results: 5 }, + '19': { status: 0, parent_id: 19, id: 19, results: 2 }, + '20': { status: 0, parent_id: 20, id: 20, results: 5 }, + '21': { status: 0, parent_id: 21, id: 21, results: 5 }, + '211': { status: 0, parent_id: 21, id: 211, results: 5 }, + '22': { status: 0, parent_id: 22, id: 22, results: 5 }, + '23': { status: 0, parent_id: 23, id: 23, results: 5 }, + '24': { status: 0, parent_id: 24, id: 24, results: 5 }, + '25': { status: 1, parent_id: 9, id: 25 }, + '26': { status: 1, parent_id: 9, id: 26 }, + '27': { status: 1, parent_id: 9, id: 27 }, + '28': { status: 1, parent_id: 9, id: 28 }, + '29': { status: 1, parent_id: 9, id: 29 }, + '30': { status: 1, parent_id: 9, id: 30 }, + '31': { status: 0, parent_id: 31, id: 31, results: 5 }, + '32': { status: 0, parent_id: 32, id: 32, results: 5 }, + '33': { status: 0, parent_id: 33, id: 33, results: 5 }, + '34': { status: 0, parent_id: 34, id: 34, results: 5 }, + '35': { status: 0, parent_id: 35, id: 35, results: 5 }, + '36': { status: 0, parent_id: 36, id: 36, results: 5 }, + '37': { status: 0, parent_id: 37, id: 37, results: 5 } + }, + search_depth: '128', + minimum_similarity: 46.15, + query_image_display: 'userdata/R8YKDaCcl.png.png', + query_image: 'R8YKDaCcl.png', + results_returned: 5 + }, + results: [ + { + header: { + similarity: '94.52', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/4181/41817184_m.jpg?auth=EZ-kzUSPWzobHq0lx8bRMA&exp=1571293428', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 41817184_m.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=41817184' + ], + title: '準備を!', + pixiv_id: 41817184, + member_name: 'Gz', + member_id: 5508193 + } + }, + { + header: { + similarity: '91.6', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/6023/60231445_p0_master1200.jpg?auth=izM6Chn8mNB9eOVkuP-hww&exp=1571293428', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 60231445_p0_master1200.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60231445' + ], + title: 'no title', + pixiv_id: 60231445, + member_name: 'miguelonn', + member_id: 21353907 + } + }, + { + header: { + similarity: '95.28', + thumbnail: 'https://img3.saucenao.com/dA/50781/507811345.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 507811345.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/507811345'], + title: 'A cute pair of glasses', + da_id: 507811345, + author_name: 'Ninjacooncat', + author_url: 'http://ninjacooncat.deviantart.com' + } + }, + { + header: { + similarity: '95.11', + thumbnail: 'https://img3.saucenao.com/dA/65328/653284939.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 653284939.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/653284939'], + title: 'Look at what my friend drew me!', + da_id: 653284939, + author_name: 'XxCloverwindyxX', + author_url: 'http://xxcloverwindyxx.deviantart.com' + } + }, + { + header: { + similarity: '95.01', + thumbnail: 'https://img3.saucenao.com/dA/60579/605799146.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 605799146.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/605799146'], + title: 'Neighbors TG', + da_id: 605799146, + author_name: 'lolmastersadow', + author_url: 'http://lolmastersadow.deviantart.com' + } + } + ] +}; + +// SauceNao output for http://saucenao.com/images/static/banner.gif with dbmask of 32 (index 5) +export const regularMaskData = { + header: { + user_id: '14555', + account_type: '1', + short_limit: '6', + long_limit: '200', + long_remaining: 192, + short_remaining: 3, + status: 0, + results_requested: 5, + index: { + '5': { status: 0, parent_id: 5, id: 5, results: 1 }, + '51': { status: 0, parent_id: 5, id: 51, results: 1 }, + '52': { status: 0, parent_id: 5, id: 52, results: 1 }, + '53': { status: 0, parent_id: 5, id: 53, results: 1 } + }, + search_depth: '128', + minimum_similarity: 55, + query_image_display: 'userdata/lq0TTvvBi.gif.png', + query_image: 'lq0TTvvBi.gif', + results_returned: 3 + }, + results: [ + { + header: { + similarity: '23.50', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/493/4933944_s.jpg?auth=Up9BDClLy7R-a_jVr10ZpA&exp=1571746128', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 4933944_s.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=4933944' + ], + title: '妖キャラをカリスマ化してみた。', + pixiv_id: 4933944, + member_name: '佳虫', + member_id: 724886 + } + }, + { + header: { + similarity: '21.15', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/6070/manga/60706368_p2.jpg?auth=fit_Th-DmLczFvl6SdK53A&exp=1571746128', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 60706368_p2.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60706368' + ], + title: 'MHAまとめ9', + pixiv_id: 60706368, + member_name: 'まゆ', + member_id: 361946 + } + }, + { + header: { + similarity: '19.13', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/7567/75673655_p0_master1200.jpg?auth=P0-k9fSmN-76d95T42l5bw&exp=1571746128', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 75673655_p0_master1200.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=75673655' + ], + title: 'ポーカーフェイク', + pixiv_id: 75673655, + member_name: '桜夜(サヨ)', + member_id: 26124403 + } + } + ] +}; + +// SauceNao output for http://saucenao.com/images/static/banner.gif with dbmaski of 32 (index 5) +export const inverseMaskData = { + header: { + user_id: '14555', + account_type: '1', + short_limit: '6', + long_limit: '200', + long_remaining: 194, + short_remaining: 5, + status: 0, + results_requested: 5, + index: { + '0': { status: 0, parent_id: 0, id: 0, results: 1 }, + '2': { status: 0, parent_id: 2, id: 2, results: 1 }, + '3': { status: 0, parent_id: 3, id: 3, results: 1 }, + '4': { status: 0, parent_id: 4, id: 4, results: 1 }, + '6': { status: 0, parent_id: 6, id: 6, results: 1 }, + '8': { status: 0, parent_id: 8, id: 8, results: 1 }, + '9': { status: 0, parent_id: 9, id: 9, results: 8 }, + '10': { status: 0, parent_id: 10, id: 10, results: 1 }, + '11': { status: 0, parent_id: 11, id: 11, results: 1 }, + '12': { status: 1, parent_id: 9, id: 12 }, + '15': { status: 0, parent_id: 15, id: 15, results: 1 }, + '16': { status: 0, parent_id: 16, id: 16, results: 1 }, + '18': { status: 0, parent_id: 18, id: 18, results: 1 }, + '19': { status: 0, parent_id: 19, id: 19, results: 1 }, + '20': { status: 0, parent_id: 20, id: 20, results: 1 }, + '21': { status: 0, parent_id: 21, id: 21, results: 1 }, + '211': { status: 0, parent_id: 21, id: 211, results: 1 }, + '22': { status: 0, parent_id: 22, id: 22, results: 1 }, + '23': { status: 0, parent_id: 23, id: 23, results: 1 }, + '24': { status: 0, parent_id: 24, id: 24, results: 1 }, + '25': { status: 1, parent_id: 9, id: 25 }, + '26': { status: 1, parent_id: 9, id: 26 }, + '27': { status: 1, parent_id: 9, id: 27 }, + '28': { status: 1, parent_id: 9, id: 28 }, + '29': { status: 1, parent_id: 9, id: 29 }, + '30': { status: 1, parent_id: 9, id: 30 }, + '31': { status: 0, parent_id: 31, id: 31, results: 1 }, + '32': { status: 0, parent_id: 32, id: 32, results: 1 }, + '33': { status: 0, parent_id: 33, id: 33, results: 1 }, + '34': { status: 0, parent_id: 34, id: 34, results: 1 }, + '35': { status: 0, parent_id: 35, id: 35, results: 1 }, + '36': { status: 0, parent_id: 36, id: 36, results: 1 }, + '37': { status: 0, parent_id: 37, id: 37, results: 1 } + }, + search_depth: '128', + minimum_similarity: 24.6, + query_image_display: 'userdata/NWQqfFbzx.gif.png', + query_image: 'NWQqfFbzx.gif', + results_returned: 5 + }, + results: [ + { + header: { + similarity: '23.60', + thumbnail: 'https://img3.saucenao.com/dA/51571/515715132.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 515715132.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/515715132'], + title: 'Koshitantan + video link+stagedl', + da_id: 515715132, + author_name: 'SliverRose0916', + author_url: 'http://sliverrose0916.deviantart.com' + } + }, + { + header: { + similarity: '22.06', + thumbnail: + 'https://thumb1.shutterstock.com/thumb_large/862396/157296953/stock-photo-bows-seamless-background-157296953.jpg', + index_id: 15, + index_name: 'Index #15: Shutterstock - 157296953_t.jpg' + }, + data: { + shutterstock_id: 157296953, + contributor_id: '862396', + date: '2013-10-07' + } + }, + { + header: { + similarity: '21.48', + thumbnail: + 'https://img1.saucenao.com/res/pixiv_historical/383/3836606_s.jpg?auth=onLJgrY36duFEf7jkGVWOA&exp=1571746122', + index_id: 6, + index_name: 'Index #6: Pixiv Historical - 3836606_s.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=3836606' + ], + title: '【pixiv袁紹軍】', + pixiv_id: 3836606, + member_name: '白菜', + member_id: 58228 + } + }, + { + header: { + similarity: '21.0', + thumbnail: + 'https://img1.saucenao.com/res/bcy/illust/69/manga/694527_p9-48.jpg?auth=NQw6JD9RNXuOqbRflxXa4A&exp=1571746122', + index_id: 31, + index_name: 'Index #31: bcy.net Illust - 694527_p9-48.jpg' + }, + data: { + ext_urls: ['https://bcy.net/illust/detail/55206'], + title: '|*美食方言*|', + bcy_id: 694527, + member_name: '第四存档点', + member_id: 1767173, + member_link_id: 55206, + bcy_type: 'illust' + } + }, + { + header: { + similarity: '19.58', + thumbnail: + 'https://img1.saucenao.com/res/pawoo/468/46871064_1.jpg?auth=5I_e3su5TWkQexCx2JX46w&exp=1571746122', + index_id: 35, + index_name: 'Index #35: Pawoo.net - 46871064_1.jpg' + }, + data: { + ext_urls: ['https://pawoo.net/@nez_ebi'], + created_at: '2017-10-11T12:29:20.000Z', + pawoo_id: 46871064, + pawoo_user_acct: 'nez_ebi', + pawoo_user_username: 'nez_ebi', + pawoo_user_display_name: '🦐ねづ🦐' + } + } + ] +}; diff --git a/tests/fixtures/expectations.ts b/tests/fixtures/expectations.ts new file mode 100644 index 00000000..272fd77f --- /dev/null +++ b/tests/fixtures/expectations.ts @@ -0,0 +1,331 @@ +/* eslint-disable @typescript-eslint/camelcase */ + +export const normalExpectations = [ + { + url: 'https://deviantart.com/view/507811345', + site: 'deviantArt', + index: '34', + similarity: 95.28, + thumbnail: 'https://img3.saucenao.com/dA/50781/507811345.jpg', + authorName: 'Ninjacooncat', + authorUrl: 'http://ninjacooncat.deviantart.com', + rating: 'UNKNOWN', + original: { + header: { + similarity: '95.28', + thumbnail: 'https://img3.saucenao.com/dA/50781/507811345.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 507811345.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/507811345'], + title: 'A cute pair of glasses', + da_id: 507811345, + author_name: 'Ninjacooncat', + author_url: 'http://ninjacooncat.deviantart.com' + } + } + }, + { + url: 'https://deviantart.com/view/653284939', + site: 'deviantArt', + index: '34', + similarity: 95.11, + thumbnail: 'https://img3.saucenao.com/dA/65328/653284939.jpg', + authorName: 'XxCloverwindyxX', + authorUrl: 'http://xxcloverwindyxx.deviantart.com', + rating: 'UNKNOWN', + original: { + header: { + similarity: '95.11', + thumbnail: 'https://img3.saucenao.com/dA/65328/653284939.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 653284939.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/653284939'], + title: 'Look at what my friend drew me!', + da_id: 653284939, + author_name: 'XxCloverwindyxX', + author_url: 'http://xxcloverwindyxx.deviantart.com' + } + } + }, + { + url: 'https://deviantart.com/view/605799146', + site: 'deviantArt', + index: '34', + similarity: 95.01, + thumbnail: 'https://img3.saucenao.com/dA/60579/605799146.jpg', + authorName: 'lolmastersadow', + authorUrl: 'http://lolmastersadow.deviantart.com', + rating: 'UNKNOWN', + original: { + header: { + similarity: '95.01', + thumbnail: 'https://img3.saucenao.com/dA/60579/605799146.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 605799146.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/605799146'], + title: 'Neighbors TG', + da_id: 605799146, + author_name: 'lolmastersadow', + author_url: 'http://lolmastersadow.deviantart.com' + } + } + }, + { + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=41817184', + site: 'Pixiv', + index: '5', + similarity: 94.52, + thumbnail: + 'https://img1.saucenao.com/res/pixiv/4181/41817184_m.jpg?auth=EZ-kzUSPWzobHq0lx8bRMA&exp=1571293428', + rating: 'UNKNOWN', + original: { + header: { + similarity: '94.52', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/4181/41817184_m.jpg?auth=EZ-kzUSPWzobHq0lx8bRMA&exp=1571293428', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 41817184_m.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=41817184' + ], + title: '準備を!', + pixiv_id: 41817184, + member_name: 'Gz', + member_id: 5508193 + } + } + }, + { + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60231445', + site: 'Pixiv', + index: '5', + similarity: 91.6, + thumbnail: + 'https://img1.saucenao.com/res/pixiv/6023/60231445_p0_master1200.jpg?auth=izM6Chn8mNB9eOVkuP-hww&exp=1571293428', + rating: 'UNKNOWN', + original: { + header: { + similarity: '91.6', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/6023/60231445_p0_master1200.jpg?auth=izM6Chn8mNB9eOVkuP-hww&exp=1571293428', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 60231445_p0_master1200.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60231445' + ], + title: 'no title', + pixiv_id: 60231445, + member_name: 'miguelonn', + member_id: 21353907 + } + } + } +]; + +export const regularMaskExpectations = [ + { + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=4933944', + site: 'Pixiv', + index: '5', + similarity: 23.5, + thumbnail: + 'https://img1.saucenao.com/res/pixiv/493/4933944_s.jpg?auth=Up9BDClLy7R-a_jVr10ZpA&exp=1571746128', + rating: 'UNKNOWN', + original: { + header: { + similarity: '23.50', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/493/4933944_s.jpg?auth=Up9BDClLy7R-a_jVr10ZpA&exp=1571746128', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 4933944_s.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=4933944' + ], + title: '妖キャラをカリスマ化してみた。', + pixiv_id: 4933944, + member_name: '佳虫', + member_id: 724886 + } + } + }, + { + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60706368', + site: 'Pixiv', + index: '5', + similarity: 21.15, + thumbnail: + 'https://img1.saucenao.com/res/pixiv/6070/manga/60706368_p2.jpg?auth=fit_Th-DmLczFvl6SdK53A&exp=1571746128', + rating: 'UNKNOWN', + original: { + header: { + similarity: '21.15', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/6070/manga/60706368_p2.jpg?auth=fit_Th-DmLczFvl6SdK53A&exp=1571746128', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 60706368_p2.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60706368' + ], + title: 'MHAまとめ9', + pixiv_id: 60706368, + member_name: 'まゆ', + member_id: 361946 + } + } + }, + { + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=75673655', + site: 'Pixiv', + index: '5', + similarity: 19.13, + thumbnail: + 'https://img1.saucenao.com/res/pixiv/7567/75673655_p0_master1200.jpg?auth=P0-k9fSmN-76d95T42l5bw&exp=1571746128', + rating: 'UNKNOWN', + original: { + header: { + similarity: '19.13', + thumbnail: + 'https://img1.saucenao.com/res/pixiv/7567/75673655_p0_master1200.jpg?auth=P0-k9fSmN-76d95T42l5bw&exp=1571746128', + index_id: 5, + index_name: 'Index #5: Pixiv Images - 75673655_p0_master1200.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=75673655' + ], + title: 'ポーカーフェイク', + pixiv_id: 75673655, + member_name: '桜夜(サヨ)', + member_id: 26124403 + } + } + } +]; + +export const inverseMaskExpectations = [ + { + url: 'https://deviantart.com/view/515715132', + site: 'deviantArt', + index: '34', + similarity: 23.6, + thumbnail: 'https://img3.saucenao.com/dA/51571/515715132.jpg', + authorName: 'SliverRose0916', + authorUrl: 'http://sliverrose0916.deviantart.com', + rating: 'UNKNOWN', + original: { + header: { + similarity: '23.60', + thumbnail: 'https://img3.saucenao.com/dA/51571/515715132.jpg', + index_id: 34, + index_name: 'Index #34: deviantArt - 515715132.jpg' + }, + data: { + ext_urls: ['https://deviantart.com/view/515715132'], + title: 'Koshitantan + video link+stagedl', + da_id: 515715132, + author_name: 'SliverRose0916', + author_url: 'http://sliverrose0916.deviantart.com' + } + } + }, + { + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=3836606', + site: 'Pixiv', + index: '6', + similarity: 21.48, + thumbnail: + 'https://img1.saucenao.com/res/pixiv_historical/383/3836606_s.jpg?auth=onLJgrY36duFEf7jkGVWOA&exp=1571746122', + rating: 'UNKNOWN', + original: { + header: { + similarity: '21.48', + thumbnail: + 'https://img1.saucenao.com/res/pixiv_historical/383/3836606_s.jpg?auth=onLJgrY36duFEf7jkGVWOA&exp=1571746122', + index_id: 6, + index_name: 'Index #6: Pixiv Historical - 3836606_s.jpg' + }, + data: { + ext_urls: [ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=3836606' + ], + title: '【pixiv袁紹軍】', + pixiv_id: 3836606, + member_name: '白菜', + member_id: 58228 + } + } + }, + { + url: 'https://bcy.net/illust/detail/55206', + site: 'bcy.net Illust', + index: '31', + similarity: 21, + thumbnail: + 'https://img1.saucenao.com/res/bcy/illust/69/manga/694527_p9-48.jpg?auth=NQw6JD9RNXuOqbRflxXa4A&exp=1571746122', + rating: 'UNKNOWN', + original: { + header: { + similarity: '21.0', + thumbnail: + 'https://img1.saucenao.com/res/bcy/illust/69/manga/694527_p9-48.jpg?auth=NQw6JD9RNXuOqbRflxXa4A&exp=1571746122', + index_id: 31, + index_name: 'Index #31: bcy.net Illust - 694527_p9-48.jpg' + }, + data: { + ext_urls: ['https://bcy.net/illust/detail/55206'], + title: '|*美食方言*|', + bcy_id: 694527, + member_name: '第四存档点', + member_id: 1767173, + member_link_id: 55206, + bcy_type: 'illust' + } + } + }, + { + url: 'https://pawoo.net/@nez_ebi', + site: 'Pawoo', + index: '35', + similarity: 19.58, + thumbnail: + 'https://img1.saucenao.com/res/pawoo/468/46871064_1.jpg?auth=5I_e3su5TWkQexCx2JX46w&exp=1571746122', + rating: 'UNKNOWN', + original: { + header: { + similarity: '19.58', + thumbnail: + 'https://img1.saucenao.com/res/pawoo/468/46871064_1.jpg?auth=5I_e3su5TWkQexCx2JX46w&exp=1571746122', + index_id: 35, + index_name: 'Index #35: Pawoo.net - 46871064_1.jpg' + }, + data: { + ext_urls: ['https://pawoo.net/@nez_ebi'], + created_at: '2017-10-11T12:29:20.000Z', + pawoo_id: 46871064, + pawoo_user_acct: 'nez_ebi', + pawoo_user_username: 'nez_ebi', + pawoo_user_display_name: '🦐ねづ🦐' + } + } + } +]; diff --git a/tests/fixtures/remoteData.ts b/tests/fixtures/remoteData.ts new file mode 100644 index 00000000..9a3beb4e --- /dev/null +++ b/tests/fixtures/remoteData.ts @@ -0,0 +1,517 @@ +const remoteData = { + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=41817184': ` + #Original µ║ûÕéÖÒéÆ´╝ü - YuzaÒü«ÒéñÒâ®Òé╣Òâê - pixiv +

`, + + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60231445': ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ÒéñÒâ®Òé╣ÒâêÒé│ÒâƒÒâÑÒâïÒé▒Òâ╝ÒéÀÒâºÒâ│ÒéÁÒâ╝ÒâôÒé╣[pixiv] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pixivÒü»2018Õ╣┤5µ£ê16µùÑõ╗ÿÒüæÒüºÒâùÒâ®ÒéñÒâÉÒéÀÒâ╝ÒâØÒâ¬ÒéÀÒâ╝ÒéƵö╣Õ«ÜÒüùÒü¥ÒüÖÒÇéÕåàÕ«╣Òüîõ╗ÑÕëìÒéêÒéèÒééµÿÄþó║Òü½Òü¬ÒéèÒÇüEU(µ¼ºÕÀ×ÚÇúÕÉê)Òü«µû░ÒüùÒüäÒâùÒâ®ÒéñÒâÉÒéÀÒâ╝õ┐ØÞ¡Àµ│òÒü½ÒééÕ»¥Õ┐£ÒüùÒü¥ÒüÖÒÇé

Þ®│þ┤░
+ +

pixivÒü©ÒéêÒüåÒüôÒüØ

pixiv(ÒâöÒé»ÒéÀÒâû)Òü»ÒÇüÒéñÒâ®Òé╣ÒâêÒâ╗µ╝½þö╗Òâ╗Õ░ÅÞ¬¼Òü«µèòþ¿┐ÒéäÚû▓ÞªºÒüîµÑ¢ÒüùÒéüÒéïÒÇîÒéñÒâ®Òé╣ÒâêÒé│ÒâƒÒâÑÒâïÒé▒Òâ╝ÒéÀÒâºÒâ│ÒéÁÒâ╝ÒâôÒé╣ÒÇìÒüºÒüÖÒÇéÕ░æÒüùÒüºÒééµ░ùÒü½Òü¬ÒüúÒüƒÒéèÒÇüÚØóþÖ¢ÒüØÒüåÒü¿µÇØÒüúÒüƒÒéëÒÇüÒü¥ÒüÜÒü»ÒâªÒâ╝ÒéÂÒâ╝þÖ╗Úî▓ÒéÆÒüùÒüªÒü┐ÒüªÒüÅÒüáÒüòÒüäÒÇé þÖ╗Úî▓ÒÇüÕê®þö¿Òü»þäíµûÖÒüºÒüÖÒÇéÒâóÒâÉÒéñÒâ½ÒüïÒéëÒüºÒééÒéóÒé»Òé╗Òé╣ÒüºÒüìÒü¥ÒüÖÒÇé
+ + + +
+
+
+
+
+
+ + + + +
+ + +
+

Òé¿Òâ®Òâ╝ÒüîþÖ║þöƒÒüùÒü¥ÒüùÒüƒ

+

Þ®▓Õ¢ôõ¢£ÕôüÒü»ÕëèÚÖñÒüòÒéîÒüƒÒüïÒÇüÕ¡ÿÕ£¿ÒüùÒü¬Òüäõ¢£ÕôüIDÒüºÒüÖÒÇé

+ + +

µê╗Òéï

+
+
+
+ +
+ + + + + + `, + + 'https://deviantart.com/view/507811345': ` + + + A cute pair of glasses by Ninjacooncat on DeviantArt + + + + + + + + + + + + + + + + + + + + + + +
Ninjacooncat's avatar
A cute pair of glasses
6 4 131 (1 Today)
By Ninjacooncat   |   Watch
Published: January 18, 2015
┬® 2015 - 2019 Ninjacooncat
Here is an anime girl with some darn cute glasses. Please enjoy!!!
Image size
2480x3507px 2.47 MB
Comments4
anonymous's avatar
Join the community to add your comment. Already a deviant? Sign In
xSweetSlayerx's avatar
xSweetSlayerxProfessional General Artist
This image was not made by this deviant.
The original art was made by Yuza.
www.pixiv.net/member_illust.ph…
saito602's avatar
saito602Hobbyist Traditional Artist
So cute >.<
Ninjacooncat's avatar
NinjacooncatHobbyist Digital Artist
Haha, thanks :3
+ + + + + + + + + + + + + + + `, + + 'https://deviantart.com/view/653284939': ` + + + Look at what my friend drew me! by XxCloverwindyxX on DeviantArt + + + + + + + + + + + + + + + + + + + + + + +
Recommended for you
XxCloverwindyxX's avatar
Look at what my friend drew me!
1 1 86 (2 Today)
By XxCloverwindyxX   |   Watch
Published: December 25, 2016
┬® 2016 - 2019 XxCloverwindyxX
I love this so much
It's legit a picture of what my personality looks like.
Huhuhu
This is Pure Loaf:happybounce: 
Image size
400x566px 38.74 KB
Recommended for you
Comments1
anonymous's avatar
Join the community to add your comment. Already a deviant? Sign In
faken820's avatar
woah, your friend is Yuza on pixiv? cause thats the original source of this picture 🤔🤔🤔
+ + + + + + + + + + + + + + + ` +}; + +export default remoteData; diff --git a/tests/index.spec.ts b/tests/index.spec.ts new file mode 100644 index 00000000..447b13a1 --- /dev/null +++ b/tests/index.spec.ts @@ -0,0 +1,212 @@ +/* eslint-disable @typescript-eslint/camelcase */ +import isMatch from 'lodash.ismatch'; +import nock from 'nock'; + +import { promises as fs } from 'fs'; + +import Sagiri from '../lib'; + +import { normalData, inverseMaskData, regularMaskData } from './fixtures/data'; +import { + normalExpectations, + inverseMaskExpectations, + regularMaskExpectations +} from './fixtures/expectations'; +import remoteData from './fixtures/remoteData'; + +const client = new Sagiri(''); +const testImage = `${__dirname}/fixtures/image.png`; +const ratingMatcher = expect.arrayContaining([ + expect.objectContaining({ + url: 'https://deviantart.com/view/507811345', + rating: 'QUESTIONABLE' + }), + expect.objectContaining({ + url: 'https://deviantart.com/view/653284939', + rating: 'QUESTIONABLE' + }), + expect.objectContaining({ + url: 'https://deviantart.com/view/605799146', + rating: 'UNKNOWN' + }), + expect.objectContaining({ + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=41817184', + rating: 'SAFE' + }), + expect.objectContaining({ + url: + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60231445', + rating: 'NSFW' + }) +]); + +/** Dumb 'n stupid "parser" for multipart/form-data bodies using regex and a bunch of string functions. + Serves to provide an object for matching correct options in Nock calls.*/ +const parseMultipart = (body: string): { [key: string]: any } => { + const _ = body.match(/^(-+[^\r\n]*)/)!; // Try to find the first multipart boundary for the form. + const boundary = _ ? _[0] : /^-+.*$/gm; // Fallback on generic dash regex if can't find first boundary for whatever reason. May break in some cases. + + return body + .split(boundary) // Split on boundaries + .slice(1, -1) // Remove blank elements at start and end + .map( + x => + x + .trimLeft() // Remove padding at start + .split('\r\n') // Split based on ending \r\n to get [name, blank, value] + .slice(0, -1) // Remove blank element at end + ) + .map(([name, ...r]) => [name.match(/name="(.*?)"/)![1], ...r.slice(1)]) // Extract field name from content disposition + .reduce((prev, [name, value]) => ({ ...prev, [name]: value }), {}); // Reduce array into object of names and values +}; + +/** Convenience function for "parsing" encoded multipart/form-data bodies that occur when sending a file object. + Doesn't end up returning the file field as that was too hard to properly do. */ +const parseEncodedMultipart = (body: string) => + parseMultipart(Buffer.from(body, 'hex').toString()); + +const mockApi = (...args: [nock.RequestBodyMatcher?, nock.Options?]) => + nock('https://saucenao.com').post('/search.php', ...args); + +describe('Sagiri#getSauce', () => { + test('gets source from url', async () => { + mockApi(b => { + const body = parseMultipart(b); + return isMatch(body, { + api_key: '', + output_type: '2', + numres: '5', + url: 'https://owo.whats-th.is/6MtFNmm.png' + }); + }).reply(200, normalData); + + const results = await client.getSauce( + 'https://owo.whats-th.is/6MtFNmm.png' + ); + + expect(results).toEqual(normalExpectations); + }); + + describe('gets source from file', () => { + test('path', async () => { + mockApi(b => { + const body = parseEncodedMultipart(b); + return isMatch(body, { + api_key: '', + output_type: '2', + numres: '5' + }); + }).reply(200, normalData); + + const results = await client.getSauce(testImage); + + expect(results).toEqual(normalExpectations); + }); + + test('buffer', async () => { + mockApi(b => { + const body = parseEncodedMultipart(b); + return isMatch(body, { + api_key: '', + output_type: '2', + numres: '5' + }); + }).reply(200, normalData); + + const results = await client.getSauce(await fs.readFile(testImage)); + + expect(results).toEqual(normalExpectations); + }); + }); + + describe('index masks', () => { + test('regular', async () => { + const maskClient = new Sagiri('', { dbMask: [5] }); + + mockApi(b => { + const body = parseMultipart(b); + return isMatch(body, { + api_key: '', + output_type: '2', + numres: '5', + dbmask: '32', + url: 'http://saucenao.com/images/static/banner.gif' + }); + }).reply(200, regularMaskData); + + const results = await maskClient.getSauce( + 'http://saucenao.com/images/static/banner.gif' + ); + + expect(results).toEqual(regularMaskExpectations); + }); + + test('inverse', async () => { + const maskClient = new Sagiri('', { dbMaskI: [5] }); + + mockApi(b => { + const body = parseMultipart(b); + return isMatch(body, { + api_key: '', + output_type: '2', + numres: '5', + dbmaski: '32', + url: 'http://saucenao.com/images/static/banner.gif' + }); + }).reply(200, inverseMaskData); + + const results = await maskClient.getSauce( + 'http://saucenao.com/images/static/banner.gif' + ); + + expect(results).toEqual(inverseMaskExpectations); + }); + }); + + describe('fetching ratings', () => { + test('gets the right ratings', async () => { + const ratingClient = new Sagiri('', { getRating: true }); + + // Mock SauceNao + mockApi(b => { + const body = parseMultipart(b); + return isMatch(body, { + api_key: '', + output_type: '2', + numres: '5', + url: 'https://owo.whats-th.is/6MtFNmm.png' + }); + }).reply(200, normalData); + + // Mock places to get data from + nock('https://www.pixiv.net') + .get('/member_illust.php?mode=medium&illust_id=41817184') + .reply( + 200, + remoteData[ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=41817184' + ] + ) + .get('/member_illust.php?mode=medium&illust_id=60231445') + .reply( + 200, + remoteData[ + 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60231445' + ] + ); + + nock('https://deviantart.com') + .get('/view/507811345') + .reply(200, remoteData['https://deviantart.com/view/507811345']) + .get('/view/653284939') + .reply(200, remoteData['https://deviantart.com/view/653284939']); + + const results = await ratingClient.getSauce( + 'https://owo.whats-th.is/6MtFNmm.png' + ); + + expect(results).toEqual(ratingMatcher); + }); + }); +}); diff --git a/tests/jest.setup.ts b/tests/jest.setup.ts deleted file mode 100644 index 1d02a83d..00000000 --- a/tests/jest.setup.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { config } from 'dotenv'; - -import path from 'path'; - -if (!process.env.CI) - config({ - path: path.join(__dirname, 'fixtures', '.env'), - encoding: 'utf8', - debug: false - }); diff --git a/tests/url.test.ts b/tests/url.test.ts deleted file mode 100644 index e461633b..00000000 --- a/tests/url.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Sagiri from '../lib'; - -describe('Sagiri URL test', () => { - let sagiri: Sagiri; - beforeAll(() => { - const token = process.env.SAUCENAO_TOKEN as string; - - sagiri = new Sagiri(token, { testMode: true }); - }); - - test('should get source', async () => { - const results = await sagiri.getSauce('https://i.imgur.com/YmaYT5L.jpg'); - - expect(results).toBeDefined(); - expect(results.length).toBeGreaterThanOrEqual(1); - }); -}); diff --git a/tests/withOptions.test.ts b/tests/withOptions.test.ts deleted file mode 100644 index 869f65fa..00000000 --- a/tests/withOptions.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import Sagiri from '../lib'; - -describe('Sagiri With Options test', () => { - let sagiri: Sagiri; - beforeAll(() => { - const token = process.env.SAUCENAO_TOKEN as string; - - sagiri = new Sagiri(token, { - dbMaskI: [9], - dbMask: [5, 10], - testMode: true, - getRating: true - }); - }); - - test('should get source', async () => { - const results = await sagiri.getSauce('https://i.imgur.com/YmaYT5L.jpg'); - - expect(results).toBeDefined(); - expect(results.length).toBeGreaterThanOrEqual(1); - }); -}); diff --git a/yarn.lock b/yarn.lock index 843943c6..7f8b43d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,17 +10,17 @@ "@babel/highlight" "^7.0.0" "@babel/core@^7.1.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" - integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff" + integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helpers" "^7.5.5" - "@babel/parser" "^7.5.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/generator" "^7.6.4" + "@babel/helpers" "^7.6.2" + "@babel/parser" "^7.6.4" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.3" + "@babel/types" "^7.6.3" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -29,16 +29,15 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" - integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== +"@babel/generator@^7.4.0", "@babel/generator@^7.6.3", "@babel/generator@^7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671" + integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w== dependencies: - "@babel/types" "^7.5.5" + "@babel/types" "^7.6.3" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" - trim-right "^1.0.1" "@babel/helper-function-name@^7.1.0": version "7.1.0" @@ -68,14 +67,14 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== +"@babel/helpers@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" + integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.2" + "@babel/types" "^7.6.0" "@babel/highlight@^7.0.0": version "7.5.0" @@ -86,10 +85,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" - integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81" + integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A== "@babel/plugin-syntax-object-rest-spread@^7.0.0": version "7.2.0" @@ -98,34 +97,34 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" + integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" - integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9" + integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" + "@babel/generator" "^7.6.3" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/parser" "^7.6.3" + "@babel/types" "^7.6.3" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" - integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0", "@babel/types@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09" + integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -288,9 +287,9 @@ "@types/yargs" "^13.0.0" "@types/babel__core@^7.1.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" - integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" + integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -299,9 +298,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" - integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== + version "7.6.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a" + integrity sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw== dependencies: "@babel/types" "^7.0.0" @@ -369,6 +368,18 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== +"@types/lodash.ismatch@^4.4.6": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/lodash.ismatch/-/lodash.ismatch-4.4.6.tgz#7ef39e51e56e562e579b1416c4edbb57295b239c" + integrity sha512-Qy6R9c+LOc3M+kBTDgQGAWxzcrXFKznXuIyg8tbw2/Ct3D3lBmQd3yMTD+NjGzIATgUr0v4uWzW3+ALid+LXsQ== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.144" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.144.tgz#12e57fc99064bce45e5ab3c8bc4783feb75eab8e" + integrity sha512-ogI4g9W5qIQQUhXAclq6zhqgqNUr7UlFaqDHbch7WLSLeeM/7d3CRaw7GLajxvyFvhJqw4Rpcz5bhoaYtIx6Tg== + "@types/node-fetch@2.5.2": version "2.5.2" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.2.tgz#76906dea5b3d6901e50e63e15249c9bcd6e9676e" @@ -376,12 +387,7 @@ dependencies: "@types/node" "*" -"@types/node@*": - version "12.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44" - integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg== - -"@types/node@12.11.1": +"@types/node@*", "@types/node@12.11.1": version "12.11.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.1.tgz#1fd7b821f798b7fa29f667a1be8f3442bb8922a3" integrity sha512-TJtwsqZ39pqcljJpajeoofYRfeZ7/I/OMUQ5pR4q5wOKf2ocrUvBAZUMhWsOvKx3dVc/aaV5GluBivt0sWqA5A== @@ -392,14 +398,14 @@ integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/yargs-parser@*": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.0.0.tgz#453743c5bbf9f1bed61d959baab5b06be029b2d0" - integrity sha512-wBlsw+8n21e6eTd4yVv8YD/E3xq0O6nNnJIquutAsFGE7EyMKz7W6RNT6BRu1SmdgmlCZ9tb0X+j+D6HGr8pZw== + version "13.1.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" + integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== "@types/yargs@^13.0.0": - version "13.0.2" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653" - integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ== + version "13.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" + integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== dependencies: "@types/yargs-parser" "*" @@ -445,9 +451,9 @@ semver "^6.3.0" abab@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" + integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== abbrev@1: version "1.1.1" @@ -455,9 +461,9 @@ abbrev@1: integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn-globals@^4.1.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" - integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" @@ -470,9 +476,9 @@ acorn-jsx@^3.0.0: acorn "^3.0.4" acorn-jsx@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" - integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== + version "5.1.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" + integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== acorn-walk@^6.0.1: version "6.2.0" @@ -495,9 +501,9 @@ acorn@^6.0.1: integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== acorn@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" - integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" @@ -516,18 +522,11 @@ ansi-escape-sequences@^4.0.0: dependencies: array-back "^3.0.1" -ansi-escapes@^3.0.0: +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228" - integrity sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q== - dependencies: - type-fest "^0.5.2" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -660,6 +659,11 @@ assert-plus@1.0.0, assert-plus@^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" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -764,9 +768,9 @@ binary-extensions@^2.0.0: integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== bluebird@^3.5.4: - version "3.5.5" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" - integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + version "3.7.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" + integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== brace-expansion@^1.1.7: version "1.1.11" @@ -854,6 +858,15 @@ cache-point@^0.4.1: fs-then-native "^2.0.0" mkdirp2 "^1.0.3" +cache-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cache-point/-/cache-point-1.0.0.tgz#3d9769fc04d7a5b3005fc6258e6ebcaccb5f15f3" + integrity sha512-ZqrZp9Hi5Uq7vfSGmNP2bUT/9DzZC2Y/GXjHB8rUJN1a+KLmbV05+vxHipNsg8+CSVgjcVVzLV8VZms6w8ZeRw== + dependencies: + array-back "^4.0.0" + fs-then-native "^2.0.0" + mkdirp2 "^1.0.4" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -888,6 +901,18 @@ catharsis@^0.8.11: dependencies: lodash "^4.17.14" +chai@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -902,10 +927,15 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + chokidar@^3.0.2: - version "3.2.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.2.1.tgz#4634772a1924512d990d4505957bf3a510611387" - integrity sha512-/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w== + version "3.2.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.2.2.tgz#a433973350021e09f2b853a2287781022c0dc935" + integrity sha512-bw3pm7kZ2Wa6+jQWYP/c7bAZy3i4GwiIiMO2EeRjrE48l8vBqC/WvFhSF0xyM8fQiPEGvwMY/5bqDG7sSEOuhg== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -913,14 +943,14 @@ chokidar@^3.0.2: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.1.3" + readdirp "~3.2.0" optionalDependencies: - fsevents "~2.1.0" + fsevents "~2.1.1" chownr@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== ci-info@^2.0.0: version "2.0.0" @@ -937,12 +967,12 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: - restore-cursor "^3.1.0" + restore-cursor "^2.0.0" cli-width@^2.0.0: version "2.2.0" @@ -1048,7 +1078,7 @@ command-line-usage@^4.1.0: table-layout "^0.4.2" typical "^2.6.1" -commander@~2.20.0: +commander@2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== @@ -1172,6 +1202,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -1288,11 +1325,6 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" -dotenv@8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -1306,15 +1338,10 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -1330,17 +1357,21 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== +es-abstract@^1.12.0, es-abstract@^1.15.0, es-abstract@^1.5.1, es-abstract@^1.7.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.15.0.tgz#8884928ec7e40a79e3c9bc812d37d10c8b24cc57" + integrity sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ== dependencies: es-to-primitive "^1.2.0" function-bind "^1.1.1" has "^1.0.3" + has-symbols "^1.0.0" is-callable "^1.1.4" is-regex "^1.0.4" - object-keys "^1.0.12" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" es-to-primitive@^1.2.0: version "1.2.0" @@ -1689,10 +1720,10 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -figures@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" - integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g== +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" @@ -1774,9 +1805,9 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.0.tgz#094ec359dc4b55e7d62e0db4acd76e89fe874d37" - integrity sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA== + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -1799,11 +1830,11 @@ fragment-cache@^0.2.1: map-cache "^0.2.2" fs-minipass@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" - integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: - minipass "^2.2.1" + minipass "^2.6.0" fs-then-native@^2.0.0: version "2.0.0" @@ -1823,7 +1854,7 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" -fsevents@~2.1.0: +fsevents@~2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.1.tgz#74c64e21df71721845d0c44fe54b7f56b82995a9" integrity sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw== @@ -1862,6 +1893,11 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -1881,14 +1917,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== - dependencies: - is-glob "^4.0.1" - -glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@~5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== @@ -1922,21 +1951,10 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= -handlebars@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" - integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - -handlebars@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" - integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== +handlebars@^4.1.2, handlebars@^4.2.0: + version "4.4.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.3.tgz#180bae52c1d0e9ec0c15d7e82a4362d662762f6e" + integrity sha512-B0W4A2U1ww3q7VVthTKfh+epHx+q4mCt6iK+zEAzbMBpWQAwxCeKxEGpj/1oQTpzPXDNSOG7hmG14TsISH50yw== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -2011,9 +2029,9 @@ has@^1.0.1, has@^1.0.3: function-bind "^1.1.1" hosted-git-info@^2.1.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -2039,9 +2057,9 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: safer-buffer ">= 2.1.2 < 3" ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" @@ -2090,21 +2108,21 @@ ini@~1.3.0: integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inquirer@^6.4.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.1.tgz#8bfb7a5ac02dac6ff641ac4c5ff17da112fcdb42" - integrity sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw== + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== dependencies: - ansi-escapes "^4.2.1" + ansi-escapes "^3.2.0" chalk "^2.4.2" - cli-cursor "^3.1.0" + cli-cursor "^2.1.0" cli-width "^2.0.0" external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" run-async "^2.2.0" rxjs "^6.4.0" - string-width "^4.1.0" + string-width "^2.1.0" strip-ansi "^5.1.0" through "^2.3.6" @@ -2229,11 +2247,6 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" @@ -2299,10 +2312,10 @@ is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.0.tgz#94369bbeb2249ef07b831b1b08590e686330ccbb" - integrity sha512-pFTjpv/x5HRj8kbZ/Msxi9VrvtOMRBqaDi3OIcbwPI3OuH+r3lLxVWukLITBaOGJIbA/w2+M1eVmVa4XNQlAmQ== +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" @@ -2756,12 +2769,12 @@ jsbn@~0.1.0: integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsdoc-api@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/jsdoc-api/-/jsdoc-api-5.0.3.tgz#3ffa7998781b2d6235356dc24ab84647aaa38349" - integrity sha512-7F/FR1DCRmRFlyuccpeRwW/4H5GtUD9detREDO/gxLjyEaVfRdD1JDzwZ4tMg32f0jP97PCDTy9CdSr8mW0txQ== + version "5.0.4" + resolved "https://registry.yarnpkg.com/jsdoc-api/-/jsdoc-api-5.0.4.tgz#6b60cddaa4e7ff9a2e139acfc19ecaa9c48f8575" + integrity sha512-1KMwLnfo0FyhF06TQKzqIm8BiY1yoMIGICxRdJHUjzskaHMzHMmpLlmNFgzoa4pAC8t1CDPK5jWuQTvv1pBsEQ== dependencies: array-back "^4.0.0" - cache-point "^0.4.1" + cache-point "^1.0.0" collect-all "^1.0.3" file-set "^2.0.1" fs-then-native "^2.0.0" @@ -2872,15 +2885,15 @@ json-stable-stringify-without-jsonify@^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: +json-stringify-safe@^5.0.1, 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= json5@2.x, json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== dependencies: minimist "^1.2.0" @@ -3011,6 +3024,11 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= +lodash.ismatch@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -3041,7 +3059,7 @@ lodash.unescape@4.0.1: resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -3093,9 +3111,9 @@ map-visit@^1.0.0: object-visit "^1.0.0" markdown-it-anchor@^5.0.2: - version "5.2.4" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.2.4.tgz#d39306fe4c199705b4479d3036842cf34dcba24f" - integrity sha512-n8zCGjxA3T+Mx1pG8HEgbJbkB8JFUuRkeTZQuIM8iPY6oQ8sWOPRZJDFC9a/pNg2QkHEjjGkhBEl/RSyzaDZ3A== + version "5.2.5" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz#dbf13cfcdbffd16a510984f1263e1d479a47d27a" + integrity sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ== markdown-it@^8.4.2: version "8.4.2" @@ -3163,7 +3181,12 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.40.0" -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -3190,20 +3213,20 @@ minimist@~0.0.1: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -minipass@^2.2.1, minipass@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minizlib@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: - minipass "^2.2.1" + minipass "^2.9.0" mixin-deep@^1.2.0: version "1.3.2" @@ -3213,7 +3236,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp2@^1.0.3: +mkdirp2@^1.0.3, mkdirp2@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp2/-/mkdirp2-1.0.4.tgz#56de1f8f5c93cf2199906362eba0f9f262ee4437" integrity sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw== @@ -3235,10 +3258,10 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= nan@^2.12.1: version "2.14.0" @@ -3286,6 +3309,18 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +nock@11.4.0: + version "11.4.0" + resolved "https://registry.yarnpkg.com/nock/-/nock-11.4.0.tgz#68c2f9cf533f13ecb1a43e956823dbfba5593d17" + integrity sha512-UrVEbEAvhyDoUttrS0fv3znhZ5nEJvlxqgmrC6Gb2Mf9cFci65RMK17e6EjDDQB57g5iwZw1TFnVvyeL0eUlhQ== + dependencies: + chai "^4.1.2" + debug "^4.1.0" + json-stringify-safe "^5.0.1" + lodash "^4.17.13" + mkdirp "^0.5.0" + propagate "^2.0.0" + node-fetch@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" @@ -3302,15 +3337,15 @@ node-modules-regexp@^1.0.0: integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= node-notifier@^5.4.2: - version "5.4.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.2.tgz#a1111b8c1a4c3eb68d98815cc04a899456b03f1a" - integrity sha512-85nkTziazE2dR4pyoLxMwz0b9MmxFQPVXYs/WlWI7CPtBkARJOV+89khdNjpbclXIJDECQYnTvh1xuZV3WHkCA== + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== dependencies: growly "^1.3.0" - is-wsl "^2.1.0" - semver "^6.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" shellwords "^0.1.1" - which "^1.3.1" + which "^1.3.0" node-pre-gyp@^0.12.0: version "0.12.0" @@ -3364,9 +3399,9 @@ npm-bundled@^1.0.1: integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== npm-packlist@^1.1.6: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + version "1.4.6" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" + integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -3422,7 +3457,12 @@ object-get@^2.1.0: resolved "https://registry.yarnpkg.com/object-get/-/object-get-2.1.0.tgz#722bbdb60039efa47cad3c6dc2ce51a85c02c5ae" integrity sha1-ciu9tgA576R8rTxtws5RqFwCxa4= -object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-keys@^1.0.11, 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== @@ -3460,14 +3500,14 @@ object.entries@^1.1.0: has "^1.0.3" object.fromentries@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" - integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.1.tgz#050f077855c7af8ae6649f45c80b16ee2d31e704" + integrity sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA== dependencies: - define-properties "^1.1.2" - es-abstract "^1.11.0" + define-properties "^1.1.3" + es-abstract "^1.15.0" function-bind "^1.1.1" - has "^1.0.1" + has "^1.0.3" object.getownpropertydescriptors@^2.0.3: version "2.0.3" @@ -3501,12 +3541,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: - mimic-fn "^2.1.0" + mimic-fn "^1.0.0" optimist@^0.6.1: version "0.6.1" @@ -3585,9 +3625,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== dependencies: p-try "^2.0.0" @@ -3642,6 +3682,11 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-multipart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/parse-multipart/-/parse-multipart-1.0.4.tgz#767b8788b2487b87b83a19615cd6ba78a8d14492" + integrity sha1-dnuHiLJIe4e4OhlhXNa6eKjRRJI= + parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" @@ -3686,6 +3731,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -3796,10 +3846,15 @@ prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +propagate@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + psl@^1.1.24, psl@^1.1.28: - version "1.3.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" - integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== pump@^3.0.0: version "3.0.0" @@ -3835,9 +3890,9 @@ rc@^1.2.7: strip-json-comments "~2.0.1" react-is@^16.8.1, react-is@^16.8.4: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== + version "16.10.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.10.2.tgz#984120fd4d16800e9a738208ab1fba422d23b5ab" + integrity sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA== read-pkg-up@^2.0.0: version "2.0.0" @@ -3886,10 +3941,10 @@ readable-stream@^2.0.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readdirp@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.3.tgz#d6e011ed5b9240a92f08651eeb40f7942ceb6cc1" - integrity sha512-ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q== +readdirp@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" + integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== dependencies: picomatch "^2.0.4" @@ -4069,12 +4124,12 @@ resolve@1.x, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.2, dependencies: path-parse "^1.0.6" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: - onetime "^5.1.0" + onetime "^2.0.0" signal-exit "^3.0.2" ret@~0.1.10: @@ -4109,9 +4164,9 @@ run-async@^2.2.0: is-promise "^2.1.0" rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== dependencies: tslib "^1.9.0" @@ -4396,7 +4451,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -4413,14 +4468,21 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" - integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== +string.prototype.trimleft@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^5.2.0" + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" string_decoder@~1.1.1: version "1.1.1" @@ -4516,13 +4578,13 @@ taffydb@2.6.2: integrity sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= tar@^4: - version "4.4.10" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" - integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.5" + minipass "^2.8.6" minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" @@ -4654,11 +4716,6 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - ts-jest@24.1.0: version "24.1.0" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.1.0.tgz#2eaa813271a2987b7e6c3fefbda196301c131734" @@ -4717,10 +4774,10 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-fest@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" - integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== typescript@3.6.4: version "3.6.4" @@ -4743,11 +4800,11 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + version "3.6.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.2.tgz#fd8048c86d990ddd29fe99d3300e0cb329103f4d" + integrity sha512-+gh/xFte41GPrgSMJ/oJVq15zYmqr74pY9VoM69UzMzq9NFk4YDylclb1/bhEzZSaUQjbW5RvniHeq1cdtRYjw== dependencies: - commander "~2.20.0" + commander "2.20.0" source-map "~0.6.1" underscore@~1.9.1: @@ -4804,9 +4861,9 @@ util.promisify@^1.0.0: object.getownpropertydescriptors "^2.0.3" 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== + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== v8-compile-cache@^2.0.3: version "2.1.0" @@ -4894,7 +4951,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.9, which@^1.3.1: +which@^1.2.9, which@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -4987,9 +5044,9 @@ xmlcreate@^2.0.0: integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^3.0.0, yallist@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yargs-parser@10.x: version "10.1.0" From ab03ec3010b527f87d62248781f47044ee40b5ed Mon Sep 17 00:00:00 2001 From: Ovyerus Date: Thu, 24 Oct 2019 19:27:56 +1100 Subject: [PATCH 4/4] [jest.config] Remove weird options --- jest.config.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/jest.config.js b/jest.config.js index e99116cf..eef6b07c 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,7 +1,4 @@ module.exports = { - displayName: 'ts-jest', preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/tests/*.test.ts'], - setupFiles: ['/tests/jest.setup.ts'] + testEnvironment: 'node' };