diff --git a/package.json b/package.json index a379b9d0..e3f03888 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "bugs": "https://github.com/forcedotcom/cli/issues", "dependencies": { "@oclif/core": "^2.15.0", - "@salesforce/core": "^5.3.14", + "@salesforce/core": "^5.3.20", "@salesforce/kit": "^3.0.15", - "@salesforce/packaging": "^2.4.19", + "@salesforce/packaging": "^2.4.21", "@salesforce/sf-plugins-core": "^3.1.25", "chalk": "^4.1.2", "tslib": "^2" @@ -17,13 +17,10 @@ "devDependencies": { "@oclif/plugin-command-snapshot": "^4.0.14", "@salesforce/cli-plugins-testkit": "^4.4.12", - "@salesforce/dev-scripts": "^6.0.3", - "@salesforce/plugin-auth": "^2.8.25", + "@salesforce/dev-scripts": "^6.0.4", "@salesforce/plugin-command-reference": "^3.0.46", - "@salesforce/ts-sinon": "^1.4.19", - "@salesforce/ts-types": "^2.0.6", "@swc/core": "1.3.39", - "eslint-plugin-sf-plugin": "^1.16.10", + "eslint-plugin-sf-plugin": "^1.16.15", "oclif": "^3.16.0", "shx": "0.3.4", "ts-node": "^10.9.1", diff --git a/src/commands/package/convert.ts b/src/commands/package/convert.ts index 2fb8f16c..0629c6b6 100644 --- a/src/commands/package/convert.ts +++ b/src/commands/package/convert.ts @@ -15,7 +15,6 @@ import { PackageVersionCreateRequestResult, } from '@salesforce/packaging'; import { camelCaseToTitleCase, Duration } from '@salesforce/kit'; -import { Optional } from '@salesforce/ts-types'; import { requiredHubFlag } from '../../utils/hubFlag'; Messages.importMessagesDirectory(__dirname); @@ -108,7 +107,7 @@ export class PackageConvert extends SfCommand this.spinner.start('Converting Package', 'Initializing'); } // initialize the project instance if in a project - let project: Optional; + let project: SfProject | undefined; try { project = await SfProject.resolve(); } catch (err) { @@ -139,7 +138,7 @@ export class PackageConvert extends SfCommand INSTALL_URL_BASE.toString(), result.SubscriberPackageVersionId, this.config.bin, - ]) + ]); if (flags.verbose) { this.log(successMessage); } else { diff --git a/src/commands/package/install.ts b/src/commands/package/install.ts index 8c2324cc..001d2fd4 100644 --- a/src/commands/package/install.ts +++ b/src/commands/package/install.ts @@ -21,7 +21,6 @@ import { PackagingSObjects, SubscriberPackageVersion, } from '@salesforce/packaging'; -import { Optional } from '@salesforce/ts-types'; import { Report } from './install/report'; export type PackageInstallRequest = PackagingSObjects.PackageInstallRequest; @@ -190,7 +189,7 @@ export class Install extends SfCommand { // unless the noprompt option has been included. await this.confirmExternalSites(request, noPrompt); - let installOptions: Optional; + let installOptions: PackageInstallOptions | undefined; if (flags.wait) { installOptions = { pollingTimeout: flags.wait, @@ -216,7 +215,7 @@ export class Install extends SfCommand { ); } - let pkgInstallRequest: Optional; + let pkgInstallRequest: PackageInstallRequest | undefined; try { pkgInstallRequest = await this.subscriberPackageVersion.install(request, installOptions); this.spinner.stop(); @@ -234,7 +233,7 @@ export class Install extends SfCommand { this.config.bin, pkgInstallRequest, flags['target-org'].getUsername() as string, - flags.package as Optional + flags.package ) ); } @@ -243,7 +242,7 @@ export class Install extends SfCommand { return pkgInstallRequest; } - protected async finally(err: Optional): Promise { + protected async finally(err?: Error): Promise { // Remove all the event listeners or they will still handle events Lifecycle.getInstance().removeAllListeners(PackageEvents.install.warning); Lifecycle.getInstance().removeAllListeners(PackageEvents.install.status); diff --git a/src/commands/package/version/list.ts b/src/commands/package/version/list.ts index 23df9883..34816e03 100644 --- a/src/commands/package/version/list.ts +++ b/src/commands/package/version/list.ts @@ -15,7 +15,6 @@ import { Package, PackageVersionListResult, } from '@salesforce/packaging'; -import { Optional } from '@salesforce/ts-types'; import { requiredHubFlag } from '../../../utils/hubFlag'; Messages.importMessagesDirectory(__dirname); @@ -118,7 +117,7 @@ export class PackageVersionListCommand extends SfCommand 0) { - let ancestorVersionsMap: Optional>; + let ancestorVersionsMap: Map | undefined; // lookup ancestorVersions if ancestorIds are present const ancestorIds = records.filter((record) => record.AncestorId).map((record) => record.AncestorId); if (ancestorIds?.length > 0) { @@ -135,7 +134,7 @@ export class PackageVersionListCommand extends SfCommand 0 ? aliases.join() : ''; // set Ancestor display values - let ancestorVersion: Optional; + let ancestorVersion: string | undefined; if (record.AncestorId) { ancestorVersion = ancestorVersionsMap?.get(record.AncestorId); } else if (containerOptionsMap.get(record.Package2Id) !== 'Managed') { diff --git a/src/commands/package/version/report.ts b/src/commands/package/version/report.ts index e3674178..5f344ae5 100644 --- a/src/commands/package/version/report.ts +++ b/src/commands/package/version/report.ts @@ -15,7 +15,6 @@ import { PackagingSObjects, } from '@salesforce/packaging'; import * as chalk from 'chalk'; -import { Optional } from '@salesforce/ts-types'; import { requiredHubFlag } from '../../../utils/hubFlag'; Messages.importMessagesDirectory(__dirname); @@ -74,7 +73,7 @@ export class PackageVersionReportCommand extends SfCommand; + let dependencies: string | undefined; // collect the Dependency 04ts into a comma-separated list for non-json output if (verbose && record.SubscriberPackageVersion?.Dependencies != null) { diff --git a/test/commands/package/install.test.ts b/test/commands/package/install.test.ts index 7d0d3bba..a3ab5cb8 100644 --- a/test/commands/package/install.test.ts +++ b/test/commands/package/install.test.ts @@ -8,7 +8,6 @@ import { EOL } from 'node:os'; import { resolve } from 'node:path'; import { Connection, Lifecycle, SfProject, SfError, SfProjectJson } from '@salesforce/core'; import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; -import { stubMethod } from '@salesforce/ts-sinon'; import { Config } from '@oclif/core'; import { expect } from 'chai'; import { PackageEvents, PackagingSObjects, SubscriberPackageVersion } from '@salesforce/packaging'; @@ -43,7 +42,7 @@ const pkgInstallRequest = { SkipHandlers: null, Status: 'IN_PROGRESS', Errors: null, -}; +} satisfies PackagingSObjects.PackageInstallRequest; const pkgInstallCreateRequest = { SubscriberPackageVersionKey: myPackageVersion04t, @@ -126,7 +125,7 @@ describe('package:install', () => { getExternalSitesStub = $$.SANDBOX.stub(); installStub = $$.SANDBOX.stub(); installStatusStub = $$.SANDBOX.stub(); - uxConfirmStub = stubMethod($$.SANDBOX, SfCommand.prototype, 'confirm'); + uxConfirmStub = $$.SANDBOX.stub(SfCommand.prototype, 'confirm'); // The SubscriberPackageVersion class is tested in the packaging library, so // we just stub the public APIs used by the command. @@ -164,8 +163,8 @@ describe('package:install', () => { }); it('should print IN_PROGRESS status correctly', async () => { - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '-o', testOrg.username], config); stubSpinner(cmd); @@ -181,8 +180,8 @@ describe('package:install', () => { it('should print IN_PROGRESS status when timed out', async () => { const error = new SfError('polling timed out', 'PackageInstallTimeout'); error.setData(pkgInstallRequest); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').throws(error); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').throws(error); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '-u', testOrg.username], config); stubSpinner(cmd); const result = await cmd.run(); @@ -199,8 +198,8 @@ describe('package:install', () => { it('should return PackageInstallRequest when polling timed out with --json', async () => { const error = new SfError('polling timed out', 'PackageInstallTimeout'); error.setData(pkgInstallRequest); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').throws(error); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').throws(error); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '--json', '-o', testOrg.username], config); stubSpinner(cmd); const result = await cmd.run(); @@ -210,8 +209,8 @@ describe('package:install', () => { it('should print SUCCESS status correctly', async () => { const request = Object.assign({}, pkgInstallRequest, { Status: 'SUCCESS' }); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(request); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(request); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '-o', testOrg.username], config); stubSpinner(cmd); @@ -226,8 +225,8 @@ describe('package:install', () => { it('should throw error for ERROR status and no install errors', async () => { const request = Object.assign({}, pkgInstallRequest, { Status: 'ERROR' }); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(request); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(request); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); try { const cmd = new Install(['-p', myPackageVersion04t, '-o', testOrg.username], config); stubSpinner(cmd); @@ -245,8 +244,8 @@ describe('package:install', () => { Status: 'ERROR', Errors: { errors: [new Error('message 1'), new Error('message 2')] }, }); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(request); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(request); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); try { const cmd = new Install(['-p', myPackageVersion04t, '-o', testOrg.username], config); stubSpinner(cmd); @@ -282,23 +281,26 @@ describe('package:install', () => { it('should print SUCCESS status correctly for package alias', async () => { // Stubs SfProject.getInstance, SfProject.getSfProjectJson, and SfProjectJson.getContents // in a way that makes TS happy... all to test package aliases. - const getContentsStub = stubMethod($$.SANDBOX, SfProjectJson.prototype, 'getContents').returns({ + const getContentsStub = $$.SANDBOX.stub(SfProjectJson.prototype, 'getContents').returns({ packageAliases: { ['my_package_alias']: myPackageVersion04t }, + packageDirectories: [], }); - const getSfProjectJsonStub = stubMethod($$.SANDBOX, SfProject.prototype, 'getSfProjectJson').callsFake(() => ({ + // @ts-expect-error stubbing only 1 method + const getSfProjectJsonStub = $$.SANDBOX.stub(SfProject.prototype, 'getSfProjectJson').callsFake(() => ({ getContents: getContentsStub, })); - const getPackageIdFromAliasStub = stubMethod($$.SANDBOX, SfProject.prototype, 'getPackageIdFromAlias').returns( + const getPackageIdFromAliasStub = $$.SANDBOX.stub(SfProject.prototype, 'getPackageIdFromAlias').returns( myPackageVersion04t ); - stubMethod($$.SANDBOX, SfProject, 'getInstance').callsFake(() => ({ + // @ts-expect-error stubbing only a subset of methods + $$.SANDBOX.stub(SfProject, 'getInstance').callsFake(() => ({ getSfProjectJson: getSfProjectJsonStub, getPackageIdFromAlias: getPackageIdFromAliasStub, })); const request = Object.assign({}, pkgInstallRequest, { Status: 'SUCCESS' }); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(request); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(request); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', 'my_package_alias', '-o', testOrg.username], config); stubSpinner(cmd); const result = await cmd.run(); @@ -312,8 +314,8 @@ describe('package:install', () => { it('should use installation key as password', async () => { const installationkey = '1234abcd'; const expectedCreateRequest = Object.assign({}, pkgInstallCreateRequest, { Password: installationkey }); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '-k', installationkey, '-o', testOrg.username], config); stubSpinner(cmd); const result = await cmd.run(); @@ -329,8 +331,8 @@ describe('package:install', () => { SkipHandlers: 'FeatureEnforcement', }; const expectedCreateRequest = Object.assign({}, pkgInstallCreateRequest, overrides); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install( [ @@ -358,11 +360,11 @@ describe('package:install', () => { it('should listen for PackageInstallRequest:warning events and log warnings', async () => { const warningMsg = 'test warning message'; - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').callsFake(async () => { + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').callsFake(async () => { await Lifecycle.getInstance().emit(PackageEvents.install.warning, warningMsg); return pkgInstallRequest; }); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '-o', testOrg.username], config); stubSpinner(cmd); @@ -377,17 +379,13 @@ describe('package:install', () => { it('should listen for Package/install-status polling events and log statuses', async () => { const successRequest = Object.assign({}, pkgInstallRequest, { Status: 'SUCCESS' }); - const waitForPublishStub = stubMethod( - $$.SANDBOX, - SubscriberPackageVersion.prototype, - 'waitForPublish' - ).resolves(); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').callsFake(async () => { + const waitForPublishStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'waitForPublish').resolves(); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').callsFake(async () => { await Lifecycle.getInstance().emit(PackageEvents.install.status, pkgInstallRequest); await Lifecycle.getInstance().emit(PackageEvents.install.status, successRequest); return pkgInstallRequest; }); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '-w', '1', '-o', testOrg.username], config); stubSpinner(cmd); @@ -401,12 +399,8 @@ describe('package:install', () => { it('should listen for Package/install-status and Package/install/subscriber-status polling events and log statuses', async () => { const successRequest = Object.assign({}, pkgInstallRequest, { Status: 'SUCCESS' }); - const waitForPublishStub = stubMethod( - $$.SANDBOX, - SubscriberPackageVersion.prototype, - 'waitForPublish' - ).resolves(); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').callsFake(async () => { + const waitForPublishStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'waitForPublish').resolves(); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').callsFake(async () => { await Lifecycle.getInstance().emit( PackageEvents.install['subscriber-status'], 'PACKAGE_UNAVAILABLE' as InstallValidationStatus @@ -419,7 +413,7 @@ describe('package:install', () => { await Lifecycle.getInstance().emit(PackageEvents.install.status, successRequest); return pkgInstallRequest; }); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves(subscriberPackageVersion); const cmd = new Install(['-p', myPackageVersion04t, '-w', '1', '-b', '2', '-o', testOrg.username], config); stubSpinner(cmd); @@ -443,8 +437,8 @@ describe('package:install', () => { describe('confirm upgrade type', () => { it('should NOT confirm UpgradeType with --no-prompt flag', async () => { - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves({ + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves({ ...subscriberPackageVersion, Package2ContainerOptions: 'Unlocked', }); @@ -461,8 +455,8 @@ describe('package:install', () => { }); it('should confirm UpgradeType when NO --no-prompt flag', async () => { - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves({ + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves({ ...subscriberPackageVersion, Package2ContainerOptions: 'Unlocked', }); @@ -477,8 +471,8 @@ describe('package:install', () => { }); it('should confirm UpgradeType and throw with no consent', async () => { - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves({ + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves({ ...subscriberPackageVersion, Package2ContainerOptions: 'Unlocked', }); @@ -495,8 +489,8 @@ describe('package:install', () => { }); it('should NOT confirm UpgradeType with non-Unlocked packages', async () => { - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves({ + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves({ ...subscriberPackageVersion, Package2ContainerOptions: 'Managed', }); @@ -517,10 +511,10 @@ describe('package:install', () => { it('should NOT confirm external sites with --no-prompt flag', async () => { const expectedCreateRequest = Object.assign({}, pkgInstallCreateRequest, { EnableRss: true }); - getExternalSitesStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'getExternalSites').resolves( + getExternalSitesStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'getExternalSites').resolves( extSites ); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); const cmd = new Install(['-p', myPackageVersion04t, '--no-prompt', '-o', testOrg.username], config); stubSpinner(cmd); @@ -538,8 +532,8 @@ describe('package:install', () => { EnableRss: true, Password: installationkey, }); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves({ + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves({ ...subscriberPackageVersion, RemoteSiteSettings: { settings: ['url/for/site1'] }, CspTrustedSites: { settings: ['url/for/site2'] }, @@ -559,8 +553,8 @@ describe('package:install', () => { it('should confirm external sites when NO --no-prompt flag (yes answer)', async () => { const expectedCreateRequest = Object.assign({}, pkgInstallCreateRequest, { EnableRss: true }); - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves({ + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves({ ...subscriberPackageVersion, RemoteSiteSettings: { settings: [{ url: 'url/for/site1' }] }, CspTrustedSites: { settings: [{ endpointUrl: 'url/for/site2' }] }, @@ -578,8 +572,8 @@ describe('package:install', () => { }); it('should confirm external sites when NO --no-prompt flag (no answer)', async () => { - installStub = stubMethod($$.SANDBOX, SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); - stubMethod($$.SANDBOX, Connection.prototype, 'singleRecordQuery').resolves({ + installStub = $$.SANDBOX.stub(SubscriberPackageVersion.prototype, 'install').resolves(pkgInstallRequest); + $$.SANDBOX.stub(Connection.prototype, 'singleRecordQuery').resolves({ ...subscriberPackageVersion, RemoteSiteSettings: { settings: [{ url: 'url/for/site1' }] }, CspTrustedSites: { settings: [{ endpointUrl: 'url/for/site2' }] }, diff --git a/test/commands/package/packageList.nut.ts b/test/commands/package/packageList.nut.ts index e13c3eda..61df62d4 100644 --- a/test/commands/package/packageList.nut.ts +++ b/test/commands/package/packageList.nut.ts @@ -22,28 +22,12 @@ describe('package list', () => { project: { name: 'packageList' }, }); hubOrg = await Org.create({ aliasOrUsername: session.hubOrg.username }); - apiVersion = hubOrg.getConnection().getApiVersion() + apiVersion = hubOrg.getConnection().getApiVersion(); }); after(async () => { await session?.clean(); }); - it('should list packages in dev hub - human readable results', () => { - const command = `package:list -v ${session.hubOrg.username}`; - const output = execCmd(command, { ensureExitCode: 0 }).shellOutput.stdout; - expect(output).to.contain('=== Packages'); - expect(output).to.match(/Namespace Prefix\s+?Name\s+?Id\s+?Alias\s+?Description\s+?Type/); - }); - it('should list packages in dev hub - verbose human readable results', () => { - const command = `package:list -v ${session.hubOrg.username} --verbose`; - const output = execCmd(command, { ensureExitCode: 0 }).shellOutput.stdout; - expect(output).to.contain('=== Packages'); - let headerExpression = 'Namespace Prefix\\s+?Name\\s+?Id\\s+?Alias\\s+?Description\\s+?Type\\s+?Subscriber Package Id\\s+?Converted From Package Id\\s+?Org-Dependent Unlocked Package\\s+?Error Notification Username\\s+?App Analytics Enabled\\s+?Created By' - if (apiVersion < '59.0') { - headerExpression = headerExpression.replace('App Analytics Enabled\\s+?', '') - } - expect(output).to.match(new RegExp(headerExpression)); - }); it('should list packages in dev hub - json results', async () => { const packages = await Package.list(hubOrg.getConnection()); const command = `package:list -v ${session.hubOrg.username} --json`; @@ -72,4 +56,21 @@ describe('package list', () => { expect(output?.result.length).to.have.within(notDeprecatedCount - 5, notDeprecatedCount + 5); expect(output?.result[0]).to.have.keys(keys); }); + it('should list packages in dev hub - human readable results', () => { + const command = `package:list -v ${session.hubOrg.username}`; + const output = execCmd(command, { ensureExitCode: 0 }).shellOutput.stdout; + expect(output).to.contain('=== Packages'); + expect(output).to.match(/Namespace Prefix\s+?Name\s+?Id\s+?Alias\s+?Description\s+?Type/); + }); + it('should list packages in dev hub - verbose human readable results', () => { + const command = `package:list -v ${session.hubOrg.username} --verbose`; + const output = execCmd(command, { ensureExitCode: 0 }).shellOutput.stdout; + expect(output).to.contain('=== Packages'); + let headerExpression = + 'Namespace Prefix\\s+?Name\\s+?Id\\s+?Alias\\s+?Description\\s+?Type\\s+?Subscriber Package Id\\s+?Converted From Package Id\\s+?Org-Dependent Unlocked Package\\s+?Error Notification Username\\s+?App Analytics Enabled\\s+?Created By'; + if (apiVersion < '59.0') { + headerExpression = headerExpression.replace('App Analytics Enabled\\s+?', ''); + } + expect(output).to.match(new RegExp(headerExpression)); + }); }); diff --git a/test/commands/package/version.delete.test.ts b/test/commands/package/version.delete.test.ts index cfc419df..40780e11 100644 --- a/test/commands/package/version.delete.test.ts +++ b/test/commands/package/version.delete.test.ts @@ -6,7 +6,6 @@ */ import { resolve } from 'node:path'; import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; -import { stubMethod } from '@salesforce/ts-sinon'; import { Config } from '@oclif/core'; import { expect } from 'chai'; import { PackageSaveResult, PackageVersion } from '@salesforce/packaging'; @@ -32,7 +31,7 @@ describe('package:version:delete', () => { beforeEach(async () => { uxSuccessStub = sandbox.stub(SfCommand.prototype, 'logSuccess'); - uxConfirmStub = stubMethod($$.SANDBOX, SfCommand.prototype, 'confirm'); + uxConfirmStub = $$.SANDBOX.stub(SfCommand.prototype, 'confirm'); deleteStub = $$.SANDBOX.stub(); undeleteStub = $$.SANDBOX.stub(); diff --git a/test/commands/package1/versionCreate.nut.ts b/test/commands/package1/versionCreate.nut.ts index 89bc191c..78d78519 100644 --- a/test/commands/package1/versionCreate.nut.ts +++ b/test/commands/package1/versionCreate.nut.ts @@ -47,7 +47,7 @@ describe('package1:version:create', () => { const authPath = path.join(process.cwd(), 'authUrl.txt'); await fs.promises.writeFile(authPath, process.env.ONEGP_TESTKIT_AUTH_URL, 'utf8'); - execCmd(`auth:sfdxurl:store -f ${authPath} -a 1gp`, { ensureExitCode: 0 }); + execCmd(`auth:sfdxurl:store -f ${authPath} -a 1gp`, { ensureExitCode: 0, cli: 'sf' }); packageId = execCmd<[{ MetadataPackageId: string }]>('package1:version:list --json -o 1gp', { ensureExitCode: 0, diff --git a/yarn.lock b/yarn.lock index 947de50b..8a0fe319 100644 --- a/yarn.lock +++ b/yarn.lock @@ -952,10 +952,10 @@ strip-ansi "6.0.1" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.14", "@salesforce/core@^5.3.17", "@salesforce/core@^5.3.9": - version "5.3.18" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.18.tgz#c0b7b59fbef7f0689e88968c614dd1ae2c420f02" - integrity sha512-/Ag7elFngTT13PRblSPJPB2Q+xk3jR2SX8bYa83fcQljVF7ApGB5qtFpauXmUv8lgRnN+F01HNqM16iszAMP9w== +"@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.14", "@salesforce/core@^5.3.17", "@salesforce/core@^5.3.20": + version "5.3.20" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.20.tgz#4e934d4551bb70423cb1c4115615bc41cffca41e" + integrity sha512-y+O6O2c8OYFDrAy2qsG+pAcNxoyL14nmBXcBRRcYA7Huj8ikK+aLJK84PuVAYdQz+hNwImQF+69IWtDkpK4Irg== dependencies: "@salesforce/kit" "^3.0.15" "@salesforce/schemas" "^1.6.1" @@ -976,21 +976,21 @@ semver "^7.5.4" ts-retry-promise "^0.7.1" -"@salesforce/dev-config@^4.0.1": +"@salesforce/dev-config@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@salesforce/dev-config/-/dev-config-4.1.0.tgz#e529576466d074e7a5f1441236510fef123da01e" integrity sha512-2iDDepiIwjXHS5IVY7pwv8jMo4xWosJ7p/UTj+lllpB/gnJiYLhjJPE4Z3FCGFKyvfg5jGaimCd8Ca6bLGsCQA== -"@salesforce/dev-scripts@^6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-6.0.3.tgz#6cf4504fd0ec8b4685e729b26685eed60f9c8b26" - integrity sha512-WLl1N07oNeRywdypwUrebX/kCkSm3IzmAQpUt4q4Sk8r4vTWv5b6F0pHLv0pGS8/QWNJT7xWGZDF1lgJBHOsmA== +"@salesforce/dev-scripts@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-6.0.4.tgz#0043b8ef4b970f8c2f945cc74eada3b1db52fa9a" + integrity sha512-/kdl99bHaNeCoVwfeQhIaKzorcmgpe/nZhlT7ru+If+18NRvBgW5OGmh++Q/NsraaYbsQ/0cDcGNz1dnQ11weA== dependencies: "@commitlint/cli" "^17.1.2" "@commitlint/config-conventional" "^17.1.0" - "@salesforce/dev-config" "^4.0.1" + "@salesforce/dev-config" "^4.1.0" "@salesforce/prettier-config" "^0.0.3" - "@types/chai" "^4.2.11" + "@types/chai" "^4.3.9" "@types/mocha" "^10.0.3" "@types/node" "^18" "@types/sinon" "^10.0.20" @@ -1020,16 +1020,16 @@ "@salesforce/ts-types" "^2.0.9" tslib "^2.6.2" -"@salesforce/packaging@^2.4.19": - version "2.4.19" - resolved "https://registry.yarnpkg.com/@salesforce/packaging/-/packaging-2.4.19.tgz#4a0076555e8f35782156eac2f6d78398226865c2" - integrity sha512-6I+DxkQg6/K3z3B5IeQqESEE2/ZBpDukTLzt+tlI19hZnBE3vzxQZA4LHiN/nhjXeUEhS6E9fU1ZRDGZmTyqgg== +"@salesforce/packaging@^2.4.21": + version "2.4.21" + resolved "https://registry.yarnpkg.com/@salesforce/packaging/-/packaging-2.4.21.tgz#11d2251fe74510f743b759455634337cb7f13c73" + integrity sha512-/OAVwxmtlMylcj1pAj0kz6562spDGqTH68IBaxUqLWFCgO9R3E4MGa+9oNoAgipUDEpIAXZhPdzNC9ctN/0Zrg== dependencies: "@oclif/core" "^2.15.0" "@salesforce/core" "^5.3.14" "@salesforce/kit" "^3.0.15" "@salesforce/schemas" "^1.6.1" - "@salesforce/source-deploy-retrieve" "^9.7.28" + "@salesforce/source-deploy-retrieve" "^9.8.5" "@salesforce/ts-types" "^2.0.9" fast-xml-parser "^4.3.1" globby "^11" @@ -1039,21 +1039,6 @@ jsforce "^2.0.0-beta.28" jszip "^3.10.1" -"@salesforce/plugin-auth@^2.8.25": - version "2.8.25" - resolved "https://registry.yarnpkg.com/@salesforce/plugin-auth/-/plugin-auth-2.8.25.tgz#45a7fe917e704453028e83d2ae3e3bd8d9e03f43" - integrity sha512-usOwqPCHrtXZUMJS/xQjmPDIEZtPDVC/dCPmRJZMQ8iQglauSfinxoI2o8eTv/aDIckZbktM7p4UxXb+FPq92w== - dependencies: - "@oclif/core" "^2.15.0" - "@salesforce/core" "^5.3.14" - "@salesforce/kit" "^3.0.15" - "@salesforce/sf-plugins-core" "^3.1.28" - "@salesforce/ts-types" "^2.0.9" - chalk "^4.1.2" - inquirer "^8.2.6" - open "^8.2.1" - tslib "^2" - "@salesforce/plugin-command-reference@^3.0.46": version "3.0.46" resolved "https://registry.yarnpkg.com/@salesforce/plugin-command-reference/-/plugin-command-reference-3.0.46.tgz#8ade210de4c235fa8daa9b59272481bea61bcd54" @@ -1090,13 +1075,13 @@ chalk "^4" inquirer "^8.2.5" -"@salesforce/source-deploy-retrieve@^9.7.28": - version "9.8.0" - resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-9.8.0.tgz#c2643d0f413d9211f04245efab68f4d6e9a50f7b" - integrity sha512-coPkgS1CL7rJXtoozC/yR3GcrTmUsgv1s5FPyVXoXtMTALqS0iXcsyLw0J9CvrNiksPS3WbLlfUiEtgmvQyqdg== +"@salesforce/source-deploy-retrieve@^9.8.5": + version "9.8.6" + resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-9.8.6.tgz#3b9240bc776a44bc740e59acbd86da3072f3efdc" + integrity sha512-avsfR/hB54ZdSOI3bYdUqRPQbjExKEwAZfsIbs6N1vtidPrc1TSHvloCZhY0Clou+vLgjabIHEHVyQJUln0FKA== dependencies: - "@salesforce/core" "^5.3.10" - "@salesforce/kit" "^3.0.13" + "@salesforce/core" "^5.3.17" + "@salesforce/kit" "^3.0.15" "@salesforce/ts-types" "^2.0.9" fast-levenshtein "^3.0.0" fast-xml-parser "^4.3.2" @@ -1108,15 +1093,6 @@ minimatch "^5.1.6" proxy-agent "^6.3.1" -"@salesforce/ts-sinon@^1.4.19": - version "1.4.19" - resolved "https://registry.yarnpkg.com/@salesforce/ts-sinon/-/ts-sinon-1.4.19.tgz#64157b6c8cf4a3c637867e2ddd90c2d058c334f7" - integrity sha512-vopxKrI6QD0OCtPlge1eGGHFWLkoDee7KaB/dpGeRwioeNfCVJ8ikELN0hv0zq9Ys6gUYWYcdpxzTP1upslCJA== - dependencies: - "@salesforce/ts-types" "^2.0.9" - sinon "^5.1.1" - tslib "^2.6.1" - "@salesforce/ts-types@^2.0.6", "@salesforce/ts-types@^2.0.7", "@salesforce/ts-types@^2.0.9": version "2.0.9" resolved "https://registry.yarnpkg.com/@salesforce/ts-types/-/ts-types-2.0.9.tgz#66bff7b41720065d6b01631b6f6a3ccca02857c5" @@ -1149,7 +1125,7 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== @@ -1163,30 +1139,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/formatio@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" - integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== - dependencies: - samsam "1.3.0" - -"@sinonjs/formatio@^3.2.1": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" - integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ== - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^3.1.0" - -"@sinonjs/samsam@^3.1.0": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" - integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== - dependencies: - "@sinonjs/commons" "^1.3.0" - array-from "^2.1.1" - lodash "^4.17.15" - "@sinonjs/samsam@^5.3.1": version "5.3.1" resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" @@ -1332,10 +1284,10 @@ "@types/node" "*" "@types/responselike" "^1.0.0" -"@types/chai@^4.2.11": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" - integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== +"@types/chai@^4.3.9": + version "4.3.10" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.10.tgz#2ad2959d1767edee5b0e4efb1a0cd2b500747317" + integrity sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg== "@types/cli-progress@^3.11.0": version "3.11.0" @@ -1817,11 +1769,6 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -2822,11 +2769,6 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" @@ -2877,11 +2819,6 @@ diff@5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diff@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - diff@^4.0.1, diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -3189,12 +3126,12 @@ eslint-plugin-jsdoc@^46.8.2: semver "^7.5.4" spdx-expression-parse "^3.0.1" -eslint-plugin-sf-plugin@^1.16.10: - version "1.16.10" - resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.16.10.tgz#b398a1f98ae3009dc6bdcff361a9952633e2d0aa" - integrity sha512-CPYGv2EqZHAIAEAhAs0M0QjwIqurgBWPUPESaRUzrEyeRFoJKtkiIULqjYT31Z7w8gnIyNO8rFphfsWamjJTNg== +eslint-plugin-sf-plugin@^1.16.15: + version "1.16.15" + resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.16.15.tgz#99d0b522bb7eebefc8e456aa4b725f6fbbf2fa01" + integrity sha512-Vog0xc8DwLOCoPbwFx9GxaXHqpG0FvlpITkGzp//SdjcV7wqVW4CT76JES8IGenGv6mAecW5VqSyQzsIHFZGew== dependencies: - "@salesforce/core" "^5.3.9" + "@salesforce/core" "^5.3.20" "@typescript-eslint/utils" "^5.59.11" eslint-plugin-unicorn@^49.0.0: @@ -4295,7 +4232,7 @@ inquirer@^7.0.0: strip-ansi "^6.0.0" through "^2.3.6" -inquirer@^8.0.0, inquirer@^8.2.5, inquirer@^8.2.6: +inquirer@^8.0.0, inquirer@^8.2.5: version "8.2.6" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== @@ -4410,7 +4347,7 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0, is-docker@^2.1.1: +is-docker@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -5072,18 +5009,6 @@ log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -lolex@^2.4.2: - version "2.7.5" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" - integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== - -lolex@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" - integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== - dependencies: - "@sinonjs/commons" "^1.7.0" - loupe@^2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" @@ -5600,17 +5525,6 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -nise@^1.3.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" - integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ== - dependencies: - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^5.0.1" - path-to-regexp "^1.7.0" - nise@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" @@ -6035,15 +5949,6 @@ open@^7.0.0: is-docker "^2.0.0" is-wsl "^2.1.1" -open@^8.2.1: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -6944,11 +6849,6 @@ safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -samsam@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== - sax@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" @@ -7127,19 +7027,6 @@ sinon@10.0.0: nise "^4.1.0" supports-color "^7.1.0" -sinon@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-5.1.1.tgz#19c59810ffb733ea6e76a28b94a71fc4c2f523b8" - integrity sha512-h/3uHscbt5pQNxkf7Y/Lb9/OM44YNCicHakcq73ncbrIS8lXg+ZGOZbtuU+/km4YnyiCYfQQEwANaReJz7KDfw== - dependencies: - "@sinonjs/formatio" "^2.0.0" - diff "^3.5.0" - lodash.get "^4.4.2" - lolex "^2.4.2" - nise "^1.3.3" - supports-color "^5.4.0" - type-detect "^4.0.8" - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -7444,7 +7331,7 @@ supports-color@8.1.1, supports-color@^8.1.0, supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -7632,7 +7519,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2: +tslib@^2, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.5.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==