keycloakify 7.3.0 → 7.3.1

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.
@@ -46,18 +46,16 @@ var cliOptions_1 = require("./tools/cliOptions");
46
46
  var logger_1 = require("./tools/logger");
47
47
  function downloadBuiltinKeycloakTheme(params) {
48
48
  return __awaiter(this, void 0, void 0, function () {
49
- var keycloakVersion, destDirPath, isSilent;
49
+ var keycloakVersion, destDirPath;
50
50
  return __generator(this, function (_a) {
51
51
  switch (_a.label) {
52
52
  case 0:
53
- keycloakVersion = params.keycloakVersion, destDirPath = params.destDirPath, isSilent = params.isSilent;
53
+ keycloakVersion = params.keycloakVersion, destDirPath = params.destDirPath;
54
54
  return [4 /*yield*/, Promise.all(["", "-community"].map(function (ext) {
55
55
  return (0, downloadAndUnzip_1.downloadAndUnzip)({
56
56
  "destDirPath": destDirPath,
57
57
  "url": "https://github.com/keycloak/keycloak/archive/refs/tags/".concat(keycloakVersion, ".zip"),
58
- "pathOfDirToExtractInArchive": "keycloak-".concat(keycloakVersion, "/themes/src/main/resources").concat(ext, "/theme"),
59
- "cacheDirPath": (0, path_1.join)(keycloakify_1.keycloakThemeBuildingDirPath, ".cache"),
60
- isSilent: isSilent
58
+ "pathOfDirToExtractInArchive": "keycloak-".concat(keycloakVersion, "/themes/src/main/resources").concat(ext, "/theme")
61
59
  });
62
60
  }))];
63
61
  case 1:
@@ -68,8 +66,8 @@ function downloadBuiltinKeycloakTheme(params) {
68
66
  });
69
67
  }
70
68
  exports.downloadBuiltinKeycloakTheme = downloadBuiltinKeycloakTheme;
71
- if (require.main === module) {
72
- (function () { return __awaiter(void 0, void 0, void 0, function () {
69
+ function main() {
70
+ return __awaiter(this, void 0, void 0, function () {
73
71
  var isSilent, logger, keycloakVersion, destDirPath;
74
72
  return __generator(this, function (_a) {
75
73
  switch (_a.label) {
@@ -91,6 +89,9 @@ if (require.main === module) {
91
89
  return [2 /*return*/];
92
90
  }
93
91
  });
94
- }); })();
92
+ });
93
+ }
94
+ if (require.main === module) {
95
+ main().catch(function (e) { return console.error(e); });
95
96
  }
96
97
  //# sourceMappingURL=download-builtin-keycloak-theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"download-builtin-keycloak-theme.js","sourceRoot":"","sources":["../src/bin/download-builtin-keycloak-theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6CAA6D;AAC7D,6BAAwC;AACxC,6DAA4D;AAC5D,iEAAgE;AAChE,iDAAmD;AACnD,yCAA2C;AAE3C,SAAsB,4BAA4B,CAAC,MAA2E;;;;;;oBAClH,eAAe,GAA4B,MAAM,gBAAlC,EAAE,WAAW,GAAe,MAAM,YAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;oBAE1D,qBAAM,OAAO,CAAC,GAAG,CACb,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG;4BACtB,OAAA,IAAA,mCAAgB,EAAC;gCACb,aAAa,EAAE,WAAW;gCAC1B,KAAK,EAAE,iEAA0D,eAAe,SAAM;gCACtF,6BAA6B,EAAE,mBAAY,eAAe,uCAA6B,GAAG,WAAQ;gCAClG,cAAc,EAAE,IAAA,WAAQ,EAAC,0CAA4B,EAAE,QAAQ,CAAC;gCAChE,QAAQ,UAAA;6BACX,CAAC;wBANF,CAME,CACL,CACJ,EAAA;;oBAVD,SAUC,CAAC;;;;;CACL;AAdD,oEAcC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IACzB,CAAC;;;;;oBACW,QAAQ,GAAK,IAAA,0BAAa,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAzC,CAA0C;oBACpD,MAAM,GAAG,IAAA,kBAAS,EAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;oBACX,qBAAM,IAAA,6CAAqB,GAAE,EAAA;;oBAAjD,eAAe,GAAK,CAAA,SAA6B,CAAA,gBAAlC;oBAEjB,WAAW,GAAG,IAAA,WAAQ,EAAC,0CAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;oBAEhG,MAAM,CAAC,GAAG,CAAC,iDAA0C,eAAe,mBAAS,WAAW,CAAE,CAAC,CAAC;oBAE5F,qBAAM,4BAA4B,CAAC;4BAC/B,eAAe,iBAAA;4BACf,WAAW,aAAA;4BACX,QAAQ,UAAA;yBACX,CAAC,EAAA;;oBAJF,SAIE,CAAC;;;;SACN,CAAC,EAAE,CAAC;CACR"}
1
+ {"version":3,"file":"download-builtin-keycloak-theme.js","sourceRoot":"","sources":["../src/bin/download-builtin-keycloak-theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6CAA6D;AAC7D,6BAAwC;AACxC,6DAA4D;AAC5D,iEAAgE;AAChE,iDAAmD;AACnD,yCAA2C;AAE3C,SAAsB,4BAA4B,CAAC,MAA2E;;;;;;oBAClH,eAAe,GAAkB,MAAM,gBAAxB,EAAE,WAAW,GAAK,MAAM,YAAX,CAAY;oBAEhD,qBAAM,OAAO,CAAC,GAAG,CACb,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG;4BACtB,OAAA,IAAA,mCAAgB,EAAC;gCACb,aAAa,EAAE,WAAW;gCAC1B,KAAK,EAAE,iEAA0D,eAAe,SAAM;gCACtF,6BAA6B,EAAE,mBAAY,eAAe,uCAA6B,GAAG,WAAQ;6BACrG,CAAC;wBAJF,CAIE,CACL,CACJ,EAAA;;oBARD,SAQC,CAAC;;;;;CACL;AAZD,oEAYC;AAED,SAAe,IAAI;;;;;;oBACP,QAAQ,GAAK,IAAA,0BAAa,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAzC,CAA0C;oBACpD,MAAM,GAAG,IAAA,kBAAS,EAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;oBACX,qBAAM,IAAA,6CAAqB,GAAE,EAAA;;oBAAjD,eAAe,GAAK,CAAA,SAA6B,CAAA,gBAAlC;oBAEjB,WAAW,GAAG,IAAA,WAAQ,EAAC,0CAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;oBAEhG,MAAM,CAAC,GAAG,CAAC,iDAA0C,eAAe,mBAAS,WAAW,CAAE,CAAC,CAAC;oBAE5F,qBAAM,4BAA4B,CAAC;4BAC/B,eAAe,iBAAA;4BACf,WAAW,aAAA;4BACX,QAAQ,UAAA;yBACX,CAAC,EAAA;;oBAJF,SAIE,CAAC;;;;;CACN;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IACzB,IAAI,EAAE,CAAC,KAAK,CAAC,UAAA,CAAC,IAAI,OAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC;CACvC"}
@@ -1,7 +1,5 @@
1
- export declare function downloadAndUnzip({ url, destDirPath, pathOfDirToExtractInArchive, cacheDirPath }: {
2
- isSilent: boolean;
1
+ export declare function downloadAndUnzip({ url, destDirPath, pathOfDirToExtractInArchive }: {
3
2
  url: string;
4
3
  destDirPath: string;
5
4
  pathOfDirToExtractInArchive?: string;
6
- cacheDirPath: string;
7
5
  }): Promise<void>;
@@ -46,45 +46,42 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
47
  }
48
48
  };
49
- var __asyncValues = (this && this.__asyncValues) || function (o) {
50
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
51
- var m = o[Symbol.asyncIterator], i;
52
- 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);
53
- 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); }); }; }
54
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
55
- };
56
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
57
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
58
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
59
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
60
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
61
- 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); }); }; }
62
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
63
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
64
- function fulfill(value) { resume("next", value); }
65
- function reject(value) { resume("throw", value); }
66
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
49
+ var __read = (this && this.__read) || function (o, n) {
50
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
51
+ if (!m) return o;
52
+ var i = m.call(o), r, ar = [], e;
53
+ try {
54
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
+ }
56
+ catch (error) { e = { error: error }; }
57
+ finally {
58
+ try {
59
+ if (r && !r.done && (m = i["return"])) m.call(i);
60
+ }
61
+ finally { if (e) throw e.error; }
62
+ }
63
+ return ar;
67
64
  };
68
65
  var __importDefault = (this && this.__importDefault) || function (mod) {
69
66
  return (mod && mod.__esModule) ? mod : { "default": mod };
70
67
  };
71
68
  Object.defineProperty(exports, "__esModule", { value: true });
72
69
  exports.downloadAndUnzip = void 0;
73
- var path_1 = require("path");
74
- var fs_1 = require("fs");
75
- var promises_1 = require("fs/promises");
76
- var transformCodebase_1 = require("./transformCodebase");
70
+ var child_process_1 = require("child_process");
77
71
  var crypto_1 = require("crypto");
72
+ var promises_1 = require("fs/promises");
78
73
  var make_fetch_happen_1 = __importDefault(require("make-fetch-happen"));
79
- var zlib_1 = require("zlib");
80
- var os_1 = require("os");
81
- var child_process_1 = require("child_process");
74
+ var path_1 = require("path");
75
+ var tsafe_1 = require("tsafe");
82
76
  var util_1 = require("util");
77
+ var getProjectRoot_1 = require("./getProjectRoot");
78
+ var transformCodebase_1 = require("./transformCodebase");
79
+ var unzip_1 = require("./unzip");
83
80
  var exec = (0, util_1.promisify)(child_process_1.exec);
84
81
  function hash(s) {
85
82
  return (0, crypto_1.createHash)("sha256").update(s).digest("hex");
86
83
  }
87
- function maybeStat(path) {
84
+ function exists(path) {
88
85
  return __awaiter(this, void 0, void 0, function () {
89
86
  var error_1;
90
87
  return __generator(this, function (_a) {
@@ -92,11 +89,13 @@ function maybeStat(path) {
92
89
  case 0:
93
90
  _a.trys.push([0, 2, , 3]);
94
91
  return [4 /*yield*/, (0, promises_1.stat)(path)];
95
- case 1: return [2 /*return*/, _a.sent()];
92
+ case 1:
93
+ _a.sent();
94
+ return [2 /*return*/, true];
96
95
  case 2:
97
96
  error_1 = _a.sent();
98
97
  if (error_1.code === "ENOENT")
99
- return [2 /*return*/, undefined];
98
+ return [2 /*return*/, false];
100
99
  throw error_1;
101
100
  case 3: return [2 /*return*/];
102
101
  }
@@ -104,21 +103,26 @@ function maybeStat(path) {
104
103
  });
105
104
  }
106
105
  /**
107
- * Get an npm configuration value as string, undefined if not set.
108
- *
109
- * @param key
110
- * @returns string or undefined
106
+ * Get npm configuration as map
111
107
  */
112
- function getNmpConfig(key) {
108
+ function getNmpConfig() {
113
109
  return __awaiter(this, void 0, void 0, function () {
114
- var stdout, value;
110
+ var stdout;
115
111
  return __generator(this, function (_a) {
116
112
  switch (_a.label) {
117
- case 0: return [4 /*yield*/, exec("npm config get ".concat(key))];
113
+ case 0: return [4 /*yield*/, exec("npm config get", { encoding: "utf8" })];
118
114
  case 1:
119
115
  stdout = (_a.sent()).stdout;
120
- value = stdout.trim();
121
- return [2 /*return*/, value && value !== "null" ? value : undefined];
116
+ return [2 /*return*/, stdout
117
+ .split("\n")
118
+ .filter(function (line) { return !line.startsWith(";"); })
119
+ .map(function (line) { return line.trim(); })
120
+ .map(function (line) { return line.split("=", 2); })
121
+ .reduce(function (cfg, _a) {
122
+ var _b;
123
+ var _c = __read(_a, 2), key = _c[0], value = _c[1];
124
+ return (__assign(__assign({}, cfg), (_b = {}, _b[key] = value, _b)));
125
+ }, {})];
122
126
  }
123
127
  });
124
128
  });
@@ -132,354 +136,64 @@ function getNmpConfig(key) {
132
136
  function getNpmProxyConfig() {
133
137
  var _a, _b;
134
138
  return __awaiter(this, void 0, void 0, function () {
135
- var proxy, _c, noProxy, _d;
136
- return __generator(this, function (_e) {
137
- switch (_e.label) {
138
- case 0: return [4 /*yield*/, getNmpConfig("https-proxy")];
139
+ var cfg, proxy, noProxy;
140
+ return __generator(this, function (_c) {
141
+ switch (_c.label) {
142
+ case 0: return [4 /*yield*/, getNmpConfig()];
139
143
  case 1:
140
- if (!((_a = (_e.sent())) !== null && _a !== void 0)) return [3 /*break*/, 2];
141
- _c = _a;
142
- return [3 /*break*/, 4];
143
- case 2: return [4 /*yield*/, getNmpConfig("proxy")];
144
- case 3:
145
- _c = (_e.sent());
146
- _e.label = 4;
147
- case 4:
148
- proxy = _c;
149
- return [4 /*yield*/, getNmpConfig("noproxy")];
150
- case 5:
151
- if (!((_b = (_e.sent())) !== null && _b !== void 0)) return [3 /*break*/, 6];
152
- _d = _b;
153
- return [3 /*break*/, 8];
154
- case 6: return [4 /*yield*/, getNmpConfig("no-proxy")];
155
- case 7:
156
- _d = (_e.sent());
157
- _e.label = 8;
158
- case 8:
159
- noProxy = _d;
144
+ cfg = _c.sent();
145
+ proxy = (_a = cfg["https-proxy"]) !== null && _a !== void 0 ? _a : cfg["proxy"];
146
+ noProxy = (_b = cfg["noproxy"]) !== null && _b !== void 0 ? _b : cfg["no-proxy"];
160
147
  return [2 /*return*/, { proxy: proxy, noProxy: noProxy }];
161
148
  }
162
149
  });
163
150
  });
164
151
  }
165
- /**
166
- * Download a file from `url` to `dir`. Will try to avoid downloading existing
167
- * files by using the cache directory ~/.keycloakify/cache
168
- *
169
- * If the target directory does not exist, it will be created.
170
- *
171
- * If the target file exists, it will be overwritten.
172
- *
173
- * We use make-fetch-happen's internal file cache here, so we don't need to
174
- * worry about redownloading the same file over and over. Unfortunately, that
175
- * cache does not have a single file per entry, but bundles and indexes them,
176
- * so we still need to write the contents to the target directory (possibly
177
- * over and over), cause the current unzip implementation wants random access.
178
- *
179
- * @param url download url
180
- * @param dir target directory
181
- * @param filename target filename
182
- * @returns promise for the full path of the downloaded file
183
- */
184
- function download(url, dir, filename) {
185
- var _a;
186
- return __awaiter(this, void 0, void 0, function () {
187
- var proxyOpts, cacheRoot, cachePath, opts, response, filepath;
188
- return __generator(this, function (_b) {
189
- switch (_b.label) {
190
- case 0: return [4 /*yield*/, getNpmProxyConfig()];
191
- case 1:
192
- proxyOpts = _b.sent();
193
- cacheRoot = (_a = process.env.XDG_CACHE_HOME) !== null && _a !== void 0 ? _a : (0, os_1.homedir)();
194
- cachePath = (0, path_1.join)(cacheRoot, ".keycloakify/cache");
195
- opts = __assign({ cachePath: cachePath }, proxyOpts);
196
- return [4 /*yield*/, (0, make_fetch_happen_1.default)(url, opts)];
197
- case 2:
198
- response = _b.sent();
199
- filepath = (0, path_1.join)(dir, filename);
200
- return [4 /*yield*/, (0, promises_1.mkdir)(dir, { recursive: true })];
201
- case 3:
202
- _b.sent();
203
- return [4 /*yield*/, (0, promises_1.writeFile)(filepath, response.body)];
204
- case 4:
205
- _b.sent();
206
- return [2 /*return*/, filepath];
207
- }
208
- });
209
- });
210
- }
211
- /**
212
- * @typedef
213
- * @type MultiError = Error & { cause: Error[] }
214
- */
215
- /**
216
- * Extract the archive `zipFile` into the directory `dir`. If `archiveDir` is given,
217
- * only that directory will be extracted, stripping the given path components.
218
- *
219
- * If dir does not exist, it will be created.
220
- *
221
- * If any archive file exists, it will be overwritten.
222
- *
223
- * Will unzip using all available nodejs worker threads.
224
- *
225
- * Will try to clean up extracted files on failure.
226
- *
227
- * If unpacking fails, will either throw an regular error, or
228
- * possibly an `MultiError`, which contains a `cause` field with
229
- * a number of root cause errors.
230
- *
231
- * Warning this method is not optimized for continuous reading of the zip
232
- * archive, but is a trade-off between simplicity and allowing extraction
233
- * of a single directory from the archive.
234
- *
235
- * @param zipFile the file to unzip
236
- * @param dir the target directory
237
- * @param archiveDir if given, unpack only files from this archive directory
238
- * @throws {MultiError} error
239
- * @returns Promise for a list of full file paths pointing to actually extracted files
240
- */
241
- function unzip(zipFile, dir, archiveDir) {
242
- var _a, e_1, _b, _c;
243
- return __awaiter(this, void 0, void 0, function () {
244
- var promises, _loop_1, _d, _e, _f, e_1_1, results, success, failure, e;
245
- var _this = this;
246
- return __generator(this, function (_g) {
247
- switch (_g.label) {
248
- case 0: return [4 /*yield*/, (0, promises_1.mkdir)(dir, { recursive: true })];
249
- case 1:
250
- _g.sent();
251
- promises = [];
252
- _g.label = 2;
253
- case 2:
254
- _g.trys.push([2, 7, 8, 13]);
255
- _loop_1 = function () {
256
- _c = _f.value;
257
- _d = false;
258
- try {
259
- var record = _c;
260
- var recordPath = record.path, createRecordReadStream = record.createReadStream;
261
- var filePath = (0, path_1.join)(dir, recordPath);
262
- var parent_1 = (0, path_1.dirname)(filePath);
263
- if (archiveDir && !recordPath.startsWith(archiveDir))
264
- return "continue";
265
- promises.push(new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
266
- var input, output;
267
- return __generator(this, function (_a) {
268
- switch (_a.label) {
269
- case 0: return [4 /*yield*/, (0, promises_1.mkdir)(parent_1, { recursive: true })];
270
- case 1:
271
- _a.sent();
272
- input = createRecordReadStream();
273
- output = (0, fs_1.createWriteStream)(filePath);
274
- output.setMaxListeners(Infinity);
275
- output.on("error", function (e) { return reject(Object.assign(e, { filePath: filePath })); });
276
- output.on("finish", function () { return resolve(filePath); });
277
- input.pipe(output);
278
- return [2 /*return*/];
279
- }
280
- });
281
- }); }));
282
- }
283
- finally {
284
- _d = true;
285
- }
286
- };
287
- _d = true, _e = __asyncValues(iterateZipArchive(zipFile));
288
- _g.label = 3;
289
- case 3: return [4 /*yield*/, _e.next()];
290
- case 4:
291
- if (!(_f = _g.sent(), _a = _f.done, !_a)) return [3 /*break*/, 6];
292
- _loop_1();
293
- _g.label = 5;
294
- case 5: return [3 /*break*/, 3];
295
- case 6: return [3 /*break*/, 13];
296
- case 7:
297
- e_1_1 = _g.sent();
298
- e_1 = { error: e_1_1 };
299
- return [3 /*break*/, 13];
300
- case 8:
301
- _g.trys.push([8, , 11, 12]);
302
- if (!(!_d && !_a && (_b = _e.return))) return [3 /*break*/, 10];
303
- return [4 /*yield*/, _b.call(_e)];
304
- case 9:
305
- _g.sent();
306
- _g.label = 10;
307
- case 10: return [3 /*break*/, 12];
308
- case 11:
309
- if (e_1) throw e_1.error;
310
- return [7 /*endfinally*/];
311
- case 12: return [7 /*endfinally*/];
312
- case 13: return [4 /*yield*/, Promise.allSettled(promises)];
313
- case 14:
314
- results = _g.sent();
315
- success = results.filter(function (r) { return r.status === "fulfilled"; }).map(function (r) { return r.value; });
316
- failure = results.filter(function (r) { return r.status === "rejected"; }).map(function (r) { return r.reason; });
317
- if (!failure.length) return [3 /*break*/, 17];
318
- return [4 /*yield*/, Promise.all(success.map(function (path) { return (0, promises_1.unlink)(path); }))];
319
- case 15:
320
- _g.sent();
321
- return [4 /*yield*/, Promise.all(failure.map(function (e) { return e && e.path && (0, promises_1.unlink)(e.path); }))];
322
- case 16:
323
- _g.sent();
324
- e = new Error("Failed to extract: " + failure.map(function (e) { return e.message; }).join(";"));
325
- e.cause = failure;
326
- throw e;
327
- case 17: return [2 /*return*/, success];
328
- }
329
- });
330
- });
331
- }
332
- /**
333
- *
334
- * @param file file to read
335
- * @param start first byte to read
336
- * @param end last byte to read
337
- * @returns Promise of a buffer of read bytes
338
- */
339
- function readFileChunk(file, start, end) {
340
- return __awaiter(this, void 0, void 0, function () {
341
- var chunks;
342
- return __generator(this, function (_a) {
343
- chunks = [];
344
- return [2 /*return*/, new Promise(function (resolve, reject) {
345
- var stream = (0, fs_1.createReadStream)(file, { start: start, end: end });
346
- stream.setMaxListeners(Infinity);
347
- stream.on("error", function (e) { return reject(e); });
348
- stream.on("end", function () { return resolve(Buffer.concat(chunks)); });
349
- stream.on("data", function (chunk) { return chunks.push(chunk); });
350
- })];
351
- });
352
- });
353
- }
354
- /**
355
- * Iterate over all records of a zipfile, and yield a ZipRecord.
356
- * Use `record.createReadStream()` to actually read the file.
357
- *
358
- * Warning this method will only work with single-disk zip files.
359
- * Warning this method may fail if the zip archive has an crazy amount
360
- * of files and the central directory is not fully contained within the
361
- * last 65k bytes of the zip file.
362
- *
363
- * @param zipFile
364
- * @returns AsyncGenerator which will yield ZipRecords
365
- */
366
- function iterateZipArchive(zipFile) {
367
- return __asyncGenerator(this, arguments, function iterateZipArchive_1() {
368
- var size, chunkSize, chunk, unread, i, found, nFiles, directorySize, directoryOffset, _loop_2;
369
- return __generator(this, function (_a) {
370
- switch (_a.label) {
371
- case 0: return [4 /*yield*/, __await((0, promises_1.stat)(zipFile))];
372
- case 1:
373
- size = (_a.sent()).size;
374
- chunkSize = 65535 + 22 + 1;
375
- return [4 /*yield*/, __await(readFileChunk(zipFile, size - chunkSize, size))];
376
- case 2:
377
- chunk = _a.sent();
378
- unread = size - chunk.length;
379
- i = chunk.length - 4;
380
- found = false;
381
- // Find central directory end header, reading backwards from the end
382
- while (!found && i-- > 0)
383
- if (chunk[i] === 0x50 && chunk.readUInt32LE(i) === 0x06054b50)
384
- found = true;
385
- if (!found)
386
- throw new Error("Not a zip file");
387
- // This method will fail on a multi-disk zip, so bail early.
388
- if (chunk.readUInt16LE(i + 4) !== 0)
389
- throw new Error("Multi-disk zip not supported");
390
- nFiles = chunk.readUint16LE(i + 10);
391
- directorySize = chunk.readUint32LE(i + 12);
392
- directoryOffset = chunk.readUint32LE(i + 16);
393
- if (directoryOffset === 4294967295)
394
- throw new Error("zip64 not supported");
395
- if (directoryOffset > size)
396
- throw new Error("Central directory offset ".concat(directoryOffset, " is outside file"));
397
- i = directoryOffset - unread;
398
- if (!(i < 0)) return [3 /*break*/, 4];
399
- return [4 /*yield*/, __await(readFileChunk(zipFile, directoryOffset, directoryOffset + directorySize))];
400
- case 3:
401
- chunk = _a.sent();
402
- i = 0;
403
- _a.label = 4;
404
- case 4:
405
- _loop_2 = function () {
406
- var compressionMethod, compressedFileSize, filenameLength, extraLength, commentLength, start, end, filename, createRecordReadStream;
407
- return __generator(this, function (_b) {
408
- switch (_b.label) {
409
- case 0:
410
- // Check for marker bytes
411
- if (chunk.readUInt32LE(i) !== 0x02014b50)
412
- throw new Error("No central directory record at position " + (unread + i));
413
- compressionMethod = { 8: "deflate" }[chunk.readUint16LE(i + 10)];
414
- compressedFileSize = chunk.readUint32LE(i + 20);
415
- filenameLength = chunk.readUint16LE(i + 28);
416
- extraLength = chunk.readUint16LE(i + 30);
417
- commentLength = chunk.readUint16LE(i + 32);
418
- start = chunk.readUint32LE(i + 42) + 30 + filenameLength + extraLength;
419
- end = start + compressedFileSize;
420
- filename = chunk.slice(i + 46, i + 46 + filenameLength).toString("utf-8");
421
- createRecordReadStream = function () {
422
- var input = (0, fs_1.createReadStream)(zipFile, { start: start, end: end });
423
- if (compressionMethod === "deflate") {
424
- var inflate = (0, zlib_1.createInflateRaw)();
425
- input.pipe(inflate);
426
- return inflate;
427
- }
428
- return input;
429
- };
430
- if (!(end > start)) return [3 /*break*/, 3];
431
- return [4 /*yield*/, __await({ path: filename, createReadStream: createRecordReadStream, compressionMethod: compressionMethod })];
432
- case 1: return [4 /*yield*/, _b.sent()];
433
- case 2:
434
- _b.sent();
435
- _b.label = 3;
436
- case 3:
437
- // advance pointer to next central directory entry
438
- i += 46 + filenameLength + extraLength + commentLength;
439
- return [2 /*return*/];
440
- }
441
- });
442
- };
443
- _a.label = 5;
444
- case 5:
445
- if (!(nFiles-- > 0)) return [3 /*break*/, 7];
446
- return [5 /*yield**/, _loop_2()];
447
- case 6:
448
- _a.sent();
449
- return [3 /*break*/, 5];
450
- case 7: return [2 /*return*/];
451
- }
452
- });
453
- });
454
- }
455
152
  function downloadAndUnzip(_a) {
456
- var _b;
457
- var url = _a.url, destDirPath = _a.destDirPath, pathOfDirToExtractInArchive = _a.pathOfDirToExtractInArchive, cacheDirPath = _a.cacheDirPath;
153
+ var _b, _c;
154
+ var url = _a.url, destDirPath = _a.destDirPath, pathOfDirToExtractInArchive = _a.pathOfDirToExtractInArchive;
458
155
  return __awaiter(this, void 0, void 0, function () {
459
- var downloadHash, extractDirPath, filename, zipFilepath, zipMtime, unzipMtime, srcDirPath;
460
- return __generator(this, function (_c) {
461
- switch (_c.label) {
156
+ var downloadHash, projectRoot, cacheRoot, zipFilePath, extractDirPath, proxyOpts, response;
157
+ return __generator(this, function (_d) {
158
+ switch (_d.label) {
462
159
  case 0:
463
- downloadHash = hash(JSON.stringify({ url: url, pathOfDirToExtractInArchive: pathOfDirToExtractInArchive })).substring(0, 15);
464
- extractDirPath = (0, path_1.join)(cacheDirPath, "_".concat(downloadHash));
465
- filename = (0, path_1.basename)(url);
466
- return [4 /*yield*/, download(url, cacheDirPath, filename)];
160
+ downloadHash = hash(JSON.stringify({ url: url })).substring(0, 15);
161
+ projectRoot = (0, getProjectRoot_1.getProjectRoot)();
162
+ cacheRoot = (_b = process.env.XDG_CACHE_HOME) !== null && _b !== void 0 ? _b : "".concat(projectRoot, "/node_modules/.cache");
163
+ zipFilePath = (0, path_1.join)(cacheRoot, "keycloakify", "zip", "_".concat(downloadHash, ".zip"));
164
+ extractDirPath = (0, path_1.join)(cacheRoot, "keycloakify", "unzip", "_".concat(downloadHash));
165
+ return [4 /*yield*/, exists(zipFilePath)];
467
166
  case 1:
468
- zipFilepath = _c.sent();
469
- return [4 /*yield*/, (0, promises_1.stat)(zipFilepath)];
167
+ if (!!(_d.sent())) return [3 /*break*/, 6];
168
+ return [4 /*yield*/, getNpmProxyConfig()];
470
169
  case 2:
471
- zipMtime = (_c.sent()).mtimeMs;
472
- return [4 /*yield*/, maybeStat(extractDirPath)];
170
+ proxyOpts = _d.sent();
171
+ return [4 /*yield*/, (0, make_fetch_happen_1.default)(url, proxyOpts)];
473
172
  case 3:
474
- unzipMtime = (_b = (_c.sent())) === null || _b === void 0 ? void 0 : _b.mtimeMs;
475
- if (!(!unzipMtime || zipMtime > unzipMtime)) return [3 /*break*/, 5];
476
- return [4 /*yield*/, unzip(zipFilepath, extractDirPath, pathOfDirToExtractInArchive)];
173
+ response = _d.sent();
174
+ return [4 /*yield*/, (0, promises_1.mkdir)((0, path_1.dirname)(zipFilePath), { recursive: true })];
477
175
  case 4:
478
- _c.sent();
479
- _c.label = 5;
176
+ _d.sent();
177
+ /**
178
+ * The correct way to fix this is to upgrade node-fetch beyond 3.2.5
179
+ * (see https://github.com/node-fetch/node-fetch/issues/1295#issuecomment-1144061991.)
180
+ * Unfortunately, octokit (a dependency of keycloakify) also uses node-fetch, and
181
+ * does not support node-fetch 3.x. So we stick around with this band-aid until
182
+ * octokit upgrades.
183
+ */
184
+ (_c = response.body) === null || _c === void 0 ? void 0 : _c.setMaxListeners(Number.MAX_VALUE);
185
+ (0, tsafe_1.assert)(typeof response.body !== "undefined" && response.body != null);
186
+ return [4 /*yield*/, (0, promises_1.writeFile)(zipFilePath, response.body)];
480
187
  case 5:
481
- srcDirPath = pathOfDirToExtractInArchive === undefined ? extractDirPath : (0, path_1.join)(extractDirPath, pathOfDirToExtractInArchive);
482
- (0, transformCodebase_1.transformCodebase)({ srcDirPath: srcDirPath, destDirPath: destDirPath });
188
+ _d.sent();
189
+ _d.label = 6;
190
+ case 6: return [4 /*yield*/, (0, unzip_1.unzip)(zipFilePath, extractDirPath, pathOfDirToExtractInArchive)];
191
+ case 7:
192
+ _d.sent();
193
+ (0, transformCodebase_1.transformCodebase)({
194
+ "srcDirPath": extractDirPath,
195
+ "destDirPath": destDirPath
196
+ });
483
197
  return [2 /*return*/];
484
198
  }
485
199
  });
@@ -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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"}