From 101a5eb38d4a10fae629f63ec19e7c8ea8f1fe2a Mon Sep 17 00:00:00 2001 From: Eric Willhoit Date: Wed, 3 Nov 2021 13:36:20 -0500 Subject: [PATCH] chore: refactor and tests --- package.json | 3 - src/commands/info/releasenotes/display.ts | 37 ++-- src/shared/get-dist-tag-version.ts | 25 +++ src/shared/get-info-config.ts | 2 +- test/shared/get-dist-tag-version.test.ts | 67 ++++++++ yarn.lock | 201 +--------------------- 6 files changed, 105 insertions(+), 230 deletions(-) create mode 100644 src/shared/get-dist-tag-version.ts create mode 100644 test/shared/get-dist-tag-version.test.ts diff --git a/package.json b/package.json index 80f20973..42f59d45 100644 --- a/package.json +++ b/package.json @@ -6,15 +6,12 @@ "bugs": "https://github.com/forcedotcom/cli/issues", "dependencies": { "@oclif/config": "^1", - "@octokit/rest": "^18.12.0", "@salesforce/command": "^3.1.3", "@salesforce/core": "^2.25.1", "@salesforce/kit": "^1.5.17", "@salesforce/ts-types": "^1.5.20", - "axios": "^0.22.0", "fs-extra": "^10.0.0", "got": "^11.8.2", - "marked-terminal": "^4.2.0", "semver": "^7.3.5", "sinon-chai": "^3.7.0", "tslib": "^2" diff --git a/src/commands/info/releasenotes/display.ts b/src/commands/info/releasenotes/display.ts index 1d15d115..90c6306a 100644 --- a/src/commands/info/releasenotes/display.ts +++ b/src/commands/info/releasenotes/display.ts @@ -8,7 +8,6 @@ // Needed this to ensure the "helpers" were decalred before read in examples /* eslint-disable @typescript-eslint/member-ordering */ -import got from 'got'; import { Env } from '@salesforce/kit'; import { flags, SfdxCommand } from '@salesforce/command'; import { getString } from '@salesforce/ts-types'; @@ -16,8 +15,7 @@ import { Messages } from '@salesforce/core'; import { getInfoConfig, InfoConfig } from '../../../shared/get-info-config'; import { getReleaseNotes } from '../../../shared/get-release-notes'; - -import { PLUGIN_INFO_GET_TIMEOUT } from '../../../constants'; +import { getDistTagVersion } from '../../../shared/get-dist-tag-version'; // Initialize Messages with the current plugin directory Messages.importMessagesDirectory(__dirname); @@ -54,12 +52,18 @@ export default class Display extends SfdxCommand { public async run(): Promise { if (new Env().getBoolean('PLUGIN_INFO_HIDE_RELEASE_NOTES')) { + // We don't ever want to exit the process for info:releasenotes:display + // In most cases we will log a message, but here we only trace log in case someone using stdout of the update command this.logger.trace('release notes disabled via env var: PLUGIN_INFO_HIDE_RELEASE_NOTES_ENV'); this.logger.trace('exiting'); return; } + const warn = (msg: string, err): void => { + this.ux.warn(`${msg}\n${getString(err, 'message')}`); + }; + const installedVersion = this.config.pjson.version; let infoConfig: InfoConfig; @@ -67,34 +71,18 @@ export default class Display extends SfdxCommand { try { infoConfig = await getInfoConfig(this.config.root); } catch (err) { - const msg = getString(err, 'message'); - - this.ux.warn(`Loading plugin-info config from package.json failed with message:\n${msg}`); - + warn('Loading plugin-info config from package.json failed with message:', err); return; } - const { distTagUrl, releaseNotesPath, releaseNotesFilename } = infoConfig.releasenotes; let version = (this.flags.version as string) || installedVersion; if (Display.helpers.includes(version)) { try { - const options = { timeout: PLUGIN_INFO_GET_TIMEOUT }; - - type DistTagJson = { - latest: string; - 'latest-rc': string; - }; - - const body = await got(distTagUrl, options).json(); - - version = version.includes('rc') ? body['latest-rc'] : body['latest']; + version = await getDistTagVersion(distTagUrl, version); } catch (err) { - // TODO: Could fallback up using npm here? That way private cli repos could auth with .npmrc - // -- could use this: https://github.com/salesforcecli/plugin-trust/blob/0393b906a30e8858816625517eda5db69377c178/src/lib/npmCommand.ts - this.ux.warn(`Was not able to look up dist-tags from ${distTagUrl}. Try using a version instead.`); - + warn('Getting dist-tag info failed with message:', err); return; } } @@ -104,10 +92,7 @@ export default class Display extends SfdxCommand { try { releaseNotes = await getReleaseNotes(releaseNotesPath, releaseNotesFilename, version); } catch (err) { - const msg = getString(err, 'message'); - - this.ux.warn(`getReleaseNotes() request failed with message:\n${msg}`); - + warn('getReleaseNotes() request failed with message:', err); return; } diff --git a/src/shared/get-dist-tag-version.ts b/src/shared/get-dist-tag-version.ts new file mode 100644 index 00000000..5d577182 --- /dev/null +++ b/src/shared/get-dist-tag-version.ts @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * Licensed under the BSD 3-Clause license. + * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import got from 'got'; +import { PLUGIN_INFO_GET_TIMEOUT } from '../constants'; + +export type DistTagJson = { + latest: string; + 'latest-rc': string; +}; + +export async function getDistTagVersion(url: string, distTag: string): Promise { + // TODO: Could use npm instead here. That way private cli repos could auth with .npmrc + // -- could utilize this: https://github.com/salesforcecli/plugin-trust/blob/0393b906a30e8858816625517eda5db69377c178/src/lib/npmCommand.ts + const options = { timeout: PLUGIN_INFO_GET_TIMEOUT }; + + const body = await got(url, options).json(); + + // We are only interested in latest and latest-rc, could update this if other tags are desired + return distTag.includes('rc') ? body['latest-rc'] : body['latest']; +} diff --git a/src/shared/get-info-config.ts b/src/shared/get-info-config.ts index dfa5ebeb..72b3a457 100644 --- a/src/shared/get-info-config.ts +++ b/src/shared/get-info-config.ts @@ -26,7 +26,7 @@ export interface InfoConfig { /* sfdx example to add to cli pjson.oclif -location with npm install: +example location with npm install: ~/.nvm/versions/node/v14.17.5/lib/node_modules/sfdx-cli/package.json Add to oclif object diff --git a/test/shared/get-dist-tag-version.test.ts b/test/shared/get-dist-tag-version.test.ts new file mode 100644 index 00000000..4f1d03f7 --- /dev/null +++ b/test/shared/get-dist-tag-version.test.ts @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2018, salesforce.com, inc. + * All rights reserved. + * Licensed under the BSD 3-Clause license. + * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import got from 'got'; +import { expect, use as chaiUse } from 'chai'; +import * as Sinon from 'sinon'; +import * as SinonChai from 'sinon-chai'; +import { stubMethod } from '@salesforce/ts-sinon'; +import { getDistTagVersion, DistTagJson } from '../../src/shared/get-dist-tag-version'; + +chaiUse(SinonChai); + +describe('getReleaseNotes tests', () => { + let sandbox: sinon.SinonSandbox; + let gotStub: sinon.SinonStub; + + let url; + let gotResponse: DistTagJson; + + beforeEach(() => { + url = 'https://registry.npmjs.org/-/package/sfdx-cli/dist-tags'; + gotResponse = { + latest: '1.2.3', + 'latest-rc': '1.3.0', + }; + + sandbox = Sinon.createSandbox(); + + gotStub = stubMethod(sandbox, got, 'default'); + gotStub.returns({ + json: () => gotResponse, + }); + }); + + afterEach(() => { + gotStub.restore(); + sandbox.restore(); + }); + + it('calls got with correct args', async () => { + await getDistTagVersion(url, 'latest'); + + expect(gotStub.args[0]).to.deep.equal([url, { timeout: 3000 }]); + }); + + it('returns rc if version is "latest-rc"', async () => { + const version = await getDistTagVersion(url, 'latest-rc'); + + expect(version).to.equal('1.3.0'); + }); + + it('returns rc if version includes "rc"', async () => { + const version = await getDistTagVersion(url, 'stable-rc'); + + expect(version).to.equal('1.3.0'); + }); + + it('returns latest by default', async () => { + const version = await getDistTagVersion(url, 'foobar'); + + expect(version).to.equal('1.2.3'); + }); +}); diff --git a/yarn.lock b/yarn.lock index 45fe288d..3256d0cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -532,107 +532,6 @@ dependencies: fancy-test "^1.4.3" -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== - dependencies: - "@octokit/types" "^6.0.3" - -"@octokit/core@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" - integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.0" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== - dependencies: - "@octokit/types" "^6.0.3" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== - dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.1.0.tgz#3c0d2d844b876314ad49d7f3d03eed4953038272" - integrity sha512-dWZfYvCCdjZzDYA3lIAMF72Q0jld8xidqCq5Ryw09eBJXZdcM6he0vWBTvw/b5UnGYqexxOyHWgfrsTlUJL3Gw== - -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.16.9" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.9.tgz#a844157ce7c294747bda19ea9b9996298e0948f0" - integrity sha512-gfSCMgz5scFKsR0dW4jaYsDJVt/UwCHp4dF7sHlmSekZvwzvLiOAGZ4MQkEsL5DW9hIk2W+UQkYZMTA1b6Wsqw== - dependencies: - "@octokit/types" "^6.33.0" - -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== - -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.12.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.12.1.tgz#89747e3e39cbf411881de85dfdec18dfbc2e9b90" - integrity sha512-0nY3htfl6x9UkPcqv8pm9vOC/bTA7f4IMDWln13neHRdNWQvOQgZ9fRxK7BAc74rye4yVINEFi9Yb9rnGUvosA== - dependencies: - "@octokit/types" "^6.33.0" - deprecation "^2.3.1" - -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== - dependencies: - "@octokit/types" "^6.0.3" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^5.6.0": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.2.tgz#1aa74d5da7b9e04ac60ef232edd9a7438dcf32d8" - integrity sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA== - dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" - is-plain-object "^5.0.0" - node-fetch "^2.6.1" - universal-user-agent "^6.0.0" - -"@octokit/rest@^18.12.0": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== - dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" - -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.33.0": - version "6.33.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.33.0.tgz#7e5e664d65e88b74b6de76f328b80a344bef3f86" - integrity sha512-0zffZ048M0UhthyPXQHLz4038Ak46nMWZXkzlXvXB/M/L1jYPBceq4iZj4qjKVrvveaJrrgKdJ9+3yUuITfcCw== - dependencies: - "@octokit/openapi-types" "^11.1.0" - "@salesforce/bunyan@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@salesforce/bunyan/-/bunyan-2.0.0.tgz#8dbe377f2cf7d35348a23260416fee15adba5f97" @@ -1179,13 +1078,6 @@ ansi-escapes@^4.3.0: dependencies: type-fest "^0.11.0" -ansi-escapes@^4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" @@ -1424,13 +1316,6 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== -axios@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.22.0.tgz#bf702c41fb50fbca4539589d839a077117b79b25" - integrity sha512-Z0U3uhqQeg1oNcihswf4ZD57O3NrR1+ZXhxaROaWpDmsDTx7T2HNBV2ulBtie2hwJptu8UvgnJoK+BIqdzh/1w== - dependencies: - follow-redirects "^1.14.4" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1466,11 +1351,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== - binary-extensions@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" @@ -1783,16 +1663,6 @@ cli-progress@^3.4.0: colors "^1.1.2" string-width "^4.2.0" -cli-table3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" - integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== - dependencies: - object-assign "^4.1.0" - string-width "^4.2.0" - optionalDependencies: - colors "^1.1.2" - cli-truncate@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" @@ -2342,11 +2212,6 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -deprecation@^2.0.0, deprecation@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - detect-file@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -3065,11 +2930,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== -follow-redirects@^1.14.4: - version "1.14.4" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" - integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g== - for-in@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3933,11 +3793,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - is-regex@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" @@ -4677,18 +4532,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -marked-terminal@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-4.2.0.tgz#593734a53cf9a4bb01ea961aa579bd21889ce502" - integrity sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw== - dependencies: - ansi-escapes "^4.3.1" - cardinal "^2.1.1" - chalk "^4.1.0" - cli-table3 "^0.6.0" - node-emoji "^1.10.0" - supports-hyperlinks "^2.1.0" - marked@^1.1.1: version "1.2.8" resolved "https://registry.npmjs.org/marked/-/marked-1.2.8.tgz#5008ece15cfa43e653e85845f3525af4beb6bdd4" @@ -5026,20 +4869,6 @@ nise@^5.1.0: just-extend "^4.0.2" path-to-regexp "^1.7.0" -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - -node-fetch@^2.6.1: - version "2.6.5" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" - integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== - dependencies: - whatwg-url "^5.0.0" - node-preload@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" @@ -5129,7 +4958,7 @@ oauth-sign@~0.9.0: resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.0.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -6702,11 +6531,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - treeify@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" @@ -6826,11 +6650,6 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - type-fest@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -6909,11 +6728,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -6986,11 +6800,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" @@ -7005,14 +6814,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"