@cubejs-backend/shared 1.7.19 → 1.7.20

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.
@@ -5,6 +5,23 @@ type ByteProgressCallback = (info: {
5
5
  speed: string;
6
6
  }) => void;
7
7
  export declare function streamWithProgress(response: Response, progressCallback: ByteProgressCallback): Promise<string>;
8
+ /**
9
+ * Extract a downloaded archive into `cwd`, which is created if missing.
10
+ *
11
+ * Dispatches on magic bytes, not the filename, because there is no filename to
12
+ * dispatch on: `streamWithProgress` saves downloads as
13
+ * `crypto.randomBytes(16).toString('hex')`, with no extension.
14
+ *
15
+ * Handles gzip (`.tar.gz` / `.tgz`), uncompressed tar and zip. Two gaps are
16
+ * deliberate and both throw a named error rather than failing obscurely: bzip2,
17
+ * and pre-POSIX v7 tars, which carry no `ustar` magic at offset 257 to detect them
18
+ * by.
19
+ *
20
+ * Neither backend writes outside `cwd`: `tar` strips a leading `/` on extraction and
21
+ * drops entries containing `..`, and `extract-zip` rejects entries that resolve outside
22
+ * the target.
23
+ */
24
+ export declare function extractArchive(archivePath: string, cwd: string): Promise<void>;
8
25
  type DownloadAndExtractFile = {
9
26
  showProgress: boolean;
10
27
  cwd: string;
@@ -1 +1 @@
1
- {"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":"AACA,OAAc,EAAoB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAc/D,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE7F,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,oBAAoB,GACrC,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED,KAAK,sBAAsB,GAAG;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,sBAAsB,iBAmDlH;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE"}
1
+ {"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":"AAEA,OAAc,EAAoB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAc/D,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE7F,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,oBAAoB,GACrC,OAAO,CAAC,MAAM,CAAC,CA2CjB;AA4CD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDpF;AAED,KAAK,sBAAsB,GAAG;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,sBAAsB,iBAmDlH;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE"}
@@ -26,8 +26,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.downloadAndGunzip = exports.downloadAndExtractFile = exports.streamWithProgress = void 0;
30
- const decompress_1 = __importDefault(require("decompress"));
29
+ exports.downloadAndGunzip = exports.downloadAndExtractFile = exports.extractArchive = exports.streamWithProgress = void 0;
30
+ const tar = __importStar(require("tar"));
31
+ const extract_zip_1 = __importDefault(require("extract-zip"));
31
32
  const node_fetch_1 = __importStar(require("node-fetch"));
32
33
  const bytes_1 = __importDefault(require("bytes"));
33
34
  const throttle_debounce_1 = require("throttle-debounce");
@@ -72,6 +73,98 @@ async function streamWithProgress(response, progressCallback) {
72
73
  });
73
74
  }
74
75
  exports.streamWithProgress = streamWithProgress;
76
+ /**
77
+ * Options shared by every `tar.x` call here.
78
+ *
79
+ * `preserveOwner` defaults to true when running as root, which is the normal case
80
+ * inside the Cube image; extracted files would then take whatever uid/gid the
81
+ * tarball recorded. Writing as the current user matches how this path has always
82
+ * behaved.
83
+ *
84
+ * `onwarn` is load-bearing: tar *drops* unsafe entries with a warning rather than
85
+ * failing, so an archive consisting only of `../evil` would extract to nothing and
86
+ * resolve successfully, leaving the caller to fail later on a confusing
87
+ * missing-file error.
88
+ *
89
+ * Only `TAR_ENTRY_ERROR` goes through `internalExceptions`, deliberately: that
90
+ * helper calls `process.exit(1)` under `CUBEJS_INTERNAL_EXCEPTIONS=exit`, and tar
91
+ * also warns about benign conditions (unsupported entry types such as fifos and
92
+ * devices, `TAR_ENTRY_INVALID`, failed utime/chown). Routing those through it
93
+ * would let one odd entry in a third-party tarball take the process down
94
+ * mid-download, where previously it extracted and carried on.
95
+ *
96
+ * `TAR_ENTRY_ERROR` is not only the path-rejection code — measured, tar reports
97
+ * per-entry write failures through it too (a read-only target raises it once per
98
+ * entry, same as a `..` name does). Both belong on this side of the split: a
99
+ * half-extracted install is a real failure, and escalating it is what the opt-in
100
+ * `exit` setting asks for. Everything else is logged and ignored, as tar treats
101
+ * it.
102
+ */
103
+ const tarOptions = {
104
+ preserveOwner: false,
105
+ onwarn: (code, message) => {
106
+ const warning = `tar skipped an entry while extracting (${code}): ${message}`;
107
+ if (code === 'TAR_ENTRY_ERROR') {
108
+ (0, errors_1.internalExceptions)(new Error(warning));
109
+ return;
110
+ }
111
+ console.warn(warning);
112
+ },
113
+ };
114
+ /**
115
+ * Extract a downloaded archive into `cwd`, which is created if missing.
116
+ *
117
+ * Dispatches on magic bytes, not the filename, because there is no filename to
118
+ * dispatch on: `streamWithProgress` saves downloads as
119
+ * `crypto.randomBytes(16).toString('hex')`, with no extension.
120
+ *
121
+ * Handles gzip (`.tar.gz` / `.tgz`), uncompressed tar and zip. Two gaps are
122
+ * deliberate and both throw a named error rather than failing obscurely: bzip2,
123
+ * and pre-POSIX v7 tars, which carry no `ustar` magic at offset 257 to detect them
124
+ * by.
125
+ *
126
+ * Neither backend writes outside `cwd`: `tar` strips a leading `/` on extraction and
127
+ * drops entries containing `..`, and `extract-zip` rejects entries that resolve outside
128
+ * the target.
129
+ */
130
+ async function extractArchive(archivePath, cwd) {
131
+ // `extract-zip` creates its target but `tar.x` throws `CwdError` when it is
132
+ // missing, so without this the contract would depend on the archive's format —
133
+ // which callers cannot know in advance, that being the point of magic-byte dispatch.
134
+ (0, fs_extra_1.mkdirpSync)(cwd);
135
+ // 262 bytes: enough for the `ustar` magic a plain tar carries at offset 257.
136
+ const header = Buffer.alloc(262);
137
+ const fd = await fs_1.default.promises.open(archivePath, 'r');
138
+ let bytesRead;
139
+ try {
140
+ ({ bytesRead } = await fd.read(header, 0, header.length, 0));
141
+ }
142
+ finally {
143
+ await fd.close();
144
+ }
145
+ const startsWith = (...magic) => bytesRead >= magic.length && magic.every((byte, i) => header[i] === byte);
146
+ // gzip (1f 8b) covers .tar.gz/.tgz; `tar.x` gunzips transparently.
147
+ if (startsWith(0x1f, 0x8b)) {
148
+ await tar.x({ file: archivePath, cwd, ...tarOptions });
149
+ return;
150
+ }
151
+ // zip: the two-byte "PK" prefix, shared by a local file header and by the
152
+ // end-of-central-directory record that an empty archive consists of.
153
+ if (startsWith(0x50, 0x4b)) {
154
+ await (0, extract_zip_1.default)(archivePath, { dir: path.resolve(cwd) });
155
+ return;
156
+ }
157
+ // Uncompressed tar: "ustar" at offset 257.
158
+ if (bytesRead >= 262 && header.subarray(257, 262).toString('latin1') === 'ustar') {
159
+ await tar.x({ file: archivePath, cwd, ...tarOptions });
160
+ return;
161
+ }
162
+ if (startsWith(0x42, 0x5a, 0x68)) {
163
+ throw new Error('Unsupported archive format: bzip2. Supported formats are gzip (.tar.gz/.tgz), tar and zip.');
164
+ }
165
+ throw new Error('Unable to detect archive format from its contents. Supported formats are gzip (.tar.gz/.tgz), tar and zip.');
166
+ }
167
+ exports.extractArchive = extractArchive;
75
168
  async function downloadAndExtractFile(url, { cwd, skipExtract, dstFileName }) {
76
169
  const request = new node_fetch_1.Request(url, {
77
170
  headers: new node_fetch_1.Headers({
@@ -111,7 +204,7 @@ async function downloadAndExtractFile(url, { cwd, skipExtract, dstFileName }) {
111
204
  }
112
205
  }
113
206
  else {
114
- await (0, decompress_1.default)(savedFilePath, cwd);
207
+ await extractArchive(savedFilePath, cwd);
115
208
  }
116
209
  try {
117
210
  fs_1.default.unlinkSync(savedFilePath);
@@ -1 +1 @@
1
- {"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAC3B,8DAAqC;AACrC,yDAA+D;AAC/D,kDAA0B;AAC1B,yDAA6C;AAC7C,+CAAyC;AACzC,uCAAsC;AACtC,4CAAoB;AACpB,uCAAyB;AACzB,oDAA4B;AAC5B,2CAA6B;AAC7B,+BAAkC;AAElC,qCAA8C;AAC9C,mCAAuD;AAIhD,KAAK,UAAU,kBAAkB,CACtC,QAAkB,EAClB,gBAAsC;IAEtC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,MAAM,SAAS,GAAG,IAAA,4BAAQ,EACxB,EAAE,EACF,GAAG,EAAE;QACH,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;QAC5B,MAAM,KAAK,GAAG,GAAG,IAAA,eAAK,EAAC,IAAI,CAAC,IAAI,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAM,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC;QAEhC,gBAAgB,CAAC;YACf,QAAQ;YACR,GAAG;YACH,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,YAAE,CAAC,iBAAiB,CACjC,YAAY,CACb,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACjC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAChB,CAAC,OAAO,EAAE,EAAE;QACV,uFAAuF;QACvF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvB,OAAO,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC;AA9CD,gDA8CC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,0CAA0C,IAAI,MAAM,OAAO,EAAE,CAAC;QAE9E,IAAI,IAAI,KAAK,iBAAiB,EAAE;YAC9B,IAAA,2BAAkB,EAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvC,OAAO;SACR;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,GAAW;IACnE,4EAA4E;IAC5E,+EAA+E;IAC/E,qFAAqF;IACrF,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IAEhB,6EAA6E;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEpD,IAAI,SAAiB,CAAC;IAEtB,IAAI;QACF,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;KAC9D;YAAS;QACR,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;KAClB;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,KAAe,EAAE,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAErH,mEAAmE;IACnE,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;QACvD,OAAO;KACR;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAC1B,MAAM,IAAA,qBAAU,EAAC,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO;KACR;IAED,2CAA2C;IAC3C,IAAI,SAAS,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,OAAO,EAAE;QAChF,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;QACvD,OAAO;KACR;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;KACH;IAED,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;AACJ,CAAC;AAhDD,wCAgDC;AASM,KAAK,UAAU,sBAAsB,CAAC,GAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAA0B;IACjH,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,GAAG,EAAE;QAC/B,OAAO,EAAE,IAAI,oBAAO,CAAC;YACnB,cAAc,EAAE,0BAA0B;SAC3C,CAAC;QACF,KAAK,EAAE,MAAM,IAAA,oCAA4B,GAAE;KAC5C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;KAC/D;IAED,MAAM,GAAG,GAAG,IAAI,wBAAS,CAAC;QACxB,MAAM,EAAE,oDAAoD;KAC7D,CAAC,CAAC;IACH,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAElB,IAAI;QACF,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;KACjB;IAAC,OAAO,CAAM,EAAE;QACf,IAAA,2BAAkB,EAAC,CAAC,CAAC,CAAC;KACvB;IAED,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;QACpF,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;YACnB,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,EAAE;YACf,YAAE,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;SAC3E;aAAM;YACL,qCAAqC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7C,YAAE,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;SAC1C;KACF;SAAM;QACL,MAAM,cAAc,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAC1C;IAED,IAAI;QACF,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC9B;IAAC,OAAO,CAAM,EAAE;QACf,IAAA,2BAAkB,EAAC,CAAC,CAAC,CAAC;KACvB;IAED,GAAG,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AAnDD,wDAmDC;AAEM,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAU,EAAC,EAAE,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AALD,8CAKC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cubejs-backend/shared",
3
- "version": "1.7.19",
3
+ "version": "1.7.20",
4
4
  "description": "Shared code for Cube.js backend packages",
5
5
  "main": "dist/src/index.js",
6
6
  "typings": "dist/src/index.d.ts",
@@ -27,10 +27,9 @@
27
27
  },
28
28
  "license": "Apache-2.0",
29
29
  "devDependencies": {
30
- "@cubejs-backend/linter": "1.7.19",
30
+ "@cubejs-backend/linter": "1.7.20",
31
31
  "@types/bytes": "^3.1.5",
32
32
  "@types/cli-progress": "^3.9.1",
33
- "@types/decompress": "^4.2.7",
34
33
  "@types/jest": "^29",
35
34
  "@types/node": "^22",
36
35
  "@types/node-fetch": "^2.5.8",
@@ -45,8 +44,8 @@
45
44
  "bytes": "^3.1.2",
46
45
  "cli-progress": "^3.9.0",
47
46
  "cross-spawn": "^7.0.3",
48
- "decompress": "^4.2.1",
49
47
  "env-var": "^6.3.0",
48
+ "extract-zip": "^2.0.1",
50
49
  "fs-extra": "^9.1.0",
51
50
  "generic-pool": "^3.9.0",
52
51
  "lru-cache": "^11.1.0",
@@ -55,8 +54,9 @@
55
54
  "node-fetch": "^2.6.1",
56
55
  "proxy-agent": "^6.5.0",
57
56
  "shelljs": "^0.8.5",
57
+ "tar": "^7.5.22",
58
58
  "throttle-debounce": "^3.0.1",
59
- "uuid": "^8.3.2"
59
+ "uuid": "^11.1.1"
60
60
  },
61
61
  "publishConfig": {
62
62
  "access": "public"
@@ -67,5 +67,5 @@
67
67
  "resolutions": {
68
68
  "colors": "1.4.0"
69
69
  },
70
- "gitHead": "bea3db53ab7efe9e353af1159af7d0db30f744cf"
70
+ "gitHead": "e77835a29bd4a1222a85ceda3551e3ddd6a19636"
71
71
  }