@socketsecurity/cli-with-sentry 1.0.4 → 1.0.5

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 (112) hide show
  1. package/dist/constants.js +3 -3
  2. package/dist/constants.js.map +1 -1
  3. package/dist/vendor.js +3 -3
  4. package/external/node-gyp/.release-please-manifest.json +3 -0
  5. package/external/node-gyp/CHANGELOG.md +1053 -0
  6. package/external/node-gyp/CODE_OF_CONDUCT.md +4 -0
  7. package/external/node-gyp/CONTRIBUTING.md +34 -0
  8. package/external/node-gyp/LICENSE +24 -0
  9. package/external/node-gyp/README.md +273 -0
  10. package/external/node-gyp/SECURITY.md +2 -0
  11. package/external/node-gyp/addon.gypi +204 -0
  12. package/external/node-gyp/bin/node-gyp.js +137 -0
  13. package/external/node-gyp/eslint.config.js +3 -0
  14. package/external/node-gyp/gyp/.release-please-manifest.json +3 -0
  15. package/external/node-gyp/gyp/LICENSE +28 -0
  16. package/external/node-gyp/gyp/data/ninja/build.ninja +4 -0
  17. package/external/node-gyp/gyp/data/win/large-pdb-shim.cc +12 -0
  18. package/external/node-gyp/gyp/docs/GypVsCMake.md +116 -0
  19. package/external/node-gyp/gyp/docs/Hacking.md +46 -0
  20. package/external/node-gyp/gyp/docs/InputFormatReference.md +1083 -0
  21. package/external/node-gyp/gyp/docs/LanguageSpecification.md +430 -0
  22. package/external/node-gyp/gyp/docs/README.md +27 -0
  23. package/external/node-gyp/gyp/docs/Testing.md +450 -0
  24. package/external/node-gyp/gyp/docs/UserDocumentation.md +965 -0
  25. package/external/node-gyp/gyp/gyp +8 -0
  26. package/external/node-gyp/gyp/gyp.bat +5 -0
  27. package/external/node-gyp/gyp/gyp_main.py +45 -0
  28. package/external/node-gyp/gyp/pylib/gyp/MSVSNew.py +365 -0
  29. package/external/node-gyp/gyp/pylib/gyp/MSVSProject.py +206 -0
  30. package/external/node-gyp/gyp/pylib/gyp/MSVSSettings.py +1272 -0
  31. package/external/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +1547 -0
  32. package/external/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +59 -0
  33. package/external/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +152 -0
  34. package/external/node-gyp/gyp/pylib/gyp/MSVSUtil.py +270 -0
  35. package/external/node-gyp/gyp/pylib/gyp/MSVSVersion.py +574 -0
  36. package/external/node-gyp/gyp/pylib/gyp/__init__.py +704 -0
  37. package/external/node-gyp/gyp/pylib/gyp/common.py +709 -0
  38. package/external/node-gyp/gyp/pylib/gyp/common_test.py +173 -0
  39. package/external/node-gyp/gyp/pylib/gyp/easy_xml.py +169 -0
  40. package/external/node-gyp/gyp/pylib/gyp/easy_xml_test.py +113 -0
  41. package/external/node-gyp/gyp/pylib/gyp/flock_tool.py +55 -0
  42. package/external/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  43. package/external/node-gyp/gyp/pylib/gyp/generator/analyzer.py +805 -0
  44. package/external/node-gyp/gyp/pylib/gyp/generator/android.py +1172 -0
  45. package/external/node-gyp/gyp/pylib/gyp/generator/cmake.py +1319 -0
  46. package/external/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +128 -0
  47. package/external/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +104 -0
  48. package/external/node-gyp/gyp/pylib/gyp/generator/eclipse.py +462 -0
  49. package/external/node-gyp/gyp/pylib/gyp/generator/gypd.py +89 -0
  50. package/external/node-gyp/gyp/pylib/gyp/generator/gypsh.py +56 -0
  51. package/external/node-gyp/gyp/pylib/gyp/generator/make.py +2745 -0
  52. package/external/node-gyp/gyp/pylib/gyp/generator/msvs.py +3976 -0
  53. package/external/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +44 -0
  54. package/external/node-gyp/gyp/pylib/gyp/generator/ninja.py +2965 -0
  55. package/external/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +67 -0
  56. package/external/node-gyp/gyp/pylib/gyp/generator/xcode.py +1391 -0
  57. package/external/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +26 -0
  58. package/external/node-gyp/gyp/pylib/gyp/input.py +3112 -0
  59. package/external/node-gyp/gyp/pylib/gyp/input_test.py +99 -0
  60. package/external/node-gyp/gyp/pylib/gyp/mac_tool.py +767 -0
  61. package/external/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1260 -0
  62. package/external/node-gyp/gyp/pylib/gyp/ninja_syntax.py +174 -0
  63. package/external/node-gyp/gyp/pylib/gyp/simple_copy.py +61 -0
  64. package/external/node-gyp/gyp/pylib/gyp/win_tool.py +373 -0
  65. package/external/node-gyp/gyp/pylib/gyp/xcode_emulation.py +1939 -0
  66. package/external/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +54 -0
  67. package/external/node-gyp/gyp/pylib/gyp/xcode_ninja.py +303 -0
  68. package/external/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +3196 -0
  69. package/external/node-gyp/gyp/pylib/gyp/xml_fix.py +65 -0
  70. package/external/node-gyp/gyp/pylib/packaging/LICENSE +3 -0
  71. package/external/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +177 -0
  72. package/external/node-gyp/gyp/pylib/packaging/LICENSE.BSD +23 -0
  73. package/external/node-gyp/gyp/pylib/packaging/__init__.py +15 -0
  74. package/external/node-gyp/gyp/pylib/packaging/_elffile.py +108 -0
  75. package/external/node-gyp/gyp/pylib/packaging/_manylinux.py +252 -0
  76. package/external/node-gyp/gyp/pylib/packaging/_musllinux.py +83 -0
  77. package/external/node-gyp/gyp/pylib/packaging/_parser.py +359 -0
  78. package/external/node-gyp/gyp/pylib/packaging/_structures.py +61 -0
  79. package/external/node-gyp/gyp/pylib/packaging/_tokenizer.py +192 -0
  80. package/external/node-gyp/gyp/pylib/packaging/markers.py +252 -0
  81. package/external/node-gyp/gyp/pylib/packaging/metadata.py +825 -0
  82. package/external/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  83. package/external/node-gyp/gyp/pylib/packaging/requirements.py +90 -0
  84. package/external/node-gyp/gyp/pylib/packaging/specifiers.py +1030 -0
  85. package/external/node-gyp/gyp/pylib/packaging/tags.py +553 -0
  86. package/external/node-gyp/gyp/pylib/packaging/utils.py +172 -0
  87. package/external/node-gyp/gyp/pylib/packaging/version.py +563 -0
  88. package/external/node-gyp/gyp/pyproject.toml +115 -0
  89. package/external/node-gyp/gyp/release-please-config.json +11 -0
  90. package/external/node-gyp/gyp/test_gyp.py +261 -0
  91. package/external/node-gyp/lib/Find-VisualStudio.cs +250 -0
  92. package/external/node-gyp/lib/build.js +230 -0
  93. package/external/node-gyp/lib/clean.js +15 -0
  94. package/external/node-gyp/lib/configure.js +328 -0
  95. package/external/node-gyp/lib/create-config-gypi.js +153 -0
  96. package/external/node-gyp/lib/download.js +41 -0
  97. package/external/node-gyp/lib/find-node-directory.js +63 -0
  98. package/external/node-gyp/lib/find-python.js +310 -0
  99. package/external/node-gyp/lib/find-visualstudio.js +600 -0
  100. package/external/node-gyp/lib/install.js +415 -0
  101. package/external/node-gyp/lib/list.js +26 -0
  102. package/external/node-gyp/lib/log.js +168 -0
  103. package/external/node-gyp/lib/node-gyp.js +188 -0
  104. package/external/node-gyp/lib/process-release.js +148 -0
  105. package/external/node-gyp/lib/rebuild.js +12 -0
  106. package/external/node-gyp/lib/remove.js +43 -0
  107. package/external/node-gyp/lib/util.js +81 -0
  108. package/external/node-gyp/macOS_Catalina_acid_test.sh +21 -0
  109. package/external/node-gyp/package.json +52 -0
  110. package/external/node-gyp/release-please-config.json +40 -0
  111. package/external/node-gyp/src/win_delay_load_hook.cc +41 -0
  112. package/package.json +2 -1
@@ -0,0 +1,188 @@
1
+ 'use strict'
2
+
3
+ const path = require('path')
4
+ const nopt = require('nopt')
5
+ const log = require('./log')
6
+ const childProcess = require('child_process')
7
+ const { EventEmitter } = require('events')
8
+
9
+ const commands = [
10
+ // Module build commands
11
+ 'build',
12
+ 'clean',
13
+ 'configure',
14
+ 'rebuild',
15
+ // Development Header File management commands
16
+ 'install',
17
+ 'list',
18
+ 'remove'
19
+ ]
20
+
21
+ class Gyp extends EventEmitter {
22
+ /**
23
+ * Export the contents of the package.json.
24
+ */
25
+ package = require('../package.json')
26
+
27
+ /**
28
+ * nopt configuration definitions
29
+ */
30
+ configDefs = {
31
+ help: Boolean, // everywhere
32
+ arch: String, // 'configure'
33
+ cafile: String, // 'install'
34
+ debug: Boolean, // 'build'
35
+ directory: String, // bin
36
+ make: String, // 'build'
37
+ 'msvs-version': String, // 'configure'
38
+ ensure: Boolean, // 'install'
39
+ solution: String, // 'build' (windows only)
40
+ proxy: String, // 'install'
41
+ noproxy: String, // 'install'
42
+ devdir: String, // everywhere
43
+ nodedir: String, // 'configure'
44
+ loglevel: String, // everywhere
45
+ python: String, // 'configure'
46
+ 'dist-url': String, // 'install'
47
+ tarball: String, // 'install'
48
+ jobs: String, // 'build'
49
+ thin: String, // 'configure'
50
+ 'force-process-config': Boolean // 'configure'
51
+ }
52
+
53
+ /**
54
+ * nopt shorthands
55
+ */
56
+ shorthands = {
57
+ release: '--no-debug',
58
+ C: '--directory',
59
+ debug: '--debug',
60
+ j: '--jobs',
61
+ silly: '--loglevel=silly',
62
+ verbose: '--loglevel=verbose',
63
+ silent: '--loglevel=silent'
64
+ }
65
+
66
+ /**
67
+ * expose the command aliases for the bin file to use.
68
+ */
69
+ aliases = {
70
+ ls: 'list',
71
+ rm: 'remove'
72
+ }
73
+
74
+ constructor (...args) {
75
+ super(...args)
76
+
77
+ this.devDir = ''
78
+
79
+ this.commands = commands.reduce((acc, command) => {
80
+ acc[command] = (argv) => require('./' + command)(this, argv)
81
+ return acc
82
+ }, {})
83
+
84
+ Object.defineProperty(this, 'version', {
85
+ enumerable: true,
86
+ get: function () { return this.package.version }
87
+ })
88
+ }
89
+
90
+ /**
91
+ * Parses the given argv array and sets the 'opts',
92
+ * 'argv' and 'command' properties.
93
+ */
94
+ parseArgv (argv) {
95
+ this.opts = nopt(this.configDefs, this.shorthands, argv)
96
+ this.argv = this.opts.argv.remain.slice()
97
+
98
+ const commands = this.todo = []
99
+
100
+ // create a copy of the argv array with aliases mapped
101
+ argv = this.argv.map((arg) => {
102
+ // is this an alias?
103
+ if (arg in this.aliases) {
104
+ arg = this.aliases[arg]
105
+ }
106
+ return arg
107
+ })
108
+
109
+ // process the mapped args into "command" objects ("name" and "args" props)
110
+ argv.slice().forEach((arg) => {
111
+ if (arg in this.commands) {
112
+ const args = argv.splice(0, argv.indexOf(arg))
113
+ argv.shift()
114
+ if (commands.length > 0) {
115
+ commands[commands.length - 1].args = args
116
+ }
117
+ commands.push({ name: arg, args: [] })
118
+ }
119
+ })
120
+ if (commands.length > 0) {
121
+ commands[commands.length - 1].args = argv.splice(0)
122
+ }
123
+
124
+ // support for inheriting config env variables from npm
125
+ const npmConfigPrefix = 'npm_config_'
126
+ Object.keys(process.env).forEach((name) => {
127
+ if (name.indexOf(npmConfigPrefix) !== 0) {
128
+ return
129
+ }
130
+ const val = process.env[name]
131
+ if (name === npmConfigPrefix + 'loglevel') {
132
+ log.logger.level = val
133
+ } else {
134
+ // add the user-defined options to the config
135
+ name = name.substring(npmConfigPrefix.length)
136
+ // gyp@741b7f1 enters an infinite loop when it encounters
137
+ // zero-length options so ensure those don't get through.
138
+ if (name) {
139
+ // convert names like force_process_config to force-process-config
140
+ if (name.includes('_')) {
141
+ name = name.replace(/_/g, '-')
142
+ }
143
+ this.opts[name] = val
144
+ }
145
+ }
146
+ })
147
+
148
+ if (this.opts.loglevel) {
149
+ log.logger.level = this.opts.loglevel
150
+ }
151
+ log.resume()
152
+ }
153
+
154
+ /**
155
+ * Spawns a child process and emits a 'spawn' event.
156
+ */
157
+ spawn (command, args, opts) {
158
+ if (!opts) {
159
+ opts = {}
160
+ }
161
+ if (!opts.silent && !opts.stdio) {
162
+ opts.stdio = [0, 1, 2]
163
+ }
164
+ const cp = childProcess.spawn(command, args, opts)
165
+ log.info('spawn', command)
166
+ log.info('spawn args', args)
167
+ return cp
168
+ }
169
+
170
+ /**
171
+ * Returns the usage instructions for node-gyp.
172
+ */
173
+ usage () {
174
+ return [
175
+ '',
176
+ ' Usage: node-gyp <command> [options]',
177
+ '',
178
+ ' where <command> is one of:',
179
+ commands.map((c) => ' - ' + c + ' - ' + require('./' + c).usage).join('\n'),
180
+ '',
181
+ 'node-gyp@' + this.version + ' ' + path.resolve(__dirname, '..'),
182
+ 'node@' + process.versions.node
183
+ ].join('\n')
184
+ }
185
+ }
186
+
187
+ module.exports = () => new Gyp()
188
+ module.exports.Gyp = Gyp
@@ -0,0 +1,148 @@
1
+ 'use strict'
2
+
3
+ /* eslint-disable n/no-deprecated-api */
4
+
5
+ 'use strict'
6
+
7
+ const semver = require('semver')
8
+ const url = require('url')
9
+ const path = require('path')
10
+ const log = require('./log')
11
+
12
+ // versions where -headers.tar.gz started shipping
13
+ const headersTarballRange = '>= 3.0.0 || ~0.12.10 || ~0.10.42'
14
+ const bitsre = /\/win-(x86|x64|arm64)\//
15
+ const bitsreV3 = /\/win-(x86|ia32|x64)\// // io.js v3.x.x shipped with "ia32" but should
16
+ // have been "x86"
17
+
18
+ // Captures all the logic required to determine download URLs, local directory and
19
+ // file names. Inputs come from command-line switches (--target, --dist-url),
20
+ // `process.version` and `process.release` where it exists.
21
+ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
22
+ let version = (semver.valid(argv[0]) && argv[0]) || gyp.opts.target || defaultVersion
23
+ const versionSemver = semver.parse(version)
24
+ let overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl
25
+ let isNamedForLegacyIojs
26
+ let name
27
+ let distBaseUrl
28
+ let baseUrl
29
+ let libUrl32
30
+ let libUrl64
31
+ let libUrlArm64
32
+ let tarballUrl
33
+ let canGetHeaders
34
+
35
+ if (!versionSemver) {
36
+ // not a valid semver string, nothing we can do
37
+ return { version }
38
+ }
39
+ // flatten version into String
40
+ version = versionSemver.version
41
+
42
+ // defaultVersion should come from process.version so ought to be valid semver
43
+ const isDefaultVersion = version === semver.parse(defaultVersion).version
44
+
45
+ // can't use process.release if we're using --target=x.y.z
46
+ if (!isDefaultVersion) {
47
+ defaultRelease = null
48
+ }
49
+
50
+ if (defaultRelease) {
51
+ // v3 onward, has process.release
52
+ name = defaultRelease.name.replace(/io\.js/, 'iojs') // remove the '.' for directory naming purposes
53
+ } else {
54
+ // old node or alternative --target=
55
+ // semver.satisfies() doesn't like prerelease tags so test major directly
56
+ isNamedForLegacyIojs = versionSemver.major >= 1 && versionSemver.major < 4
57
+ // isNamedForLegacyIojs is required to support Electron < 4 (in particular Electron 3)
58
+ // as previously this logic was used to ensure "iojs" was used to download iojs releases
59
+ // and "node" for node releases. Unfortunately the logic was broad enough that electron@3
60
+ // published release assets as "iojs" so that the node-gyp logic worked. Once Electron@3 has
61
+ // been EOL for a while (late 2019) we should remove this hack.
62
+ name = isNamedForLegacyIojs ? 'iojs' : 'node'
63
+ }
64
+
65
+ // check for the nvm.sh standard mirror env variables
66
+ if (!overrideDistUrl && process.env.NODEJS_ORG_MIRROR) {
67
+ overrideDistUrl = process.env.NODEJS_ORG_MIRROR
68
+ }
69
+
70
+ if (overrideDistUrl) {
71
+ log.verbose('download', 'using dist-url', overrideDistUrl)
72
+ }
73
+
74
+ if (overrideDistUrl) {
75
+ distBaseUrl = overrideDistUrl.replace(/\/+$/, '')
76
+ } else {
77
+ distBaseUrl = 'https://nodejs.org/dist'
78
+ }
79
+ distBaseUrl += '/v' + version + '/'
80
+
81
+ // new style, based on process.release so we have a lot of the data we need
82
+ if (defaultRelease && defaultRelease.headersUrl && !overrideDistUrl) {
83
+ baseUrl = url.resolve(defaultRelease.headersUrl, './')
84
+ libUrl32 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x86', versionSemver.major)
85
+ libUrl64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x64', versionSemver.major)
86
+ libUrlArm64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'arm64', versionSemver.major)
87
+ tarballUrl = defaultRelease.headersUrl
88
+ } else {
89
+ // older versions without process.release are captured here and we have to make
90
+ // a lot of assumptions, additionally if you --target=x.y.z then we can't use the
91
+ // current process.release
92
+ baseUrl = distBaseUrl
93
+ libUrl32 = resolveLibUrl(name, baseUrl, 'x86', versionSemver.major)
94
+ libUrl64 = resolveLibUrl(name, baseUrl, 'x64', versionSemver.major)
95
+ libUrlArm64 = resolveLibUrl(name, baseUrl, 'arm64', versionSemver.major)
96
+
97
+ // making the bold assumption that anything with a version number >3.0.0 will
98
+ // have a *-headers.tar.gz file in its dist location, even some frankenstein
99
+ // custom version
100
+ canGetHeaders = semver.satisfies(versionSemver, headersTarballRange)
101
+ tarballUrl = url.resolve(baseUrl, name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz')
102
+ }
103
+
104
+ return {
105
+ version,
106
+ semver: versionSemver,
107
+ name,
108
+ baseUrl,
109
+ tarballUrl,
110
+ shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'),
111
+ versionDir: (name !== 'node' ? name + '-' : '') + version,
112
+ ia32: {
113
+ libUrl: libUrl32,
114
+ libPath: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl32).path))
115
+ },
116
+ x64: {
117
+ libUrl: libUrl64,
118
+ libPath: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl64).path))
119
+ },
120
+ arm64: {
121
+ libUrl: libUrlArm64,
122
+ libPath: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrlArm64).path))
123
+ }
124
+ }
125
+ }
126
+
127
+ function normalizePath (p) {
128
+ return path.normalize(p).replace(/\\/g, '/')
129
+ }
130
+
131
+ function resolveLibUrl (name, defaultUrl, arch, versionMajor) {
132
+ const base = url.resolve(defaultUrl, './')
133
+ const hasLibUrl = bitsre.test(defaultUrl) || (versionMajor === 3 && bitsreV3.test(defaultUrl))
134
+
135
+ if (!hasLibUrl) {
136
+ // let's assume it's a baseUrl then
137
+ if (versionMajor >= 1) {
138
+ return url.resolve(base, 'win-' + arch + '/' + name + '.lib')
139
+ }
140
+ // prior to io.js@1.0.0 32-bit node.lib lives in /, 64-bit lives in /x64/
141
+ return url.resolve(base, (arch === 'x86' ? '' : arch + '/') + name + '.lib')
142
+ }
143
+
144
+ // else we have a proper url to a .lib, just make sure it's the right arch
145
+ return defaultUrl.replace(versionMajor === 3 ? bitsreV3 : bitsre, '/win-' + arch + '/')
146
+ }
147
+
148
+ module.exports = processRelease
@@ -0,0 +1,12 @@
1
+ 'use strict'
2
+
3
+ async function rebuild (gyp, argv) {
4
+ gyp.todo.push(
5
+ { name: 'clean', args: [] }
6
+ , { name: 'configure', args: argv }
7
+ , { name: 'build', args: [] }
8
+ )
9
+ }
10
+
11
+ module.exports = rebuild
12
+ module.exports.usage = 'Runs "clean", "configure" and "build" all at once'
@@ -0,0 +1,43 @@
1
+ 'use strict'
2
+
3
+ const fs = require('graceful-fs').promises
4
+ const path = require('path')
5
+ const log = require('./log')
6
+ const semver = require('semver')
7
+
8
+ async function remove (gyp, argv) {
9
+ const devDir = gyp.devDir
10
+ log.verbose('remove', 'using node-gyp dir:', devDir)
11
+
12
+ // get the user-specified version to remove
13
+ let version = argv[0] || gyp.opts.target
14
+ log.verbose('remove', 'removing target version:', version)
15
+
16
+ if (!version) {
17
+ throw new Error('You must specify a version number to remove. Ex: "' + process.version + '"')
18
+ }
19
+
20
+ const versionSemver = semver.parse(version)
21
+ if (versionSemver) {
22
+ // flatten the version Array into a String
23
+ version = versionSemver.version
24
+ }
25
+
26
+ const versionPath = path.resolve(gyp.devDir, version)
27
+ log.verbose('remove', 'removing development files for version:', version)
28
+
29
+ // first check if its even installed
30
+ try {
31
+ await fs.stat(versionPath)
32
+ } catch (err) {
33
+ if (err.code === 'ENOENT') {
34
+ return 'version was already uninstalled: ' + version
35
+ }
36
+ throw err
37
+ }
38
+
39
+ await fs.rm(versionPath, { recursive: true, force: true, maxRetries: 3 })
40
+ }
41
+
42
+ module.exports = remove
43
+ module.exports.usage = 'Removes the node development files for the specified version'
@@ -0,0 +1,81 @@
1
+ 'use strict'
2
+
3
+ const cp = require('child_process')
4
+ const path = require('path')
5
+ const { openSync, closeSync } = require('graceful-fs')
6
+ const log = require('./log')
7
+
8
+ const execFile = async (...args) => new Promise((resolve) => {
9
+ const child = cp.execFile(...args, (...a) => resolve(a))
10
+ child.stdin.end()
11
+ })
12
+
13
+ async function regGetValue (key, value, addOpts) {
14
+ const outReValue = value.replace(/\W/g, '.')
15
+ const outRe = new RegExp(`^\\s+${outReValue}\\s+REG_\\w+\\s+(\\S.*)$`, 'im')
16
+ const reg = path.join(process.env.SystemRoot, 'System32', 'reg.exe')
17
+ const regArgs = ['query', key, '/v', value].concat(addOpts)
18
+
19
+ log.silly('reg', 'running', reg, regArgs)
20
+ const [err, stdout, stderr] = await execFile(reg, regArgs, { encoding: 'utf8' })
21
+
22
+ log.silly('reg', 'reg.exe stdout = %j', stdout)
23
+ if (err || stderr.trim() !== '') {
24
+ log.silly('reg', 'reg.exe err = %j', err && (err.stack || err))
25
+ log.silly('reg', 'reg.exe stderr = %j', stderr)
26
+ if (err) {
27
+ throw err
28
+ }
29
+ throw new Error(stderr)
30
+ }
31
+
32
+ const result = outRe.exec(stdout)
33
+ if (!result) {
34
+ log.silly('reg', 'error parsing stdout')
35
+ throw new Error('Could not parse output of reg.exe')
36
+ }
37
+
38
+ log.silly('reg', 'found: %j', result[1])
39
+ return result[1]
40
+ }
41
+
42
+ async function regSearchKeys (keys, value, addOpts) {
43
+ for (const key of keys) {
44
+ try {
45
+ return await regGetValue(key, value, addOpts)
46
+ } catch {
47
+ continue
48
+ }
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Returns the first file or directory from an array of candidates that is
54
+ * readable by the current user, or undefined if none of the candidates are
55
+ * readable.
56
+ */
57
+ function findAccessibleSync (logprefix, dir, candidates) {
58
+ for (let next = 0; next < candidates.length; next++) {
59
+ const candidate = path.resolve(dir, candidates[next])
60
+ let fd
61
+ try {
62
+ fd = openSync(candidate, 'r')
63
+ } catch (e) {
64
+ // this candidate was not found or not readable, do nothing
65
+ log.silly(logprefix, 'Could not open %s: %s', candidate, e.message)
66
+ continue
67
+ }
68
+ closeSync(fd)
69
+ log.silly(logprefix, 'Found readable %s', candidate)
70
+ return candidate
71
+ }
72
+
73
+ return undefined
74
+ }
75
+
76
+ module.exports = {
77
+ execFile,
78
+ regGetValue,
79
+ regSearchKeys,
80
+ findAccessibleSync
81
+ }
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+
3
+ pkgs=(
4
+ "com.apple.pkg.DeveloperToolsCLILeo" # standalone
5
+ "com.apple.pkg.DeveloperToolsCLI" # from XCode
6
+ "com.apple.pkg.CLTools_Executables" # Mavericks
7
+ )
8
+
9
+ for pkg in "${pkgs[@]}"; do
10
+ output=$(/usr/sbin/pkgutil --pkg-info "$pkg" 2>/dev/null)
11
+ if [ "$output" ]; then
12
+ version=$(echo "$output" | grep 'version' | cut -d' ' -f2)
13
+ break
14
+ fi
15
+ done
16
+
17
+ if [ "$version" ]; then
18
+ echo "Command Line Tools version: $version"
19
+ else
20
+ echo >&2 'Command Line Tools not found'
21
+ fi
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "node-gyp",
3
+ "description": "Node.js native addon build tool",
4
+ "license": "MIT",
5
+ "keywords": [
6
+ "native",
7
+ "addon",
8
+ "module",
9
+ "c",
10
+ "c++",
11
+ "bindings",
12
+ "gyp"
13
+ ],
14
+ "version": "11.2.0",
15
+ "installVersion": 11,
16
+ "author": "Nathan Rajlich <nathan@tootallnate.net> (http://tootallnate.net)",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git://github.com/nodejs/node-gyp.git"
20
+ },
21
+ "preferGlobal": true,
22
+ "bin": "./bin/node-gyp.js",
23
+ "main": "./lib/node-gyp.js",
24
+ "dependencies": {
25
+ "env-paths": "^2.2.0",
26
+ "exponential-backoff": "^3.1.1",
27
+ "graceful-fs": "^4.2.6",
28
+ "make-fetch-happen": "^14.0.3",
29
+ "nopt": "^8.0.0",
30
+ "proc-log": "^5.0.0",
31
+ "semver": "^7.3.5",
32
+ "tar": "^7.4.3",
33
+ "tinyglobby": "^0.2.12",
34
+ "which": "^5.0.0"
35
+ },
36
+ "engines": {
37
+ "node": "^18.17.0 || >=20.5.0"
38
+ },
39
+ "devDependencies": {
40
+ "bindings": "^1.5.0",
41
+ "cross-env": "^7.0.3",
42
+ "eslint": "^9.16.0",
43
+ "mocha": "^11.0.1",
44
+ "nan": "^2.14.2",
45
+ "neostandard": "^0.11.9",
46
+ "require-inject": "^1.4.4"
47
+ },
48
+ "scripts": {
49
+ "lint": "eslint \"*/*.js\" \"test/**/*.js\" \".github/**/*.js\"",
50
+ "test": "cross-env NODE_GYP_NULL_LOGGER=true mocha --timeout 15000 test/test-download.js test/test-*"
51
+ }
52
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "packages": {
3
+ ".": {
4
+ "include-component-in-tag": false,
5
+ "release-type": "node",
6
+ "changelog-sections": [
7
+ { "type": "feat", "section": "Features", "hidden": false },
8
+ { "type": "fix", "section": "Bug Fixes", "hidden": false },
9
+ { "type": "bin", "section": "Core", "hidden": false },
10
+ { "type": "gyp", "section": "Core", "hidden": false },
11
+ { "type": "lib", "section": "Core", "hidden": false },
12
+ { "type": "src", "section": "Core", "hidden": false },
13
+ { "type": "test", "section": "Tests", "hidden": false },
14
+ { "type": "build", "section": "Core", "hidden": false },
15
+ { "type": "clean", "section": "Core", "hidden": false },
16
+ { "type": "configure", "section": "Core", "hidden": false },
17
+ { "type": "install", "section": "Core", "hidden": false },
18
+ { "type": "list", "section": "Core", "hidden": false },
19
+ { "type": "rebuild", "section": "Core", "hidden": false },
20
+ { "type": "remove", "section": "Core", "hidden": false },
21
+ { "type": "deps", "section": "Core", "hidden": false },
22
+ { "type": "python", "section": "Core", "hidden": false },
23
+ { "type": "lin", "section": "Core", "hidden": false },
24
+ { "type": "linux", "section": "Core", "hidden": false },
25
+ { "type": "mac", "section": "Core", "hidden": false },
26
+ { "type": "macos", "section": "Core", "hidden": false },
27
+ { "type": "win", "section": "Core", "hidden": false },
28
+ { "type": "windows", "section": "Core", "hidden": false },
29
+ { "type": "zos", "section": "Core", "hidden": false },
30
+ { "type": "doc", "section": "Doc", "hidden": false },
31
+ { "type": "docs", "section": "Doc", "hidden": false },
32
+ { "type": "readme", "section": "Doc", "hidden": false },
33
+ { "type": "chore", "section": "Miscellaneous", "hidden": false },
34
+ { "type": "refactor", "section": "Miscellaneous", "hidden": false },
35
+ { "type": "ci", "section": "Miscellaneous", "hidden": false },
36
+ { "type": "meta", "section": "Miscellaneous", "hidden": false }
37
+ ]
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,41 @@
1
+ /*
2
+ * When this file is linked to a DLL, it sets up a delay-load hook that
3
+ * intervenes when the DLL is trying to load the host executable
4
+ * dynamically. Instead of trying to locate the .exe file it'll just
5
+ * return a handle to the process image.
6
+ *
7
+ * This allows compiled addons to work when the host executable is renamed.
8
+ */
9
+
10
+ #ifdef _MSC_VER
11
+
12
+ #pragma managed(push, off)
13
+
14
+ #ifndef WIN32_LEAN_AND_MEAN
15
+ #define WIN32_LEAN_AND_MEAN
16
+ #endif
17
+
18
+ #include <windows.h>
19
+
20
+ #include <delayimp.h>
21
+ #include <string.h>
22
+
23
+ static FARPROC WINAPI load_exe_hook(unsigned int event, DelayLoadInfo* info) {
24
+ HMODULE m;
25
+ if (event != dliNotePreLoadLibrary)
26
+ return NULL;
27
+
28
+ if (_stricmp(info->szDll, HOST_BINARY) != 0)
29
+ return NULL;
30
+
31
+ // try for libnode.dll to compat node.js that using 'vcbuild.bat dll'
32
+ m = GetModuleHandle(TEXT("libnode.dll"));
33
+ if (m == NULL) m = GetModuleHandle(NULL);
34
+ return (FARPROC) m;
35
+ }
36
+
37
+ decltype(__pfnDliNotifyHook2) __pfnDliNotifyHook2 = load_exe_hook;
38
+
39
+ #pragma managed(pop)
40
+
41
+ #endif
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@socketsecurity/cli-with-sentry",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "CLI for Socket.dev, includes Sentry error handling, otherwise identical to the regular `socket` package",
5
5
  "homepage": "https://github.com/SocketDev/socket-cli",
6
6
  "license": "MIT",
@@ -155,6 +155,7 @@
155
155
  "micromatch": "4.0.8",
156
156
  "mock-fs": "5.5.0",
157
157
  "nock": "14.0.5",
158
+ "node-gyp": "11.2.0",
158
159
  "npm-package-arg": "12.0.2",
159
160
  "npm-run-all2": "8.0.4",
160
161
  "open": "10.1.2",