@sentry/cli 1.75.2 → 1.77.0

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/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  <p align="center">
2
- <img src="https://sentry-brand.storage.googleapis.com/sentry-logo-black.png" width="280">
3
- <br />
2
+ <a href="https://sentry.io/?utm_source=github&utm_medium=logo" target="_blank">
3
+ <picture>
4
+ <source srcset="https://sentry-brand.storage.googleapis.com/sentry-logo-white.png" media="(prefers-color-scheme: dark)" />
5
+ <source srcset="https://sentry-brand.storage.googleapis.com/sentry-logo-black.png" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" />
6
+ <img src="https://sentry-brand.storage.googleapis.com/sentry-logo-black.png" alt="Sentry" width="280">
7
+ </picture>
8
+ </a>
4
9
  </p>
5
10
 
6
11
  # Official Sentry Command Line Interface
@@ -12,7 +17,7 @@
12
17
 
13
18
  This is a Sentry command line client for some generic tasks. Right now this is
14
19
  primarily used to upload debug symbols to Sentry if you are not using the
15
- fastlane tools.
20
+ Fastlane tools.
16
21
 
17
22
  * Downloads can be found under
18
23
  [Releases](https://github.com/getsentry/sentry-cli/releases/)
@@ -20,13 +25,34 @@ fastlane tools.
20
25
 
21
26
  ## Installation
22
27
 
23
- The recommended way to install is with everybody's favorite curl to bash:
28
+ If you are on OS X or Linux, you can use the automated downloader which will fetch the latest release version for you and install it:
24
29
 
25
30
  curl -sL https://sentry.io/get-cli/ | bash
26
31
 
32
+ We do, however, encourage you to pin the specific version of the CLI, so your builds are always reproducible.
33
+ To do that, you can use the exact same method, with an additional version specifier:
34
+
35
+ curl -sL https://sentry.io/get-cli/ | SENTRY_CLI_VERSION=2.0.4 bash
36
+
37
+ This will automatically download the correct version of `sentry-cli` for your operating system and install it. If necessary, it will prompt for your admin password for `sudo`. For a different installation location or for systems without `sudo` (like Windows), you can `export INSTALL_DIR=/custom/installation/path` before running this command.
38
+
39
+ If you are using `sentry-cli` on Windows environments, [Microsoft Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist) is required.
40
+
41
+ To verify it’s installed correctly you can bring up the help:
42
+
43
+ sentry-cli --help
44
+
45
+ ### pip
46
+
47
+ _New in 2.14.3_: `sentry-cli` can also be installed using `pip`:
48
+
49
+ ```bash
50
+ pip install sentry-cli
51
+ ```
52
+
27
53
  ### Node
28
54
 
29
- Additionally you can also install this binary via npm:
55
+ Additionally, you can also install this binary via npm:
30
56
 
31
57
  npm install @sentry/cli
32
58
 
@@ -51,14 +77,22 @@ Or add property into your `.npmrc` file (https://www.npmjs.org/doc/files/npmrc.h
51
77
  sentrycli_cdnurl=https://mymirror.local/path
52
78
  ```
53
79
 
54
- Another option is to use the environment variable `SENTRYCLI_CDNURL`.
80
+ There are a few environment variables that you can provide to control the npm installation:
55
81
 
56
- ```sh
57
- SENTRYCLI_CDNURL=https://mymirror.local/path npm install @sentry/cli
82
+ ```
83
+ SENTRYCLI_CDNURL=<url> # Use alternative cdn url for downloading binary
84
+ SENTRYCLI_USE_LOCAL=1 # Use local instance of sentry-cli binary (looked up via $PATH environment)
85
+ SENTRYCLI_SKIP_DOWNLOAD=1 # Skip downloading binary entirely
86
+ SENTRYCLI_NO_PROGRESS_BAR=1 # Do not print the progress bar when downloading binary (default for non-TTY environments like CI)
87
+ SENTRYCLI_LOG_STREAM=<stdout|stderr> # Changes where to redirect install script output
58
88
  ```
59
89
 
90
+ When using `sentry-cli` via JavaScript API or any 3rd party plugin that is consuming said API,
91
+ you can also use `SENTRY_BINARY_PATH=<path>` alongside `SENTRYCLI_SKIP_DOWNLOAD=1` to completely
92
+ control what binaries are downloaded and used throughout the whole process.
93
+
60
94
  If you're installing the CLI with NPM from behind a proxy, the install script will
61
- use either NPM's configured HTTPS proxy server, or the value from your `HTTPS_PROXY`
95
+ use either NPM's configured HTTPS proxy server or the value from your `HTTPS_PROXY`
62
96
  environment variable.
63
97
 
64
98
  ### Homebrew
@@ -79,6 +113,23 @@ docker pull getsentry/sentry-cli
79
113
  docker run --rm -v $(pwd):/work getsentry/sentry-cli --help
80
114
  ```
81
115
 
116
+ Starting version _`2.8.0`_, in case you see `"error: config value 'safe.directory' was not found;"` message,
117
+ you also need to correctly set UID and GID of mounted volumes like so:
118
+
119
+ ```sh
120
+ docker run --rm -u "$(id -u):$(id -g)" -v $(pwd):/work getsentry/sentry-cli --help
121
+ ```
122
+
123
+ This is required due to security issue in older `git` implementations. See [here](https://github.blog/2022-04-12-git-security-vulnerability-announced/) for more details.
124
+
125
+ ## Update
126
+
127
+ To update sentry-cli to the latest version run:
128
+
129
+ ```sh
130
+ sentry-cli update
131
+ ```
132
+
82
133
  ## Compiling
83
134
 
84
135
  In case you want to compile this yourself, you need to install at minimum the
package/bin/sentry-cli CHANGED
@@ -3,17 +3,17 @@
3
3
  'use strict';
4
4
 
5
5
  const childProcess = require('child_process');
6
- const cli = require('../js');
6
+ const SentryCli = require('../js');
7
7
 
8
8
  const child = childProcess
9
- .spawn(cli.getPath(), process.argv.slice(2), {
9
+ .spawn(SentryCli.getPath(), process.argv.slice(2), {
10
10
  stdio: 'inherit',
11
11
  })
12
- .on('error', err => {
12
+ .on('error', (err) => {
13
13
  console.error(err); // eslint-disable-line no-console
14
14
  process.exit(1);
15
15
  })
16
- .on('exit', code => process.exit(code));
16
+ .on('exit', (code) => process.exit(code));
17
17
 
18
18
  process.on('SIGTERM', () => child.kill('SIGTERM'));
19
19
  process.on('SIGINT', () => child.kill('SIGINT'));
package/checksums.txt CHANGED
@@ -1,9 +1,9 @@
1
- sentry-cli-Darwin-arm64=aa8e7c19cf408673ea41ed379fa26e736a59352bf5d1b9dcb24a38cec35aac12
2
- sentry-cli-Darwin-universal=17fa02c091c66dfd35e22766986d24176e3d95e3535bf957eb06478fbb9421e8
3
- sentry-cli-Darwin-x86_64=4c5c61be273f45d508a0a1a87618e595301ed1a996e334298380fe0d5c149825
4
- sentry-cli-Linux-aarch64=96c04befc82ae68c275aecf433f4b354f2f153318ab4585612f330e85eccd679
5
- sentry-cli-Linux-armv7=0fe9e7c163bfe9285617cf05e33c94830cc2fe3353114910e0f8fb4c70aa3079
6
- sentry-cli-Linux-i686=5f0f2b8e08b78d18f1173b96aeb98bc2a099f639481c80c4808ae4f1b4ea825a
7
- sentry-cli-Linux-x86_64=58f103859e57435dac7672db75b471a091de8e65e3c8776978cdf5a752d1fccd
8
- sentry-cli-Windows-i686.exe=abc8d4e1a06599b4d511ec530b8bfc3d21261410e5099b1813f74053bedac4a4
9
- sentry-cli-Windows-x86_64.exe=ae44f7464d91c2f8effa03a08ddeaefaaf5c2e9725213fc17b71317515027b79
1
+ sentry-cli-Darwin-arm64=18c1972b79aeaeacb86a512076f355a7a1fd0cf7c0830d41e99ac579f12d6533
2
+ sentry-cli-Darwin-universal=56973c245b5288de36d3fcb3420d67dc7f04e26c2c1cd35379ce617491f1d837
3
+ sentry-cli-Darwin-x86_64=e60f59132433c1ec50e8570766a644a1abcf0e6fdf1f2bcca6de852daa260b62
4
+ sentry-cli-Linux-aarch64=629e731a9dd2e925934eeab5e33f02ba2b60e8c2224b95321ab117a775ed6861
5
+ sentry-cli-Linux-armv7=a8fbf4543d42372743ee8bc0ea7b43cb60b78d3e260d355ad4855c3bacf53f5c
6
+ sentry-cli-Linux-i686=9b8982a2ebec0ba0b6199e070362f26e916e79e7d923cf2615f0af85afd1171b
7
+ sentry-cli-Linux-x86_64=55fe5bdd1112bd6ff625df8cf97aca3e61df52293ab5b7d8f7466f334298bb27
8
+ sentry-cli-Windows-i686.exe=fd53c35331d6208d9c1a2bdfc156235dcabb841c66162070470946215d4d79dd
9
+ sentry-cli-Windows-x86_64.exe=e40cf0bde9c64f9e1f9936350b80e2e14708bca7744ecba0494d489c1ad56eba
package/js/helper.js CHANGED
@@ -12,6 +12,10 @@ const childProcess = require('child_process');
12
12
  * @returns {string} The path to the sentry-cli binary
13
13
  */
14
14
  function getBinaryPath() {
15
+ if (process.env.SENTRY_BINARY_PATH) {
16
+ return process.env.SENTRY_BINARY_PATH;
17
+ }
18
+
15
19
  const parts = [];
16
20
  parts.push(__dirname);
17
21
  parts.push('..');
@@ -61,7 +65,7 @@ function mockBinaryPath(mockPath) {
61
65
  function serializeOptions(schema, options) {
62
66
  return Object.keys(schema).reduce((newOptions, option) => {
63
67
  const paramValue = options[option];
64
- if (paramValue === undefined) {
68
+ if (paramValue === undefined || paramValue === null) {
65
69
  return newOptions;
66
70
  }
67
71
 
@@ -144,7 +148,7 @@ function getPath() {
144
148
  * @param {Object} [config] More configuration to pass to the CLI
145
149
  * @returns {Promise.<string>} A promise that resolves to the standard output.
146
150
  */
147
- function execute(args, live, silent, configFile, config = {}) {
151
+ async function execute(args, live, silent, configFile, config = {}) {
148
152
  const env = { ...process.env };
149
153
  if (configFile) {
150
154
  env.SENTRY_PROPERTIES = configFile;
@@ -172,6 +176,12 @@ function execute(args, live, silent, configFile, config = {}) {
172
176
  }
173
177
  if (config.customHeader) {
174
178
  env.CUSTOM_HEADER = config.customHeader;
179
+ } else if (config.headers) {
180
+ const headers = Object.entries(config.headers).flatMap(([key, value]) => [
181
+ '--header',
182
+ `${key}:${value}`,
183
+ ]);
184
+ args = [...headers, ...args];
175
185
  }
176
186
  return new Promise((resolve, reject) => {
177
187
  if (live === true) {
package/js/index.d.ts CHANGED
@@ -38,11 +38,6 @@ declare module '@sentry/cli' {
38
38
  * This value will update `SENTRY_VCS_REMOTE` env variable.
39
39
  */
40
40
  vcsRemote?: string;
41
- /**
42
- * Unique identifier for the distribution, used to further segment your release.
43
- * Usually your build number.
44
- */
45
- dist?: string;
46
41
  /**
47
42
  * If true, all logs are suppressed.
48
43
  */
@@ -52,6 +47,11 @@ declare module '@sentry/cli' {
52
47
  * This value will update `CUSTOM_HEADER` env variable.
53
48
  */
54
49
  customHeader?: string;
50
+ /**
51
+ * Headers added to every outgoing network request.
52
+ * This value does not set any env variable, and is overridden by `customHeader`.
53
+ */
54
+ headers?: Record<string, string>;
55
55
  }
56
56
 
57
57
  /**
@@ -59,7 +59,9 @@ declare module '@sentry/cli' {
59
59
  * case `paths` takes the place of `include` in the options so as to make it
60
60
  * clear that this is not recursive.
61
61
  */
62
- export type SourceMapsPathDescriptor = Omit<SentryCliUploadSourceMapsOptions, 'include'> & { paths: string[] }
62
+ export type SourceMapsPathDescriptor = Omit<SentryCliUploadSourceMapsOptions, 'include'> & {
63
+ paths: string[];
64
+ };
63
65
 
64
66
  export interface SentryCliUploadSourceMapsOptions {
65
67
  /**
@@ -85,6 +87,15 @@ declare module '@sentry/cli' {
85
87
  * This prevents the automatic detection of sourcemap references.
86
88
  */
87
89
  sourceMapReference?: boolean;
90
+ /**
91
+ * Enables files gzip decompression prior to uploading. Defaults to `false`.
92
+ */
93
+ decompress?: boolean;
94
+ /**
95
+ * Enable artifacts deduplication prior to uploading. This will skip uploading
96
+ * any artifacts that are already present on the server. Defaults to `true`.
97
+ */
98
+ dedupe?: boolean;
88
99
  /**
89
100
  * When paired with the rewrite option this will remove a prefix from uploaded files.
90
101
  * For instance you can use this to remove a path that is build machine specific.
@@ -116,6 +127,15 @@ declare module '@sentry/cli' {
116
127
  * By default the following file extensions are processed: js, map, jsbundle and bundle.
117
128
  */
118
129
  ext?: string[];
130
+ /**
131
+ * Unique identifier for the distribution, used to further segment your release.
132
+ * Usually your build number.
133
+ */
134
+ dist?: string;
135
+ /**
136
+ * Use new Artifact Bundles upload, that enables use of Debug ID for Source Maps discovery.
137
+ */
138
+ useArtifactBundle?: boolean;
119
139
  }
120
140
 
121
141
  export interface SentryCliNewDeployOptions {
@@ -176,31 +196,19 @@ declare module '@sentry/cli' {
176
196
  }
177
197
 
178
198
  export interface SentryCliReleases {
179
- ['new'](
180
- release: string,
181
- options?: { projects: string[] } | string[]
182
- ): Promise<string>;
199
+ ['new'](release: string, options?: { projects: string[] } | string[]): Promise<string>;
183
200
 
184
- setCommits(
185
- release: string,
186
- options: SentryCliCommitsOptions
187
- ): Promise<string>;
201
+ setCommits(release: string, options: SentryCliCommitsOptions): Promise<string>;
188
202
 
189
- finalize(release: string): Promise<string>
203
+ finalize(release: string): Promise<string>;
190
204
 
191
- proposeVersion(): Promise<string>
205
+ proposeVersion(): Promise<string>;
192
206
 
193
- uploadSourceMaps(
194
- release: string,
195
- options: SentryCliUploadSourceMapsOptions
196
- ): Promise<string>
207
+ uploadSourceMaps(release: string, options: SentryCliUploadSourceMapsOptions): Promise<string>;
197
208
 
198
209
  listDeploys(release: string): Promise<string>;
199
210
 
200
- newDeploy(
201
- release: string,
202
- options: SentryCliNewDeployOptions
203
- ): Promise<string>
211
+ newDeploy(release: string, options: SentryCliNewDeployOptions): Promise<string>;
204
212
 
205
213
  execute(args: string[], live: boolean): Promise<string>;
206
214
  }
@@ -214,14 +222,14 @@ declare module '@sentry/cli' {
214
222
  * This value will update `SENTRY_PROPERTIES` env variable.
215
223
  * @param options {@link SentryCliOptions}
216
224
  */
217
- constructor(configFile?: string | null, options?: SentryCliOptions)
225
+ constructor(configFile?: string | null, options?: SentryCliOptions);
218
226
 
219
227
  public configFile?: string;
220
228
  public options?: SentryCliOptions;
221
- public releases: SentryCliReleases
229
+ public releases: SentryCliReleases;
222
230
 
223
- public static getVersion(): string
224
- public static getPath(): string
225
- public execute(args: string[], live: boolean): Promise<string>
231
+ public static getVersion(): string;
232
+ public static getPath(): string;
233
+ public execute(args: string[], live: boolean): Promise<string>;
226
234
  }
227
235
  }
@@ -50,7 +50,7 @@ class Releases {
50
50
  * @returns {Promise} A promise that resolves when the release has been created.
51
51
  * @memberof SentryReleases
52
52
  */
53
- new(release, options) {
53
+ async new(release, options) {
54
54
  const args = ['releases', 'new', release].concat(helper.getProjectFlagsFromOptions(options));
55
55
  return this.execute(args, null);
56
56
  }
@@ -76,7 +76,7 @@ class Releases {
76
76
  * @returns {Promise} A promise that resolves when the commits have been associated
77
77
  * @memberof SentryReleases
78
78
  */
79
- setCommits(release, options) {
79
+ async setCommits(release, options) {
80
80
  if (!options || (!options.auto && (!options.repo || !options.commit))) {
81
81
  throw new Error('options.auto, or options.repo and options.commit must be specified');
82
82
  }
@@ -95,10 +95,6 @@ class Releases {
95
95
  commitFlags.push('--ignore-missing');
96
96
  }
97
97
 
98
- if (options.ignoreEmpty) {
99
- commitFlags.push('--ignore-empty');
100
- }
101
-
102
98
  return this.execute(['releases', 'set-commits', release].concat(commitFlags));
103
99
  }
104
100
 
@@ -110,7 +106,7 @@ class Releases {
110
106
  * @returns {Promise} A promise that resolves when the release has been finalized.
111
107
  * @memberof SentryReleases
112
108
  */
113
- finalize(release) {
109
+ async finalize(release) {
114
110
  return this.execute(['releases', 'finalize', release], null);
115
111
  }
116
112
 
@@ -121,10 +117,9 @@ class Releases {
121
117
  * @returns {Promise.<string>} A promise that resolves to the version string.
122
118
  * @memberof SentryReleases
123
119
  */
124
- proposeVersion() {
125
- return this.execute(['releases', 'propose-version'], null).then(
126
- version => version && version.trim()
127
- );
120
+ async proposeVersion() {
121
+ const version = await this.execute(['releases', 'propose-version'], null);
122
+ return version.trim();
128
123
  }
129
124
 
130
125
  /**
@@ -145,13 +140,15 @@ class Releases {
145
140
  * ignoreFile: null, // path to a file with ignore rules
146
141
  * rewrite: false, // preprocess sourcemaps before uploading
147
142
  * sourceMapReference: true, // add a source map reference to source files
143
+ * dedupe: true, // deduplicate already uploaded files
148
144
  * stripPrefix: [], // remove certain prefices from filenames
149
145
  * stripCommonPrefix: false, // guess common prefices to remove from filenames
150
146
  * validate: false, // validate source maps and cancel the upload on error
151
147
  * urlPrefix: '', // add a prefix source map urls after stripping them
152
148
  * urlSuffix: '', // add a suffix source map urls after stripping them
153
149
  * ext: ['js', 'map', 'jsbundle', 'bundle'], // override file extensions to scan for
154
- * projects: ['node'] // provide a list of projects
150
+ * projects: ['node'], // provide a list of projects
151
+ * decompress: false // decompress gzip files before uploading
155
152
  * });
156
153
  *
157
154
  * @param {string} release Unique name of the release.
@@ -159,7 +156,7 @@ class Releases {
159
156
  * @returns {Promise} A promise that resolves when the upload has completed successfully.
160
157
  * @memberof SentryReleases
161
158
  */
162
- uploadSourceMaps(release, options) {
159
+ async uploadSourceMaps(release, options) {
163
160
  if (!options || !options.include || !Array.isArray(options.include)) {
164
161
  throw new Error(
165
162
  '`options.include` must be a vaild array of paths and/or path descriptor objects.'
@@ -169,7 +166,7 @@ class Releases {
169
166
  // Each entry in the `include` array will map to an array of promises, which
170
167
  // will in turn contain one promise per literal path value. Thus `uploads`
171
168
  // will be an array of Promise arrays, which we'll flatten later.
172
- const uploads = options.include.map(includeEntry => {
169
+ const uploads = options.include.map((includeEntry) => {
173
170
  let pathOptions;
174
171
  let uploadPaths;
175
172
 
@@ -200,7 +197,7 @@ class Releases {
200
197
  .concat(helper.getProjectFlagsFromOptions(options))
201
198
  .concat(['files', release, 'upload-sourcemaps']);
202
199
 
203
- return uploadPaths.map(path =>
200
+ return uploadPaths.map((path) =>
204
201
  // `execute()` is async and thus we're returning a promise here
205
202
  this.execute(helper.prepareCommand([...args, path], SOURCEMAPS_SCHEMA, newOptions), true)
206
203
  );
@@ -221,7 +218,7 @@ class Releases {
221
218
  * @returns {Promise} A promise that resolves when the list comes back from the server.
222
219
  * @memberof SentryReleases
223
220
  */
224
- listDeploys(release) {
221
+ async listDeploys(release) {
225
222
  return this.execute(['releases', 'deploys', release, 'list'], null);
226
223
  }
227
224
 
@@ -247,7 +244,7 @@ class Releases {
247
244
  * @returns {Promise} A promise that resolves when the deploy has been created.
248
245
  * @memberof SentryReleases
249
246
  */
250
- newDeploy(release, options) {
247
+ async newDeploy(release, options) {
251
248
  if (!options || !options.env) {
252
249
  throw new Error('options.env must be a vaild name');
253
250
  }
@@ -261,7 +258,7 @@ class Releases {
261
258
  * @param {boolean} live We inherit stdio to display `sentry-cli` output directly.
262
259
  * @returns {Promise.<string>} A promise that resolves to the standard output.
263
260
  */
264
- execute(args, live) {
261
+ async execute(args, live) {
265
262
  return helper.execute(args, live, this.options.silent, this.configFile, this.options);
266
263
  }
267
264
  }
@@ -11,6 +11,10 @@ module.exports = {
11
11
  param: '--dist',
12
12
  type: 'string',
13
13
  },
14
+ decompress: {
15
+ param: '--decompress',
16
+ type: 'boolean',
17
+ },
14
18
  rewrite: {
15
19
  param: '--rewrite',
16
20
  invertedParam: '--no-rewrite',
@@ -20,6 +24,10 @@ module.exports = {
20
24
  invertedParam: '--no-sourcemap-reference',
21
25
  type: 'boolean',
22
26
  },
27
+ dedupe: {
28
+ invertedParam: '--no-dedupe',
29
+ type: 'boolean',
30
+ },
23
31
  stripPrefix: {
24
32
  param: '--strip-prefix',
25
33
  type: 'array',
@@ -44,4 +52,8 @@ module.exports = {
44
52
  param: '--ext',
45
53
  type: 'array',
46
54
  },
55
+ useArtifactBundle: {
56
+ param: '--use-artifact-bundle',
57
+ type: 'boolean',
58
+ },
47
59
  };
package/package.json CHANGED
@@ -1,28 +1,34 @@
1
1
  {
2
2
  "name": "@sentry/cli",
3
- "version": "1.75.2",
3
+ "version": "1.77.0",
4
4
  "description": "A command line utility to work with Sentry. https://docs.sentry.io/hosted/learn/cli/",
5
+ "repository": "git://github.com/getsentry/sentry-cli.git",
5
6
  "homepage": "https://docs.sentry.io/hosted/learn/cli/",
7
+ "author": "Sentry",
6
8
  "license": "BSD-3-Clause",
7
- "keywords": [
8
- "sentry",
9
- "sentry-cli",
10
- "cli"
11
- ],
12
- "repository": {
13
- "type": "git",
14
- "url": "https://github.com/getsentry/sentry-cli"
15
- },
16
- "bugs": {
17
- "url": "https://github.com/getsentry/sentry-cli/issues"
18
- },
19
9
  "engines": {
20
- "node": ">= 8"
10
+ "node": ">= 10"
21
11
  },
22
12
  "main": "js/index.js",
13
+ "types": "js/index.d.ts",
23
14
  "bin": {
24
15
  "sentry-cli": "bin/sentry-cli"
25
16
  },
17
+ "dependencies": {
18
+ "https-proxy-agent": "^5.0.0",
19
+ "node-fetch": "^2.6.7",
20
+ "progress": "^2.0.3",
21
+ "proxy-from-env": "^1.1.0",
22
+ "which": "^2.0.2"
23
+ },
24
+ "devDependencies": {
25
+ "@vercel/nft": "^0.22.1",
26
+ "eslint": "^7.32.0",
27
+ "eslint-config-prettier": "^8.5.0",
28
+ "jest": "^27.5.1",
29
+ "npm-run-all": "^4.1.5",
30
+ "prettier": "^2.6.2"
31
+ },
26
32
  "scripts": {
27
33
  "install": "node ./scripts/install.js",
28
34
  "fix": "npm-run-all fix:eslint fix:prettier",
@@ -35,29 +41,11 @@
35
41
  "test:prettier": "prettier --check bin/* scripts/**/*.js js/**/*.js",
36
42
  "test:vercel-nft": "node scripts/test-vercel-nft.js"
37
43
  },
38
- "dependencies": {
39
- "https-proxy-agent": "^5.0.0",
40
- "mkdirp": "^0.5.5",
41
- "node-fetch": "^2.6.7",
42
- "progress": "^2.0.3",
43
- "proxy-from-env": "^1.1.0",
44
- "which": "^2.0.2"
45
- },
46
- "devDependencies": {
47
- "@vercel/nft": "^0.22.1",
48
- "eslint": "^6.8.0",
49
- "eslint-config-airbnb-base": "^14.1.0",
50
- "eslint-config-prettier": "^6.10.1",
51
- "eslint-plugin-import": "^2.20.2",
52
- "jest": "^25.3.0",
53
- "npm-run-all": "^4.1.5",
54
- "prettier": "^1.19.1"
55
- },
56
44
  "jest": {
57
45
  "collectCoverage": true,
58
46
  "testEnvironment": "node",
59
47
  "testPathIgnorePatterns": [
60
- "src/utils"
48
+ "<rootDir>/src"
61
49
  ]
62
50
  },
63
51
  "volta": {
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
  set -eux
3
3
 
4
- DOCKER_IMAGE="getsentry/rust-musl-cross:${DOCKER_TAG}"
4
+ DOCKER_IMAGE="messense/rust-musl-cross:${DOCKER_TAG}"
5
5
  BUILD_DIR="/work"
6
6
 
7
7
  DOCKER_RUN_OPTS="
@@ -9,7 +9,6 @@ DOCKER_RUN_OPTS="
9
9
  -v $(pwd):${BUILD_DIR}:ro
10
10
  -v $(pwd)/target:${BUILD_DIR}/target
11
11
  -v $HOME/.cargo/registry:/root/.cargo/registry
12
- -e ARMV7_UNKNOWN_LINUX_MUSLEABI_OPENSSL_NO_VENDOR=1
13
12
  ${DOCKER_IMAGE}
14
13
  "
15
14