socket 0.14.26 → 0.14.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -4,15 +4,18 @@
4
4
  var vendor = require('./vendor.js');
5
5
  var require$$1 = require('node:path');
6
6
  var require$$8$2 = require('node:url');
7
+ var require$$1$2 = require('yoctocolors-cjs');
7
8
  var require$$5$1 = require('pony-cause');
8
9
  var require$$0 = require('node:fs');
9
10
  var require$$1$1 = require('@npmcli/promise-spawn');
10
- var require$$5 = require('yargs-parser');
11
+ var require$$4 = require('yargs-parser');
12
+ var require$$5 = require('@socketsecurity/registry/lib/words');
13
+ var require$$3 = require('@socketregistry/yocto-spinner');
11
14
  var sdk = require('./sdk.js');
12
- var require$$1$2 = require('@inquirer/prompts');
13
- var require$$1$3 = require('node:fs/promises');
15
+ var require$$1$3 = require('@inquirer/prompts');
16
+ var require$$1$4 = require('node:fs/promises');
14
17
  var require$$5$3 = require('npm-package-arg');
15
- var require$$3 = require('semver');
18
+ var require$$3$1 = require('semver');
16
19
  var require$$8$1 = require('tinyglobby');
17
20
  var require$$9$1 = require('yaml');
18
21
  var require$$10 = require('@socketsecurity/registry');
@@ -22,20 +25,23 @@ var require$$13 = require('@socketsecurity/registry/lib/promises');
22
25
  var require$$14 = require('@socketsecurity/registry/lib/regexps');
23
26
  var require$$9 = require('@socketsecurity/registry/lib/strings');
24
27
  var require$$2 = require('browserslist');
25
- var require$$4 = require('which');
28
+ var require$$4$1 = require('which');
26
29
  var require$$5$2 = require('@socketregistry/hyrious__bun.lockb');
27
30
  var require$$6 = require('@socketsecurity/registry/lib/constants');
28
31
  var require$$2$1 = require('@apideck/better-ajv-errors');
29
32
  var require$$6$1 = require('@socketsecurity/config');
30
33
  var pathResolve = require('./path-resolve.js');
31
- var require$$1$4 = require('node:os');
32
- var require$$3$1 = require('node:readline');
34
+ var require$$1$5 = require('node:os');
35
+ var require$$3$2 = require('node:readline');
33
36
  var require$$0$1 = require('node:process');
34
37
  var require$$2$2 = require('node:readline/promises');
35
38
  var require$$2$3 = require('chalk-table');
36
- var require$$2$4 = require('blessed');
37
- var require$$3$2 = require('blessed-contrib');
39
+ var require$$2$4 = require('blessed/lib/widgets/screen');
40
+ var require$$3$3 = require('blessed-contrib/lib/widget/charts/bar');
41
+ var require$$4$2 = require('blessed-contrib/lib/layout/grid');
42
+ var require$$5$4 = require('blessed-contrib/lib/widget/charts/line');
38
43
  var require$$0$2 = require('node:util');
44
+ var require$$2$5 = require('blessed-contrib/lib/widget/table');
39
45
 
40
46
  var cli$1 = {};
41
47
 
@@ -45,7 +51,6 @@ var commands = {};
45
51
 
46
52
  var cdxgen = {};
47
53
 
48
- var _interopRequireDefault$s = vendor.interopRequireDefault.default;
49
54
  Object.defineProperty(cdxgen, "__esModule", {
50
55
  value: true
51
56
  });
@@ -53,8 +58,9 @@ cdxgen.cdxgen = void 0;
53
58
  var _nodeFs$3 = require$$0;
54
59
  var _nodePath$7 = require$$1;
55
60
  var _promiseSpawn$6 = require$$1$1;
56
- var _chalk$j = _interopRequireDefault$s(vendor.source);
57
- var _yargsParser = require$$5;
61
+ var _yoctocolorsCjs$j = require$$1$2;
62
+ var _yargsParser = require$$4;
63
+ var _words$1 = require$$5;
58
64
  const distPath$4 = __dirname;
59
65
  const {
60
66
  execPath
@@ -72,7 +78,7 @@ const {
72
78
  } = process.env;
73
79
  const toLower = arg => arg.toLowerCase();
74
80
  const arrayToLower = arg => arg.map(toLower);
75
- const nodejsPlatformTypes = ['javascript', 'js', 'nodejs', 'npm', 'pnpm', 'ts', 'tsx', 'typescript'];
81
+ const nodejsPlatformTypes = new Set(['javascript', 'js', 'nodejs', 'npm', 'pnpm', 'ts', 'tsx', 'typescript']);
76
82
  const yargsConfig = {
77
83
  configuration: {
78
84
  'camel-case-expansion': false,
@@ -176,12 +182,12 @@ cdxgen.cdxgen = {
176
182
  length: unknownLength
177
183
  } = unknown;
178
184
  if (unknownLength) {
179
- console.error(`Unknown argument${unknownLength > 1 ? 's' : ''}: ${yargv._.join(', ')}`);
185
+ console.error(`Unknown ${(0, _words$1.pluralize)('argument', unknownLength)}: ${yargv._.join(', ')}`);
180
186
  process.exitCode = 1;
181
187
  return;
182
188
  }
183
189
  let cleanupPackageLock = false;
184
- if (yargv.type !== 'yarn' && nodejsPlatformTypes.includes(yargv.type) && (0, _nodeFs$3.existsSync)('./yarn.lock')) {
190
+ if (yargv.type !== 'yarn' && nodejsPlatformTypes.has(yargv.type) && (0, _nodeFs$3.existsSync)('./yarn.lock')) {
185
191
  if ((0, _nodeFs$3.existsSync)('./package-lock.json')) {
186
192
  yargv.type = 'npm';
187
193
  } else {
@@ -216,7 +222,7 @@ cdxgen.cdxgen = {
216
222
  }
217
223
  const fullOutputPath = _nodePath$7.join(process.cwd(), yargv.output);
218
224
  if ((0, _nodeFs$3.existsSync)(fullOutputPath)) {
219
- console.log(_chalk$j.default.cyanBright(`${yargv.output} created!`));
225
+ console.log(_yoctocolorsCjs$j.cyanBright(`${yargv.output} created!`));
220
226
  }
221
227
  }
222
228
  };
@@ -278,7 +284,6 @@ flags$1.validationFlags = {
278
284
 
279
285
  var apiHelpers = {};
280
286
 
281
- var _interopRequireDefault$r = vendor.interopRequireDefault.default;
282
287
  Object.defineProperty(apiHelpers, "__esModule", {
283
288
  value: true
284
289
  });
@@ -286,7 +291,7 @@ apiHelpers.handleAPIError = handleAPIError;
286
291
  apiHelpers.handleApiCall = handleApiCall;
287
292
  apiHelpers.handleUnsuccessfulApiResponse = handleUnsuccessfulApiResponse;
288
293
  apiHelpers.queryAPI = queryAPI;
289
- var _chalk$i = _interopRequireDefault$r(vendor.source);
294
+ var _yoctocolorsCjs$i = require$$1$2;
290
295
  var _ponyCause$4 = require$$5$1;
291
296
  var _errors$l = sdk.errors;
292
297
  var _constants$1 = sdk.constants;
@@ -297,7 +302,7 @@ function handleUnsuccessfulApiResponse(_name, result, spinner) {
297
302
  spinner.stop();
298
303
  throw new _errors$l.AuthError(message);
299
304
  }
300
- spinner.fail(_chalk$i.default.white.bgRed('API returned an error:') + ' ' + message);
305
+ spinner.error(`${_yoctocolorsCjs$i.bgRed(_yoctocolorsCjs$i.white('API returned an error:'))} ${message}`);
301
306
  process.exit(1);
302
307
  }
303
308
  async function handleApiCall(value, description) {
@@ -435,12 +440,12 @@ Object.defineProperty(info$1, "__esModule", {
435
440
  value: true
436
441
  });
437
442
  info$1.info = void 0;
438
- var _chalk$h = _interopRequireDefault$q(vendor.source);
443
+ var _yoctocolorsCjs$h = require$$1$2;
439
444
  var _meow$p = _interopRequireDefault$q(vendor.build);
440
- var _ora$l = _interopRequireDefault$q(vendor.ora);
445
+ var _yoctoSpinner$l = require$$3;
441
446
  var _flags$k = flags$1;
442
447
  var _apiHelpers$i = apiHelpers;
443
- var _chalkMarkdown$3 = sdk.chalkMarkdown;
448
+ var _colorOrMarkdown$3 = sdk.colorOrMarkdown;
444
449
  var _errors$k = sdk.errors;
445
450
  var _formatIssues$1 = formatIssues;
446
451
  var _formatting$m = formatting;
@@ -454,8 +459,10 @@ const info = info$1.info = {
454
459
  const name = parentName + ' info';
455
460
  const commandContext = setupCommand$m(name, info.description, argv, importMeta);
456
461
  if (commandContext) {
457
- const spinnerText = commandContext.pkgVersion === 'latest' ? `Looking up data for the latest version of ${commandContext.pkgName}\n` : `Looking up data for version ${commandContext.pkgVersion} of ${commandContext.pkgName}\n`;
458
- const spinner = (0, _ora$l.default)(spinnerText).start();
462
+ const spinnerText = commandContext.pkgVersion === 'latest' ? `Looking up data for the latest version of ${commandContext.pkgName}` : `Looking up data for version ${commandContext.pkgVersion} of ${commandContext.pkgName}`;
463
+ const spinner = _yoctoSpinner$l({
464
+ text: spinnerText
465
+ }).start();
459
466
  const packageData = await fetchPackageData(commandContext.pkgName, commandContext.pkgVersion, commandContext, spinner);
460
467
  if (packageData) {
461
468
  formatPackageDataOutput(packageData, {
@@ -560,28 +567,27 @@ function formatPackageDataOutput({
560
567
  License: Math.floor(score.license.score * 100)
561
568
  };
562
569
  Object.entries(scoreResult).map(score => console.log(`- ${score[0]}: ${formatScore(score[1])}`));
570
+ console.log('\n');
563
571
  if ((0, _objects$3.objectSome)(severityCount)) {
564
- const issueSummary = (0, _formatIssues$1.formatSeverityCount)(severityCount);
565
- console.log('\n');
566
- spinner[strict ? 'fail' : 'succeed'](`Package has these issues: ${issueSummary}`);
572
+ spinner[strict ? 'error' : 'success'](`Package has these issues: ${(0, _formatIssues$1.formatSeverityCount)(severityCount)}`);
567
573
  formatPackageIssuesDetails(data, outputMarkdown);
568
574
  } else {
569
- console.log('\n');
570
- spinner.succeed('Package has no issues');
575
+ spinner.success('Package has no issues');
571
576
  }
572
- const format = new _chalkMarkdown$3.ChalkOrMarkdown(!!outputMarkdown);
577
+ const format = new _colorOrMarkdown$3.ColorOrMarkdown(!!outputMarkdown);
573
578
  const url = `https://socket.dev/npm/package/${pkgName}/overview/${pkgVersion}`;
579
+ console.log('\n');
574
580
  if (pkgVersion === 'latest') {
575
- console.log('\nDetailed info on socket.dev: ' + format.hyperlink(`${pkgName}`, url, {
581
+ console.log(`Detailed info on socket.dev: ${format.hyperlink(`${pkgName}`, url, {
576
582
  fallbackToUrl: true
577
- }));
583
+ })}`);
578
584
  } else {
579
- console.log('\nDetailed info on socket.dev: ' + format.hyperlink(`${pkgName} v${pkgVersion}`, url, {
585
+ console.log(`Detailed info on socket.dev: ${format.hyperlink(`${pkgName} v${pkgVersion}`, url, {
580
586
  fallbackToUrl: true
581
- }));
587
+ })}`);
582
588
  }
583
589
  if (!outputMarkdown) {
584
- console.log(_chalk$h.default.dim('\nOr rerun', _chalk$h.default.italic(name), 'using the', _chalk$h.default.italic('--json'), 'flag to get full JSON output'));
590
+ console.log(_yoctocolorsCjs$h.dim(`\nOr rerun ${_yoctocolorsCjs$h.italic(name)} using the ${_yoctocolorsCjs$h.italic('--json')} flag to get full JSON output`));
585
591
  }
586
592
  }
587
593
  if (strict && (0, _objects$3.objectSome)(severityCount)) {
@@ -606,7 +612,7 @@ function formatPackageIssuesDetails(packageData, outputMarkdown) {
606
612
  }
607
613
  return acc;
608
614
  }, {});
609
- const format = new _chalkMarkdown$3.ChalkOrMarkdown(!!outputMarkdown);
615
+ const format = new _colorOrMarkdown$3.ColorOrMarkdown(!!outputMarkdown);
610
616
  for (const issue of Object.keys(uniqueIssues)) {
611
617
  const issueWithLink = format.hyperlink(`${uniqueIssues[issue]?.label}`, `https://socket.dev/npm/issue/${issue}`, {
612
618
  fallbackToUrl: true
@@ -619,15 +625,12 @@ function formatPackageIssuesDetails(packageData, outputMarkdown) {
619
625
  }
620
626
  }
621
627
  function formatScore(score) {
622
- const error = _chalk$h.default.hex('#de7c7b');
623
- const warning = _chalk$h.default.hex('#e59361');
624
- const success = _chalk$h.default.hex('#a4cb9d');
625
628
  if (score > 80) {
626
- return `${success(score)}`;
629
+ return _yoctocolorsCjs$h.green(`${score}`);
627
630
  } else if (score < 80 && score > 60) {
628
- return `${warning(score)}`;
631
+ return _yoctocolorsCjs$h.yellow(`${score}`);
629
632
  }
630
- return `${error(score)}`;
633
+ return _yoctocolorsCjs$h.red(`${score}`);
631
634
  }
632
635
 
633
636
  var login = {};
@@ -637,10 +640,10 @@ Object.defineProperty(login, "__esModule", {
637
640
  value: true
638
641
  });
639
642
  login.login = void 0;
640
- var _prompts$1 = require$$1$2;
643
+ var _prompts$1 = require$$1$3;
641
644
  var _isInteractive = _interopRequireDefault$p(vendor.isInteractive);
642
645
  var _meow$o = _interopRequireDefault$p(vendor.build);
643
- var _ora$k = _interopRequireDefault$p(vendor.ora);
646
+ var _yoctoSpinner$k = require$$3;
644
647
  var _terminalLink = _interopRequireDefault$p(vendor.terminalLink);
645
648
  var _errors$j = sdk.errors;
646
649
  var _formatting$l = formatting;
@@ -704,7 +707,9 @@ login.login = {
704
707
  apiBaseUrl ??= (0, _settings$1.getSetting)('apiBaseUrl') ?? undefined;
705
708
  let apiProxy = cli.flags['apiProxy'];
706
709
  apiProxy ??= (0, _settings$1.getSetting)('apiProxy') ?? undefined;
707
- const spinner = (0, _ora$k.default)('Verifying API key...').start();
710
+ const spinner = _yoctoSpinner$k({
711
+ text: 'Verifying API key...'
712
+ }).start();
708
713
  let orgs;
709
714
  try {
710
715
  const sdk = await (0, _sdk$i.setupSdk)(apiKey, apiBaseUrl, apiProxy);
@@ -713,9 +718,9 @@ login.login = {
713
718
  throw new _errors$j.AuthError();
714
719
  }
715
720
  orgs = result.data;
716
- spinner.succeed('API key verified\n');
721
+ spinner.success('API key verified');
717
722
  } catch {
718
- spinner.fail('Invalid API key');
723
+ spinner.error('Invalid API key');
719
724
  return;
720
725
  }
721
726
  const enforcedChoices = Object.values(orgs.organizations).filter(nonNullish).filter(org => org.plan === 'enterprise').map(org => ({
@@ -752,7 +757,7 @@ login.login = {
752
757
  (0, _settings$1.updateSetting)('apiKey', apiKey);
753
758
  (0, _settings$1.updateSetting)('apiBaseUrl', apiBaseUrl);
754
759
  (0, _settings$1.updateSetting)('apiProxy', apiProxy);
755
- spinner.succeed(`API credentials ${oldKey ? 'updated' : 'set'}`);
760
+ spinner.success(`API credentials ${oldKey ? 'updated' : 'set'}`);
756
761
  }
757
762
  };
758
763
 
@@ -764,7 +769,7 @@ Object.defineProperty(logout, "__esModule", {
764
769
  });
765
770
  logout.logout = void 0;
766
771
  var _meow$n = _interopRequireDefault$o(vendor.build);
767
- var _ora$j = _interopRequireDefault$o(vendor.ora);
772
+ var _yoctoSpinner$j = require$$3;
768
773
  var _settings = sdk.settings;
769
774
  const description$6 = 'Socket API logout';
770
775
  logout.logout = {
@@ -798,7 +803,7 @@ logout.logout = {
798
803
  (0, _settings.updateSetting)('apiBaseUrl', null);
799
804
  (0, _settings.updateSetting)('apiProxy', null);
800
805
  (0, _settings.updateSetting)('enforcedOrgs', null);
801
- (0, _ora$j.default)('Successfully logged out').succeed();
806
+ _yoctoSpinner$j().success('Successfully logged out');
802
807
  }
803
808
  };
804
809
 
@@ -925,8 +930,8 @@ packageManagerDetector.detect = detect;
925
930
  var _nodePath$3 = require$$1;
926
931
  var _promiseSpawn$3 = require$$1$1;
927
932
  var _browserslist = require$$2;
928
- var _semver$1 = require$$3;
929
- var _which = require$$4;
933
+ var _semver$1 = require$$3$1;
934
+ var _which = require$$4$1;
930
935
  var _hyrious__bun = require$$5$2;
931
936
  var _constants = require$$6;
932
937
  var _objects$2 = require$$7;
@@ -935,7 +940,7 @@ var _strings$1 = require$$9;
935
940
  var _fs$1 = fs;
936
941
  const AGENTS = packageManagerDetector.AGENTS = ['bun', 'npm', 'pnpm', 'yarn/berry', 'yarn/classic', 'vlt'];
937
942
  const {
938
- compare: alphaNumericComparator
943
+ compare: alphanumericComparator
939
944
  } = new Intl.Collator(undefined, {
940
945
  numeric: true,
941
946
  sensitivity: 'base'
@@ -1076,7 +1081,7 @@ async function detect({
1076
1081
  }
1077
1082
  const browserslistQuery = pkgJson['browserslist'];
1078
1083
  if (Array.isArray(browserslistQuery)) {
1079
- const browserslistTargets = _browserslist(browserslistQuery).map(s => s.toLowerCase()).sort(alphaNumericComparator);
1084
+ const browserslistTargets = _browserslist(browserslistQuery).map(s => s.toLowerCase()).sort(alphanumericComparator);
1080
1085
  const browserslistNodeTargets = browserslistTargets.filter(v => v.startsWith('node ')).map(v => v.slice(5 /*'node '.length*/));
1081
1086
  if (!targets.browser && browserslistTargets.length) {
1082
1087
  targets.browser = browserslistTargets.length !== browserslistNodeTargets.length;
@@ -1114,13 +1119,13 @@ Object.defineProperty(optimize$1, "__esModule", {
1114
1119
  value: true
1115
1120
  });
1116
1121
  optimize$1.optimize = void 0;
1117
- var _promises$2 = require$$1$3;
1122
+ var _promises$2 = require$$1$4;
1118
1123
  var _nodePath$2 = require$$1;
1119
1124
  var _promiseSpawn$2 = require$$1$1;
1120
1125
  var _meow$m = _interopRequireDefault$n(vendor.build);
1121
1126
  var _npmPackageArg = require$$5$3;
1122
- var _ora$i = _interopRequireDefault$n(vendor.ora);
1123
- var _semver = require$$3;
1127
+ var _yoctoSpinner$i = require$$3;
1128
+ var _semver = require$$3$1;
1124
1129
  var _tinyglobby = require$$8$1;
1125
1130
  var _yaml = require$$9$1;
1126
1131
  var _registry = require$$10;
@@ -1129,6 +1134,7 @@ var _packages = require$$8;
1129
1134
  var _promises2 = require$$13;
1130
1135
  var _regexps = require$$14;
1131
1136
  var _strings = require$$9;
1137
+ var _words = require$$5;
1132
1138
  var _flags$j = flags$1;
1133
1139
  var _formatting$k = formatting;
1134
1140
  var _fs = fs;
@@ -1246,11 +1252,28 @@ const updateManifestByAgent = (() => {
1246
1252
  if (oldValue) {
1247
1253
  // The field already exists so we simply update the field value.
1248
1254
  if (field === PNPM_FIELD_NAME) {
1249
- editablePkgJson['update']({
1250
- [field]: {
1251
- ...((0, _objects$1.isObject)(oldValue) ? oldValue : {}),
1252
- overrides: value
1253
- }
1255
+ if ((0, _objects$1.hasKeys)(value)) {
1256
+ editablePkgJson.update({
1257
+ [field]: {
1258
+ ...((0, _objects$1.isObject)(oldValue) ? oldValue : {}),
1259
+ overrides: value
1260
+ }
1261
+ });
1262
+ } else {
1263
+ // Properties with undefined values are omitted when saved as JSON.
1264
+ editablePkgJson.update((0, _objects$1.hasKeys)(pkgJson[field]) ? {
1265
+ [field]: {
1266
+ ...((0, _objects$1.isObject)(oldValue) ? oldValue : {}),
1267
+ overrides: undefined
1268
+ }
1269
+ } : {
1270
+ [field]: undefined
1271
+ });
1272
+ }
1273
+ } else if (field === OVERRIDES_FIELD_NAME || field === RESOLUTIONS_FIELD_NAME) {
1274
+ // Properties with undefined values are omitted when saved as JSON.
1275
+ editablePkgJson.update({
1276
+ [field]: (0, _objects$1.hasKeys)(value) ? value : undefined
1254
1277
  });
1255
1278
  } else {
1256
1279
  editablePkgJson.update({
@@ -1259,6 +1282,9 @@ const updateManifestByAgent = (() => {
1259
1282
  }
1260
1283
  return;
1261
1284
  }
1285
+ if ((field === OVERRIDES_FIELD_NAME || field === PNPM_FIELD_NAME || field === RESOLUTIONS_FIELD_NAME) && !(0, _objects$1.hasKeys)(value)) {
1286
+ return;
1287
+ }
1262
1288
  // Since the field doesn't exist we want to insert it into the package.json
1263
1289
  // in a place that makes sense, e.g. close to the "dependencies" field. If
1264
1290
  // we can't find a place to insert the field we'll add it to the bottom.
@@ -1450,7 +1476,7 @@ const depsIncludesByAgent = (() => {
1450
1476
  };
1451
1477
  })();
1452
1478
  function createActionMessage(verb, overrideCount, workspaceCount) {
1453
- return `${verb} ${overrideCount} Socket.dev optimized overrides${workspaceCount ? ` in ${workspaceCount} workspace${workspaceCount > 1 ? 's' : ''}` : ''}`;
1479
+ return `${verb} ${overrideCount} Socket.dev optimized overrides${workspaceCount ? ` in ${workspaceCount} ${(0, _words.pluralize)('workspace', workspaceCount)}` : ''}`;
1454
1480
  }
1455
1481
  function getDependencyEntries(pkgJson) {
1456
1482
  const {
@@ -1554,7 +1580,7 @@ async function addOverrides({
1554
1580
  const isWorkspace = !!workspaceGlobs;
1555
1581
  if (isWorkspace && agent === 'pnpm' && npmExecPath === 'npm' && !state.warnedPnpmWorkspaceRequiresNpm) {
1556
1582
  state.warnedPnpmWorkspaceRequiresNpm = true;
1557
- console.log(`⚠️ ${COMMAND_TITLE}: pnpm workspace support requires \`npm ls\`, falling back to \`pnpm list\``);
1583
+ console.warn(`⚠️ ${COMMAND_TITLE}: pnpm workspace support requires \`npm ls\`, falling back to \`pnpm list\``);
1558
1584
  }
1559
1585
  const thingToScan = isLockScanned ? lockSrc : await lsByAgent[agent](agentExecPath, pkgPath, {
1560
1586
  npmExecPath
@@ -1597,7 +1623,9 @@ async function addOverrides({
1597
1623
  pkgSpec = `${regSpecStartsLike}^${version}`;
1598
1624
  depObj[origPkgName] = pkgSpec;
1599
1625
  state.added.add(regPkgName);
1600
- state.addedInWorkspaces.add(workspaceName);
1626
+ if (workspaceName) {
1627
+ state.addedInWorkspaces.add(workspaceName);
1628
+ }
1601
1629
  }
1602
1630
  depAliasMap.set(origPkgName, {
1603
1631
  id: pkgSpec,
@@ -1605,50 +1633,51 @@ async function addOverrides({
1605
1633
  });
1606
1634
  }
1607
1635
  }
1608
- // Chunk package names to process them in parallel 3 at a time.
1609
- await (0, _promises2.pEach)(overridesDataObjects, 3, async ({
1610
- overrides,
1611
- type
1612
- }) => {
1613
- const overrideExists = (0, _objects$1.hasOwn)(overrides, origPkgName);
1614
- if (overrideExists || thingScanner(thingToScan, origPkgName)) {
1615
- const oldSpec = overrideExists ? overrides[origPkgName] : undefined;
1616
- const depAlias = depAliasMap.get(origPkgName);
1617
- const regSpecStartsLike = `npm:${regPkgName}@`;
1618
- let newSpec = `${regSpecStartsLike}^${pin ? version : major}`;
1619
- let thisVersion = version;
1620
- if (depAlias && type === 'npm') {
1621
- // With npm one may not set an override for a package that one directly
1622
- // depends on unless both the dependency and the override itself share
1623
- // the exact same spec. To make this limitation easier to deal with,
1624
- // overrides may also be defined as a reference to a spec for a direct
1625
- // dependency by prefixing the name of the package to match the version
1626
- // of with a $.
1627
- // https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
1628
- newSpec = `$${origPkgName}`;
1629
- } else if (overrideExists) {
1630
- const thisSpec = oldSpec.startsWith('$') ? depAlias?.id ?? newSpec : oldSpec ?? newSpec;
1631
- if (thisSpec.startsWith(regSpecStartsLike)) {
1632
- if (pin) {
1633
- thisVersion = _semver.major(_semver.coerce(_npmPackageArg(thisSpec).rawSpec)?.version ?? version) === major ? version : (await (0, _packages.fetchPackageManifest)(thisSpec))?.version ?? version;
1636
+ if (isRoot) {
1637
+ // Chunk package names to process them in parallel 3 at a time.
1638
+ await (0, _promises2.pEach)(overridesDataObjects, 3, async ({
1639
+ overrides,
1640
+ type
1641
+ }) => {
1642
+ const overrideExists = (0, _objects$1.hasOwn)(overrides, origPkgName);
1643
+ if (overrideExists || thingScanner(thingToScan, origPkgName)) {
1644
+ const oldSpec = overrideExists ? overrides[origPkgName] : undefined;
1645
+ const depAlias = depAliasMap.get(origPkgName);
1646
+ const regSpecStartsLike = `npm:${regPkgName}@`;
1647
+ let newSpec = `${regSpecStartsLike}^${pin ? version : major}`;
1648
+ let thisVersion = version;
1649
+ if (depAlias && type === 'npm') {
1650
+ // With npm one may not set an override for a package that one directly
1651
+ // depends on unless both the dependency and the override itself share
1652
+ // the exact same spec. To make this limitation easier to deal with,
1653
+ // overrides may also be defined as a reference to a spec for a direct
1654
+ // dependency by prefixing the name of the package to match the version
1655
+ // of with a $.
1656
+ // https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
1657
+ newSpec = `$${origPkgName}`;
1658
+ } else if (overrideExists) {
1659
+ const thisSpec = oldSpec.startsWith('$') ? depAlias?.id ?? newSpec : oldSpec ?? newSpec;
1660
+ if (thisSpec.startsWith(regSpecStartsLike)) {
1661
+ if (pin) {
1662
+ thisVersion = _semver.major(_semver.coerce(_npmPackageArg(thisSpec).rawSpec)?.version ?? version) === major ? version : (await (0, _packages.fetchPackageManifest)(thisSpec))?.version ?? version;
1663
+ }
1664
+ newSpec = `${regSpecStartsLike}^${pin ? thisVersion : _semver.major(thisVersion)}`;
1665
+ } else {
1666
+ newSpec = oldSpec;
1634
1667
  }
1635
- newSpec = `${regSpecStartsLike}^${pin ? thisVersion : _semver.major(thisVersion)}`;
1636
- } else {
1637
- newSpec = oldSpec;
1638
1668
  }
1639
- }
1640
- if (newSpec !== oldSpec) {
1641
- overrides[origPkgName] = newSpec;
1642
- if (overrideExists) {
1643
- state.updated.add(regPkgName);
1644
- state.updatedInWorkspaces.add(workspaceName);
1645
- } else {
1646
- state.added.add(regPkgName);
1647
- state.addedInWorkspaces.add(workspaceName);
1669
+ if (newSpec !== oldSpec) {
1670
+ overrides[origPkgName] = newSpec;
1671
+ const addedOrUpdated = overrideExists ? 'updated' : 'added';
1672
+ state[addedOrUpdated].add(regPkgName);
1673
+ if (workspaceName) {
1674
+ const addedOrUpdatedIn = overrideExists ? 'updatedInWorkspaces' : 'addedInWorkspaces';
1675
+ state[addedOrUpdatedIn].add(workspaceName);
1676
+ }
1648
1677
  }
1649
1678
  }
1650
- }
1651
- });
1679
+ });
1680
+ }
1652
1681
  });
1653
1682
  if (workspaceGlobs) {
1654
1683
  const workspacePkgJsonPaths = await (0, _tinyglobby.glob)(workspaceGlobs, {
@@ -1718,38 +1747,40 @@ const optimize = optimize$1.optimize = {
1718
1747
  } = await (0, _packageManagerDetector.detect)({
1719
1748
  cwd,
1720
1749
  onUnknown(pkgManager) {
1721
- console.log(`⚠️ ${COMMAND_TITLE}: Unknown package manager${pkgManager ? ` ${pkgManager}` : ''}, defaulting to npm`);
1750
+ console.warn(`⚠️ ${COMMAND_TITLE}: Unknown package manager${pkgManager ? ` ${pkgManager}` : ''}, defaulting to npm`);
1722
1751
  }
1723
1752
  });
1724
1753
  if (!supported) {
1725
- console.log(`✘ ${COMMAND_TITLE}: No supported Node or browser range detected`);
1754
+ console.error(`✖️ ${COMMAND_TITLE}: No supported Node or browser range detected`);
1726
1755
  return;
1727
1756
  }
1728
1757
  if (agent === 'vlt') {
1729
- console.log(`✘ ${COMMAND_TITLE}: ${agent} does not support overrides. Soon, though ⚡`);
1758
+ console.error(`✖️ ${COMMAND_TITLE}: ${agent} does not support overrides. Soon, though ⚡`);
1730
1759
  return;
1731
1760
  }
1732
1761
  const lockName = lockPath ? _nodePath$2.basename(lockPath) : 'lock file';
1733
1762
  if (lockSrc === undefined) {
1734
- console.log(`✘ ${COMMAND_TITLE}: No ${lockName} found`);
1763
+ console.error(`✖️ ${COMMAND_TITLE}: No ${lockName} found`);
1735
1764
  return;
1736
1765
  }
1737
1766
  if (lockSrc.trim() === '') {
1738
- console.log(`✘ ${COMMAND_TITLE}: ${lockName} is empty`);
1767
+ console.error(`✖️ ${COMMAND_TITLE}: ${lockName} is empty`);
1739
1768
  return;
1740
1769
  }
1741
1770
  if (pkgPath === undefined) {
1742
- console.log(`✘ ${COMMAND_TITLE}: No package.json found`);
1771
+ console.error(`✖️ ${COMMAND_TITLE}: No package.json found`);
1743
1772
  return;
1744
1773
  }
1745
1774
  if (prod && (agent === 'bun' || agent === 'yarn/berry')) {
1746
- console.log(`✘ ${COMMAND_TITLE}: --prod not supported for ${agent}${agentVersion ? `@${agentVersion.toString()}` : ''}`);
1775
+ console.error(`✖️ ${COMMAND_TITLE}: --prod not supported for ${agent}${agentVersion ? `@${agentVersion.toString()}` : ''}`);
1747
1776
  return;
1748
1777
  }
1749
1778
  if (lockPath && _nodePath$2.relative(cwd, lockPath).startsWith('.')) {
1750
- console.log(`⚠️ ${COMMAND_TITLE}: Package ${lockName} found at ${lockPath}`);
1779
+ console.warn(`⚠️ ${COMMAND_TITLE}: Package ${lockName} found at ${lockPath}`);
1751
1780
  }
1752
- const spinner = (0, _ora$i.default)('Socket optimizing...');
1781
+ const spinner = _yoctoSpinner$i({
1782
+ text: 'Socket optimizing...'
1783
+ });
1753
1784
  const state = createAddOverridesState({
1754
1785
  spinner
1755
1786
  });
@@ -1810,8 +1841,7 @@ const optimize = optimize$1.optimize = {
1810
1841
  console.log(`💡 Re-run ${COMMAND_TITLE} whenever ${lockName} changes.\n This can be skipped once npm ships https://github.com/npm/cli/pull/7025.`);
1811
1842
  }
1812
1843
  } catch {
1813
- spinner.stop();
1814
- console.log(`✘ ${COMMAND_TITLE}: ${agent} install failed to update ${lockName}`);
1844
+ spinner.error(`${COMMAND_TITLE}: ${agent} install failed to update ${lockName}`);
1815
1845
  }
1816
1846
  }
1817
1847
  }
@@ -1870,9 +1900,9 @@ Object.defineProperty(organization, "__esModule", {
1870
1900
  value: true
1871
1901
  });
1872
1902
  organization.organizations = void 0;
1873
- var _chalk$g = _interopRequireDefault$m(vendor.source);
1903
+ var _yoctocolorsCjs$g = require$$1$2;
1874
1904
  var _meow$l = _interopRequireDefault$m(vendor.build);
1875
- var _ora$h = _interopRequireDefault$m(vendor.ora);
1905
+ var _yoctoSpinner$h = require$$3;
1876
1906
  var _apiHelpers$h = apiHelpers;
1877
1907
  var _errors$i = sdk.errors;
1878
1908
  var _sdk$h = sdk.sdk;
@@ -1903,16 +1933,17 @@ async function fetchOrganizations() {
1903
1933
  if (!apiKey) {
1904
1934
  throw new _errors$i.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
1905
1935
  }
1936
+ const spinner = _yoctoSpinner$h({
1937
+ text: 'Fetching organizations...'
1938
+ }).start();
1906
1939
  const socketSdk = await (0, _sdk$h.setupSdk)(apiKey);
1907
- const spinner = (0, _ora$h.default)('Fetching organizations...').start();
1908
1940
  const result = await (0, _apiHelpers$h.handleApiCall)(socketSdk.getOrganizations(), 'looking up organizations');
1909
1941
  if (result.success === false) {
1910
1942
  (0, _apiHelpers$h.handleUnsuccessfulApiResponse)('getOrganizations', result, spinner);
1911
1943
  return;
1912
1944
  }
1913
- spinner.stop();
1945
+ spinner.stop(`List of organizations associated with your API key: ${_yoctocolorsCjs$g.italic(apiKey)}`);
1914
1946
  const organizations = Object.values(result.data.organizations);
1915
- console.log(`List of organizations associated with your API key: ${_chalk$g.default.italic(apiKey)}`);
1916
1947
  for (const o of organizations) {
1917
1948
  console.log(`
1918
1949
  Name: ${o?.name}
@@ -2055,13 +2086,13 @@ Object.defineProperty(view$3, "__esModule", {
2055
2086
  view$3.fetchReportData = fetchReportData;
2056
2087
  view$3.formatReportDataOutput = formatReportDataOutput;
2057
2088
  view$3.view = void 0;
2058
- var _chalk$f = _interopRequireDefault$j(vendor.source);
2089
+ var _yoctocolorsCjs$f = require$$1$2;
2059
2090
  var _meow$i = _interopRequireDefault$j(vendor.build);
2060
- var _ora$g = _interopRequireDefault$j(vendor.ora);
2091
+ var _yoctoSpinner$g = require$$3;
2061
2092
  var _ponyCause$3 = require$$5$1;
2062
2093
  var _flags$g = flags$1;
2063
2094
  var _apiHelpers$g = apiHelpers;
2064
- var _chalkMarkdown$2 = sdk.chalkMarkdown;
2095
+ var _colorOrMarkdown$2 = sdk.colorOrMarkdown;
2065
2096
  var _errors$h = sdk.errors;
2066
2097
  var _formatIssues = formatIssues;
2067
2098
  var _formatting$h = formatting;
@@ -2135,7 +2166,9 @@ async function fetchReportData(reportId, {
2135
2166
  }) {
2136
2167
  // Do the API call
2137
2168
  const socketSdk = await (0, _sdk$g.setupSdk)();
2138
- const spinner = (0, _ora$g.default)(`Fetching report with ID ${reportId} (this could take a while)`).start();
2169
+ const spinner = _yoctoSpinner$g({
2170
+ text: `Fetching report with ID ${reportId} (this could take a while)`
2171
+ }).start();
2139
2172
  let result;
2140
2173
  for (let retry = 1; !result; ++retry) {
2141
2174
  try {
@@ -2155,16 +2188,16 @@ async function fetchReportData(reportId, {
2155
2188
 
2156
2189
  if (strict) {
2157
2190
  if (result.data.healthy) {
2158
- spinner.succeed('Report result is healthy and great!');
2191
+ spinner.success('Report result is healthy and great!');
2159
2192
  } else {
2160
- spinner.fail('Report result deemed unhealthy for project');
2193
+ spinner.error('Report result deemed unhealthy for project');
2161
2194
  }
2162
2195
  } else if (result.data.healthy === false) {
2163
2196
  const severityCount = (0, _formatIssues.getSeverityCount)(result.data.issues, includeAllIssues ? undefined : 'high');
2164
2197
  const issueSummary = (0, _formatIssues.formatSeverityCount)(severityCount);
2165
- spinner.succeed(`Report has these issues: ${issueSummary}`);
2198
+ spinner.success(`Report has these issues: ${issueSummary}`);
2166
2199
  } else {
2167
- spinner.succeed('Report has no issues');
2200
+ spinner.success('Report has no issues');
2168
2201
  }
2169
2202
  return result.data;
2170
2203
  }
@@ -2178,12 +2211,12 @@ function formatReportDataOutput(data, {
2178
2211
  if (outputJson) {
2179
2212
  console.log(JSON.stringify(data, undefined, 2));
2180
2213
  } else {
2181
- const format = new _chalkMarkdown$2.ChalkOrMarkdown(!!outputMarkdown);
2214
+ const format = new _colorOrMarkdown$2.ColorOrMarkdown(!!outputMarkdown);
2182
2215
  console.log('\nDetailed info on socket.dev: ' + format.hyperlink(reportId, data.url, {
2183
2216
  fallbackToUrl: true
2184
2217
  }));
2185
2218
  if (!outputMarkdown) {
2186
- console.log(_chalk$f.default.dim('\nOr rerun', _chalk$f.default.italic(name), 'using the', _chalk$f.default.italic('--json'), 'flag to get full JSON output'));
2219
+ console.log(_yoctocolorsCjs$f.dim(`\nOr rerun ${_yoctocolorsCjs$f.italic(name)} using the ${_yoctocolorsCjs$f.italic('--json')} flag to get full JSON output`));
2187
2220
  }
2188
2221
  }
2189
2222
  if (strict && data.healthy === false) {
@@ -2199,13 +2232,13 @@ create$5.create = void 0;
2199
2232
  var _nodePath$1 = require$$1;
2200
2233
  var _betterAjvErrors = require$$2$1;
2201
2234
  var _meow$h = _interopRequireDefault$i(vendor.build);
2202
- var _ora$f = _interopRequireDefault$i(vendor.ora);
2235
+ var _yoctoSpinner$f = require$$3;
2203
2236
  var _ponyCause$2 = require$$5$1;
2204
2237
  var _config = require$$6$1;
2205
2238
  var _view$2 = view$3;
2206
2239
  var _flags$f = flags$1;
2207
2240
  var _apiHelpers$f = apiHelpers;
2208
- var _chalkMarkdown$1 = sdk.chalkMarkdown;
2241
+ var _colorOrMarkdown$1 = sdk.colorOrMarkdown;
2209
2242
  var _errors$g = sdk.errors;
2210
2243
  var _formatting$g = formatting;
2211
2244
  var _misc$1 = sdk.misc;
@@ -2358,7 +2391,7 @@ async function setupCommand$g(name, description, argv, importMeta) {
2358
2391
  });
2359
2392
  const socketSdk = await (0, _sdk$f.setupSdk)();
2360
2393
  const supportedFiles = await socketSdk.getReportSupportedFiles().then(res => {
2361
- if (!res.success) (0, _apiHelpers$f.handleUnsuccessfulApiResponse)('getReportSupportedFiles', res, (0, _ora$f.default)());
2394
+ if (!res.success) (0, _apiHelpers$f.handleUnsuccessfulApiResponse)('getReportSupportedFiles', res, _yoctoSpinner$f());
2362
2395
  return res.data;
2363
2396
  }).catch(cause => {
2364
2397
  throw new _ponyCause$2.ErrorWithCause('Failed getting supported files for report', {
@@ -2385,22 +2418,22 @@ async function createReport(packagePaths, {
2385
2418
  debugLog,
2386
2419
  dryRun
2387
2420
  }) {
2388
- debugLog('Uploading:', packagePaths.join(`\n${_chalkMarkdown$1.logSymbols.info} Uploading: `));
2421
+ debugLog('Uploading:', packagePaths.join(`\n${_colorOrMarkdown$1.logSymbols.info} Uploading: `));
2389
2422
  if (dryRun) {
2390
2423
  return;
2391
2424
  }
2392
2425
  const socketSdk = await (0, _sdk$f.setupSdk)();
2393
- const spinner = (0, _ora$f.default)(`Creating report with ${packagePaths.length} package files`).start();
2426
+ const spinner = _yoctoSpinner$f({
2427
+ text: `Creating report with ${packagePaths.length} package files`
2428
+ }).start();
2394
2429
  const apiCall = socketSdk.createReportFromFilePaths(packagePaths, cwd, config?.issueRules);
2395
2430
  const result = await (0, _apiHelpers$f.handleApiCall)(apiCall, 'creating report');
2396
- if (result.success === false) {
2397
- return (0, _apiHelpers$f.handleUnsuccessfulApiResponse)('createReport', result, spinner);
2431
+ if (result.success) {
2432
+ spinner.success();
2433
+ return result;
2398
2434
  }
2399
-
2400
- // Conclude the status of the API call
2401
-
2402
- spinner.succeed();
2403
- return result;
2435
+ (0, _apiHelpers$f.handleUnsuccessfulApiResponse)('createReport', result, spinner);
2436
+ return undefined;
2404
2437
  }
2405
2438
  function formatReportCreationOutput(data, {
2406
2439
  outputJson,
@@ -2410,10 +2443,10 @@ function formatReportCreationOutput(data, {
2410
2443
  console.log(JSON.stringify(data, undefined, 2));
2411
2444
  return;
2412
2445
  }
2413
- const format = new _chalkMarkdown$1.ChalkOrMarkdown(!!outputMarkdown);
2414
- console.log('\nNew report: ' + format.hyperlink(data.id, data.url, {
2446
+ const format = new _colorOrMarkdown$1.ColorOrMarkdown(!!outputMarkdown);
2447
+ console.log(`New report: ${format.hyperlink(data.id, data.url, {
2415
2448
  fallbackToUrl: true
2416
- }));
2449
+ })}`);
2417
2450
  }
2418
2451
 
2419
2452
  var meowWithSubcommands$1 = {};
@@ -2515,8 +2548,8 @@ Object.defineProperty(wrapper$1, "__esModule", {
2515
2548
  });
2516
2549
  wrapper$1.wrapper = void 0;
2517
2550
  var _nodeFs$1 = require$$0;
2518
- var _nodeOs = require$$1$4;
2519
- var _nodeReadline = require$$3$1;
2551
+ var _nodeOs = require$$1$5;
2552
+ var _nodeReadline = require$$3$2;
2520
2553
  var _meow$f = _interopRequireDefault$g(vendor.build);
2521
2554
  var _flags$d = flags$1;
2522
2555
  var _formatting$e = formatting;
@@ -2677,10 +2710,10 @@ Object.defineProperty(create$3, "__esModule", {
2677
2710
  create$3.create = void 0;
2678
2711
  var _nodeProcess = require$$0$1;
2679
2712
  var _promises$1 = require$$2$2;
2680
- var _chalk$e = _interopRequireDefault$f(vendor.source);
2713
+ var _yoctocolorsCjs$e = require$$1$2;
2681
2714
  var _meow$e = _interopRequireDefault$f(vendor.build);
2682
2715
  var _open = _interopRequireDefault$f(vendor.open);
2683
- var _ora$e = _interopRequireDefault$f(vendor.ora);
2716
+ var _yoctoSpinner$e = require$$3;
2684
2717
  var _ponyCause$1 = require$$5$1;
2685
2718
  var _apiHelpers$e = apiHelpers;
2686
2719
  var _errors$f = sdk.errors;
@@ -2701,7 +2734,9 @@ const create$2 = create$3.create = {
2701
2734
  throw new _errors$f.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
2702
2735
  }
2703
2736
  const spinnerText = 'Creating a scan... \n';
2704
- const spinner = (0, _ora$e.default)(spinnerText).start();
2737
+ const spinner = _yoctoSpinner$e({
2738
+ text: spinnerText
2739
+ }).start();
2705
2740
  await createFullScan(input, spinner, apiKey);
2706
2741
  }
2707
2742
  }
@@ -2797,7 +2832,7 @@ async function setupCommand$e(name, description, argv, importMeta) {
2797
2832
  const cwd = process.cwd();
2798
2833
  const socketSdk = await (0, _sdk$e.setupSdk)();
2799
2834
  const supportedFiles = await socketSdk.getReportSupportedFiles().then(res => {
2800
- if (!res.success) (0, _apiHelpers$e.handleUnsuccessfulApiResponse)('getReportSupportedFiles', res, (0, _ora$e.default)());
2835
+ if (!res.success) (0, _apiHelpers$e.handleUnsuccessfulApiResponse)('getReportSupportedFiles', res, _yoctoSpinner$e());
2801
2836
  return res.data;
2802
2837
  }).catch(/** @type {(cause: Error) => never} */
2803
2838
  cause => {
@@ -2813,10 +2848,10 @@ async function setupCommand$e(name, description, argv, importMeta) {
2813
2848
  } = cli.flags;
2814
2849
  if (!repoName || !branchName || !packagePaths.length) {
2815
2850
  showHelp = true;
2816
- console.error(`${_chalk$e.default.white.bgRed('Input error')}: Please provide the required fields:\n
2817
- - Repository name using --repo,\n
2851
+ console.error(`${_yoctocolorsCjs$e.bgRed(_yoctocolorsCjs$e.white('Input error'))}: Please provide the required fields:\n
2852
+ - Repository name using --repo\n
2818
2853
  - Branch name using --branch\n
2819
- - At least one file path (e.g. ./package.json).`);
2854
+ - At least one file path (e.g. ./package.json)`);
2820
2855
  }
2821
2856
  if (showHelp) {
2822
2857
  cli.showHelp();
@@ -2860,10 +2895,9 @@ async function createFullScan(input, spinner, apiKey) {
2860
2895
  (0, _apiHelpers$e.handleUnsuccessfulApiResponse)('CreateOrgFullScan', result, spinner);
2861
2896
  return;
2862
2897
  }
2863
- spinner.stop();
2864
- console.log('\n✅ Scan created successfully\n');
2865
- const link = _chalk$e.default.hex('#00FFFF').underline(`${result.data.html_report_url}`);
2866
- console.log(`Available at: ${link}\n`);
2898
+ spinner.success('Scan created successfully');
2899
+ const link = _yoctocolorsCjs$e.underline(_yoctocolorsCjs$e.cyan(`${result.data.html_report_url}`));
2900
+ console.log(`Available at: ${link}`);
2867
2901
  const rl = _promises$1.createInterface({
2868
2902
  input: _nodeProcess.stdin,
2869
2903
  output: _nodeProcess.stdout
@@ -2882,9 +2916,9 @@ Object.defineProperty(_delete$3, "__esModule", {
2882
2916
  value: true
2883
2917
  });
2884
2918
  _delete$3.del = void 0;
2885
- var _chalk$d = _interopRequireDefault$e(vendor.source);
2919
+ var _yoctocolorsCjs$d = require$$1$2;
2886
2920
  var _meow$d = _interopRequireDefault$e(vendor.build);
2887
- var _ora$d = _interopRequireDefault$e(vendor.ora);
2921
+ var _yoctoSpinner$d = require$$3;
2888
2922
  var _flags$c = flags$1;
2889
2923
  var _apiHelpers$d = apiHelpers;
2890
2924
  var _errors$e = sdk.errors;
@@ -2903,7 +2937,9 @@ const del$1 = _delete$3.del = {
2903
2937
  throw new _errors$e.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
2904
2938
  }
2905
2939
  const spinnerText = 'Deleting scan...';
2906
- const spinner = (0, _ora$d.default)(spinnerText).start();
2940
+ const spinner = _yoctoSpinner$d({
2941
+ text: spinnerText
2942
+ }).start();
2907
2943
  await deleteOrgFullScan(input.orgSlug, input.fullScanId, spinner, apiKey);
2908
2944
  }
2909
2945
  }
@@ -2934,7 +2970,7 @@ function setupCommand$d(name, description, argv, importMeta) {
2934
2970
  let showHelp = cli.flags['help'];
2935
2971
  if (cli.input.length < 2) {
2936
2972
  showHelp = true;
2937
- console.error(`${_chalk$d.default.white.bgRed('Input error')}: Please specify an organization slug and a scan ID.\n`);
2973
+ console.error(`${_yoctocolorsCjs$d.bgRed(_yoctocolorsCjs$d.white('Input error'))}: Please specify an organization slug and a scan ID.`);
2938
2974
  }
2939
2975
  if (showHelp) {
2940
2976
  cli.showHelp();
@@ -2954,12 +2990,11 @@ function setupCommand$d(name, description, argv, importMeta) {
2954
2990
  async function deleteOrgFullScan(orgSlug, fullScanId, spinner, apiKey) {
2955
2991
  const socketSdk = await (0, _sdk$d.setupSdk)(apiKey);
2956
2992
  const result = await (0, _apiHelpers$d.handleApiCall)(socketSdk.deleteOrgFullScan(orgSlug, fullScanId), 'Deleting scan');
2957
- if (!result.success) {
2993
+ if (result.success) {
2994
+ spinner.success('Scan deleted successfully');
2995
+ } else {
2958
2996
  (0, _apiHelpers$d.handleUnsuccessfulApiResponse)('deleteOrgFullScan', result, spinner);
2959
- return;
2960
2997
  }
2961
- spinner.stop();
2962
- console.log('✅ Scan deleted successfully');
2963
2998
  }
2964
2999
 
2965
3000
  var list$3 = {};
@@ -2969,10 +3004,10 @@ Object.defineProperty(list$3, "__esModule", {
2969
3004
  value: true
2970
3005
  });
2971
3006
  list$3.list = void 0;
2972
- var _chalk$c = _interopRequireDefault$d(vendor.source);
3007
+ var _yoctocolorsCjs$c = require$$1$2;
2973
3008
  var _chalkTable$3 = require$$2$3;
2974
3009
  var _meow$c = _interopRequireDefault$d(vendor.build);
2975
- var _ora$c = _interopRequireDefault$d(vendor.ora);
3010
+ var _yoctoSpinner$c = require$$3;
2976
3011
  var _flags$b = flags$1;
2977
3012
  var _apiHelpers$c = apiHelpers;
2978
3013
  var _errors$d = sdk.errors;
@@ -2993,7 +3028,9 @@ const list$2 = list$3.list = {
2993
3028
  throw new _errors$d.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
2994
3029
  }
2995
3030
  const spinnerText = 'Listing scans... \n';
2996
- const spinner = (0, _ora$c.default)(spinnerText).start();
3031
+ const spinner = _yoctoSpinner$c({
3032
+ text: spinnerText
3033
+ }).start();
2997
3034
  await listOrgFullScan(input.orgSlug, input, spinner, apiKey);
2998
3035
  }
2999
3036
  }
@@ -3063,7 +3100,7 @@ function setupCommand$c(name, description, argv, importMeta) {
3063
3100
  let showHelp = cli.flags['help'];
3064
3101
  if (!cli.input[0]) {
3065
3102
  showHelp = true;
3066
- console.error(`${_chalk$c.default.white.bgRed('Input error')}: Please specify an organization slug.\n`);
3103
+ console.error(`${_yoctocolorsCjs$c.bgRed(_yoctocolorsCjs$c.white('Input error'))}: Please specify an organization slug.`);
3067
3104
  }
3068
3105
  if (showHelp) {
3069
3106
  cli.showHelp();
@@ -3091,27 +3128,25 @@ async function listOrgFullScan(orgSlug, input, spinner, apiKey) {
3091
3128
  (0, _apiHelpers$c.handleUnsuccessfulApiResponse)('getOrgFullScanList', result, spinner);
3092
3129
  return;
3093
3130
  }
3094
- spinner.stop();
3095
- console.log(`\n Listing scans for: ${orgSlug}\n`);
3096
3131
  const options = {
3097
3132
  columns: [{
3098
3133
  field: 'id',
3099
- name: _chalk$c.default.magenta('ID')
3134
+ name: _yoctocolorsCjs$c.magenta('ID')
3100
3135
  }, {
3101
3136
  field: 'report_url',
3102
- name: _chalk$c.default.magenta('Scan URL')
3137
+ name: _yoctocolorsCjs$c.magenta('Scan URL')
3103
3138
  }, {
3104
3139
  field: 'branch',
3105
- name: _chalk$c.default.magenta('Branch')
3140
+ name: _yoctocolorsCjs$c.magenta('Branch')
3106
3141
  }, {
3107
3142
  field: 'created_at',
3108
- name: _chalk$c.default.magenta('Created at')
3143
+ name: _yoctocolorsCjs$c.magenta('Created at')
3109
3144
  }]
3110
3145
  };
3111
3146
  const formattedResults = result.data.results.map(d => {
3112
3147
  return {
3113
3148
  id: d.id,
3114
- report_url: _chalk$c.default.underline(`${d.html_report_url}`),
3149
+ report_url: _yoctocolorsCjs$c.underline(`${d.html_report_url}`),
3115
3150
  created_at: d.created_at ? new Date(d.created_at).toLocaleDateString('en-us', {
3116
3151
  year: 'numeric',
3117
3152
  month: 'numeric',
@@ -3120,7 +3155,8 @@ async function listOrgFullScan(orgSlug, input, spinner, apiKey) {
3120
3155
  branch: d.branch
3121
3156
  };
3122
3157
  });
3123
- console.log(`${_chalkTable$3(options, formattedResults)}\n`);
3158
+ spinner.stop(`Listing scans for: ${orgSlug}`);
3159
+ console.log(_chalkTable$3(options, formattedResults));
3124
3160
  }
3125
3161
 
3126
3162
  var metadata$1 = {};
@@ -3130,9 +3166,9 @@ Object.defineProperty(metadata$1, "__esModule", {
3130
3166
  value: true
3131
3167
  });
3132
3168
  metadata$1.metadata = void 0;
3133
- var _chalk$b = _interopRequireDefault$c(vendor.source);
3169
+ var _yoctocolorsCjs$b = require$$1$2;
3134
3170
  var _meow$b = _interopRequireDefault$c(vendor.build);
3135
- var _ora$b = _interopRequireDefault$c(vendor.ora);
3171
+ var _yoctoSpinner$b = require$$3;
3136
3172
  var _flags$a = flags$1;
3137
3173
  var _apiHelpers$b = apiHelpers;
3138
3174
  var _errors$c = sdk.errors;
@@ -3151,7 +3187,9 @@ const metadata = metadata$1.metadata = {
3151
3187
  throw new _errors$c.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3152
3188
  }
3153
3189
  const spinnerText = "Getting scan's metadata... \n";
3154
- const spinner = (0, _ora$b.default)(spinnerText).start();
3190
+ const spinner = _yoctoSpinner$b({
3191
+ text: spinnerText
3192
+ }).start();
3155
3193
  await getOrgScanMetadata(input.orgSlug, input.scanID, spinner, apiKey);
3156
3194
  }
3157
3195
  }
@@ -3182,7 +3220,7 @@ function setupCommand$b(name, description, argv, importMeta) {
3182
3220
  let showHelp = cli.flags['help'];
3183
3221
  if (cli.input.length < 2) {
3184
3222
  showHelp = true;
3185
- console.error(`${_chalk$b.default.white.bgRed('Input error')}: Please specify an organization slug and a scan ID.\n`);
3223
+ console.error(`${_yoctocolorsCjs$b.bgRed(_yoctocolorsCjs$b.white('Input error'))}: Please specify an organization slug and a scan ID.`);
3186
3224
  }
3187
3225
  if (showHelp) {
3188
3226
  cli.showHelp();
@@ -3206,8 +3244,7 @@ async function getOrgScanMetadata(orgSlug, scanId, spinner, apiKey) {
3206
3244
  (0, _apiHelpers$b.handleUnsuccessfulApiResponse)('getOrgFullScanMetadata', result, spinner);
3207
3245
  return;
3208
3246
  }
3209
- spinner.stop();
3210
- console.log('\nScan metadata:\n');
3247
+ spinner.stop('Scan metadata:');
3211
3248
  console.log(result.data);
3212
3249
  }
3213
3250
 
@@ -3218,9 +3255,9 @@ Object.defineProperty(stream$1, "__esModule", {
3218
3255
  value: true
3219
3256
  });
3220
3257
  stream$1.stream = void 0;
3221
- var _chalk$a = _interopRequireDefault$b(vendor.source);
3258
+ var _yoctocolorsCjs$a = require$$1$2;
3222
3259
  var _meow$a = _interopRequireDefault$b(vendor.build);
3223
- var _ora$a = _interopRequireDefault$b(vendor.ora);
3260
+ var _yoctoSpinner$a = require$$3;
3224
3261
  var _flags$9 = flags$1;
3225
3262
  var _apiHelpers$a = apiHelpers;
3226
3263
  var _errors$b = sdk.errors;
@@ -3238,9 +3275,15 @@ const stream = stream$1.stream = {
3238
3275
  if (!apiKey) {
3239
3276
  throw new _errors$b.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3240
3277
  }
3241
- const spinnerText = 'Streaming scan...\n';
3242
- const spinner = (0, _ora$a.default)(spinnerText).start();
3243
- await getOrgFullScan(input.orgSlug, input.fullScanId, input.file, spinner, apiKey);
3278
+ const spinner = _yoctoSpinner$a({
3279
+ text: 'Streaming scan...'
3280
+ }).start();
3281
+ const result = await getOrgFullScan(input.orgSlug, input.fullScanId, input.file, apiKey);
3282
+ if (result?.success) {
3283
+ spinner.stop(input.file ? `Full scan details written to ${input.file}` : '');
3284
+ } else {
3285
+ (0, _apiHelpers$a.handleUnsuccessfulApiResponse)('getOrgFullScan', result, spinner);
3286
+ }
3244
3287
  }
3245
3288
  }
3246
3289
  };
@@ -3270,7 +3313,7 @@ function setupCommand$a(name, description, argv, importMeta) {
3270
3313
  let showHelp = cli.flags['help'];
3271
3314
  if (cli.input.length < 2) {
3272
3315
  showHelp = true;
3273
- console.error(`${_chalk$a.default.white.bgRed('Input error')}: Please specify an organization slug and a scan ID.\n`);
3316
+ console.error(`${_yoctocolorsCjs$a.bgRed(_yoctocolorsCjs$a.white('Input error'))}: Please specify an organization slug and a scan ID.`);
3274
3317
  }
3275
3318
  if (showHelp) {
3276
3319
  cli.showHelp();
@@ -3289,15 +3332,9 @@ function setupCommand$a(name, description, argv, importMeta) {
3289
3332
  file
3290
3333
  };
3291
3334
  }
3292
- async function getOrgFullScan(orgSlug, fullScanId, file, spinner, apiKey) {
3335
+ async function getOrgFullScan(orgSlug, fullScanId, file, apiKey) {
3293
3336
  const socketSdk = await (0, _sdk$a.setupSdk)(apiKey);
3294
- const result = await (0, _apiHelpers$a.handleApiCall)(socketSdk.getOrgFullScan(orgSlug, fullScanId, file), 'Streaming a scan');
3295
- if (!result?.success) {
3296
- (0, _apiHelpers$a.handleUnsuccessfulApiResponse)('getOrgFullScan', result, spinner);
3297
- return;
3298
- }
3299
- spinner.stop();
3300
- console.log(file ? `\nFull scan details written to ${file}\n` : '\nFull scan details:\n');
3337
+ return await (0, _apiHelpers$a.handleApiCall)(socketSdk.getOrgFullScan(orgSlug, fullScanId, file), 'Streaming a scan');
3301
3338
  }
3302
3339
 
3303
3340
  Object.defineProperty(scan, "__esModule", {
@@ -3338,10 +3375,10 @@ Object.defineProperty(auditLog$1, "__esModule", {
3338
3375
  value: true
3339
3376
  });
3340
3377
  auditLog$1.auditLog = void 0;
3341
- var _prompts = require$$1$2;
3342
- var _chalk$9 = _interopRequireDefault$a(vendor.source);
3378
+ var _prompts = require$$1$3;
3379
+ var _yoctocolorsCjs$9 = require$$1$2;
3343
3380
  var _meow$9 = _interopRequireDefault$a(vendor.build);
3344
- var _ora$9 = _interopRequireDefault$a(vendor.ora);
3381
+ var _yoctoSpinner$9 = require$$3;
3345
3382
  var _flags$8 = flags$1;
3346
3383
  var _apiHelpers$9 = apiHelpers;
3347
3384
  var _errors$a = sdk.errors;
@@ -3359,7 +3396,9 @@ const auditLog = auditLog$1.auditLog = {
3359
3396
  if (!apiKey) {
3360
3397
  throw new _errors$a.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3361
3398
  }
3362
- const spinner = (0, _ora$9.default)(`Looking up audit log for ${input.orgSlug}\n`).start();
3399
+ const spinner = _yoctoSpinner$9({
3400
+ text: `Looking up audit log for ${input.orgSlug}\n`
3401
+ }).start();
3363
3402
  await fetchOrgAuditLog(input.orgSlug, input, spinner, apiKey);
3364
3403
  }
3365
3404
  }
@@ -3411,7 +3450,7 @@ function setupCommand$9(name, description, argv, importMeta) {
3411
3450
  let showHelp = cli.flags['help'];
3412
3451
  if (cli.input.length < 1) {
3413
3452
  showHelp = true;
3414
- console.error(`${_chalk$9.default.white.bgRed('Input error')}: Please provide an organization slug\n`);
3453
+ console.error(`${_yoctocolorsCjs$9.bgRed(_yoctocolorsCjs$9.white('Input error'))}: Please provide an organization slug.`);
3415
3454
  }
3416
3455
  if (showHelp) {
3417
3456
  cli.showHelp();
@@ -3478,9 +3517,9 @@ Object.defineProperty(create$1, "__esModule", {
3478
3517
  value: true
3479
3518
  });
3480
3519
  create$1.create = void 0;
3481
- var _chalk$8 = _interopRequireDefault$9(vendor.source);
3520
+ var _yoctocolorsCjs$8 = require$$1$2;
3482
3521
  var _meow$8 = _interopRequireDefault$9(vendor.build);
3483
- var _ora$8 = _interopRequireDefault$9(vendor.ora);
3522
+ var _yoctoSpinner$8 = require$$3;
3484
3523
  var _flags$7 = flags$1;
3485
3524
  var _apiHelpers$8 = apiHelpers;
3486
3525
  var _errors$9 = sdk.errors;
@@ -3499,7 +3538,9 @@ const create = create$1.create = {
3499
3538
  throw new _errors$9.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3500
3539
  }
3501
3540
  const spinnerText = 'Creating repository... \n';
3502
- const spinner = (0, _ora$8.default)(spinnerText).start();
3541
+ const spinner = _yoctoSpinner$8({
3542
+ text: spinnerText
3543
+ }).start();
3503
3544
  await createRepo(input.orgSlug, input, spinner, apiKey);
3504
3545
  }
3505
3546
  }
@@ -3567,10 +3608,10 @@ function setupCommand$8(name, description, argv, importMeta) {
3567
3608
  let showHelp = cli.flags['help'];
3568
3609
  if (!orgSlug) {
3569
3610
  showHelp = true;
3570
- console.error(`${_chalk$8.default.white.bgRed('Input error')}: Please provide an organization slug\n`);
3611
+ console.error(`${_yoctocolorsCjs$8.bgRed(_yoctocolorsCjs$8.white('Input error'))}: Please provide an organization slug.`);
3571
3612
  } else if (!repoName) {
3572
3613
  showHelp = true;
3573
- console.error(`${_chalk$8.default.white.bgRed('Input error')}: Repository name is required.\n`);
3614
+ console.error(`${_yoctocolorsCjs$8.bgRed(_yoctocolorsCjs$8.white('Input error'))}: Repository name is required.`);
3574
3615
  }
3575
3616
  if (showHelp) {
3576
3617
  cli.showHelp();
@@ -3590,12 +3631,11 @@ function setupCommand$8(name, description, argv, importMeta) {
3590
3631
  async function createRepo(orgSlug, input, spinner, apiKey) {
3591
3632
  const socketSdk = await (0, _sdk$8.setupSdk)(apiKey);
3592
3633
  const result = await (0, _apiHelpers$8.handleApiCall)(socketSdk.createOrgRepo(orgSlug, input), 'creating repository');
3593
- if (!result.success) {
3634
+ if (result.success) {
3635
+ spinner.success('Repository created successfully');
3636
+ } else {
3594
3637
  (0, _apiHelpers$8.handleUnsuccessfulApiResponse)('createOrgRepo', result, spinner);
3595
- return;
3596
3638
  }
3597
- spinner.stop();
3598
- console.log('\n✅ Repository created successfully\n');
3599
3639
  }
3600
3640
 
3601
3641
  var _delete$1 = {};
@@ -3605,9 +3645,9 @@ Object.defineProperty(_delete$1, "__esModule", {
3605
3645
  value: true
3606
3646
  });
3607
3647
  _delete$1.del = void 0;
3608
- var _chalk$7 = _interopRequireDefault$8(vendor.source);
3648
+ var _yoctocolorsCjs$7 = require$$1$2;
3609
3649
  var _meow$7 = _interopRequireDefault$8(vendor.build);
3610
- var _ora$7 = _interopRequireDefault$8(vendor.ora);
3650
+ var _yoctoSpinner$7 = require$$3;
3611
3651
  var _apiHelpers$7 = apiHelpers;
3612
3652
  var _errors$8 = sdk.errors;
3613
3653
  var _sdk$7 = sdk.sdk;
@@ -3624,7 +3664,9 @@ const del = _delete$1.del = {
3624
3664
  throw new _errors$8.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3625
3665
  }
3626
3666
  const spinnerText = 'Deleting repository... \n';
3627
- const spinner = (0, _ora$7.default)(spinnerText).start();
3667
+ const spinner = _yoctoSpinner$7({
3668
+ text: spinnerText
3669
+ }).start();
3628
3670
  await deleteRepository(input.orgSlug, input.repoName, spinner, apiKey);
3629
3671
  }
3630
3672
  }
@@ -3651,7 +3693,7 @@ function setupCommand$7(name, description, argv, importMeta) {
3651
3693
  let showHelp = cli.flags['help'];
3652
3694
  if (!orgSlug || !repoName) {
3653
3695
  showHelp = true;
3654
- console.error(`${_chalk$7.default.white.bgRed('Input error')}: Please provide an organization slug and repository slug\n`);
3696
+ console.error(`${_yoctocolorsCjs$7.bgRed(_yoctocolorsCjs$7.white('Input error'))}: Please provide an organization slug and repository slug.`);
3655
3697
  }
3656
3698
  if (showHelp) {
3657
3699
  cli.showHelp();
@@ -3665,12 +3707,11 @@ function setupCommand$7(name, description, argv, importMeta) {
3665
3707
  async function deleteRepository(orgSlug, repoName, spinner, apiKey) {
3666
3708
  const socketSdk = await (0, _sdk$7.setupSdk)(apiKey);
3667
3709
  const result = await (0, _apiHelpers$7.handleApiCall)(socketSdk.deleteOrgRepo(orgSlug, repoName), 'deleting repository');
3668
- if (!result.success) {
3710
+ if (result.success) {
3711
+ spinner.success('Repository deleted successfully');
3712
+ } else {
3669
3713
  (0, _apiHelpers$7.handleUnsuccessfulApiResponse)('deleteOrgRepo', result, spinner);
3670
- return;
3671
3714
  }
3672
- spinner.stop();
3673
- console.log('\n✅ Repository deleted successfully\n');
3674
3715
  }
3675
3716
 
3676
3717
  var list$1 = {};
@@ -3680,10 +3721,10 @@ Object.defineProperty(list$1, "__esModule", {
3680
3721
  value: true
3681
3722
  });
3682
3723
  list$1.list = void 0;
3683
- var _chalk$6 = _interopRequireDefault$7(vendor.source);
3724
+ var _yoctocolorsCjs$6 = require$$1$2;
3684
3725
  var _chalkTable$2 = require$$2$3;
3685
3726
  var _meow$6 = _interopRequireDefault$7(vendor.build);
3686
- var _ora$6 = _interopRequireDefault$7(vendor.ora);
3727
+ var _yoctoSpinner$6 = require$$3;
3687
3728
  var _flags$6 = flags$1;
3688
3729
  var _apiHelpers$6 = apiHelpers;
3689
3730
  var _errors$7 = sdk.errors;
@@ -3704,7 +3745,9 @@ const list = list$1.list = {
3704
3745
  throw new _errors$7.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3705
3746
  }
3706
3747
  const spinnerText = 'Listing repositories... \n';
3707
- const spinner = (0, _ora$6.default)(spinnerText).start();
3748
+ const spinner = _yoctoSpinner$6({
3749
+ text: spinnerText
3750
+ }).start();
3708
3751
  await listOrgRepos(input.orgSlug, input, spinner, apiKey);
3709
3752
  }
3710
3753
  }
@@ -3761,7 +3804,7 @@ function setupCommand$6(name, description, argv, importMeta) {
3761
3804
  let showHelp = cli.flags['help'];
3762
3805
  if (!cli.input[0]) {
3763
3806
  showHelp = true;
3764
- console.error(`${_chalk$6.default.white.bgRed('Input error')}: Please provide an organization slug\n`);
3807
+ console.error(`${_yoctocolorsCjs$6.bgRed(_yoctocolorsCjs$6.white('Input error'))}: Please provide an organization slug.`);
3765
3808
  }
3766
3809
  if (showHelp) {
3767
3810
  cli.showHelp();
@@ -3787,26 +3830,25 @@ async function listOrgRepos(orgSlug, input, spinner, apiKey) {
3787
3830
  (0, _apiHelpers$6.handleUnsuccessfulApiResponse)('getOrgRepoList', result, spinner);
3788
3831
  return;
3789
3832
  }
3790
- spinner.stop();
3791
3833
  const options = {
3792
3834
  columns: [{
3793
3835
  field: 'id',
3794
- name: _chalk$6.default.magenta('ID')
3836
+ name: _yoctocolorsCjs$6.magenta('ID')
3795
3837
  }, {
3796
3838
  field: 'name',
3797
- name: _chalk$6.default.magenta('Name')
3839
+ name: _yoctocolorsCjs$6.magenta('Name')
3798
3840
  }, {
3799
3841
  field: 'visibility',
3800
- name: _chalk$6.default.magenta('Visibility')
3842
+ name: _yoctocolorsCjs$6.magenta('Visibility')
3801
3843
  }, {
3802
3844
  field: 'default_branch',
3803
- name: _chalk$6.default.magenta('Default branch')
3845
+ name: _yoctocolorsCjs$6.magenta('Default branch')
3804
3846
  }, {
3805
3847
  field: 'archived',
3806
- name: _chalk$6.default.magenta('Archived')
3848
+ name: _yoctocolorsCjs$6.magenta('Archived')
3807
3849
  }]
3808
3850
  };
3809
- console.log(`${_chalkTable$2(options, result.data.results)}\n`);
3851
+ spinner.stop(_chalkTable$2(options, result.data.results));
3810
3852
  }
3811
3853
 
3812
3854
  var update$1 = {};
@@ -3816,9 +3858,9 @@ Object.defineProperty(update$1, "__esModule", {
3816
3858
  value: true
3817
3859
  });
3818
3860
  update$1.update = void 0;
3819
- var _chalk$5 = _interopRequireDefault$6(vendor.source);
3861
+ var _yoctocolorsCjs$5 = require$$1$2;
3820
3862
  var _meow$5 = _interopRequireDefault$6(vendor.build);
3821
- var _ora$5 = _interopRequireDefault$6(vendor.ora);
3863
+ var _yoctoSpinner$5 = require$$3;
3822
3864
  var _flags$5 = flags$1;
3823
3865
  var _apiHelpers$5 = apiHelpers;
3824
3866
  var _errors$6 = sdk.errors;
@@ -3837,7 +3879,9 @@ const update = update$1.update = {
3837
3879
  throw new _errors$6.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3838
3880
  }
3839
3881
  const spinnerText = 'Updating repository... \n';
3840
- const spinner = (0, _ora$5.default)(spinnerText).start();
3882
+ const spinner = _yoctoSpinner$5({
3883
+ text: spinnerText
3884
+ }).start();
3841
3885
  await updateRepository(input.orgSlug, input, spinner, apiKey);
3842
3886
  }
3843
3887
  }
@@ -3905,10 +3949,10 @@ function setupCommand$5(name, description, argv, importMeta) {
3905
3949
  let showHelp = cli.flags['help'];
3906
3950
  if (!orgSlug) {
3907
3951
  showHelp = true;
3908
- console.error(`${_chalk$5.default.white.bgRed('Input error')}: Please provide an organization slug and repository name\n`);
3952
+ console.error(`${_yoctocolorsCjs$5.bgRed(_yoctocolorsCjs$5.white('Input error'))}: Please provide an organization slug and repository name.`);
3909
3953
  } else if (!repoName) {
3910
3954
  showHelp = true;
3911
- console.error(`${_chalk$5.default.white.bgRed('Input error')}: Repository name is required.\n`);
3955
+ console.error(`${_yoctocolorsCjs$5.bgRed(_yoctocolorsCjs$5.white('Input error'))}: Repository name is required.`);
3912
3956
  }
3913
3957
  if (showHelp) {
3914
3958
  cli.showHelp();
@@ -3928,12 +3972,11 @@ function setupCommand$5(name, description, argv, importMeta) {
3928
3972
  async function updateRepository(orgSlug, input, spinner, apiKey) {
3929
3973
  const socketSdk = await (0, _sdk$5.setupSdk)(apiKey);
3930
3974
  const result = await (0, _apiHelpers$5.handleApiCall)(socketSdk.updateOrgRepo(orgSlug, input.name, input), 'updating repository');
3931
- if (!result.success) {
3975
+ if (result.success) {
3976
+ spinner.success('Repository updated successfully');
3977
+ } else {
3932
3978
  (0, _apiHelpers$5.handleUnsuccessfulApiResponse)('updateOrgRepo', result, spinner);
3933
- return;
3934
3979
  }
3935
- spinner.stop();
3936
- console.log('\n✅ Repository updated successfully\n');
3937
3980
  }
3938
3981
 
3939
3982
  var view$1 = {};
@@ -3943,10 +3986,10 @@ Object.defineProperty(view$1, "__esModule", {
3943
3986
  value: true
3944
3987
  });
3945
3988
  view$1.view = void 0;
3946
- var _chalk$4 = _interopRequireDefault$5(vendor.source);
3989
+ var _yoctocolorsCjs$4 = require$$1$2;
3947
3990
  var _chalkTable$1 = require$$2$3;
3948
3991
  var _meow$4 = _interopRequireDefault$5(vendor.build);
3949
- var _ora$4 = _interopRequireDefault$5(vendor.ora);
3992
+ var _yoctoSpinner$4 = require$$3;
3950
3993
  var _flags$4 = flags$1;
3951
3994
  var _apiHelpers$4 = apiHelpers;
3952
3995
  var _errors$5 = sdk.errors;
@@ -3967,7 +4010,9 @@ const view = view$1.view = {
3967
4010
  throw new _errors$5.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
3968
4011
  }
3969
4012
  const spinnerText = 'Fetching repository... \n';
3970
- const spinner = (0, _ora$4.default)(spinnerText).start();
4013
+ const spinner = _yoctoSpinner$4({
4014
+ text: spinnerText
4015
+ }).start();
3971
4016
  await viewRepository(input.orgSlug, input.repositoryName, spinner, apiKey);
3972
4017
  }
3973
4018
  }
@@ -3998,7 +4043,7 @@ function setupCommand$4(name, description, argv, importMeta) {
3998
4043
  let showHelp = cli.flags['help'];
3999
4044
  if (!cli.input[0]) {
4000
4045
  showHelp = true;
4001
- console.error(`${_chalk$4.default.white.bgRed('Input error')}: Please provide an organization slug and repository name\n`);
4046
+ console.error(`${_yoctocolorsCjs$4.bgRed(_yoctocolorsCjs$4.white('Input error'))}: Please provide an organization slug and repository name.`);
4002
4047
  }
4003
4048
  if (showHelp) {
4004
4049
  cli.showHelp();
@@ -4022,32 +4067,31 @@ async function viewRepository(orgSlug, repoName, spinner, apiKey) {
4022
4067
  (0, _apiHelpers$4.handleUnsuccessfulApiResponse)('getOrgRepo', result, spinner);
4023
4068
  return;
4024
4069
  }
4025
- spinner.stop();
4026
4070
  const options = {
4027
4071
  columns: [{
4028
4072
  field: 'id',
4029
- name: _chalk$4.default.magenta('ID')
4073
+ name: _yoctocolorsCjs$4.magenta('ID')
4030
4074
  }, {
4031
4075
  field: 'name',
4032
- name: _chalk$4.default.magenta('Name')
4076
+ name: _yoctocolorsCjs$4.magenta('Name')
4033
4077
  }, {
4034
4078
  field: 'visibility',
4035
- name: _chalk$4.default.magenta('Visibility')
4079
+ name: _yoctocolorsCjs$4.magenta('Visibility')
4036
4080
  }, {
4037
4081
  field: 'default_branch',
4038
- name: _chalk$4.default.magenta('Default branch')
4082
+ name: _yoctocolorsCjs$4.magenta('Default branch')
4039
4083
  }, {
4040
4084
  field: 'homepage',
4041
- name: _chalk$4.default.magenta('Homepage')
4085
+ name: _yoctocolorsCjs$4.magenta('Homepage')
4042
4086
  }, {
4043
4087
  field: 'archived',
4044
- name: _chalk$4.default.magenta('Archived')
4088
+ name: _yoctocolorsCjs$4.magenta('Archived')
4045
4089
  }, {
4046
4090
  field: 'created_at',
4047
- name: _chalk$4.default.magenta('Created at')
4091
+ name: _yoctocolorsCjs$4.magenta('Created at')
4048
4092
  }]
4049
4093
  };
4050
- console.log(`${_chalkTable$1(options, [result.data])}\n`);
4094
+ spinner.stop(_chalkTable$1(options, [result.data]));
4051
4095
  }
4052
4096
 
4053
4097
  Object.defineProperty(repos, "__esModule", {
@@ -4088,10 +4132,10 @@ Object.defineProperty(dependencies$1, "__esModule", {
4088
4132
  value: true
4089
4133
  });
4090
4134
  dependencies$1.dependencies = void 0;
4091
- var _chalk$3 = _interopRequireDefault$4(vendor.source);
4135
+ var _yoctocolorsCjs$3 = require$$1$2;
4092
4136
  var _chalkTable = require$$2$3;
4093
4137
  var _meow$3 = _interopRequireDefault$4(vendor.build);
4094
- var _ora$3 = _interopRequireDefault$4(vendor.ora);
4138
+ var _yoctoSpinner$3 = require$$3;
4095
4139
  var _flags$3 = flags$1;
4096
4140
  var _apiHelpers$3 = apiHelpers;
4097
4141
  var _errors$4 = sdk.errors;
@@ -4171,8 +4215,9 @@ async function searchDeps({
4171
4215
  if (!apiKey) {
4172
4216
  throw new _errors$4.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
4173
4217
  }
4174
- const spinnerText = 'Searching dependencies...';
4175
- const spinner = (0, _ora$3.default)(spinnerText).start();
4218
+ const spinner = _yoctoSpinner$3({
4219
+ text: 'Searching dependencies...'
4220
+ }).start();
4176
4221
  const socketSdk = await (0, _sdk$3.setupSdk)(apiKey);
4177
4222
  const result = await (0, _apiHelpers$3.handleApiCall)(socketSdk.searchDependencies({
4178
4223
  limit,
@@ -4182,8 +4227,7 @@ async function searchDeps({
4182
4227
  (0, _apiHelpers$3.handleUnsuccessfulApiResponse)('searchDependencies', result, spinner);
4183
4228
  return;
4184
4229
  }
4185
- spinner.stop();
4186
- console.log('Organization dependencies:\n');
4230
+ spinner.stop('Organization dependencies:');
4187
4231
  if (outputJson) {
4188
4232
  console.log(result.data);
4189
4233
  return;
@@ -4191,28 +4235,28 @@ async function searchDeps({
4191
4235
  const options = {
4192
4236
  columns: [{
4193
4237
  field: 'namespace',
4194
- name: _chalk$3.default.cyan('Namespace')
4238
+ name: _yoctocolorsCjs$3.cyan('Namespace')
4195
4239
  }, {
4196
4240
  field: 'name',
4197
- name: _chalk$3.default.cyan('Name')
4241
+ name: _yoctocolorsCjs$3.cyan('Name')
4198
4242
  }, {
4199
4243
  field: 'version',
4200
- name: _chalk$3.default.cyan('Version')
4244
+ name: _yoctocolorsCjs$3.cyan('Version')
4201
4245
  }, {
4202
4246
  field: 'repository',
4203
- name: _chalk$3.default.cyan('Repository')
4247
+ name: _yoctocolorsCjs$3.cyan('Repository')
4204
4248
  }, {
4205
4249
  field: 'branch',
4206
- name: _chalk$3.default.cyan('Branch')
4250
+ name: _yoctocolorsCjs$3.cyan('Branch')
4207
4251
  }, {
4208
4252
  field: 'type',
4209
- name: _chalk$3.default.cyan('Type')
4253
+ name: _yoctocolorsCjs$3.cyan('Type')
4210
4254
  }, {
4211
4255
  field: 'direct',
4212
- name: _chalk$3.default.cyan('Direct')
4256
+ name: _yoctocolorsCjs$3.cyan('Direct')
4213
4257
  }]
4214
4258
  };
4215
- console.log(`${_chalkTable(options, result.data.rows)}\n`);
4259
+ console.log(_chalkTable(options, result.data.rows));
4216
4260
  }
4217
4261
 
4218
4262
  var analytics$1 = {};
@@ -4222,12 +4266,14 @@ Object.defineProperty(analytics$1, "__esModule", {
4222
4266
  value: true
4223
4267
  });
4224
4268
  analytics$1.analytics = void 0;
4225
- var _promises = require$$1$3;
4226
- var _blessed$1 = require$$2$4;
4227
- var _blessedContrib$1 = require$$3$2;
4228
- var _chalk$2 = _interopRequireDefault$3(vendor.source);
4269
+ var _promises = require$$1$4;
4270
+ var _screen$1 = require$$2$4;
4271
+ var _bar = require$$3$3;
4272
+ var _grid = require$$4$2;
4273
+ var _line = require$$5$4;
4229
4274
  var _meow$2 = _interopRequireDefault$3(vendor.build);
4230
- var _ora$2 = _interopRequireDefault$3(vendor.ora);
4275
+ var _yoctocolorsCjs$2 = require$$1$2;
4276
+ var _yoctoSpinner$2 = require$$3;
4231
4277
  var _flags$2 = flags$1;
4232
4278
  var _apiHelpers$2 = apiHelpers;
4233
4279
  var _errors$3 = sdk.errors;
@@ -4235,6 +4281,12 @@ var _formatting$2 = formatting;
4235
4281
  var _sdk$2 = sdk.sdk;
4236
4282
  // @ts-ignore
4237
4283
 
4284
+ // @ts-ignore
4285
+
4286
+ // @ts-ignore
4287
+
4288
+ // @ts-ignore
4289
+
4238
4290
  const analytics = analytics$1.analytics = {
4239
4291
  description: `Look up analytics data \n
4240
4292
  Default parameters are set to show the organization-level analytics over the last 7 days.`,
@@ -4248,7 +4300,9 @@ const analytics = analytics$1.analytics = {
4248
4300
  if (!apiKey) {
4249
4301
  throw new _errors$3.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
4250
4302
  }
4251
- const spinner = (0, _ora$2.default)('Fetching analytics data').start();
4303
+ const spinner = _yoctoSpinner$2({
4304
+ text: 'Fetching analytics data'
4305
+ }).start();
4252
4306
  if (input.scope === 'org') {
4253
4307
  await fetchOrgAnalyticsData(input.time, spinner, apiKey, input.outputJson, input.file);
4254
4308
  } else {
@@ -4325,7 +4379,7 @@ function setupCommand$2(name, description, argv, importMeta) {
4325
4379
  let showHelp = cli.flags['help'];
4326
4380
  if (scope === 'repo' && !repo) {
4327
4381
  showHelp = true;
4328
- console.error(`${_chalk$2.default.bgRed.white('Input error')}: Please provide a repository name when using the repository scope. \n`);
4382
+ console.error(`${_yoctocolorsCjs$2.bgRed(_yoctocolorsCjs$2.white('Input error'))}: Please provide a repository name when using the repository scope.`);
4329
4383
  }
4330
4384
  if (showHelp) {
4331
4385
  cli.showHelp();
@@ -4479,8 +4533,8 @@ async function fetchRepoAnalyticsData(repo, time, spinner, apiKey, outputJson, f
4479
4533
  return displayAnalyticsScreen(data);
4480
4534
  }
4481
4535
  const displayAnalyticsScreen = data => {
4482
- const screen = _blessed$1.screen();
4483
- const grid = new _blessedContrib$1.grid({
4536
+ const screen = new _screen$1();
4537
+ const grid = new _grid({
4484
4538
  rows: 5,
4485
4539
  cols: 4,
4486
4540
  screen
@@ -4493,7 +4547,7 @@ const displayAnalyticsScreen = data => {
4493
4547
  renderLineCharts(grid, screen, 'Total high alerts prevented from the main branch', [2, 2, 1, 2], data['total_high_prevented']);
4494
4548
  renderLineCharts(grid, screen, 'Total medium alerts prevented from the main branch', [3, 0, 1, 2], data['total_medium_prevented']);
4495
4549
  renderLineCharts(grid, screen, 'Total low alerts prevented from the main branch', [3, 2, 1, 2], data['total_low_prevented']);
4496
- const bar = grid.set(4, 0, 1, 2, _blessedContrib$1.bar, {
4550
+ const bar = grid.set(4, 0, 1, 2, _bar, {
4497
4551
  label: 'Top 5 alert types',
4498
4552
  barWidth: 10,
4499
4553
  barSpacing: 17,
@@ -4511,7 +4565,7 @@ const displayAnalyticsScreen = data => {
4511
4565
  screen.key(['escape', 'q', 'C-c'], () => process.exit(0));
4512
4566
  };
4513
4567
  const renderLineCharts = (grid, screen, title, coords, data) => {
4514
- const line = grid.set(...coords, _blessedContrib$1.line, {
4568
+ const line = grid.set(...coords, _line, {
4515
4569
  style: {
4516
4570
  line: 'cyan',
4517
4571
  text: 'cyan',
@@ -4545,9 +4599,9 @@ Object.defineProperty(get$1, "__esModule", {
4545
4599
  get$1.get = void 0;
4546
4600
  var _nodeFs = require$$0;
4547
4601
  var _nodeUtil = require$$0$2;
4548
- var _chalk$1 = _interopRequireDefault$2(vendor.source);
4602
+ var _yoctocolorsCjs$1 = require$$1$2;
4549
4603
  var _meow$1 = _interopRequireDefault$2(vendor.build);
4550
- var _ora$1 = _interopRequireDefault$2(vendor.ora);
4604
+ var _yoctoSpinner$1 = require$$3;
4551
4605
  var _flags$1 = flags$1;
4552
4606
  var _apiHelpers$1 = apiHelpers;
4553
4607
  var _errors$2 = sdk.errors;
@@ -4566,7 +4620,9 @@ const get = get$1.get = {
4566
4620
  throw new _errors$2.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
4567
4621
  }
4568
4622
  const spinnerText = 'Getting diff scan... \n';
4569
- const spinner = (0, _ora$1.default)(spinnerText).start();
4623
+ const spinner = _yoctoSpinner$1({
4624
+ text: spinnerText
4625
+ }).start();
4570
4626
  await getDiffScan(input, spinner, apiKey);
4571
4627
  }
4572
4628
  }
@@ -4628,10 +4684,10 @@ function setupCommand$1(name, description, argv, importMeta) {
4628
4684
  let showHelp = cli.flags['help'];
4629
4685
  if (!before || !after) {
4630
4686
  showHelp = true;
4631
- console.error(`${_chalk$1.default.bgRed.white('Input error')}: Please specify a before and after full scan ID. To get full scans IDs, you can run the command "socket scan list <your org slug>".\n`);
4687
+ console.error(`${_yoctocolorsCjs$1.bgRed(_yoctocolorsCjs$1.white('Input error'))}: Please specify a before and after full scan ID. To get full scans IDs, you can run the command "socket scan list <your org slug>".`);
4632
4688
  } else if (cli.input.length < 1) {
4633
4689
  showHelp = true;
4634
- console.error(`${_chalk$1.default.bgRed.white('Input error')}: Please provide an organization slug\n`);
4690
+ console.error(`${_yoctocolorsCjs$1.bgRed(_yoctocolorsCjs$1.white('Input error'))}: Please provide an organization slug.`);
4635
4691
  }
4636
4692
  if (showHelp) {
4637
4693
  cli.showHelp();
@@ -4658,9 +4714,8 @@ async function getDiffScan({
4658
4714
  const response = await (0, _apiHelpers$1.queryAPI)(`${orgSlug}/full-scans/diff?before=${before}&after=${after}&preview`, apiKey);
4659
4715
  const data = await response.json();
4660
4716
  if (!response.ok) {
4661
- spinner.stop();
4662
4717
  const err = await (0, _apiHelpers$1.handleAPIError)(response.status);
4663
- console.error(`${_chalk$1.default.bgRed.white(response.statusText)}: ${err}\n`);
4718
+ spinner.error(`${_yoctocolorsCjs$1.bgRed(_yoctocolorsCjs$1.white(response.statusText))}: ${err}`);
4664
4719
  return;
4665
4720
  }
4666
4721
  spinner.stop();
@@ -4677,15 +4732,13 @@ async function getDiffScan({
4677
4732
  depth: null,
4678
4733
  colors: true
4679
4734
  }));
4680
- // @ts-ignore
4681
- console.log(`\n View this diff scan in the Socket dashboard: ${_chalk$1.default.cyan(data?.['diff_report_url'])}\n`);
4735
+ console.log(`\n View this diff scan in the Socket dashboard: ${_yoctocolorsCjs$1.cyan(data?.['diff_report_url'])}`);
4682
4736
  return;
4683
4737
  }
4684
- console.log('Diff scan result: ');
4738
+ console.log('Diff scan result:');
4685
4739
  console.log(data);
4686
4740
  console.log(`\n 📝 To display the detailed report in the terminal, use the --json flag \n`);
4687
- // @ts-ignore
4688
- console.log(`\n View this diff scan in the Socket dashboard: ${_chalk$1.default.cyan(data?.['diff_report_url'])}\n`);
4741
+ console.log(`\n View this diff scan in the Socket dashboard: ${_yoctocolorsCjs$1.cyan(data?.['diff_report_url'])}`);
4689
4742
  }
4690
4743
 
4691
4744
  Object.defineProperty(diffScan, "__esModule", {
@@ -4718,10 +4771,10 @@ Object.defineProperty(threatFeed$1, "__esModule", {
4718
4771
  value: true
4719
4772
  });
4720
4773
  threatFeed$1.threatFeed = void 0;
4721
- var _blessed = require$$2$4;
4722
- var _blessedContrib = require$$3$2;
4774
+ var _screen = require$$2$4;
4775
+ var _table = require$$2$5;
4723
4776
  var _meow = _interopRequireDefault$1(vendor.build);
4724
- var _ora = _interopRequireDefault$1(vendor.ora);
4777
+ var _yoctoSpinner = require$$3;
4725
4778
  var _flags = flags$1;
4726
4779
  var _apiHelpers = apiHelpers;
4727
4780
  var _errors$1 = sdk.errors;
@@ -4729,19 +4782,23 @@ var _formatting = formatting;
4729
4782
  var _sdk = sdk.sdk;
4730
4783
  // @ts-ignore
4731
4784
 
4785
+ // @ts-ignore
4786
+
4732
4787
  const threatFeed = threatFeed$1.threatFeed = {
4733
4788
  description: 'Look up the threat feed',
4734
4789
  async run(argv, importMeta, {
4735
4790
  parentName
4736
4791
  }) {
4737
- const name = parentName + ' threat-feed';
4792
+ const name = `${parentName} threat-feed`;
4738
4793
  const input = setupCommand(name, threatFeed.description, argv, importMeta);
4739
4794
  if (input) {
4740
4795
  const apiKey = (0, _sdk.getDefaultKey)();
4741
4796
  if (!apiKey) {
4742
4797
  throw new _errors$1.AuthError('User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.');
4743
4798
  }
4744
- const spinner = (0, _ora.default)(`Looking up the threat feed \n`).start();
4799
+ const spinner = _yoctoSpinner({
4800
+ text: 'Looking up the threat feed'
4801
+ }).start();
4745
4802
  await fetchThreatFeed(input, spinner, apiKey);
4746
4803
  }
4747
4804
  }
@@ -4831,10 +4888,11 @@ async function fetchThreatFeed({
4831
4888
  const data = await response.json();
4832
4889
  spinner.stop();
4833
4890
  if (outputJson) {
4834
- return console.log(data);
4891
+ console.log(data);
4892
+ return;
4835
4893
  }
4836
- const screen = _blessed.screen();
4837
- const table = _blessedContrib.table({
4894
+ const screen = new _screen();
4895
+ const table = new _table({
4838
4896
  keys: 'true',
4839
4897
  fg: 'white',
4840
4898
  selectedFg: 'white',
@@ -5099,11 +5157,11 @@ var _interopRequireWildcard = vendor.interopRequireWildcard.default;
5099
5157
  var _interopRequireDefault = vendor.interopRequireDefault.default;
5100
5158
  var _nodePath = require$$1;
5101
5159
  var _nodeUrl = require$$8$2;
5102
- var _chalk = _interopRequireDefault(vendor.source);
5160
+ var _yoctocolorsCjs = require$$1$2;
5103
5161
  var _ponyCause = require$$5$1;
5104
5162
  var _tinyUpdater = _interopRequireDefault(vendor.dist);
5105
5163
  var cliCommands = _interopRequireWildcard(commands, true);
5106
- var _chalkMarkdown = sdk.chalkMarkdown;
5164
+ var _colorOrMarkdown = sdk.colorOrMarkdown;
5107
5165
  var _errors = sdk.errors;
5108
5166
  var _meowWithSubcommands = meowWithSubcommands$1;
5109
5167
  const distPath = __dirname;
@@ -5158,7 +5216,7 @@ void (async () => {
5158
5216
  } else {
5159
5217
  errorTitle = 'Unexpected error with no details';
5160
5218
  }
5161
- console.error(`${_chalkMarkdown.logSymbols.error} ${_chalk.default.white.bgRed(errorTitle + ':')} ${errorMessage}`);
5219
+ console.error(`${_colorOrMarkdown.logSymbols.error} ${_yoctocolorsCjs.bgRed(_yoctocolorsCjs.white(errorTitle + ':'))} ${errorMessage}`);
5162
5220
  if (errorBody) {
5163
5221
  console.error(`\n${errorBody}`);
5164
5222
  }