Skip to content

Commit c64812e

Browse files
fix: support SF_ and SFDX_ prefixed env vars (#668)
* chore: lint fixes * chore: bump deps --------- Co-authored-by: Cristian Dominguez <cdominguez@salesforce.com>
1 parent 236a0c6 commit c64812e

File tree

4 files changed

+93
-77
lines changed

4 files changed

+93
-77
lines changed

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@
5050
},
5151
"dependencies": {
5252
"@oclif/core": "^4.0.18",
53-
"@salesforce/core": "^8.4.0",
53+
"@salesforce/core": "^8.5.4",
5454
"@salesforce/kit": "^3.2.1",
55-
"@salesforce/source-deploy-retrieve": "^12.5.1",
55+
"@salesforce/source-deploy-retrieve": "^12.6.0",
5656
"@salesforce/ts-types": "^2.0.12",
5757
"fast-xml-parser": "^4.4.1",
5858
"graceful-fs": "^4.2.11",

src/shared/remoteSourceTrackingService.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import path from 'node:path';
99
import fs from 'node:fs';
1010
import { EOL } from 'node:os';
1111
import { retryDecorator, NotRetryableError } from 'ts-retry-promise';
12-
import { Logger, Org, Messages, Lifecycle, SfError, Connection, lockInit } from '@salesforce/core';
13-
import { env, Duration, parseJsonMap } from '@salesforce/kit';
12+
import { envVars as env, Logger, Org, Messages, Lifecycle, SfError, Connection, lockInit } from '@salesforce/core';
13+
import { Duration, parseJsonMap } from '@salesforce/kit';
1414
import { isString } from '@salesforce/ts-types';
1515
import {
1616
ChangeResult,
@@ -40,7 +40,7 @@ const FILENAME = 'maxRevision.json';
4040
*/
4141
const POLLING_DELAY_MS = 1000;
4242
const CONSECUTIVE_EMPTY_POLLING_RESULT_LIMIT =
43-
(env.getNumber('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT') ?? 120) / Duration.milliseconds(POLLING_DELAY_MS).seconds;
43+
(env.getNumber('SF_SOURCE_MEMBER_POLLING_TIMEOUT') ?? 120) / Duration.milliseconds(POLLING_DELAY_MS).seconds;
4444

4545
/** Options for RemoteSourceTrackingService.getInstance */
4646
export type RemoteSourceTrackingServiceOptions = {
@@ -237,8 +237,8 @@ export class RemoteSourceTrackingService {
237237
* @param pollingTimeout maximum amount of time in seconds to poll for SourceMembers
238238
*/
239239
public async pollForSourceTracking(expectedMembers: RemoteSyncInput[]): Promise<void> {
240-
if (env.getBoolean('SFDX_DISABLE_SOURCE_MEMBER_POLLING', false)) {
241-
this.logger.warn('Not polling for SourceMembers since SFDX_DISABLE_SOURCE_MEMBER_POLLING = true.');
240+
if (env.getBoolean('SF_DISABLE_SOURCE_MEMBER_POLLING')) {
241+
this.logger.warn('Not polling for SourceMembers since SF_DISABLE_SOURCE_MEMBER_POLLING = true.');
242242
return;
243243
}
244244

@@ -572,7 +572,7 @@ const readFileContents = async (filePath: string): Promise<Contents | Record<str
572572
export const calculateTimeout =
573573
(logger: PinoLogger) =>
574574
(memberCount: number): Duration => {
575-
const overriddenTimeout = env.getNumber('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT', 0);
575+
const overriddenTimeout = env.getNumber('SF_SOURCE_MEMBER_POLLING_TIMEOUT', 0);
576576
if (overriddenTimeout > 0) {
577577
logger.debug(`Overriding SourceMember polling timeout to ${overriddenTimeout}`);
578578
return Duration.seconds(overriddenTimeout);

test/unit/remoteSourceTracking.test.ts

+58-9
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ import { writeFile, mkdir, readFile } from 'node:fs/promises';
1111
import { existsSync } from 'node:fs';
1212
import { sep, dirname } from 'node:path';
1313
import { MockTestOrgData, instantiateContext, stubContext, restoreContext } from '@salesforce/core/testSetup';
14-
import { Logger, Messages, Org } from '@salesforce/core';
15-
// eslint-disable-next-line no-restricted-imports
16-
import * as kit from '@salesforce/kit';
14+
import { EnvVars, envVars, Logger, Messages, Org } from '@salesforce/core';
1715
import { expect } from 'chai';
1816
import { ComponentStatus } from '@salesforce/source-deploy-retrieve';
1917
import { RemoteSourceTrackingService, calculateTimeout, Contents } from '../../src/shared/remoteSourceTrackingService';
@@ -42,6 +40,13 @@ const getMemberRevisionEntries = (revision: number, synced = false): { [key: str
4240
return sourceMemberEntries;
4341
};
4442

43+
const reResolveEnvVars = (): void => {
44+
/* eslint-disable @typescript-eslint/no-unsafe-call */
45+
// @ts-ignore to force a re-resolve
46+
envVars.resolve();
47+
/* eslint-enable @typescript-eslint/no-unsafe-call */
48+
};
49+
4550
describe('remoteSourceTrackingService', () => {
4651
const username = 'foo@bar.com';
4752
let orgId: string;
@@ -408,6 +413,13 @@ describe('remoteSourceTrackingService', () => {
408413
state: ComponentStatus.Changed,
409414
}));
410415

416+
afterEach(() => {
417+
envVars.unset('SFDX_DISABLE_SOURCE_MEMBER_POLLING');
418+
envVars.unset('SF_DISABLE_SOURCE_MEMBER_POLLING');
419+
envVars.unset('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT');
420+
envVars.unset('SF_SOURCE_MEMBER_POLLING_TIMEOUT');
421+
});
422+
411423
it('should sync SourceMembers when query results match', async () => {
412424
// @ts-ignore
413425
const queryStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersFrom');
@@ -469,15 +481,31 @@ describe('remoteSourceTrackingService', () => {
469481
});
470482
});
471483
it('should not poll when SFDX_DISABLE_SOURCE_MEMBER_POLLING=true', async () => {
472-
const getBooleanStub = $$.SANDBOX.stub(kit.env, 'getBoolean').callsFake(() => true);
484+
envVars.setString('SFDX_DISABLE_SOURCE_MEMBER_POLLING', 'true');
485+
486+
reResolveEnvVars();
487+
const getBooleanSpy = $$.SANDBOX.spy(EnvVars.prototype, 'getBoolean');
488+
489+
// @ts-ignore
490+
const trackSpy = $$.SANDBOX.stub(remoteSourceTrackingService, 'trackSourceMembers');
491+
492+
// @ts-ignore
493+
await remoteSourceTrackingService.pollForSourceTracking(memberNames, 2);
494+
expect(trackSpy.called).to.equal(false);
495+
expect(getBooleanSpy.calledOnce).to.equal(true);
496+
});
497+
it('should not poll when SF_DISABLE_SOURCE_MEMBER_POLLING=true', async () => {
498+
envVars.setString('SF_DISABLE_SOURCE_MEMBER_POLLING', 'true');
499+
reResolveEnvVars();
500+
const getBooleanSpy = $$.SANDBOX.spy(EnvVars.prototype, 'getBoolean');
473501

474502
// @ts-ignore
475503
const trackSpy = $$.SANDBOX.stub(remoteSourceTrackingService, 'trackSourceMembers');
476504

477505
// @ts-ignore
478506
await remoteSourceTrackingService.pollForSourceTracking(memberNames, 2);
479507
expect(trackSpy.called).to.equal(false);
480-
expect(getBooleanStub.calledOnce).to.equal(true);
508+
expect(getBooleanSpy.calledOnce).to.equal(true);
481509
});
482510

483511
describe('timeout handling', () => {
@@ -511,8 +539,26 @@ describe('remoteSourceTrackingService', () => {
511539
}).timeout(10_000);
512540

513541
it('should stop if SFDX_SOURCE_MEMBER_POLLING_TIMEOUT is exceeded', async () => {
542+
envVars.setString('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT', '3');
543+
reResolveEnvVars();
514544
// @ts-ignore
515-
$$.SANDBOX.stub(kit.env, 'getString').callsFake(() => '3');
545+
const queryStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersFrom').resolves([]);
546+
547+
// @ts-ignore
548+
const trackSpy = $$.SANDBOX.stub(remoteSourceTrackingService, 'trackSourceMembers');
549+
550+
// @ts-ignore
551+
await remoteSourceTrackingService.pollForSourceTracking(memberNames);
552+
expect(trackSpy.called).to.equal(true);
553+
554+
expect(warns.size).to.be.greaterThan(0);
555+
const expectedMsg = 'Polling for 3 SourceMembers timed out after 3 attempts';
556+
expect(Array.from(warns).some((w) => w.includes(expectedMsg))).to.equal(true);
557+
expect(queryStub.called).to.equal(true);
558+
});
559+
it('should stop if SF_SOURCE_MEMBER_POLLING_TIMEOUT is exceeded', async () => {
560+
envVars.setString('SF_SOURCE_MEMBER_POLLING_TIMEOUT', '3');
561+
reResolveEnvVars();
516562
// @ts-ignore
517563
const queryStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersFrom').resolves([]);
518564

@@ -587,7 +633,8 @@ describe('calculateTimeout', () => {
587633
const logger = new Logger({ useMemoryLogger: true, name: 'test' }).getRawLogger();
588634
const functionUnderTest = calculateTimeout(logger);
589635
afterEach(() => {
590-
delete process.env.SFDX_SOURCE_MEMBER_POLLING_TIMEOUT;
636+
envVars.unset('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT');
637+
envVars.unset('SF_SOURCE_MEMBER_POLLING_TIMEOUT');
591638
});
592639
it('0 members => 5 sec', () => {
593640
expect(functionUnderTest(0).seconds).to.equal(5);
@@ -596,11 +643,13 @@ describe('calculateTimeout', () => {
596643
expect(functionUnderTest(10_000).seconds).to.equal(505);
597644
});
598645
it('override 60 in env', () => {
599-
process.env.SFDX_SOURCE_MEMBER_POLLING_TIMEOUT = '60';
646+
envVars.setString('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT', '60');
647+
reResolveEnvVars();
600648
expect(functionUnderTest(10_000).seconds).to.equal(60);
601649
});
602650
it('override 0 in env has no effect', () => {
603-
process.env.SFDX_SOURCE_MEMBER_POLLING_TIMEOUT = '0';
651+
envVars.setString('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT', '0');
652+
reResolveEnvVars();
604653
expect(functionUnderTest(10_000).seconds).to.equal(505);
605654
});
606655
});

yarn.lock

+27-60
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@
463463
"@jridgewell/resolve-uri" "^3.1.0"
464464
"@jridgewell/sourcemap-codec" "^1.4.14"
465465

466-
"@jsforce/jsforce-node@^3.4.0":
466+
"@jsforce/jsforce-node@^3.4.1":
467467
version "3.4.1"
468468
resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.4.1.tgz#36f5cba775b395eeedba676a78eafe447c3f4b28"
469469
integrity sha512-PsBKfglH0/8W/Srr4LsxEFsVmjmZjEj/T4XLGpbBoK8yVObwbiMk4VqwA6XwiA6SHqnEqqQbHZxk2rr7dZC+4A==
@@ -546,13 +546,13 @@
546546
strip-ansi "6.0.1"
547547
ts-retry-promise "^0.8.1"
548548

549-
"@salesforce/core@^8.3.0", "@salesforce/core@^8.4.0":
550-
version "8.4.0"
551-
resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.4.0.tgz#d2ddfe07994c42b1e917e581e9cf47ad27b97a93"
552-
integrity sha512-P+n0+Sp+v6voLTShW2E5sdF7gCUxEXJjNcc9Jtto0ZMyQesmQJ6WGpWmAuRoi+BVYc8OPSlEffndaYDAo/u73g==
549+
"@salesforce/core@^8.3.0", "@salesforce/core@^8.5.2", "@salesforce/core@^8.5.4":
550+
version "8.5.4"
551+
resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.5.4.tgz#1cdd669462d2c2859b72135d1138a1b790b1fbcc"
552+
integrity sha512-dO8tzFxq811qNPeKPPO2OA2KPYW5rO0YRinW/+7zmRJW3EtNpe93dsQVGwBSAAYrSbYeBwiKdliNqNTN7tKJ0A==
553553
dependencies:
554-
"@jsforce/jsforce-node" "^3.4.0"
555-
"@salesforce/kit" "^3.1.6"
554+
"@jsforce/jsforce-node" "^3.4.1"
555+
"@salesforce/kit" "^3.2.2"
556556
"@salesforce/schemas" "^1.9.0"
557557
"@salesforce/ts-types" "^2.0.10"
558558
ajv "^8.17.1"
@@ -607,10 +607,10 @@
607607
typescript "^5.5.4"
608608
wireit "^0.14.5"
609609

610-
"@salesforce/kit@^3.1.6", "@salesforce/kit@^3.2.1":
611-
version "3.2.1"
612-
resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-3.2.1.tgz#3de2c9ff52710a169fc887716d97c00d26065c56"
613-
integrity sha512-LrZH2F06XPLUTMXC3av6A0VDAJykUqRtYB6tTjAKzwS1gCnp6BEn6VyjZNg0Fg/Kfp6OTrMxiIgbUFsNehEV7A==
610+
"@salesforce/kit@^3.2.1", "@salesforce/kit@^3.2.2":
611+
version "3.2.2"
612+
resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-3.2.2.tgz#2a0db472116a416cb12b510d546cb35a582d619a"
613+
integrity sha512-Qh+Jx65LKR3BlH+bxNBbvI4+/+/igAJ9x2iEDM3tHb3B2JCEnssPP0lw+K/zWHsdtk+OorBiKpHaC6RrjW+9fw==
614614
dependencies:
615615
"@salesforce/ts-types" "^2.0.12"
616616

@@ -624,19 +624,20 @@
624624
resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.9.0.tgz#ba477a112653a20b4edcf989c61c57bdff9aa3ca"
625625
integrity sha512-LiN37zG5ODT6z70sL1fxF7BQwtCX9JOWofSU8iliSNIM+WDEeinnoFtVqPInRSNt8I0RiJxIKCrqstsmQRBNvA==
626626

627-
"@salesforce/source-deploy-retrieve@^12.5.1":
628-
version "12.5.1"
629-
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.5.1.tgz#55e915201b2c9320b9662b2c8500a191c8770ecf"
630-
integrity sha512-jakBWFSIb8oZlUAf0QKHXaeFA/KuTQZwaKZVevdwaiuy43lJHzVVrSRfcNv/kjXxmg0oq5TAI8vUo2CC5Hq04A==
627+
"@salesforce/source-deploy-retrieve@^12.6.0":
628+
version "12.6.2"
629+
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.6.2.tgz#eb9ab120621c80a404b9ec45a2b102f3f2befbff"
630+
integrity sha512-ucEt/CyzL4ovMc2cYREk4meQzKe6/FlY/D09yLmOQ118Oec680ehEhJ1kGRE/I7HTzfgQP3Fy2GzhQX1bOYC5Q==
631631
dependencies:
632-
"@salesforce/core" "^8.4.0"
633-
"@salesforce/kit" "^3.2.1"
632+
"@salesforce/core" "^8.5.2"
633+
"@salesforce/kit" "^3.2.2"
634634
"@salesforce/ts-types" "^2.0.12"
635635
fast-levenshtein "^3.0.0"
636636
fast-xml-parser "^4.4.1"
637637
got "^11.8.6"
638638
graceful-fs "^4.2.11"
639639
ignore "^5.3.2"
640+
isbinaryfile "^5.0.2"
640641
jszip "^3.10.1"
641642
mime "2.6.0"
642643
minimatch "^9.0.5"
@@ -1339,20 +1340,13 @@ brace-expansion@^4.0.0:
13391340
dependencies:
13401341
balanced-match "^3.0.0"
13411342

1342-
braces@^3.0.3:
1343+
braces@^3.0.3, braces@~3.0.2:
13431344
version "3.0.3"
13441345
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
13451346
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
13461347
dependencies:
13471348
fill-range "^7.1.1"
13481349

1349-
braces@~3.0.2:
1350-
version "3.0.2"
1351-
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
1352-
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
1353-
dependencies:
1354-
fill-range "^7.0.1"
1355-
13561350
browser-stdout@^1.3.1:
13571351
version "1.3.1"
13581352
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
@@ -2499,13 +2493,6 @@ filelist@^1.0.4:
24992493
dependencies:
25002494
minimatch "^5.0.1"
25012495

2502-
fill-range@^7.0.1:
2503-
version "7.0.1"
2504-
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
2505-
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
2506-
dependencies:
2507-
to-regex-range "^5.0.1"
2508-
25092496
fill-range@^7.1.1:
25102497
version "7.1.1"
25112498
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
@@ -3307,6 +3294,11 @@ isarray@~1.0.0:
33073294
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
33083295
integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
33093296

3297+
isbinaryfile@^5.0.2:
3298+
version "5.0.2"
3299+
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.2.tgz#fe6e4dfe2e34e947ffa240c113444876ba393ae0"
3300+
integrity sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==
3301+
33103302
isexe@^2.0.0:
33113303
version "2.0.0"
33123304
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -5146,16 +5138,7 @@ srcset@^5.0.0:
51465138
resolved "https://registry.yarnpkg.com/srcset/-/srcset-5.0.0.tgz#9df6c3961b5b44a02532ce6ae4544832609e2e3f"
51475139
integrity sha512-SqEZaAEhe0A6ETEa9O1IhSPC7MdvehZtCnTR0AftXk3QhY2UNgb+NApFOUPZILXk/YTDfFxMTNJOBpzrJsEdIA==
51485140

5149-
"string-width-cjs@npm:string-width@^4.2.0":
5150-
version "4.2.3"
5151-
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
5152-
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
5153-
dependencies:
5154-
emoji-regex "^8.0.0"
5155-
is-fullwidth-code-point "^3.0.0"
5156-
strip-ansi "^6.0.1"
5157-
5158-
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
5141+
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
51595142
version "4.2.3"
51605143
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
51615144
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -5214,14 +5197,7 @@ string_decoder@~1.1.1:
52145197
dependencies:
52155198
safe-buffer "~5.1.0"
52165199

5217-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
5218-
version "6.0.1"
5219-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
5220-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
5221-
dependencies:
5222-
ansi-regex "^5.0.1"
5223-
5224-
strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
5200+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
52255201
version "6.0.1"
52265202
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
52275203
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -5721,7 +5697,7 @@ workerpool@^6.5.1:
57215697
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544"
57225698
integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==
57235699

5724-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
5700+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
57255701
version "7.0.0"
57265702
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
57275703
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -5739,15 +5715,6 @@ wrap-ansi@^6.2.0:
57395715
string-width "^4.1.0"
57405716
strip-ansi "^6.0.0"
57415717

5742-
wrap-ansi@^7.0.0:
5743-
version "7.0.0"
5744-
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
5745-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
5746-
dependencies:
5747-
ansi-styles "^4.0.0"
5748-
string-width "^4.1.0"
5749-
strip-ansi "^6.0.0"
5750-
57515718
wrap-ansi@^8.1.0:
57525719
version "8.1.0"
57535720
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"

0 commit comments

Comments
 (0)