socket 0.14.56 → 0.14.58

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.
Files changed (37) hide show
  1. package/bin/cli.js +10 -10
  2. package/bin/npm-cli.js +1 -1
  3. package/bin/npx-cli.js +3 -1
  4. package/dist/constants.d.ts +20 -8
  5. package/dist/constants.js +58 -25
  6. package/dist/constants.js.map +1 -1
  7. package/dist/module-sync/artifact.d.ts +75 -0
  8. package/dist/module-sync/cli.js +1372 -1062
  9. package/dist/module-sync/cli.js.map +1 -1
  10. package/dist/module-sync/edge.d.ts +1 -1
  11. package/dist/module-sync/index.d.ts +5 -173
  12. package/dist/module-sync/node.d.ts +1 -1
  13. package/dist/module-sync/override-set.d.ts +37 -0
  14. package/dist/module-sync/shadow-bin.js +10 -8
  15. package/dist/module-sync/shadow-bin.js.map +1 -1
  16. package/dist/module-sync/{index.js → shadow-npm-inject.js} +1436 -1302
  17. package/dist/module-sync/shadow-npm-inject.js.map +1 -0
  18. package/dist/module-sync/{npm-paths.js → shadow-npm-paths.js} +4 -4
  19. package/dist/module-sync/shadow-npm-paths.js.map +1 -0
  20. package/dist/module-sync/socket-package-alert.d.ts +46 -0
  21. package/dist/module-sync/types.d.ts +11 -3
  22. package/dist/require/cli.js +1372 -1062
  23. package/dist/require/cli.js.map +1 -1
  24. package/dist/require/shadow-npm-inject.js +3 -0
  25. package/dist/require/shadow-npm-paths.js +3 -0
  26. package/package.json +13 -10
  27. package/dist/module-sync/index.js.map +0 -1
  28. package/dist/module-sync/npm-injection.js +0 -26
  29. package/dist/module-sync/npm-injection.js.map +0 -1
  30. package/dist/module-sync/npm-paths.js.map +0 -1
  31. package/dist/module-sync/proc-log.d.ts +0 -3
  32. package/dist/module-sync/reify.d.ts +0 -1020
  33. package/dist/require/index.js +0 -3
  34. package/dist/require/npm-injection.js +0 -3
  35. package/dist/require/npm-paths.js +0 -3
  36. /package/dist/module-sync/{npm-injection.d.ts → shadow-npm-inject.d.ts} +0 -0
  37. /package/dist/module-sync/{npm-paths.d.ts → shadow-npm-paths.d.ts} +0 -0
package/bin/cli.js CHANGED
@@ -5,36 +5,36 @@ const process = require('node:process')
5
5
 
6
6
  const constants = require('../dist/constants')
7
7
 
8
- const { CLI, DIST_TYPE, SOCKET_CLI_SENTRY_BUILD } = constants
8
+ const { DIST_TYPE, SOCKET_CLI_SENTRY_BUILD } = constants
9
9
 
10
10
  if (
11
11
  DIST_TYPE === 'require' &&
12
12
  // Lazily access constants.ENV[SOCKET_CLI_SENTRY_BUILD].
13
13
  !constants.ENV[SOCKET_CLI_SENTRY_BUILD]
14
14
  ) {
15
- // Lazily access constants.distPath.
16
- require(`${constants.distPath}/${CLI}.js`)
15
+ // Lazily access constants.distCliPath.
16
+ require(constants.distCliPath)
17
17
  } else {
18
- const path = require('node:path')
19
- const { spawn } = require('@socketsecurity/registry/lib/spawn')
20
-
21
18
  process.exitCode = 1
19
+ const { spawn } = require('@socketsecurity/registry/lib/spawn')
22
20
  spawn(
23
21
  // Lazily access constants.execPath.
24
22
  constants.execPath,
25
23
  [
24
+ // Lazily access constants.nodeHardenFlags.
25
+ ...constants.nodeHardenFlags,
26
26
  // Lazily access constants.nodeNoWarningsFlags.
27
27
  ...constants.nodeNoWarningsFlags,
28
28
  // Lazily access constants.ENV[SOCKET_CLI_SENTRY_BUILD].
29
29
  ...(constants.ENV[SOCKET_CLI_SENTRY_BUILD]
30
30
  ? [
31
31
  '--require',
32
- // Lazily access constants.instrumentWithSentryPath.
33
- constants.instrumentWithSentryPath
32
+ // Lazily access constants.distInstrumentWithSentryPath.
33
+ constants.distInstrumentWithSentryPath
34
34
  ]
35
35
  : []),
36
- // Lazily access constants.distPath.
37
- path.join(constants.distPath, `${CLI}.js`),
36
+ // Lazily access constants.distCliPath.
37
+ constants.distCliPath,
38
38
  ...process.argv.slice(2)
39
39
  ],
40
40
  {
package/bin/npm-cli.js CHANGED
@@ -2,5 +2,5 @@
2
2
  'use strict'
3
3
 
4
4
  const constants = require('../dist/constants')
5
- const shadowBin = require(`${constants.distPath}/${constants.SHADOW_BIN}.js`)
5
+ const shadowBin = require(constants.distShadowNpmBinPath)
6
6
  shadowBin(constants.NPM)
package/bin/npx-cli.js CHANGED
@@ -2,5 +2,7 @@
2
2
  'use strict'
3
3
 
4
4
  const constants = require('../dist/constants')
5
- const shadowBin = require(`${constants.distPath}/${constants.SHADOW_BIN}.js`)
5
+ const shadowBin = require(
6
+ `${constants.distPath}/${constants.SHADOW_NPM_BIN}.js`
7
+ )
6
8
  shadowBin(constants.NPX)
@@ -18,7 +18,6 @@ type ENV = Remap<RegistryEnv & Readonly<{
18
18
  SOCKET_CLI_NO_API_TOKEN: boolean;
19
19
  SOCKET_CLI_PUBLISHED_BUILD: boolean;
20
20
  SOCKET_CLI_SENTRY_BUILD: boolean;
21
- SOCKET_CLI_SHOW_BANNER: boolean;
22
21
  SOCKET_CLI_VERSION_HASH: string;
23
22
  }>>;
24
23
  type IPC = Readonly<{
@@ -30,6 +29,8 @@ declare const constants: {
30
29
  readonly CI: "CI";
31
30
  readonly [kInternalsSymbol]: registryConstants.Internals;
32
31
  readonly NODE_MODULES: "node_modules";
32
+ readonly NPM: "npm";
33
+ readonly NPX: "npx";
33
34
  readonly PACKAGE_JSON: "package.json";
34
35
  readonly SOCKET_SECURITY_SCOPE: "@socketsecurity";
35
36
  readonly kInternalsSymbol: unique symbol;
@@ -60,7 +61,6 @@ declare const constants: {
60
61
  readonly NODE_MODULES_GLOB_RECURSIVE: "**/node_modules";
61
62
  readonly NODE_WORKSPACES: "node_workspaces";
62
63
  readonly NODE_VERSION: string;
63
- readonly NPM: "npm";
64
64
  readonly OVERRIDES: "overrides";
65
65
  readonly PACKAGE_DEFAULT_SOCKET_CATEGORIES: readonly ["cleanup"];
66
66
  readonly PACKAGE_DEFAULT_NODE_RANGE: string;
@@ -117,6 +117,8 @@ declare const constants: {
117
117
  readonly isSpinning: boolean;
118
118
  error: (text?: string | undefined, ...extras: any[]) => any;
119
119
  errorAndStop: (text?: string | undefined, ...extras: any[]) => any;
120
+ fail: (text?: string | undefined, ...extras: any[]) => any;
121
+ failAndStop: (text?: string | undefined, ...extras: any[]) => any;
120
122
  getText: () => string;
121
123
  info: (text?: string | undefined, ...extras: any[]) => any;
122
124
  infoAndStop: (text?: string | undefined, ...extras: any[]) => any;
@@ -155,27 +157,34 @@ declare const constants: {
155
157
  readonly IPC: IPC;
156
158
  readonly LOCK_EXT: '.lock';
157
159
  readonly MODULE_SYNC: 'module-sync';
158
- readonly NPM_INJECTION: 'npm-injection';
159
160
  readonly NPM_REGISTRY_URL: 'https://registry.npmjs.org';
160
- readonly NPX: 'npx';
161
161
  readonly PNPM: 'pnpm';
162
162
  readonly REDACTED: '<redacted>';
163
163
  readonly REQUIRE: 'require';
164
- readonly SHADOW_BIN: 'shadow-bin';
164
+ readonly SHADOW_NPM_BIN: 'shadow-bin';
165
+ readonly SHADOW_NPM_INJECT: 'shadow-npm-inject';
166
+ readonly SHADOW_NPM_PATHS: 'shadow-npm-paths';
165
167
  readonly SOCKET: 'socket';
168
+ readonly SOCKET_CLI_BIN_NAME: 'socket';
169
+ readonly SOCKET_CLI_BIN_NAME_ALIAS: 'cli';
166
170
  readonly SOCKET_CLI_DEBUG: 'SOCKET_CLI_DEBUG';
167
171
  readonly SOCKET_CLI_FIX: 'SOCKET_CLI_FIX';
168
172
  readonly SOCKET_CLI_ISSUES_URL: 'https://github.com/SocketDev/socket-cli/issues';
173
+ readonly SOCKET_CLI_SENTRY_BIN_NAME_ALIAS: 'cli-with-sentry';
169
174
  readonly SOCKET_CLI_LEGACY_BUILD: 'SOCKET_CLI_LEGACY_BUILD';
170
175
  readonly SOCKET_CLI_LEGACY_PACKAGE_NAME: '@socketsecurity/cli';
171
176
  readonly SOCKET_CLI_NO_API_TOKEN: 'SOCKET_CLI_NO_API_TOKEN';
177
+ readonly SOCKET_CLI_NPM_BIN_NAME: 'socket-npm';
178
+ readonly SOCKET_CLI_NPX_BIN_NAME: 'socket-npx';
172
179
  readonly SOCKET_CLI_OPTIMIZE: 'SOCKET_CLI_OPTIMIZE';
173
180
  readonly SOCKET_CLI_PACKAGE_NAME: 'socket';
174
181
  readonly SOCKET_CLI_PUBLISHED_BUILD: 'SOCKET_CLI_PUBLISHED_BUILD';
175
182
  readonly SOCKET_CLI_SAFE_WRAPPER: 'SOCKET_CLI_SAFE_WRAPPER';
183
+ readonly SOCKET_CLI_SENTRY_BIN_NAME: 'socket-with-sentry';
176
184
  readonly SOCKET_CLI_SENTRY_BUILD: 'SOCKET_CLI_SENTRY_BUILD';
185
+ readonly SOCKET_CLI_SENTRY_NPM_BIN_NAME: 'socket-npm-with-sentry';
186
+ readonly SOCKET_CLI_SENTRY_NPX_BIN_NAME: 'socket-npx-with-sentry';
177
187
  readonly SOCKET_CLI_SENTRY_PACKAGE_NAME: '@socketsecurity/cli-with-sentry';
178
- readonly SOCKET_CLI_SHOW_BANNER: 'SOCKET_CLI_SHOW_BANNER';
179
188
  readonly SOCKET_CLI_VERSION_HASH: 'SOCKET_CLI_VERSION_HASH';
180
189
  readonly VLT: 'vlt';
181
190
  readonly WITH_SENTRY: 'with-sentry';
@@ -183,11 +192,14 @@ declare const constants: {
183
192
  readonly YARN_BERRY: 'yarn/berry';
184
193
  readonly YARN_CLASSIC: 'yarn/classic';
185
194
  readonly bashRcPath: string;
195
+ readonly distCliPath: string;
196
+ readonly distInstrumentWithSentryPath: string;
186
197
  readonly distPath: string;
198
+ readonly distShadowNpmBinPath: string;
199
+ readonly distShadowNpmInjectPath: string;
187
200
  readonly homePath: string;
188
- readonly instrumentWithSentryPath: string;
189
201
  readonly nmBinPath: string;
190
- readonly npmInjectionPath: string;
202
+ readonly nodeHardenFlags: string[];
191
203
  readonly rootBinPath: string;
192
204
  readonly rootDistPath: string;
193
205
  readonly rootPath: string;
package/dist/constants.js CHANGED
@@ -9,6 +9,8 @@ var env = require('@socketsecurity/registry/lib/env');
9
9
 
10
10
  const {
11
11
  NODE_MODULES,
12
+ NPM,
13
+ NPX,
12
14
  PACKAGE_JSON,
13
15
  SOCKET_SECURITY_SCOPE,
14
16
  kInternalsSymbol,
@@ -16,6 +18,7 @@ const {
16
18
  createConstantsObject
17
19
  }
18
20
  } = registryConstants;
21
+ const SOCKET = 'socket';
19
22
  const WITH_SENTRY = 'with-sentry';
20
23
  const ALERT_TYPE_CRITICAL_CVE = 'criticalCVE';
21
24
  const ALERT_TYPE_CVE = 'cve';
@@ -32,14 +35,15 @@ const DRY_RUN_LABEL = '[DryRun]';
32
35
  const DRY_RUN_BAIL_TEXT = `${DRY_RUN_LABEL}: Bailing now`;
33
36
  const LOCK_EXT = '.lock';
34
37
  const MODULE_SYNC = 'module-sync';
35
- const NPM_INJECTION = 'npm-injection';
36
38
  const NPM_REGISTRY_URL = 'https://registry.npmjs.org';
37
- const NPX = 'npx';
38
39
  const PNPM = 'pnpm';
39
40
  const REDACTED = '<redacted>';
40
41
  const REQUIRE = 'require';
41
- const SHADOW_BIN = 'shadow-bin';
42
- const SOCKET = 'socket';
42
+ const SHADOW_NPM_BIN = 'shadow-bin';
43
+ const SHADOW_NPM_INJECT = 'shadow-npm-inject';
44
+ const SHADOW_NPM_PATHS = 'shadow-npm-paths';
45
+ const SOCKET_CLI_BIN_NAME = SOCKET;
46
+ const SOCKET_CLI_BIN_NAME_ALIAS = CLI;
43
47
  const SOCKET_CLI_DEBUG = 'SOCKET_CLI_DEBUG';
44
48
  const SOCKET_CLI_FIX = 'SOCKET_CLI_FIX';
45
49
  const SOCKET_CLI_ISSUES_URL = 'https://github.com/SocketDev/socket-cli/issues';
@@ -47,12 +51,17 @@ const SOCKET_CLI_LEGACY_BUILD = 'SOCKET_CLI_LEGACY_BUILD';
47
51
  const SOCKET_CLI_LEGACY_PACKAGE_NAME = `${SOCKET_SECURITY_SCOPE}/${CLI}`;
48
52
  const SOCKET_CLI_NO_API_TOKEN = 'SOCKET_CLI_NO_API_TOKEN';
49
53
  const SOCKET_CLI_OPTIMIZE = 'SOCKET_CLI_OPTIMIZE';
54
+ const SOCKET_CLI_NPM_BIN_NAME = `${SOCKET}-${NPM}`;
55
+ const SOCKET_CLI_NPX_BIN_NAME = `${SOCKET}-${NPX}`;
50
56
  const SOCKET_CLI_PACKAGE_NAME = SOCKET;
51
57
  const SOCKET_CLI_PUBLISHED_BUILD = 'SOCKET_CLI_PUBLISHED_BUILD';
52
58
  const SOCKET_CLI_SAFE_WRAPPER = 'SOCKET_CLI_SAFE_WRAPPER';
59
+ const SOCKET_CLI_SENTRY_BIN_NAME = `${SOCKET_CLI_BIN_NAME}-${WITH_SENTRY}`;
60
+ const SOCKET_CLI_SENTRY_BIN_NAME_ALIAS = `${SOCKET_CLI_BIN_NAME_ALIAS}-${WITH_SENTRY}`;
53
61
  const SOCKET_CLI_SENTRY_BUILD = 'SOCKET_CLI_SENTRY_BUILD';
62
+ const SOCKET_CLI_SENTRY_NPM_BIN_NAME = `${SOCKET_CLI_NPM_BIN_NAME}-${WITH_SENTRY}`;
63
+ const SOCKET_CLI_SENTRY_NPX_BIN_NAME = `${SOCKET_CLI_NPX_BIN_NAME}-${WITH_SENTRY}`;
54
64
  const SOCKET_CLI_SENTRY_PACKAGE_NAME = `${SOCKET_CLI_LEGACY_PACKAGE_NAME}-${WITH_SENTRY}`;
55
- const SOCKET_CLI_SHOW_BANNER = 'SOCKET_CLI_SHOW_BANNER';
56
65
  const SOCKET_CLI_VERSION_HASH = 'SOCKET_CLI_VERSION_HASH';
57
66
  const VLT = 'vlt';
58
67
  const YARN = 'yarn';
@@ -88,29 +97,33 @@ const LAZY_ENV = () => {
88
97
  // Inlined flag set to determine if this is the Sentry build.
89
98
  // The '@rollup/plugin-replace' will replace "process.env[SOCKET_CLI_SENTRY_BUILD]".
90
99
  [SOCKET_CLI_SENTRY_BUILD]: false,
91
- // Flag set to toggle the informative ASCII art banner.
92
- [SOCKET_CLI_SHOW_BANNER]: env.envAsBoolean(env$1[SOCKET_CLI_SHOW_BANNER]),
93
100
  // Inlined flag set to determine the version hash of the build.
94
101
  // The '@rollup/plugin-replace' will replace "process.env[SOCKET_CLI_VERSION_HASH]".
95
- [SOCKET_CLI_VERSION_HASH]: "0.14.56:5a261bf:6e3b2a40:pub"
102
+ [SOCKET_CLI_VERSION_HASH]: "0.14.58:f270068:754b18e7:pub"
96
103
  });
97
104
  };
98
105
  const lazyBashRcPath = () =>
99
106
  // Lazily access constants.homePath.
100
107
  path.join(constants.homePath, '.bashrc');
108
+ const lazyDistCliPath = () =>
109
+ // Lazily access constants.distPath.
110
+ path.join(constants.distPath, 'cli.js');
111
+ const lazyDistInstrumentWithSentryPath = () =>
112
+ // Lazily access constants.rootDistPath.
113
+ path.join(constants.rootDistPath, 'instrument-with-sentry.js');
101
114
  const lazyDistPath = () =>
102
115
  // Lazily access constants.rootDistPath and constants.DIST_TYPE.
103
116
  path.join(constants.rootDistPath, constants.DIST_TYPE);
117
+ const lazyDistShadowNpmBinPath = () =>
118
+ // Lazily access constants.distPath.
119
+ path.join(constants.distPath, `${SHADOW_NPM_BIN}.js`);
120
+ const lazyDistShadowNpmInjectPath = () =>
121
+ // Lazily access constants.distPath.
122
+ path.join(constants.distPath, `${SHADOW_NPM_INJECT}.js`);
104
123
  const lazyHomePath = () => os.homedir();
105
- const lazyInstrumentWithSentryPath = () =>
106
- // Lazily access constants.rootDistPath.
107
- path.join(constants.rootDistPath, 'instrument-with-sentry.js');
108
124
  const lazyNmBinPath = () =>
109
125
  // Lazily access constants.rootPath.
110
126
  path.join(constants.rootPath, `${NODE_MODULES}/.bin`);
111
- const lazyNpmInjectionPath = () =>
112
- // Lazily access constants.distPath.
113
- path.join(constants.distPath, `${NPM_INJECTION}.js`);
114
127
  const lazyRootBinPath = () =>
115
128
  // Lazily access constants.rootPath.
116
129
  path.join(constants.rootPath, 'bin');
@@ -120,16 +133,26 @@ path.join(constants.rootPath, 'dist');
120
133
  const lazyRootPath = () =>
121
134
  // The '@rollup/plugin-replace' will replace "process.env.['VITEST']" with `false` and
122
135
  // it will be dead code eliminated by Rollup.
123
- path.resolve(fs.realpathSync.native(__dirname), '..');
136
+ path.join(fs.realpathSync.native(__dirname), '..');
124
137
  const lazyRootPkgJsonPath = () =>
125
138
  // Lazily access constants.rootPath.
126
139
  path.join(constants.rootPath, PACKAGE_JSON);
127
140
  const lazyShadowBinPath = () =>
128
141
  // Lazily access constants.rootPath.
129
- path.join(constants.rootPath, SHADOW_BIN);
142
+ path.join(constants.rootPath, SHADOW_NPM_BIN);
130
143
  const lazyZshRcPath = () =>
131
144
  // Lazily access constants.homePath.
132
145
  path.join(constants.homePath, '.zshrc');
146
+
147
+ // Harden Node security.
148
+ // https://nodejs.org/en/learn/getting-started/security-best-practices
149
+ const nodeHardenFlags =
150
+ // The '@rollup/plugin-replace' will replace "process.env[SOCKET_CLI_SENTRY_BUILD]".
151
+ ['--disable-proto', 'delete',
152
+ // TODO: We can try --frozen-intrinsics once
153
+ // https://github.com/SBoudrias/Inquirer.js/pull/1683 is addressed.
154
+ // '--frozen-intrinsics',
155
+ '--no-deprecation'];
133
156
  const constants = createConstantsObject({
134
157
  ALERT_TYPE_CRITICAL_CVE,
135
158
  ALERT_TYPE_CVE,
@@ -150,17 +173,20 @@ const constants = createConstantsObject({
150
173
  ENV: undefined,
151
174
  LOCK_EXT,
152
175
  MODULE_SYNC,
153
- NPM_INJECTION,
154
176
  NPM_REGISTRY_URL,
155
- NPX,
156
177
  PNPM,
157
178
  REDACTED,
158
179
  REQUIRE,
159
- SHADOW_BIN,
180
+ SHADOW_NPM_BIN,
181
+ SHADOW_NPM_INJECT,
182
+ SHADOW_NPM_PATHS,
160
183
  SOCKET,
184
+ SOCKET_CLI_BIN_NAME,
185
+ SOCKET_CLI_BIN_NAME_ALIAS,
161
186
  SOCKET_CLI_DEBUG,
162
187
  SOCKET_CLI_FIX,
163
188
  SOCKET_CLI_ISSUES_URL,
189
+ SOCKET_CLI_SENTRY_BIN_NAME_ALIAS,
164
190
  SOCKET_CLI_LEGACY_BUILD,
165
191
  SOCKET_CLI_LEGACY_PACKAGE_NAME,
166
192
  SOCKET_CLI_NO_API_TOKEN,
@@ -168,9 +194,11 @@ const constants = createConstantsObject({
168
194
  SOCKET_CLI_PACKAGE_NAME,
169
195
  SOCKET_CLI_PUBLISHED_BUILD,
170
196
  SOCKET_CLI_SAFE_WRAPPER,
197
+ SOCKET_CLI_SENTRY_BIN_NAME,
171
198
  SOCKET_CLI_SENTRY_BUILD,
199
+ SOCKET_CLI_SENTRY_NPM_BIN_NAME,
200
+ SOCKET_CLI_SENTRY_NPX_BIN_NAME,
172
201
  SOCKET_CLI_SENTRY_PACKAGE_NAME,
173
- SOCKET_CLI_SHOW_BANNER,
174
202
  SOCKET_CLI_VERSION_HASH,
175
203
  VLT,
176
204
  WITH_SENTRY,
@@ -178,11 +206,14 @@ const constants = createConstantsObject({
178
206
  YARN_BERRY,
179
207
  YARN_CLASSIC,
180
208
  bashRcPath: undefined,
209
+ distCliPath: undefined,
210
+ distInstrumentWithSentryPath: undefined,
181
211
  distPath: undefined,
212
+ distShadowNpmBinPath: undefined,
213
+ distShadowNpmInjectPath: undefined,
182
214
  homePath: undefined,
183
- instrumentWithSentryPath: undefined,
184
215
  nmBinPath: undefined,
185
- npmInjectionPath: undefined,
216
+ nodeHardenFlags,
186
217
  rootBinPath: undefined,
187
218
  rootDistPath: undefined,
188
219
  rootPath: undefined,
@@ -195,11 +226,13 @@ const constants = createConstantsObject({
195
226
  DIST_TYPE: LAZY_DIST_TYPE,
196
227
  ENV: LAZY_ENV,
197
228
  bashRcPath: lazyBashRcPath,
229
+ distCliPath: lazyDistCliPath,
230
+ distInstrumentWithSentryPath: lazyDistInstrumentWithSentryPath,
198
231
  distPath: lazyDistPath,
232
+ distShadowNpmBinPath: lazyDistShadowNpmBinPath,
233
+ distShadowNpmInjectPath: lazyDistShadowNpmInjectPath,
199
234
  homePath: lazyHomePath,
200
- instrumentWithSentryPath: lazyInstrumentWithSentryPath,
201
235
  nmBinPath: lazyNmBinPath,
202
- npmInjectionPath: lazyNpmInjectionPath,
203
236
  rootBinPath: lazyRootBinPath,
204
237
  rootDistPath: lazyRootDistPath,
205
238
  rootPath: lazyRootPath,
@@ -223,5 +256,5 @@ const constants = createConstantsObject({
223
256
  });
224
257
 
225
258
  module.exports = constants;
226
- //# debugId=4b4d6485-6fb3-4d36-8ca0-c57c8f9dfac5
259
+ //# debugId=1d4867f3-08af-42ad-833a-07291c2b61b5
227
260
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["import { realpathSync } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\nimport process from 'node:process'\n\nimport registryConstants from '@socketsecurity/registry/lib/constants'\nimport { envAsBoolean } from '@socketsecurity/registry/lib/env'\n\nimport type { Remap } from '@socketsecurity/registry/lib/objects'\n\nconst {\n NODE_MODULES,\n PACKAGE_JSON,\n SOCKET_SECURITY_SCOPE,\n kInternalsSymbol,\n [kInternalsSymbol as unknown as 'Symbol(kInternalsSymbol)']: {\n createConstantsObject\n }\n} = registryConstants\n\ntype RegistryEnv = typeof registryConstants.ENV\n\ntype RegistryInternals = (typeof registryConstants)['Symbol(kInternalsSymbol)']\n\ntype Sentry = any\n\ntype Internals = Remap<\n Omit<RegistryInternals, 'getIPC'> &\n Readonly<{\n getIPC: {\n (): Promise<IPC>\n <K extends keyof IPC | undefined>(\n key?: K | undefined\n ): Promise<K extends keyof IPC ? IPC[K] : IPC>\n }\n getSentry: () => Sentry\n setSentry(Sentry: Sentry): boolean\n }>\n>\n\ntype ENV = Remap<\n RegistryEnv &\n Readonly<{\n SOCKET_CLI_DEBUG: boolean\n SOCKET_CLI_LEGACY_BUILD: boolean\n SOCKET_CLI_NO_API_TOKEN: boolean\n SOCKET_CLI_PUBLISHED_BUILD: boolean\n SOCKET_CLI_SENTRY_BUILD: boolean\n SOCKET_CLI_SHOW_BANNER: boolean\n SOCKET_CLI_VERSION_HASH: string\n }>\n>\n\ntype IPC = Readonly<{\n SOCKET_CLI_FIX?: string | undefined\n SOCKET_CLI_OPTIMIZE?: boolean | undefined\n SOCKET_CLI_SAFE_WRAPPER?: number | undefined\n}>\n\ntype Constants = Remap<\n Omit<typeof registryConstants, 'Symbol(kInternalsSymbol)' | 'ENV' | 'IPC'> & {\n readonly 'Symbol(kInternalsSymbol)': Internals\n readonly ALERT_TYPE_CRITICAL_CVE: 'criticalCVE'\n readonly ALERT_TYPE_CVE: 'cve'\n readonly ALERT_TYPE_MEDIUM_CVE: 'mediumCVE'\n readonly ALERT_TYPE_MILD_CVE: 'mildCVE'\n readonly ALERT_TYPE_SOCKET_UPGRADE_AVAILABLE: 'socketUpgradeAvailable'\n readonly API_V0_URL: 'https://api.socket.dev/v0'\n readonly BATCH_PURL_ENDPOINT: 'https://api.socket.dev/v0/purl?alerts=true&compact=true'\n readonly BINARY_LOCK_EXT: '.lockb'\n readonly BUN: 'bun'\n readonly CLI: 'cli'\n readonly CVE_ALERT_PROPS_FIRST_PATCHED_VERSION_IDENTIFIER: 'firstPatchedVersionIdentifier'\n readonly CVE_ALERT_PROPS_VULNERABLE_VERSION_RANGE: 'vulnerableVersionRange'\n readonly ENV: ENV\n readonly DIST_TYPE: 'module-sync' | 'require'\n readonly DRY_RUN_LABEL: '[DryRun]'\n readonly DRY_RUN_BAIL_TEXT: '[DryRun] Bailing now'\n readonly IPC: IPC\n readonly LOCK_EXT: '.lock'\n readonly MODULE_SYNC: 'module-sync'\n readonly NPM_INJECTION: 'npm-injection'\n readonly NPM_REGISTRY_URL: 'https://registry.npmjs.org'\n readonly NPX: 'npx'\n readonly PNPM: 'pnpm'\n readonly REDACTED: '<redacted>'\n readonly REQUIRE: 'require'\n readonly SHADOW_BIN: 'shadow-bin'\n readonly SOCKET: 'socket'\n readonly SOCKET_CLI_DEBUG: 'SOCKET_CLI_DEBUG'\n readonly SOCKET_CLI_FIX: 'SOCKET_CLI_FIX'\n readonly SOCKET_CLI_ISSUES_URL: 'https://github.com/SocketDev/socket-cli/issues'\n readonly SOCKET_CLI_LEGACY_BUILD: 'SOCKET_CLI_LEGACY_BUILD'\n readonly SOCKET_CLI_LEGACY_PACKAGE_NAME: '@socketsecurity/cli'\n readonly SOCKET_CLI_NO_API_TOKEN: 'SOCKET_CLI_NO_API_TOKEN'\n readonly SOCKET_CLI_OPTIMIZE: 'SOCKET_CLI_OPTIMIZE'\n readonly SOCKET_CLI_PACKAGE_NAME: 'socket'\n readonly SOCKET_CLI_PUBLISHED_BUILD: 'SOCKET_CLI_PUBLISHED_BUILD'\n readonly SOCKET_CLI_SAFE_WRAPPER: 'SOCKET_CLI_SAFE_WRAPPER'\n readonly SOCKET_CLI_SENTRY_BUILD: 'SOCKET_CLI_SENTRY_BUILD'\n readonly SOCKET_CLI_SENTRY_PACKAGE_NAME: '@socketsecurity/cli-with-sentry'\n readonly SOCKET_CLI_SHOW_BANNER: 'SOCKET_CLI_SHOW_BANNER'\n readonly SOCKET_CLI_VERSION_HASH: 'SOCKET_CLI_VERSION_HASH'\n readonly VLT: 'vlt'\n readonly WITH_SENTRY: 'with-sentry'\n readonly YARN: 'yarn'\n readonly YARN_BERRY: 'yarn/berry'\n readonly YARN_CLASSIC: 'yarn/classic'\n readonly bashRcPath: string\n readonly distPath: string\n readonly homePath: string\n readonly instrumentWithSentryPath: string\n readonly nmBinPath: string\n readonly npmInjectionPath: string\n readonly rootBinPath: string\n readonly rootDistPath: string\n readonly rootPath: string\n readonly rootPkgJsonPath: string\n readonly shadowBinPath: string\n readonly zshRcPath: string\n }\n>\n\nconst WITH_SENTRY = 'with-sentry'\nconst ALERT_TYPE_CRITICAL_CVE = 'criticalCVE'\nconst ALERT_TYPE_CVE = 'cve'\nconst ALERT_TYPE_MEDIUM_CVE = 'mediumCVE'\nconst ALERT_TYPE_MILD_CVE = 'mildCVE'\nconst ALERT_TYPE_SOCKET_UPGRADE_AVAILABLE = 'socketUpgradeAvailable'\nconst API_V0_URL = 'https://api.socket.dev/v0'\nconst BINARY_LOCK_EXT = '.lockb'\nconst BUN = 'bun'\nconst CLI = 'cli'\nconst CVE_ALERT_PROPS_FIRST_PATCHED_VERSION_IDENTIFIER =\n 'firstPatchedVersionIdentifier'\nconst CVE_ALERT_PROPS_VULNERABLE_VERSION_RANGE = 'vulnerableVersionRange'\nconst DRY_RUN_LABEL = '[DryRun]'\nconst DRY_RUN_BAIL_TEXT = `${DRY_RUN_LABEL}: Bailing now`\nconst LOCK_EXT = '.lock'\nconst MODULE_SYNC = 'module-sync'\nconst NPM_INJECTION = 'npm-injection'\nconst NPM_REGISTRY_URL = 'https://registry.npmjs.org'\nconst NPX = 'npx'\nconst PNPM = 'pnpm'\nconst REDACTED = '<redacted>'\nconst REQUIRE = 'require'\nconst SHADOW_BIN = 'shadow-bin'\nconst SOCKET = 'socket'\nconst SOCKET_CLI_DEBUG = 'SOCKET_CLI_DEBUG'\nconst SOCKET_CLI_FIX = 'SOCKET_CLI_FIX'\nconst SOCKET_CLI_ISSUES_URL = 'https://github.com/SocketDev/socket-cli/issues'\nconst SOCKET_CLI_LEGACY_BUILD = 'SOCKET_CLI_LEGACY_BUILD'\nconst SOCKET_CLI_LEGACY_PACKAGE_NAME = `${SOCKET_SECURITY_SCOPE}/${CLI}`\nconst SOCKET_CLI_NO_API_TOKEN = 'SOCKET_CLI_NO_API_TOKEN'\nconst SOCKET_CLI_OPTIMIZE = 'SOCKET_CLI_OPTIMIZE'\nconst SOCKET_CLI_PACKAGE_NAME = SOCKET\nconst SOCKET_CLI_PUBLISHED_BUILD = 'SOCKET_CLI_PUBLISHED_BUILD'\nconst SOCKET_CLI_SAFE_WRAPPER = 'SOCKET_CLI_SAFE_WRAPPER'\nconst SOCKET_CLI_SENTRY_BUILD = 'SOCKET_CLI_SENTRY_BUILD'\nconst SOCKET_CLI_SENTRY_PACKAGE_NAME = `${SOCKET_CLI_LEGACY_PACKAGE_NAME}-${WITH_SENTRY}`\nconst SOCKET_CLI_SHOW_BANNER = 'SOCKET_CLI_SHOW_BANNER'\nconst SOCKET_CLI_VERSION_HASH = 'SOCKET_CLI_VERSION_HASH'\nconst VLT = 'vlt'\nconst YARN = 'yarn'\nconst YARN_BERRY = `${YARN}/berry`\nconst YARN_CLASSIC = `${YARN}/classic`\n\nlet _Sentry: any\n\nconst LAZY_BATCH_PURL_ENDPOINT = () => {\n const query = new URLSearchParams()\n query.append('alerts', 'true')\n query.append('compact', 'true')\n return `${API_V0_URL}/purl?${query}`\n}\n\nconst LAZY_DIST_TYPE = () =>\n registryConstants.SUPPORTS_NODE_REQUIRE_MODULE ? MODULE_SYNC : REQUIRE\n\nconst LAZY_ENV = () => {\n const { env } = process\n // We inline some environment values so that they CANNOT be influenced by user\n // provided environment variables.\n return Object.freeze({\n // Lazily access registryConstants.ENV.\n ...registryConstants.ENV,\n // Flag set to help debug Socket CLI.\n [SOCKET_CLI_DEBUG]: envAsBoolean(env[SOCKET_CLI_DEBUG]),\n // Inlined flag set to determine if this is the Legacy build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_LEGACY_BUILD]\".\n [SOCKET_CLI_LEGACY_BUILD]: process.env[SOCKET_CLI_LEGACY_BUILD],\n // Flag set to make the default API token `undefined`.\n [SOCKET_CLI_NO_API_TOKEN]: envAsBoolean(env[SOCKET_CLI_NO_API_TOKEN]),\n // Inlined flag set to determine if this is a published build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_PUBLISHED_BUILD]\".\n [SOCKET_CLI_PUBLISHED_BUILD]: process.env[SOCKET_CLI_PUBLISHED_BUILD],\n // Inlined flag set to determine if this is the Sentry build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_SENTRY_BUILD]\".\n [SOCKET_CLI_SENTRY_BUILD]: process.env[SOCKET_CLI_SENTRY_BUILD],\n // Flag set to toggle the informative ASCII art banner.\n [SOCKET_CLI_SHOW_BANNER]: envAsBoolean(env[SOCKET_CLI_SHOW_BANNER]),\n // Inlined flag set to determine the version hash of the build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_VERSION_HASH]\".\n [SOCKET_CLI_VERSION_HASH]: process.env[SOCKET_CLI_VERSION_HASH]\n })\n}\n\nconst lazyBashRcPath = () =>\n // Lazily access constants.homePath.\n path.join(constants.homePath, '.bashrc')\n\nconst lazyDistPath = () =>\n // Lazily access constants.rootDistPath and constants.DIST_TYPE.\n path.join(constants.rootDistPath, constants.DIST_TYPE)\n\nconst lazyHomePath = () => os.homedir()\n\nconst lazyInstrumentWithSentryPath = () =>\n // Lazily access constants.rootDistPath.\n path.join(constants.rootDistPath, 'instrument-with-sentry.js')\n\nconst lazyNmBinPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, `${NODE_MODULES}/.bin`)\n\nconst lazyNpmInjectionPath = () =>\n // Lazily access constants.distPath.\n path.join(constants.distPath, `${NPM_INJECTION}.js`)\n\nconst lazyRootBinPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, 'bin')\n\nconst lazyRootDistPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, 'dist')\n\nconst lazyRootPath = () =>\n // The '@rollup/plugin-replace' will replace \"process.env.['VITEST']\" with `false` and\n // it will be dead code eliminated by Rollup.\n path.resolve(\n realpathSync.native(__dirname),\n process.env['SOCKET_CLI_TEST_DIST_BUILD'] ? '../..' : '..'\n )\n\nconst lazyRootPkgJsonPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, PACKAGE_JSON)\n\nconst lazyShadowBinPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, SHADOW_BIN)\n\nconst lazyZshRcPath = () =>\n // Lazily access constants.homePath.\n path.join(constants.homePath, '.zshrc')\n\nconst constants = <Constants>createConstantsObject(\n {\n ALERT_TYPE_CRITICAL_CVE,\n ALERT_TYPE_CVE,\n ALERT_TYPE_MEDIUM_CVE,\n ALERT_TYPE_MILD_CVE,\n ALERT_TYPE_SOCKET_UPGRADE_AVAILABLE,\n API_V0_URL,\n // Lazily defined values are initialized as `undefined` to keep their key order.\n BATCH_PURL_ENDPOINT: undefined,\n BINARY_LOCK_EXT,\n BUN,\n CLI,\n CVE_ALERT_PROPS_FIRST_PATCHED_VERSION_IDENTIFIER,\n CVE_ALERT_PROPS_VULNERABLE_VERSION_RANGE,\n DIST_TYPE: undefined,\n DRY_RUN_LABEL,\n DRY_RUN_BAIL_TEXT,\n ENV: undefined,\n LOCK_EXT,\n MODULE_SYNC,\n NPM_INJECTION,\n NPM_REGISTRY_URL,\n NPX,\n PNPM,\n REDACTED,\n REQUIRE,\n SHADOW_BIN,\n SOCKET,\n SOCKET_CLI_DEBUG,\n SOCKET_CLI_FIX,\n SOCKET_CLI_ISSUES_URL,\n SOCKET_CLI_LEGACY_BUILD,\n SOCKET_CLI_LEGACY_PACKAGE_NAME,\n SOCKET_CLI_NO_API_TOKEN,\n SOCKET_CLI_OPTIMIZE,\n SOCKET_CLI_PACKAGE_NAME,\n SOCKET_CLI_PUBLISHED_BUILD,\n SOCKET_CLI_SAFE_WRAPPER,\n SOCKET_CLI_SENTRY_BUILD,\n SOCKET_CLI_SENTRY_PACKAGE_NAME,\n SOCKET_CLI_SHOW_BANNER,\n SOCKET_CLI_VERSION_HASH,\n VLT,\n WITH_SENTRY,\n YARN,\n YARN_BERRY,\n YARN_CLASSIC,\n bashRcPath: undefined,\n distPath: undefined,\n homePath: undefined,\n instrumentWithSentryPath: undefined,\n nmBinPath: undefined,\n npmInjectionPath: undefined,\n rootBinPath: undefined,\n rootDistPath: undefined,\n rootPath: undefined,\n rootPkgJsonPath: undefined,\n shadowBinPath: undefined,\n zshRcPath: undefined\n },\n {\n getters: {\n BATCH_PURL_ENDPOINT: LAZY_BATCH_PURL_ENDPOINT,\n DIST_TYPE: LAZY_DIST_TYPE,\n ENV: LAZY_ENV,\n bashRcPath: lazyBashRcPath,\n distPath: lazyDistPath,\n homePath: lazyHomePath,\n instrumentWithSentryPath: lazyInstrumentWithSentryPath,\n nmBinPath: lazyNmBinPath,\n npmInjectionPath: lazyNpmInjectionPath,\n rootBinPath: lazyRootBinPath,\n rootDistPath: lazyRootDistPath,\n rootPath: lazyRootPath,\n rootPkgJsonPath: lazyRootPkgJsonPath,\n shadowBinPath: lazyShadowBinPath,\n zshRcPath: lazyZshRcPath\n },\n internals: {\n getSentry() {\n return _Sentry\n },\n setSentry(Sentry: Sentry): boolean {\n if (_Sentry === undefined) {\n _Sentry = Sentry\n return true\n }\n return false\n }\n },\n mixin: registryConstants\n }\n)\n\nexport default constants\n"],"names":["createConstantsObject","query","env","path","constants","BATCH_PURL_ENDPOINT","DIST_TYPE","ENV","bashRcPath","distPath","homePath","instrumentWithSentryPath","nmBinPath","npmInjectionPath","rootBinPath","rootDistPath","rootPath","rootPkgJsonPath","shadowBinPath","zshRcPath","getters","internals","getSentry","_Sentry","mixin"],"mappings":";;;;;;;;;AAUA;;;;;AAKE;AACEA;AACF;AACF;AAyGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACE;AACAC;AACAA;AACA;AACF;AAEA;AAGA;;AACUC;AAAI;AACZ;AACA;;AAEE;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACF;AACF;AAEA;AACE;AACAC;AAEF;AACE;AACAA;AAEF;AAEA;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACA;AACAA;AAKF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEIC;;;;;;;AAQF;AACAC;;;;;;AAMAC;;;AAGAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACF;AAEEC;AACEf;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;;AAEFE;AACEC;AACE;;;;AAIEC;AACA;AACF;AACA;AACF;;AAEFC;AACF;;","debugId":"4b4d6485-6fb3-4d36-8ca0-c57c8f9dfac5"}
1
+ {"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["import { realpathSync } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\nimport process from 'node:process'\n\nimport registryConstants from '@socketsecurity/registry/lib/constants'\nimport { envAsBoolean } from '@socketsecurity/registry/lib/env'\n\nimport type { Remap } from '@socketsecurity/registry/lib/objects'\n\nconst {\n NODE_MODULES,\n NPM,\n NPX,\n PACKAGE_JSON,\n SOCKET_SECURITY_SCOPE,\n kInternalsSymbol,\n [kInternalsSymbol as unknown as 'Symbol(kInternalsSymbol)']: {\n createConstantsObject\n }\n} = registryConstants\n\ntype RegistryEnv = typeof registryConstants.ENV\n\ntype RegistryInternals = (typeof registryConstants)['Symbol(kInternalsSymbol)']\n\ntype Sentry = any\n\ntype Internals = Remap<\n Omit<RegistryInternals, 'getIPC'> &\n Readonly<{\n getIPC: {\n (): Promise<IPC>\n <K extends keyof IPC | undefined>(\n key?: K | undefined\n ): Promise<K extends keyof IPC ? IPC[K] : IPC>\n }\n getSentry: () => Sentry\n setSentry(Sentry: Sentry): boolean\n }>\n>\n\ntype ENV = Remap<\n RegistryEnv &\n Readonly<{\n SOCKET_CLI_DEBUG: boolean\n SOCKET_CLI_LEGACY_BUILD: boolean\n SOCKET_CLI_NO_API_TOKEN: boolean\n SOCKET_CLI_PUBLISHED_BUILD: boolean\n SOCKET_CLI_SENTRY_BUILD: boolean\n SOCKET_CLI_VERSION_HASH: string\n }>\n>\n\ntype IPC = Readonly<{\n SOCKET_CLI_FIX?: string | undefined\n SOCKET_CLI_OPTIMIZE?: boolean | undefined\n SOCKET_CLI_SAFE_WRAPPER?: number | undefined\n}>\n\ntype Constants = Remap<\n Omit<typeof registryConstants, 'Symbol(kInternalsSymbol)' | 'ENV' | 'IPC'> & {\n readonly 'Symbol(kInternalsSymbol)': Internals\n readonly ALERT_TYPE_CRITICAL_CVE: 'criticalCVE'\n readonly ALERT_TYPE_CVE: 'cve'\n readonly ALERT_TYPE_MEDIUM_CVE: 'mediumCVE'\n readonly ALERT_TYPE_MILD_CVE: 'mildCVE'\n readonly ALERT_TYPE_SOCKET_UPGRADE_AVAILABLE: 'socketUpgradeAvailable'\n readonly API_V0_URL: 'https://api.socket.dev/v0'\n readonly BATCH_PURL_ENDPOINT: 'https://api.socket.dev/v0/purl?alerts=true&compact=true'\n readonly BINARY_LOCK_EXT: '.lockb'\n readonly BUN: 'bun'\n readonly CLI: 'cli'\n readonly CVE_ALERT_PROPS_FIRST_PATCHED_VERSION_IDENTIFIER: 'firstPatchedVersionIdentifier'\n readonly CVE_ALERT_PROPS_VULNERABLE_VERSION_RANGE: 'vulnerableVersionRange'\n readonly ENV: ENV\n readonly DIST_TYPE: 'module-sync' | 'require'\n readonly DRY_RUN_LABEL: '[DryRun]'\n readonly DRY_RUN_BAIL_TEXT: '[DryRun] Bailing now'\n readonly IPC: IPC\n readonly LOCK_EXT: '.lock'\n readonly MODULE_SYNC: 'module-sync'\n readonly NPM_REGISTRY_URL: 'https://registry.npmjs.org'\n readonly PNPM: 'pnpm'\n readonly REDACTED: '<redacted>'\n readonly REQUIRE: 'require'\n readonly SHADOW_NPM_BIN: 'shadow-bin'\n readonly SHADOW_NPM_INJECT: 'shadow-npm-inject'\n readonly SHADOW_NPM_PATHS: 'shadow-npm-paths'\n readonly SOCKET: 'socket'\n readonly SOCKET_CLI_BIN_NAME: 'socket'\n readonly SOCKET_CLI_BIN_NAME_ALIAS: 'cli'\n readonly SOCKET_CLI_DEBUG: 'SOCKET_CLI_DEBUG'\n readonly SOCKET_CLI_FIX: 'SOCKET_CLI_FIX'\n readonly SOCKET_CLI_ISSUES_URL: 'https://github.com/SocketDev/socket-cli/issues'\n readonly SOCKET_CLI_SENTRY_BIN_NAME_ALIAS: 'cli-with-sentry'\n readonly SOCKET_CLI_LEGACY_BUILD: 'SOCKET_CLI_LEGACY_BUILD'\n readonly SOCKET_CLI_LEGACY_PACKAGE_NAME: '@socketsecurity/cli'\n readonly SOCKET_CLI_NO_API_TOKEN: 'SOCKET_CLI_NO_API_TOKEN'\n readonly SOCKET_CLI_NPM_BIN_NAME: 'socket-npm'\n readonly SOCKET_CLI_NPX_BIN_NAME: 'socket-npx'\n readonly SOCKET_CLI_OPTIMIZE: 'SOCKET_CLI_OPTIMIZE'\n readonly SOCKET_CLI_PACKAGE_NAME: 'socket'\n readonly SOCKET_CLI_PUBLISHED_BUILD: 'SOCKET_CLI_PUBLISHED_BUILD'\n readonly SOCKET_CLI_SAFE_WRAPPER: 'SOCKET_CLI_SAFE_WRAPPER'\n readonly SOCKET_CLI_SENTRY_BIN_NAME: 'socket-with-sentry'\n readonly SOCKET_CLI_SENTRY_BUILD: 'SOCKET_CLI_SENTRY_BUILD'\n readonly SOCKET_CLI_SENTRY_NPM_BIN_NAME: 'socket-npm-with-sentry'\n readonly SOCKET_CLI_SENTRY_NPX_BIN_NAME: 'socket-npx-with-sentry'\n readonly SOCKET_CLI_SENTRY_PACKAGE_NAME: '@socketsecurity/cli-with-sentry'\n readonly SOCKET_CLI_VERSION_HASH: 'SOCKET_CLI_VERSION_HASH'\n readonly VLT: 'vlt'\n readonly WITH_SENTRY: 'with-sentry'\n readonly YARN: 'yarn'\n readonly YARN_BERRY: 'yarn/berry'\n readonly YARN_CLASSIC: 'yarn/classic'\n readonly bashRcPath: string\n readonly distCliPath: string\n readonly distInstrumentWithSentryPath: string\n readonly distPath: string\n readonly distShadowNpmBinPath: string\n readonly distShadowNpmInjectPath: string\n readonly homePath: string\n readonly nmBinPath: string\n readonly nodeHardenFlags: string[]\n readonly rootBinPath: string\n readonly rootDistPath: string\n readonly rootPath: string\n readonly rootPkgJsonPath: string\n readonly shadowBinPath: string\n readonly zshRcPath: string\n }\n>\n\nconst SOCKET = 'socket'\nconst WITH_SENTRY = 'with-sentry'\n\nconst ALERT_TYPE_CRITICAL_CVE = 'criticalCVE'\nconst ALERT_TYPE_CVE = 'cve'\nconst ALERT_TYPE_MEDIUM_CVE = 'mediumCVE'\nconst ALERT_TYPE_MILD_CVE = 'mildCVE'\nconst ALERT_TYPE_SOCKET_UPGRADE_AVAILABLE = 'socketUpgradeAvailable'\nconst API_V0_URL = 'https://api.socket.dev/v0'\nconst BINARY_LOCK_EXT = '.lockb'\nconst BUN = 'bun'\nconst CLI = 'cli'\nconst CVE_ALERT_PROPS_FIRST_PATCHED_VERSION_IDENTIFIER =\n 'firstPatchedVersionIdentifier'\nconst CVE_ALERT_PROPS_VULNERABLE_VERSION_RANGE = 'vulnerableVersionRange'\nconst DRY_RUN_LABEL = '[DryRun]'\nconst DRY_RUN_BAIL_TEXT = `${DRY_RUN_LABEL}: Bailing now`\nconst LOCK_EXT = '.lock'\nconst MODULE_SYNC = 'module-sync'\nconst NPM_REGISTRY_URL = 'https://registry.npmjs.org'\nconst PNPM = 'pnpm'\nconst REDACTED = '<redacted>'\nconst REQUIRE = 'require'\nconst SHADOW_NPM_BIN = 'shadow-bin'\nconst SHADOW_NPM_INJECT = 'shadow-npm-inject'\nconst SHADOW_NPM_PATHS = 'shadow-npm-paths'\nconst SOCKET_CLI_BIN_NAME = SOCKET\nconst SOCKET_CLI_BIN_NAME_ALIAS = CLI\nconst SOCKET_CLI_DEBUG = 'SOCKET_CLI_DEBUG'\nconst SOCKET_CLI_FIX = 'SOCKET_CLI_FIX'\nconst SOCKET_CLI_ISSUES_URL = 'https://github.com/SocketDev/socket-cli/issues'\nconst SOCKET_CLI_LEGACY_BUILD = 'SOCKET_CLI_LEGACY_BUILD'\nconst SOCKET_CLI_LEGACY_PACKAGE_NAME = `${SOCKET_SECURITY_SCOPE}/${CLI}`\nconst SOCKET_CLI_NO_API_TOKEN = 'SOCKET_CLI_NO_API_TOKEN'\nconst SOCKET_CLI_OPTIMIZE = 'SOCKET_CLI_OPTIMIZE'\nconst SOCKET_CLI_NPM_BIN_NAME = `${SOCKET}-${NPM}`\nconst SOCKET_CLI_NPX_BIN_NAME = `${SOCKET}-${NPX}`\nconst SOCKET_CLI_PACKAGE_NAME = SOCKET\nconst SOCKET_CLI_PUBLISHED_BUILD = 'SOCKET_CLI_PUBLISHED_BUILD'\nconst SOCKET_CLI_SAFE_WRAPPER = 'SOCKET_CLI_SAFE_WRAPPER'\nconst SOCKET_CLI_SENTRY_BIN_NAME = `${SOCKET_CLI_BIN_NAME}-${WITH_SENTRY}`\nconst SOCKET_CLI_SENTRY_BIN_NAME_ALIAS = `${SOCKET_CLI_BIN_NAME_ALIAS}-${WITH_SENTRY}`\nconst SOCKET_CLI_SENTRY_BUILD = 'SOCKET_CLI_SENTRY_BUILD'\nconst SOCKET_CLI_SENTRY_NPM_BIN_NAME = `${SOCKET_CLI_NPM_BIN_NAME}-${WITH_SENTRY}`\nconst SOCKET_CLI_SENTRY_NPX_BIN_NAME = `${SOCKET_CLI_NPX_BIN_NAME}-${WITH_SENTRY}`\nconst SOCKET_CLI_SENTRY_PACKAGE_NAME = `${SOCKET_CLI_LEGACY_PACKAGE_NAME}-${WITH_SENTRY}`\nconst SOCKET_CLI_VERSION_HASH = 'SOCKET_CLI_VERSION_HASH'\nconst VLT = 'vlt'\nconst YARN = 'yarn'\nconst YARN_BERRY = `${YARN}/berry`\nconst YARN_CLASSIC = `${YARN}/classic`\n\nlet _Sentry: any\n\nconst LAZY_BATCH_PURL_ENDPOINT = () => {\n const query = new URLSearchParams()\n query.append('alerts', 'true')\n query.append('compact', 'true')\n return `${API_V0_URL}/purl?${query}`\n}\n\nconst LAZY_DIST_TYPE = () =>\n registryConstants.SUPPORTS_NODE_REQUIRE_MODULE ? MODULE_SYNC : REQUIRE\n\nconst LAZY_ENV = () => {\n const { env } = process\n // We inline some environment values so that they CANNOT be influenced by user\n // provided environment variables.\n return Object.freeze({\n // Lazily access registryConstants.ENV.\n ...registryConstants.ENV,\n // Flag set to help debug Socket CLI.\n [SOCKET_CLI_DEBUG]: envAsBoolean(env[SOCKET_CLI_DEBUG]),\n // Inlined flag set to determine if this is the Legacy build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_LEGACY_BUILD]\".\n [SOCKET_CLI_LEGACY_BUILD]: process.env[SOCKET_CLI_LEGACY_BUILD],\n // Flag set to make the default API token `undefined`.\n [SOCKET_CLI_NO_API_TOKEN]: envAsBoolean(env[SOCKET_CLI_NO_API_TOKEN]),\n // Inlined flag set to determine if this is a published build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_PUBLISHED_BUILD]\".\n [SOCKET_CLI_PUBLISHED_BUILD]: process.env[SOCKET_CLI_PUBLISHED_BUILD],\n // Inlined flag set to determine if this is the Sentry build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_SENTRY_BUILD]\".\n [SOCKET_CLI_SENTRY_BUILD]: process.env[SOCKET_CLI_SENTRY_BUILD],\n // Inlined flag set to determine the version hash of the build.\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_VERSION_HASH]\".\n [SOCKET_CLI_VERSION_HASH]: process.env[SOCKET_CLI_VERSION_HASH]\n })\n}\n\nconst lazyBashRcPath = () =>\n // Lazily access constants.homePath.\n path.join(constants.homePath, '.bashrc')\n\nconst lazyDistCliPath = () =>\n // Lazily access constants.distPath.\n path.join(constants.distPath, 'cli.js')\n\nconst lazyDistInstrumentWithSentryPath = () =>\n // Lazily access constants.rootDistPath.\n path.join(constants.rootDistPath, 'instrument-with-sentry.js')\n\nconst lazyDistPath = () =>\n // Lazily access constants.rootDistPath and constants.DIST_TYPE.\n path.join(constants.rootDistPath, constants.DIST_TYPE)\n\nconst lazyDistShadowNpmBinPath = () =>\n // Lazily access constants.distPath.\n path.join(constants.distPath, `${SHADOW_NPM_BIN}.js`)\n\nconst lazyDistShadowNpmInjectPath = () =>\n // Lazily access constants.distPath.\n path.join(constants.distPath, `${SHADOW_NPM_INJECT}.js`)\n\nconst lazyHomePath = () => os.homedir()\n\nconst lazyNmBinPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, `${NODE_MODULES}/.bin`)\n\nconst lazyRootBinPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, 'bin')\n\nconst lazyRootDistPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, 'dist')\n\nconst lazyRootPath = () =>\n // The '@rollup/plugin-replace' will replace \"process.env.['VITEST']\" with `false` and\n // it will be dead code eliminated by Rollup.\n path.join(\n realpathSync.native(__dirname),\n process.env['SOCKET_CLI_TEST_DIST_BUILD'] ? '../..' : '..'\n )\n\nconst lazyRootPkgJsonPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, PACKAGE_JSON)\n\nconst lazyShadowBinPath = () =>\n // Lazily access constants.rootPath.\n path.join(constants.rootPath, SHADOW_NPM_BIN)\n\nconst lazyZshRcPath = () =>\n // Lazily access constants.homePath.\n path.join(constants.homePath, '.zshrc')\n\n// Harden Node security.\n// https://nodejs.org/en/learn/getting-started/security-best-practices\nconst nodeHardenFlags: string[] =\n // The '@rollup/plugin-replace' will replace \"process.env[SOCKET_CLI_SENTRY_BUILD]\".\n process.env[SOCKET_CLI_SENTRY_BUILD]\n ? []\n : [\n '--disable-proto',\n 'delete',\n // TODO: We can try --frozen-intrinsics once\n // https://github.com/SBoudrias/Inquirer.js/pull/1683 is addressed.\n // '--frozen-intrinsics',\n '--no-deprecation'\n ]\n\nconst constants = createConstantsObject(\n {\n ALERT_TYPE_CRITICAL_CVE,\n ALERT_TYPE_CVE,\n ALERT_TYPE_MEDIUM_CVE,\n ALERT_TYPE_MILD_CVE,\n ALERT_TYPE_SOCKET_UPGRADE_AVAILABLE,\n API_V0_URL,\n // Lazily defined values are initialized as `undefined` to keep their key order.\n BATCH_PURL_ENDPOINT: undefined,\n BINARY_LOCK_EXT,\n BUN,\n CLI,\n CVE_ALERT_PROPS_FIRST_PATCHED_VERSION_IDENTIFIER,\n CVE_ALERT_PROPS_VULNERABLE_VERSION_RANGE,\n DIST_TYPE: undefined,\n DRY_RUN_LABEL,\n DRY_RUN_BAIL_TEXT,\n ENV: undefined,\n LOCK_EXT,\n MODULE_SYNC,\n NPM_REGISTRY_URL,\n PNPM,\n REDACTED,\n REQUIRE,\n SHADOW_NPM_BIN,\n SHADOW_NPM_INJECT,\n SHADOW_NPM_PATHS,\n SOCKET,\n SOCKET_CLI_BIN_NAME,\n SOCKET_CLI_BIN_NAME_ALIAS,\n SOCKET_CLI_DEBUG,\n SOCKET_CLI_FIX,\n SOCKET_CLI_ISSUES_URL,\n SOCKET_CLI_SENTRY_BIN_NAME_ALIAS,\n SOCKET_CLI_LEGACY_BUILD,\n SOCKET_CLI_LEGACY_PACKAGE_NAME,\n SOCKET_CLI_NO_API_TOKEN,\n SOCKET_CLI_OPTIMIZE,\n SOCKET_CLI_PACKAGE_NAME,\n SOCKET_CLI_PUBLISHED_BUILD,\n SOCKET_CLI_SAFE_WRAPPER,\n SOCKET_CLI_SENTRY_BIN_NAME,\n SOCKET_CLI_SENTRY_BUILD,\n SOCKET_CLI_SENTRY_NPM_BIN_NAME,\n SOCKET_CLI_SENTRY_NPX_BIN_NAME,\n SOCKET_CLI_SENTRY_PACKAGE_NAME,\n SOCKET_CLI_VERSION_HASH,\n VLT,\n WITH_SENTRY,\n YARN,\n YARN_BERRY,\n YARN_CLASSIC,\n bashRcPath: undefined,\n distCliPath: undefined,\n distInstrumentWithSentryPath: undefined,\n distPath: undefined,\n distShadowNpmBinPath: undefined,\n distShadowNpmInjectPath: undefined,\n homePath: undefined,\n nmBinPath: undefined,\n nodeHardenFlags,\n rootBinPath: undefined,\n rootDistPath: undefined,\n rootPath: undefined,\n rootPkgJsonPath: undefined,\n shadowBinPath: undefined,\n zshRcPath: undefined\n },\n {\n getters: {\n BATCH_PURL_ENDPOINT: LAZY_BATCH_PURL_ENDPOINT,\n DIST_TYPE: LAZY_DIST_TYPE,\n ENV: LAZY_ENV,\n bashRcPath: lazyBashRcPath,\n distCliPath: lazyDistCliPath,\n distInstrumentWithSentryPath: lazyDistInstrumentWithSentryPath,\n distPath: lazyDistPath,\n distShadowNpmBinPath: lazyDistShadowNpmBinPath,\n distShadowNpmInjectPath: lazyDistShadowNpmInjectPath,\n homePath: lazyHomePath,\n nmBinPath: lazyNmBinPath,\n rootBinPath: lazyRootBinPath,\n rootDistPath: lazyRootDistPath,\n rootPath: lazyRootPath,\n rootPkgJsonPath: lazyRootPkgJsonPath,\n shadowBinPath: lazyShadowBinPath,\n zshRcPath: lazyZshRcPath\n },\n internals: {\n getSentry() {\n return _Sentry\n },\n setSentry(Sentry: Sentry): boolean {\n if (_Sentry === undefined) {\n _Sentry = Sentry\n return true\n }\n return false\n }\n },\n mixin: registryConstants\n }\n) as Constants\n\nexport default constants\n"],"names":["createConstantsObject","query","env","path","constants","BATCH_PURL_ENDPOINT","DIST_TYPE","ENV","bashRcPath","distCliPath","distInstrumentWithSentryPath","distPath","distShadowNpmBinPath","distShadowNpmInjectPath","homePath","nmBinPath","rootBinPath","rootDistPath","rootPath","rootPkgJsonPath","shadowBinPath","zshRcPath","getters","internals","getSentry","_Sentry","mixin"],"mappings":";;;;;;;;;AAUA;;;;;;;AAOE;AACEA;AACF;AACF;AAkHA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACE;AACAC;AACAA;AACA;AACF;AAEA;AAGA;;AACUC;AAAI;AACZ;AACA;;AAEE;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;AACF;AAEA;AACE;AACAC;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AAEA;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACA;AACAA;AAKF;AACE;AACAA;AAEF;AACE;AACAA;AAEF;AACE;AACAA;;AAEF;AACA;AACA;AACE;AAGI;AAGE;AACA;AACA;AACA;AAGFC;;;;;;;AAQF;AACAC;;;;;;AAMAC;;;AAGAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;;AAEAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACF;AAEEC;AACEjB;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;;AAEFE;AACEC;AACE;;;;AAIEC;AACA;AACF;AACA;AACF;;AAEFC;AACF;;","debugId":"1d4867f3-08af-42ad-833a-07291c2b61b5"}
@@ -0,0 +1,75 @@
1
+ import { Remap } from '@socketsecurity/registry/lib/objects';
2
+ type CveAlertType = 'cve' | 'mediumCVE' | 'mildCVE' | 'criticalCVE';
3
+ type SocketArtifactAlert = {
4
+ key: string;
5
+ type: string;
6
+ severity: string;
7
+ category: string;
8
+ action?: string | undefined;
9
+ actionPolicyIndex?: number | undefined;
10
+ file?: string | undefined;
11
+ props?: any | undefined;
12
+ start?: number | undefined;
13
+ end?: number | undefined;
14
+ };
15
+ type SocketArtifact = {
16
+ type: string;
17
+ name: string;
18
+ namespace?: string | undefined;
19
+ version?: string | undefined;
20
+ subpath?: string | undefined;
21
+ release?: string | undefined;
22
+ id?: string | undefined;
23
+ author?: string[];
24
+ license?: string | undefined;
25
+ licenseDetails?: Array<{
26
+ spdxDisj: string;
27
+ provenance: string;
28
+ filepath: string;
29
+ match_strength: number;
30
+ }>;
31
+ licenseAttrib?: Array<{
32
+ attribText: string;
33
+ attribData: Array<{
34
+ purl: string;
35
+ foundInFilepath: string;
36
+ spdxExpr: string;
37
+ foundAuthors: string[];
38
+ }>;
39
+ }>;
40
+ score?: {
41
+ supplyChain: number;
42
+ quality: number;
43
+ maintenance: number;
44
+ vulnerability: number;
45
+ license: number;
46
+ overall: number;
47
+ };
48
+ alerts?: SocketArtifactAlert[];
49
+ size?: number | undefined;
50
+ batchIndex?: number | undefined;
51
+ };
52
+ type CompactSocketArtifactAlert = Remap<Omit<SocketArtifactAlert, 'action' | 'actionPolicyIndex' | 'category' | 'end' | 'file' | 'start'>>;
53
+ type CompactSocketArtifact = Remap<Omit<SocketArtifact, 'alerts' | 'batchIndex' | 'size'> & {
54
+ alerts: CompactSocketArtifactAlert[];
55
+ }>;
56
+ type ArtifactAlertCve = Remap<Omit<CompactSocketArtifactAlert, 'type'> & {
57
+ type: CveAlertType;
58
+ }>;
59
+ type ArtifactAlertCveFixable = Remap<Omit<CompactSocketArtifactAlert, 'props'> & {
60
+ type: CveAlertType;
61
+ props: {
62
+ firstPatchedVersionIdentifier: string;
63
+ vulnerableVersionRange: string;
64
+ [key: string]: any;
65
+ };
66
+ }>;
67
+ type ArtifactAlertUpgrade = Remap<Omit<CompactSocketArtifactAlert, 'type'> & {
68
+ type: 'socketUpgradeAvailable';
69
+ }>;
70
+ declare function batchScan(pkgIds: string[], concurrencyLimit?: number): AsyncGenerator<CompactSocketArtifact>;
71
+ declare function isArtifactAlertCve(alert: CompactSocketArtifactAlert): alert is ArtifactAlertCve;
72
+ declare function isArtifactAlertCveFixable(alert: CompactSocketArtifactAlert): alert is ArtifactAlertCveFixable;
73
+ declare function isArtifactAlertUpgrade(alert: CompactSocketArtifactAlert): alert is ArtifactAlertUpgrade;
74
+ declare function isArtifactAlertFixable(alert: CompactSocketArtifactAlert): alert is ArtifactAlertCveFixable | ArtifactAlertUpgrade;
75
+ export { CveAlertType, SocketArtifactAlert, SocketArtifact, CompactSocketArtifactAlert, CompactSocketArtifact, ArtifactAlertCve, ArtifactAlertCveFixable, ArtifactAlertUpgrade, batchScan, isArtifactAlertCve, isArtifactAlertCveFixable, isArtifactAlertUpgrade, isArtifactAlertFixable };