keycloakify 7.3.1 → 7.3.3

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 (45) hide show
  1. package/bin/download-builtin-keycloak-theme.js +3 -3
  2. package/bin/download-builtin-keycloak-theme.js.map +1 -1
  3. package/bin/eject-keycloak-page.js +2 -2
  4. package/bin/eject-keycloak-page.js.map +1 -1
  5. package/bin/initialize-email-theme.d.ts +1 -3
  6. package/bin/initialize-email-theme.js +4 -9
  7. package/bin/initialize-email-theme.js.map +1 -1
  8. package/bin/keycloakify/BuildOptions.d.ts +3 -4
  9. package/bin/keycloakify/BuildOptions.js +8 -25
  10. package/bin/keycloakify/BuildOptions.js.map +1 -1
  11. package/bin/keycloakify/build-paths.d.ts +12 -0
  12. package/bin/keycloakify/build-paths.js +93 -0
  13. package/bin/keycloakify/build-paths.js.map +1 -0
  14. package/bin/keycloakify/index.js +1 -1
  15. package/bin/keycloakify/index.js.map +1 -1
  16. package/bin/keycloakify/keycloakify.d.ts +0 -1
  17. package/bin/keycloakify/keycloakify.js +13 -15
  18. package/bin/keycloakify/keycloakify.js.map +1 -1
  19. package/bin/keycloakify/parsed-package-json.d.ts +20 -0
  20. package/bin/keycloakify/parsed-package-json.js +62 -0
  21. package/bin/keycloakify/parsed-package-json.js.map +1 -0
  22. package/bin/tools/downloadAndUnzip.d.ts +1 -1
  23. package/bin/tools/downloadAndUnzip.js +16 -16
  24. package/bin/tools/downloadAndUnzip.js.map +1 -1
  25. package/bin/tools/jar.js +2 -2
  26. package/bin/tools/jar.js.map +1 -1
  27. package/bin/tools/unzip.d.ts +1 -30
  28. package/bin/tools/unzip.js +99 -288
  29. package/bin/tools/unzip.js.map +1 -1
  30. package/package.json +13 -6
  31. package/src/bin/download-builtin-keycloak-theme.ts +3 -4
  32. package/src/bin/eject-keycloak-page.ts +1 -1
  33. package/src/bin/initialize-email-theme.ts +2 -10
  34. package/src/bin/keycloakify/BuildOptions.ts +13 -52
  35. package/src/bin/keycloakify/build-paths.ts +72 -0
  36. package/src/bin/keycloakify/index.ts +1 -1
  37. package/src/bin/keycloakify/keycloakify.ts +12 -16
  38. package/src/bin/keycloakify/parsed-package-json.ts +58 -0
  39. package/src/bin/tools/downloadAndUnzip.ts +5 -11
  40. package/src/bin/tools/jar.ts +2 -2
  41. package/src/bin/tools/unzip.ts +82 -174
  42. package/bin/getThemeSrcDirPath.d.ts +0 -5
  43. package/bin/getThemeSrcDirPath.js +0 -53
  44. package/bin/getThemeSrcDirPath.js.map +0 -1
  45. package/src/bin/getThemeSrcDirPath.ts +0 -33
@@ -149,31 +149,31 @@ function getNpmProxyConfig() {
149
149
  });
150
150
  });
151
151
  }
152
- function downloadAndUnzip(_a) {
153
- var _b, _c;
154
- var url = _a.url, destDirPath = _a.destDirPath, pathOfDirToExtractInArchive = _a.pathOfDirToExtractInArchive;
152
+ function downloadAndUnzip(params) {
153
+ var _a, _b;
155
154
  return __awaiter(this, void 0, void 0, function () {
156
- var downloadHash, projectRoot, cacheRoot, zipFilePath, extractDirPath, proxyOpts, response;
157
- return __generator(this, function (_d) {
158
- switch (_d.label) {
155
+ var url, destDirPath, pathOfDirToExtractInArchive, downloadHash, projectRoot, cacheRoot, zipFilePath, extractDirPath, proxyOpts, response;
156
+ return __generator(this, function (_c) {
157
+ switch (_c.label) {
159
158
  case 0:
159
+ url = params.url, destDirPath = params.destDirPath, pathOfDirToExtractInArchive = params.pathOfDirToExtractInArchive;
160
160
  downloadHash = hash(JSON.stringify({ url: url })).substring(0, 15);
161
161
  projectRoot = (0, getProjectRoot_1.getProjectRoot)();
162
- cacheRoot = (_b = process.env.XDG_CACHE_HOME) !== null && _b !== void 0 ? _b : "".concat(projectRoot, "/node_modules/.cache");
162
+ cacheRoot = (_a = process.env.XDG_CACHE_HOME) !== null && _a !== void 0 ? _a : (0, path_1.join)(projectRoot, "node_modules", ".cache");
163
163
  zipFilePath = (0, path_1.join)(cacheRoot, "keycloakify", "zip", "_".concat(downloadHash, ".zip"));
164
164
  extractDirPath = (0, path_1.join)(cacheRoot, "keycloakify", "unzip", "_".concat(downloadHash));
165
165
  return [4 /*yield*/, exists(zipFilePath)];
166
166
  case 1:
167
- if (!!(_d.sent())) return [3 /*break*/, 6];
167
+ if (!!(_c.sent())) return [3 /*break*/, 6];
168
168
  return [4 /*yield*/, getNpmProxyConfig()];
169
169
  case 2:
170
- proxyOpts = _d.sent();
170
+ proxyOpts = _c.sent();
171
171
  return [4 /*yield*/, (0, make_fetch_happen_1.default)(url, proxyOpts)];
172
172
  case 3:
173
- response = _d.sent();
174
- return [4 /*yield*/, (0, promises_1.mkdir)((0, path_1.dirname)(zipFilePath), { recursive: true })];
173
+ response = _c.sent();
174
+ return [4 /*yield*/, (0, promises_1.mkdir)((0, path_1.dirname)(zipFilePath), { "recursive": true })];
175
175
  case 4:
176
- _d.sent();
176
+ _c.sent();
177
177
  /**
178
178
  * The correct way to fix this is to upgrade node-fetch beyond 3.2.5
179
179
  * (see https://github.com/node-fetch/node-fetch/issues/1295#issuecomment-1144061991.)
@@ -181,15 +181,15 @@ function downloadAndUnzip(_a) {
181
181
  * does not support node-fetch 3.x. So we stick around with this band-aid until
182
182
  * octokit upgrades.
183
183
  */
184
- (_c = response.body) === null || _c === void 0 ? void 0 : _c.setMaxListeners(Number.MAX_VALUE);
184
+ (_b = response.body) === null || _b === void 0 ? void 0 : _b.setMaxListeners(Number.MAX_VALUE);
185
185
  (0, tsafe_1.assert)(typeof response.body !== "undefined" && response.body != null);
186
186
  return [4 /*yield*/, (0, promises_1.writeFile)(zipFilePath, response.body)];
187
187
  case 5:
188
- _d.sent();
189
- _d.label = 6;
188
+ _c.sent();
189
+ _c.label = 6;
190
190
  case 6: return [4 /*yield*/, (0, unzip_1.unzip)(zipFilePath, extractDirPath, pathOfDirToExtractInArchive)];
191
191
  case 7:
192
- _d.sent();
192
+ _c.sent();
193
193
  (0, transformCodebase_1.transformCodebase)({
194
194
  "srcDirPath": extractDirPath,
195
195
  "destDirPath": destDirPath
@@ -1 +1 @@
1
- {"version":3,"file":"downloadAndUnzip.js","sourceRoot":"","sources":["../../src/bin/tools/downloadAndUnzip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"downloadAndUnzip.js","sourceRoot":"","sources":["../../src/bin/tools/downloadAndUnzip.ts"],"names":[],"mappings":"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"}
package/bin/tools/jar.js CHANGED
@@ -68,7 +68,7 @@ function jar(_a) {
68
68
  };
69
69
  pomProps = {
70
70
  path: "META-INF/maven/".concat(groupId, "/").concat(artifactId, "/pom.properties"),
71
- data: Buffer.from((0, trimIndent_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["# Generated by keycloakify\n # ", "\n artifactId=", "\n groupId=", "\n version=", "\n "], ["# Generated by keycloakify\n # ", "\n artifactId=", "\n groupId=", "\n version=", "\n "])), new Date(), artifactId, groupId, version))
71
+ data: Buffer.from((0, trimIndent_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["# Generated by keycloakify\n # ", "\n artifactId=", "\n groupId=", "\n version=", "\n "], ["# Generated by keycloakify\n # ", "\n artifactId=", "\n groupId=", "\n version=", "\n "])), new Date().toString(), artifactId, groupId, version))
72
72
  };
73
73
  pathToRecord = function () {
74
74
  return new stream_1.Transform({
@@ -124,7 +124,7 @@ if (require.main === module) {
124
124
  version: (_c = process.env.VERSION) !== null && _c !== void 0 ? _c : "1.0.0"
125
125
  });
126
126
  };
127
- main().catch(function (e) { return console.error(e); });
127
+ main();
128
128
  }
129
129
  var templateObject_1, templateObject_2;
130
130
  //# sourceMappingURL=jar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jar.js","sourceRoot":"","sources":["../../src/bin/tools/jar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jar.js","sourceRoot":"","sources":["../../src/bin/tools/jar.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1 @@
1
- export type MultiError = Error & {
2
- cause: Error[];
3
- };
4
- /**
5
- * Extract the archive `zipFile` into the directory `dir`. If `archiveDir` is given,
6
- * only that directory will be extracted, stripping the given path components.
7
- *
8
- * If dir does not exist, it will be created.
9
- *
10
- * If any archive file exists, it will be overwritten.
11
- *
12
- * Will unzip using all available nodejs worker threads.
13
- *
14
- * Will try to clean up extracted files on failure.
15
- *
16
- * If unpacking fails, will either throw an regular error, or
17
- * possibly an `MultiError`, which contains a `cause` field with
18
- * a number of root cause errors.
19
- *
20
- * Warning this method is not optimized for continuous reading of the zip
21
- * archive, but is a trade-off between simplicity and allowing extraction
22
- * of a single directory from the archive.
23
- *
24
- * @param zipFilePath the file to unzip
25
- * @param extractDirPath the target directory
26
- * @param pathOfDirToExtractInArchive if given, unpack only files from this archive directory
27
- * @throws {MultiError} error
28
- * @returns Promise for a list of full file paths pointing to actually extracted files
29
- */
30
- export declare function unzip(zipFilePath: string, extractDirPath: string, pathOfDirToExtractInArchive?: string): Promise<string[]>;
1
+ export declare function unzip(file: string, targetFolder: string, unzipSubPath?: string): Promise<void>;
@@ -35,311 +35,122 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
- var __asyncValues = (this && this.__asyncValues) || function (o) {
39
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
40
- var m = o[Symbol.asyncIterator], i;
41
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
42
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
43
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
44
- };
45
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
46
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
47
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
48
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
49
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
50
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
51
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
52
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
53
- function fulfill(value) { resume("next", value); }
54
- function reject(value) { resume("throw", value); }
55
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
56
- };
57
- var __read = (this && this.__read) || function (o, n) {
58
- var m = typeof Symbol === "function" && o[Symbol.iterator];
59
- if (!m) return o;
60
- var i = m.call(o), r, ar = [], e;
61
- try {
62
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
63
- }
64
- catch (error) { e = { error: error }; }
65
- finally {
66
- try {
67
- if (r && !r.done && (m = i["return"])) m.call(i);
68
- }
69
- finally { if (e) throw e.error; }
70
- }
71
- return ar;
72
- };
73
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
74
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
75
- if (ar || !(i in from)) {
76
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
77
- ar[i] = from[i];
78
- }
79
- }
80
- return to.concat(ar || Array.prototype.slice.call(from));
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
81
40
  };
82
41
  Object.defineProperty(exports, "__esModule", { value: true });
83
42
  exports.unzip = void 0;
84
- var fs_1 = require("fs");
85
- var promises_1 = require("fs/promises");
86
- var path_1 = require("path");
87
- var zlib_1 = require("zlib");
88
- var partitionPromiseSettledResults_1 = require("./partitionPromiseSettledResults");
89
- /**
90
- * Extract the archive `zipFile` into the directory `dir`. If `archiveDir` is given,
91
- * only that directory will be extracted, stripping the given path components.
92
- *
93
- * If dir does not exist, it will be created.
94
- *
95
- * If any archive file exists, it will be overwritten.
96
- *
97
- * Will unzip using all available nodejs worker threads.
98
- *
99
- * Will try to clean up extracted files on failure.
100
- *
101
- * If unpacking fails, will either throw an regular error, or
102
- * possibly an `MultiError`, which contains a `cause` field with
103
- * a number of root cause errors.
104
- *
105
- * Warning this method is not optimized for continuous reading of the zip
106
- * archive, but is a trade-off between simplicity and allowing extraction
107
- * of a single directory from the archive.
108
- *
109
- * @param zipFilePath the file to unzip
110
- * @param extractDirPath the target directory
111
- * @param pathOfDirToExtractInArchive if given, unpack only files from this archive directory
112
- * @throws {MultiError} error
113
- * @returns Promise for a list of full file paths pointing to actually extracted files
114
- */
115
- function unzip(zipFilePath, extractDirPath, pathOfDirToExtractInArchive) {
116
- var _a, e_1, _b, _c;
43
+ var promises_1 = __importDefault(require("node:fs/promises"));
44
+ var fs_1 = __importDefault(require("fs"));
45
+ var node_path_1 = __importDefault(require("node:path"));
46
+ var yauzl_1 = __importDefault(require("yauzl"));
47
+ var node_stream_1 = __importDefault(require("node:stream"));
48
+ var node_util_1 = require("node:util");
49
+ var pipeline = (0, node_util_1.promisify)(node_stream_1.default.pipeline);
50
+ function pathExists(path) {
117
51
  return __awaiter(this, void 0, void 0, function () {
118
- var dirsCreated, _d, _e, promises, _loop_1, _f, _g, _h, e_1_1, _j, success, failure, e;
119
- var _k;
120
- var _this = this;
121
- return __generator(this, function (_l) {
122
- switch (_l.label) {
52
+ var error_1;
53
+ return __generator(this, function (_a) {
54
+ switch (_a.label) {
123
55
  case 0:
124
- dirsCreated = [];
125
- _e = (_d = dirsCreated).push;
126
- return [4 /*yield*/, (0, promises_1.mkdir)(extractDirPath, { recursive: true })];
56
+ _a.trys.push([0, 2, , 3]);
57
+ return [4 /*yield*/, promises_1.default.stat(path)];
127
58
  case 1:
128
- _e.apply(_d, [_l.sent()]);
129
- promises = [];
130
- _l.label = 2;
59
+ _a.sent();
60
+ return [2 /*return*/, true];
131
61
  case 2:
132
- _l.trys.push([2, 7, 8, 13]);
133
- _loop_1 = function () {
134
- _c = _h.value;
135
- _f = false;
136
- try {
137
- var record = _c;
138
- var recordPath = record.path, createRecordReadStream = record.createReadStream;
139
- if (pathOfDirToExtractInArchive && !recordPath.startsWith(pathOfDirToExtractInArchive)) {
140
- return "continue";
141
- }
142
- var relativePath = pathOfDirToExtractInArchive ? (0, path_1.relative)(pathOfDirToExtractInArchive, recordPath) : recordPath;
143
- var filePath = (0, path_1.join)(extractDirPath, relativePath);
144
- var parent_1 = (0, path_1.dirname)(filePath);
145
- promises.push(new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
146
- var _a, _b, output;
147
- return __generator(this, function (_c) {
148
- switch (_c.label) {
149
- case 0:
150
- if (!!dirsCreated.includes(parent_1)) return [3 /*break*/, 2];
151
- _b = (_a = dirsCreated).push;
152
- return [4 /*yield*/, (0, promises_1.mkdir)(parent_1, { recursive: true })];
153
- case 1:
154
- _b.apply(_a, [_c.sent()]);
155
- _c.label = 2;
156
- case 2:
157
- output = (0, fs_1.createWriteStream)(filePath);
158
- output.on("error", function (e) { return reject(Object.assign(e, { filePath: filePath })); });
159
- output.on("finish", function () { return resolve(filePath); });
160
- createRecordReadStream().pipe(output);
161
- return [2 /*return*/];
162
- }
163
- });
164
- }); }));
165
- }
166
- finally {
167
- _f = true;
168
- }
169
- };
170
- _f = true, _g = __asyncValues(iterateZipArchive(zipFilePath));
171
- _l.label = 3;
172
- case 3: return [4 /*yield*/, _g.next()];
173
- case 4:
174
- if (!(_h = _l.sent(), _a = _h.done, !_a)) return [3 /*break*/, 6];
175
- _loop_1();
176
- _l.label = 5;
177
- case 5: return [3 /*break*/, 3];
178
- case 6: return [3 /*break*/, 13];
179
- case 7:
180
- e_1_1 = _l.sent();
181
- e_1 = { error: e_1_1 };
182
- return [3 /*break*/, 13];
183
- case 8:
184
- _l.trys.push([8, , 11, 12]);
185
- if (!(!_f && !_a && (_b = _g.return))) return [3 /*break*/, 10];
186
- return [4 /*yield*/, _b.call(_g)];
187
- case 9:
188
- _l.sent();
189
- _l.label = 10;
190
- case 10: return [3 /*break*/, 12];
191
- case 11:
192
- if (e_1) throw e_1.error;
193
- return [7 /*endfinally*/];
194
- case 12: return [7 /*endfinally*/];
195
- case 13: return [4 /*yield*/, Promise.allSettled(promises)];
196
- case 14:
197
- _j = __read.apply(void 0, [(_k = (_l.sent())).reduce.apply(_k, __spreadArray([], __read((0, partitionPromiseSettledResults_1.partitionPromiseSettledResults)()), false)), 2]), success = _j[0], failure = _j[1];
198
- if (!failure.length) return [3 /*break*/, 17];
199
- return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([], __read(success.map(function (path) { return (0, promises_1.unlink)(path).catch(function (_unused) { return undefined; }); })), false), __read(failure.map(function (e) { return e && e.path && (0, promises_1.unlink)(e.path).catch(function (_unused) { return undefined; }); })), false))];
200
- case 15:
201
- _l.sent();
202
- return [4 /*yield*/, Promise.all(dirsCreated.filter(Boolean).sort(sortByFolderDepth("desc")))];
203
- case 16:
204
- _l.sent();
205
- e = new Error("Failed to extract: " + failure.map(function (e) { return e.message; }).join(";"));
206
- e.cause = failure;
207
- throw e;
208
- case 17: return [2 /*return*/, success];
62
+ error_1 = _a.sent();
63
+ if (error_1.code === "ENOENT") {
64
+ return [2 /*return*/, false];
65
+ }
66
+ throw error_1;
67
+ case 3: return [2 /*return*/];
209
68
  }
210
69
  });
211
70
  });
212
71
  }
213
- exports.unzip = unzip;
214
- function depth(dir) {
215
- var _a, _b;
216
- return (_b = (_a = dir.match(/\//g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
217
- }
218
- function sortByFolderDepth(order) {
219
- var ord = order === "asc" ? 1 : -1;
220
- return function (a, b) { return ord * depth(a !== null && a !== void 0 ? a : "") + -ord * depth(b !== null && b !== void 0 ? b : ""); };
221
- }
222
- /**
223
- *
224
- * @param file file to read
225
- * @param start first byte to read
226
- * @param end last byte to read
227
- * @returns Promise of a buffer of read bytes
228
- */
229
- function readFileChunk(file, start, end) {
72
+ function unzip(file, targetFolder, unzipSubPath) {
230
73
  return __awaiter(this, void 0, void 0, function () {
231
- var chunks;
74
+ var _this = this;
232
75
  return __generator(this, function (_a) {
233
- chunks = [];
76
+ // add trailing slash to unzipSubPath and targetFolder
77
+ if (unzipSubPath && (!unzipSubPath.endsWith("/") || !unzipSubPath.endsWith("\\"))) {
78
+ unzipSubPath += "/";
79
+ }
80
+ if (!targetFolder.endsWith("/") || !targetFolder.endsWith("\\")) {
81
+ targetFolder += "/";
82
+ }
83
+ if (!fs_1.default.existsSync(targetFolder)) {
84
+ fs_1.default.mkdirSync(targetFolder, { recursive: true });
85
+ }
234
86
  return [2 /*return*/, new Promise(function (resolve, reject) {
235
- var stream = (0, fs_1.createReadStream)(file, { start: start, end: end });
236
- stream.setMaxListeners(Infinity);
237
- stream.on("error", function (e) { return reject(e); });
238
- stream.on("end", function () { return resolve(Buffer.concat(chunks)); });
239
- stream.on("data", function (chunk) { return chunks.push(chunk); });
240
- })];
241
- });
242
- });
243
- }
244
- /**
245
- * Iterate over all records of a zipfile, and yield a ZipRecord.
246
- * Use `record.createReadStream()` to actually read the file.
247
- *
248
- * Warning this method will only work with single-disk zip files.
249
- * Warning this method may fail if the zip archive has an crazy amount
250
- * of files and the central directory is not fully contained within the
251
- * last 65k bytes of the zip file.
252
- *
253
- * @param zipFile
254
- * @returns AsyncGenerator which will yield ZipRecords
255
- */
256
- function iterateZipArchive(zipFile) {
257
- return __asyncGenerator(this, arguments, function iterateZipArchive_1() {
258
- var size, chunkSize, chunk, unread, i, found, nFiles, directorySize, directoryOffset, _loop_2;
259
- return __generator(this, function (_a) {
260
- switch (_a.label) {
261
- case 0: return [4 /*yield*/, __await((0, promises_1.stat)(zipFile))];
262
- case 1:
263
- size = (_a.sent()).size;
264
- chunkSize = 65535 + 22 + 1;
265
- return [4 /*yield*/, __await(readFileChunk(zipFile, size - chunkSize, size))];
266
- case 2:
267
- chunk = _a.sent();
268
- unread = size - chunk.length;
269
- i = chunk.length - 4;
270
- found = false;
271
- // Find central directory end header, reading backwards from the end
272
- while (!found && i-- > 0)
273
- if (chunk[i] === 0x50 && chunk.readUInt32LE(i) === 0x06054b50)
274
- found = true;
275
- if (!found)
276
- throw new Error("Not a zip file");
277
- // This method will fail on a multi-disk zip, so bail early.
278
- if (chunk.readUInt16LE(i + 4) !== 0)
279
- throw new Error("Multi-disk zip not supported");
280
- nFiles = chunk.readUint16LE(i + 10);
281
- directorySize = chunk.readUint32LE(i + 12);
282
- directoryOffset = chunk.readUint32LE(i + 16);
283
- if (directoryOffset === 4294967295)
284
- throw new Error("zip64 not supported");
285
- if (directoryOffset > size)
286
- throw new Error("Central directory offset ".concat(directoryOffset, " is outside file"));
287
- i = directoryOffset - unread;
288
- if (!(i < 0)) return [3 /*break*/, 4];
289
- return [4 /*yield*/, __await(readFileChunk(zipFile, directoryOffset, directoryOffset + directorySize))];
290
- case 3:
291
- chunk = _a.sent();
292
- i = 0;
293
- _a.label = 4;
294
- case 4:
295
- _loop_2 = function () {
296
- var compressionMethod, compressedFileSize, filenameLength, extraLength, commentLength, start, end, filename, createRecordReadStream;
297
- return __generator(this, function (_b) {
298
- switch (_b.label) {
299
- case 0:
300
- // Check for marker bytes
301
- if (chunk.readUInt32LE(i) !== 0x02014b50)
302
- throw new Error("No central directory record at position " + (unread + i));
303
- compressionMethod = { 8: "deflate" }[chunk.readUint16LE(i + 10)];
304
- compressedFileSize = chunk.readUint32LE(i + 20);
305
- filenameLength = chunk.readUint16LE(i + 28);
306
- extraLength = chunk.readUint16LE(i + 30);
307
- commentLength = chunk.readUint16LE(i + 32);
308
- start = chunk.readUint32LE(i + 42) + 30 + filenameLength + extraLength;
309
- end = start + compressedFileSize;
310
- filename = chunk.slice(i + 46, i + 46 + filenameLength).toString("utf-8");
311
- createRecordReadStream = function () {
312
- var input = (0, fs_1.createReadStream)(zipFile, { start: start, end: end });
313
- if (compressionMethod === "deflate") {
314
- var inflate = (0, zlib_1.createInflateRaw)();
315
- input.pipe(inflate);
316
- return inflate;
317
- }
318
- return input;
319
- };
320
- if (!(end > start)) return [3 /*break*/, 3];
321
- return [4 /*yield*/, __await({ path: filename, createReadStream: createRecordReadStream, compressionMethod: compressionMethod })];
322
- case 1: return [4 /*yield*/, _b.sent()];
323
- case 2:
324
- _b.sent();
325
- _b.label = 3;
326
- case 3:
327
- // advance pointer to next central directory entry
328
- i += 46 + filenameLength + extraLength + commentLength;
329
- return [2 /*return*/];
87
+ yauzl_1.default.open(file, { lazyEntries: true }, function (err, zipfile) { return __awaiter(_this, void 0, void 0, function () {
88
+ var _this = this;
89
+ return __generator(this, function (_a) {
90
+ if (err) {
91
+ reject(err);
92
+ return [2 /*return*/];
330
93
  }
94
+ zipfile.readEntry();
95
+ zipfile.on("entry", function (entry) { return __awaiter(_this, void 0, void 0, function () {
96
+ var target;
97
+ var _this = this;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ if (unzipSubPath) {
102
+ // Skip files outside of the unzipSubPath
103
+ if (!entry.fileName.startsWith(unzipSubPath)) {
104
+ zipfile.readEntry();
105
+ return [2 /*return*/];
106
+ }
107
+ // Remove the unzipSubPath from the file name
108
+ entry.fileName = entry.fileName.substring(unzipSubPath.length);
109
+ }
110
+ target = node_path_1.default.join(targetFolder, entry.fileName);
111
+ if (!/[\/\\]$/.test(target)) return [3 /*break*/, 2];
112
+ return [4 /*yield*/, promises_1.default.mkdir(target, { recursive: true })];
113
+ case 1:
114
+ _a.sent();
115
+ zipfile.readEntry();
116
+ return [2 /*return*/];
117
+ case 2: return [4 /*yield*/, pathExists(target)];
118
+ case 3:
119
+ // Skip existing files
120
+ if (_a.sent()) {
121
+ zipfile.readEntry();
122
+ return [2 /*return*/];
123
+ }
124
+ zipfile.openReadStream(entry, function (err, readStream) { return __awaiter(_this, void 0, void 0, function () {
125
+ return __generator(this, function (_a) {
126
+ switch (_a.label) {
127
+ case 0:
128
+ if (err) {
129
+ reject(err);
130
+ return [2 /*return*/];
131
+ }
132
+ return [4 /*yield*/, pipeline(readStream, fs_1.default.createWriteStream(target))];
133
+ case 1:
134
+ _a.sent();
135
+ zipfile.readEntry();
136
+ return [2 /*return*/];
137
+ }
138
+ });
139
+ }); });
140
+ return [2 /*return*/];
141
+ }
142
+ });
143
+ }); });
144
+ zipfile.once("end", function () {
145
+ zipfile.close();
146
+ resolve();
147
+ });
148
+ return [2 /*return*/];
331
149
  });
332
- };
333
- _a.label = 5;
334
- case 5:
335
- if (!(nFiles-- > 0)) return [3 /*break*/, 7];
336
- return [5 /*yield**/, _loop_2()];
337
- case 6:
338
- _a.sent();
339
- return [3 /*break*/, 5];
340
- case 7: return [2 /*return*/];
341
- }
150
+ }); });
151
+ })];
342
152
  });
343
153
  });
344
154
  }
155
+ exports.unzip = unzip;
345
156
  //# sourceMappingURL=unzip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../../src/bin/tools/unzip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../../src/bin/tools/unzip.ts"],"names":[],"mappings":"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"}