socket 1.0.65 → 1.0.67
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 +525 -347
- package/dist/cli.js.map +1 -1
- package/dist/constants.js +3 -3
- package/dist/constants.js.map +1 -1
- package/dist/shadow-npm-inject.js +6 -6
- package/dist/shadow-npm-inject.js.map +1 -1
- package/dist/types/commands/analytics/fetch-org-analytics.d.mts +6 -2
- package/dist/types/commands/analytics/fetch-org-analytics.d.mts.map +1 -1
- package/dist/types/commands/analytics/fetch-repo-analytics.d.mts +6 -2
- package/dist/types/commands/analytics/fetch-repo-analytics.d.mts.map +1 -1
- package/dist/types/commands/analytics/output-analytics.d.mts +4 -4
- package/dist/types/commands/analytics/output-analytics.d.mts.map +1 -1
- package/dist/types/commands/audit-log/fetch-audit-log.d.mts +10 -5
- package/dist/types/commands/audit-log/fetch-audit-log.d.mts.map +1 -1
- package/dist/types/commands/audit-log/handle-audit-log.d.mts +1 -1
- package/dist/types/commands/audit-log/handle-audit-log.d.mts.map +1 -1
- package/dist/types/commands/audit-log/output-audit-log.d.mts +6 -6
- package/dist/types/commands/audit-log/output-audit-log.d.mts.map +1 -1
- package/dist/types/commands/ci/fetch-default-org-slug.d.mts +1 -1
- package/dist/types/commands/ci/fetch-default-org-slug.d.mts.map +1 -1
- package/dist/types/commands/ci/handle-ci.d.mts +1 -1
- package/dist/types/commands/ci/handle-ci.d.mts.map +1 -1
- package/dist/types/commands/fix/cmd-fix.d.mts.map +1 -1
- package/dist/types/commands/fix/handle-fix.d.mts +2 -1
- package/dist/types/commands/fix/handle-fix.d.mts.map +1 -1
- package/dist/types/commands/login/attempt-login.d.mts.map +1 -1
- package/dist/types/commands/organization/fetch-dependencies.d.mts +8 -3
- package/dist/types/commands/organization/fetch-dependencies.d.mts.map +1 -1
- package/dist/types/commands/organization/fetch-license-policy.d.mts +6 -2
- package/dist/types/commands/organization/fetch-license-policy.d.mts.map +1 -1
- package/dist/types/commands/organization/fetch-organization-list.d.mts +6 -2
- package/dist/types/commands/organization/fetch-organization-list.d.mts.map +1 -1
- package/dist/types/commands/organization/fetch-quota.d.mts +6 -2
- package/dist/types/commands/organization/fetch-quota.d.mts.map +1 -1
- package/dist/types/commands/organization/fetch-security-policy.d.mts +6 -2
- package/dist/types/commands/organization/fetch-security-policy.d.mts.map +1 -1
- package/dist/types/commands/organization/output-dependencies.d.mts +2 -2
- package/dist/types/commands/organization/output-dependencies.d.mts.map +1 -1
- package/dist/types/commands/organization/output-license-policy.d.mts +2 -2
- package/dist/types/commands/organization/output-license-policy.d.mts.map +1 -1
- package/dist/types/commands/organization/output-organization-list.d.mts +2 -2
- package/dist/types/commands/organization/output-organization-list.d.mts.map +1 -1
- package/dist/types/commands/organization/output-quota.d.mts +2 -2
- package/dist/types/commands/organization/output-quota.d.mts.map +1 -1
- package/dist/types/commands/organization/output-security-policy.d.mts +2 -2
- package/dist/types/commands/organization/output-security-policy.d.mts.map +1 -1
- package/dist/types/commands/package/fetch-purls-shallow-score.d.mts +6 -2
- package/dist/types/commands/package/fetch-purls-shallow-score.d.mts.map +1 -1
- package/dist/types/commands/repository/fetch-create-repo.d.mts +11 -6
- package/dist/types/commands/repository/fetch-create-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/fetch-delete-repo.d.mts +6 -2
- package/dist/types/commands/repository/fetch-delete-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/fetch-list-all-repos.d.mts +8 -6
- package/dist/types/commands/repository/fetch-list-all-repos.d.mts.map +1 -1
- package/dist/types/commands/repository/fetch-list-repos.d.mts +9 -4
- package/dist/types/commands/repository/fetch-list-repos.d.mts.map +1 -1
- package/dist/types/commands/repository/fetch-update-repo.d.mts +11 -6
- package/dist/types/commands/repository/fetch-update-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/fetch-view-repo.d.mts +6 -2
- package/dist/types/commands/repository/fetch-view-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/handle-create-repo.d.mts +2 -2
- package/dist/types/commands/repository/handle-create-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/handle-list-repos.d.mts +2 -2
- package/dist/types/commands/repository/handle-list-repos.d.mts.map +1 -1
- package/dist/types/commands/repository/handle-update-repo.d.mts +2 -2
- package/dist/types/commands/repository/handle-update-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/output-create-repo.d.mts +2 -2
- package/dist/types/commands/repository/output-create-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/output-delete-repo.d.mts +2 -2
- package/dist/types/commands/repository/output-delete-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/output-list-repos.d.mts +2 -2
- package/dist/types/commands/repository/output-list-repos.d.mts.map +1 -1
- package/dist/types/commands/repository/output-update-repo.d.mts +2 -2
- package/dist/types/commands/repository/output-update-repo.d.mts.map +1 -1
- package/dist/types/commands/repository/output-view-repo.d.mts +2 -2
- package/dist/types/commands/repository/output-view-repo.d.mts.map +1 -1
- package/dist/types/commands/scan/create-scan-from-github.d.mts.map +1 -1
- package/dist/types/commands/scan/fetch-create-org-full-scan.d.mts +12 -3
- package/dist/types/commands/scan/fetch-create-org-full-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/fetch-delete-org-full-scan.d.mts +6 -2
- package/dist/types/commands/scan/fetch-delete-org-full-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/fetch-diff-scan.d.mts +2 -2
- package/dist/types/commands/scan/fetch-diff-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/fetch-list-scans.d.mts +9 -4
- package/dist/types/commands/scan/fetch-list-scans.d.mts.map +1 -1
- package/dist/types/commands/scan/fetch-report-data.d.mts +8 -3
- package/dist/types/commands/scan/fetch-report-data.d.mts.map +1 -1
- package/dist/types/commands/scan/fetch-scan-metadata.d.mts +6 -2
- package/dist/types/commands/scan/fetch-scan-metadata.d.mts.map +1 -1
- package/dist/types/commands/scan/fetch-supported-scan-file-names.d.mts +6 -2
- package/dist/types/commands/scan/fetch-supported-scan-file-names.d.mts.map +1 -1
- package/dist/types/commands/scan/generate-report.d.mts +2 -2
- package/dist/types/commands/scan/generate-report.d.mts.map +1 -1
- package/dist/types/commands/scan/handle-create-new-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/handle-list-scans.d.mts +2 -2
- package/dist/types/commands/scan/handle-list-scans.d.mts.map +1 -1
- package/dist/types/commands/scan/handle-scan-report.d.mts.map +1 -1
- package/dist/types/commands/scan/output-create-new-scan.d.mts +2 -2
- package/dist/types/commands/scan/output-create-new-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/output-delete-scan.d.mts +2 -2
- package/dist/types/commands/scan/output-delete-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/output-diff-scan.d.mts +2 -2
- package/dist/types/commands/scan/output-diff-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/output-list-scans.d.mts +2 -2
- package/dist/types/commands/scan/output-list-scans.d.mts.map +1 -1
- package/dist/types/commands/scan/output-scan-metadata.d.mts +2 -2
- package/dist/types/commands/scan/output-scan-metadata.d.mts.map +1 -1
- package/dist/types/commands/scan/output-scan-report.d.mts +2 -2
- package/dist/types/commands/scan/output-scan-report.d.mts.map +1 -1
- package/dist/types/commands/scan/stream-scan.d.mts +6 -1
- package/dist/types/commands/scan/stream-scan.d.mts.map +1 -1
- package/dist/types/commands/scan/suggest-org-slug.d.mts.map +1 -1
- package/dist/types/commands/scan/suggest-repo-slug.d.mts +5 -1
- package/dist/types/commands/scan/suggest-repo-slug.d.mts.map +1 -1
- package/dist/types/utils/alert/severity.d.mts +2 -2
- package/dist/types/utils/alert/severity.d.mts.map +1 -1
- package/dist/types/utils/alerts-map.d.mts.map +1 -1
- package/dist/types/utils/api.d.mts +8 -3
- package/dist/types/utils/api.d.mts.map +1 -1
- package/dist/types/utils/coana.d.mts.map +1 -1
- package/dist/types/utils/glob.d.mts +4 -2
- package/dist/types/utils/glob.d.mts.map +1 -1
- package/dist/types/utils/path-resolve.d.mts +2 -2
- package/dist/types/utils/path-resolve.d.mts.map +1 -1
- package/dist/types/utils/sdk.d.mts +6 -1
- package/dist/types/utils/sdk.d.mts.map +1 -1
- package/dist/utils.js +208 -104
- package/dist/utils.js.map +1 -1
- package/dist/vendor.js +141 -61
- package/external/@socketsecurity/registry/external/@inquirer/select.js +14 -2
- package/external/@socketsecurity/registry/external/@npmcli/package-json/index.js +4 -4
- package/external/@socketsecurity/registry/external/libnpmpack.js +4 -4
- package/external/@socketsecurity/registry/external/npm-package-arg.js +4 -4
- package/external/@socketsecurity/registry/external/pacote.js +4 -4
- package/external/@socketsecurity/registry/external/validate-npm-package-name.js +4 -4
- package/external/@socketsecurity/registry/lib/regexps.js +1 -1
- package/external/@socketsecurity/registry/lib/spinner.js +15 -5
- package/package.json +12 -12
package/dist/cli.js
CHANGED
|
@@ -23,29 +23,45 @@ var sorts = require('../external/@socketsecurity/registry/lib/sorts');
|
|
|
23
23
|
var regexps = require('../external/@socketsecurity/registry/lib/regexps');
|
|
24
24
|
var fs$2 = require('../external/@socketsecurity/registry/lib/fs');
|
|
25
25
|
var shadowNpmInject = require('./shadow-npm-inject.js');
|
|
26
|
-
var
|
|
26
|
+
var require$$7 = require('../external/@socketsecurity/registry/lib/objects');
|
|
27
27
|
var shadowNpmBin = require('./shadow-npm-bin.js');
|
|
28
|
-
var require$$
|
|
28
|
+
var require$$8 = require('../external/@socketsecurity/registry/lib/promises');
|
|
29
29
|
var require$$1 = require('node:util');
|
|
30
30
|
var os = require('node:os');
|
|
31
31
|
var promises = require('node:stream/promises');
|
|
32
32
|
|
|
33
|
-
async function fetchOrgAnalyticsData(time) {
|
|
34
|
-
const
|
|
33
|
+
async function fetchOrgAnalyticsData(time, options) {
|
|
34
|
+
const {
|
|
35
|
+
sdkOptions
|
|
36
|
+
} = {
|
|
37
|
+
__proto__: null,
|
|
38
|
+
...options
|
|
39
|
+
};
|
|
40
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
35
41
|
if (!sockSdkCResult.ok) {
|
|
36
42
|
return sockSdkCResult;
|
|
37
43
|
}
|
|
38
44
|
const sockSdk = sockSdkCResult.data;
|
|
39
|
-
return await utils.handleApiCall(sockSdk.getOrgAnalytics(time.toString()),
|
|
45
|
+
return await utils.handleApiCall(sockSdk.getOrgAnalytics(time.toString()), {
|
|
46
|
+
desc: 'analytics data'
|
|
47
|
+
});
|
|
40
48
|
}
|
|
41
49
|
|
|
42
|
-
async function fetchRepoAnalyticsData(repo, time) {
|
|
43
|
-
const
|
|
50
|
+
async function fetchRepoAnalyticsData(repo, time, options) {
|
|
51
|
+
const {
|
|
52
|
+
sdkOptions
|
|
53
|
+
} = {
|
|
54
|
+
__proto__: null,
|
|
55
|
+
...options
|
|
56
|
+
};
|
|
57
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
44
58
|
if (!sockSdkCResult.ok) {
|
|
45
59
|
return sockSdkCResult;
|
|
46
60
|
}
|
|
47
61
|
const sockSdk = sockSdkCResult.data;
|
|
48
|
-
return await utils.handleApiCall(sockSdk.getRepoAnalytics(repo, time.toString()),
|
|
62
|
+
return await utils.handleApiCall(sockSdk.getRepoAnalytics(repo, time.toString()), {
|
|
63
|
+
desc: 'analytics data'
|
|
64
|
+
});
|
|
49
65
|
}
|
|
50
66
|
|
|
51
67
|
// Note: Widgets does not seem to actually work as code :'(
|
|
@@ -446,18 +462,28 @@ async function run$P(argv, importMeta, {
|
|
|
446
462
|
});
|
|
447
463
|
}
|
|
448
464
|
|
|
449
|
-
async function fetchAuditLog({
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
}
|
|
456
|
-
const sockSdkCResult = await utils.setupSdk();
|
|
465
|
+
async function fetchAuditLog(config, options) {
|
|
466
|
+
const {
|
|
467
|
+
sdkOptions
|
|
468
|
+
} = {
|
|
469
|
+
__proto__: null,
|
|
470
|
+
...options
|
|
471
|
+
};
|
|
472
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
457
473
|
if (!sockSdkCResult.ok) {
|
|
458
474
|
return sockSdkCResult;
|
|
459
475
|
}
|
|
460
476
|
const sockSdk = sockSdkCResult.data;
|
|
477
|
+
const {
|
|
478
|
+
logType,
|
|
479
|
+
orgSlug,
|
|
480
|
+
outputKind,
|
|
481
|
+
page,
|
|
482
|
+
perPage
|
|
483
|
+
} = {
|
|
484
|
+
__proto__: null,
|
|
485
|
+
...config
|
|
486
|
+
};
|
|
461
487
|
return await utils.handleApiCall(sockSdk.getAuditLogEvents(orgSlug, {
|
|
462
488
|
// I'm not sure this is used at all.
|
|
463
489
|
outputJson: String(outputKind === 'json'),
|
|
@@ -467,7 +493,9 @@ async function fetchAuditLog({
|
|
|
467
493
|
type: logType,
|
|
468
494
|
page: String(page),
|
|
469
495
|
per_page: String(perPage)
|
|
470
|
-
}),
|
|
496
|
+
}), {
|
|
497
|
+
desc: `audit log for ${orgSlug}`
|
|
498
|
+
});
|
|
471
499
|
}
|
|
472
500
|
|
|
473
501
|
const require$4 = require$$5.createRequire(require('node:url').pathToFileURL(__filename).href);
|
|
@@ -538,10 +566,10 @@ async function outputAsJson(auditLogs, {
|
|
|
538
566
|
desc: 'Audit logs for given query',
|
|
539
567
|
// Lazily access constants.ENV.VITEST.
|
|
540
568
|
generated: constants.ENV.VITEST ? REDACTED : new Date().toISOString(),
|
|
541
|
-
org: orgSlug,
|
|
542
569
|
logType,
|
|
543
|
-
page,
|
|
544
570
|
nextPage: auditLogs.data.nextPage,
|
|
571
|
+
org: orgSlug,
|
|
572
|
+
page,
|
|
545
573
|
perPage,
|
|
546
574
|
logs: auditLogs.data.results.map(log => {
|
|
547
575
|
// Note: The subset is pretty arbitrary
|
|
@@ -708,11 +736,11 @@ async function handleAuditLog({
|
|
|
708
736
|
perPage
|
|
709
737
|
}) {
|
|
710
738
|
const auditLogs = await fetchAuditLog({
|
|
739
|
+
logType,
|
|
711
740
|
orgSlug,
|
|
712
741
|
outputKind,
|
|
713
742
|
page,
|
|
714
|
-
perPage
|
|
715
|
-
logType
|
|
743
|
+
perPage
|
|
716
744
|
});
|
|
717
745
|
await outputAuditLog(auditLogs, {
|
|
718
746
|
logType,
|
|
@@ -860,68 +888,34 @@ async function run$O(argv, importMeta, {
|
|
|
860
888
|
});
|
|
861
889
|
}
|
|
862
890
|
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
if (!sockSdkCResult.ok) {
|
|
875
|
-
return sockSdkCResult;
|
|
876
|
-
}
|
|
877
|
-
const sockSdk = sockSdkCResult.data;
|
|
878
|
-
const result = await utils.handleApiCall(sockSdk.getOrganizations(), 'list of organizations');
|
|
879
|
-
if (!result.ok) {
|
|
880
|
-
return result;
|
|
881
|
-
}
|
|
882
|
-
const orgs = result.data.organizations;
|
|
883
|
-
const keys = Object.keys(orgs);
|
|
884
|
-
if (!keys[0]) {
|
|
885
|
-
return {
|
|
886
|
-
ok: false,
|
|
887
|
-
message: 'Failed to establish identity',
|
|
888
|
-
data: `API did not return any organization associated with the current API token. Unable to continue.`
|
|
889
|
-
};
|
|
890
|
-
}
|
|
891
|
-
const slug = (keys[0] in orgs && orgs?.[keys[0]]?.name) ?? undefined;
|
|
892
|
-
if (!slug) {
|
|
893
|
-
return {
|
|
894
|
-
ok: false,
|
|
895
|
-
message: 'Failed to establish identity',
|
|
896
|
-
data: `Was unable to determine the default organization for the current API token. Unable to continue.`
|
|
897
|
-
};
|
|
898
|
-
}
|
|
899
|
-
debug.debugFn('notice', 'resolve: org', slug);
|
|
900
|
-
return {
|
|
901
|
-
ok: true,
|
|
902
|
-
message: 'Retrieved default org from server',
|
|
903
|
-
data: slug
|
|
891
|
+
async function fetchCreateOrgFullScan(packagePaths, orgSlug, config, options) {
|
|
892
|
+
const {
|
|
893
|
+
branchName,
|
|
894
|
+
commitHash,
|
|
895
|
+
commitMessage,
|
|
896
|
+
committers,
|
|
897
|
+
pullRequest,
|
|
898
|
+
repoName
|
|
899
|
+
} = {
|
|
900
|
+
__proto__: null,
|
|
901
|
+
...config
|
|
904
902
|
};
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
repoName
|
|
917
|
-
}) {
|
|
918
|
-
const sockSdkCResult = await utils.setupSdk();
|
|
903
|
+
const {
|
|
904
|
+
cwd = process.cwd(),
|
|
905
|
+
defaultBranch,
|
|
906
|
+
pendingHead,
|
|
907
|
+
sdkOptions,
|
|
908
|
+
tmp
|
|
909
|
+
} = {
|
|
910
|
+
__proto__: null,
|
|
911
|
+
...options
|
|
912
|
+
};
|
|
913
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
919
914
|
if (!sockSdkCResult.ok) {
|
|
920
915
|
return sockSdkCResult;
|
|
921
916
|
}
|
|
922
917
|
const sockSdk = sockSdkCResult.data;
|
|
923
|
-
|
|
924
|
-
return await utils.handleApiCall(sockSdk.createOrgFullScan(orgSlug, {
|
|
918
|
+
return await utils.handleApiCall(sockSdk.createOrgFullScan(orgSlug, packagePaths, cwd, {
|
|
925
919
|
...(branchName ? {
|
|
926
920
|
branch: branchName
|
|
927
921
|
} : {}),
|
|
@@ -938,28 +932,44 @@ async function fetchCreateOrgFullScan(packagePaths, orgSlug, defaultBranch, pend
|
|
|
938
932
|
...(pullRequest ? {
|
|
939
933
|
pull_request: String(pullRequest)
|
|
940
934
|
} : {}),
|
|
941
|
-
|
|
942
|
-
repo,
|
|
935
|
+
repo: repoName,
|
|
943
936
|
set_as_pending_head: String(pendingHead),
|
|
944
937
|
tmp: String(tmp)
|
|
945
|
-
}
|
|
938
|
+
}), {
|
|
939
|
+
desc: 'to create a scan'
|
|
940
|
+
});
|
|
946
941
|
}
|
|
947
942
|
|
|
948
|
-
async function fetchSupportedScanFileNames() {
|
|
949
|
-
const
|
|
943
|
+
async function fetchSupportedScanFileNames(options) {
|
|
944
|
+
const {
|
|
945
|
+
sdkOptions
|
|
946
|
+
} = {
|
|
947
|
+
__proto__: null,
|
|
948
|
+
...options
|
|
949
|
+
};
|
|
950
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
950
951
|
if (!sockSdkCResult.ok) {
|
|
951
952
|
return sockSdkCResult;
|
|
952
953
|
}
|
|
953
954
|
const sockSdk = sockSdkCResult.data;
|
|
954
|
-
return await utils.handleApiCall(sockSdk.
|
|
955
|
+
return await utils.handleApiCall(sockSdk.getSupportedScanFiles(), {
|
|
956
|
+
desc: 'supported scan file types'
|
|
957
|
+
});
|
|
955
958
|
}
|
|
956
959
|
|
|
957
960
|
/**
|
|
958
961
|
* This fetches all the relevant pieces of data to generate a report, given a
|
|
959
962
|
* full scan ID.
|
|
960
963
|
*/
|
|
961
|
-
async function
|
|
962
|
-
const
|
|
964
|
+
async function fetchScanData(orgSlug, scanId, options) {
|
|
965
|
+
const {
|
|
966
|
+
includeLicensePolicy,
|
|
967
|
+
sdkOptions
|
|
968
|
+
} = {
|
|
969
|
+
__proto__: null,
|
|
970
|
+
...options
|
|
971
|
+
};
|
|
972
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
963
973
|
if (!sockSdkCResult.ok) {
|
|
964
974
|
return sockSdkCResult;
|
|
965
975
|
}
|
|
@@ -1438,8 +1448,10 @@ async function handleScanReport({
|
|
|
1438
1448
|
scanId,
|
|
1439
1449
|
short
|
|
1440
1450
|
}) {
|
|
1441
|
-
const
|
|
1442
|
-
|
|
1451
|
+
const scanDataCResult = await fetchScanData(orgSlug, scanId, {
|
|
1452
|
+
includeLicensePolicy
|
|
1453
|
+
});
|
|
1454
|
+
await outputScanReport(scanDataCResult, {
|
|
1443
1455
|
filePath,
|
|
1444
1456
|
fold,
|
|
1445
1457
|
scanId: scanId,
|
|
@@ -2036,13 +2048,18 @@ async function handleCreateNewScan({
|
|
|
2036
2048
|
logger.logger.log('[ReadOnly] Bailing now');
|
|
2037
2049
|
return;
|
|
2038
2050
|
}
|
|
2039
|
-
const fullScanCResult = await fetchCreateOrgFullScan(packagePaths, orgSlug,
|
|
2051
|
+
const fullScanCResult = await fetchCreateOrgFullScan(packagePaths, orgSlug, {
|
|
2040
2052
|
commitHash,
|
|
2041
2053
|
commitMessage,
|
|
2042
2054
|
committers,
|
|
2043
2055
|
pullRequest,
|
|
2044
2056
|
repoName,
|
|
2045
2057
|
branchName
|
|
2058
|
+
}, {
|
|
2059
|
+
cwd,
|
|
2060
|
+
defaultBranch,
|
|
2061
|
+
pendingHead,
|
|
2062
|
+
tmp
|
|
2046
2063
|
});
|
|
2047
2064
|
if (fullScanCResult.ok && report) {
|
|
2048
2065
|
if (fullScanCResult.data?.id) {
|
|
@@ -2069,40 +2086,39 @@ async function handleCreateNewScan({
|
|
|
2069
2086
|
}
|
|
2070
2087
|
}
|
|
2071
2088
|
|
|
2072
|
-
|
|
2073
|
-
SOCKET_DEFAULT_BRANCH: SOCKET_DEFAULT_BRANCH$2,
|
|
2074
|
-
SOCKET_DEFAULT_REPOSITORY: SOCKET_DEFAULT_REPOSITORY$2
|
|
2075
|
-
} = constants;
|
|
2076
|
-
async function handleCI(autoManifest) {
|
|
2089
|
+
async function handleCi(autoManifest) {
|
|
2077
2090
|
// ci: {
|
|
2078
2091
|
// description: 'Alias for "report create --view --strict"',
|
|
2079
2092
|
// argv: ['report', 'create', '--view', '--strict']
|
|
2080
2093
|
// }
|
|
2081
|
-
const
|
|
2082
|
-
if (!
|
|
2083
|
-
process.exitCode =
|
|
2094
|
+
const orgSlugCResult = await utils.getDefaultOrgSlug();
|
|
2095
|
+
if (!orgSlugCResult.ok) {
|
|
2096
|
+
process.exitCode = orgSlugCResult.code ?? 1;
|
|
2084
2097
|
// Always assume json mode.
|
|
2085
|
-
logger.logger.log(utils.serializeResultJson(
|
|
2098
|
+
logger.logger.log(utils.serializeResultJson(orgSlugCResult));
|
|
2086
2099
|
return;
|
|
2087
2100
|
}
|
|
2101
|
+
const orgSlug = orgSlugCResult.data;
|
|
2088
2102
|
const cwd = process.cwd();
|
|
2089
|
-
|
|
2090
|
-
|
|
2103
|
+
// Lazily access constants.SOCKET_DEFAULT_BRANCH.
|
|
2104
|
+
const branchName = (await utils.gitBranch(cwd)) || constants.SOCKET_DEFAULT_BRANCH;
|
|
2105
|
+
// Lazily access constants.SOCKET_DEFAULT_REPOSITORY.
|
|
2106
|
+
const repoName = (await utils.getRepoName(cwd)) || constants.SOCKET_DEFAULT_REPOSITORY;
|
|
2091
2107
|
await handleCreateNewScan({
|
|
2092
2108
|
autoManifest,
|
|
2093
|
-
branchName
|
|
2109
|
+
branchName,
|
|
2094
2110
|
commitMessage: '',
|
|
2095
2111
|
commitHash: '',
|
|
2096
2112
|
committers: '',
|
|
2097
|
-
cwd
|
|
2113
|
+
cwd,
|
|
2098
2114
|
defaultBranch: false,
|
|
2099
2115
|
interactive: false,
|
|
2100
|
-
orgSlug
|
|
2116
|
+
orgSlug,
|
|
2101
2117
|
outputKind: 'json',
|
|
2102
2118
|
// When 'pendingHead' is true, it requires 'branchName' set and 'tmp' false.
|
|
2103
2119
|
pendingHead: true,
|
|
2104
2120
|
pullRequest: 0,
|
|
2105
|
-
repoName
|
|
2121
|
+
repoName,
|
|
2106
2122
|
readOnly: false,
|
|
2107
2123
|
report: true,
|
|
2108
2124
|
targets: ['.'],
|
|
@@ -2168,7 +2184,7 @@ async function run$N(argv, importMeta, {
|
|
|
2168
2184
|
logger.logger.log(DRY_RUN_BAILING_NOW$K);
|
|
2169
2185
|
return;
|
|
2170
2186
|
}
|
|
2171
|
-
await
|
|
2187
|
+
await handleCi(Boolean(cli.flags['autoManifest']));
|
|
2172
2188
|
}
|
|
2173
2189
|
|
|
2174
2190
|
async function discoverConfigValue(key) {
|
|
@@ -2275,43 +2291,35 @@ async function discoverConfigValue(key) {
|
|
|
2275
2291
|
};
|
|
2276
2292
|
}
|
|
2277
2293
|
async function getDefaultOrgFromToken() {
|
|
2278
|
-
const
|
|
2279
|
-
if (!
|
|
2294
|
+
const orgsCResult = await utils.fetchOrganization();
|
|
2295
|
+
if (!orgsCResult.ok) {
|
|
2280
2296
|
return undefined;
|
|
2281
2297
|
}
|
|
2282
|
-
const
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
if (arr.length === 0) {
|
|
2289
|
-
return undefined;
|
|
2290
|
-
}
|
|
2291
|
-
if (arr.length === 1) {
|
|
2292
|
-
return arr[0];
|
|
2293
|
-
}
|
|
2294
|
-
return arr;
|
|
2298
|
+
const {
|
|
2299
|
+
organizations
|
|
2300
|
+
} = orgsCResult.data;
|
|
2301
|
+
const slugs = Array.from(Object.values(organizations)).map(o => o.slug);
|
|
2302
|
+
if (slugs.length === 0) {
|
|
2303
|
+
return undefined;
|
|
2295
2304
|
}
|
|
2296
|
-
|
|
2305
|
+
if (slugs.length === 1) {
|
|
2306
|
+
return slugs[0];
|
|
2307
|
+
}
|
|
2308
|
+
return slugs;
|
|
2297
2309
|
}
|
|
2298
2310
|
async function getEnforceableOrgsFromToken() {
|
|
2299
|
-
const
|
|
2300
|
-
if (!
|
|
2311
|
+
const orgsCResult = await utils.fetchOrganization();
|
|
2312
|
+
if (!orgsCResult.ok) {
|
|
2301
2313
|
return undefined;
|
|
2302
2314
|
}
|
|
2303
|
-
const
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
if (arr.length === 0) {
|
|
2310
|
-
return undefined;
|
|
2311
|
-
}
|
|
2312
|
-
return arr;
|
|
2315
|
+
const {
|
|
2316
|
+
organizations
|
|
2317
|
+
} = orgsCResult.data;
|
|
2318
|
+
const slugs = Array.from(Object.values(organizations)).map(o => o.slug);
|
|
2319
|
+
if (!slugs.length) {
|
|
2320
|
+
return undefined;
|
|
2313
2321
|
}
|
|
2314
|
-
return
|
|
2322
|
+
return slugs;
|
|
2315
2323
|
}
|
|
2316
2324
|
|
|
2317
2325
|
async function outputConfigAuto(key, result, outputKind) {
|
|
@@ -3566,9 +3574,9 @@ async function getActualTree(cwd = process.cwd()) {
|
|
|
3566
3574
|
|
|
3567
3575
|
const {
|
|
3568
3576
|
BUN: BUN$4,
|
|
3569
|
-
NPM: NPM$
|
|
3577
|
+
NPM: NPM$7,
|
|
3570
3578
|
OVERRIDES: OVERRIDES$2,
|
|
3571
|
-
PNPM: PNPM$
|
|
3579
|
+
PNPM: PNPM$7,
|
|
3572
3580
|
RESOLUTIONS: RESOLUTIONS$1,
|
|
3573
3581
|
VLT: VLT$5,
|
|
3574
3582
|
YARN_BERRY: YARN_BERRY$4,
|
|
@@ -3587,7 +3595,7 @@ function getOverridesDataBun(pkgEnvDetails, pkgJson = pkgEnvDetails.editablePkgJ
|
|
|
3587
3595
|
function getOverridesDataNpm(pkgEnvDetails, pkgJson = pkgEnvDetails.editablePkgJson.content) {
|
|
3588
3596
|
const overrides = pkgJson?.[OVERRIDES$2] ?? {};
|
|
3589
3597
|
return {
|
|
3590
|
-
type: NPM$
|
|
3598
|
+
type: NPM$7,
|
|
3591
3599
|
overrides
|
|
3592
3600
|
};
|
|
3593
3601
|
}
|
|
@@ -3595,9 +3603,9 @@ function getOverridesDataNpm(pkgEnvDetails, pkgJson = pkgEnvDetails.editablePkgJ
|
|
|
3595
3603
|
// pnpm overrides documentation:
|
|
3596
3604
|
// https://pnpm.io/package_json#pnpmoverrides
|
|
3597
3605
|
function getOverridesDataPnpm(pkgEnvDetails, pkgJson = pkgEnvDetails.editablePkgJson.content) {
|
|
3598
|
-
const overrides = pkgJson?.[PNPM$
|
|
3606
|
+
const overrides = pkgJson?.[PNPM$7]?.[OVERRIDES$2] ?? {};
|
|
3599
3607
|
return {
|
|
3600
|
-
type: PNPM$
|
|
3608
|
+
type: PNPM$7,
|
|
3601
3609
|
overrides
|
|
3602
3610
|
};
|
|
3603
3611
|
}
|
|
@@ -3632,7 +3640,7 @@ function getOverridesData(pkgEnvDetails, pkgJson) {
|
|
|
3632
3640
|
switch (pkgEnvDetails.agent) {
|
|
3633
3641
|
case BUN$4:
|
|
3634
3642
|
return getOverridesDataBun(pkgEnvDetails, pkgJson);
|
|
3635
|
-
case PNPM$
|
|
3643
|
+
case PNPM$7:
|
|
3636
3644
|
return getOverridesDataPnpm(pkgEnvDetails, pkgJson);
|
|
3637
3645
|
case VLT$5:
|
|
3638
3646
|
return getOverridesDataVlt(pkgEnvDetails, pkgJson);
|
|
@@ -3640,7 +3648,7 @@ function getOverridesData(pkgEnvDetails, pkgJson) {
|
|
|
3640
3648
|
return getOverridesDataYarn(pkgEnvDetails, pkgJson);
|
|
3641
3649
|
case YARN_CLASSIC$4:
|
|
3642
3650
|
return getOverridesDataYarnClassic(pkgEnvDetails, pkgJson);
|
|
3643
|
-
case NPM$
|
|
3651
|
+
case NPM$7:
|
|
3644
3652
|
default:
|
|
3645
3653
|
return getOverridesDataNpm(pkgEnvDetails, pkgJson);
|
|
3646
3654
|
}
|
|
@@ -4131,7 +4139,8 @@ async function install$1(pkgEnvDetails, options) {
|
|
|
4131
4139
|
__proto__: null,
|
|
4132
4140
|
...options
|
|
4133
4141
|
};
|
|
4134
|
-
const
|
|
4142
|
+
const useDebug = debug.isDebug('stdio');
|
|
4143
|
+
const args = ['--ignore-scripts', '--no-audit', '--no-fund', '--no-progress', ...(useDebug ? [] : ['--silent']), ...(extraArgs ?? [])];
|
|
4135
4144
|
const quotedCmd = `\`${pkgEnvDetails.agent} install ${args.join(' ')}\``;
|
|
4136
4145
|
debug.debugFn('stdio', `spawn: ${quotedCmd}`);
|
|
4137
4146
|
const isSpinning = spinner?.isSpinning;
|
|
@@ -4141,7 +4150,7 @@ async function install$1(pkgEnvDetails, options) {
|
|
|
4141
4150
|
await utils.runAgentInstall(pkgEnvDetails, {
|
|
4142
4151
|
args,
|
|
4143
4152
|
spinner,
|
|
4144
|
-
stdio:
|
|
4153
|
+
stdio: useDebug ? 'inherit' : 'ignore'
|
|
4145
4154
|
});
|
|
4146
4155
|
} catch (e) {
|
|
4147
4156
|
debug.debugFn('error', `caught: ${quotedCmd} failed`);
|
|
@@ -4266,7 +4275,7 @@ async function outputFixResult(result, outputKind) {
|
|
|
4266
4275
|
|
|
4267
4276
|
const {
|
|
4268
4277
|
OVERRIDES: OVERRIDES$1,
|
|
4269
|
-
PNPM: PNPM$
|
|
4278
|
+
PNPM: PNPM$6
|
|
4270
4279
|
} = constants;
|
|
4271
4280
|
async function install(pkgEnvDetails, options) {
|
|
4272
4281
|
const {
|
|
@@ -4383,15 +4392,15 @@ async function pnpmFix(pkgEnvDetails, fixConfig) {
|
|
|
4383
4392
|
const {
|
|
4384
4393
|
overrides: oldOverrides
|
|
4385
4394
|
} = getOverridesDataPnpm(pkgEnvDetails, editablePkgJson.content);
|
|
4386
|
-
const oldPnpmSection = editablePkgJson.content[PNPM$
|
|
4395
|
+
const oldPnpmSection = editablePkgJson.content[PNPM$6];
|
|
4387
4396
|
const overrideKey = `${packument.name}@${vulnerableVersionRange}`;
|
|
4388
4397
|
revertOverrides = undefined;
|
|
4389
4398
|
revertOverridesSrc = utils.extractOverridesFromPnpmLockSrc(lockSrc);
|
|
4390
4399
|
if (isWorkspaceRoot) {
|
|
4391
4400
|
revertOverrides = {
|
|
4392
|
-
[PNPM$
|
|
4401
|
+
[PNPM$6]: oldPnpmSection ? {
|
|
4393
4402
|
...oldPnpmSection,
|
|
4394
|
-
[OVERRIDES$1]:
|
|
4403
|
+
[OVERRIDES$1]: require$$7.hasKeys(oldOverrides) ? {
|
|
4395
4404
|
...oldOverrides,
|
|
4396
4405
|
[overrideKey]: undefined
|
|
4397
4406
|
} : undefined
|
|
@@ -4400,7 +4409,7 @@ async function pnpmFix(pkgEnvDetails, fixConfig) {
|
|
|
4400
4409
|
// Update overrides in the root package.json so that when `pnpm install`
|
|
4401
4410
|
// generates pnpm-lock.yaml it updates transitive dependencies too.
|
|
4402
4411
|
editablePkgJson.update({
|
|
4403
|
-
[PNPM$
|
|
4412
|
+
[PNPM$6]: {
|
|
4404
4413
|
...oldPnpmSection,
|
|
4405
4414
|
[OVERRIDES$1]: {
|
|
4406
4415
|
...oldOverrides,
|
|
@@ -4451,16 +4460,13 @@ async function pnpmFix(pkgEnvDetails, fixConfig) {
|
|
|
4451
4460
|
}, fixConfig);
|
|
4452
4461
|
}
|
|
4453
4462
|
|
|
4454
|
-
const {
|
|
4455
|
-
NPM: NPM$7,
|
|
4456
|
-
PNPM: PNPM$6
|
|
4457
|
-
} = constants;
|
|
4458
4463
|
async function handleFix({
|
|
4459
4464
|
autoMerge,
|
|
4460
4465
|
cwd,
|
|
4461
4466
|
ghsas,
|
|
4462
4467
|
limit,
|
|
4463
4468
|
minSatisfying,
|
|
4469
|
+
orgSlug,
|
|
4464
4470
|
outputKind,
|
|
4465
4471
|
prCheck,
|
|
4466
4472
|
purls,
|
|
@@ -4470,49 +4476,66 @@ async function handleFix({
|
|
|
4470
4476
|
testScript,
|
|
4471
4477
|
unknownFlags
|
|
4472
4478
|
}) {
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4479
|
+
if (ghsas.length === 1 && ghsas[0] === 'auto') {
|
|
4480
|
+
let lastCResult;
|
|
4481
|
+
const sockSdkCResult = await utils.setupSdk();
|
|
4482
|
+
lastCResult = sockSdkCResult;
|
|
4483
|
+
const sockSdk = sockSdkCResult.ok ? sockSdkCResult.data : undefined;
|
|
4484
|
+
const supportedFilesCResult = sockSdk ? await fetchSupportedScanFileNames() : undefined;
|
|
4485
|
+
if (supportedFilesCResult) {
|
|
4486
|
+
lastCResult = supportedFilesCResult;
|
|
4487
|
+
}
|
|
4488
|
+
const supportedFiles = supportedFilesCResult?.ok ? supportedFilesCResult.data : undefined;
|
|
4489
|
+
const packagePaths = supportedFiles ? await utils.getPackageFilesForScan(['.'], supportedFiles, {
|
|
4490
|
+
cwd
|
|
4491
|
+
}) : [];
|
|
4492
|
+
const uploadCResult = sockSdk ? await utils.handleApiCall(sockSdk?.uploadManifestFiles(orgSlug, packagePaths), {
|
|
4493
|
+
desc: 'upload manifests'
|
|
4494
|
+
}) : undefined;
|
|
4495
|
+
if (uploadCResult) {
|
|
4496
|
+
lastCResult = uploadCResult;
|
|
4497
|
+
}
|
|
4498
|
+
const tarHash = uploadCResult?.ok ? uploadCResult.data.tarHash : '';
|
|
4499
|
+
const idsOutputCResult = tarHash ? await utils.spawnCoana(['compute-fixes-and-upgrade-purls', cwd, '--manifests-tar-hash', tarHash], {
|
|
4500
|
+
cwd,
|
|
4501
|
+
spinner,
|
|
4502
|
+
env: {
|
|
4503
|
+
SOCKET_ORG_SLUG: orgSlug
|
|
4495
4504
|
}
|
|
4496
|
-
|
|
4505
|
+
}) : undefined;
|
|
4506
|
+
if (idsOutputCResult) {
|
|
4507
|
+
lastCResult = idsOutputCResult;
|
|
4497
4508
|
}
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
if (!applyFixesCResult.ok) {
|
|
4506
|
-
debug.debugFn('error', 'fail: Coana CLI');
|
|
4507
|
-
debug.debugDir('inspect', {
|
|
4508
|
-
message: applyFixesCResult.message,
|
|
4509
|
-
cause: applyFixesCResult.cause
|
|
4510
|
-
});
|
|
4509
|
+
const idsOutput = idsOutputCResult?.ok ? idsOutputCResult.data : '';
|
|
4510
|
+
const ids = utils.cmdFlagValueToArray(/(?<=Vulnerabilities found: )[^\n]+/.exec(idsOutput)?.[0]);
|
|
4511
|
+
const fixCResult = ids.length ? await utils.spawnCoana(['compute-fixes-and-upgrade-purls', cwd, '--manifests-tar-hash', tarHash, '--apply-fixes-to', ...ids, ...unknownFlags], {
|
|
4512
|
+
cwd,
|
|
4513
|
+
spinner,
|
|
4514
|
+
env: {
|
|
4515
|
+
SOCKET_ORG_SLUG: orgSlug
|
|
4511
4516
|
}
|
|
4512
|
-
|
|
4517
|
+
}) : undefined;
|
|
4518
|
+
if (fixCResult) {
|
|
4519
|
+
lastCResult = fixCResult;
|
|
4520
|
+
}
|
|
4521
|
+
// const fixCResult = await spawnCoana(
|
|
4522
|
+
// [
|
|
4523
|
+
// cwd,
|
|
4524
|
+
// '--socket-mode',
|
|
4525
|
+
// DOT_SOCKET_DOT_FACTS_JSON,
|
|
4526
|
+
// '--manifests-tar-hash',
|
|
4527
|
+
// tarHash,
|
|
4528
|
+
// ...unknownFlags,
|
|
4529
|
+
// ],
|
|
4530
|
+
// { cwd, spinner, env: { SOCKET_ORG_SLUG: orgSlug } },
|
|
4531
|
+
// )
|
|
4532
|
+
debug.debugDir('inspect', {
|
|
4533
|
+
lastCResult
|
|
4534
|
+
});
|
|
4535
|
+
if (!lastCResult.ok) {
|
|
4536
|
+
await outputFixResult(lastCResult, outputKind);
|
|
4513
4537
|
return;
|
|
4514
4538
|
}
|
|
4515
|
-
spinner?.infoAndStop('No GHSA IDs found.');
|
|
4516
4539
|
await outputFixResult({
|
|
4517
4540
|
ok: true,
|
|
4518
4541
|
data: ''
|
|
@@ -4538,11 +4561,17 @@ async function handleFix({
|
|
|
4538
4561
|
}, outputKind);
|
|
4539
4562
|
return;
|
|
4540
4563
|
}
|
|
4564
|
+
|
|
4565
|
+
// Lazily access constants.
|
|
4566
|
+
const {
|
|
4567
|
+
NPM,
|
|
4568
|
+
PNPM
|
|
4569
|
+
} = constants;
|
|
4541
4570
|
const {
|
|
4542
4571
|
agent,
|
|
4543
4572
|
agentVersion
|
|
4544
4573
|
} = pkgEnvDetails;
|
|
4545
|
-
if (agent !== NPM
|
|
4574
|
+
if (agent !== NPM && agent !== PNPM) {
|
|
4546
4575
|
await outputFixResult({
|
|
4547
4576
|
ok: false,
|
|
4548
4577
|
message: 'Not supported.',
|
|
@@ -4551,7 +4580,7 @@ async function handleFix({
|
|
|
4551
4580
|
return;
|
|
4552
4581
|
}
|
|
4553
4582
|
logger.logger.info(`Fixing packages for ${agent} v${agentVersion}.\n`);
|
|
4554
|
-
const fixer = agent === NPM
|
|
4583
|
+
const fixer = agent === NPM ? npmFix : pnpmFix;
|
|
4555
4584
|
await outputFixResult(await fixer(pkgEnvDetails, {
|
|
4556
4585
|
autoMerge,
|
|
4557
4586
|
cwd,
|
|
@@ -4589,7 +4618,8 @@ const config$H = {
|
|
|
4589
4618
|
type: 'string',
|
|
4590
4619
|
default: [],
|
|
4591
4620
|
description: `Provide a list of ${vendor.terminalLinkExports('GHSA IDs', 'https://docs.github.com/en/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database#about-ghsa-ids')} to compute fixes for, as either a comma separated value or as multiple flags.\n Use '--ghsa auto' to automatically lookup GHSA IDs and compute fixes for them.`,
|
|
4592
|
-
isMultiple: true
|
|
4621
|
+
isMultiple: true,
|
|
4622
|
+
hidden: true
|
|
4593
4623
|
},
|
|
4594
4624
|
limit: {
|
|
4595
4625
|
type: 'number',
|
|
@@ -4714,6 +4744,14 @@ async function run$H(argv, importMeta, {
|
|
|
4714
4744
|
autoMerge = true;
|
|
4715
4745
|
test = true;
|
|
4716
4746
|
}
|
|
4747
|
+
const orgSlugCResult = await utils.getDefaultOrgSlug();
|
|
4748
|
+
if (!orgSlugCResult.ok) {
|
|
4749
|
+
process.exitCode = orgSlugCResult.code ?? 1;
|
|
4750
|
+
// Always assume json mode.
|
|
4751
|
+
// logger.log(serializeResultJson(orgSlugCResult))
|
|
4752
|
+
return;
|
|
4753
|
+
}
|
|
4754
|
+
const orgSlug = orgSlugCResult.data;
|
|
4717
4755
|
const ghsas = utils.cmdFlagValueToArray(cli.flags['ghsa']);
|
|
4718
4756
|
const limit = (cli.flags['limit'] ? parseInt(String(cli.flags['limit'] || ''), 10) : Infinity) || Infinity;
|
|
4719
4757
|
const maxSatisfying = Boolean(cli.flags['maxSatisfying']);
|
|
@@ -4728,6 +4766,7 @@ async function run$H(argv, importMeta, {
|
|
|
4728
4766
|
limit,
|
|
4729
4767
|
minSatisfying,
|
|
4730
4768
|
prCheck,
|
|
4769
|
+
orgSlug,
|
|
4731
4770
|
outputKind,
|
|
4732
4771
|
purls,
|
|
4733
4772
|
rangeStyle,
|
|
@@ -5022,22 +5061,31 @@ async function attemptLogin(apiBaseUrl, apiProxy) {
|
|
|
5022
5061
|
};
|
|
5023
5062
|
}
|
|
5024
5063
|
const apiToken = apiTokenInput || SOCKET_PUBLIC_API_TOKEN;
|
|
5025
|
-
const
|
|
5026
|
-
|
|
5064
|
+
const sockSdkCResult = await utils.setupSdk({
|
|
5065
|
+
apiBaseUrl,
|
|
5066
|
+
apiProxy,
|
|
5067
|
+
apiToken
|
|
5068
|
+
});
|
|
5069
|
+
if (!sockSdkCResult.ok) {
|
|
5027
5070
|
process.exitCode = 1;
|
|
5028
|
-
logger.logger.fail(utils.failMsgWithBadge(
|
|
5071
|
+
logger.logger.fail(utils.failMsgWithBadge(sockSdkCResult.message, sockSdkCResult.cause));
|
|
5029
5072
|
return;
|
|
5030
5073
|
}
|
|
5031
|
-
const
|
|
5032
|
-
|
|
5074
|
+
const sockSdk = sockSdkCResult.data;
|
|
5075
|
+
const orgsCResult = await utils.handleApiCall(sockSdk.getOrganizations(), {
|
|
5076
|
+
desc: 'token verification'
|
|
5077
|
+
});
|
|
5078
|
+
if (!orgsCResult.ok) {
|
|
5033
5079
|
process.exitCode = 1;
|
|
5034
|
-
logger.logger.fail(utils.failMsgWithBadge(
|
|
5080
|
+
logger.logger.fail(utils.failMsgWithBadge(orgsCResult.message, orgsCResult.cause));
|
|
5035
5081
|
return;
|
|
5036
5082
|
}
|
|
5037
|
-
const
|
|
5038
|
-
|
|
5083
|
+
const {
|
|
5084
|
+
organizations
|
|
5085
|
+
} = orgsCResult.data;
|
|
5086
|
+
const orgSlugs = Object.values(organizations).map(obj => obj.slug);
|
|
5039
5087
|
logger.logger.success(`API key verified: ${orgSlugs}`);
|
|
5040
|
-
const enforcedChoices = Object.values(
|
|
5088
|
+
const enforcedChoices = Object.values(organizations).filter(org => org?.plan === 'enterprise').map(org => ({
|
|
5041
5089
|
name: org.name ?? 'undefined',
|
|
5042
5090
|
value: org.id
|
|
5043
5091
|
}));
|
|
@@ -7348,8 +7396,8 @@ function updatePkgJsonField(editablePkgJson, field, value) {
|
|
|
7348
7396
|
if (oldValue) {
|
|
7349
7397
|
// The field already exists so we simply update the field value.
|
|
7350
7398
|
if (field === PNPM$1) {
|
|
7351
|
-
const isPnpmObj =
|
|
7352
|
-
if (
|
|
7399
|
+
const isPnpmObj = require$$7.isObject(oldValue);
|
|
7400
|
+
if (require$$7.hasKeys(value)) {
|
|
7353
7401
|
editablePkgJson.update({
|
|
7354
7402
|
[field]: {
|
|
7355
7403
|
...(isPnpmObj ? oldValue : {}),
|
|
@@ -7361,7 +7409,7 @@ function updatePkgJsonField(editablePkgJson, field, value) {
|
|
|
7361
7409
|
});
|
|
7362
7410
|
} else {
|
|
7363
7411
|
// Properties with undefined values are omitted when saved as JSON.
|
|
7364
|
-
editablePkgJson.update(
|
|
7412
|
+
editablePkgJson.update(require$$7.hasKeys(oldValue) ? {
|
|
7365
7413
|
[field]: {
|
|
7366
7414
|
...(isPnpmObj ? oldValue : {}),
|
|
7367
7415
|
overrides: undefined
|
|
@@ -7373,7 +7421,7 @@ function updatePkgJsonField(editablePkgJson, field, value) {
|
|
|
7373
7421
|
} else if (field === OVERRIDES || field === RESOLUTIONS) {
|
|
7374
7422
|
// Properties with undefined values are omitted when saved as JSON.
|
|
7375
7423
|
editablePkgJson.update({
|
|
7376
|
-
[field]:
|
|
7424
|
+
[field]: require$$7.hasKeys(value) ? value : undefined
|
|
7377
7425
|
});
|
|
7378
7426
|
} else {
|
|
7379
7427
|
editablePkgJson.update({
|
|
@@ -7382,7 +7430,7 @@ function updatePkgJsonField(editablePkgJson, field, value) {
|
|
|
7382
7430
|
}
|
|
7383
7431
|
return;
|
|
7384
7432
|
}
|
|
7385
|
-
if ((field === OVERRIDES || field === PNPM$1 || field === RESOLUTIONS) && !
|
|
7433
|
+
if ((field === OVERRIDES || field === PNPM$1 || field === RESOLUTIONS) && !require$$7.hasKeys(value)) {
|
|
7386
7434
|
return;
|
|
7387
7435
|
}
|
|
7388
7436
|
// Since the field doesn't exist we want to insert it into the package.json
|
|
@@ -7517,7 +7565,7 @@ async function addOverrides(pkgEnvDetails, pkgPath, options) {
|
|
|
7517
7565
|
let loggedAddingText = false;
|
|
7518
7566
|
|
|
7519
7567
|
// Chunk package names to process them in parallel 3 at a time.
|
|
7520
|
-
await require$$
|
|
7568
|
+
await require$$8.pEach(manifestEntries, 3, async ({
|
|
7521
7569
|
1: data
|
|
7522
7570
|
}) => {
|
|
7523
7571
|
const {
|
|
@@ -7531,11 +7579,11 @@ async function addOverrides(pkgEnvDetails, pkgPath, options) {
|
|
|
7531
7579
|
for (const {
|
|
7532
7580
|
1: depObj
|
|
7533
7581
|
} of depEntries) {
|
|
7534
|
-
const sockSpec =
|
|
7582
|
+
const sockSpec = require$$7.hasOwn(depObj, sockRegPkgName) ? depObj[sockRegPkgName] : undefined;
|
|
7535
7583
|
if (sockSpec) {
|
|
7536
7584
|
depAliasMap.set(sockRegPkgName, sockSpec);
|
|
7537
7585
|
}
|
|
7538
|
-
const origSpec =
|
|
7586
|
+
const origSpec = require$$7.hasOwn(depObj, origPkgName) ? depObj[origPkgName] : undefined;
|
|
7539
7587
|
if (origSpec) {
|
|
7540
7588
|
let thisSpec = origSpec;
|
|
7541
7589
|
// Add package aliases for direct dependencies to avoid npm EOVERRIDE
|
|
@@ -7571,11 +7619,11 @@ async function addOverrides(pkgEnvDetails, pkgPath, options) {
|
|
|
7571
7619
|
npmExecPath
|
|
7572
7620
|
});
|
|
7573
7621
|
// Chunk package names to process them in parallel 3 at a time.
|
|
7574
|
-
await require$$
|
|
7622
|
+
await require$$8.pEach(overridesDataObjects, 3, async ({
|
|
7575
7623
|
overrides,
|
|
7576
7624
|
type
|
|
7577
7625
|
}) => {
|
|
7578
|
-
const overrideExists =
|
|
7626
|
+
const overrideExists = require$$7.hasOwn(overrides, origPkgName);
|
|
7579
7627
|
if (overrideExists || thingScanner(pkgEnvDetails, thingToScan, origPkgName, lockName)) {
|
|
7580
7628
|
const oldSpec = overrideExists ? overrides[origPkgName] : undefined;
|
|
7581
7629
|
const origDepAlias = depAliasMap.get(origPkgName);
|
|
@@ -7625,7 +7673,7 @@ async function addOverrides(pkgEnvDetails, pkgPath, options) {
|
|
|
7625
7673
|
});
|
|
7626
7674
|
if (isWorkspace) {
|
|
7627
7675
|
// Chunk package names to process them in parallel 3 at a time.
|
|
7628
|
-
await require$$
|
|
7676
|
+
await require$$8.pEach(workspacePkgJsonPaths, 3, async workspacePkgJsonPath => {
|
|
7629
7677
|
const otherState = await addOverrides(pkgEnvDetails, path.dirname(workspacePkgJsonPath), {
|
|
7630
7678
|
logger,
|
|
7631
7679
|
pin,
|
|
@@ -7646,7 +7694,7 @@ async function addOverrides(pkgEnvDetails, pkgPath, options) {
|
|
|
7646
7694
|
overrides,
|
|
7647
7695
|
type
|
|
7648
7696
|
} of overridesDataObjects) {
|
|
7649
|
-
updateManifest(type, pkgEnvDetails.editablePkgJson,
|
|
7697
|
+
updateManifest(type, pkgEnvDetails.editablePkgJson, require$$7.toSortedObject(overrides));
|
|
7650
7698
|
}
|
|
7651
7699
|
}
|
|
7652
7700
|
await pkgEnvDetails.editablePkgJson.save();
|
|
@@ -7891,19 +7939,31 @@ async function run$r(argv, importMeta, {
|
|
|
7891
7939
|
});
|
|
7892
7940
|
}
|
|
7893
7941
|
|
|
7894
|
-
async function fetchDependencies({
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
}
|
|
7898
|
-
|
|
7942
|
+
async function fetchDependencies(config, options) {
|
|
7943
|
+
const {
|
|
7944
|
+
sdkOptions
|
|
7945
|
+
} = {
|
|
7946
|
+
__proto__: null,
|
|
7947
|
+
...options
|
|
7948
|
+
};
|
|
7949
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
7899
7950
|
if (!sockSdkCResult.ok) {
|
|
7900
7951
|
return sockSdkCResult;
|
|
7901
7952
|
}
|
|
7902
7953
|
const sockSdk = sockSdkCResult.data;
|
|
7954
|
+
const {
|
|
7955
|
+
limit,
|
|
7956
|
+
offset
|
|
7957
|
+
} = {
|
|
7958
|
+
__proto__: null,
|
|
7959
|
+
...config
|
|
7960
|
+
};
|
|
7903
7961
|
return await utils.handleApiCall(sockSdk.searchDependencies({
|
|
7904
7962
|
limit,
|
|
7905
7963
|
offset
|
|
7906
|
-
}),
|
|
7964
|
+
}), {
|
|
7965
|
+
desc: 'organization dependencies'
|
|
7966
|
+
});
|
|
7907
7967
|
}
|
|
7908
7968
|
|
|
7909
7969
|
// @ts-ignore
|
|
@@ -8068,13 +8128,21 @@ async function run$q(argv, importMeta, {
|
|
|
8068
8128
|
});
|
|
8069
8129
|
}
|
|
8070
8130
|
|
|
8071
|
-
async function fetchLicensePolicy(orgSlug) {
|
|
8072
|
-
const
|
|
8131
|
+
async function fetchLicensePolicy(orgSlug, options) {
|
|
8132
|
+
const {
|
|
8133
|
+
sdkOptions
|
|
8134
|
+
} = {
|
|
8135
|
+
__proto__: null,
|
|
8136
|
+
...options
|
|
8137
|
+
};
|
|
8138
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
8073
8139
|
if (!sockSdkCResult.ok) {
|
|
8074
8140
|
return sockSdkCResult;
|
|
8075
8141
|
}
|
|
8076
8142
|
const sockSdk = sockSdkCResult.data;
|
|
8077
|
-
return await utils.handleApiCall(sockSdk.getOrgLicensePolicy(orgSlug),
|
|
8143
|
+
return await utils.handleApiCall(sockSdk.getOrgLicensePolicy(orgSlug), {
|
|
8144
|
+
desc: 'organization license policy'
|
|
8145
|
+
});
|
|
8078
8146
|
}
|
|
8079
8147
|
|
|
8080
8148
|
async function outputLicensePolicy(result, outputKind) {
|
|
@@ -8196,13 +8264,21 @@ async function run$p(argv, importMeta, {
|
|
|
8196
8264
|
await handleLicensePolicy(orgSlug, outputKind);
|
|
8197
8265
|
}
|
|
8198
8266
|
|
|
8199
|
-
async function fetchSecurityPolicy(orgSlug) {
|
|
8200
|
-
const
|
|
8267
|
+
async function fetchSecurityPolicy(orgSlug, options) {
|
|
8268
|
+
const {
|
|
8269
|
+
sdkOptions
|
|
8270
|
+
} = {
|
|
8271
|
+
__proto__: null,
|
|
8272
|
+
...options
|
|
8273
|
+
};
|
|
8274
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
8201
8275
|
if (!sockSdkCResult.ok) {
|
|
8202
8276
|
return sockSdkCResult;
|
|
8203
8277
|
}
|
|
8204
8278
|
const sockSdk = sockSdkCResult.data;
|
|
8205
|
-
return await utils.handleApiCall(sockSdk.getOrgSecurityPolicy(orgSlug),
|
|
8279
|
+
return await utils.handleApiCall(sockSdk.getOrgSecurityPolicy(orgSlug), {
|
|
8280
|
+
desc: 'organization security policy'
|
|
8281
|
+
});
|
|
8206
8282
|
}
|
|
8207
8283
|
|
|
8208
8284
|
async function outputSecurityPolicy(result, outputKind) {
|
|
@@ -8327,15 +8403,6 @@ async function run$o(argv, importMeta, {
|
|
|
8327
8403
|
await handleSecurityPolicy(orgSlug, outputKind);
|
|
8328
8404
|
}
|
|
8329
8405
|
|
|
8330
|
-
async function fetchOrganization() {
|
|
8331
|
-
const sockSdkCResult = await utils.setupSdk();
|
|
8332
|
-
if (!sockSdkCResult.ok) {
|
|
8333
|
-
return sockSdkCResult;
|
|
8334
|
-
}
|
|
8335
|
-
const sockSdk = sockSdkCResult.data;
|
|
8336
|
-
return await utils.handleApiCall(sockSdk.getOrganizations(), 'organization list');
|
|
8337
|
-
}
|
|
8338
|
-
|
|
8339
8406
|
async function outputOrganizationList(result, outputKind = 'text') {
|
|
8340
8407
|
if (!result.ok) {
|
|
8341
8408
|
process.exitCode = result.code ?? 1;
|
|
@@ -8387,7 +8454,7 @@ async function outputOrganizationList(result, outputKind = 'text') {
|
|
|
8387
8454
|
}
|
|
8388
8455
|
|
|
8389
8456
|
async function handleOrganizationList(outputKind = 'text') {
|
|
8390
|
-
const data = await fetchOrganization();
|
|
8457
|
+
const data = await utils.fetchOrganization();
|
|
8391
8458
|
await outputOrganizationList(data, outputKind);
|
|
8392
8459
|
}
|
|
8393
8460
|
|
|
@@ -8486,13 +8553,21 @@ const cmdOrganizationPolicy = {
|
|
|
8486
8553
|
}
|
|
8487
8554
|
};
|
|
8488
8555
|
|
|
8489
|
-
async function fetchQuota() {
|
|
8490
|
-
const
|
|
8556
|
+
async function fetchQuota(options) {
|
|
8557
|
+
const {
|
|
8558
|
+
sdkOptions
|
|
8559
|
+
} = {
|
|
8560
|
+
__proto__: null,
|
|
8561
|
+
...options
|
|
8562
|
+
};
|
|
8563
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
8491
8564
|
if (!sockSdkCResult.ok) {
|
|
8492
8565
|
return sockSdkCResult;
|
|
8493
8566
|
}
|
|
8494
8567
|
const sockSdk = sockSdkCResult.data;
|
|
8495
|
-
return await utils.handleApiCall(sockSdk.getQuota(),
|
|
8568
|
+
return await utils.handleApiCall(sockSdk.getQuota(), {
|
|
8569
|
+
desc: 'token quota'
|
|
8570
|
+
});
|
|
8496
8571
|
}
|
|
8497
8572
|
|
|
8498
8573
|
async function outputQuota(result, outputKind = 'text') {
|
|
@@ -8951,20 +9026,28 @@ async function run$l(argv, importMeta, {
|
|
|
8951
9026
|
await handlePurlDeepScore(purls[0] || '', outputKind);
|
|
8952
9027
|
}
|
|
8953
9028
|
|
|
8954
|
-
async function fetchPurlsShallowScore(purls) {
|
|
8955
|
-
|
|
8956
|
-
|
|
9029
|
+
async function fetchPurlsShallowScore(purls, options) {
|
|
9030
|
+
const {
|
|
9031
|
+
sdkOptions
|
|
9032
|
+
} = {
|
|
9033
|
+
__proto__: null,
|
|
9034
|
+
...options
|
|
9035
|
+
};
|
|
9036
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
8957
9037
|
if (!sockSdkCResult.ok) {
|
|
8958
9038
|
return sockSdkCResult;
|
|
8959
9039
|
}
|
|
8960
9040
|
const sockSdk = sockSdkCResult.data;
|
|
9041
|
+
logger.logger.info(`Requesting shallow score data for ${purls.length} package urls (purl): ${purls.join(', ')}`);
|
|
8961
9042
|
const result = await utils.handleApiCall(sockSdk.batchPackageFetch({
|
|
8962
|
-
alerts: 'true'
|
|
8963
|
-
}, {
|
|
8964
9043
|
components: purls.map(purl => ({
|
|
8965
9044
|
purl
|
|
8966
9045
|
}))
|
|
8967
|
-
}
|
|
9046
|
+
}, {
|
|
9047
|
+
alerts: 'true'
|
|
9048
|
+
}), {
|
|
9049
|
+
desc: 'looking up package'
|
|
9050
|
+
});
|
|
8968
9051
|
if (!result.ok) {
|
|
8969
9052
|
return result;
|
|
8970
9053
|
}
|
|
@@ -9460,26 +9543,35 @@ async function run$i(argv, importMeta, {
|
|
|
9460
9543
|
await runRawNpx(argv);
|
|
9461
9544
|
}
|
|
9462
9545
|
|
|
9463
|
-
async function fetchCreateRepo({
|
|
9464
|
-
|
|
9465
|
-
|
|
9466
|
-
|
|
9467
|
-
|
|
9468
|
-
|
|
9469
|
-
|
|
9470
|
-
|
|
9471
|
-
|
|
9546
|
+
async function fetchCreateRepo(config, options) {
|
|
9547
|
+
const {
|
|
9548
|
+
defaultBranch,
|
|
9549
|
+
description,
|
|
9550
|
+
homepage,
|
|
9551
|
+
orgSlug,
|
|
9552
|
+
repoName,
|
|
9553
|
+
visibility
|
|
9554
|
+
} = config;
|
|
9555
|
+
const {
|
|
9556
|
+
sdkOptions
|
|
9557
|
+
} = {
|
|
9558
|
+
__proto__: null,
|
|
9559
|
+
...options
|
|
9560
|
+
};
|
|
9561
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
9472
9562
|
if (!sockSdkCResult.ok) {
|
|
9473
9563
|
return sockSdkCResult;
|
|
9474
9564
|
}
|
|
9475
9565
|
const sockSdk = sockSdkCResult.data;
|
|
9476
9566
|
return await utils.handleApiCall(sockSdk.createOrgRepo(orgSlug, {
|
|
9477
|
-
|
|
9567
|
+
default_branch: defaultBranch,
|
|
9478
9568
|
description,
|
|
9479
9569
|
homepage,
|
|
9480
|
-
|
|
9570
|
+
name: repoName,
|
|
9481
9571
|
visibility
|
|
9482
|
-
}),
|
|
9572
|
+
}), {
|
|
9573
|
+
desc: 'to create a repository'
|
|
9574
|
+
});
|
|
9483
9575
|
}
|
|
9484
9576
|
|
|
9485
9577
|
function outputCreateRepo(result, requestedName, outputKind) {
|
|
@@ -9501,7 +9593,7 @@ function outputCreateRepo(result, requestedName, outputKind) {
|
|
|
9501
9593
|
}
|
|
9502
9594
|
|
|
9503
9595
|
async function handleCreateRepo({
|
|
9504
|
-
|
|
9596
|
+
defaultBranch,
|
|
9505
9597
|
description,
|
|
9506
9598
|
homepage,
|
|
9507
9599
|
orgSlug,
|
|
@@ -9509,7 +9601,7 @@ async function handleCreateRepo({
|
|
|
9509
9601
|
visibility
|
|
9510
9602
|
}, outputKind) {
|
|
9511
9603
|
const data = await fetchCreateRepo({
|
|
9512
|
-
|
|
9604
|
+
defaultBranch,
|
|
9513
9605
|
description,
|
|
9514
9606
|
homepage,
|
|
9515
9607
|
orgSlug,
|
|
@@ -9639,18 +9731,26 @@ async function run$h(argv, importMeta, {
|
|
|
9639
9731
|
repoName: String(repoName),
|
|
9640
9732
|
description: String(cli.flags['repoDescription'] || ''),
|
|
9641
9733
|
homepage: String(cli.flags['homepage'] || ''),
|
|
9642
|
-
|
|
9734
|
+
defaultBranch: String(cli.flags['defaultBranch'] || ''),
|
|
9643
9735
|
visibility: String(cli.flags['visibility'] || 'private')
|
|
9644
9736
|
}, outputKind);
|
|
9645
9737
|
}
|
|
9646
9738
|
|
|
9647
|
-
async function fetchDeleteRepo(orgSlug, repoName) {
|
|
9648
|
-
const
|
|
9739
|
+
async function fetchDeleteRepo(orgSlug, repoName, options) {
|
|
9740
|
+
const {
|
|
9741
|
+
sdkOptions
|
|
9742
|
+
} = {
|
|
9743
|
+
__proto__: null,
|
|
9744
|
+
...options
|
|
9745
|
+
};
|
|
9746
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
9649
9747
|
if (!sockSdkCResult.ok) {
|
|
9650
9748
|
return sockSdkCResult;
|
|
9651
9749
|
}
|
|
9652
9750
|
const sockSdk = sockSdkCResult.data;
|
|
9653
|
-
return await utils.handleApiCall(sockSdk.deleteOrgRepo(orgSlug, repoName),
|
|
9751
|
+
return await utils.handleApiCall(sockSdk.deleteOrgRepo(orgSlug, repoName), {
|
|
9752
|
+
desc: 'to delete a repository'
|
|
9753
|
+
});
|
|
9654
9754
|
}
|
|
9655
9755
|
|
|
9656
9756
|
async function outputDeleteRepo(result, repoName, outputKind) {
|
|
@@ -9768,12 +9868,16 @@ async function run$g(argv, importMeta, {
|
|
|
9768
9868
|
await handleDeleteRepo(orgSlug, repoName, outputKind);
|
|
9769
9869
|
}
|
|
9770
9870
|
|
|
9771
|
-
async function fetchListAllRepos({
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9871
|
+
async function fetchListAllRepos(orgSlug, options) {
|
|
9872
|
+
const {
|
|
9873
|
+
direction,
|
|
9874
|
+
sdkOptions,
|
|
9875
|
+
sort
|
|
9876
|
+
} = {
|
|
9877
|
+
__proto__: null,
|
|
9878
|
+
...options
|
|
9879
|
+
};
|
|
9880
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
9777
9881
|
if (!sockSdkCResult.ok) {
|
|
9778
9882
|
return sockSdkCResult;
|
|
9779
9883
|
}
|
|
@@ -9796,7 +9900,9 @@ async function fetchListAllRepos({
|
|
|
9796
9900
|
per_page: String(100),
|
|
9797
9901
|
// max
|
|
9798
9902
|
page: String(nextPage)
|
|
9799
|
-
}),
|
|
9903
|
+
}), {
|
|
9904
|
+
desc: 'list of repositories'
|
|
9905
|
+
});
|
|
9800
9906
|
if (!orgRepoListCResult.ok) {
|
|
9801
9907
|
debug.debugFn('error', 'fail: fetch repo');
|
|
9802
9908
|
debug.debugDir('inspect', {
|
|
@@ -9816,14 +9922,24 @@ async function fetchListAllRepos({
|
|
|
9816
9922
|
};
|
|
9817
9923
|
}
|
|
9818
9924
|
|
|
9819
|
-
async function fetchListRepos({
|
|
9820
|
-
|
|
9821
|
-
|
|
9822
|
-
|
|
9823
|
-
|
|
9824
|
-
|
|
9825
|
-
|
|
9826
|
-
|
|
9925
|
+
async function fetchListRepos(config, options) {
|
|
9926
|
+
const {
|
|
9927
|
+
direction,
|
|
9928
|
+
orgSlug,
|
|
9929
|
+
page,
|
|
9930
|
+
perPage,
|
|
9931
|
+
sort
|
|
9932
|
+
} = {
|
|
9933
|
+
__proto__: null,
|
|
9934
|
+
...config
|
|
9935
|
+
};
|
|
9936
|
+
const {
|
|
9937
|
+
sdkOptions
|
|
9938
|
+
} = {
|
|
9939
|
+
__proto__: null,
|
|
9940
|
+
...options
|
|
9941
|
+
};
|
|
9942
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
9827
9943
|
if (!sockSdkCResult.ok) {
|
|
9828
9944
|
return sockSdkCResult;
|
|
9829
9945
|
}
|
|
@@ -9831,9 +9947,11 @@ async function fetchListRepos({
|
|
|
9831
9947
|
return await utils.handleApiCall(sockSdk.getOrgRepoList(orgSlug, {
|
|
9832
9948
|
sort,
|
|
9833
9949
|
direction,
|
|
9834
|
-
per_page: String(
|
|
9950
|
+
per_page: String(perPage),
|
|
9835
9951
|
page: String(page)
|
|
9836
|
-
}),
|
|
9952
|
+
}), {
|
|
9953
|
+
desc: 'list of repositories'
|
|
9954
|
+
});
|
|
9837
9955
|
}
|
|
9838
9956
|
|
|
9839
9957
|
// @ts-ignore
|
|
@@ -9899,13 +10017,12 @@ async function handleListRepos({
|
|
|
9899
10017
|
orgSlug,
|
|
9900
10018
|
outputKind,
|
|
9901
10019
|
page,
|
|
9902
|
-
|
|
10020
|
+
perPage,
|
|
9903
10021
|
sort
|
|
9904
10022
|
}) {
|
|
9905
10023
|
if (all) {
|
|
9906
|
-
const data = await fetchListAllRepos({
|
|
10024
|
+
const data = await fetchListAllRepos(orgSlug, {
|
|
9907
10025
|
direction,
|
|
9908
|
-
orgSlug,
|
|
9909
10026
|
sort
|
|
9910
10027
|
});
|
|
9911
10028
|
await outputListRepos(data, outputKind, 0, 0, sort, Infinity, direction);
|
|
@@ -9914,14 +10031,14 @@ async function handleListRepos({
|
|
|
9914
10031
|
direction,
|
|
9915
10032
|
orgSlug,
|
|
9916
10033
|
page,
|
|
9917
|
-
|
|
10034
|
+
perPage,
|
|
9918
10035
|
sort
|
|
9919
10036
|
});
|
|
9920
10037
|
if (!data.ok) {
|
|
9921
10038
|
await outputListRepos(data, outputKind, 0, 0, '', 0, direction);
|
|
9922
10039
|
} else {
|
|
9923
10040
|
// Note: nextPage defaults to 0, is null when there's no next page
|
|
9924
|
-
await outputListRepos(data, outputKind, page, data.data.nextPage, sort,
|
|
10041
|
+
await outputListRepos(data, outputKind, page, data.data.nextPage, sort, perPage, direction);
|
|
9925
10042
|
}
|
|
9926
10043
|
}
|
|
9927
10044
|
}
|
|
@@ -10054,32 +10171,44 @@ async function run$f(argv, importMeta, {
|
|
|
10054
10171
|
orgSlug,
|
|
10055
10172
|
outputKind,
|
|
10056
10173
|
page: Number(cli.flags['page']) || 1,
|
|
10057
|
-
|
|
10174
|
+
perPage: Number(cli.flags['perPage']) || 30,
|
|
10058
10175
|
sort: String(cli.flags['sort'] || 'created_at')
|
|
10059
10176
|
});
|
|
10060
10177
|
}
|
|
10061
10178
|
|
|
10062
|
-
async function fetchUpdateRepo({
|
|
10063
|
-
|
|
10064
|
-
|
|
10065
|
-
|
|
10066
|
-
|
|
10067
|
-
|
|
10068
|
-
|
|
10069
|
-
|
|
10070
|
-
|
|
10179
|
+
async function fetchUpdateRepo(config, options) {
|
|
10180
|
+
const {
|
|
10181
|
+
defaultBranch,
|
|
10182
|
+
description,
|
|
10183
|
+
homepage,
|
|
10184
|
+
orgSlug,
|
|
10185
|
+
repoName,
|
|
10186
|
+
visibility
|
|
10187
|
+
} = {
|
|
10188
|
+
__proto__: null,
|
|
10189
|
+
...config
|
|
10190
|
+
};
|
|
10191
|
+
const {
|
|
10192
|
+
sdkOptions
|
|
10193
|
+
} = {
|
|
10194
|
+
__proto__: null,
|
|
10195
|
+
...options
|
|
10196
|
+
};
|
|
10197
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
10071
10198
|
if (!sockSdkCResult.ok) {
|
|
10072
10199
|
return sockSdkCResult;
|
|
10073
10200
|
}
|
|
10074
10201
|
const sockSdk = sockSdkCResult.data;
|
|
10075
10202
|
return await utils.handleApiCall(sockSdk.updateOrgRepo(orgSlug, repoName, {
|
|
10076
|
-
|
|
10077
|
-
name: repoName,
|
|
10203
|
+
default_branch: defaultBranch,
|
|
10078
10204
|
description,
|
|
10079
10205
|
homepage,
|
|
10080
|
-
|
|
10206
|
+
name: repoName,
|
|
10207
|
+
orgSlug,
|
|
10081
10208
|
visibility
|
|
10082
|
-
}),
|
|
10209
|
+
}), {
|
|
10210
|
+
desc: 'to update a repository'
|
|
10211
|
+
});
|
|
10083
10212
|
}
|
|
10084
10213
|
|
|
10085
10214
|
async function outputUpdateRepo(result, repoName, outputKind) {
|
|
@@ -10098,7 +10227,7 @@ async function outputUpdateRepo(result, repoName, outputKind) {
|
|
|
10098
10227
|
}
|
|
10099
10228
|
|
|
10100
10229
|
async function handleUpdateRepo({
|
|
10101
|
-
|
|
10230
|
+
defaultBranch,
|
|
10102
10231
|
description,
|
|
10103
10232
|
homepage,
|
|
10104
10233
|
orgSlug,
|
|
@@ -10106,7 +10235,7 @@ async function handleUpdateRepo({
|
|
|
10106
10235
|
visibility
|
|
10107
10236
|
}, outputKind) {
|
|
10108
10237
|
const data = await fetchUpdateRepo({
|
|
10109
|
-
|
|
10238
|
+
defaultBranch,
|
|
10110
10239
|
description,
|
|
10111
10240
|
homepage,
|
|
10112
10241
|
orgSlug,
|
|
@@ -10238,18 +10367,26 @@ async function run$e(argv, importMeta, {
|
|
|
10238
10367
|
repoName: String(repoName),
|
|
10239
10368
|
description: String(cli.flags['repoDescription'] || ''),
|
|
10240
10369
|
homepage: String(cli.flags['homepage'] || ''),
|
|
10241
|
-
|
|
10370
|
+
defaultBranch: String(cli.flags['defaultBranch'] || ''),
|
|
10242
10371
|
visibility: String(cli.flags['visibility'] || 'private')
|
|
10243
10372
|
}, outputKind);
|
|
10244
10373
|
}
|
|
10245
10374
|
|
|
10246
|
-
async function fetchViewRepo(orgSlug, repoName) {
|
|
10247
|
-
const
|
|
10375
|
+
async function fetchViewRepo(orgSlug, repoName, options) {
|
|
10376
|
+
const {
|
|
10377
|
+
sdkOptions
|
|
10378
|
+
} = {
|
|
10379
|
+
__proto__: null,
|
|
10380
|
+
...options
|
|
10381
|
+
};
|
|
10382
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
10248
10383
|
if (!sockSdkCResult.ok) {
|
|
10249
10384
|
return sockSdkCResult;
|
|
10250
10385
|
}
|
|
10251
10386
|
const sockSdk = sockSdkCResult.data;
|
|
10252
|
-
return await utils.handleApiCall(sockSdk.getOrgRepo(orgSlug, repoName),
|
|
10387
|
+
return await utils.handleApiCall(sockSdk.getOrgRepo(orgSlug, repoName), {
|
|
10388
|
+
desc: 'repository data'
|
|
10389
|
+
});
|
|
10253
10390
|
}
|
|
10254
10391
|
|
|
10255
10392
|
// @ts-ignore
|
|
@@ -10691,7 +10828,7 @@ async function run$c(argv, importMeta, {
|
|
|
10691
10828
|
if (detected.count > 0 && !autoManifest) {
|
|
10692
10829
|
logger.logger.info(`Detected ${detected.count} manifest targets we could try to generate. Please set the --autoManifest flag if you want to include languages covered by \`socket manifest auto\` in the Scan.`);
|
|
10693
10830
|
}
|
|
10694
|
-
if (updatedInput && orgSlug && targets
|
|
10831
|
+
if (updatedInput && orgSlug && targets.length) {
|
|
10695
10832
|
logger.logger.info('Note: You can invoke this command next time to skip the interactive questions:');
|
|
10696
10833
|
logger.logger.info('```');
|
|
10697
10834
|
logger.logger.info(` socket scan create [other flags...] ${orgSlug} ${targets.join(' ')}`);
|
|
@@ -10759,20 +10896,28 @@ async function run$c(argv, importMeta, {
|
|
|
10759
10896
|
pendingHead: Boolean(pendingHead),
|
|
10760
10897
|
pullRequest: Number(pullRequest),
|
|
10761
10898
|
readOnly: Boolean(readOnly),
|
|
10762
|
-
repoName
|
|
10899
|
+
repoName,
|
|
10763
10900
|
report,
|
|
10764
10901
|
targets,
|
|
10765
10902
|
tmp: Boolean(tmp)
|
|
10766
10903
|
});
|
|
10767
10904
|
}
|
|
10768
10905
|
|
|
10769
|
-
async function fetchDeleteOrgFullScan(orgSlug, scanId) {
|
|
10770
|
-
const
|
|
10906
|
+
async function fetchDeleteOrgFullScan(orgSlug, scanId, options) {
|
|
10907
|
+
const {
|
|
10908
|
+
sdkOptions
|
|
10909
|
+
} = {
|
|
10910
|
+
__proto__: null,
|
|
10911
|
+
...options
|
|
10912
|
+
};
|
|
10913
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
10771
10914
|
if (!sockSdkCResult.ok) {
|
|
10772
10915
|
return sockSdkCResult;
|
|
10773
10916
|
}
|
|
10774
10917
|
const sockSdk = sockSdkCResult.data;
|
|
10775
|
-
return await utils.handleApiCall(sockSdk.deleteOrgFullScan(orgSlug, scanId),
|
|
10918
|
+
return await utils.handleApiCall(sockSdk.deleteOrgFullScan(orgSlug, scanId), {
|
|
10919
|
+
desc: 'to delete a scan'
|
|
10920
|
+
});
|
|
10776
10921
|
}
|
|
10777
10922
|
|
|
10778
10923
|
async function outputDeleteScan(result, outputKind) {
|
|
@@ -11206,10 +11351,6 @@ async function run$a(argv, importMeta, {
|
|
|
11206
11351
|
});
|
|
11207
11352
|
}
|
|
11208
11353
|
|
|
11209
|
-
// Supported manifest file name patterns
|
|
11210
|
-
// Keep in mind that we have to request these files through the GitHub API; that cost is much heavier than local disk searches
|
|
11211
|
-
// TODO: get this list from API instead? Is that too much? Has to fetch through gh api...
|
|
11212
|
-
const SUPPORTED_FILE_PATTERNS = [/.*[-.]spdx\.json/, /bom\.json/, /.*[-.]cyclonedx\.json/, /.*[-.]cyclonedx\.xml/, /package\.json/, /package-lock\.json/, /npm-shrinkwrap\.json/, /yarn\.lock/, /pnpm-lock\.yaml/, /pnpm-lock\.yml/, /pnpm-workspace\.yaml/, /pnpm-workspace\.yml/, /pipfile/, /pyproject\.toml/, /poetry\.lock/, /requirements[\\/].*\.txt/, /requirements-.*\.txt/, /requirements_.*\.txt/, /requirements\.frozen/, /setup\.py/, /pipfile\.lock/, /go\.mod/, /go\.sum/, /pom\.xml/, /.*\..*proj/, /.*\.props/, /.*\.targets/, /.*\.nuspec/, /nuget\.config/, /packages\.config/, /packages\.lock\.json/];
|
|
11213
11354
|
async function createScanFromGithub({
|
|
11214
11355
|
all,
|
|
11215
11356
|
githubApiUrl,
|
|
@@ -11223,9 +11364,8 @@ async function createScanFromGithub({
|
|
|
11223
11364
|
let targetRepos = repos.trim().split(',').map(r => r.trim()).filter(Boolean);
|
|
11224
11365
|
if (all || targetRepos.length === 0) {
|
|
11225
11366
|
// Fetch from Socket API
|
|
11226
|
-
const result = await fetchListAllRepos({
|
|
11367
|
+
const result = await fetchListAllRepos(orgSlug, {
|
|
11227
11368
|
direction: 'asc',
|
|
11228
|
-
orgSlug,
|
|
11229
11369
|
sort: 'name'
|
|
11230
11370
|
});
|
|
11231
11371
|
if (!result.ok) {
|
|
@@ -11264,7 +11404,7 @@ async function createScanFromGithub({
|
|
|
11264
11404
|
let scansCreated = 0;
|
|
11265
11405
|
for (const repoSlug of targetRepos) {
|
|
11266
11406
|
// eslint-disable-next-line no-await-in-loop
|
|
11267
|
-
const
|
|
11407
|
+
const scanCResult = await scanRepo(repoSlug, {
|
|
11268
11408
|
githubApiUrl,
|
|
11269
11409
|
githubToken,
|
|
11270
11410
|
orgSlug,
|
|
@@ -11272,8 +11412,13 @@ async function createScanFromGithub({
|
|
|
11272
11412
|
outputKind,
|
|
11273
11413
|
repos
|
|
11274
11414
|
});
|
|
11275
|
-
if (
|
|
11276
|
-
|
|
11415
|
+
if (scanCResult.ok) {
|
|
11416
|
+
const {
|
|
11417
|
+
scanCreated
|
|
11418
|
+
} = scanCResult.data;
|
|
11419
|
+
if (scanCreated) {
|
|
11420
|
+
scansCreated += 1;
|
|
11421
|
+
}
|
|
11277
11422
|
}
|
|
11278
11423
|
}
|
|
11279
11424
|
logger.logger.success(targetRepos.length, 'GitHub repos detected');
|
|
@@ -11459,7 +11604,9 @@ async function testAndDownloadManifestFile({
|
|
|
11459
11604
|
tmpDir
|
|
11460
11605
|
}) {
|
|
11461
11606
|
debug.debugFn('notice', 'testing: file', file);
|
|
11462
|
-
|
|
11607
|
+
const supportedFilesCResult = await fetchSupportedScanFileNames();
|
|
11608
|
+
const supportedFiles = supportedFilesCResult.ok ? supportedFilesCResult.data : undefined;
|
|
11609
|
+
if (!supportedFiles || !utils.isReportSupportedFile(file, supportedFiles)) {
|
|
11463
11610
|
debug.debugFn('notice', ' - skip: not a known pattern');
|
|
11464
11611
|
// Not an error.
|
|
11465
11612
|
return {
|
|
@@ -11840,7 +11987,7 @@ async function handleCreateGithubScan({
|
|
|
11840
11987
|
outputKind,
|
|
11841
11988
|
repos
|
|
11842
11989
|
}) {
|
|
11843
|
-
const
|
|
11990
|
+
const ghScanCResult = await createScanFromGithub({
|
|
11844
11991
|
all: Boolean(all),
|
|
11845
11992
|
githubApiUrl,
|
|
11846
11993
|
githubToken,
|
|
@@ -11850,7 +11997,7 @@ async function handleCreateGithubScan({
|
|
|
11850
11997
|
outputKind,
|
|
11851
11998
|
repos: String(repos || '')
|
|
11852
11999
|
});
|
|
11853
|
-
await outputScanGithub(
|
|
12000
|
+
await outputScanGithub(ghScanCResult, outputKind);
|
|
11854
12001
|
}
|
|
11855
12002
|
|
|
11856
12003
|
const {
|
|
@@ -12057,21 +12204,31 @@ async function run$9(argv, importMeta, {
|
|
|
12057
12204
|
});
|
|
12058
12205
|
}
|
|
12059
12206
|
|
|
12060
|
-
async function
|
|
12061
|
-
|
|
12062
|
-
|
|
12063
|
-
|
|
12064
|
-
|
|
12065
|
-
|
|
12066
|
-
|
|
12067
|
-
|
|
12068
|
-
sort
|
|
12069
|
-
}) {
|
|
12070
|
-
const sockSdkCResult = await utils.setupSdk();
|
|
12207
|
+
async function fetchOrgFullScanList(config, options) {
|
|
12208
|
+
const {
|
|
12209
|
+
sdkOptions
|
|
12210
|
+
} = {
|
|
12211
|
+
__proto__: null,
|
|
12212
|
+
...options
|
|
12213
|
+
};
|
|
12214
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
12071
12215
|
if (!sockSdkCResult.ok) {
|
|
12072
12216
|
return sockSdkCResult;
|
|
12073
12217
|
}
|
|
12074
12218
|
const sockSdk = sockSdkCResult.data;
|
|
12219
|
+
const {
|
|
12220
|
+
branch,
|
|
12221
|
+
direction,
|
|
12222
|
+
from_time,
|
|
12223
|
+
orgSlug,
|
|
12224
|
+
page,
|
|
12225
|
+
perPage,
|
|
12226
|
+
repo,
|
|
12227
|
+
sort
|
|
12228
|
+
} = {
|
|
12229
|
+
__proto__: null,
|
|
12230
|
+
...config
|
|
12231
|
+
};
|
|
12075
12232
|
return await utils.handleApiCall(sockSdk.getOrgFullScanList(orgSlug, {
|
|
12076
12233
|
...(branch ? {
|
|
12077
12234
|
branch
|
|
@@ -12081,10 +12238,12 @@ async function fetchListScans({
|
|
|
12081
12238
|
} : {}),
|
|
12082
12239
|
sort,
|
|
12083
12240
|
direction,
|
|
12084
|
-
per_page: String(
|
|
12241
|
+
per_page: String(perPage),
|
|
12085
12242
|
page: String(page),
|
|
12086
12243
|
from: from_time
|
|
12087
|
-
}),
|
|
12244
|
+
}), {
|
|
12245
|
+
desc: 'list of scans'
|
|
12246
|
+
});
|
|
12088
12247
|
}
|
|
12089
12248
|
|
|
12090
12249
|
// @ts-ignore
|
|
@@ -12141,17 +12300,17 @@ async function handleListScans({
|
|
|
12141
12300
|
orgSlug,
|
|
12142
12301
|
outputKind,
|
|
12143
12302
|
page,
|
|
12144
|
-
|
|
12303
|
+
perPage,
|
|
12145
12304
|
repo,
|
|
12146
12305
|
sort
|
|
12147
12306
|
}) {
|
|
12148
|
-
const data = await
|
|
12307
|
+
const data = await fetchOrgFullScanList({
|
|
12149
12308
|
branch,
|
|
12150
12309
|
direction,
|
|
12151
12310
|
from_time,
|
|
12152
12311
|
orgSlug,
|
|
12153
12312
|
page,
|
|
12154
|
-
|
|
12313
|
+
perPage,
|
|
12155
12314
|
repo,
|
|
12156
12315
|
sort
|
|
12157
12316
|
});
|
|
@@ -12311,19 +12470,27 @@ async function run$8(argv, importMeta, {
|
|
|
12311
12470
|
orgSlug,
|
|
12312
12471
|
outputKind,
|
|
12313
12472
|
page: Number(cli.flags['page'] || 1),
|
|
12314
|
-
|
|
12473
|
+
perPage: Number(cli.flags['perPage'] || 30),
|
|
12315
12474
|
repo: repo ? String(repo) : '',
|
|
12316
12475
|
sort: String(cli.flags['sort'] || '')
|
|
12317
12476
|
});
|
|
12318
12477
|
}
|
|
12319
12478
|
|
|
12320
|
-
async function fetchScanMetadata(orgSlug, scanId) {
|
|
12321
|
-
const
|
|
12479
|
+
async function fetchScanMetadata(orgSlug, scanId, options) {
|
|
12480
|
+
const {
|
|
12481
|
+
sdkOptions
|
|
12482
|
+
} = {
|
|
12483
|
+
__proto__: null,
|
|
12484
|
+
...options
|
|
12485
|
+
};
|
|
12486
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
12322
12487
|
if (!sockSdkCResult.ok) {
|
|
12323
12488
|
return sockSdkCResult;
|
|
12324
12489
|
}
|
|
12325
12490
|
const sockSdk = sockSdkCResult.data;
|
|
12326
|
-
return await utils.handleApiCall(sockSdk.getOrgFullScanMetadata(orgSlug, scanId),
|
|
12491
|
+
return await utils.handleApiCall(sockSdk.getOrgFullScanMetadata(orgSlug, scanId), {
|
|
12492
|
+
desc: 'meta data for a full scan'
|
|
12493
|
+
});
|
|
12327
12494
|
}
|
|
12328
12495
|
|
|
12329
12496
|
async function outputScanMetadata(result, scanId, outputKind) {
|
|
@@ -13190,8 +13357,15 @@ async function handleScanView(orgSlug, scanId, filePath, outputKind) {
|
|
|
13190
13357
|
await outputScanView(data, orgSlug, scanId, filePath, outputKind);
|
|
13191
13358
|
}
|
|
13192
13359
|
|
|
13193
|
-
async function streamScan(orgSlug, scanId,
|
|
13194
|
-
const
|
|
13360
|
+
async function streamScan(orgSlug, scanId, options) {
|
|
13361
|
+
const {
|
|
13362
|
+
file,
|
|
13363
|
+
sdkOptions
|
|
13364
|
+
} = {
|
|
13365
|
+
__proto__: null,
|
|
13366
|
+
...options
|
|
13367
|
+
};
|
|
13368
|
+
const sockSdkCResult = await utils.setupSdk(sdkOptions);
|
|
13195
13369
|
if (!sockSdkCResult.ok) {
|
|
13196
13370
|
return sockSdkCResult;
|
|
13197
13371
|
}
|
|
@@ -13199,7 +13373,9 @@ async function streamScan(orgSlug, scanId, file) {
|
|
|
13199
13373
|
logger.logger.info('Requesting data from API...');
|
|
13200
13374
|
|
|
13201
13375
|
// Note: this will write to stdout or target file. It's not a noop
|
|
13202
|
-
return await utils.handleApiCall(sockSdk.getOrgFullScan(orgSlug, scanId, file === '-' ? undefined : file),
|
|
13376
|
+
return await utils.handleApiCall(sockSdk.getOrgFullScan(orgSlug, scanId, file === '-' ? undefined : file), {
|
|
13377
|
+
desc: 'a scan'
|
|
13378
|
+
});
|
|
13203
13379
|
}
|
|
13204
13380
|
|
|
13205
13381
|
const {
|
|
@@ -13309,7 +13485,9 @@ async function run$3(argv, importMeta, {
|
|
|
13309
13485
|
return;
|
|
13310
13486
|
}
|
|
13311
13487
|
if (json && stream) {
|
|
13312
|
-
await streamScan(orgSlug, scanId,
|
|
13488
|
+
await streamScan(orgSlug, scanId, {
|
|
13489
|
+
file
|
|
13490
|
+
});
|
|
13313
13491
|
} else {
|
|
13314
13492
|
await handleScanView(orgSlug, scanId, file, outputKind);
|
|
13315
13493
|
}
|
|
@@ -14345,5 +14523,5 @@ void (async () => {
|
|
|
14345
14523
|
await utils.captureException(e);
|
|
14346
14524
|
}
|
|
14347
14525
|
})();
|
|
14348
|
-
//# debugId=
|
|
14526
|
+
//# debugId=8e302883-9371-47ef-9c9a-742aa1ae2a85
|
|
14349
14527
|
//# sourceMappingURL=cli.js.map
|