@wppconnect/server 2.0.0 → 2.1.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/config/upload.js +1 -1
  3. package/dist/config.js +8 -2
  4. package/dist/controller/catalogController.js +296 -29
  5. package/dist/controller/deviceController.js +875 -30
  6. package/dist/controller/encryptController.js +14 -2
  7. package/dist/controller/groupController.js +343 -9
  8. package/dist/controller/labelsController.js +68 -1
  9. package/dist/controller/messageController.js +289 -40
  10. package/dist/controller/miscController.js +221 -0
  11. package/dist/controller/orderController.js +27 -3
  12. package/dist/controller/sessionController.js +236 -9
  13. package/dist/controller/statusController.js +53 -5
  14. package/dist/index.js +8 -8
  15. package/dist/mapper/index.js +2 -2
  16. package/dist/middleware/auth.js +16 -15
  17. package/dist/middleware/healthCheck.js +15 -1
  18. package/dist/middleware/statusConnection.js +2 -1
  19. package/dist/routes/index.js +741 -710
  20. package/dist/swagger-backup.json +21463 -0
  21. package/dist/swagger.js +100 -0
  22. package/dist/swagger.json +4957 -20348
  23. package/dist/types/express/index.d.js +2 -0
  24. package/dist/util/chatWootClient.js +49 -45
  25. package/dist/util/createSessionUtil.js +55 -45
  26. package/dist/util/db/mongodb/db.js +7 -7
  27. package/dist/util/functions.js +31 -23
  28. package/dist/util/getAllTokens.js +1 -1
  29. package/dist/util/logger.js +22 -22
  30. package/dist/util/manageSession.js +130 -0
  31. package/dist/util/sessionUtil.js +5 -3
  32. package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +7 -7
  33. package/dist/util/tokenStore/mongodbTokenStory.js +2 -3
  34. package/dist/util/tokenStore/redisTokenStory.js +25 -25
  35. package/docker-compose.yml +7 -7
  36. package/package.json +40 -33
  37. package/wppconnect_tokens/wppconnect.json +0 -0
  38. package/dist/types/Request.js +0 -2
@@ -13,6 +13,7 @@
13
13
 
14
14
 
15
15
 
16
+ var _awsSdk = _interopRequireDefault(require("aws-sdk"));
16
17
  var _axios = _interopRequireDefault(require("axios"));
17
18
  var _crypto = _interopRequireDefault(require("crypto"));
18
19
  var _fs = _interopRequireDefault(require("fs"));
@@ -22,7 +23,7 @@ var _path = _interopRequireDefault(require("path"));
22
23
  var _util = require("util");
23
24
 
24
25
  var _config = _interopRequireDefault(require("../config"));
25
- var _index = require("../mapper/index");function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function (nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} /*
26
+ var _index = require("../mapper/index"); /*
26
27
  * Copyright 2021 WPPConnect Team
27
28
  *
28
29
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -36,9 +37,8 @@ var _index = require("../mapper/index");function _getRequireWildcardCache(nodeIn
36
37
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
37
38
  * See the License for the specific language governing permissions and
38
39
  * limitations under the License.
39
- */let mime, crypto, aws;if (_config.default.webhook.uploadS3) {mime = _config.default.webhook.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.webhook.uploadS3 ? _crypto.default : null;aws = _config.default.webhook.uploadS3 ? Promise.resolve().then(() => _interopRequireWildcard(require('aws-sdk'))) : null;}function contactToArray(number, isGroup) {const localArr = [];if (Array.isArray(number)) {for (let contact of number) {isGroup ?
40
- contact = contact.split('@')[0] :
41
- contact = contact.split('@')[0]?.replace(/[^\w ]/g, '');
40
+ */let mime, crypto; //, aws: any;
41
+ if (_config.default.webhook.uploadS3) {mime = _config.default.webhook.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.webhook.uploadS3 ? _crypto.default : null;}function contactToArray(number, isGroup) {const localArr = [];if (Array.isArray(number)) {for (let contact of number) {isGroup ? contact = contact.split('@')[0] : contact = contact.split('@')[0]?.replace(/[^\w ]/g, '');
42
42
  if (contact !== '')
43
43
  if (isGroup) localArr.push(`${contact}@g.us`);else
44
44
  localArr.push(`${contact}@c.us`);
@@ -135,12 +135,20 @@ async function autoDownload(client, req, message) {
135
135
  const buffer = await client.decryptFile(message);
136
136
  if (req.serverOptions.webhook.uploadS3) {
137
137
  const hashName = crypto.randomBytes(24).toString('hex');
138
- const fileName = `${hashName}.${mime.extension(message.mimetype)}`;
139
138
 
140
- const s3 = new aws.S3();
139
+ const s3 = new _awsSdk.default.S3();
140
+ const bucketName =
141
+ _config.default.webhook.awsBucketName && _config.default.webhook.awsBucketName !== '' ?
142
+ _config.default.webhook.awsBucketName :
143
+ client.session;
144
+ const fileName = `${
145
+ _config.default.webhook.awsBucketName && _config.default.webhook.awsBucketName !== '' ?
146
+ client.session + '/' :
147
+ ''
148
+ }${hashName}.${mime.extension(message.mimetype)}`;
141
149
 
142
150
  const params = {
143
- Bucket: client.session,
151
+ Bucket: bucketName,
144
152
  Key: fileName,
145
153
  Body: buffer,
146
154
  ACL: 'public-read',
@@ -160,8 +168,8 @@ async function autoDownload(client, req, message) {
160
168
  async function startAllSessions(config, logger) {
161
169
  try {
162
170
  await _axios.default.post(
163
- `${config.host}:${config.port}/api/${config.secretKey}/start-all`);
164
-
171
+ `${config.host}:${config.port}/api/${config.secretKey}/start-all`
172
+ );
165
173
  } catch (e) {
166
174
  logger.error(e);
167
175
  }
@@ -210,12 +218,12 @@ async function archive(client, req) {
210
218
 
211
219
  if (DaysBetween(date) > req.serverOptions.archive.daysToArchive) {
212
220
  await client.archiveChat(
213
- chats[i].id.id || chats[i].id._serialized,
214
- true);
215
-
221
+ chats[i].id.id || chats[i].id._serialized,
222
+ true
223
+ );
216
224
  await sleep(
217
- Math.floor(Math.random() * req.serverOptions.archive.waitTime + 1));
218
-
225
+ Math.floor(Math.random() * req.serverOptions.archive.waitTime + 1)
226
+ );
219
227
  }
220
228
  }
221
229
  }
@@ -232,15 +240,15 @@ function DaysBetween(StartDate) {
232
240
 
233
241
  // A day in UTC always lasts 24 hours (unlike in other time formats)
234
242
  const start = Date.UTC(
235
- endDate.getFullYear(),
236
- endDate.getMonth(),
237
- endDate.getDate());
238
-
243
+ endDate.getFullYear(),
244
+ endDate.getMonth(),
245
+ endDate.getDate()
246
+ );
239
247
  const end = Date.UTC(
240
- StartDate.getFullYear(),
241
- StartDate.getMonth(),
242
- StartDate.getDate());
243
-
248
+ StartDate.getFullYear(),
249
+ StartDate.getMonth(),
250
+ StartDate.getDate()
251
+ );
244
252
 
245
253
  // so it's safe to divide by 24 hours
246
254
  return (start - end) / oneDay;
@@ -292,4 +300,4 @@ function createCatalogLink(session) {
292
300
  const [wid] = session.split('@');
293
301
  return `https://wa.me/c/${wid}`;
294
302
  }
295
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jcnlwdG8iLCJfZnMiLCJfbWltZVR5cGVzIiwiX29zIiwiX3BhdGgiLCJfdXRpbCIsIl9jb25maWciLCJfaW5kZXgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtaW1lIiwiY3J5cHRvIiwiYXdzIiwiY29uZmlnIiwid2ViaG9vayIsInVwbG9hZFMzIiwibWltZXR5cGVzIiwiQ3J5cHRvIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiY29udGFjdFRvQXJyYXkiLCJudW1iZXIiLCJpc0dyb3VwIiwibG9jYWxBcnIiLCJBcnJheSIsImlzQXJyYXkiLCJjb250YWN0Iiwic3BsaXQiLCJyZXBsYWNlIiwicHVzaCIsImFyckNvbnRhY3RzIiwiZ3JvdXBUb0FycmF5IiwiZ3JvdXAiLCJncm91cE5hbWVUb0FycmF5IiwiY2FsbFdlYkhvb2siLCJjbGllbnQiLCJyZXEiLCJldmVudCIsImRhdGEiLCJzZXJ2ZXJPcHRpb25zIiwidXJsIiwiYXV0b0Rvd25sb2FkIiwiY2hhdElkIiwiZnJvbSIsIl9zZXJpYWxpemVkIiwiYXNzaWduIiwic2Vzc2lvbiIsIm1hcHBlciIsImVuYWJsZSIsImNvbnZlcnQiLCJwcmVmaXgiLCJhcGkiLCJwb3N0IiwiZXZlbnRzIiwiaW5jbHVkZXMiLCJyZWFkTWVzc2FnZSIsInNlbmRTZWVuIiwiZSIsImNhdGNoIiwibG9nZ2VyIiwid2FybiIsImVycm9yIiwibWVzc2FnZSIsImlzTWVkaWEiLCJpc01NUyIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwiaGFzaE5hbWUiLCJyYW5kb21CeXRlcyIsInRvU3RyaW5nIiwiZmlsZU5hbWUiLCJleHRlbnNpb24iLCJtaW1ldHlwZSIsInMzIiwiUzMiLCJwYXJhbXMiLCJCdWNrZXQiLCJLZXkiLCJCb2R5IiwiQUNMIiwiQ29udGVudFR5cGUiLCJ1cGxvYWQiLCJwcm9taXNlIiwiZmlsZVVybCIsIkxvY2F0aW9uIiwiYm9keSIsInN0YXJ0QWxsU2Vzc2lvbnMiLCJob3N0IiwicG9ydCIsInNlY3JldEtleSIsInN0YXJ0SGVscGVyIiwiYWxsVW5yZWFkT25TdGFydCIsInNlbmRVbnJlYWQiLCJhcmNoaXZlIiwiaW5mbyIsImNoYXRzIiwiZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXMiLCJsZW5ndGgiLCJpIiwiaiIsIm1zZ3MiLCJleCIsInNsZWVwIiwidGltZSIsInNldFRpbWVvdXQiLCJnZXRBbGxDaGF0cyIsImZpbHRlciIsImMiLCJkYXRlIiwiRGF0ZSIsInQiLCJEYXlzQmV0d2VlbiIsImRheXNUb0FyY2hpdmUiLCJhcmNoaXZlQ2hhdCIsImlkIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwid2FpdFRpbWUiLCJTdGFydERhdGUiLCJlbmREYXRlIiwib25lRGF5Iiwic3RhcnQiLCJVVEMiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImVuZCIsImNyZWF0ZUZvbGRlcnMiLCJfX2Rpcm5hbWUiLCJwYXRoIiwiZGlybmFtZSIsImRpckZpbGVzIiwiZnMiLCJleGlzdHNTeW5jIiwibWtkaXJTeW5jIiwiZGlyVXBsb2FkIiwic3RyVG9Cb29sIiwicyIsInRlc3QiLCJnZXRJUEFkZHJlc3MiLCJpbnRlcmZhY2VzIiwib3MiLCJuZXR3b3JrSW50ZXJmYWNlcyIsImRldk5hbWUiLCJpZmFjZSIsImFsaWFzIiwiZmFtaWx5IiwiYWRkcmVzcyIsImludGVybmFsIiwic2V0TWF4TGlzdG5lcnMiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJtYXhMaXN0ZW5lcnMiLCJwcm9jZXNzIiwic2V0TWF4TGlzdGVuZXJzIiwidW5saW5rQXN5bmMiLCJwcm9taXNpZnkiLCJ1bmxpbmsiLCJleHBvcnRzIiwiY3JlYXRlQ2F0YWxvZ0xpbmsiLCJ3aWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9mdW5jdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGFwaSBmcm9tICdheGlvcyc7XG5pbXBvcnQgQ3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IG1pbWV0eXBlcyBmcm9tICdtaW1lLXR5cGVzJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuXG5pbXBvcnQgY29uZmlnIGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBjb252ZXJ0IH0gZnJvbSAnLi4vbWFwcGVyL2luZGV4JztcbmltcG9ydCB7IFNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy9TZXJ2ZXJPcHRpb25zJztcblxubGV0IG1pbWU6IGFueSwgY3J5cHRvOiBhbnksIGF3czogYW55O1xuaWYgKGNvbmZpZy53ZWJob29rLnVwbG9hZFMzKSB7XG4gIG1pbWUgPSBjb25maWcud2ViaG9vay51cGxvYWRTMyA/IG1pbWV0eXBlcyA6IG51bGw7XG4gIGNyeXB0byA9IGNvbmZpZy53ZWJob29rLnVwbG9hZFMzID8gQ3J5cHRvIDogbnVsbDtcbiAgYXdzID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBpbXBvcnQoJ2F3cy1zZGsnKSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250YWN0VG9BcnJheShudW1iZXI6IGFueSwgaXNHcm91cD86IGJvb2xlYW4pIHtcbiAgY29uc3QgbG9jYWxBcnI6IGFueSA9IFtdO1xuICBpZiAoQXJyYXkuaXNBcnJheShudW1iZXIpKSB7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBudW1iZXIpIHtcbiAgICAgIGlzR3JvdXBcbiAgICAgICAgPyAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXSlcbiAgICAgICAgOiAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXT8ucmVwbGFjZSgvW15cXHcgXS9nLCAnJykpO1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKVxuICAgICAgICBpZiAoaXNHcm91cCkgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgICAgIGVsc2UgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBjLnVzYCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFyckNvbnRhY3RzID0gbnVtYmVyLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaXNHcm91cFxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9jYWxBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cFRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgZ3JvdXApIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IGdyb3VwLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBOYW1lVG9BcnJheShncm91cDogYW55KSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZ3JvdXApKSB7XG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFdlYkhvb2soXG4gIGNsaWVudDogYW55LFxuICByZXE6IGFueSxcbiAgZXZlbnQ6IGFueSxcbiAgZGF0YTogYW55XG4pIHtcbiAgY29uc3Qgd2ViaG9vayA9XG4gICAgY2xpZW50Py5jb25maWcud2ViaG9vayB8fCByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnVybCB8fCBmYWxzZTtcbiAgaWYgKHdlYmhvb2spIHtcbiAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hdXRvRG93bmxvYWQpXG4gICAgICBhd2FpdCBhdXRvRG93bmxvYWQoY2xpZW50LCByZXEsIGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGF0SWQgPVxuICAgICAgICBkYXRhLmZyb20gfHxcbiAgICAgICAgZGF0YS5jaGF0SWQgfHxcbiAgICAgICAgKGRhdGEuY2hhdElkID8gZGF0YS5jaGF0SWQuX3NlcmlhbGl6ZWQgOiBudWxsKTtcbiAgICAgIGRhdGEgPSBPYmplY3QuYXNzaWduKHsgZXZlbnQ6IGV2ZW50LCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9LCBkYXRhKTtcbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIuZW5hYmxlKVxuICAgICAgICBkYXRhID0gYXdhaXQgY29udmVydChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIucHJlZml4LCBkYXRhKTtcbiAgICAgIGFwaVxuICAgICAgICAucG9zdCh3ZWJob29rLCBkYXRhKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IFsndW5yZWFkbWVzc2FnZXMnLCAnb25tZXNzYWdlJ107XG4gICAgICAgICAgICBpZiAoZXZlbnRzLmluY2x1ZGVzKGV2ZW50KSAmJiByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnJlYWRNZXNzYWdlKVxuICAgICAgICAgICAgICBjbGllbnQuc2VuZFNlZW4oY2hhdElkKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICByZXEubG9nZ2VyLndhcm4oJ0Vycm9yIGNhbGxpbmcgV2ViaG9vay4nLCBlKTtcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gYXV0b0Rvd25sb2FkKGNsaWVudDogYW55LCByZXE6IGFueSwgbWVzc2FnZTogYW55KSB7XG4gIHRyeSB7XG4gICAgaWYgKG1lc3NhZ2UgJiYgKG1lc3NhZ2VbJ21pbWV0eXBlJ10gfHwgbWVzc2FnZS5pc01lZGlhIHx8IG1lc3NhZ2UuaXNNTVMpKSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cGxvYWRTMykge1xuICAgICAgICBjb25zdCBoYXNoTmFtZSA9IGNyeXB0by5yYW5kb21CeXRlcygyNCkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke2hhc2hOYW1lfS4ke21pbWUuZXh0ZW5zaW9uKG1lc3NhZ2UubWltZXR5cGUpfWA7XG5cbiAgICAgICAgY29uc3QgczMgPSBuZXcgYXdzLlMzKCk7XG5cbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgIEJ1Y2tldDogY2xpZW50LnNlc3Npb24sXG4gICAgICAgICAgS2V5OiBmaWxlTmFtZSxcbiAgICAgICAgICBCb2R5OiBidWZmZXIsXG4gICAgICAgICAgQUNMOiAncHVibGljLXJlYWQnLFxuICAgICAgICAgIENvbnRlbnRUeXBlOiBtZXNzYWdlLm1pbWV0eXBlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgczMudXBsb2FkKHBhcmFtcykucHJvbWlzZSgpO1xuICAgICAgICBtZXNzYWdlLmZpbGVVcmwgPSBkYXRhLkxvY2F0aW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5ib2R5ID0gYXdhaXQgYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydEFsbFNlc3Npb25zKGNvbmZpZzogYW55LCBsb2dnZXI6IGFueSkge1xuICB0cnkge1xuICAgIGF3YWl0IGFwaS5wb3N0KFxuICAgICAgYCR7Y29uZmlnLmhvc3R9OiR7Y29uZmlnLnBvcnR9L2FwaS8ke2NvbmZpZy5zZWNyZXRLZXl9L3N0YXJ0LWFsbGBcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmVycm9yKGUpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydEhlbHBlcihjbGllbnQ6IGFueSwgcmVxOiBhbnkpIHtcbiAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suYWxsVW5yZWFkT25TdGFydCkgYXdhaXQgc2VuZFVucmVhZChjbGllbnQsIHJlcSk7XG5cbiAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUuZW5hYmxlKSBhd2FpdCBhcmNoaXZlKGNsaWVudCwgcmVxKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VuZFVucmVhZChjbGllbnQ6IGFueSwgcmVxOiBhbnkpIHtcbiAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEluaWNpbyBlbnZpYXIgbWVuc2FnZW5zIG7Do28gbGlkYXNgKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGNoYXRzID0gYXdhaXQgY2xpZW50LmdldEFsbENoYXRzV2l0aE1lc3NhZ2VzKHRydWUpO1xuXG4gICAgaWYgKGNoYXRzICYmIGNoYXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhdHMubGVuZ3RoOyBpKyspXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2hhdHNbaV0ubXNncy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAndW5yZWFkbWVzc2FnZXMnLCBjaGF0c1tpXS5tc2dzW2pdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlcS5sb2dnZXIuaW5mbyhgJHtjbGllbnQuc2Vzc2lvbn0gOiBGaW0gZW52aWFyIG1lbnNhZ2VucyBuw6NvIGxpZGFzYCk7XG4gIH0gY2F0Y2ggKGV4KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihleCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gYXJjaGl2ZShjbGllbnQ6IGFueSwgcmVxOiBhbnkpIHtcbiAgYXN5bmMgZnVuY3Rpb24gc2xlZXAodGltZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWUgKiAxMCkpO1xuICB9XG5cbiAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEluaWNpbyBhcnF1aXZhbmRvIGNoYXRzYCk7XG5cbiAgdHJ5IHtcbiAgICBsZXQgY2hhdHMgPSBhd2FpdCBjbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICBpZiAoY2hhdHMgJiYgQXJyYXkuaXNBcnJheShjaGF0cykgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgY2hhdHMgPSBjaGF0cy5maWx0ZXIoKGMpID0+ICFjLmFyY2hpdmUpO1xuICAgIH1cbiAgICBpZiAoY2hhdHMgJiYgQXJyYXkuaXNBcnJheShjaGF0cykgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGF0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY2hhdHNbaV0udCAqIDEwMDApO1xuXG4gICAgICAgIGlmIChEYXlzQmV0d2VlbihkYXRlKSA+IHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUuZGF5c1RvQXJjaGl2ZSkge1xuICAgICAgICAgIGF3YWl0IGNsaWVudC5hcmNoaXZlQ2hhdChcbiAgICAgICAgICAgIGNoYXRzW2ldLmlkLmlkIHx8IGNoYXRzW2ldLmlkLl9zZXJpYWxpemVkLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgc2xlZXAoXG4gICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByZXEuc2VydmVyT3B0aW9ucy5hcmNoaXZlLndhaXRUaW1lICsgMSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlcS5sb2dnZXIuaW5mbyhgJHtjbGllbnQuc2Vzc2lvbn0gOiBGaW0gYXJxdWl2YW5kbyBjaGF0c2ApO1xuICB9IGNhdGNoIChleCkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIERheXNCZXR3ZWVuKFN0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUoKTtcbiAgLy8gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYWxsIFVUQyBkYXlzIChubyBEU1QpXG4gIGNvbnN0IG9uZURheSA9IDEwMDAgKiA2MCAqIDYwICogMjQ7XG5cbiAgLy8gQSBkYXkgaW4gVVRDIGFsd2F5cyBsYXN0cyAyNCBob3VycyAodW5saWtlIGluIG90aGVyIHRpbWUgZm9ybWF0cylcbiAgY29uc3Qgc3RhcnQgPSBEYXRlLlVUQyhcbiAgICBlbmREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgZW5kRGF0ZS5nZXRNb250aCgpLFxuICAgIGVuZERhdGUuZ2V0RGF0ZSgpXG4gICk7XG4gIGNvbnN0IGVuZCA9IERhdGUuVVRDKFxuICAgIFN0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgIFN0YXJ0RGF0ZS5nZXRNb250aCgpLFxuICAgIFN0YXJ0RGF0ZS5nZXREYXRlKClcbiAgKTtcblxuICAvLyBzbyBpdCdzIHNhZmUgdG8gZGl2aWRlIGJ5IDI0IGhvdXJzXG4gIHJldHVybiAoc3RhcnQgLSBlbmQpIC8gb25lRGF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9sZGVycygpIHtcbiAgY29uc3QgX19kaXJuYW1lID0gcGF0aC5yZXNvbHZlKHBhdGguZGlybmFtZSgnJykpO1xuICBjb25zdCBkaXJGaWxlcyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdXaGF0c0FwcEltYWdlcycpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyRmlsZXMpKSB7XG4gICAgZnMubWtkaXJTeW5jKGRpckZpbGVzKTtcbiAgfVxuXG4gIGNvbnN0IGRpclVwbG9hZCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICd1cGxvYWRzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJVcGxvYWQpKSB7XG4gICAgZnMubWtkaXJTeW5jKGRpclVwbG9hZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0clRvQm9vbChzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIC9eKHRydWV8MSkkL2kudGVzdChzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElQQWRkcmVzcygpIHtcbiAgY29uc3QgaW50ZXJmYWNlcyA9IG9zLm5ldHdvcmtJbnRlcmZhY2VzKCk7XG4gIGZvciAoY29uc3QgZGV2TmFtZSBpbiBpbnRlcmZhY2VzKSB7XG4gICAgY29uc3QgaWZhY2U6IGFueSA9IGludGVyZmFjZXNbZGV2TmFtZV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZmFjZS5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYWxpYXMgPSBpZmFjZVtpXTtcbiAgICAgIGlmIChcbiAgICAgICAgYWxpYXMuZmFtaWx5ID09PSAnSVB2NCcgJiZcbiAgICAgICAgYWxpYXMuYWRkcmVzcyAhPT0gJzEyNy4wLjAuMScgJiZcbiAgICAgICAgIWFsaWFzLmludGVybmFsXG4gICAgICApXG4gICAgICAgIHJldHVybiBhbGlhcy5hZGRyZXNzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gJzAuMC4wLjAnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWF4TGlzdG5lcnMoc2VydmVyT3B0aW9uczogU2VydmVyT3B0aW9ucykge1xuICBpZiAoc2VydmVyT3B0aW9ucyAmJiBOdW1iZXIuaXNJbnRlZ2VyKHNlcnZlck9wdGlvbnMubWF4TGlzdGVuZXJzKSkge1xuICAgIHByb2Nlc3Muc2V0TWF4TGlzdGVuZXJzKHNlcnZlck9wdGlvbnMubWF4TGlzdGVuZXJzKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdW5saW5rQXN5bmMgPSBwcm9taXNpZnkoZnMudW5saW5rKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNhdGFsb2dMaW5rKHNlc3Npb246IGFueSkge1xuICBjb25zdCBbd2lkXSA9IHNlc3Npb24uc3BsaXQoJ0AnKTtcbiAgcmV0dXJuIGBodHRwczovL3dhLm1lL2MvJHt3aWR9YDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsR0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksR0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sS0FBQSxHQUFBTixPQUFBOztBQUVBLElBQUFPLE9BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVIsT0FBQSxvQkFBMEMsU0FBQVMseUJBQUFDLFdBQUEsY0FBQUMsT0FBQSxpQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxPQUFBRSxnQkFBQSxPQUFBRixPQUFBLFdBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsVUFBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxJQUFBRixXQUFBLFlBQUFJLHdCQUFBQyxHQUFBLEVBQUFMLFdBQUEsUUFBQUEsV0FBQSxJQUFBSyxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxVQUFBRCxHQUFBLE1BQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsMkJBQUFFLE9BQUEsRUFBQUYsR0FBQSxRQUFBRyxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsTUFBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxXQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxPQUFBTSxNQUFBLFVBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJ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
303
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXdzU2RrIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYXhpb3MiLCJfY3J5cHRvIiwiX2ZzIiwiX21pbWVUeXBlcyIsIl9vcyIsIl9wYXRoIiwiX3V0aWwiLCJfY29uZmlnIiwiX2luZGV4IiwibWltZSIsImNyeXB0byIsImNvbmZpZyIsIndlYmhvb2siLCJ1cGxvYWRTMyIsIm1pbWV0eXBlcyIsIkNyeXB0byIsImNvbnRhY3RUb0FycmF5IiwibnVtYmVyIiwiaXNHcm91cCIsImxvY2FsQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFjdCIsInNwbGl0IiwicmVwbGFjZSIsInB1c2giLCJhcnJDb250YWN0cyIsImdyb3VwVG9BcnJheSIsImdyb3VwIiwiZ3JvdXBOYW1lVG9BcnJheSIsImNhbGxXZWJIb29rIiwiY2xpZW50IiwicmVxIiwiZXZlbnQiLCJkYXRhIiwic2VydmVyT3B0aW9ucyIsInVybCIsImF1dG9Eb3dubG9hZCIsImNoYXRJZCIsImZyb20iLCJfc2VyaWFsaXplZCIsIk9iamVjdCIsImFzc2lnbiIsInNlc3Npb24iLCJtYXBwZXIiLCJlbmFibGUiLCJjb252ZXJ0IiwicHJlZml4IiwiYXBpIiwicG9zdCIsInRoZW4iLCJldmVudHMiLCJpbmNsdWRlcyIsInJlYWRNZXNzYWdlIiwic2VuZFNlZW4iLCJlIiwiY2F0Y2giLCJsb2dnZXIiLCJ3YXJuIiwiZXJyb3IiLCJtZXNzYWdlIiwiaXNNZWRpYSIsImlzTU1TIiwiYnVmZmVyIiwiZGVjcnlwdEZpbGUiLCJoYXNoTmFtZSIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJzMyIsImF3cyIsIlMzIiwiYnVja2V0TmFtZSIsImF3c0J1Y2tldE5hbWUiLCJmaWxlTmFtZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwicGFyYW1zIiwiQnVja2V0IiwiS2V5IiwiQm9keSIsIkFDTCIsIkNvbnRlbnRUeXBlIiwidXBsb2FkIiwicHJvbWlzZSIsImZpbGVVcmwiLCJMb2NhdGlvbiIsImJvZHkiLCJzdGFydEFsbFNlc3Npb25zIiwiaG9zdCIsInBvcnQiLCJzZWNyZXRLZXkiLCJzdGFydEhlbHBlciIsImFsbFVucmVhZE9uU3RhcnQiLCJzZW5kVW5yZWFkIiwiYXJjaGl2ZSIsImluZm8iLCJjaGF0cyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwibGVuZ3RoIiwiaSIsImoiLCJtc2dzIiwiZXgiLCJzbGVlcCIsInRpbWUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJnZXRBbGxDaGF0cyIsImZpbHRlciIsImMiLCJkYXRlIiwiRGF0ZSIsInQiLCJEYXlzQmV0d2VlbiIsImRheXNUb0FyY2hpdmUiLCJhcmNoaXZlQ2hhdCIsImlkIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwid2FpdFRpbWUiLCJTdGFydERhdGUiLCJlbmREYXRlIiwib25lRGF5Iiwic3RhcnQiLCJVVEMiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImVuZCIsImNyZWF0ZUZvbGRlcnMiLCJfX2Rpcm5hbWUiLCJwYXRoIiwiZGlybmFtZSIsImRpckZpbGVzIiwiZnMiLCJleGlzdHNTeW5jIiwibWtkaXJTeW5jIiwiZGlyVXBsb2FkIiwic3RyVG9Cb29sIiwicyIsInRlc3QiLCJnZXRJUEFkZHJlc3MiLCJpbnRlcmZhY2VzIiwib3MiLCJuZXR3b3JrSW50ZXJmYWNlcyIsImRldk5hbWUiLCJpZmFjZSIsImFsaWFzIiwiZmFtaWx5IiwiYWRkcmVzcyIsImludGVybmFsIiwic2V0TWF4TGlzdG5lcnMiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJtYXhMaXN0ZW5lcnMiLCJwcm9jZXNzIiwic2V0TWF4TGlzdGVuZXJzIiwidW5saW5rQXN5bmMiLCJwcm9taXNpZnkiLCJ1bmxpbmsiLCJleHBvcnRzIiwiY3JlYXRlQ2F0YWxvZ0xpbmsiLCJ3aWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9mdW5jdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGF3cyBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCBhcGkgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IENyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBtaW1ldHlwZXMgZnJvbSAnbWltZS10eXBlcyc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcblxuaW1wb3J0IGNvbmZpZyBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgY29udmVydCB9IGZyb20gJy4uL21hcHBlci9pbmRleCc7XG5pbXBvcnQgeyBTZXJ2ZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvU2VydmVyT3B0aW9ucyc7XG5cbmxldCBtaW1lOiBhbnksIGNyeXB0bzogYW55OyAvLywgYXdzOiBhbnk7XG5pZiAoY29uZmlnLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgbWltZSA9IGNvbmZpZy53ZWJob29rLnVwbG9hZFMzID8gbWltZXR5cGVzIDogbnVsbDtcbiAgY3J5cHRvID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFjdFRvQXJyYXkobnVtYmVyOiBhbnksIGlzR3JvdXA/OiBib29sZWFuKSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobnVtYmVyKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgbnVtYmVyKSB7XG4gICAgICBpc0dyb3VwXG4gICAgICAgID8gKGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF0pXG4gICAgICAgIDogKGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF0/LnJlcGxhY2UoL1teXFx3IF0vZywgJycpKTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJylcbiAgICAgICAgaWYgKGlzR3JvdXApIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgICAgICBlbHNlIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AYy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IG51bWJlci5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgYXJyQ29udGFjdHMpIHtcbiAgICAgIGlzR3JvdXBcbiAgICAgICAgPyAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXSlcbiAgICAgICAgOiAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXT8ucmVwbGFjZSgvW15cXHcgXS9nLCAnJykpO1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKVxuICAgICAgICBpZiAoaXNHcm91cCkgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgICAgIGVsc2UgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBjLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBUb0FycmF5KGdyb3VwOiBhbnkpIHtcbiAgY29uc3QgbG9jYWxBcnI6IGFueSA9IFtdO1xuICBpZiAoQXJyYXkuaXNBcnJheShncm91cCkpIHtcbiAgICBmb3IgKGxldCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdO1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgYXJyQ29udGFjdHMpIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsb2NhbEFycjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwTmFtZVRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBncm91cCkge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFyckNvbnRhY3RzID0gZ3JvdXAuc3BsaXQoL1xccypbLDtdXFxzKi9nKTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhY3Qgb2YgYXJyQ29udGFjdHMpIHtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsb2NhbEFycjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhbGxXZWJIb29rKFxuICBjbGllbnQ6IGFueSxcbiAgcmVxOiBhbnksXG4gIGV2ZW50OiBhbnksXG4gIGRhdGE6IGFueVxuKSB7XG4gIGNvbnN0IHdlYmhvb2sgPVxuICAgIGNsaWVudD8uY29uZmlnLndlYmhvb2sgfHwgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cmwgfHwgZmFsc2U7XG4gIGlmICh3ZWJob29rKSB7XG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suYXV0b0Rvd25sb2FkKVxuICAgICAgYXdhaXQgYXV0b0Rvd25sb2FkKGNsaWVudCwgcmVxLCBkYXRhKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2hhdElkID1cbiAgICAgICAgZGF0YS5mcm9tIHx8XG4gICAgICAgIGRhdGEuY2hhdElkIHx8XG4gICAgICAgIChkYXRhLmNoYXRJZCA/IGRhdGEuY2hhdElkLl9zZXJpYWxpemVkIDogbnVsbCk7XG4gICAgICBkYXRhID0gT2JqZWN0LmFzc2lnbih7IGV2ZW50OiBldmVudCwgc2Vzc2lvbjogY2xpZW50LnNlc3Npb24gfSwgZGF0YSk7XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMubWFwcGVyLmVuYWJsZSlcbiAgICAgICAgZGF0YSA9IGF3YWl0IGNvbnZlcnQocmVxLnNlcnZlck9wdGlvbnMubWFwcGVyLnByZWZpeCwgZGF0YSk7XG4gICAgICBhcGlcbiAgICAgICAgLnBvc3Qod2ViaG9vaywgZGF0YSlcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBbJ3VucmVhZG1lc3NhZ2VzJywgJ29ubWVzc2FnZSddO1xuICAgICAgICAgICAgaWYgKGV2ZW50cy5pbmNsdWRlcyhldmVudCkgJiYgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5yZWFkTWVzc2FnZSlcbiAgICAgICAgICAgICAgY2xpZW50LnNlbmRTZWVuKGNoYXRJZCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgcmVxLmxvZ2dlci53YXJuKCdFcnJvciBjYWxsaW5nIFdlYmhvb2suJywgZSk7XG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGF1dG9Eb3dubG9hZChjbGllbnQ6IGFueSwgcmVxOiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICB0cnkge1xuICAgIGlmIChtZXNzYWdlICYmIChtZXNzYWdlWydtaW1ldHlwZSddIHx8IG1lc3NhZ2UuaXNNZWRpYSB8fCBtZXNzYWdlLmlzTU1TKSkge1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgICAgICAgY29uc3QgaGFzaE5hbWUgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMjQpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgICBjb25zdCBzMyA9IG5ldyBhd3MuUzMoKTtcbiAgICAgICAgY29uc3QgYnVja2V0TmFtZSA9XG4gICAgICAgICAgY29uZmlnLndlYmhvb2suYXdzQnVja2V0TmFtZSAmJiBjb25maWcud2ViaG9vay5hd3NCdWNrZXROYW1lICE9PSAnJ1xuICAgICAgICAgICAgPyBjb25maWcud2ViaG9vay5hd3NCdWNrZXROYW1lXG4gICAgICAgICAgICA6IGNsaWVudC5zZXNzaW9uO1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke1xuICAgICAgICAgIGNvbmZpZy53ZWJob29rLmF3c0J1Y2tldE5hbWUgJiYgY29uZmlnLndlYmhvb2suYXdzQnVja2V0TmFtZSAhPT0gJydcbiAgICAgICAgICAgID8gY2xpZW50LnNlc3Npb24gKyAnLydcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfSR7aGFzaE5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcblxuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgICAgIEtleTogZmlsZU5hbWUsXG4gICAgICAgICAgQm9keTogYnVmZmVyLFxuICAgICAgICAgIEFDTDogJ3B1YmxpYy1yZWFkJyxcbiAgICAgICAgICBDb250ZW50VHlwZTogbWVzc2FnZS5taW1ldHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHMzLnVwbG9hZChwYXJhbXMpLnByb21pc2UoKTtcbiAgICAgICAgbWVzc2FnZS5maWxlVXJsID0gZGF0YS5Mb2NhdGlvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UuYm9keSA9IGF3YWl0IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRBbGxTZXNzaW9ucyhjb25maWc6IGFueSwgbG9nZ2VyOiBhbnkpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhcGkucG9zdChcbiAgICAgIGAke2NvbmZpZy5ob3N0fToke2NvbmZpZy5wb3J0fS9hcGkvJHtjb25maWcuc2VjcmV0S2V5fS9zdGFydC1hbGxgXG4gICAgKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5lcnJvcihlKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRIZWxwZXIoY2xpZW50OiBhbnksIHJlcTogYW55KSB7XG4gIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmFsbFVucmVhZE9uU3RhcnQpIGF3YWl0IHNlbmRVbnJlYWQoY2xpZW50LCByZXEpO1xuXG4gIGlmIChyZXEuc2VydmVyT3B0aW9ucy5hcmNoaXZlLmVuYWJsZSkgYXdhaXQgYXJjaGl2ZShjbGllbnQsIHJlcSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRVbnJlYWQoY2xpZW50OiBhbnksIHJlcTogYW55KSB7XG4gIHJlcS5sb2dnZXIuaW5mbyhgJHtjbGllbnQuc2Vzc2lvbn0gOiBJbmljaW8gZW52aWFyIG1lbnNhZ2VucyBuw6NvIGxpZGFzYCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjaGF0cyA9IGF3YWl0IGNsaWVudC5nZXRBbGxDaGF0c1dpdGhNZXNzYWdlcyh0cnVlKTtcblxuICAgIGlmIChjaGF0cyAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXRzLmxlbmd0aDsgaSsrKVxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNoYXRzW2ldLm1zZ3MubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ3VucmVhZG1lc3NhZ2VzJywgY2hhdHNbaV0ubXNnc1tqXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogRmltIGVudmlhciBtZW5zYWdlbnMgbsOjbyBsaWRhc2ApO1xuICB9IGNhdGNoIChleCkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXgpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFyY2hpdmUoY2xpZW50OiBhbnksIHJlcTogYW55KSB7XG4gIGFzeW5jIGZ1bmN0aW9uIHNsZWVwKHRpbWU6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lICogMTApKTtcbiAgfVxuXG4gIHJlcS5sb2dnZXIuaW5mbyhgJHtjbGllbnQuc2Vzc2lvbn0gOiBJbmljaW8gYXJxdWl2YW5kbyBjaGF0c2ApO1xuXG4gIHRyeSB7XG4gICAgbGV0IGNoYXRzID0gYXdhaXQgY2xpZW50LmdldEFsbENoYXRzKCk7XG4gICAgaWYgKGNoYXRzICYmIEFycmF5LmlzQXJyYXkoY2hhdHMpICYmIGNoYXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNoYXRzID0gY2hhdHMuZmlsdGVyKChjKSA9PiAhYy5hcmNoaXZlKTtcbiAgICB9XG4gICAgaWYgKGNoYXRzICYmIEFycmF5LmlzQXJyYXkoY2hhdHMpICYmIGNoYXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGNoYXRzW2ldLnQgKiAxMDAwKTtcblxuICAgICAgICBpZiAoRGF5c0JldHdlZW4oZGF0ZSkgPiByZXEuc2VydmVyT3B0aW9ucy5hcmNoaXZlLmRheXNUb0FyY2hpdmUpIHtcbiAgICAgICAgICBhd2FpdCBjbGllbnQuYXJjaGl2ZUNoYXQoXG4gICAgICAgICAgICBjaGF0c1tpXS5pZC5pZCB8fCBjaGF0c1tpXS5pZC5fc2VyaWFsaXplZCxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHNsZWVwKFxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS53YWl0VGltZSArIDEpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogRmltIGFycXVpdmFuZG8gY2hhdHNgKTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBEYXlzQmV0d2VlbihTdGFydERhdGU6IERhdGUpIHtcbiAgY29uc3QgZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIC8vIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIGFsbCBVVEMgZGF5cyAobm8gRFNUKVxuICBjb25zdCBvbmVEYXkgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuXG4gIC8vIEEgZGF5IGluIFVUQyBhbHdheXMgbGFzdHMgMjQgaG91cnMgKHVubGlrZSBpbiBvdGhlciB0aW1lIGZvcm1hdHMpXG4gIGNvbnN0IHN0YXJ0ID0gRGF0ZS5VVEMoXG4gICAgZW5kRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgIGVuZERhdGUuZ2V0TW9udGgoKSxcbiAgICBlbmREYXRlLmdldERhdGUoKVxuICApO1xuICBjb25zdCBlbmQgPSBEYXRlLlVUQyhcbiAgICBTdGFydERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICBTdGFydERhdGUuZ2V0TW9udGgoKSxcbiAgICBTdGFydERhdGUuZ2V0RGF0ZSgpXG4gICk7XG5cbiAgLy8gc28gaXQncyBzYWZlIHRvIGRpdmlkZSBieSAyNCBob3Vyc1xuICByZXR1cm4gKHN0YXJ0IC0gZW5kKSAvIG9uZURheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcnMoKSB7XG4gIGNvbnN0IF9fZGlybmFtZSA9IHBhdGgucmVzb2x2ZShwYXRoLmRpcm5hbWUoJycpKTtcbiAgY29uc3QgZGlyRmlsZXMgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnV2hhdHNBcHBJbWFnZXMnKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpckZpbGVzKSkge1xuICAgIGZzLm1rZGlyU3luYyhkaXJGaWxlcyk7XG4gIH1cblxuICBjb25zdCBkaXJVcGxvYWQgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAndXBsb2FkcycpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyVXBsb2FkKSkge1xuICAgIGZzLm1rZGlyU3luYyhkaXJVcGxvYWQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJUb0Jvb2woczogc3RyaW5nKSB7XG4gIHJldHVybiAvXih0cnVlfDEpJC9pLnRlc3Qocyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJUEFkZHJlc3MoKSB7XG4gIGNvbnN0IGludGVyZmFjZXMgPSBvcy5uZXR3b3JrSW50ZXJmYWNlcygpO1xuICBmb3IgKGNvbnN0IGRldk5hbWUgaW4gaW50ZXJmYWNlcykge1xuICAgIGNvbnN0IGlmYWNlOiBhbnkgPSBpbnRlcmZhY2VzW2Rldk5hbWVdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWZhY2UubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGFsaWFzID0gaWZhY2VbaV07XG4gICAgICBpZiAoXG4gICAgICAgIGFsaWFzLmZhbWlseSA9PT0gJ0lQdjQnICYmXG4gICAgICAgIGFsaWFzLmFkZHJlc3MgIT09ICcxMjcuMC4wLjEnICYmXG4gICAgICAgICFhbGlhcy5pbnRlcm5hbFxuICAgICAgKVxuICAgICAgICByZXR1cm4gYWxpYXMuYWRkcmVzcztcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcwLjAuMC4wJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE1heExpc3RuZXJzKHNlcnZlck9wdGlvbnM6IFNlcnZlck9wdGlvbnMpIHtcbiAgaWYgKHNlcnZlck9wdGlvbnMgJiYgTnVtYmVyLmlzSW50ZWdlcihzZXJ2ZXJPcHRpb25zLm1heExpc3RlbmVycykpIHtcbiAgICBwcm9jZXNzLnNldE1heExpc3RlbmVycyhzZXJ2ZXJPcHRpb25zLm1heExpc3RlbmVycyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVubGlua0FzeW5jID0gcHJvbWlzaWZ5KGZzLnVubGluayk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDYXRhbG9nTGluayhzZXNzaW9uOiBhbnkpIHtcbiAgY29uc3QgW3dpZF0gPSBzZXNzaW9uLnNwbGl0KCdAJyk7XG4gIHJldHVybiBgaHR0cHM6Ly93YS5tZS9jLyR7d2lkfWA7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEdBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVAsT0FBQTs7QUFFQSxJQUFBUSxPQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFULE9BQUEsb0JBQTBDLENBekIxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FjQSxJQUFJVSxJQUFTLEVBQUVDLE1BQVcsQ0FBQyxDQUFDO0FBQzVCLElBQUlDLGVBQU0sQ0FBQ0MsT0FBTyxDQUFDQyxRQUFRLEVBQUUsQ0FDM0JKLElBQUksR0FBR0UsZUFBTSxDQUFDQyxPQUFPLENBQUNDLFFBQVEsR0FBR0Msa0JBQVMsR0FBRyxJQUFJLENBQ2pESixNQUFNLEdBQUdDLGVBQU0sQ0FBQ0MsT0FBTyxDQUFDQyxRQUFRLEdBQUdFLGVBQU0sR0FBRyxJQUFJLENBQ2xELENBRU8sU0FBU0MsY0FBY0EsQ0FBQ0MsTUFBVyxFQUFFQyxPQUFpQixFQUFFLENBQzdELE1BQU1DLFFBQWEsR0FBRyxFQUFFLENBQ3hC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
@@ -28,4 +28,4 @@ var _factory = _interopRequireDefault(require("./tokenStore/factory")); /*
28
28
  * See the License for the specific language governing permissions and
29
29
  * limitations under the License.
30
30
  */async function getAllTokens(req) {const tokenStore = new _factory.default();const myTokenStore = tokenStore.createTokenStory(null);try {return await myTokenStore.listTokens();} catch (e) {req.logger.error(e);}}
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZmFjdG9yeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZ2V0QWxsVG9rZW5zIiwicmVxIiwidG9rZW5TdG9yZSIsIkZhY3RvcnkiLCJteVRva2VuU3RvcmUiLCJjcmVhdGVUb2tlblN0b3J5IiwibGlzdFRva2VucyIsImUiLCJsb2dnZXIiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2dldEFsbFRva2Vucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgRmFjdG9yeSBmcm9tICcuL3Rva2VuU3RvcmUvZmFjdG9yeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbFRva2VucyhyZXE6IGFueSkge1xuICBjb25zdCB0b2tlblN0b3JlID0gbmV3IEZhY3RvcnkoKTtcbiAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KG51bGwpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBteVRva2VuU3RvcmUubGlzdFRva2VucygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsMEJBQTJDLENBZjNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUdlLGVBQWVDLFlBQVlBLENBQUNDLEdBQVEsRUFBRSxDQUNuRCxNQUFNQyxVQUFVLEdBQUcsSUFBSUMsZ0JBQU8sRUFBRSxDQUNoQyxNQUFNQyxZQUFZLEdBQUdGLFVBQVUsQ0FBQ0csZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQ3RELElBQUksQ0FDRixPQUFPLE1BQU1ELFlBQVksQ0FBQ0UsVUFBVSxFQUFFLENBQ3hDLENBQUMsQ0FBQyxPQUFPQyxDQUFDLEVBQUUsQ0FDVk4sR0FBRyxDQUFDTyxNQUFNLENBQUNDLEtBQUssQ0FBQ0YsQ0FBQyxDQUFDLENBQ3JCLENBQ0YifQ==
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZmFjdG9yeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZ2V0QWxsVG9rZW5zIiwicmVxIiwidG9rZW5TdG9yZSIsIkZhY3RvcnkiLCJteVRva2VuU3RvcmUiLCJjcmVhdGVUb2tlblN0b3J5IiwibGlzdFRva2VucyIsImUiLCJsb2dnZXIiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2dldEFsbFRva2Vucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgRmFjdG9yeSBmcm9tICcuL3Rva2VuU3RvcmUvZmFjdG9yeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbFRva2VucyhyZXE6IGFueSkge1xuICBjb25zdCB0b2tlblN0b3JlID0gbmV3IEZhY3RvcnkoKTtcbiAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KG51bGwpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBteVRva2VuU3RvcmUubGlzdFRva2VucygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsMEJBQTJDLENBZjNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUdlLGVBQWVDLFlBQVlBLENBQUNDLEdBQVEsRUFBRSxDQUNuRCxNQUFNQyxVQUFVLEdBQUcsSUFBSUMsZ0JBQU8sQ0FBQyxDQUFDLENBQ2hDLE1BQU1DLFlBQVksR0FBR0YsVUFBVSxDQUFDRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FDdEQsSUFBSSxDQUNGLE9BQU8sTUFBTUQsWUFBWSxDQUFDRSxVQUFVLENBQUMsQ0FBQyxDQUN4QyxDQUFDLENBQUMsT0FBT0MsQ0FBQyxFQUFFLENBQ1ZOLEdBQUcsQ0FBQ08sTUFBTSxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQyxDQUNyQixDQUNGIn0=
@@ -36,32 +36,32 @@ const jsonLogFileFormat = _winston.default.format.combine(_winston.default.forma
36
36
  // with proper stacktraces enabled
37
37
  if (options.logger.indexOf('console') > -1) {
38
38
  logger.add(
39
- new _winston.default.transports.Console({
40
- format: _winston.default.format.combine(
41
- _winston.default.format.errors({ stack: true }),
42
- _winston.default.format.colorize(),
43
- _winston.default.format.printf(({ level, message, timestamp, stack }) => {
44
- if (stack) {
45
- // print log trace
46
- return `${level}: ${timestamp} ${message} - ${stack}`;
47
- }
48
- return `${level}: ${timestamp} ${message}`;
49
- }))
50
-
51
- }));
52
-
39
+ new _winston.default.transports.Console({
40
+ format: _winston.default.format.combine(
41
+ _winston.default.format.errors({ stack: true }),
42
+ _winston.default.format.colorize(),
43
+ _winston.default.format.printf(({ level, message, timestamp, stack }) => {
44
+ if (stack) {
45
+ // print log trace
46
+ return `${level}: ${timestamp} ${message} - ${stack}`;
47
+ }
48
+ return `${level}: ${timestamp} ${message}`;
49
+ })
50
+ )
51
+ })
52
+ );
53
53
  }
54
54
  if (options.logger.indexOf('file') > -1) {
55
55
  logger.add(
56
- new _winston.default.transports.File({
57
- filename: './log/app.logg',
58
- level: log_level,
59
- maxsize: 10485760,
60
- maxFiles: 3
61
- }));
62
-
56
+ new _winston.default.transports.File({
57
+ filename: './log/app.logg',
58
+ level: log_level,
59
+ maxsize: 10485760,
60
+ maxFiles: 3
61
+ })
62
+ );
63
63
  }
64
64
 
65
65
  return logger;
66
66
  }
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luc3RvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwianNvbkxvZ0ZpbGVGb3JtYXQiLCJ3aW5zdG9uIiwiZm9ybWF0IiwiY29tYmluZSIsImVycm9ycyIsInN0YWNrIiwidGltZXN0YW1wIiwicHJldHR5UHJpbnQiLCJjcmVhdGVMb2dnZXIiLCJvcHRpb25zIiwibG9nX2xldmVsIiwibGV2ZWwiLCJsb2dnZXIiLCJpbmRleE9mIiwiYWRkIiwidHJhbnNwb3J0cyIsIkNvbnNvbGUiLCJjb2xvcml6ZSIsInByaW50ZiIsIm1lc3NhZ2UiLCJGaWxlIiwiZmlsZW5hbWUiLCJtYXhzaXplIiwibWF4RmlsZXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbi8vIFVzZSBKU09OIGxvZ2dpbmcgZm9yIGxvZyBmaWxlc1xuLy8gSGVyZSB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoKSBqdXN0IHNlZW0gdG8gd29ya1xuLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuY29uc3QganNvbkxvZ0ZpbGVGb3JtYXQgPSB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgd2luc3Rvbi5mb3JtYXQudGltZXN0YW1wKCksXG4gIHdpbnN0b24uZm9ybWF0LnByZXR0eVByaW50KClcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGxvZ19sZXZlbCA9IG9wdGlvbnMubGV2ZWw7XG4gIC8vIENyZWF0ZSBmaWxlIGxvZ2dlcnNcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnZGVidWcnLFxuICAgIGZvcm1hdDoganNvbkxvZ0ZpbGVGb3JtYXQsXG4gIH0pO1xuXG4gIC8vIFdoZW4gcnVubmluZyBsb2NhbGx5LCB3cml0ZSBldmVyeXRoaW5nIHRvIHRoZSBjb25zb2xlXG4gIC8vIHdpdGggcHJvcGVyIHN0YWNrdHJhY2VzIGVuYWJsZWRcbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2NvbnNvbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgIGZvcm1hdDogd2luc3Rvbi5mb3JtYXQuY29tYmluZShcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBzdGFjayB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgLy8gcHJpbnQgbG9nIHRyYWNlXG4gICAgICAgICAgICAgIHJldHVybiBgJHtsZXZlbH06ICR7dGltZXN0YW1wfSAke21lc3NhZ2V9IC0gJHtzdGFja31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke2xldmVsfTogJHt0aW1lc3RhbXB9ICR7bWVzc2FnZX1gO1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2ZpbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgIGZpbGVuYW1lOiAnLi9sb2cvYXBwLmxvZ2cnLFxuICAgICAgICBsZXZlbDogbG9nX2xldmVsLFxuICAgICAgICBtYXhzaXplOiAxMDQ4NTc2MCxcbiAgICAgICAgbWF4RmlsZXM6IDMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbG9nZ2VyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsYUFBOEIsQ0FmOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZEEsQ0FpQkE7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUdDLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0MsT0FBTyxDQUM5Q0YsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDdENKLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ksU0FBUyxFQUFFLEVBQzFCTCxnQkFBTyxDQUFDQyxNQUFNLENBQUNLLFdBQVcsRUFBRSxDQUM3QixDQUVNLFNBQVNDLFlBQVlBLENBQUNDLE9BQVksRUFBRSxDQUN6QyxNQUFNQyxTQUFTLEdBQUdELE9BQU8sQ0FBQ0UsS0FBSyxDQUFDLENBQ2hDO0VBQ0EsTUFBTUMsTUFBTSxHQUFHWCxnQkFBTyxDQUFDTyxZQUFZLENBQUMsRUFDbENHLEtBQUssRUFBRSxPQUFPLEVBQ2RULE1BQU0sRUFBRUYsaUJBQWlCLENBQzNCLENBQUMsQ0FBQztFQUVGO0VBQ0E7RUFDQSxJQUFJUyxPQUFPLENBQUNHLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQzFDRCxNQUFNLENBQUNFLEdBQUc7SUFDUixJQUFJYixnQkFBTyxDQUFDYyxVQUFVLENBQUNDLE9BQU8sQ0FBQztNQUM3QmQsTUFBTSxFQUFFRCxnQkFBTyxDQUFDQyxNQUFNLENBQUNDLE9BQU87TUFDNUJGLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUVDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO01BQ3RDSixnQkFBTyxDQUFDQyxNQUFNLENBQUNlLFFBQVEsRUFBRTtNQUN6QmhCLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLEtBQUssRUFBRVEsT0FBTyxFQUFFYixTQUFTLEVBQUVELEtBQUssQ0FBQyxDQUFDLEtBQUs7UUFDOUQsSUFBSUEsS0FBSyxFQUFFO1VBQ1Q7VUFDQSxPQUFRLEdBQUVNLEtBQU0sS0FBSUwsU0FBVSxJQUFHYSxPQUFRLE1BQUtkLEtBQU0sRUFBQztRQUN2RDtRQUNBLE9BQVEsR0FBRU0sS0FBTSxLQUFJTCxTQUFVLElBQUdhLE9BQVEsRUFBQztNQUM1QyxDQUFDLENBQUM7O0lBRU4sQ0FBQyxDQUFDLENBQ0g7O0VBQ0g7RUFDQSxJQUFJVixPQUFPLENBQUNHLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQ3ZDRCxNQUFNLENBQUNFLEdBQUc7SUFDUixJQUFJYixnQkFBTyxDQUFDYyxVQUFVLENBQUNLLElBQUksQ0FBQztNQUMxQkMsUUFBUSxFQUFFLGdCQUFnQjtNQUMxQlYsS0FBSyxFQUFFRCxTQUFTO01BQ2hCWSxPQUFPLEVBQUUsUUFBUTtNQUNqQkMsUUFBUSxFQUFFO0lBQ1osQ0FBQyxDQUFDLENBQ0g7O0VBQ0g7O0VBRUEsT0FBT1gsTUFBTTtBQUNmIn0=
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luc3RvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwianNvbkxvZ0ZpbGVGb3JtYXQiLCJ3aW5zdG9uIiwiZm9ybWF0IiwiY29tYmluZSIsImVycm9ycyIsInN0YWNrIiwidGltZXN0YW1wIiwicHJldHR5UHJpbnQiLCJjcmVhdGVMb2dnZXIiLCJvcHRpb25zIiwibG9nX2xldmVsIiwibGV2ZWwiLCJsb2dnZXIiLCJpbmRleE9mIiwiYWRkIiwidHJhbnNwb3J0cyIsIkNvbnNvbGUiLCJjb2xvcml6ZSIsInByaW50ZiIsIm1lc3NhZ2UiLCJGaWxlIiwiZmlsZW5hbWUiLCJtYXhzaXplIiwibWF4RmlsZXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbi8vIFVzZSBKU09OIGxvZ2dpbmcgZm9yIGxvZyBmaWxlc1xuLy8gSGVyZSB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoKSBqdXN0IHNlZW0gdG8gd29ya1xuLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuY29uc3QganNvbkxvZ0ZpbGVGb3JtYXQgPSB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgd2luc3Rvbi5mb3JtYXQudGltZXN0YW1wKCksXG4gIHdpbnN0b24uZm9ybWF0LnByZXR0eVByaW50KClcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGxvZ19sZXZlbCA9IG9wdGlvbnMubGV2ZWw7XG4gIC8vIENyZWF0ZSBmaWxlIGxvZ2dlcnNcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnZGVidWcnLFxuICAgIGZvcm1hdDoganNvbkxvZ0ZpbGVGb3JtYXQsXG4gIH0pO1xuXG4gIC8vIFdoZW4gcnVubmluZyBsb2NhbGx5LCB3cml0ZSBldmVyeXRoaW5nIHRvIHRoZSBjb25zb2xlXG4gIC8vIHdpdGggcHJvcGVyIHN0YWNrdHJhY2VzIGVuYWJsZWRcbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2NvbnNvbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgIGZvcm1hdDogd2luc3Rvbi5mb3JtYXQuY29tYmluZShcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBzdGFjayB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgLy8gcHJpbnQgbG9nIHRyYWNlXG4gICAgICAgICAgICAgIHJldHVybiBgJHtsZXZlbH06ICR7dGltZXN0YW1wfSAke21lc3NhZ2V9IC0gJHtzdGFja31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke2xldmVsfTogJHt0aW1lc3RhbXB9ICR7bWVzc2FnZX1gO1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2ZpbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgIGZpbGVuYW1lOiAnLi9sb2cvYXBwLmxvZ2cnLFxuICAgICAgICBsZXZlbDogbG9nX2xldmVsLFxuICAgICAgICBtYXhzaXplOiAxMDQ4NTc2MCxcbiAgICAgICAgbWF4RmlsZXM6IDMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbG9nZ2VyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsYUFBOEIsQ0FmOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZEEsQ0FpQkE7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUdDLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0MsT0FBTyxDQUM5Q0YsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDdENKLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFDMUJMLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ssV0FBVyxDQUFDLENBQzdCLENBQUMsQ0FFTSxTQUFTQyxZQUFZQSxDQUFDQyxPQUFZLEVBQUUsQ0FDekMsTUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNFLEtBQUssQ0FBQyxDQUNoQztFQUNBLE1BQU1DLE1BQU0sR0FBR1gsZ0JBQU8sQ0FBQ08sWUFBWSxDQUFDLEVBQ2xDRyxLQUFLLEVBQUUsT0FBTyxFQUNkVCxNQUFNLEVBQUVGLGlCQUFpQixDQUMzQixDQUFDLENBQUM7RUFFRjtFQUNBO0VBQ0EsSUFBSVMsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUMxQ0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDQyxPQUFPLENBQUM7UUFDN0JkLE1BQU0sRUFBRUQsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDQyxPQUFPO1VBQzVCRixnQkFBTyxDQUFDQyxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztVQUN0Q0osZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDZSxRQUFRLENBQUMsQ0FBQztVQUN6QmhCLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLEtBQUssRUFBRVEsT0FBTyxFQUFFYixTQUFTLEVBQUVELEtBQUssQ0FBQyxDQUFDLEtBQUs7WUFDOUQsSUFBSUEsS0FBSyxFQUFFO2NBQ1Q7Y0FDQSxPQUFRLEdBQUVNLEtBQU0sS0FBSUwsU0FBVSxJQUFHYSxPQUFRLE1BQUtkLEtBQU0sRUFBQztZQUN2RDtZQUNBLE9BQVEsR0FBRU0sS0FBTSxLQUFJTCxTQUFVLElBQUdhLE9BQVEsRUFBQztVQUM1QyxDQUFDO1FBQ0g7TUFDRixDQUFDO0lBQ0gsQ0FBQztFQUNIO0VBQ0EsSUFBSVYsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUN2Q0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDSyxJQUFJLENBQUM7UUFDMUJDLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUJWLEtBQUssRUFBRUQsU0FBUztRQUNoQlksT0FBTyxFQUFFLFFBQVE7UUFDakJDLFFBQVEsRUFBRTtNQUNaLENBQUM7SUFDSCxDQUFDO0VBQ0g7O0VBRUEsT0FBT1gsTUFBTTtBQUNmIn0=
@@ -0,0 +1,130 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.backupSessions = backupSessions;exports.closeAllSessions = closeAllSessions;exports.restoreSessions = restoreSessions;
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ var _archiver = _interopRequireDefault(require("archiver"));
18
+
19
+ var _fs = _interopRequireDefault(require("fs"));
20
+ var _unzipper = _interopRequireDefault(require("unzipper"));
21
+
22
+ var _ = require("..");
23
+ var _config = _interopRequireDefault(require("../config"));
24
+ var _functions = require("./functions");
25
+ var _getAllTokens = _interopRequireDefault(require("./getAllTokens"));
26
+ var _sessionUtil = require("./sessionUtil"); /*
27
+ * Copyright 2023 WPPConnect Team
28
+ *
29
+ * Licensed under the Apache License, Version 2.0 (the "License");
30
+ * you may not use this file except in compliance with the License.
31
+ * You may obtain a copy of the License at
32
+ *
33
+ * http://www.apache.org/licenses/LICENSE-2.0
34
+ *
35
+ * Unless required by applicable law or agreed to in writing, software
36
+ * distributed under the License is distributed on an "AS IS" BASIS,
37
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
38
+ * See the License for the specific language governing permissions and
39
+ * limitations under the License.
40
+ */function backupSessions(req) {// eslint-disable-next-line no-async-promise-executor
41
+ return new Promise(async (resolve, reject) => {await closeAllSessions(req);const output = _fs.default.createWriteStream(__dirname + '/../backupSessions.zip');const archive = (0, _archiver.default)('zip', { zlib: { level: 9 } // Sets the compression level.
42
+ });archive.on('error', function (err) {reject(err);req.logger.error(err);});archive.pipe(output);
43
+ archive.directory(__dirname + '/../../tokens', 'tokens');
44
+ _fs.default.cpSync(
45
+ _config.default.customUserDataDir,
46
+ __dirname + '/../../backupFolder',
47
+ { force: true, recursive: true }
48
+ );
49
+
50
+ archive.directory(__dirname + '/../../backupFolder', 'userDataDir');
51
+ archive.finalize();
52
+
53
+ output.on('close', () => {
54
+ _fs.default.rmSync(__dirname + '/../../backupFolder', { recursive: true });
55
+ const myStream = _fs.default.createReadStream(
56
+ __dirname + '/../backupSessions.zip'
57
+ );
58
+ myStream.pipe(req.res);
59
+ myStream.on('end', () => {
60
+ _.logger.info('Sessions successfully backuped. Restarting sessions...');
61
+ (0, _functions.startAllSessions)(_config.default, _.logger);
62
+ req.res?.end();
63
+ });
64
+ myStream.on('error', function (err) {
65
+ console.log(err);
66
+ reject(err);
67
+ });
68
+ });
69
+ });
70
+ }
71
+
72
+ async function restoreSessions(
73
+ req,
74
+ file)
75
+ {
76
+ if (!file?.mimetype?.includes('zip')) {
77
+ throw new Error('Please, send zipped file');
78
+ }
79
+ const path = file.path;
80
+ _.logger.info('Starting restore sessions...');
81
+ await closeAllSessions(req);
82
+
83
+ const extract = _fs.default.
84
+ createReadStream(path).
85
+ pipe(_unzipper.default.Extract({ path: './restore' }));
86
+ extract.on('close', () => {
87
+ try {
88
+ _fs.default.cpSync(__dirname + '/../../restore/tokens', 'tokens', {
89
+ force: true,
90
+ recursive: true
91
+ });
92
+ } catch (error) {
93
+ _.logger.info("Folder 'tokens' not found.");
94
+ }
95
+ try {
96
+ _fs.default.cpSync(
97
+ __dirname + '/../../restore/userDataDir',
98
+ _config.default.customUserDataDir,
99
+ {
100
+ force: false,
101
+ recursive: true
102
+ }
103
+ );
104
+ } catch (error) {
105
+ _.logger.info("Folder 'userDataDir' not found.");
106
+ }
107
+ _.logger.info('Sessions successfully restored. Starting...');
108
+ (0, _functions.startAllSessions)(_config.default, _.logger);
109
+ });
110
+
111
+ return { success: true };
112
+ }
113
+
114
+ async function closeAllSessions(req) {
115
+ const names = await (0, _getAllTokens.default)(req);
116
+ names.forEach(async (session) => {
117
+ const client = _sessionUtil.clientsArray[session];
118
+ try {
119
+ delete _sessionUtil.clientsArray[session];
120
+ if (client?.status) {
121
+ _.logger.info('Stopping session: ' + session);
122
+ await client.page.browser().close();
123
+ }
124
+ delete _sessionUtil.clientsArray[session];
125
+ } catch (error) {
126
+ _.logger.error('Not was possible stop session: ' + session);
127
+ }
128
+ });
129
+ }
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXJjaGl2ZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9mcyIsIl91bnppcHBlciIsIl8iLCJfY29uZmlnIiwiX2Z1bmN0aW9ucyIsIl9nZXRBbGxUb2tlbnMiLCJfc2Vzc2lvblV0aWwiLCJiYWNrdXBTZXNzaW9ucyIsInJlcSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY2xvc2VBbGxTZXNzaW9ucyIsIm91dHB1dCIsImZpbGVTeXN0ZW0iLCJjcmVhdGVXcml0ZVN0cmVhbSIsIl9fZGlybmFtZSIsImFyY2hpdmUiLCJhcmNoaXZlciIsInpsaWIiLCJsZXZlbCIsIm9uIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJwaXBlIiwiZGlyZWN0b3J5IiwiY3BTeW5jIiwiY29uZmlnIiwiY3VzdG9tVXNlckRhdGFEaXIiLCJmb3JjZSIsInJlY3Vyc2l2ZSIsImZpbmFsaXplIiwicm1TeW5jIiwibXlTdHJlYW0iLCJjcmVhdGVSZWFkU3RyZWFtIiwicmVzIiwiaW5mbyIsInN0YXJ0QWxsU2Vzc2lvbnMiLCJlbmQiLCJjb25zb2xlIiwibG9nIiwicmVzdG9yZVNlc3Npb25zIiwiZmlsZSIsIm1pbWV0eXBlIiwiaW5jbHVkZXMiLCJFcnJvciIsInBhdGgiLCJleHRyYWN0IiwidW56aXBwZXIiLCJFeHRyYWN0Iiwic3VjY2VzcyIsIm5hbWVzIiwiZ2V0QWxsVG9rZW5zIiwiZm9yRWFjaCIsInNlc3Npb24iLCJjbGllbnQiLCJjbGllbnRzQXJyYXkiLCJzdGF0dXMiLCJwYWdlIiwiYnJvd3NlciIsImNsb3NlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvbWFuYWdlU2Vzc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCBhcmNoaXZlciBmcm9tICdhcmNoaXZlcic7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZmlsZVN5c3RlbSBmcm9tICdmcyc7XG5pbXBvcnQgdW56aXBwZXIgZnJvbSAndW56aXBwZXInO1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLic7XG5pbXBvcnQgY29uZmlnIGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBzdGFydEFsbFNlc3Npb25zIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IGdldEFsbFRva2VucyBmcm9tICcuL2dldEFsbFRva2Vucyc7XG5pbXBvcnQgeyBjbGllbnRzQXJyYXkgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t1cFNlc3Npb25zKHJlcTogUmVxdWVzdCk6IFByb21pc2U8YW55PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yXG4gIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdhaXQgY2xvc2VBbGxTZXNzaW9ucyhyZXEpO1xuICAgIGNvbnN0IG91dHB1dCA9IGZpbGVTeXN0ZW0uY3JlYXRlV3JpdGVTdHJlYW0oXG4gICAgICBfX2Rpcm5hbWUgKyAnLy4uL2JhY2t1cFNlc3Npb25zLnppcCdcbiAgICApO1xuICAgIGNvbnN0IGFyY2hpdmUgPSBhcmNoaXZlcignemlwJywge1xuICAgICAgemxpYjogeyBsZXZlbDogOSB9LCAvLyBTZXRzIHRoZSBjb21wcmVzc2lvbiBsZXZlbC5cbiAgICB9KTtcbiAgICBhcmNoaXZlLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnIpO1xuICAgIH0pO1xuICAgIGFyY2hpdmUucGlwZShvdXRwdXQpO1xuICAgIGFyY2hpdmUuZGlyZWN0b3J5KF9fZGlybmFtZSArICcvLi4vLi4vdG9rZW5zJywgJ3Rva2VucycpO1xuICAgIGZpbGVTeXN0ZW0uY3BTeW5jKFxuICAgICAgY29uZmlnLmN1c3RvbVVzZXJEYXRhRGlyLFxuICAgICAgX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLFxuICAgICAgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH1cbiAgICApO1xuXG4gICAgYXJjaGl2ZS5kaXJlY3RvcnkoX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLCAndXNlckRhdGFEaXInKTtcbiAgICBhcmNoaXZlLmZpbmFsaXplKCk7XG5cbiAgICBvdXRwdXQub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgZmlsZVN5c3RlbS5ybVN5bmMoX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IG15U3RyZWFtID0gZmlsZVN5c3RlbS5jcmVhdGVSZWFkU3RyZWFtKFxuICAgICAgICBfX2Rpcm5hbWUgKyAnLy4uL2JhY2t1cFNlc3Npb25zLnppcCdcbiAgICAgICk7XG4gICAgICBteVN0cmVhbS5waXBlKHJlcS5yZXMgYXMgYW55KTtcbiAgICAgIG15U3RyZWFtLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdTZXNzaW9ucyBzdWNjZXNzZnVsbHkgYmFja3VwZWQuIFJlc3RhcnRpbmcgc2Vzc2lvbnMuLi4nKTtcbiAgICAgICAgc3RhcnRBbGxTZXNzaW9ucyhjb25maWcsIGxvZ2dlcik7XG4gICAgICAgIHJlcS5yZXM/LmVuZCgpO1xuICAgICAgfSk7XG4gICAgICBteVN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXN0b3JlU2Vzc2lvbnMoXG4gIHJlcTogUmVxdWVzdCxcbiAgZmlsZTogRXhwcmVzcy5NdWx0ZXIuRmlsZVxuKTogUHJvbWlzZTxhbnk+IHtcbiAgaWYgKCFmaWxlPy5taW1ldHlwZT8uaW5jbHVkZXMoJ3ppcCcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UsIHNlbmQgemlwcGVkIGZpbGUnKTtcbiAgfVxuICBjb25zdCBwYXRoID0gZmlsZS5wYXRoO1xuICBsb2dnZXIuaW5mbygnU3RhcnRpbmcgcmVzdG9yZSBzZXNzaW9ucy4uLicpO1xuICBhd2FpdCBjbG9zZUFsbFNlc3Npb25zKHJlcSk7XG5cbiAgY29uc3QgZXh0cmFjdCA9IGZpbGVTeXN0ZW1cbiAgICAuY3JlYXRlUmVhZFN0cmVhbShwYXRoKVxuICAgIC5waXBlKHVuemlwcGVyLkV4dHJhY3QoeyBwYXRoOiAnLi9yZXN0b3JlJyB9KSk7XG4gIGV4dHJhY3Qub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBmaWxlU3lzdGVtLmNwU3luYyhfX2Rpcm5hbWUgKyAnLy4uLy4uL3Jlc3RvcmUvdG9rZW5zJywgJ3Rva2VucycsIHtcbiAgICAgICAgZm9yY2U6IHRydWUsXG4gICAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcIkZvbGRlciAndG9rZW5zJyBub3QgZm91bmQuXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgZmlsZVN5c3RlbS5jcFN5bmMoXG4gICAgICAgIF9fZGlybmFtZSArICcvLi4vLi4vcmVzdG9yZS91c2VyRGF0YURpcicsXG4gICAgICAgIGNvbmZpZy5jdXN0b21Vc2VyRGF0YURpcixcbiAgICAgICAge1xuICAgICAgICAgIGZvcmNlOiBmYWxzZSxcbiAgICAgICAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFwiRm9sZGVyICd1c2VyRGF0YURpcicgbm90IGZvdW5kLlwiKTtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oJ1Nlc3Npb25zIHN1Y2Nlc3NmdWxseSByZXN0b3JlZC4gU3RhcnRpbmcuLi4nKTtcbiAgICBzdGFydEFsbFNlc3Npb25zKGNvbmZpZywgbG9nZ2VyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xvc2VBbGxTZXNzaW9ucyhyZXE6IFJlcXVlc3QpIHtcbiAgY29uc3QgbmFtZXMgPSBhd2FpdCBnZXRBbGxUb2tlbnMocmVxKTtcbiAgbmFtZXMuZm9yRWFjaChhc3luYyAoc2Vzc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICAgIHRyeSB7XG4gICAgICBkZWxldGUgY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICAgICAgaWYgKGNsaWVudD8uc3RhdHVzKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdTdG9wcGluZyBzZXNzaW9uOiAnICsgc2Vzc2lvbik7XG4gICAgICAgIGF3YWl0IGNsaWVudC5wYWdlLmJyb3dzZXIoKS5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgZGVsZXRlIGNsaWVudHNBcnJheVtzZXNzaW9uXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKCdOb3Qgd2FzIHBvc3NpYmxlIHN0b3Agc2Vzc2lvbjogJyArIHNlc3Npb24pO1xuICAgIH1cbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBOztBQUVBLElBQUFDLEdBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxJQUFBRyxDQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUEsa0JBQTZDLENBekI3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FhTyxTQUFTUSxjQUFjQSxDQUFDQyxHQUFZLEVBQWdCLENBQ3pEO0VBQ0EsT0FBTyxJQUFJQyxPQUFPLENBQUMsT0FBT0MsT0FBTyxFQUFFQyxNQUFNLEtBQUssQ0FDNUMsTUFBTUMsZ0JBQWdCLENBQUNKLEdBQUcsQ0FBQyxDQUMzQixNQUFNSyxNQUFNLEdBQUdDLFdBQVUsQ0FBQ0MsaUJBQWlCLENBQ3pDQyxTQUFTLEdB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
@@ -13,6 +13,7 @@
13
13
 
14
14
 
15
15
 
16
+
16
17
  var _events = require("events"); /*
17
18
  * Copyright 2021 WPPConnect Team
18
19
  *
@@ -36,9 +37,10 @@ var _events = require("events"); /*
36
37
  '--safebrowsing-disable-auto-update',
37
38
  '--ignore-certificate-errors',
38
39
  '--ignore-ssl-errors',
39
- '--ignore-certificate-errors-spki-list'];exports.chromiumArgs = chromiumArgs;
40
+ '--ignore-certificate-errors-spki-list'];
40
41
 
41
- const clientsArray = [];exports.clientsArray = clientsArray;
42
+ // eslint-disable-next-line prefer-const
43
+ exports.chromiumArgs = chromiumArgs;let clientsArray = [];exports.clientsArray = clientsArray;
42
44
  const sessions = [];exports.sessions = sessions;
43
45
  const eventEmitter = new _events.EventEmitter();exports.eventEmitter = eventEmitter;
44
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsImNocm9taXVtQXJncyIsImV4cG9ydHMiLCJjbGllbnRzQXJyYXkiLCJzZXNzaW9ucyIsImV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3Nlc3Npb25VdGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMSBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCBjb25zdCBjaHJvbWl1bUFyZ3MgPSBbXG4gICctLWRpc2FibGUtd2ViLXNlY3VyaXR5JyxcbiAgJy0tbm8tc2FuZGJveCcsXG4gICctLWRpc2FibGUtd2ViLXNlY3VyaXR5JyxcbiAgJy0tYWdncmVzc2l2ZS1jYWNoZS1kaXNjYXJkJyxcbiAgJy0tZGlzYWJsZS1jYWNoZScsXG4gICctLWRpc2FibGUtYXBwbGljYXRpb24tY2FjaGUnLFxuICAnLS1kaXNhYmxlLW9mZmxpbmUtbG9hZC1zdGFsZS1jYWNoZScsXG4gICctLWRpc2stY2FjaGUtc2l6ZT0wJyxcbiAgJy0tZGlzYWJsZS1iYWNrZ3JvdW5kLW5ldHdvcmtpbmcnLFxuICAnLS1kaXNhYmxlLWRlZmF1bHQtYXBwcycsXG4gICctLWRpc2FibGUtZXh0ZW5zaW9ucycsXG4gICctLWRpc2FibGUtc3luYycsXG4gICctLWRpc2FibGUtdHJhbnNsYXRlJyxcbiAgJy0taGlkZS1zY3JvbGxiYXJzJyxcbiAgJy0tbWV0cmljcy1yZWNvcmRpbmctb25seScsXG4gICctLW11dGUtYXVkaW8nLFxuICAnLS1uby1maXJzdC1ydW4nLFxuICAnLS1zYWZlYnJvd3NpbmctZGlzYWJsZS1hdXRvLXVwZGF0ZScsXG4gICctLWlnbm9yZS1jZXJ0aWZpY2F0ZS1lcnJvcnMnLFxuICAnLS1pZ25vcmUtc3NsLWVycm9ycycsXG4gICctLWlnbm9yZS1jZXJ0aWZpY2F0ZS1lcnJvcnMtc3BraS1saXN0Jyxcbl07XG5leHBvcnQgY29uc3QgY2xpZW50c0FycmF5ID0gW107XG5leHBvcnQgY29uc3Qgc2Vzc2lvbnMgPSBbXTtcbmV4cG9ydCBjb25zdCBldmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUFBLE9BQUEsR0FBQUMsT0FBQSxXQUFzQyxDQWZ0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FHTyxNQUFNQyxZQUFZLEdBQUcsQ0FDMUIsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLHFCQUFxQixFQUNyQixpQ0FBaUMsRUFDakMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixnQkFBZ0I7QUFDaEIscUJBQXFCO0FBQ3JCLG1CQUFtQjtBQUNuQiwwQkFBMEI7QUFDMUIsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixvQ0FBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLHFCQUFxQjtBQUNyQix1Q0FBdUMsQ0FDeEMsQ0FBQ0MsT0FBQSxDQUFBRCxZQUFBLEdBQUFBLFlBQUE7O0FBQ0ssTUFBTUUsWUFBWSxHQUFHLEVBQUUsQ0FBQ0QsT0FBQSxDQUFBQyxZQUFBLEdBQUFBLFlBQUE7QUFDeEIsTUFBTUMsUUFBUSxHQUFHLEVBQUUsQ0FBQ0YsT0FBQSxDQUFBRSxRQUFBLEdBQUFBLFFBQUE7QUFDcEIsTUFBTUMsWUFBWSxHQUFHLElBQUlDLG9CQUFZLEVBQUUsQ0FBQ0osT0FBQSxDQUFBRyxZQUFBLEdBQUFBLFlBQUEifQ==
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsImNocm9taXVtQXJncyIsImV4cG9ydHMiLCJjbGllbnRzQXJyYXkiLCJzZXNzaW9ucyIsImV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3Nlc3Npb25VdGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMSBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IFdoYXRzYXBwIH0gZnJvbSAnQHdwcGNvbm5lY3QtdGVhbS93cHBjb25uZWN0JztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCBjb25zdCBjaHJvbWl1bUFyZ3MgPSBbXG4gICctLWRpc2FibGUtd2ViLXNlY3VyaXR5JyxcbiAgJy0tbm8tc2FuZGJveCcsXG4gICctLWRpc2FibGUtd2ViLXNlY3VyaXR5JyxcbiAgJy0tYWdncmVzc2l2ZS1jYWNoZS1kaXNjYXJkJyxcbiAgJy0tZGlzYWJsZS1jYWNoZScsXG4gICctLWRpc2FibGUtYXBwbGljYXRpb24tY2FjaGUnLFxuICAnLS1kaXNhYmxlLW9mZmxpbmUtbG9hZC1zdGFsZS1jYWNoZScsXG4gICctLWRpc2stY2FjaGUtc2l6ZT0wJyxcbiAgJy0tZGlzYWJsZS1iYWNrZ3JvdW5kLW5ldHdvcmtpbmcnLFxuICAnLS1kaXNhYmxlLWRlZmF1bHQtYXBwcycsXG4gICctLWRpc2FibGUtZXh0ZW5zaW9ucycsXG4gICctLWRpc2FibGUtc3luYycsXG4gICctLWRpc2FibGUtdHJhbnNsYXRlJyxcbiAgJy0taGlkZS1zY3JvbGxiYXJzJyxcbiAgJy0tbWV0cmljcy1yZWNvcmRpbmctb25seScsXG4gICctLW11dGUtYXVkaW8nLFxuICAnLS1uby1maXJzdC1ydW4nLFxuICAnLS1zYWZlYnJvd3NpbmctZGlzYWJsZS1hdXRvLXVwZGF0ZScsXG4gICctLWlnbm9yZS1jZXJ0aWZpY2F0ZS1lcnJvcnMnLFxuICAnLS1pZ25vcmUtc3NsLWVycm9ycycsXG4gICctLWlnbm9yZS1jZXJ0aWZpY2F0ZS1lcnJvcnMtc3BraS1saXN0Jyxcbl07XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5leHBvcnQgbGV0IGNsaWVudHNBcnJheTogV2hhdHNhcHBbXSA9IFtdO1xuZXhwb3J0IGNvbnN0IHNlc3Npb25zID0gW107XG5leHBvcnQgY29uc3QgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLElBQUFBLE9BQUEsR0FBQUMsT0FBQSxXQUFzQyxDQWhCdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBSU8sTUFBTUMsWUFBWSxHQUFHLENBQzFCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1QixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzdCLG9DQUFvQyxFQUNwQyxxQkFBcUIsRUFDckIsaUNBQWlDLEVBQ2pDLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsZ0JBQWdCO0FBQ2hCLHFCQUFxQjtBQUNyQixtQkFBbUI7QUFDbkIsMEJBQTBCO0FBQzFCLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsb0NBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3QixxQkFBcUI7QUFDckIsdUNBQXVDLENBQ3hDOztBQUNEO0FBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFBQSxZQUFBLENBQ08sSUFBSUUsWUFBd0IsR0FBRyxFQUFFLENBQUNELE9BQUEsQ0FBQUMsWUFBQSxHQUFBQSxZQUFBO0FBQ2xDLE1BQU1DLFFBQVEsR0FBRyxFQUFFLENBQUNGLE9BQUEsQ0FBQUUsUUFBQSxHQUFBQSxRQUFBO0FBQ3BCLE1BQU1DLFlBQVksR0FBRyxJQUFJQyxvQkFBWSxDQUFDLENBQUMsQ0FBQ0osT0FBQSxDQUFBRyxZQUFBLEdBQUFBLFlBQUEifQ==
@@ -66,10 +66,10 @@ class FileTokenStore {
66
66
 
67
67
  constructor(options = {}) {
68
68
  this.options = Object.assign(
69
- {},
70
- defaultFileTokenStoreOptions,
71
- options);
72
-
69
+ {},
70
+ defaultFileTokenStoreOptions,
71
+ options
72
+ );
73
73
  }
74
74
 
75
75
  /**
@@ -165,8 +165,8 @@ class FileTokenStore {
165
165
 
166
166
  // Return name only
167
167
  files = files.map((file) =>
168
- path.basename(file, this.options.fileExtension));
169
-
168
+ path.basename(file, this.options.fileExtension)
169
+ );
170
170
 
171
171
  return files;
172
172
  } catch (error) {
@@ -175,4 +175,4 @@ class FileTokenStore {
175
175
  }
176
176
  }
177
177
  }exports.FileTokenStore = FileTokenStore;
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfc2FuaXRpemVGaWxlbmFtZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnMiLCJkZWNvZGVGdW5jdGlvbiIsIkpTT04iLCJwYXJzZSIsImVuY29kZUZ1bmN0aW9uIiwic3RyaW5naWZ5IiwiZW5jb2RpbmciLCJmaWxlRXh0ZW5zaW9uIiwiZXhwb3J0cyIsIkZpbGVUb2tlblN0b3JlIiwib3B0aW9ucyIsImNvbnN0cnVjdG9yIiwiYXNzaWduIiwicmVzb2x2ZXJQYXRoIiwic2Vzc2lvbk5hbWUiLCJmaWxlbmFtZSIsInNhbml0aXplIiwicmVzb2x2ZSIsInByb2Nlc3MiLCJjd2QiLCJqb2luIiwiZ2V0VG9rZW4iLCJmaWxlUGF0aCIsImV4aXN0c1N5bmMiLCJ1bmRlZmluZWQiLCJ0ZXh0IiwicHJvbWlzZXMiLCJyZWFkRmlsZSIsImNhdGNoIiwiZXJyb3IiLCJsb2dnZXIiLCJkZWJ1ZyIsInNldFRva2VuIiwidG9rZW5EYXRhIiwibWtkaXIiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGUiLCJyZW1vdmVUb2tlbiIsInVubGluayIsImxpc3RUb2tlbnMiLCJmaWxlcyIsInJlYWRkaXIiLCJmaWx0ZXIiLCJmaWxlIiwiZW5kc1dpdGgiLCJtYXAiLCJiYXNlbmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsL3Rva2VuU3RvcmUvRmlsZVRva2VuU3RvcmUvRmlsZVRva2VuU3RvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFdQUENvbm5lY3QuXG4gKlxuICogV1BQQ29ubmVjdCBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFdQUENvbm5lY3QgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggV1BQQ29ubmVjdC4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibm9kZVwiIC8+XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJztcblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4nO1xuaW1wb3J0IHsgU2Vzc2lvblRva2VuLCBUb2tlblN0b3JlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUb2tlblN0b3JlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZWNvZGUgZnVuY3Rpb24gdG8gcGFyc2UgdG9rZW4gZmlsZSAoRGVmYXVsdCBgSlNPTi5wYXJzZWApIHtAbGluayBkZWZhdWx0RmlsZVRva2VuU3RvcmVPcHRpb25zfVxuICAgKiBAZGVmYXVsdCBgSlNPTi5wYXJzZWBcbiAgICovXG4gIGRlY29kZUZ1bmN0aW9uOiAodGV4dDogc3RyaW5nKSA9PiBhbnk7XG5cbiAgLyoqXG4gICAqIEVuY29kZSBmdW5jdGlvbiB0byBzYXZlIHRva2VucyAoRGVmYXVsdCBgSlNPTi5zdHJpbmdpZnlgKVxuICAgKiBAZGVmYXVsdCBgSlNPTi5zdHJpbmdpZnlgXG4gICAqL1xuICBlbmNvZGVGdW5jdGlvbjogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmNvZGluZyB1c2VkIHRvIHJlYWQgYW5kIHNhdmUgZmlsZXNcbiAgICogQGRlZmF1bHQgJ3V0ZjgnXG4gICAqL1xuICBlbmNvZGluZzogQnVmZmVyRW5jb2Rpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0ICcuZGF0YS5qc29uJ1xuICAgKi9cbiAgZmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGb2xkZXIgcGF0aCB0byBzdG9yZSB0b2tlbnNcbiAgICogQGRlZmF1bHQgJy4vdG9rZW5zJ1xuICAgKi9cbiAgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9uczogRmlsZVRva2VuU3RvcmVPcHRpb25zID0ge1xuICBkZWNvZGVGdW5jdGlvbjogSlNPTi5wYXJzZSxcbiAgZW5jb2RlRnVuY3Rpb246IEpTT04uc3RyaW5naWZ5LFxuICBlbmNvZGluZzogJ3V0ZjgnLFxuICBmaWxlRXh0ZW5zaW9uOiAnLmRhdGEuanNvbicsXG4gIHBhdGg6ICcuL3Rva2VucycsXG59O1xuXG5leHBvcnQgY2xhc3MgRmlsZVRva2VuU3RvcmUgaW1wbGVtZW50cyBUb2tlblN0b3JlIHtcbiAgcHJvdGVjdGVkIG9wdGlvbnM6IEZpbGVUb2tlblN0b3JlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZpbGVUb2tlblN0b3JlT3B0aW9ucz4gPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnMsXG4gICAgICBvcHRpb25zXG4gICAgKSBhcyBGaWxlVG9rZW5TdG9yZU9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgcGF0aCBvZiBmaWxlXG4gICAqIEBwYXJhbSBzZXNzaW9uTmFtZSBOYW1lIG9mIHNlc3Npb25cbiAgICogQHJldHVybnMgRnVsbCBwYXRoIG9mIHRva2VuIGZpbGVcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlclBhdGgoc2Vzc2lvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBzYW5pdGl6ZShzZXNzaW9uTmFtZSkgKyB0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbjtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIHBhdGguam9pbih0aGlzLm9wdGlvbnMucGF0aCwgZmlsZW5hbWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUb2tlbihcbiAgICBzZXNzaW9uTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U2Vzc2lvblRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJlc29sdmVyUGF0aChzZXNzaW9uTmFtZSk7XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBmcy5wcm9taXNlc1xuICAgICAgLnJlYWRGaWxlKGZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiB0aGlzLm9wdGlvbnMuZW5jb2RpbmcsXG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IG51bGwpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmRlY29kZUZ1bmN0aW9uKHRleHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0VG9rZW4oXG4gICAgc2Vzc2lvbk5hbWU6IHN0cmluZyxcbiAgICB0b2tlbkRhdGE6IFNlc3Npb25Ub2tlbiB8IG51bGxcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCF0b2tlbkRhdGEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vcHRpb25zLnBhdGgpKSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2Rpcih0aGlzLm9wdGlvbnMucGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJlc29sdmVyUGF0aChzZXNzaW9uTmFtZSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMub3B0aW9ucy5lbmNvZGVGdW5jdGlvbih0b2tlbkRhdGEpO1xuXG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZVBhdGgsIHRleHQsIHtcbiAgICAgICAgZW5jb2Rpbmc6IHRoaXMub3B0aW9ucy5lbmNvZGluZyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbW92ZVRva2VuKHNlc3Npb25OYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMucHJvbWlzZXMudW5saW5rKGZpbGVQYXRoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsaXN0VG9rZW5zKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vcHRpb25zLnBhdGgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGxldCBmaWxlcyA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRkaXIodGhpcy5vcHRpb25zLnBhdGgpO1xuXG4gICAgICAvLyBPbmx5IHNlc3Npb25zIHdpdGggc2FtZSBmaWxlRXh0ZW5zaW9uXG4gICAgICBmaWxlcyA9IGZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCh0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbikpO1xuXG4gICAgICAvLyBSZXR1cm4gbmFtZSBvbmx5XG4gICAgICBmaWxlcyA9IGZpbGVzLm1hcCgoZmlsZSkgPT5cbiAgICAgICAgcGF0aC5iYXNlbmFtZShmaWxlLCB0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbilcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBmaWxlcztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsSUFBQUEsRUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTs7QUFFQSxJQUFBSSxDQUFBLEdBQUFKLE9BQUEsYUFBa0MsU0FBQUsseUJBQUFDLFdBQUEsY0FBQUMsT0FBQSxpQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxPQUFBRSxnQkFBQSxPQUFBRixPQUFBLFdBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsVUFBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxJQUFBRixXQUFBLFlBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsUUFBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxVQUFBRCxHQUFBLE1BQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsMkJBQUFFLE9BQUEsRUFBQUYsR0FBQSxRQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsTUFBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxXQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxPQUFBTSxNQUFBLFVBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFVBQUFDLEdBQUEsSUFBQVgsR0FBQSxP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
178
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfc2FuaXRpemVGaWxlbmFtZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnMiLCJkZWNvZGVGdW5jdGlvbiIsIkpTT04iLCJwYXJzZSIsImVuY29kZUZ1bmN0aW9uIiwic3RyaW5naWZ5IiwiZW5jb2RpbmciLCJmaWxlRXh0ZW5zaW9uIiwiZXhwb3J0cyIsIkZpbGVUb2tlblN0b3JlIiwib3B0aW9ucyIsImNvbnN0cnVjdG9yIiwiYXNzaWduIiwicmVzb2x2ZXJQYXRoIiwic2Vzc2lvbk5hbWUiLCJmaWxlbmFtZSIsInNhbml0aXplIiwicmVzb2x2ZSIsInByb2Nlc3MiLCJjd2QiLCJqb2luIiwiZ2V0VG9rZW4iLCJmaWxlUGF0aCIsImV4aXN0c1N5bmMiLCJ1bmRlZmluZWQiLCJ0ZXh0IiwicHJvbWlzZXMiLCJyZWFkRmlsZSIsImNhdGNoIiwiZXJyb3IiLCJsb2dnZXIiLCJkZWJ1ZyIsInNldFRva2VuIiwidG9rZW5EYXRhIiwibWtkaXIiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGUiLCJyZW1vdmVUb2tlbiIsInVubGluayIsImxpc3RUb2tlbnMiLCJmaWxlcyIsInJlYWRkaXIiLCJmaWx0ZXIiLCJmaWxlIiwiZW5kc1dpdGgiLCJtYXAiLCJiYXNlbmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsL3Rva2VuU3RvcmUvRmlsZVRva2VuU3RvcmUvRmlsZVRva2VuU3RvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFdQUENvbm5lY3QuXG4gKlxuICogV1BQQ29ubmVjdCBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFdQUENvbm5lY3QgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggV1BQQ29ubmVjdC4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibm9kZVwiIC8+XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJztcblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4nO1xuaW1wb3J0IHsgU2Vzc2lvblRva2VuLCBUb2tlblN0b3JlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUb2tlblN0b3JlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZWNvZGUgZnVuY3Rpb24gdG8gcGFyc2UgdG9rZW4gZmlsZSAoRGVmYXVsdCBgSlNPTi5wYXJzZWApIHtAbGluayBkZWZhdWx0RmlsZVRva2VuU3RvcmVPcHRpb25zfVxuICAgKiBAZGVmYXVsdCBgSlNPTi5wYXJzZWBcbiAgICovXG4gIGRlY29kZUZ1bmN0aW9uOiAodGV4dDogc3RyaW5nKSA9PiBhbnk7XG5cbiAgLyoqXG4gICAqIEVuY29kZSBmdW5jdGlvbiB0byBzYXZlIHRva2VucyAoRGVmYXVsdCBgSlNPTi5zdHJpbmdpZnlgKVxuICAgKiBAZGVmYXVsdCBgSlNPTi5zdHJpbmdpZnlgXG4gICAqL1xuICBlbmNvZGVGdW5jdGlvbjogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmNvZGluZyB1c2VkIHRvIHJlYWQgYW5kIHNhdmUgZmlsZXNcbiAgICogQGRlZmF1bHQgJ3V0ZjgnXG4gICAqL1xuICBlbmNvZGluZzogQnVmZmVyRW5jb2Rpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0ICcuZGF0YS5qc29uJ1xuICAgKi9cbiAgZmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGb2xkZXIgcGF0aCB0byBzdG9yZSB0b2tlbnNcbiAgICogQGRlZmF1bHQgJy4vdG9rZW5zJ1xuICAgKi9cbiAgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9uczogRmlsZVRva2VuU3RvcmVPcHRpb25zID0ge1xuICBkZWNvZGVGdW5jdGlvbjogSlNPTi5wYXJzZSxcbiAgZW5jb2RlRnVuY3Rpb246IEpTT04uc3RyaW5naWZ5LFxuICBlbmNvZGluZzogJ3V0ZjgnLFxuICBmaWxlRXh0ZW5zaW9uOiAnLmRhdGEuanNvbicsXG4gIHBhdGg6ICcuL3Rva2VucycsXG59O1xuXG5leHBvcnQgY2xhc3MgRmlsZVRva2VuU3RvcmUgaW1wbGVtZW50cyBUb2tlblN0b3JlIHtcbiAgcHJvdGVjdGVkIG9wdGlvbnM6IEZpbGVUb2tlblN0b3JlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZpbGVUb2tlblN0b3JlT3B0aW9ucz4gPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnMsXG4gICAgICBvcHRpb25zXG4gICAgKSBhcyBGaWxlVG9rZW5TdG9yZU9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgcGF0aCBvZiBmaWxlXG4gICAqIEBwYXJhbSBzZXNzaW9uTmFtZSBOYW1lIG9mIHNlc3Npb25cbiAgICogQHJldHVybnMgRnVsbCBwYXRoIG9mIHRva2VuIGZpbGVcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlclBhdGgoc2Vzc2lvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBzYW5pdGl6ZShzZXNzaW9uTmFtZSkgKyB0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbjtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIHBhdGguam9pbih0aGlzLm9wdGlvbnMucGF0aCwgZmlsZW5hbWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUb2tlbihcbiAgICBzZXNzaW9uTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U2Vzc2lvblRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJlc29sdmVyUGF0aChzZXNzaW9uTmFtZSk7XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBmcy5wcm9taXNlc1xuICAgICAgLnJlYWRGaWxlKGZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiB0aGlzLm9wdGlvbnMuZW5jb2RpbmcsXG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IG51bGwpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmRlY29kZUZ1bmN0aW9uKHRleHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0VG9rZW4oXG4gICAgc2Vzc2lvbk5hbWU6IHN0cmluZyxcbiAgICB0b2tlbkRhdGE6IFNlc3Npb25Ub2tlbiB8IG51bGxcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCF0b2tlbkRhdGEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vcHRpb25zLnBhdGgpKSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2Rpcih0aGlzLm9wdGlvbnMucGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJlc29sdmVyUGF0aChzZXNzaW9uTmFtZSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMub3B0aW9ucy5lbmNvZGVGdW5jdGlvbih0b2tlbkRhdGEpO1xuXG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZVBhdGgsIHRleHQsIHtcbiAgICAgICAgZW5jb2Rpbmc6IHRoaXMub3B0aW9ucy5lbmNvZGluZyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbW92ZVRva2VuKHNlc3Npb25OYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMucHJvbWlzZXMudW5saW5rKGZpbGVQYXRoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsaXN0VG9rZW5zKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vcHRpb25zLnBhdGgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGxldCBmaWxlcyA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRkaXIodGhpcy5vcHRpb25zLnBhdGgpO1xuXG4gICAgICAvLyBPbmx5IHNlc3Npb25zIHdpdGggc2FtZSBmaWxlRXh0ZW5zaW9uXG4gICAgICBmaWxlcyA9IGZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCh0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbikpO1xuXG4gICAgICAvLyBSZXR1cm4gbmFtZSBvbmx5XG4gICAgICBmaWxlcyA9IGZpbGVzLm1hcCgoZmlsZSkgPT5cbiAgICAgICAgcGF0aC5iYXNlbmFtZShmaWxlLCB0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbilcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBmaWxlcztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsSUFBQUEsRUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTs7QUFFQSxJQUFBSSxDQUFBLEdBQUFKLE9BQUEsYUFBa0MsU0FBQUsseUJBQUFDLFdBQUEsY0FBQUMsT0FBQSxpQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxPQUFBRSxnQkFBQSxPQUFBRixPQUFBLFdBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsVUFBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxJQUFBRixXQUFBLFlBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsUUFBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxVQUFBRCxHQUFBLE1BQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsMkJBQUFFLE9BQUEsRUFBQUYsR0FBQSxRQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsTUFBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxXQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxPQUFBTSxNQUFBLFVBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFVBQUFDLEdBQUEsSUFBQVgsR0FBQSxP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