@secrecy/lib 1.0.0-dev.39 → 1.0.0-dev.42

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 (63) hide show
  1. package/dist/BaseClient.d.ts +33 -53
  2. package/dist/BaseClient.js +886 -2093
  3. package/dist/PopupTools.js +20 -21
  4. package/dist/ZeusThunder.js +50 -84
  5. package/dist/cache.d.ts +2 -3
  6. package/dist/cache.js +4 -5
  7. package/dist/client/admin/index.js +77 -165
  8. package/dist/client/convert/file.d.ts +3 -3
  9. package/dist/client/convert/file.js +18 -23
  10. package/dist/client/convert/mail.js +13 -13
  11. package/dist/client/convert/node.d.ts +9 -0
  12. package/dist/client/convert/node.js +101 -0
  13. package/dist/client/helpers.js +41 -41
  14. package/dist/client/index.d.ts +63 -74
  15. package/dist/client/index.js +2727 -5759
  16. package/dist/client/storage.js +7 -7
  17. package/dist/client/types/File.d.ts +6 -13
  18. package/dist/client/types/File.js +1 -1
  19. package/dist/client/types/Inputs.d.ts +2 -7
  20. package/dist/client/types/Inputs.js +1 -1
  21. package/dist/client/types/Node.d.ts +49 -0
  22. package/dist/client/types/Node.js +3 -0
  23. package/dist/client/types/UserAppNotifications.d.ts +1 -1
  24. package/dist/client/types/UserAppNotifications.js +1 -1
  25. package/dist/client/types/UserAppSettings.js +1 -1
  26. package/dist/client/types/index.d.ts +7 -13
  27. package/dist/client/types/index.js +2 -4
  28. package/dist/client/types/selectors.d.ts +476 -0
  29. package/dist/client/types/selectors.js +125 -0
  30. package/dist/crypto/file.js +122 -203
  31. package/dist/crypto/index.js +14 -12
  32. package/dist/error.js +1 -1
  33. package/dist/index.d.ts +1 -2
  34. package/dist/index.js +2 -34
  35. package/dist/minify/index.js +7 -7
  36. package/dist/minify/lz4.js +87 -93
  37. package/dist/sodium.js +3 -25
  38. package/dist/utils/store-buddy.js +11 -15
  39. package/dist/utils/time.js +4 -12
  40. package/dist/{utils.d.ts → utils/utils.d.ts} +0 -0
  41. package/dist/utils/utils.js +57 -0
  42. package/dist/worker/__mock__/sodium.worker.js +35 -32
  43. package/dist/worker/md5.js +21 -39
  44. package/dist/worker/sodium.js +95 -130
  45. package/dist/worker/workerCodes.js +3 -3
  46. package/dist/zeus/const.d.ts +5 -0
  47. package/dist/zeus/const.js +303 -1360
  48. package/dist/zeus/index.d.ts +1805 -1817
  49. package/dist/zeus/index.js +542 -434
  50. package/package.json +40 -39
  51. package/dist/client/convert/folder.d.ts +0 -8
  52. package/dist/client/convert/folder.js +0 -264
  53. package/dist/client/convert/vFile.d.ts +0 -5
  54. package/dist/client/convert/vFile.js +0 -164
  55. package/dist/client/types/FilesOnUsersOnApplications.d.ts +0 -9
  56. package/dist/client/types/FilesOnUsersOnApplications.js +0 -3
  57. package/dist/client/types/Folder.d.ts +0 -68
  58. package/dist/client/types/Folder.js +0 -7
  59. package/dist/client/types/VFile.d.ts +0 -62
  60. package/dist/client/types/VFile.js +0 -4
  61. package/dist/client/types/queries.d.ts +0 -535
  62. package/dist/client/types/queries.js +0 -192
  63. package/dist/utils.js +0 -188
@@ -7,7 +7,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
7
7
  /**
8
8
  * TS Rewrite of https://github.com/enhancv/popup-tools
9
9
  */
10
- var defaultOptions = {
10
+ const defaultOptions = {
11
11
  width: 700,
12
12
  height: 520,
13
13
  menubar: "no",
@@ -16,7 +16,7 @@ var defaultOptions = {
16
16
  scrollbars: "no",
17
17
  centered: true
18
18
  };
19
- var popupCount = 1;
19
+ let popupCount = 1;
20
20
  /**
21
21
  * Return options converted to a string
22
22
  *
@@ -25,9 +25,8 @@ var popupCount = 1;
25
25
  */
26
26
 
27
27
  function optionsToString(options) {
28
- return Object.entries(options).map(function (_ref) {
29
- var k = _ref[0],
30
- v = _ref[1];
28
+ return Object.entries(options).map(_ref => {
29
+ let [k, v] = _ref;
31
30
  return k + "=" + v;
32
31
  }).join(",");
33
32
  }
@@ -55,10 +54,10 @@ function optionsResolveCentered(options) {
55
54
  throw new Error("Should have width and height");
56
55
  }
57
56
 
58
- var result = _objectSpread({}, options);
57
+ const result = _objectSpread({}, options);
59
58
 
60
- var width = window.outerWidth - options.width;
61
- var height = window.outerHeight - options.height;
59
+ const width = window.outerWidth - options.width;
60
+ const height = window.outerHeight - options.height;
62
61
 
63
62
  if (options.centered) {
64
63
  result.left = options.left || Math.round(window.screenX + width / 2);
@@ -83,13 +82,13 @@ function optionsResolveCentered(options) {
83
82
  function openPopupWithPost(url, postData, name, options) {
84
83
  var _win;
85
84
 
86
- var form = document.createElement("form");
87
- var win = null;
85
+ const form = document.createElement("form");
86
+ let win = null;
88
87
  form.setAttribute("method", "post");
89
88
  form.setAttribute("action", url);
90
89
  form.setAttribute("target", name);
91
90
  Object.keys(postData).forEach(function addFormItem(key) {
92
- var input = document.createElement("input");
91
+ const input = document.createElement("input");
93
92
  input.type = "hidden";
94
93
  input.name = key;
95
94
  input.value = postData[key];
@@ -116,16 +115,16 @@ function openPopupWithPost(url, postData, name, options) {
116
115
 
117
116
 
118
117
  function popupExecute(execute, url, name, options, callback) {
119
- var popupName = name || defaultPopupName();
120
- var popupOptions = optionsResolveCentered(Object.assign({}, defaultOptions, options));
118
+ const popupName = name || defaultPopupName();
119
+ const popupOptions = optionsResolveCentered(Object.assign({}, defaultOptions, options));
121
120
 
122
- var popupCallback = callback || function noop() {//
121
+ const popupCallback = callback || function noop() {//
123
122
  };
124
123
 
125
- var optionsString = optionsToString(popupOptions);
126
- var win = execute(url, popupName, optionsString);
127
- var isMessageSent = false;
128
- var interval;
124
+ const optionsString = optionsToString(popupOptions);
125
+ const win = execute(url, popupName, optionsString);
126
+ let isMessageSent = false;
127
+ let interval;
129
128
 
130
129
  function popupCallbackOnce(err, data) {
131
130
  if (!isMessageSent) {
@@ -135,7 +134,7 @@ function popupExecute(execute, url, name, options, callback) {
135
134
  }
136
135
 
137
136
  function onMessage(message) {
138
- var data = message ? message.data : undefined;
137
+ const data = message ? message.data : undefined;
139
138
 
140
139
  if (data) {
141
140
  popupCallbackOnce(undefined, data);
@@ -207,7 +206,7 @@ export function popupWithPost(url, postData, name, options, callback) {
207
206
  */
208
207
 
209
208
  export function popupResponse(data) {
210
- var jsonData = JSON.stringify(data);
209
+ const jsonData = JSON.stringify(data);
211
210
  return "<script>window.opener.postMessage(" + jsonData + ", \"*\");setTimeout(function() { window.close(); }, 50);</script>";
212
211
  }
213
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Qb3B1cFRvb2xzLnRzIl0sIm5hbWVzIjpbImRlZmF1bHRPcHRpb25zIiwid2lkdGgiLCJoZWlnaHQiLCJtZW51YmFyIiwicmVzaXphYmxlIiwibG9jYXRpb24iLCJzY3JvbGxiYXJzIiwiY2VudGVyZWQiLCJwb3B1cENvdW50Iiwib3B0aW9uc1RvU3RyaW5nIiwib3B0aW9ucyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsImpvaW4iLCJkZWZhdWx0UG9wdXBOYW1lIiwib3B0aW9uc1Jlc29sdmVDZW50ZXJlZCIsIkVycm9yIiwicmVzdWx0Iiwid2luZG93Iiwib3V0ZXJXaWR0aCIsIm91dGVySGVpZ2h0IiwibGVmdCIsIk1hdGgiLCJyb3VuZCIsInNjcmVlblgiLCJ0b3AiLCJzY3JlZW5ZIiwib3BlblBvcHVwV2l0aFBvc3QiLCJ1cmwiLCJwb3N0RGF0YSIsIm5hbWUiLCJmb3JtIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luIiwic2V0QXR0cmlidXRlIiwia2V5cyIsImZvckVhY2giLCJhZGRGb3JtSXRlbSIsImtleSIsImlucHV0IiwidHlwZSIsInZhbHVlIiwiYXBwZW5kQ2hpbGQiLCJib2R5Iiwib3BlbiIsIndyaXRlIiwic3VibWl0IiwicmVtb3ZlQ2hpbGQiLCJwb3B1cEV4ZWN1dGUiLCJleGVjdXRlIiwiY2FsbGJhY2siLCJwb3B1cE5hbWUiLCJwb3B1cE9wdGlvbnMiLCJhc3NpZ24iLCJwb3B1cENhbGxiYWNrIiwibm9vcCIsIm9wdGlvbnNTdHJpbmciLCJpc01lc3NhZ2VTZW50IiwiaW50ZXJ2YWwiLCJwb3B1cENhbGxiYWNrT25jZSIsImVyciIsImRhdGEiLCJvbk1lc3NhZ2UiLCJtZXNzYWdlIiwidW5kZWZpbmVkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRJbnRlcnZhbCIsImNsb3NlUG9wdXBDYWxsYmFjayIsImNsb3NlZCIsInNldFRpbWVvdXQiLCJkZWxheVdpbmRvd0Nsb3NpbmciLCJjbGVhckludGVydmFsIiwicG9wdXAiLCJwb3B1cFdpdGhQb3N0Iiwib3BlbldpdGhQb3N0RGF0YSIsInBvcHVwVXJsIiwicG9wdXBSZXNwb25zZSIsImpzb25EYXRhIiwiSlNPTiIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBZUEsSUFBTUEsY0FBdUIsR0FBRztBQUM5QkMsRUFBQUEsS0FBSyxFQUFFLEdBRHVCO0FBRTlCQyxFQUFBQSxNQUFNLEVBQUUsR0FGc0I7QUFHOUJDLEVBQUFBLE9BQU8sRUFBRSxJQUhxQjtBQUk5QkMsRUFBQUEsU0FBUyxFQUFFLEtBSm1CO0FBSzlCQyxFQUFBQSxRQUFRLEVBQUUsS0FMb0I7QUFNOUJDLEVBQUFBLFVBQVUsRUFBRSxJQU5rQjtBQU85QkMsRUFBQUEsUUFBUSxFQUFFO0FBUG9CLENBQWhDO0FBa0JBLElBQUlDLFVBQVUsR0FBRyxDQUFqQjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxTQUFTQyxlQUFULENBQTRDQyxPQUE1QyxFQUFnRTtBQUM5RCxTQUFPQyxNQUFNLENBQUNDLE9BQVAsQ0FBZUYsT0FBZixFQUNKRyxHQURJLENBQ0E7QUFBQSxRQUFFQyxDQUFGO0FBQUEsUUFBS0MsQ0FBTDtBQUFBLFdBQWVELENBQWYsU0FBb0JDLENBQXBCO0FBQUEsR0FEQSxFQUVKQyxJQUZJLENBRUMsR0FGRCxDQUFQO0FBR0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsU0FBU0MsZ0JBQVQsR0FBb0M7QUFDbENULEVBQUFBLFVBQVUsSUFBSSxDQUFkO0FBQ0Esb0JBQWdCQSxVQUFoQjtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLFNBQVNVLHNCQUFULENBQWdDUixPQUFoQyxFQUEyRDtBQUN6RCxNQUFJLENBQUNBLE9BQU8sQ0FBQ1QsS0FBVCxJQUFrQixDQUFDUyxPQUFPLENBQUNSLE1BQS9CLEVBQXVDO0FBQ3JDLFVBQU0sSUFB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O0FBQ0E7O0FBQ0EsT0FBTyxTQUFTMkIsYUFBVCxDQUEwQmhCLElBQTFCLEVBQTJDO0FBQ2hELE1BQU1pQixRQUFRLEdBQUdDLElBQUksQ0FBQ0MsU0FBTCxDQUFlbkIsSUFBZixDQUFqQjtBQUVBLGdEQUE0Q2lCLFFBQTVDO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRTIFJld3JpdGUgb2YgaHR0cHM6Ly9naXRodWIuY29tL2VuaGFuY3YvcG9wdXAtdG9vbHNcbiAqL1xuXG50eXBlIFllc05vID0gXCJ5ZXNcIiB8IFwibm9cIjtcbnR5cGUgT3B0aW9ucyA9IHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgbWVudWJhcjogWWVzTm87XG4gIHJlc2l6YWJsZTogWWVzTm87XG4gIGxvY2F0aW9uOiBZZXNObztcbiAgc2Nyb2xsYmFyczogWWVzTm87XG4gIGNlbnRlcmVkPzogYm9vbGVhbjtcbiAgbGVmdD86IG51bWJlcjtcbiAgdG9wPzogbnVtYmVyO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9wdGlvbnMgPSB7XG4gIHdpZHRoOiA3MDAsXG4gIGhlaWdodDogNTIwLFxuICBtZW51YmFyOiBcIm5vXCIsXG4gIHJlc2l6YWJsZTogXCJ5ZXNcIixcbiAgbG9jYXRpb246IFwieWVzXCIsXG4gIHNjcm9sbGJhcnM6IFwibm9cIixcbiAgY2VudGVyZWQ6IHRydWVcbn07XG5cbnR5cGUgQ2FsbGJhY2sgPSAoZXJyPzogRXJyb3IsIGRhdGE/OiB1bmtub3duKSA9PiB2b2lkO1xuXG50eXBlIFdpbmRvd09wZW4gPSAoXG4gIHBvcHVwVXJsOiBzdHJpbmcsXG4gIHBvcHVwTmFtZTogc3RyaW5nLFxuICBvcHRpb25zU3RyaW5nOiBzdHJpbmdcbikgPT4gV2luZG93IHwgbnVsbDtcblxubGV0IHBvcHVwQ291bnQgPSAxO1xuXG4vKipcbiAqIFJldHVybiBvcHRpb25zIGNvbnZlcnRlZCB0byBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBvcHRpb25zVG9TdHJpbmc8VCBleHRlbmRzIE9wdGlvbnM+KG9wdGlvbnM6IFQpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob3B0aW9ucylcbiAgICAubWFwKChbaywgdl0pID0+IGAke2t9PSR7dn1gKVxuICAgIC5qb2luKFwiLFwiKTtcbn1cblxuLyoqXG4gKiBHZXQgYSB1bmlxdWUgbmFtZSBvbiBlYWNoIGNhbGxcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFBvcHVwTmFtZSgpOiBzdHJpbmcge1xuICBwb3B1cENvdW50ICs9IDE7XG4gIHJldHVybiBgUG9wdXAgJHtwb3B1cENvdW50fWA7XG59XG5cbi8qKlxuICogQ29udmVydCBcImNlbnRlcmVkOiB0cnVlXCIga2V5IGludG8gY29uY3JldGUgbGVmdCBhbmQgdG9wIGFyZ3VtZW50c1xuICogQm90aCBjYW4gYmUgb3ZlcndyaXR0ZW5cbiAqXG4gKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gb3B0aW9uc1Jlc29sdmVDZW50ZXJlZChvcHRpb25zOiBPcHRpb25zKTogT3B0aW9ucyB7XG4gIGlmICghb3B0aW9ucy53aWR0aCB8fCAhb3B0aW9ucy5oZWlnaHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTaG91bGQgaGF2ZSB3aWR0aCBhbmQgaGVpZ2h0XCIpO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4ub3B0aW9ucyB9O1xuICBjb25zdCB3aWR0aCA9IHdpbmRvdy5vdXRlcldpZHRoIC0gb3B0aW9ucy53aWR0aDtcbiAgY29uc3QgaGVpZ2h0ID0gd2luZG93Lm91dGVySGVpZ2h0IC0gb3B0aW9ucy5oZWlnaHQ7XG5cbiAgaWYgKG9wdGlvbnMuY2VudGVyZWQpIHtcbiAgICByZXN1bHQubGVmdCA9IG9wdGlvbnMubGVmdCB8fCBNYXRoLnJvdW5kKHdpbmRvdy5zY3JlZW5YICsgd2lkdGggLyAyKTtcbiAgICByZXN1bHQudG9wID0gb3B0aW9ucy50b3AgfHwgTWF0aC5yb3VuZCh3aW5kb3cuc2NyZWVuWSArIGhlaWdodCAvIDIuNSk7XG4gICAgZGVsZXRlIHJlc3VsdC5jZW50ZXJlZDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGZvcm0gZWxlbWVudCwgYWRkIGhpZGRlbiBpbnB1dHMgZm9yIGFsbCB0aGUgcG9zdCBkYXRhXG4gKiBhbmQgcG9zdCBpdCBpbnRvIGEgbmV3bHkgb3BlbmVkIHBvcHVwXG4gKlxuICogQHBhcmFtICB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSAge09iamVjdH0gcG9zdERhdGFcbiAqIEBwYXJhbSAge1N0cmluZ30gbmFtZVxuICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIG9wZW5Qb3B1cFdpdGhQb3N0KFxuICB1cmw6IHN0cmluZyxcbiAgcG9zdERhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogc3RyaW5nXG4pOiBXaW5kb3cgfCBudWxsIHtcbiAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJmb3JtXCIpO1xuICBsZXQgd2luOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcblxuICBmb3JtLnNldEF0dHJpYnV0ZShcIm1ldGhvZFwiLCBcInBvc3RcIik7XG4gIGZvcm0uc2V0QXR0cmlidXRlKFwiYWN0aW9uXCIsIHVybCk7XG4gIGZvcm0uc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIG5hbWUpO1xuXG4gIE9iamVjdC5rZXlzKHBvc3REYXRhKS5mb3JFYWNoKGZ1bmN0aW9uIGFkZEZvcm1JdGVtKGtleSkge1xuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuICAgIGlucHV0LnR5cGUgPSBcImhpZGRlblwiO1xuICAgIGlucHV0Lm5hbWUgPSBrZXk7XG4gICAgaW5wdXQudmFsdWUgPSBwb3N0RGF0YVtrZXldO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQpO1xuICB9KTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pO1xuXG4gIHdpbiA9IHdpbmRvdy5vcGVuKFwiL1wiLCBuYW1lLCBvcHRpb25zKTtcbiAgd2luPy5kb2N1bWVudC53cml0ZShcIkxvYWRpbmcuLi5cIik7XG5cbiAgZm9ybS5zdWJtaXQoKTtcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTtcblxuICByZXR1cm4gd2luO1xufVxuXG4vKipcbiAqIE9wZW4gYSBwb3B1cCB1c2luZyB0aGUgZmlyc3QgYXJndW1lbnQuIFdhaXQgZm9yIGl0IHRvIGNsb3NlLlxuICogUmV0dXJucyB0aGUgd2luZG93IG9iamVjdFxuICpcbiAqIEBwYXJhbSAge0Z1bmN0aW9ufVxuICogQHBhcmFtICB7U3RyaW5nfVxuICogQHBhcmFtICB7U3RyaW5nfVxuICogQHBhcmFtICB7T2JqZWN0fVxuICogQHBhcmFtICB7RnVuY3Rpb259XG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHBvcHVwRXhlY3V0ZShcbiAgZXhlY3V0ZTogV2luZG93T3BlbixcbiAgdXJsOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPixcbiAgY2FsbGJhY2s6IENhbGxiYWNrXG4pOiBXaW5kb3cgfCBudWxsIHtcbiAgY29uc3QgcG9wdXBOYW1lID0gbmFtZSB8fCBkZWZhdWx0UG9wdXBOYW1lKCk7XG4gIGNvbnN0IHBvcHVwT3B0aW9ucyA9IG9wdGlvbnNSZXNvbHZlQ2VudGVyZWQoXG4gICAgT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpXG4gICk7XG4gIGNvbnN0IHBvcHVwQ2FsbGJhY2sgPVxuICAgIGNhbGxiYWNrIHx8XG4gICAgZnVuY3Rpb24gbm9vcCgpOiB2b2lkIHtcbiAgICAgIC8vXG4gICAgfTtcbiAgY29uc3Qgb3B0aW9uc1N0cmluZyA9IG9wdGlvbnNUb1N0cmluZyhwb3B1cE9wdGlvbnMpO1xuICBjb25zdCB3aW4gPSBleGVjdXRlKHVybCwgcG9wdXBOYW1lLCBvcHRpb25zU3RyaW5nKTtcbiAgbGV0IGlzTWVzc2FnZVNlbnQgPSBmYWxzZTtcbiAgbGV0IGludGVydmFsOiBudW1iZXI7XG5cbiAgZnVuY3Rpb24gcG9wdXBDYWxsYmFja09uY2UoZXJyPzogRXJyb3IsIGRhdGE/OiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKCFpc01lc3NhZ2VTZW50KSB7XG4gICAgICBpc01lc3NhZ2VTZW50ID0gdHJ1ZTtcbiAgICAgIHBvcHVwQ2FsbGJhY2soZXJyLCBkYXRhKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBvbk1lc3NhZ2UobWVzc2FnZT86IE1lc3NhZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBtZXNzYWdlID8gbWVzc2FnZS5kYXRhIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHBvcHVwQ2FsbGJhY2tPbmNlKHVuZGVmaW5lZCwgZGF0YSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgb25NZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgb25NZXNzYWdlLCBmYWxzZSk7XG5cbiAgaWYgKHdpbikge1xuICAgIGludGVydmFsID0gd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uIGNsb3NlUG9wdXBDYWxsYmFjaygpIHtcbiAgICAgIGlmICh3aW4gPT09IG51bGwgfHwgd2luLmNsb3NlZCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIGRlbGF5V2luZG93Q2xvc2luZygpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICBwb3B1cENhbGxiYWNrT25jZShuZXcgRXJyb3IoXCJQb3B1cCBjbG9zZWRcIikpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH0gZWxzZSB7XG4gICAgcG9wdXBDYWxsYmFja09uY2UobmV3IEVycm9yKFwiUG9wdXAgYmxvY2tlZFwiKSk7XG4gIH1cblxuICByZXR1cm4gd2luO1xufVxuXG4vKipcbiAqIE9wZW4gYSBwb3B1cCB1c2luZyB0aGUgZmlyc3QgYXJndW1lbnQuXG4gKiBXYWl0IGZvciBpdCB0byBjbG9zZSBhbmQgY2FsbCB0aGUgY2FsbGJhY2suXG4gKiBTZXQgdGhlIG9wdGlvbnMgc3RyaW5nIHVzaW5nIHRoZSBvcHRpb25zIG9iamVjdFxuICogUmV0dXJucyB0aGUgd2luZG93IG9iamVjdFxuICpcbiAqIEBwYXJhbSAge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0gIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtICB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3B1cChcbiAgdXJsOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPixcbiAgY2FsbGJhY2s6IENhbGxiYWNrXG4pOiBXaW5kb3cgfCBudWxsIHtcbiAgcmV0dXJuIHBvcHVwRXhlY3V0ZSh3aW5kb3cub3BlbiwgdXJsLCBuYW1lLCBvcHRpb25zLCBjYWxsYmFjayk7XG59XG5cbi8qKlxuICogT3BlbiBhIHBvcHVwIHVzaW5nIHRoZSBmaXJzdCBhcmd1bWVudC5cbiAqIFBvc3QgdGhlIGRhdGEgaW50byB0aGUgb3BlbiBwb3B1cC5cbiAqIFdhaXQgZm9yIGl0IHRvIGNsb3NlIGFuZCBjYWxsIHRoZSBjYWxsYmFjay5cbiAqIFNldCB0aGUgb3B0aW9ucyBzdHJpbmcgdXNpbmcgdGhlIG9wdGlvbnMgb2JqZWN0XG4gKiBSZXR1cm5zIHRoZSB3aW5kb3cgb2JqZWN0XG4gKlxuICogQHBhcmFtICB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSAge09iamVjdH0gcG9zdERhdGFcbiAqIEBwYXJhbSAge1N0cmluZ30gbmFtZVxuICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvcHVwV2l0aFBvc3QoXG4gIHVybDogc3RyaW5nLFxuICBwb3N0RGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+LFxuICBjYWxsYmFjazogQ2FsbGJhY2tcbik6IFdpbmRvdyB8IG51bGwge1xuICBmdW5jdGlvbiBvcGVuV2l0aFBvc3REYXRhKFxuICAgIHBvcHVwVXJsOiBzdHJpbmcsXG4gICAgcG9wdXBOYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uc1N0cmluZzogc3RyaW5nXG4gICk6IFdpbmRvdyB8IG51bGwge1xuICAgIHJldHVybiBvcGVuUG9wdXBXaXRoUG9zdChwb3B1cFVybCwgcG9zdERhdGEsIHBvcHVwTmFtZSwgb3B0aW9uc1N0cmluZyk7XG4gIH1cblxuICByZXR1cm4gcG9wdXBFeGVjdXRlKG9wZW5XaXRoUG9zdERhdGEsIHVybCwgbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xufVxuXG4vKipcbiAqIFJldHVybiBodG1sIHRoYXQgd2hlbiBleGVjdXRlZCwgd2lsbCB0cmlnZ2VyIHRoZSBwb3B1cCB0byBjYWxsYmFjayB3aXRoIGEgcmVzcG9uc2VcbiAqXG4gKiBAcGFyYW0gIHtPYmplY3R9XG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3B1cFJlc3BvbnNlPFQ+KGRhdGE6IFQpOiBzdHJpbmcge1xuICBjb25zdCBqc29uRGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuXG4gIHJldHVybiBgPHNjcmlwdD53aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCR7anNvbkRhdGF9LCBcIipcIik7c2V0VGltZW91dChmdW5jdGlvbigpIHsgd2luZG93LmNsb3NlKCk7IH0sIDUwKTs8L3NjcmlwdD5gO1xufVxuIl19
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0T3B0aW9ucyIsIndpZHRoIiwiaGVpZ2h0IiwibWVudWJhciIsInJlc2l6YWJsZSIsImxvY2F0aW9uIiwic2Nyb2xsYmFycyIsImNlbnRlcmVkIiwicG9wdXBDb3VudCIsIm9wdGlvbnNUb1N0cmluZyIsIm9wdGlvbnMiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiayIsInYiLCJqb2luIiwiZGVmYXVsdFBvcHVwTmFtZSIsIm9wdGlvbnNSZXNvbHZlQ2VudGVyZWQiLCJFcnJvciIsInJlc3VsdCIsIndpbmRvdyIsIm91dGVyV2lkdGgiLCJvdXRlckhlaWdodCIsImxlZnQiLCJNYXRoIiwicm91bmQiLCJzY3JlZW5YIiwidG9wIiwic2NyZWVuWSIsIm9wZW5Qb3B1cFdpdGhQb3N0IiwidXJsIiwicG9zdERhdGEiLCJuYW1lIiwiZm9ybSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIndpbiIsInNldEF0dHJpYnV0ZSIsImtleXMiLCJmb3JFYWNoIiwiYWRkRm9ybUl0ZW0iLCJrZXkiLCJpbnB1dCIsInR5cGUiLCJ2YWx1ZSIsImFwcGVuZENoaWxkIiwiYm9keSIsIm9wZW4iLCJ3cml0ZSIsInN1Ym1pdCIsInJlbW92ZUNoaWxkIiwicG9wdXBFeGVjdXRlIiwiZXhlY3V0ZSIsImNhbGxiYWNrIiwicG9wdXBOYW1lIiwicG9wdXBPcHRpb25zIiwiYXNzaWduIiwicG9wdXBDYWxsYmFjayIsIm5vb3AiLCJvcHRpb25zU3RyaW5nIiwiaXNNZXNzYWdlU2VudCIsImludGVydmFsIiwicG9wdXBDYWxsYmFja09uY2UiLCJlcnIiLCJkYXRhIiwib25NZXNzYWdlIiwibWVzc2FnZSIsInVuZGVmaW5lZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0SW50ZXJ2YWwiLCJjbG9zZVBvcHVwQ2FsbGJhY2siLCJjbG9zZWQiLCJzZXRUaW1lb3V0IiwiZGVsYXlXaW5kb3dDbG9zaW5nIiwiY2xlYXJJbnRlcnZhbCIsInBvcHVwIiwicG9wdXBXaXRoUG9zdCIsIm9wZW5XaXRoUG9zdERhdGEiLCJwb3B1cFVybCIsInBvcHVwUmVzcG9uc2UiLCJqc29uRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiXSwic291cmNlcyI6WyIuLi9zcmMvUG9wdXBUb29scy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRTIFJld3JpdGUgb2YgaHR0cHM6Ly9naXRodWIuY29tL2VuaGFuY3YvcG9wdXAtdG9vbHNcbiAqL1xuXG50eXBlIFllc05vID0gXCJ5ZXNcIiB8IFwibm9cIjtcbnR5cGUgT3B0aW9ucyA9IHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgbWVudWJhcjogWWVzTm87XG4gIHJlc2l6YWJsZTogWWVzTm87XG4gIGxvY2F0aW9uOiBZZXNObztcbiAgc2Nyb2xsYmFyczogWWVzTm87XG4gIGNlbnRlcmVkPzogYm9vbGVhbjtcbiAgbGVmdD86IG51bWJlcjtcbiAgdG9wPzogbnVtYmVyO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9wdGlvbnMgPSB7XG4gIHdpZHRoOiA3MDAsXG4gIGhlaWdodDogNTIwLFxuICBtZW51YmFyOiBcIm5vXCIsXG4gIHJlc2l6YWJsZTogXCJ5ZXNcIixcbiAgbG9jYXRpb246IFwieWVzXCIsXG4gIHNjcm9sbGJhcnM6IFwibm9cIixcbiAgY2VudGVyZWQ6IHRydWVcbn07XG5cbnR5cGUgQ2FsbGJhY2sgPSAoZXJyPzogRXJyb3IsIGRhdGE/OiB1bmtub3duKSA9PiB2b2lkO1xuXG50eXBlIFdpbmRvd09wZW4gPSAoXG4gIHBvcHVwVXJsOiBzdHJpbmcsXG4gIHBvcHVwTmFtZTogc3RyaW5nLFxuICBvcHRpb25zU3RyaW5nOiBzdHJpbmdcbikgPT4gV2luZG93IHwgbnVsbDtcblxubGV0IHBvcHVwQ291bnQgPSAxO1xuXG4vKipcbiAqIFJldHVybiBvcHRpb25zIGNvbnZlcnRlZCB0byBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBvcHRpb25zVG9TdHJpbmc8VCBleHRlbmRzIE9wdGlvbnM+KG9wdGlvbnM6IFQpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob3B0aW9ucylcbiAgICAubWFwKChbaywgdl0pID0+IGAke2t9PSR7dn1gKVxuICAgIC5qb2luKFwiLFwiKTtcbn1cblxuLyoqXG4gKiBHZXQgYSB1bmlxdWUgbmFtZSBvbiBlYWNoIGNhbGxcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFBvcHVwTmFtZSgpOiBzdHJpbmcge1xuICBwb3B1cENvdW50ICs9IDE7XG4gIHJldHVybiBgUG9wdXAgJHtwb3B1cENvdW50fWA7XG59XG5cbi8qKlxuICogQ29udmVydCBcImNlbnRlcmVkOiB0cnVlXCIga2V5IGludG8gY29uY3JldGUgbGVmdCBhbmQgdG9wIGFyZ3VtZW50c1xuICogQm90aCBjYW4gYmUgb3ZlcndyaXR0ZW5cbiAqXG4gKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gb3B0aW9uc1Jlc29sdmVDZW50ZXJlZChvcHRpb25zOiBPcHRpb25zKTogT3B0aW9ucyB7XG4gIGlmICghb3B0aW9ucy53aWR0aCB8fCAhb3B0aW9ucy5oZWlnaHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTaG91bGQgaGF2ZSB3aWR0aCBhbmQgaGVpZ2h0XCIpO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4ub3B0aW9ucyB9O1xuICBjb25zdCB3aWR0aCA9IHdpbmRvdy5vdXRlcldpZHRoIC0gb3B0aW9ucy53aWR0aDtcbiAgY29uc3QgaGVpZ2h0ID0gd2luZG93Lm91dGVySGVpZ2h0IC0gb3B0aW9ucy5oZWlnaHQ7XG5cbiAgaWYgKG9wdGlvbnMuY2VudGVyZWQpIHtcbiAgICByZXN1bHQubGVmdCA9IG9wdGlvbnMubGVmdCB8fCBNYXRoLnJvdW5kKHdpbmRvdy5zY3JlZW5YICsgd2lkdGggLyAyKTtcbiAgICByZXN1bHQudG9wID0gb3B0aW9ucy50b3AgfHwgTWF0aC5yb3VuZCh3aW5kb3cuc2NyZWVuWSArIGhlaWdodCAvIDIuNSk7XG4gICAgZGVsZXRlIHJlc3VsdC5jZW50ZXJlZDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGZvcm0gZWxlbWVudCwgYWRkIGhpZGRlbiBpbnB1dHMgZm9yIGFsbCB0aGUgcG9zdCBkYXRhXG4gKiBhbmQgcG9zdCBpdCBpbnRvIGEgbmV3bHkgb3BlbmVkIHBvcHVwXG4gKlxuICogQHBhcmFtICB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSAge09iamVjdH0gcG9zdERhdGFcbiAqIEBwYXJhbSAge1N0cmluZ30gbmFtZVxuICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIG9wZW5Qb3B1cFdpdGhQb3N0KFxuICB1cmw6IHN0cmluZyxcbiAgcG9zdERhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogc3RyaW5nXG4pOiBXaW5kb3cgfCBudWxsIHtcbiAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJmb3JtXCIpO1xuICBsZXQgd2luOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcblxuICBmb3JtLnNldEF0dHJpYnV0ZShcIm1ldGhvZFwiLCBcInBvc3RcIik7XG4gIGZvcm0uc2V0QXR0cmlidXRlKFwiYWN0aW9uXCIsIHVybCk7XG4gIGZvcm0uc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIG5hbWUpO1xuXG4gIE9iamVjdC5rZXlzKHBvc3REYXRhKS5mb3JFYWNoKGZ1bmN0aW9uIGFkZEZvcm1JdGVtKGtleSkge1xuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuICAgIGlucHV0LnR5cGUgPSBcImhpZGRlblwiO1xuICAgIGlucHV0Lm5hbWUgPSBrZXk7XG4gICAgaW5wdXQudmFsdWUgPSBwb3N0RGF0YVtrZXldO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQpO1xuICB9KTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pO1xuXG4gIHdpbiA9IHdpbmRvdy5vcGVuKFwiL1wiLCBuYW1lLCBvcHRpb25zKTtcbiAgd2luPy5kb2N1bWVudC53cml0ZShcIkxvYWRpbmcuLi5cIik7XG5cbiAgZm9ybS5zdWJtaXQoKTtcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTtcblxuICByZXR1cm4gd2luO1xufVxuXG4vKipcbiAqIE9wZW4gYSBwb3B1cCB1c2luZyB0aGUgZmlyc3QgYXJndW1lbnQuIFdhaXQgZm9yIGl0IHRvIGNsb3NlLlxuICogUmV0dXJucyB0aGUgd2luZG93IG9iamVjdFxuICpcbiAqIEBwYXJhbSAge0Z1bmN0aW9ufVxuICogQHBhcmFtICB7U3RyaW5nfVxuICogQHBhcmFtICB7U3RyaW5nfVxuICogQHBhcmFtICB7T2JqZWN0fVxuICogQHBhcmFtICB7RnVuY3Rpb259XG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHBvcHVwRXhlY3V0ZShcbiAgZXhlY3V0ZTogV2luZG93T3BlbixcbiAgdXJsOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPixcbiAgY2FsbGJhY2s6IENhbGxiYWNrXG4pOiBXaW5kb3cgfCBudWxsIHtcbiAgY29uc3QgcG9wdXBOYW1lID0gbmFtZSB8fCBkZWZhdWx0UG9wdXBOYW1lKCk7XG4gIGNvbnN0IHBvcHVwT3B0aW9ucyA9IG9wdGlvbnNSZXNvbHZlQ2VudGVyZWQoXG4gICAgT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpXG4gICk7XG4gIGNvbnN0IHBvcHVwQ2FsbGJhY2sgPVxuICAgIGNhbGxiYWNrIHx8XG4gICAgZnVuY3Rpb24gbm9vcCgpOiB2b2lkIHtcbiAgICAgIC8vXG4gICAgfTtcbiAgY29uc3Qgb3B0aW9uc1N0cmluZyA9IG9wdGlvbnNUb1N0cmluZyhwb3B1cE9wdGlvbnMpO1xuICBjb25zdCB3aW4gPSBleGVjdXRlKHVybCwgcG9wdXBOYW1lLCBvcHRpb25zU3RyaW5nKTtcbiAgbGV0IGlzTWVzc2FnZVNlbnQgPSBmYWxzZTtcbiAgbGV0IGludGVydmFsOiBudW1iZXI7XG5cbiAgZnVuY3Rpb24gcG9wdXBDYWxsYmFja09uY2UoZXJyPzogRXJyb3IsIGRhdGE/OiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKCFpc01lc3NhZ2VTZW50KSB7XG4gICAgICBpc01lc3NhZ2VTZW50ID0gdHJ1ZTtcbiAgICAgIHBvcHVwQ2FsbGJhY2soZXJyLCBkYXRhKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBvbk1lc3NhZ2UobWVzc2FnZT86IE1lc3NhZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBtZXNzYWdlID8gbWVzc2FnZS5kYXRhIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHBvcHVwQ2FsbGJhY2tPbmNlKHVuZGVmaW5lZCwgZGF0YSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgb25NZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgb25NZXNzYWdlLCBmYWxzZSk7XG5cbiAgaWYgKHdpbikge1xuICAgIGludGVydmFsID0gd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uIGNsb3NlUG9wdXBDYWxsYmFjaygpIHtcbiAgICAgIGlmICh3aW4gPT09IG51bGwgfHwgd2luLmNsb3NlZCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIGRlbGF5V2luZG93Q2xvc2luZygpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICBwb3B1cENhbGxiYWNrT25jZShuZXcgRXJyb3IoXCJQb3B1cCBjbG9zZWRcIikpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH0gZWxzZSB7XG4gICAgcG9wdXBDYWxsYmFja09uY2UobmV3IEVycm9yKFwiUG9wdXAgYmxvY2tlZFwiKSk7XG4gIH1cblxuICByZXR1cm4gd2luO1xufVxuXG4vKipcbiAqIE9wZW4gYSBwb3B1cCB1c2luZyB0aGUgZmlyc3QgYXJndW1lbnQuXG4gKiBXYWl0IGZvciBpdCB0byBjbG9zZSBhbmQgY2FsbCB0aGUgY2FsbGJhY2suXG4gKiBTZXQgdGhlIG9wdGlvbnMgc3RyaW5nIHVzaW5nIHRoZSBvcHRpb25zIG9iamVjdFxuICogUmV0dXJucyB0aGUgd2luZG93IG9iamVjdFxuICpcbiAqIEBwYXJhbSAge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0gIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtICB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3B1cChcbiAgdXJsOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPixcbiAgY2FsbGJhY2s6IENhbGxiYWNrXG4pOiBXaW5kb3cgfCBudWxsIHtcbiAgcmV0dXJuIHBvcHVwRXhlY3V0ZSh3aW5kb3cub3BlbiwgdXJsLCBuYW1lLCBvcHRpb25zLCBjYWxsYmFjayk7XG59XG5cbi8qKlxuICogT3BlbiBhIHBvcHVwIHVzaW5nIHRoZSBmaXJzdCBhcmd1bWVudC5cbiAqIFBvc3QgdGhlIGRhdGEgaW50byB0aGUgb3BlbiBwb3B1cC5cbiAqIFdhaXQgZm9yIGl0IHRvIGNsb3NlIGFuZCBjYWxsIHRoZSBjYWxsYmFjay5cbiAqIFNldCB0aGUgb3B0aW9ucyBzdHJpbmcgdXNpbmcgdGhlIG9wdGlvbnMgb2JqZWN0XG4gKiBSZXR1cm5zIHRoZSB3aW5kb3cgb2JqZWN0XG4gKlxuICogQHBhcmFtICB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSAge09iamVjdH0gcG9zdERhdGFcbiAqIEBwYXJhbSAge1N0cmluZ30gbmFtZVxuICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvcHVwV2l0aFBvc3QoXG4gIHVybDogc3RyaW5nLFxuICBwb3N0RGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+LFxuICBjYWxsYmFjazogQ2FsbGJhY2tcbik6IFdpbmRvdyB8IG51bGwge1xuICBmdW5jdGlvbiBvcGVuV2l0aFBvc3REYXRhKFxuICAgIHBvcHVwVXJsOiBzdHJpbmcsXG4gICAgcG9wdXBOYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uc1N0cmluZzogc3RyaW5nXG4gICk6IFdpbmRvdyB8IG51bGwge1xuICAgIHJldHVybiBvcGVuUG9wdXBXaXRoUG9zdChwb3B1cFVybCwgcG9zdERhdGEsIHBvcHVwTmFtZSwgb3B0aW9uc1N0cmluZyk7XG4gIH1cblxuICByZXR1cm4gcG9wdXBFeGVjdXRlKG9wZW5XaXRoUG9zdERhdGEsIHVybCwgbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xufVxuXG4vKipcbiAqIFJldHVybiBodG1sIHRoYXQgd2hlbiBleGVjdXRlZCwgd2lsbCB0cmlnZ2VyIHRoZSBwb3B1cCB0byBjYWxsYmFjayB3aXRoIGEgcmVzcG9uc2VcbiAqXG4gKiBAcGFyYW0gIHtPYmplY3R9XG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3B1cFJlc3BvbnNlPFQ+KGRhdGE6IFQpOiBzdHJpbmcge1xuICBjb25zdCBqc29uRGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuXG4gIHJldHVybiBgPHNjcmlwdD53aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCR7anNvbkRhdGF9LCBcIipcIik7c2V0VGltZW91dChmdW5jdGlvbigpIHsgd2luZG93LmNsb3NlKCk7IH0sIDUwKTs8L3NjcmlwdD5gO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFlQSxNQUFNQSxjQUF1QixHQUFHO0VBQzlCQyxLQUFLLEVBQUUsR0FEdUI7RUFFOUJDLE1BQU0sRUFBRSxHQUZzQjtFQUc5QkMsT0FBTyxFQUFFLElBSHFCO0VBSTlCQyxTQUFTLEVBQUUsS0FKbUI7RUFLOUJDLFFBQVEsRUFBRSxLQUxvQjtFQU05QkMsVUFBVSxFQUFFLElBTmtCO0VBTzlCQyxRQUFRLEVBQUU7QUFQb0IsQ0FBaEM7QUFrQkEsSUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLFNBQVNDLGVBQVQsQ0FBNENDLE9BQTVDLEVBQWdFO0VBQzlELE9BQU9DLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlRixPQUFmLEVBQ0pHLEdBREksQ0FDQTtJQUFBLElBQUMsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLENBQUQ7SUFBQSxPQUFlRCxDQUFmLFNBQW9CQyxDQUFwQjtFQUFBLENBREEsRUFFSkMsSUFGSSxDQUVDLEdBRkQsQ0FBUDtBQUdEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLFNBQVNDLGdCQUFULEdBQW9DO0VBQ2xDVCxVQUFVLElBQUksQ0FBZDtFQUNBLGtCQUFnQkEsVUFBaEI7QUFDRDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxTQUFTVSxzQkFBVCxDQUFnQ1IsT0FBaEMsRUFBMkQ7RUFDekQsSUFBSSxDQUFDQSxPQUFPLENBQUNULEtBQVQsSUFBa0IsQ0FBQ1MsT0FBTyxDQUFDUixNQUEvQixFQUF1QztJQUNyQyxNQUFNLElBQUlpQixLQUFKLENBQVUsOEJBQVYsQ0FBTjtFQUNEOztFQUNELE1BQU1DLE1BQU0scUJB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
@@ -1,6 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
2
 
5
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
4
 
@@ -8,10 +6,10 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8
6
 
9
7
  import { GraphQLError, Thunder } from "./zeus/index.js";
10
8
 
11
- var handleFetchResponse = function handleFetchResponse(response) {
9
+ const handleFetchResponse = response => {
12
10
  if (!response.ok) {
13
- return new Promise(function (_, reject) {
14
- response.text().then(function (text) {
11
+ return new Promise((_, reject) => {
12
+ response.text().then(text => {
15
13
  try {
16
14
  reject(JSON.parse(text));
17
15
  } catch (err) {
@@ -24,90 +22,58 @@ var handleFetchResponse = function handleFetchResponse(response) {
24
22
  return response.json();
25
23
  };
26
24
 
27
- var apiFetch = function apiFetch(options, session) {
28
- return /*#__PURE__*/function () {
29
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(query, variables) {
30
- var fetchFunction, queryString, fetchOptions, headers, controller, id, res;
31
- return _regeneratorRuntime.wrap(function _callee$(_context) {
32
- while (1) {
33
- switch (_context.prev = _context.next) {
34
- case 0:
35
- if (variables === void 0) {
36
- variables = {};
37
- }
38
-
39
- fetchFunction = fetch;
40
- queryString = query;
41
- fetchOptions = options[1] || {};
42
-
43
- if (!(fetchOptions.method && fetchOptions.method === "GET")) {
44
- _context.next = 7;
45
- break;
46
- }
47
-
48
- queryString = encodeURIComponent(query);
49
- return _context.abrupt("return", fetchFunction(options[0] + "?query=" + queryString, fetchOptions).then(handleFetchResponse).then(function (response) {
50
- if (response.errors) {
51
- throw new GraphQLError(response);
52
- }
53
-
54
- return response.data;
55
- }));
56
-
57
- case 7:
58
- headers = {
59
- "content-type": "application/json",
60
- "accept-language": navigator.language
61
- };
25
+ const apiFetch = (options, session) => async function (query, variables) {
26
+ if (variables === void 0) {
27
+ variables = {};
28
+ }
62
29
 
63
- if (session) {
64
- headers["secrecy-session"] = session;
65
- }
30
+ const fetchFunction = fetch;
31
+ let queryString = query;
32
+ const fetchOptions = options[1] || {};
66
33
 
67
- controller = new AbortController();
68
- id = setTimeout(function () {
69
- return controller.abort();
70
- }, 20000);
71
- _context.next = 13;
72
- return fetchFunction("" + options[0], _objectSpread({
73
- body: JSON.stringify({
74
- query: queryString,
75
- variables: variables
76
- }),
77
- method: "POST",
78
- headers: headers,
79
- signal: controller.signal
80
- }, fetchOptions)).then(handleFetchResponse).then(function (response) {
81
- if (response.errors) {
82
- throw new GraphQLError(response);
83
- }
34
+ if (fetchOptions.method && fetchOptions.method === "GET") {
35
+ queryString = encodeURIComponent(query);
36
+ return fetchFunction(options[0] + "?query=" + queryString, fetchOptions).then(handleFetchResponse).then(response => {
37
+ if (response.errors) {
38
+ throw new GraphQLError(response);
39
+ }
84
40
 
85
- return response.data;
86
- });
41
+ return response.data;
42
+ });
43
+ }
87
44
 
88
- case 13:
89
- res = _context.sent;
90
- clearTimeout(id);
91
- return _context.abrupt("return", res);
45
+ const headers = {
46
+ "content-type": "application/json",
47
+ "accept-language": navigator.language
48
+ };
92
49
 
93
- case 16:
94
- case "end":
95
- return _context.stop();
96
- }
97
- }
98
- }, _callee);
99
- }));
50
+ if (session) {
51
+ headers["secrecy-session"] = session;
52
+ }
100
53
 
101
- return function (_x, _x2) {
102
- return _ref.apply(this, arguments);
103
- };
104
- }();
54
+ const controller = new AbortController();
55
+ const id = setTimeout(() => controller.abort(), 20000);
56
+ const res = await fetchFunction("" + options[0], _objectSpread({
57
+ body: JSON.stringify({
58
+ query: queryString,
59
+ variables
60
+ }),
61
+ method: "POST",
62
+ headers,
63
+ signal: controller.signal
64
+ }, fetchOptions)).then(handleFetchResponse).then(response => {
65
+ if (response.errors) {
66
+ throw new GraphQLError(response);
67
+ }
68
+
69
+ return response.data;
70
+ });
71
+ clearTimeout(id);
72
+ return res;
105
73
  };
106
74
 
107
- export var createThunder = function createThunder(url, session) {
108
- return Thunder(apiFetch([url, {
109
- mode: "cors",
110
- credentials: "same-origin"
111
- }], session));
112
- };
113
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9aZXVzVGh1bmRlci50cyJdLCJuYW1lcyI6WyJHcmFwaFFMRXJyb3IiLCJUaHVuZGVyIiwiaGFuZGxlRmV0Y2hSZXNwb25zZSIsInJlc3BvbnNlIiwib2siLCJQcm9taXNlIiwiXyIsInJlamVjdCIsInRleHQiLCJ0aGVuIiwiSlNPTiIsInBhcnNlIiwiZXJyIiwiY2F0Y2giLCJqc29uIiwiYXBpRmV0Y2giLCJvcHRpb25zIiwic2Vzc2lvbiIsInF1ZXJ5IiwidmFyaWFibGVzIiwiZmV0Y2hGdW5jdGlvbiIsImZldGNoIiwicXVlcnlTdHJpbmciLCJmZXRjaE9wdGlvbnMiLCJtZXRob2QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlcnJvcnMiLCJkYXRhIiwiaGVhZGVycyIsIm5hdmlnYXRvciIsImxhbmd1YWdlIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsImlkIiwic2V0VGltZW91dCIsImFib3J0IiwiYm9keSIsInN0cmluZ2lmeSIsInNpZ25hbCIsInJlcyIsImNsZWFyVGltZW91dCIsImNyZWF0ZVRodW5kZXIiLCJ1cmwiLCJtb2RlIiwiY3JlZGVudGlhbHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsU0FBU0EsWUFBVCxFQUF1QkMsT0FBdkIsUUFBc0MsaUJBQXRDOztBQUVBLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBc0IsQ0FDMUJDLFFBRDBCLEVBTUc7QUFDN0IsTUFBSSxDQUFDQSxRQUFRLENBQUNDLEVBQWQsRUFBa0I7QUFDaEIsV0FBTyxJQUFJQyxPQUFKLENBQVksVUFBQ0MsQ0FBRCxFQUFJQyxNQUFKLEVBQWU7QUFDaENKLE1BQUFBLFFBQVEsQ0FDTEssSUFESCxHQUVHQyxJQUZILENBRVEsVUFBQUQsSUFBSSxFQUFJO0FBQ1osWUFBSTtBQUNGRCxVQUFBQSxNQUFNLENBQUNHLElBQUksQ0FBQ0MsS0FBTCxDQUFXSCxJQUFYLENBQUQsQ0FBTjtBQUNELFNBRkQsQ0FFRSxPQUFPSSxHQUFQLEVBQVk7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QixFQUUzQnpCLE9BRjJCO0FBQUEsU0FJM0JoQixPQUFPLENBQ0xjLFFBQVEsQ0FDTixDQUNFMkIsR0FERixFQUVFO0FBQ0VDLElBQUFBLElBQUksRUFBRSxNQURSO0FBRUVDLElBQUFBLFdBQVcsRUFBRTtBQUZmLEdBRkYsQ0FETSxFQVFOM0IsT0FSTSxDQURILENBSm9CO0FBQUEsQ0FBdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGZldGNoT3B0aW9ucywgR3JhcGhRTFJlc3BvbnNlIH0gZnJvbSBcIi4vemV1cy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgR3JhcGhRTEVycm9yLCBUaHVuZGVyIH0gZnJvbSBcIi4vemV1cy9pbmRleC5qc1wiO1xuXG5jb25zdCBoYW5kbGVGZXRjaFJlc3BvbnNlID0gKFxuICByZXNwb25zZTogUGFyYW1ldGVyczxcbiAgICAvLyBUT0RPOiBjZXR0ZSBlcnJldXJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIEV4dHJhY3Q8UGFyYW1ldGVyczxSZXR1cm5UeXBlPHR5cGVvZiBmZXRjaD5bXCJ0aGVuXCJdPlswXSwgRnVuY3Rpb24+XG4gID5bMF1cbik6IFByb21pc2U8R3JhcGhRTFJlc3BvbnNlPiA9PiB7XG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xuICAgICAgcmVzcG9uc2VcbiAgICAgICAgLnRleHQoKVxuICAgICAgICAudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVqZWN0KEpTT04ucGFyc2UodGV4dCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KHRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKHJlamVjdCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKSBhcyBQcm9taXNlPEdyYXBoUUxSZXNwb25zZT47XG59O1xuXG5jb25zdCBhcGlGZXRjaCA9XG4gIChvcHRpb25zOiBmZXRjaE9wdGlvbnMsIHNlc3Npb24/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSA9PlxuICBhc3luYyAoXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBjb25zdCBmZXRjaEZ1bmN0aW9uID0gZmV0Y2g7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gcXVlcnk7XG4gICAgY29uc3QgZmV0Y2hPcHRpb25zID0gb3B0aW9uc1sxXSB8fCB7fTtcbiAgICBpZiAoZmV0Y2hPcHRpb25zLm1ldGhvZCAmJiBmZXRjaE9wdGlvbnMubWV0aG9kID09PSBcIkdFVFwiKSB7XG4gICAgICBxdWVyeVN0cmluZyA9IGVuY29kZVVSSUNvbXBvbmVudChxdWVyeSk7XG4gICAgICByZXR1cm4gZmV0Y2hGdW5jdGlvbihgJHtvcHRpb25zWzBdfT9xdWVyeT0ke3F1ZXJ5U3RyaW5nfWAsIGZldGNoT3B0aW9ucylcbiAgICAgICAgLnRoZW4oaGFuZGxlRmV0Y2hSZXNwb25zZSlcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlOiBHcmFwaFFMUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICBcImFjY2VwdC1sYW5ndWFnZVwiOiBuYXZpZ2F0b3IubGFuZ3VhZ2VcbiAgICB9O1xuXG4gICAgaWYgKHNlc3Npb24pIHtcbiAgICAgIGhlYWRlcnNbXCJzZWNyZWN5LXNlc3Npb25cIl0gPSBzZXNzaW9uO1xuICAgIH1cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IGlkID0gc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIDIwMDAwKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaEZ1bmN0aW9uKGAke29wdGlvbnNbMF19YCwge1xuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBxdWVyeTogcXVlcnlTdHJpbmcsIHZhcmlhYmxlcyB9KSxcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzLFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIC4uLmZldGNoT3B0aW9uc1xuICAgIH0pXG4gICAgICAudGhlbihoYW5kbGVGZXRjaFJlc3BvbnNlKVxuICAgICAgLnRoZW4oKHJlc3BvbnNlOiBHcmFwaFFMUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9ycykge1xuICAgICAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgfSk7XG4gICAgY2xlYXJUaW1lb3V0KGlkKTtcbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVGh1bmRlciA9IChcbiAgdXJsOiBzdHJpbmcsXG4gIHNlc3Npb24/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4pOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPiA9PlxuICBUaHVuZGVyKFxuICAgIGFwaUZldGNoKFxuICAgICAgW1xuICAgICAgICB1cmwsXG4gICAgICAgIHtcbiAgICAgICAgICBtb2RlOiBcImNvcnNcIixcbiAgICAgICAgICBjcmVkZW50aWFsczogXCJzYW1lLW9yaWdpblwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBzZXNzaW9uXG4gICAgKVxuICApO1xuIl19
75
+ export const createThunder = (url, session) => Thunder(apiFetch([url, {
76
+ mode: "cors",
77
+ credentials: "same-origin"
78
+ }], session));
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHcmFwaFFMRXJyb3IiLCJUaHVuZGVyIiwiaGFuZGxlRmV0Y2hSZXNwb25zZSIsInJlc3BvbnNlIiwib2siLCJQcm9taXNlIiwiXyIsInJlamVjdCIsInRleHQiLCJ0aGVuIiwiSlNPTiIsInBhcnNlIiwiZXJyIiwiY2F0Y2giLCJqc29uIiwiYXBpRmV0Y2giLCJvcHRpb25zIiwic2Vzc2lvbiIsInF1ZXJ5IiwidmFyaWFibGVzIiwiZmV0Y2hGdW5jdGlvbiIsImZldGNoIiwicXVlcnlTdHJpbmciLCJmZXRjaE9wdGlvbnMiLCJtZXRob2QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlcnJvcnMiLCJkYXRhIiwiaGVhZGVycyIsIm5hdmlnYXRvciIsImxhbmd1YWdlIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsImlkIiwic2V0VGltZW91dCIsImFib3J0IiwicmVzIiwiYm9keSIsInN0cmluZ2lmeSIsInNpZ25hbCIsImNsZWFyVGltZW91dCIsImNyZWF0ZVRodW5kZXIiLCJ1cmwiLCJtb2RlIiwiY3JlZGVudGlhbHMiXSwic291cmNlcyI6WyIuLi9zcmMvWmV1c1RodW5kZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBmZXRjaE9wdGlvbnMsIEdyYXBoUUxSZXNwb25zZSB9IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcbmltcG9ydCB7IEdyYXBoUUxFcnJvciwgVGh1bmRlciB9IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcblxuY29uc3QgaGFuZGxlRmV0Y2hSZXNwb25zZSA9IChcbiAgcmVzcG9uc2U6IFBhcmFtZXRlcnM8XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICBFeHRyYWN0PFBhcmFtZXRlcnM8UmV0dXJuVHlwZTx0eXBlb2YgZmV0Y2g+W1widGhlblwiXT5bMF0sIEZ1bmN0aW9uPlxuICA+WzBdXG4pOiBQcm9taXNlPEdyYXBoUUxSZXNwb25zZT4gPT4ge1xuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHtcbiAgICAgIHJlc3BvbnNlXG4gICAgICAgIC50ZXh0KClcbiAgICAgICAgLnRoZW4odGV4dCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlamVjdChKU09OLnBhcnNlKHRleHQpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdCh0ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXNwb25zZS5qc29uKCkgYXMgUHJvbWlzZTxHcmFwaFFMUmVzcG9uc2U+O1xufTtcblxuY29uc3QgYXBpRmV0Y2ggPVxuICAob3B0aW9uczogZmV0Y2hPcHRpb25zLCBzZXNzaW9uPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT5cbiAgYXN5bmMgKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3QgZmV0Y2hGdW5jdGlvbiA9IGZldGNoO1xuICAgIGxldCBxdWVyeVN0cmluZyA9IHF1ZXJ5O1xuICAgIGNvbnN0IGZldGNoT3B0aW9ucyA9IG9wdGlvbnNbMV0gfHwge307XG4gICAgaWYgKGZldGNoT3B0aW9ucy5tZXRob2QgJiYgZmV0Y2hPcHRpb25zLm1ldGhvZCA9PT0gXCJHRVRcIikge1xuICAgICAgcXVlcnlTdHJpbmcgPSBlbmNvZGVVUklDb21wb25lbnQocXVlcnkpO1xuICAgICAgcmV0dXJuIGZldGNoRnVuY3Rpb24oYCR7b3B0aW9uc1swXX0/cXVlcnk9JHtxdWVyeVN0cmluZ31gLCBmZXRjaE9wdGlvbnMpXG4gICAgICAgIC50aGVuKGhhbmRsZUZldGNoUmVzcG9uc2UpXG4gICAgICAgIC50aGVuKChyZXNwb25zZTogR3JhcGhRTFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9ycykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgXCJhY2NlcHQtbGFuZ3VhZ2VcIjogbmF2aWdhdG9yLmxhbmd1YWdlXG4gICAgfTtcblxuICAgIGlmIChzZXNzaW9uKSB7XG4gICAgICBoZWFkZXJzW1wic2VjcmVjeS1zZXNzaW9uXCJdID0gc2Vzc2lvbjtcbiAgICB9XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCAyMDAwMCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2hGdW5jdGlvbihgJHtvcHRpb25zWzBdfWAsIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnk6IHF1ZXJ5U3RyaW5nLCB2YXJpYWJsZXMgfSksXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAuLi5mZXRjaE9wdGlvbnNcbiAgICB9KVxuICAgICAgLnRoZW4oaGFuZGxlRmV0Y2hSZXNwb25zZSlcbiAgICAgIC50aGVuKChyZXNwb25zZTogR3JhcGhRTFJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgIH0pO1xuICAgIGNsZWFyVGltZW91dChpZCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRodW5kZXIgPSAoXG4gIHVybDogc3RyaW5nLFxuICBzZXNzaW9uPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogUmV0dXJuVHlwZTx0eXBlb2YgVGh1bmRlcj4gPT5cbiAgVGh1bmRlcihcbiAgICBhcGlGZXRjaChcbiAgICAgIFtcbiAgICAgICAgdXJsLFxuICAgICAgICB7XG4gICAgICAgICAgbW9kZTogXCJjb3JzXCIsXG4gICAgICAgICAgY3JlZGVudGlhbHM6IFwic2FtZS1vcmlnaW5cIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgc2Vzc2lvblxuICAgIClcbiAgKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsU0FBU0EsWUFBVCxFQUF1QkMsT0FBdkIsUUFBc0MsaUJBQXRDOztBQUVBLE1BQU1DLG1CQUFtQixHQUN2QkMsUUFEMEIsSUFLRztFQUM3QixJQUFJLENBQUNBLFFBQVEsQ0FBQ0MsRUFBZCxFQUFrQjtJQUNoQixPQUFPLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxDQUFELEVBQUlDLE1BQUosS0FBZTtNQUNoQ0osUUFBUSxDQUNMSyxJQURILEdBRUdDLElBRkgsQ0FFUUQsSUFBSSxJQUFJO1FBQ1osSUFBSTtVQUNGRCxNQUFNLENBQUNHLElBQUksQ0FBQ0MsS0FBTCxDQUFXSCxJQUFYLENBQUQsQ0FBTjtRQUNELENBRkQsQ0FFRSxPQUFPSSxHQUFQLEVBQVk7VUFDWkwsTUFBTSxDQUFDQyxJQUFELENBQU47UUFDRDtNQUNGLENBUkgsRUFTR0ssS0FUSCxDQVNTTixNQVRUO0lBVUQsQ0FYTSxDQUFQO0VBWUQ7O0VBQ0QsT0FBT0osUUFBUSxDQUFDVyxJQUFULEVBQVA7QUFDRCxDQXJCRDs7QUF1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
package/dist/cache.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import type { InternalVFile, InternalFolder, InternalVFileWithFolder, InternalFile, InternalFolderFull } from "./client/types/index.js";
2
- export declare const vFilesCache: Map<string, InternalVFile | InternalVFileWithFolder>;
1
+ import type { InternalNode, InternalFile, InternalNodeFull } from "./client/types/index.js";
3
2
  export declare const filesCache: Map<string, InternalFile>;
4
- export declare const foldersCache: Map<string, InternalFolder | InternalFolderFull>;
3
+ export declare const nodesCache: Map<string, InternalNode | InternalNodeFull>;
5
4
  export declare const usersCache: Map<string, import("./BaseClient.js").UserBase | (import("./BaseClient.js").UserBase & {
6
5
  publicKey: string;
7
6
  })>;
package/dist/cache.js CHANGED
@@ -1,5 +1,4 @@
1
- export var vFilesCache = new Map();
2
- export var filesCache = new Map();
3
- export var foldersCache = new Map();
4
- export var usersCache = new Map();
5
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS50cyJdLCJuYW1lcyI6WyJ2RmlsZXNDYWNoZSIsIk1hcCIsImZpbGVzQ2FjaGUiLCJmb2xkZXJzQ2FjaGUiLCJ1c2Vyc0NhY2hlIl0sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLElBQU1BLFdBQVcsR0FBRyxJQUFJQyxHQUFKLEVBQXBCO0FBS1AsT0FBTyxJQUFNQyxVQUFVLEdBQUcsSUFBSUQsR0FBSixFQUFuQjtBQUVQLE9BQU8sSUFBTUUsWUFBWSxHQUFHLElBQUlGLEdBQUosRUFBckI7QUFLUCxPQUFPLElBQU1HLFVBQVUsR0FBRyxJQUFJSCxHQUFKLEVBQW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgSW50ZXJuYWxWRmlsZSxcbiAgSW50ZXJuYWxGb2xkZXIsXG4gIEludGVybmFsVkZpbGVXaXRoRm9sZGVyLFxuICBJbnRlcm5hbEZpbGUsXG4gIEludGVybmFsRm9sZGVyRnVsbFxufSBmcm9tIFwiLi9jbGllbnQvdHlwZXMvaW5kZXguanNcIjtcblxuZXhwb3J0IGNvbnN0IHZGaWxlc0NhY2hlID0gbmV3IE1hcDxcbiAgc3RyaW5nLFxuICBJbnRlcm5hbFZGaWxlIHwgSW50ZXJuYWxWRmlsZVdpdGhGb2xkZXJcbj4oKTtcblxuZXhwb3J0IGNvbnN0IGZpbGVzQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgSW50ZXJuYWxGaWxlPigpO1xuXG5leHBvcnQgY29uc3QgZm9sZGVyc0NhY2hlID0gbmV3IE1hcDxcbiAgc3RyaW5nLFxuICBJbnRlcm5hbEZvbGRlciB8IEludGVybmFsRm9sZGVyRnVsbFxuPigpO1xuXG5leHBvcnQgY29uc3QgdXNlcnNDYWNoZSA9IG5ldyBNYXA8XG4gIHN0cmluZyxcbiAgVXNlciB8IFVzZXI8eyB3aXRoUHVibGljS2V5OiB0cnVlIH0+XG4+KCk7XG4iXX0=
1
+ export const filesCache = new Map();
2
+ export const nodesCache = new Map();
3
+ export const usersCache = new Map();
4
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWxlc0NhY2hlIiwiTWFwIiwibm9kZXNDYWNoZSIsInVzZXJzQ2FjaGUiXSwic291cmNlcyI6WyIuLi9zcmMvY2FjaGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgSW50ZXJuYWxOb2RlLFxuICBJbnRlcm5hbEZpbGUsXG4gIEludGVybmFsTm9kZUZ1bGxcbn0gZnJvbSBcIi4vY2xpZW50L3R5cGVzL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBjb25zdCBmaWxlc0NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEludGVybmFsRmlsZT4oKTtcblxuZXhwb3J0IGNvbnN0IG5vZGVzQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgSW50ZXJuYWxOb2RlIHwgSW50ZXJuYWxOb2RlRnVsbD4oKTtcblxuZXhwb3J0IGNvbnN0IHVzZXJzQ2FjaGUgPSBuZXcgTWFwPFxuICBzdHJpbmcsXG4gIFVzZXIgfCBVc2VyPHsgd2l0aFB1YmxpY0tleTogdHJ1ZSB9PlxuPigpO1xuIl0sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLE1BQU1BLFVBQVUsR0FBRyxJQUFJQyxHQUFKLEVBQW5CO0FBRVAsT0FBTyxNQUFNQyxVQUFVLEdBQUcsSUFBSUQsR0FBSixFQUFuQjtBQUVQLE9BQU8sTUFBTUUsVUFBVSxHQUFHLElBQUlGLEdBQUosRUFBbkIifQ==