socket 0.14.21 → 0.14.22
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.d.ts.map +1 -1
- package/dist/cli.js +65 -210
- package/dist/link.js +2 -2
- package/dist/npm-injection.js +17 -8
- package/dist/path-resolve.js +2 -2
- package/dist/sdk.d.ts +1 -10
- package/dist/sdk.js +5 -51
- package/dist/vendor.js +1673 -2374
- package/package.json +15 -31
- package/dist/vendor.d.ts +0 -0
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts","../src/utils/formatting.ts","../src/
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts","../src/utils/formatting.ts","../src/flags.ts","../src/utils/meow-with-subcommands.ts","../src/commands/cdxgen.ts","../src/utils/api-helpers.ts","../src/utils/objects.ts","../src/utils/format-issues.ts","../src/commands/info.ts","../src/commands/login.ts","../src/commands/logout.ts","../src/commands/npm.ts","../src/commands/npx.ts","../src/utils/fs.ts","../src/utils/package-manager-detector.ts","../src/commands/optimize.ts","../src/commands/organization.ts","../src/commands/raw-npm.ts","../src/commands/raw-npx.ts","../src/commands/report/view.ts","../src/commands/report/create.ts","../src/commands/report/index.ts","../src/commands/wrapper.ts","../src/commands/scan/create.ts","../src/commands/scan/delete.ts","../src/commands/scan/list.ts","../src/commands/scan/metadata.ts","../src/commands/scan/stream.ts","../src/commands/scan/index.ts","../src/commands/audit-log.ts","../src/commands/repos/create.ts","../src/commands/repos/delete.ts","../src/commands/repos/list.ts","../src/commands/repos/update.ts","../src/commands/repos/view.ts","../src/commands/repos/index.ts","../src/commands/dependencies.ts","../src/commands/analytics.ts","../src/commands/diff-scan/get.ts","../src/commands/diff-scan/index.ts","../src/commands/threat-feed.ts","../src/commands/index.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
CHANGED
|
@@ -14,24 +14,23 @@ var require$$1$4 = require('node:fs/promises');
|
|
|
14
14
|
var require$$1$3 = require('@npmcli/package-json');
|
|
15
15
|
var require$$5$1 = require('@socketsecurity/registry');
|
|
16
16
|
var require$$7 = require('npm-package-arg');
|
|
17
|
-
var require$$0$1 = require('pacote');
|
|
18
17
|
var require$$3 = require('semver');
|
|
19
|
-
var require$$
|
|
20
|
-
var require$$
|
|
18
|
+
var require$$10$1 = require('tinyglobby');
|
|
19
|
+
var require$$11 = require('yaml');
|
|
21
20
|
var require$$2 = require('@socketregistry/hyrious__bun.lockb');
|
|
22
|
-
var require$$
|
|
23
|
-
var require$$
|
|
21
|
+
var require$$10 = require('browserslist');
|
|
22
|
+
var require$$8 = require('which');
|
|
24
23
|
var require$$2$1 = require('@apideck/better-ajv-errors');
|
|
25
24
|
var require$$3$1 = require('@socketsecurity/config');
|
|
26
25
|
var pathResolve = require('./path-resolve.js');
|
|
27
26
|
var require$$2$2 = require('node:os');
|
|
28
27
|
var require$$3$2 = require('node:readline');
|
|
29
|
-
var require$$0$
|
|
28
|
+
var require$$0$1 = require('node:process');
|
|
30
29
|
var require$$2$3 = require('node:readline/promises');
|
|
31
30
|
var require$$2$4 = require('chalk-table');
|
|
32
31
|
var require$$2$5 = require('blessed');
|
|
33
32
|
var require$$3$3 = require('blessed-contrib');
|
|
34
|
-
var require$$0$
|
|
33
|
+
var require$$0$2 = require('node:util');
|
|
35
34
|
|
|
36
35
|
var cli$1 = {};
|
|
37
36
|
|
|
@@ -325,13 +324,36 @@ async function queryAPI(path, apiKey) {
|
|
|
325
324
|
|
|
326
325
|
var formatIssues = {};
|
|
327
326
|
|
|
327
|
+
var objects = {};
|
|
328
|
+
|
|
329
|
+
Object.defineProperty(objects, "__esModule", {
|
|
330
|
+
value: true
|
|
331
|
+
});
|
|
332
|
+
objects.objectSome = objectSome;
|
|
333
|
+
objects.pick = pick;
|
|
334
|
+
function objectSome(obj) {
|
|
335
|
+
for (const key in obj) {
|
|
336
|
+
if (obj[key]) {
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
function pick(input, keys) {
|
|
343
|
+
const result = {};
|
|
344
|
+
for (const key of keys) {
|
|
345
|
+
result[key] = input[key];
|
|
346
|
+
}
|
|
347
|
+
return result;
|
|
348
|
+
}
|
|
349
|
+
|
|
328
350
|
Object.defineProperty(formatIssues, "__esModule", {
|
|
329
351
|
value: true
|
|
330
352
|
});
|
|
331
353
|
formatIssues.formatSeverityCount = formatSeverityCount;
|
|
332
354
|
formatIssues.getSeverityCount = getSeverityCount;
|
|
333
355
|
var _misc$2 = sdk.misc;
|
|
334
|
-
var _objects$
|
|
356
|
+
var _objects$4 = objects;
|
|
335
357
|
const SEVERITIES_BY_ORDER = ['critical', 'high', 'middle', 'low'];
|
|
336
358
|
function getDesiredSeverities(lowestToInclude) {
|
|
337
359
|
const result = [];
|
|
@@ -353,7 +375,7 @@ function formatSeverityCount(severityCount) {
|
|
|
353
375
|
return (0, _misc$2.stringJoinWithSeparateFinalSeparator)(summary);
|
|
354
376
|
}
|
|
355
377
|
function getSeverityCount(issues, lowestToInclude) {
|
|
356
|
-
const severityCount = (0, _objects$
|
|
378
|
+
const severityCount = (0, _objects$4.pick)({
|
|
357
379
|
low: 0,
|
|
358
380
|
middle: 0,
|
|
359
381
|
high: 0,
|
|
@@ -417,7 +439,7 @@ var _chalkMarkdown$3 = sdk.chalkMarkdown;
|
|
|
417
439
|
var _errors$k = sdk.errors;
|
|
418
440
|
var _formatIssues$1 = formatIssues;
|
|
419
441
|
var _formatting$m = formatting;
|
|
420
|
-
var _objects$
|
|
442
|
+
var _objects$3 = objects;
|
|
421
443
|
var _sdk$j = sdk.sdk;
|
|
422
444
|
const info = info$1.info = {
|
|
423
445
|
description: 'Look up info regarding a package',
|
|
@@ -533,7 +555,7 @@ function formatPackageDataOutput({
|
|
|
533
555
|
License: Math.floor(score.license.score * 100)
|
|
534
556
|
};
|
|
535
557
|
Object.entries(scoreResult).map(score => console.log(`- ${score[0]}: ${formatScore(score[1])}`));
|
|
536
|
-
if ((0, _objects$
|
|
558
|
+
if ((0, _objects$3.objectSome)(severityCount)) {
|
|
537
559
|
const issueSummary = (0, _formatIssues$1.formatSeverityCount)(severityCount);
|
|
538
560
|
console.log('\n');
|
|
539
561
|
spinner[strict ? 'fail' : 'succeed'](`Package has these issues: ${issueSummary}`);
|
|
@@ -557,7 +579,7 @@ function formatPackageDataOutput({
|
|
|
557
579
|
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'));
|
|
558
580
|
}
|
|
559
581
|
}
|
|
560
|
-
if (strict && (0, _objects$
|
|
582
|
+
if (strict && (0, _objects$3.objectSome)(severityCount)) {
|
|
561
583
|
process.exit(1);
|
|
562
584
|
}
|
|
563
585
|
}
|
|
@@ -890,16 +912,6 @@ async function readFileUtf8(filepath, options) {
|
|
|
890
912
|
|
|
891
913
|
var packageManagerDetector = {};
|
|
892
914
|
|
|
893
|
-
var strings = {};
|
|
894
|
-
|
|
895
|
-
Object.defineProperty(strings, "__esModule", {
|
|
896
|
-
value: true
|
|
897
|
-
});
|
|
898
|
-
strings.isNonEmptyString = isNonEmptyString;
|
|
899
|
-
function isNonEmptyString(value) {
|
|
900
|
-
return typeof value === 'string' && value.length > 0;
|
|
901
|
-
}
|
|
902
|
-
|
|
903
915
|
Object.defineProperty(packageManagerDetector, "__esModule", {
|
|
904
916
|
value: true
|
|
905
917
|
});
|
|
@@ -909,20 +921,20 @@ var _nodePath$3 = require$$1;
|
|
|
909
921
|
var _packageJson$1 = require$$1$3;
|
|
910
922
|
var _hyrious__bun = require$$2;
|
|
911
923
|
var _promiseSpawn$3 = require$$1$1;
|
|
912
|
-
var _browserslist = require$$
|
|
924
|
+
var _browserslist = require$$10;
|
|
913
925
|
var _semver$1 = require$$3;
|
|
914
|
-
var _which = require$$
|
|
926
|
+
var _which = require$$8;
|
|
927
|
+
var _constants = vendor.constants_1;
|
|
928
|
+
var _objects$2 = vendor.objects;
|
|
929
|
+
var _strings$1 = vendor.strings;
|
|
915
930
|
var _fs$1 = fs;
|
|
916
|
-
var _objects$1 = sdk.objects;
|
|
917
|
-
var _strings$1 = strings;
|
|
918
931
|
const AGENTS = packageManagerDetector.AGENTS = ['bun', 'npm', 'pnpm', 'yarn/berry', 'yarn/classic', 'vlt'];
|
|
919
|
-
const
|
|
932
|
+
const {
|
|
933
|
+
compare: alphaNumericComparator
|
|
934
|
+
} = new Intl.Collator(undefined, {
|
|
920
935
|
numeric: true,
|
|
921
936
|
sensitivity: 'base'
|
|
922
937
|
});
|
|
923
|
-
const {
|
|
924
|
-
compare: alphaNumericComparator
|
|
925
|
-
} = numericCollator;
|
|
926
938
|
async function getAgentExecPath(agent) {
|
|
927
939
|
return (await _which(agent, {
|
|
928
940
|
nothrow: true
|
|
@@ -939,31 +951,6 @@ async function getAgentVersion(agentExecPath, cwd) {
|
|
|
939
951
|
} catch {}
|
|
940
952
|
return result;
|
|
941
953
|
}
|
|
942
|
-
const maintainedNodeVersions = (() => {
|
|
943
|
-
// Under the hood browserlist uses the node-releases package which is out of date:
|
|
944
|
-
// https://github.com/chicoxyzzy/node-releases/issues/37
|
|
945
|
-
// So we maintain a manual version list for now.
|
|
946
|
-
// https://nodejs.org/en/about/previous-releases#looking-for-latest-release-of-a-version-branch
|
|
947
|
-
const manualPrev = '18.20.4';
|
|
948
|
-
const manualCurr = '20.18.0';
|
|
949
|
-
const manualNext = '22.10.0';
|
|
950
|
-
const query = _browserslist('maintained node versions')
|
|
951
|
-
// Trim value, e.g. 'node 22.5.0' to '22.5.0'.
|
|
952
|
-
.map(s => s.slice(5 /*'node '.length*/))
|
|
953
|
-
// Sort ascending.
|
|
954
|
-
.toSorted(alphaNumericComparator);
|
|
955
|
-
const queryPrev = query.at(0) ?? manualPrev;
|
|
956
|
-
const queryCurr = query.at(1) ?? manualCurr;
|
|
957
|
-
const queryNext = query.at(2) ?? manualNext;
|
|
958
|
-
const previous = _semver$1.maxSatisfying([queryPrev, manualPrev], `^${_semver$1.major(queryPrev)}`);
|
|
959
|
-
const current = _semver$1.maxSatisfying([queryCurr, manualCurr], `^${_semver$1.major(queryCurr)}`);
|
|
960
|
-
const next = _semver$1.maxSatisfying([queryNext, manualNext], `^${_semver$1.major(queryNext)}`);
|
|
961
|
-
return Object.freeze(Object.assign([previous, current, next], {
|
|
962
|
-
previous,
|
|
963
|
-
current,
|
|
964
|
-
next
|
|
965
|
-
}));
|
|
966
|
-
})();
|
|
967
954
|
const LOCKS = {
|
|
968
955
|
'bun.lockb': 'bun',
|
|
969
956
|
// If both package-lock.json and npm-shrinkwrap.json are present in the root
|
|
@@ -1066,10 +1053,11 @@ async function detect({
|
|
|
1066
1053
|
node: true
|
|
1067
1054
|
};
|
|
1068
1055
|
let lockSrc;
|
|
1069
|
-
|
|
1056
|
+
// Lazily access constants.maintainedNodeVersions.
|
|
1057
|
+
let minimumNodeVersion = _constants.maintainedNodeVersions.previous;
|
|
1070
1058
|
if (pkgJson) {
|
|
1071
1059
|
const browserField = pkgJson.browser;
|
|
1072
|
-
if ((0, _strings$1.isNonEmptyString)(browserField) || (0, _objects$
|
|
1060
|
+
if ((0, _strings$1.isNonEmptyString)(browserField) || (0, _objects$2.isObjectObject)(browserField)) {
|
|
1073
1061
|
targets.browser = true;
|
|
1074
1062
|
}
|
|
1075
1063
|
const nodeRange = pkgJson.engines?.['node'];
|
|
@@ -1093,7 +1081,8 @@ async function detect({
|
|
|
1093
1081
|
}
|
|
1094
1082
|
}
|
|
1095
1083
|
}
|
|
1096
|
-
|
|
1084
|
+
// Lazily access constants.maintainedNodeVersions.
|
|
1085
|
+
targets.node = _constants.maintainedNodeVersions.some(v => _semver$1.satisfies(v, `>=${minimumNodeVersion}`));
|
|
1097
1086
|
lockSrc = typeof lockPath === 'string' ? await readLockFileByAgent[agent](lockPath, agentExecPath) : undefined;
|
|
1098
1087
|
} else {
|
|
1099
1088
|
lockPath = undefined;
|
|
@@ -1113,88 +1102,6 @@ async function detect({
|
|
|
1113
1102
|
};
|
|
1114
1103
|
}
|
|
1115
1104
|
|
|
1116
|
-
var promises = {};
|
|
1117
|
-
|
|
1118
|
-
var arrays = {};
|
|
1119
|
-
|
|
1120
|
-
Object.defineProperty(arrays, "__esModule", {
|
|
1121
|
-
value: true
|
|
1122
|
-
});
|
|
1123
|
-
arrays.arrayChunk = arrayChunk;
|
|
1124
|
-
arrays.arrayUnique = arrayUnique;
|
|
1125
|
-
function arrayChunk(arr, size = 2) {
|
|
1126
|
-
const {
|
|
1127
|
-
length
|
|
1128
|
-
} = arr;
|
|
1129
|
-
const chunkSize = Math.min(length, size);
|
|
1130
|
-
const chunks = [];
|
|
1131
|
-
for (let i = 0; i < length; i += chunkSize) {
|
|
1132
|
-
chunks.push(arr.slice(i, i + chunkSize));
|
|
1133
|
-
}
|
|
1134
|
-
return chunks;
|
|
1135
|
-
}
|
|
1136
|
-
function arrayUnique(arr) {
|
|
1137
|
-
return [...new Set(arr)];
|
|
1138
|
-
}
|
|
1139
|
-
|
|
1140
|
-
Object.defineProperty(promises, "__esModule", {
|
|
1141
|
-
value: true
|
|
1142
|
-
});
|
|
1143
|
-
promises.pEach = pEach;
|
|
1144
|
-
promises.pEachChunk = pEachChunk;
|
|
1145
|
-
var _arrays = arrays;
|
|
1146
|
-
async function pEach(array, concurrency, callbackFn, options) {
|
|
1147
|
-
await pEachChunk((0, _arrays.arrayChunk)(array, concurrency), callbackFn, options);
|
|
1148
|
-
}
|
|
1149
|
-
async function pEachChunk(chunks, callbackFn, options) {
|
|
1150
|
-
const {
|
|
1151
|
-
signal
|
|
1152
|
-
} = {
|
|
1153
|
-
__proto__: null,
|
|
1154
|
-
...options
|
|
1155
|
-
};
|
|
1156
|
-
for (const chunk of chunks) {
|
|
1157
|
-
if (signal?.aborted) {
|
|
1158
|
-
return;
|
|
1159
|
-
}
|
|
1160
|
-
// eslint-disable-next-line no-await-in-loop
|
|
1161
|
-
await Promise.all(chunk.map(value => signal?.aborted ? undefined : callbackFn(value, {
|
|
1162
|
-
signal
|
|
1163
|
-
})));
|
|
1164
|
-
}
|
|
1165
|
-
}
|
|
1166
|
-
|
|
1167
|
-
var regexps = {};
|
|
1168
|
-
|
|
1169
|
-
Object.defineProperty(regexps, "__esModule", {
|
|
1170
|
-
value: true
|
|
1171
|
-
});
|
|
1172
|
-
regexps.escapeRegExp = escapeRegExp;
|
|
1173
|
-
// Inlined "escape-string-regexp":
|
|
1174
|
-
// https://socket.dev/npm/package/escape-string-regexp/overview/5.0.0
|
|
1175
|
-
// MIT License
|
|
1176
|
-
// Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
1177
|
-
function escapeRegExp(string) {
|
|
1178
|
-
// Escape characters with special meaning either inside or outside character sets.
|
|
1179
|
-
// Use a simple backslash escape when it’s always valid, and a `\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.
|
|
1180
|
-
return string.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
|
|
1181
|
-
}
|
|
1182
|
-
|
|
1183
|
-
var sorts = {};
|
|
1184
|
-
|
|
1185
|
-
Object.defineProperty(sorts, "__esModule", {
|
|
1186
|
-
value: true
|
|
1187
|
-
});
|
|
1188
|
-
sorts.localeCompare = void 0;
|
|
1189
|
-
sorts.toSortedObject = toSortedObject;
|
|
1190
|
-
const {
|
|
1191
|
-
compare: localeCompare
|
|
1192
|
-
} = new Intl.Collator();
|
|
1193
|
-
sorts.localeCompare = localeCompare;
|
|
1194
|
-
function toSortedObject(object, comparator = localeCompare) {
|
|
1195
|
-
return Object.fromEntries(Object.entries(object).sort((a, b) => comparator(a[0], b[0])));
|
|
1196
|
-
}
|
|
1197
|
-
|
|
1198
1105
|
var _interopRequireDefault$n = vendor.interopRequireDefault.default;
|
|
1199
1106
|
Object.defineProperty(optimize$1, "__esModule", {
|
|
1200
1107
|
value: true
|
|
@@ -1208,24 +1115,20 @@ var _registry = require$$5$1;
|
|
|
1208
1115
|
var _meow$m = _interopRequireDefault$n(vendor.build);
|
|
1209
1116
|
var _npmPackageArg = require$$7;
|
|
1210
1117
|
var _ora$i = _interopRequireDefault$n(vendor.ora);
|
|
1211
|
-
var _pacote = require$$0$1;
|
|
1212
1118
|
var _semver = require$$3;
|
|
1213
|
-
var _tinyglobby = require$$
|
|
1214
|
-
var _yaml = require$$
|
|
1215
|
-
var
|
|
1119
|
+
var _tinyglobby = require$$10$1;
|
|
1120
|
+
var _yaml = require$$11;
|
|
1121
|
+
var _packages = vendor.packages;
|
|
1216
1122
|
var _flags$j = flags$1;
|
|
1217
1123
|
var _formatting$k = formatting;
|
|
1218
1124
|
var _fs = fs;
|
|
1219
|
-
var _objects =
|
|
1125
|
+
var _objects$1 = vendor.objects;
|
|
1220
1126
|
var _packageManagerDetector = packageManagerDetector;
|
|
1221
|
-
var _promises2 = promises;
|
|
1222
|
-
var _regexps = regexps;
|
|
1223
|
-
var
|
|
1224
|
-
var _strings = strings;
|
|
1127
|
+
var _promises2 = vendor.promises;
|
|
1128
|
+
var _regexps = vendor.regexps;
|
|
1129
|
+
var _strings = vendor.strings;
|
|
1225
1130
|
//import cacache from 'cacache'
|
|
1226
1131
|
|
|
1227
|
-
//import { packumentCache, pacoteCachePath } from '../constants'
|
|
1228
|
-
|
|
1229
1132
|
const COMMAND_TITLE = 'Socket Optimize';
|
|
1230
1133
|
const OVERRIDES_FIELD_NAME = 'overrides';
|
|
1231
1134
|
const PNPM_WORKSPACE = 'pnpm-workspace';
|
|
@@ -1371,7 +1274,9 @@ const lsByAgent = (() => {
|
|
|
1371
1274
|
// `vlt ls --view json` results always have a "name" property.
|
|
1372
1275
|
const fallback = _id ?? pkgid ?? '';
|
|
1373
1276
|
const resolvedName = name ?? fallback.slice(0, fallback.indexOf('@', 1));
|
|
1374
|
-
|
|
1277
|
+
// Add package names, except for those under the `@types` scope as those
|
|
1278
|
+
// are known to only be dev dependencies.
|
|
1279
|
+
if (resolvedName && !resolvedName.startsWith('@types/')) {
|
|
1375
1280
|
names.add(resolvedName);
|
|
1376
1281
|
}
|
|
1377
1282
|
}
|
|
@@ -1639,7 +1544,7 @@ async function addOverrides({
|
|
|
1639
1544
|
overrides,
|
|
1640
1545
|
type
|
|
1641
1546
|
}) => {
|
|
1642
|
-
const overrideExists = (0, _objects.hasOwn)(overrides, origPkgName);
|
|
1547
|
+
const overrideExists = (0, _objects$1.hasOwn)(overrides, origPkgName);
|
|
1643
1548
|
if (overrideExists || thingScanner(thingToScan, origPkgName)) {
|
|
1644
1549
|
const oldSpec = overrideExists ? overrides[origPkgName] : undefined;
|
|
1645
1550
|
const depAlias = depAliasMap.get(origPkgName);
|
|
@@ -1659,7 +1564,7 @@ async function addOverrides({
|
|
|
1659
1564
|
const thisSpec = oldSpec.startsWith('$') ? depAlias?.id ?? newSpec : oldSpec ?? newSpec;
|
|
1660
1565
|
if (thisSpec.startsWith(regSpecStartsLike)) {
|
|
1661
1566
|
if (pin) {
|
|
1662
|
-
thisVersion = _semver.major(_semver.coerce(_npmPackageArg(thisSpec).rawSpec)?.version ?? version) === major ? version : (await fetchPackageManifest(thisSpec))?.version ?? version;
|
|
1567
|
+
thisVersion = _semver.major(_semver.coerce(_npmPackageArg(thisSpec).rawSpec)?.version ?? version) === major ? version : (await (0, _packages.fetchPackageManifest)(thisSpec))?.version ?? version;
|
|
1663
1568
|
}
|
|
1664
1569
|
newSpec = `${regSpecStartsLike}^${pin ? thisVersion : _semver.major(thisVersion)}`;
|
|
1665
1570
|
} else {
|
|
@@ -1713,62 +1618,12 @@ async function addOverrides({
|
|
|
1713
1618
|
overrides,
|
|
1714
1619
|
type
|
|
1715
1620
|
} of overridesDataObjects) {
|
|
1716
|
-
updateManifestByAgent[type](editablePkgJson, (0,
|
|
1621
|
+
updateManifestByAgent[type](editablePkgJson, (0, _objects$1.toSortedObject)(overrides));
|
|
1717
1622
|
}
|
|
1718
1623
|
await editablePkgJson.save();
|
|
1719
1624
|
}
|
|
1720
1625
|
return state;
|
|
1721
1626
|
}
|
|
1722
|
-
|
|
1723
|
-
// type ExtractOptions = pacote.Options & {
|
|
1724
|
-
// tmpPrefix?: string
|
|
1725
|
-
// [key: string]: any
|
|
1726
|
-
// }
|
|
1727
|
-
|
|
1728
|
-
// async function extractPackage(pkgNameOrId: string, options: ExtractOptions | undefined, callback: (tmpDirPath: string) => any) {
|
|
1729
|
-
// if (arguments.length === 2 && typeof options === 'function') {
|
|
1730
|
-
// callback = options
|
|
1731
|
-
// options = undefined
|
|
1732
|
-
// }
|
|
1733
|
-
// const { tmpPrefix, ...extractOptions } = { __proto__: null, ...options }
|
|
1734
|
-
// // cacache.tmp.withTmp DOES return a promise.
|
|
1735
|
-
// await cacache.tmp.withTmp(
|
|
1736
|
-
// pacoteCachePath,
|
|
1737
|
-
// { tmpPrefix },
|
|
1738
|
-
// // eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
1739
|
-
// async tmpDirPath => {
|
|
1740
|
-
// await pacote.extract(pkgNameOrId, tmpDirPath, {
|
|
1741
|
-
// __proto__: null,
|
|
1742
|
-
// packumentCache,
|
|
1743
|
-
// preferOffline: true,
|
|
1744
|
-
// ...<Omit<typeof extractOptions, '__proto__'>>extractOptions
|
|
1745
|
-
// })
|
|
1746
|
-
// await callback(tmpDirPath)
|
|
1747
|
-
// }
|
|
1748
|
-
// )
|
|
1749
|
-
// }
|
|
1750
|
-
|
|
1751
|
-
async function fetchPackageManifest(pkgNameOrId, options) {
|
|
1752
|
-
const pacoteOptions = {
|
|
1753
|
-
...options,
|
|
1754
|
-
packumentCache: _constants.packumentCache,
|
|
1755
|
-
preferOffline: true
|
|
1756
|
-
};
|
|
1757
|
-
const {
|
|
1758
|
-
signal
|
|
1759
|
-
} = pacoteOptions;
|
|
1760
|
-
if (signal?.aborted) {
|
|
1761
|
-
return null;
|
|
1762
|
-
}
|
|
1763
|
-
let result;
|
|
1764
|
-
try {
|
|
1765
|
-
result = await _pacote.manifest(pkgNameOrId, pacoteOptions);
|
|
1766
|
-
} catch {}
|
|
1767
|
-
if (signal?.aborted) {
|
|
1768
|
-
return null;
|
|
1769
|
-
}
|
|
1770
|
-
return result;
|
|
1771
|
-
}
|
|
1772
1627
|
const optimize = optimize$1.optimize = {
|
|
1773
1628
|
description: 'Optimize dependencies with @socketregistry overrides',
|
|
1774
1629
|
async run(argv, importMeta, {
|
|
@@ -2504,7 +2359,7 @@ Object.defineProperty(meowWithSubcommands$1, "__esModule", {
|
|
|
2504
2359
|
meowWithSubcommands$1.meowWithSubcommands = meowWithSubcommands;
|
|
2505
2360
|
var _meow$g = _interopRequireDefault$h(vendor.build);
|
|
2506
2361
|
var _formatting$f = formatting;
|
|
2507
|
-
var
|
|
2362
|
+
var _objects = vendor.objects;
|
|
2508
2363
|
var _flags$e = flags$1;
|
|
2509
2364
|
async function meowWithSubcommands(subcommands, options) {
|
|
2510
2365
|
const {
|
|
@@ -2543,8 +2398,8 @@ async function meowWithSubcommands(subcommands, options) {
|
|
|
2543
2398
|
|
|
2544
2399
|
Commands
|
|
2545
2400
|
${(0, _formatting$f.printHelpList)({
|
|
2546
|
-
...(0,
|
|
2547
|
-
...(0,
|
|
2401
|
+
...(0, _objects.toSortedObject)(subcommands),
|
|
2402
|
+
...(0, _objects.toSortedObject)(aliases)
|
|
2548
2403
|
}, 6)}
|
|
2549
2404
|
|
|
2550
2405
|
Options
|
|
@@ -2754,7 +2609,7 @@ Object.defineProperty(create$3, "__esModule", {
|
|
|
2754
2609
|
value: true
|
|
2755
2610
|
});
|
|
2756
2611
|
create$3.create = void 0;
|
|
2757
|
-
var _nodeProcess = require$$0$
|
|
2612
|
+
var _nodeProcess = require$$0$1;
|
|
2758
2613
|
var _promises$1 = require$$2$3;
|
|
2759
2614
|
var _chalk$e = _interopRequireDefault$f(vendor.source);
|
|
2760
2615
|
var _meow$e = _interopRequireDefault$f(vendor.build);
|
|
@@ -4623,7 +4478,7 @@ Object.defineProperty(get$1, "__esModule", {
|
|
|
4623
4478
|
});
|
|
4624
4479
|
get$1.get = void 0;
|
|
4625
4480
|
var _nodeFs$1 = require$$0;
|
|
4626
|
-
var _nodeUtil = require$$0$
|
|
4481
|
+
var _nodeUtil = require$$0$2;
|
|
4627
4482
|
var _chalk$1 = _interopRequireDefault$2(vendor.source);
|
|
4628
4483
|
var _meow$1 = _interopRequireDefault$2(vendor.build);
|
|
4629
4484
|
var _ora$1 = _interopRequireDefault$2(vendor.ora);
|
package/dist/link.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var require$$0 = require('node:fs');
|
|
4
4
|
var require$$1 = require('node:path');
|
|
5
|
-
var require$$
|
|
5
|
+
var require$$8 = require('which');
|
|
6
6
|
|
|
7
7
|
var link = {};
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(link, "__esModule", {
|
|
|
12
12
|
link.installLinks = installLinks;
|
|
13
13
|
var _nodeFs = require$$0;
|
|
14
14
|
var _nodePath = require$$1;
|
|
15
|
-
var _which = require$$
|
|
15
|
+
var _which = require$$8;
|
|
16
16
|
function installLinks(realDirname, binName) {
|
|
17
17
|
const realShadowBinDir = realDirname;
|
|
18
18
|
// find package manager being shadowed by this process
|
package/dist/npm-injection.js
CHANGED
|
@@ -312,7 +312,6 @@ function issueRuleValueDoesNotDefer(issueRule) {
|
|
|
312
312
|
|
|
313
313
|
/**
|
|
314
314
|
* Handles booleans for backwards compatibility
|
|
315
|
-
|
|
316
315
|
*/
|
|
317
316
|
function uxForDefinedNonDeferValue(issueRuleValue) {
|
|
318
317
|
if (typeof issueRuleValue === 'boolean') {
|
|
@@ -401,7 +400,7 @@ var _ttyServer = ttyServer$1;
|
|
|
401
400
|
var _chalkMarkdown = sdk.chalkMarkdown;
|
|
402
401
|
var _issueRules = issueRules;
|
|
403
402
|
var _misc = sdk.misc;
|
|
404
|
-
var _objects =
|
|
403
|
+
var _objects = vendor.objects;
|
|
405
404
|
var _pathResolve = pathResolve.pathResolve;
|
|
406
405
|
var _sdk = sdk.sdk;
|
|
407
406
|
var _settings = sdk.settings;
|
|
@@ -519,6 +518,12 @@ async function* batchScan(pkgIds) {
|
|
|
519
518
|
yield JSON.parse(line);
|
|
520
519
|
}
|
|
521
520
|
}
|
|
521
|
+
|
|
522
|
+
// Patch adding doOverrideSetsConflict is based on
|
|
523
|
+
// https://github.com/npm/cli/pull/7025.
|
|
524
|
+
function doOverrideSetsConflict(first, second) {
|
|
525
|
+
return findSpecificOverrideSet(first, second) === undefined;
|
|
526
|
+
}
|
|
522
527
|
function findSocketYmlSync() {
|
|
523
528
|
let prevDir = null;
|
|
524
529
|
let dir = process.cwd();
|
|
@@ -805,7 +810,7 @@ class SafeEdge extends Edge {
|
|
|
805
810
|
}
|
|
806
811
|
// Patch adding "else if" condition is based on
|
|
807
812
|
// https://github.com/npm/cli/pull/7025.
|
|
808
|
-
else if (this.overrides && this.#safeTo.edgesOut.size &&
|
|
813
|
+
else if (this.overrides && this.#safeTo.edgesOut.size && doOverrideSetsConflict(this.overrides, this.#safeTo.overrides)) {
|
|
809
814
|
// Any inconsistency between the edge's override set and the target's
|
|
810
815
|
// override set is potentially problematic. But we only say the edge is
|
|
811
816
|
// in error if the override sets are plainly conflicting. Note that if
|
|
@@ -1015,7 +1020,7 @@ class SafeNode extends Node {
|
|
|
1015
1020
|
return false;
|
|
1016
1021
|
}
|
|
1017
1022
|
// It's a top level pkg, or a dep of one.
|
|
1018
|
-
if (!this.resolveParent
|
|
1023
|
+
if (!this.resolveParent?.resolveParent) {
|
|
1019
1024
|
return false;
|
|
1020
1025
|
}
|
|
1021
1026
|
// No one wants it, remove it.
|
|
@@ -1232,7 +1237,7 @@ class SafeNode extends Node {
|
|
|
1232
1237
|
}
|
|
1233
1238
|
// This is an error condition. We can only get here if the new override set
|
|
1234
1239
|
// is in conflict with the existing.
|
|
1235
|
-
log.silly(
|
|
1240
|
+
log.silly('Conflicting override sets', this.name);
|
|
1236
1241
|
return false;
|
|
1237
1242
|
}
|
|
1238
1243
|
|
|
@@ -1488,7 +1493,7 @@ void (async () => {
|
|
|
1488
1493
|
const socketSdk = await (0, _sdk.setupSdk)(pubToken);
|
|
1489
1494
|
const orgResult = await socketSdk.getOrganizations();
|
|
1490
1495
|
if (!orgResult.success) {
|
|
1491
|
-
throw new Error(
|
|
1496
|
+
throw new Error(`Failed to fetch Socket organization info: ${orgResult.error.message}`);
|
|
1492
1497
|
}
|
|
1493
1498
|
const orgs = [];
|
|
1494
1499
|
for (const org of Object.values(orgResult.data.organizations)) {
|
|
@@ -1500,7 +1505,7 @@ void (async () => {
|
|
|
1500
1505
|
organization: org.id
|
|
1501
1506
|
})));
|
|
1502
1507
|
if (!result.success) {
|
|
1503
|
-
throw new Error(
|
|
1508
|
+
throw new Error(`Failed to fetch API key settings: ${result.error.message}`);
|
|
1504
1509
|
}
|
|
1505
1510
|
return {
|
|
1506
1511
|
orgs,
|
|
@@ -1541,10 +1546,14 @@ void (async () => {
|
|
|
1541
1546
|
if (socketYml) {
|
|
1542
1547
|
settings.entries.push({
|
|
1543
1548
|
start: socketYml.path,
|
|
1544
|
-
// @ts-ignore
|
|
1545
1549
|
settings: {
|
|
1546
1550
|
[socketYml.path]: {
|
|
1547
1551
|
deferTo: null,
|
|
1552
|
+
// TODO: TypeScript complains about the type not matching. We should
|
|
1553
|
+
// figure out why are providing
|
|
1554
|
+
// issueRules: { [issueName: string]: boolean }
|
|
1555
|
+
// but expecting
|
|
1556
|
+
// issueRules: { [issueName: string]: { action: 'defer' | 'error' | 'ignore' | 'monitor' | 'warn' } }
|
|
1548
1557
|
issueRules: socketYml.parsed.issueRules
|
|
1549
1558
|
}
|
|
1550
1559
|
}
|
package/dist/path-resolve.js
CHANGED
|
@@ -4,7 +4,7 @@ var require$$1$1 = require('node:fs/promises');
|
|
|
4
4
|
var require$$1 = require('node:path');
|
|
5
5
|
var require$$2 = require('ignore');
|
|
6
6
|
var require$$3 = require('micromatch');
|
|
7
|
-
var require$$
|
|
7
|
+
var require$$10 = require('tinyglobby');
|
|
8
8
|
|
|
9
9
|
var pathResolve = {};
|
|
10
10
|
|
|
@@ -51,7 +51,7 @@ var _promises = require$$1$1;
|
|
|
51
51
|
var _nodePath = require$$1;
|
|
52
52
|
var _ignore = require$$2;
|
|
53
53
|
var _micromatch = require$$3;
|
|
54
|
-
var _tinyglobby = require$$
|
|
54
|
+
var _tinyglobby = require$$10;
|
|
55
55
|
var _ignoreByDefault = ignoreByDefault;
|
|
56
56
|
async function filterGlobResultToSupportedFiles(entries, supportedFiles) {
|
|
57
57
|
const patterns = ['golang', 'npm', 'pypi'].reduce((r, n) => {
|
package/dist/sdk.d.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { SocketSdk } from '@socketsecurity/sdk';
|
|
3
|
-
declare function hasOwn(obj: any, propKey: PropertyKey): boolean;
|
|
4
|
-
declare function isObject(value: any): value is object;
|
|
5
|
-
declare function isObjectObject(value: any): value is {
|
|
6
|
-
[key: string]: any;
|
|
7
|
-
};
|
|
8
|
-
declare function objectSome(obj: Record<string, any>): boolean;
|
|
9
|
-
declare function pick<T extends Record<string, any>, K extends keyof T>(input: T, keys: K[] | ReadonlyArray<K>): Pick<T, K>;
|
|
10
3
|
declare function createDebugLogger(printDebugLogs?: boolean): typeof console.error;
|
|
11
4
|
declare function isErrnoException(value: unknown): value is NodeJS.ErrnoException;
|
|
12
5
|
declare function stringJoinWithSeparateFinalSeparator(list: (string | undefined)[], separator?: string): string;
|
|
@@ -14,9 +7,7 @@ declare const API_V0_URL = "https://api.socket.dev/v0";
|
|
|
14
7
|
declare const ENV: Readonly<{
|
|
15
8
|
UPDATE_SOCKET_OVERRIDES_IN_PACKAGE_LOCK_FILE: boolean;
|
|
16
9
|
}>;
|
|
17
|
-
declare const packumentCache: Map<any, any>;
|
|
18
|
-
declare const pacoteCachePath: any;
|
|
19
10
|
declare const FREE_API_KEY = "sktsec_t_--RAN5U4ivauy4w37-6aoKyYPDt5ZbaT5JBVMqiwKo_api";
|
|
20
11
|
declare function getDefaultKey(): string | undefined;
|
|
21
12
|
declare function setupSdk(apiKey?: string | undefined, apiBaseUrl?: string | undefined, proxy?: string | undefined): Promise<SocketSdk>;
|
|
22
|
-
export {
|
|
13
|
+
export { createDebugLogger, isErrnoException, stringJoinWithSeparateFinalSeparator, API_V0_URL, ENV, FREE_API_KEY, getDefaultKey, setupSdk };
|