@secrecy/lib 1.0.0-dev.8 → 1.0.0-dev.80

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 (127) hide show
  1. package/README.md +1 -1
  2. package/dist/BaseClient.d.ts +104 -0
  3. package/dist/BaseClient.js +430 -0
  4. package/{lib → dist}/PopupTools.d.ts +1 -1
  5. package/dist/PopupTools.js +196 -0
  6. package/{lib → dist}/ZeusThunder.d.ts +0 -0
  7. package/dist/ZeusThunder.js +65 -0
  8. package/dist/cache.d.ts +6 -0
  9. package/dist/cache.js +4 -0
  10. package/dist/client/SecrecyAppClient.d.ts +17 -0
  11. package/dist/client/SecrecyAppClient.js +227 -0
  12. package/dist/client/SecrecyCloudClient.d.ts +89 -0
  13. package/dist/client/SecrecyCloudClient.js +1411 -0
  14. package/dist/client/SecrecyDbClient.d.ts +21 -0
  15. package/dist/client/SecrecyDbClient.js +177 -0
  16. package/dist/client/SecrecyMailClient.d.ts +42 -0
  17. package/dist/client/SecrecyMailClient.js +1022 -0
  18. package/dist/client/SecrecyPayClient.d.ts +28 -0
  19. package/dist/client/SecrecyPayClient.js +68 -0
  20. package/dist/client/SecrecyWalletClient.d.ts +30 -0
  21. package/dist/client/SecrecyWalletClient.js +73 -0
  22. package/{lib → dist}/client/convert/file.d.ts +3 -3
  23. package/dist/client/convert/file.js +33 -0
  24. package/dist/client/convert/mail.d.ts +3 -0
  25. package/dist/client/convert/mail.js +43 -0
  26. package/dist/client/convert/node.d.ts +9 -0
  27. package/dist/client/convert/node.js +88 -0
  28. package/{lib → dist}/client/helpers.d.ts +6 -1
  29. package/dist/client/helpers.js +119 -0
  30. package/dist/client/index.d.ts +34 -0
  31. package/dist/client/index.js +46 -0
  32. package/{lib → dist}/client/storage.d.ts +0 -0
  33. package/dist/client/storage.js +12 -0
  34. package/dist/client/types/File.d.ts +14 -0
  35. package/dist/client/types/File.js +3 -0
  36. package/{lib → dist}/client/types/Inputs.d.ts +2 -7
  37. package/dist/client/types/Inputs.js +3 -0
  38. package/dist/client/types/Node.d.ts +56 -0
  39. package/dist/client/types/Node.js +3 -0
  40. package/{lib → dist}/client/types/UserAppNotifications.d.ts +1 -1
  41. package/dist/client/types/UserAppNotifications.js +3 -0
  42. package/{lib → dist}/client/types/UserAppSettings.d.ts +1 -3
  43. package/dist/client/types/UserAppSettings.js +3 -0
  44. package/{lib → dist}/client/types/index.d.ts +9 -43
  45. package/dist/client/types/index.js +8 -0
  46. package/dist/client/types/selectors.d.ts +400 -0
  47. package/dist/client/types/selectors.js +135 -0
  48. package/{lib → dist}/crypto/file.d.ts +0 -0
  49. package/dist/crypto/file.js +195 -0
  50. package/{lib → dist}/crypto/index.d.ts +0 -0
  51. package/dist/crypto/index.js +45 -0
  52. package/dist/error.d.ts +33 -0
  53. package/dist/error.js +3 -0
  54. package/dist/index.d.ts +14 -0
  55. package/dist/index.js +10 -0
  56. package/{lib → dist}/minify/index.d.ts +0 -0
  57. package/dist/minify/index.js +23 -0
  58. package/{lib → dist}/minify/lz4.d.ts +0 -0
  59. package/dist/minify/lz4.js +539 -0
  60. package/{lib → dist}/sodium.d.ts +0 -0
  61. package/dist/sodium.js +6 -0
  62. package/{lib → dist}/utils/store-buddy.d.ts +0 -0
  63. package/dist/utils/store-buddy.js +58 -0
  64. package/{lib → dist}/utils/time.d.ts +0 -0
  65. package/dist/utils/time.js +12 -0
  66. package/{lib → dist/utils}/utils.d.ts +0 -0
  67. package/dist/utils/utils.js +47 -0
  68. package/{lib → dist}/worker/md5.d.ts +0 -0
  69. package/dist/worker/md5.js +24 -0
  70. package/{lib → dist}/worker/sodium.d.ts +0 -0
  71. package/dist/worker/sodium.js +118 -0
  72. package/{lib → dist}/worker/workerCodes.d.ts +0 -0
  73. package/dist/worker/workerCodes.js +255 -0
  74. package/{lib → dist}/zeus/const.d.ts +5 -0
  75. package/dist/zeus/const.js +1664 -0
  76. package/dist/zeus/index.d.ts +7873 -0
  77. package/dist/zeus/index.js +602 -0
  78. package/package.json +64 -54
  79. package/lib/BaseClient.d.ts +0 -266
  80. package/lib/BaseClient.js +0 -1332
  81. package/lib/PopupTools.js +0 -213
  82. package/lib/ZeusThunder.js +0 -112
  83. package/lib/cache.d.ts +0 -7
  84. package/lib/cache.js +0 -5
  85. package/lib/client/convert/file.js +0 -39
  86. package/lib/client/convert/folder.d.ts +0 -8
  87. package/lib/client/convert/folder.js +0 -264
  88. package/lib/client/convert/mail.d.ts +0 -3
  89. package/lib/client/convert/mail.js +0 -46
  90. package/lib/client/convert/vFile.d.ts +0 -5
  91. package/lib/client/convert/vFile.js +0 -164
  92. package/lib/client/helpers.js +0 -116
  93. package/lib/client/index.d.ts +0 -168
  94. package/lib/client/index.js +0 -3795
  95. package/lib/client/storage.js +0 -12
  96. package/lib/client/types/File.d.ts +0 -21
  97. package/lib/client/types/File.js +0 -2
  98. package/lib/client/types/FilesOnUsersOnApplications.d.ts +0 -9
  99. package/lib/client/types/FilesOnUsersOnApplications.js +0 -2
  100. package/lib/client/types/Folder.d.ts +0 -68
  101. package/lib/client/types/Folder.js +0 -7
  102. package/lib/client/types/Inputs.js +0 -2
  103. package/lib/client/types/UserAppNotifications.js +0 -2
  104. package/lib/client/types/UserAppSettings.js +0 -2
  105. package/lib/client/types/VFile.d.ts +0 -62
  106. package/lib/client/types/VFile.js +0 -4
  107. package/lib/client/types/index.js +0 -9
  108. package/lib/client/types/queries.d.ts +0 -535
  109. package/lib/client/types/queries.js +0 -192
  110. package/lib/crypto/file.js +0 -291
  111. package/lib/crypto/index.js +0 -37
  112. package/lib/index.d.ts +0 -11
  113. package/lib/index.js +0 -40
  114. package/lib/minify/index.js +0 -28
  115. package/lib/minify/lz4.js +0 -633
  116. package/lib/sodium.js +0 -28
  117. package/lib/utils/store-buddy.js +0 -69
  118. package/lib/utils/time.js +0 -22
  119. package/lib/utils.js +0 -188
  120. package/lib/worker/__mock__/sodium.worker.d.ts +0 -19
  121. package/lib/worker/__mock__/sodium.worker.js +0 -57
  122. package/lib/worker/md5.js +0 -43
  123. package/lib/worker/sodium.js +0 -155
  124. package/lib/worker/workerCodes.js +0 -3
  125. package/lib/zeus/const.js +0 -1644
  126. package/lib/zeus/index.d.ts +0 -26279
  127. package/lib/zeus/index.js +0 -552
@@ -1,264 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
-
5
- function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
-
7
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
-
9
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10
-
11
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
12
-
13
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
-
15
- import { sodium } from "../../sodium.js";
16
- import { decryptCryptoBox } from "../../crypto/index.js";
17
- import { gqlVFileToInternal, internalVFileToVFile } from "./vFile.js";
18
- import { foldersCache } from "../../cache.js";
19
- import { decryptSecretstream } from "../../crypto/file.js";
20
- export function gqlFolderToInternal(_x, _x2) {
21
- return _gqlFolderToInternal.apply(this, arguments);
22
- }
23
-
24
- function _gqlFolderToInternal() {
25
- _gqlFolderToInternal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(gql, keyPair) {
26
- var internal, key, _iterator2, _step2, b, _key;
27
-
28
- return _regeneratorRuntime.wrap(function _callee$(_context) {
29
- while (1) {
30
- switch (_context.prev = _context.next) {
31
- case 0:
32
- if (gql.userApp) {
33
- _context.next = 2;
34
- break;
35
- }
36
-
37
- throw "Can't access folder " + gql.id;
38
-
39
- case 2:
40
- internal = {
41
- id: gql.id,
42
- userApp: gql.userApp,
43
- name: gql.name,
44
- isFavorite: gql.isFavorite,
45
- breadcrumb: gql.breadcrumb,
46
- createdBy: gql.createdBy.user,
47
- createdAt: new Date(gql.createdAt),
48
- updatedAt: new Date(gql.updatedAt),
49
- deletedAt: gql.deletedAt ? new Date(gql.deletedAt) : null,
50
- users: gql.userApps.map(function (u) {
51
- return [u.userApp.user, u.rights];
52
- })
53
- };
54
- internal.userApp = _objectSpread({}, gql.userApp);
55
-
56
- if (!gql.userApp.nameKey) {
57
- _context.next = 12;
58
- break;
59
- }
60
-
61
- key = decryptCryptoBox(sodium.from_hex(gql.userApp.nameKey), gql.createdBy.user.publicKey, keyPair.privateKey);
62
- _context.t0 = sodium;
63
- _context.next = 9;
64
- return decryptSecretstream(key, sodium.from_hex(internal.name));
65
-
66
- case 9:
67
- _context.t1 = _context.sent;
68
- internal.name = _context.t0.to_string.call(_context.t0, _context.t1);
69
- internal.userApp.nameKey = sodium.to_hex(key);
70
-
71
- case 12:
72
- _iterator2 = _createForOfIteratorHelperLoose(internal.breadcrumb);
73
-
74
- case 13:
75
- if ((_step2 = _iterator2()).done) {
76
- _context.next = 26;
77
- break;
78
- }
79
-
80
- b = _step2.value;
81
-
82
- if (b.nameKey) {
83
- _context.next = 17;
84
- break;
85
- }
86
-
87
- return _context.abrupt("continue", 24);
88
-
89
- case 17:
90
- _key = decryptCryptoBox(sodium.from_hex(b.nameKey), b.pubKey, keyPair.privateKey);
91
- b.nameKey = sodium.to_hex(_key);
92
- _context.t2 = sodium;
93
- _context.next = 22;
94
- return decryptSecretstream(_key, sodium.from_hex(b.name));
95
-
96
- case 22:
97
- _context.t3 = _context.sent;
98
- b.name = _context.t2.to_string.call(_context.t2, _context.t3);
99
-
100
- case 24:
101
- _context.next = 13;
102
- break;
103
-
104
- case 26:
105
- foldersCache.set(internal.id, internal);
106
- return _context.abrupt("return", internal);
107
-
108
- case 28:
109
- case "end":
110
- return _context.stop();
111
- }
112
- }
113
- }, _callee);
114
- }));
115
- return _gqlFolderToInternal.apply(this, arguments);
116
- }
117
-
118
- export function gqlFolderFullToInternalFull(_x3, _x4) {
119
- return _gqlFolderFullToInternalFull.apply(this, arguments);
120
- }
121
-
122
- function _gqlFolderFullToInternalFull() {
123
- _gqlFolderFullToInternalFull = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(gql, keyPair) {
124
- var f;
125
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
126
- while (1) {
127
- switch (_context2.prev = _context2.next) {
128
- case 0:
129
- _context2.next = 2;
130
- return gqlFolderToInternal(gql, keyPair);
131
-
132
- case 2:
133
- f = _context2.sent;
134
- _context2.t0 = _objectSpread;
135
- _context2.t1 = _objectSpread({}, f);
136
- _context2.t2 = {};
137
- _context2.next = 8;
138
- return Promise.all(gql.vFiles.filter(function (f) {
139
- return f.userApp;
140
- }).map(function (vFile) {
141
- return gqlVFileToInternal(vFile, keyPair);
142
- }));
143
-
144
- case 8:
145
- _context2.t3 = _context2.sent;
146
-
147
- if (!gql.parentFolder) {
148
- _context2.next = 15;
149
- break;
150
- }
151
-
152
- _context2.next = 12;
153
- return gqlFolderToInternal(gql.parentFolder, keyPair);
154
-
155
- case 12:
156
- _context2.t4 = _context2.sent;
157
- _context2.next = 16;
158
- break;
159
-
160
- case 15:
161
- _context2.t4 = null;
162
-
163
- case 16:
164
- _context2.t5 = _context2.t4;
165
- _context2.next = 19;
166
- return Promise.all(gql.subfolders.map(function (s) {
167
- return gqlFolderToInternal(s, keyPair);
168
- }));
169
-
170
- case 19:
171
- _context2.t6 = _context2.sent;
172
- _context2.t7 = {
173
- vFiles: _context2.t3,
174
- parentFolder: _context2.t5,
175
- subfolders: _context2.t6
176
- };
177
- return _context2.abrupt("return", (0, _context2.t0)(_context2.t1, _context2.t2, _context2.t7));
178
-
179
- case 22:
180
- case "end":
181
- return _context2.stop();
182
- }
183
- }
184
- }, _callee2);
185
- }));
186
- return _gqlFolderFullToInternalFull.apply(this, arguments);
187
- }
188
-
189
- export function internalFolderToFolder(internal) {
190
- var folder = _objectSpread({}, internal);
191
-
192
- for (var _iterator = _createForOfIteratorHelperLoose(folder.breadcrumb), _step; !(_step = _iterator()).done;) {
193
- var b = _step.value;
194
- // @ts-ignore
195
- delete b.nameKey;
196
- } // @ts-ignore
197
-
198
-
199
- delete folder.nameKey;
200
- return folder;
201
- }
202
- export function internalFolderFullToFolderFull(internal) {
203
- return _objectSpread(_objectSpread({}, internalFolderToFolder(internal)), {}, {
204
- vFiles: internal.vFiles.map(internalVFileToVFile),
205
- parentFolder: internal.parentFolder ? internalFolderToFolder(internal.parentFolder) : null,
206
- subfolders: internal.subfolders.map(internalFolderToFolder)
207
- });
208
- }
209
- export function gqlFolderToExternalFolderFull(_x5, _x6) {
210
- return _gqlFolderToExternalFolderFull.apply(this, arguments);
211
- }
212
-
213
- function _gqlFolderToExternalFolderFull() {
214
- _gqlFolderToExternalFolderFull = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(gql, keyPair) {
215
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
216
- while (1) {
217
- switch (_context3.prev = _context3.next) {
218
- case 0:
219
- _context3.t0 = internalFolderFullToFolderFull;
220
- _context3.next = 3;
221
- return gqlFolderFullToInternalFull(gql, keyPair);
222
-
223
- case 3:
224
- _context3.t1 = _context3.sent;
225
- return _context3.abrupt("return", (0, _context3.t0)(_context3.t1));
226
-
227
- case 5:
228
- case "end":
229
- return _context3.stop();
230
- }
231
- }
232
- }, _callee3);
233
- }));
234
- return _gqlFolderToExternalFolderFull.apply(this, arguments);
235
- }
236
-
237
- export function gqlFolderToExternal(_x7, _x8) {
238
- return _gqlFolderToExternal.apply(this, arguments);
239
- }
240
-
241
- function _gqlFolderToExternal() {
242
- _gqlFolderToExternal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(gql, keyPair) {
243
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
244
- while (1) {
245
- switch (_context4.prev = _context4.next) {
246
- case 0:
247
- _context4.t0 = internalFolderToFolder;
248
- _context4.next = 3;
249
- return gqlFolderToInternal(gql, keyPair);
250
-
251
- case 3:
252
- _context4.t1 = _context4.sent;
253
- return _context4.abrupt("return", (0, _context4.t0)(_context4.t1));
254
-
255
- case 5:
256
- case "end":
257
- return _context4.stop();
258
- }
259
- }
260
- }, _callee4);
261
- }));
262
- return _gqlFolderToExternal.apply(this, arguments);
263
- }
264
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9mb2xkZXIudHMiXSwibmFtZXMiOlsic29kaXVtIiwiZGVjcnlwdENyeXB0b0JveCIsImdxbFZGaWxlVG9JbnRlcm5hbCIsImludGVybmFsVkZpbGVUb1ZGaWxlIiwiZm9sZGVyc0NhY2hlIiwiZGVjcnlwdFNlY3JldHN0cmVhbSIsImdxbEZvbGRlclRvSW50ZXJuYWwiLCJncWwiLCJrZXlQYWlyIiwidXNlckFwcCIsImlkIiwiaW50ZXJuYWwiLCJuYW1lIiwiaXNGYXZvcml0ZSIsImJyZWFkY3J1bWIiLCJjcmVhdGVkQnkiLCJ1c2VyIiwiY3JlYXRlZEF0IiwiRGF0ZSIsInVwZGF0ZWRBdCIsImRlbGV0ZWRBdCIsInVzZXJzIiwidXNlckFwcHMiLCJtYXAiLCJ1IiwicmlnaHRzIiwibmFtZUtleSIsImtleSIsImZyb21faGV4IiwicHVibGljS2V5IiwicHJpdmF0ZUtleSIsInRvX3N0cmluZyIsInRvX2hleCIsImIiLCJwdWJLZXkiLCJzZXQiLCJncWxGb2xkZXJGdWxsVG9JbnRlcm5hbEZ1bGwiLCJmIiwiUHJvbWlzZSIsImFsbCIsInZGaWxlcyIsImZpbHRlciIsInZGaWxlIiwicGFyZW50Rm9sZGVyIiwic3ViZm9sZGVycyIsInMiLCJpbnRlcm5hbEZvbGRlclRvRm9sZGVyIiwiZm9sZGVyIiwiaW50ZXJuYWxGb2xkZXJGdWxsVG9Gb2xkZXJGdWxsIiwiZ3FsRm9sZGVyVG9FeHRlcm5hbEZvbGRlckZ1bGwiLCJncWxGb2xkZXJUb0V4dGVybmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLFNBQVNBLE1BQVQsUUFBdUIsaUJBQXZCO0FBRUEsU0FBU0MsZ0JBQVQsUUFBaUMsdUJBQWpDO0FBU0EsU0FBU0Msa0JBQVQsRUFBNkJDLG9CQUE3QixRQUF5RCxZQUF6RDtBQUNBLFNBQVNDLFlBQVQsUUFBNkIsZ0JBQTdCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0Msc0JBQXBDO0FBRUEsZ0JBQXNC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RjtBQUFBO0FBQUEsbUJBS0daLDJCQUEyQixDQUFDN0IsR0FBRCxFQUFNQyxPQUFOLENBTDlCOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHOzs7O0FBU1AsZ0JBQXNCMEMsbUJBQXRCO0FBQUE7QUFBQTs7O2tGQUFPLGtCQUNMM0MsR0FESyxFQUVMQyxPQUZLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFJRXNDLHNCQUpGO0FBQUE7QUFBQSxtQkFJK0J4QyxtQkFBbUIsQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLENBSmxEOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc29kaXVtIH0gZnJvbSBcIi4uLy4uL3NvZGl1bS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdENyeXB0b0JveCB9IGZyb20gXCIuLi8uLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgR1FMRm9sZGVyLFxuICBJbnRlcm5hbEZvbGRlcixcbiAgRm9sZGVyLFxuICBHUUxGb2xkZXJGdWxsLFxuICBJbnRlcm5hbEZvbGRlckZ1bGwsXG4gIEZvbGRlckZ1bGxcbn0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBncWxWRmlsZVRvSW50ZXJuYWwsIGludGVybmFsVkZpbGVUb1ZGaWxlIH0gZnJvbSBcIi4vdkZpbGUuanNcIjtcbmltcG9ydCB7IGZvbGRlcnNDYWNoZSB9IGZyb20gXCIuLi8uLi9jYWNoZS5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyVG9JbnRlcm5hbChcbiAgZ3FsOiBHUUxGb2xkZXIsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxGb2xkZXI+IHtcbiAgaWYgKCFncWwudXNlckFwcCkge1xuICAgIHRocm93IGBDYW4ndCBhY2Nlc3MgZm9sZGVyICR7Z3FsLmlkfWA7XG4gIH1cbiAgY29uc3QgaW50ZXJuYWw6IEludGVybmFsRm9sZGVyID0ge1xuICAgIGlkOiBncWwuaWQsXG4gICAgdXNlckFwcDogZ3FsLnVzZXJBcHAsXG4gICAgbmFtZTogZ3FsLm5hbWUsXG4gICAgaXNGYXZvcml0ZTogZ3FsLmlzRmF2b3JpdGUsXG4gICAgYnJlYWRjcnVtYjogZ3FsLmJyZWFkY3J1bWIsXG4gICAgY3JlYXRlZEJ5OiBncWwuY3JlYXRlZEJ5LnVzZXIsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0KSxcbiAgICB1cGRhdGVkQXQ6IG5ldyBEYXRlKGdxbC51cGRhdGVkQXQpLFxuICAgIGRlbGV0ZWRBdDogZ3FsLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGdxbC5kZWxldGVkQXQpIDogbnVsbCxcbiAgICB1c2VyczogZ3FsLnVzZXJBcHBzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKVxuICB9O1xuXG4gIGludGVybmFsLnVzZXJBcHAgPSB7IC4uLmdxbC51c2VyQXBwIH07XG5cbiAgaWYgKGdxbC51c2VyQXBwLm5hbWVLZXkpIHtcbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC51c2VyQXBwLm5hbWVLZXkpLFxuICAgICAgZ3FsLmNyZWF0ZWRCeS51c2VyLnB1YmxpY0tleSxcbiAgICAgIGtleVBhaXIucHJpdmF0ZUtleVxuICAgICk7XG4gICAgaW50ZXJuYWwubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGludGVybmFsLm5hbWUpKVxuICAgICk7XG5cbiAgICBpbnRlcm5hbC51c2VyQXBwLm5hbWVLZXkgPSBzb2RpdW0udG9faGV4KGtleSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGIgb2YgaW50ZXJuYWwuYnJlYWRjcnVtYikge1xuICAgIGlmICghYi5uYW1lS2V5KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gZGVjcnlwdENyeXB0b0JveChcbiAgICAgIHNvZGl1bS5mcm9tX2hleChiLm5hbWVLZXkpLFxuICAgICAgYi5wdWJLZXksXG4gICAgICBrZXlQYWlyLnByaXZhdGVLZXlcbiAgICApO1xuICAgIGIubmFtZUtleSA9IHNvZGl1bS50b19oZXgoa2V5KTtcblxuICAgIGIubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGIubmFtZSkpXG4gICAgKTtcbiAgfVxuXG4gIGZvbGRlcnNDYWNoZS5zZXQoaW50ZXJuYWwuaWQsIGludGVybmFsKTtcbiAgcmV0dXJuIGludGVybmFsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyRnVsbFRvSW50ZXJuYWxGdWxsKFxuICBncWw6IEdRTEZvbGRlckZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxGb2xkZXJGdWxsPiB7XG4gIGNvbnN0IGYgPSBhd2FpdCBncWxGb2xkZXJUb0ludGVybmFsKGdxbCwga2V5UGFpcik7XG4gIHJldHVybiB7XG4gICAgLi4uZixcbiAgICB2RmlsZXM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZ3FsLnZGaWxlc1xuICAgICAgICAuZmlsdGVyKGYgPT4gZi51c2VyQXBwKVxuICAgICAgICAubWFwKHZGaWxlID0+IGdxbFZGaWxlVG9JbnRlcm5hbCh2RmlsZSwga2V5UGFpcikpXG4gICAgKSxcbiAgICBwYXJlbnRGb2xkZXI6IGdxbC5wYXJlbnRGb2xkZXJcbiAgICAgID8gYXdhaXQgZ3FsRm9sZGVyVG9JbnRlcm5hbChncWwucGFyZW50Rm9sZGVyLCBrZXlQYWlyKVxuICAgICAgOiBudWxsLFxuICAgIHN1YmZvbGRlcnM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZ3FsLnN1YmZvbGRlcnMubWFwKHMgPT4gZ3FsRm9sZGVyVG9JbnRlcm5hbChzLCBrZXlQYWlyKSlcbiAgICApXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcm5hbEZvbGRlclRvRm9sZGVyKGludGVybmFsOiBJbnRlcm5hbEZvbGRlcik6IEZvbGRlciB7XG4gIGNvbnN0IGZvbGRlcjogRm9sZGVyID0ge1xuICAgIC4uLmludGVybmFsXG4gIH07XG5cbiAgZm9yIChjb25zdCBiIG9mIGZvbGRlci5icmVhZGNydW1iKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGRlbGV0ZSBiLm5hbWVLZXk7XG4gIH1cbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgZm9sZGVyLm5hbWVLZXk7XG4gIHJldHVybiBmb2xkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcm5hbEZvbGRlckZ1bGxUb0ZvbGRlckZ1bGwoXG4gIGludGVybmFsOiBJbnRlcm5hbEZvbGRlckZ1bGxcbik6IEZvbGRlckZ1bGwge1xuICByZXR1cm4ge1xuICAgIC4uLmludGVybmFsRm9sZGVyVG9Gb2xkZXIoaW50ZXJuYWwpLFxuICAgIHZGaWxlczogaW50ZXJuYWwudkZpbGVzLm1hcChpbnRlcm5hbFZGaWxlVG9WRmlsZSksXG4gICAgcGFyZW50Rm9sZGVyOiBpbnRlcm5hbC5wYXJlbnRGb2xkZXJcbiAgICAgID8gaW50ZXJuYWxGb2xkZXJUb0ZvbGRlcihpbnRlcm5hbC5wYXJlbnRGb2xkZXIpXG4gICAgICA6IG51bGwsXG4gICAgc3ViZm9sZGVyczogaW50ZXJuYWwuc3ViZm9sZGVycy5tYXAoaW50ZXJuYWxGb2xkZXJUb0ZvbGRlcilcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbEZvbGRlclRvRXh0ZXJuYWxGb2xkZXJGdWxsKFxuICBncWw6IEdRTEZvbGRlckZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Rm9sZGVyRnVsbD4ge1xuICByZXR1cm4gaW50ZXJuYWxGb2xkZXJGdWxsVG9Gb2xkZXJGdWxsKFxuICAgIGF3YWl0IGdxbEZvbGRlckZ1bGxUb0ludGVybmFsRnVsbChncWwsIGtleVBhaXIpXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBncWxGb2xkZXJUb0V4dGVybmFsKFxuICBncWw6IEdRTEZvbGRlcixcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxGb2xkZXI+IHtcbiAgcmV0dXJuIGludGVybmFsRm9sZGVyVG9Gb2xkZXIoYXdhaXQgZ3FsRm9sZGVyVG9JbnRlcm5hbChncWwsIGtleVBhaXIpKTtcbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- import type { KeyPair } from "../../crypto/index.js";
2
- import type { InternalMail, Mail } from "../types/index.js";
3
- export declare function convertInternalMailToExternal(data: InternalMail, keys: KeyPair): Mail | null;
@@ -1,46 +0,0 @@
1
- import { sodium, decryptCryptoBox } from "../../index.js";
2
- export function convertInternalMailToExternal(data, keys) {
3
- var _mI$replyTo;
4
-
5
- if (data.mailIntegrityDraft) {
6
- data.type = "draft";
7
- }
8
-
9
- var mI = data.type === "draft" ? data.mailIntegrityDraft : data.mailIntegrity;
10
-
11
- if (!mI) {
12
- return null;
13
- }
14
-
15
- var pubKey = data.type === "received" ? data.sender.publicKey : keys.publicKey;
16
- var body = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey));
17
- var subject = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey));
18
- var hash = sodium.crypto_generichash(sodium.crypto_generichash_BYTES, JSON.stringify({
19
- body: body,
20
- subject: subject
21
- }), mI.hashKey, "hex");
22
- return {
23
- type: data.type,
24
- id: data.id,
25
- mailIntegrityId: mI.id,
26
- replyTo: (_mI$replyTo = mI.replyTo) == null ? void 0 : _mI$replyTo.id,
27
- body: body,
28
- subject: subject,
29
- createdAt: new Date(data.createdAt),
30
- deletedAt: data.deletedAt ? new Date(data.deletedAt) : null,
31
- openedAt: data.openedAt ? new Date(data.openedAt) : null,
32
- isAltered: hash !== mI.hash,
33
- temporaryRecipients: mI.temporaryRecipients,
34
- recipients: data.type === "draft" ? mI.recipients : data.recipients,
35
- sender: data.sender,
36
- files: data.files.map(function (f) {
37
- var name = sodium.to_string(decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey));
38
- return {
39
- id: f.file.id,
40
- name: name,
41
- key: f.fileKey
42
- };
43
- })
44
- };
45
- }
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9tYWlsLnRzIl0sIm5hbWVzIjpbInNvZGl1bSIsImRlY3J5cHRDcnlwdG9Cb3giLCJjb252ZXJ0SW50ZXJuYWxNYWlsVG9FeHRlcm5hbCIsImRhdGEiLCJrZXlzIiwibWFpbEludGVncml0eURyYWZ0IiwidHlwZSIsIm1JIiwibWFpbEludGVncml0eSIsInB1YktleSIsInNlbmRlciIsInB1YmxpY0tleSIsImJvZHkiLCJ0b19zdHJpbmciLCJmcm9tX2hleCIsInByaXZhdGVLZXkiLCJzdWJqZWN0IiwiaGFzaCIsImNyeXB0b19nZW5lcmljaGFzaCIsImNyeXB0b19nZW5lcmljaGFzaF9CWVRFUyIsIkpTT04iLCJzdHJpbmdpZnkiLCJoYXNoS2V5IiwiaWQiLCJtYWlsSW50ZWdyaXR5SWQiLCJyZXBseVRvIiwiY3JlYXRlZEF0IiwiRGF0ZSIsImRlbGV0ZWRBdCIsIm9wZW5lZEF0IiwiaXNBbHRlcmVkIiwidGVtcG9yYXJ5UmVjaXBpZW50cyIsInJlY2lwaWVudHMiLCJmaWxlcyIsIm1hcCIsImYiLCJuYW1lIiwiZmlsZW5hbWUiLCJmaWxlIiwia2V5IiwiZmlsZUtleSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsTUFBVCxFQUFpQkMsZ0JBQWpCLFFBQXlDLGdCQUF6QztBQUVBLE9BQU8sU0FBU0MsNkJBQVQsQ0FDTEMsSUFESyxFQUVMQyxJQUZLLEVBR1E7QUFBQTs7QUFDYixNQUFJRCxJQUFJLENBQUNFLGtCQUFULEVBQTZCO0FBQzNCRixJQUFBQSxJQUFJLENBQUNHLElBQUwsR0FBWSxPQUFaO0FBQ0Q7O0FBRUQsTUFBTUMsRUFBRSxHQUNOSixJQUFJLENBQUNHLElBQUwsS0FBYyxPQUFkLEdBQXdCSCxJQUFJLENBQUNFLGtCQUE3QixHQUFrREYsSUFBSSxDQUFDSyxhQUR6RDs7QUFHQSxNQUFJLENBQUNELEVBQUwsRUFBUztBQUNQLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQU1FLE1BQU0sR0FDVk4sSUFBSSxDQUFDRyxJQUFMLEtBQWMsVUFBZCxHQUEyQkgsSUFBSSxDQUFDTyxNQUFMLENBQVlDLFNBQXZDLEdBQW1EUCxJQUFJLENBQUNPLFNBRDFEO0FBR0EsTUFBTUMsSUFBSSxHQUFHWixNQUFNLENBQUNhLFNBQVAsQ0FDWFosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUCxDQUFnQlgsSUFBSSxDQUFDUyxJQUFyQixDQUFELEVBQTZCSCxNQUE3QixFQUFxQ0wsSUFBSSxDQUFDVyxVQUExQyxDQURMLENBQWI7QUFJQSxNQUFNQyxPQUFPLEdBQUdoQixNQUFNLENBQUNhLFNBQVAsQ0FDZFosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUCxDQUFnQlgsSUFBSSxDQUFDYSxPQUFyQixDQUFELEVBQWdDUCxNQUFoQyxFQUF3Q0wsSUFBSSxDQUFDVyxVQUE3QyxDQURGLENBQWhCO0FBSUEsTUFBTUUsSUFBSSxHQUFHakIsTUFBTSxDQUFDa0Isa0JBQVAsQ0FDWGxCLE1BQU0sQ0FBQ21CLHdCQURJLEVBRVhDLElBQUksQ0FBQ0MsU0FBTCxDQUFlO0FBQUVULElBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRSSxJQUFBQSxPQUFPLEVBQVBBO0FBQVIsR0FBZixDQUZXLEVBR1hULEVBQUUsQ0FBQ2UsT0FIUSxFQUlYLEtBSlcsQ0FBYjtBQU9BLFNBQU87QUFDTGhCLElBQUFBLElBQUksRUFBRUgsSUFBSSxDQUFDRyxJQUROO0FBRUxpQixJQUFBQSxFQUFFLEVBQUVwQixJQUFJLENBQUNvQixFQUZKO0FBR0xDLElBQUFBLGVBQWUsRUFBRWpCLEVBQUUsQ0FBQ2dCLEVBSGY7QUFJTEUsSUFBQUEsT0FBTyxpQkFBRWxCLEVBQUUsQ0FBQ2tCLE9BQUwscUJBQUUsWUFBWUYsRUFKaEI7QUFLTFgsSUFBQUEsSUFBSSxFQUFKQSxJQUxLO0FBTUxJLElBQUFBLE9BQU8sRUFBUEEsT0FOSztBQU9MVSxJQUFBQSxTQUFTLEVBQUUsSUFBSUMsSUFBSixDQUFTeEIsSUFBSSxDQUFDdUIsU0FBZCxDQVBOO0FBUUxFLElBQUFBLFNBQVMsRUFBRXpCLElBQUksQ0FBQ3lCLFNBQUwsR0FBaUIsSUFBSUQsSUFBSixDQUFTeEIsSUFBSSxDQUFDeUIsU0FBZCxDQUFqQixHQUE0QyxJQVJsRDtBQVNMQyxJQUFBQSxRQUFRLEVBQUUxQixJQUFJLENBQUMwQixRQUFMLEdBQWdCLElBQUlGLElBQUosQ0FBU3hCLElBQUksQ0FBQzBCLFFBQWQsQ0FBaEIsR0FBMEMsSUFUL0M7QUFVTEMsSUFBQUEsU0FBUyxFQUFFYixJQUFJLEtBQUtWLEVBQUUsQ0FBQ1UsSUFWbEI7QUFXTGMsSUFBQUEsbUJBQW1CLEVBQUV4QixFQUFFLENBQUN3QixtQkFYbkI7QUFZTEMsSUFBQUEsVUFBVSxFQUFFN0IsSUFBSSxDQUFDRyxJQUFMLEtBQWMsT0FBZCxHQUF3QkMsRUFBRSxDQUFDeUIsVUFBM0IsR0FBd0M3QixJQUFJLENBQUM2QixVQVpwRDtBQWFMdEIsSUFBQUEsTUFBTSxFQUFFUCxJQUFJLENBQUNPLE1BYlI7QUFjTHVCLElBQUFBLEtBQUssRUFBRTlCLElBQUksQ0FBQzhCLEtBQUwsQ0FBV0MsR0FBWCxDQUFlLFVBQUFDLENBQUMsRUFBSTtBQUN6QixVQUFNQyxJQUFJLEdBQUdwQyxNQUFNLENBQUNhLFNBQVAsQ0FDWFosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUCxDQUFnQnFCLENBQUMsQ0FBQ0UsUUFBbEIsQ0FBRCxFQUE4QjVCLE1BQTlCLEVBQXNDTCxJQUFJLENBQUNXLFVBQTNDLENBREwsQ0FBYjtBQUlBLGFBQU87QUFDTFEsUUFBQUEsRUFBRSxFQUFFWSxDQUFDLENBQUNHLElBQUYsQ0FBT2YsRUFETjtBQUVMYSxRQUFBQSxJQUFJLEVBQUpBLElBRks7QUFHTEcsUUFBQUEsR0FBRyxFQUFFSixDQUFDLENBQUNLO0FBSEYsT0FBUDtBQUtELEtBVk07QUFkRixHQUFQO0FBMEJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1haWwsIE1haWwgfSBmcm9tIFwiLi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IHNvZGl1bSwgZGVjcnlwdENyeXB0b0JveCB9IGZyb20gXCIuLi8uLi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEludGVybmFsTWFpbFRvRXh0ZXJuYWwoXG4gIGRhdGE6IEludGVybmFsTWFpbCxcbiAga2V5czogS2V5UGFpclxuKTogTWFpbCB8IG51bGwge1xuICBpZiAoZGF0YS5tYWlsSW50ZWdyaXR5RHJhZnQpIHtcbiAgICBkYXRhLnR5cGUgPSBcImRyYWZ0XCI7XG4gIH1cblxuICBjb25zdCBtSSA9XG4gICAgZGF0YS50eXBlID09PSBcImRyYWZ0XCIgPyBkYXRhLm1haWxJbnRlZ3JpdHlEcmFmdCA6IGRhdGEubWFpbEludGVncml0eTtcblxuICBpZiAoIW1JKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwdWJLZXkgPVxuICAgIGRhdGEudHlwZSA9PT0gXCJyZWNlaXZlZFwiID8gZGF0YS5zZW5kZXIucHVibGljS2V5IDoga2V5cy5wdWJsaWNLZXk7XG5cbiAgY29uc3QgYm9keSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgZGVjcnlwdENyeXB0b0JveChzb2RpdW0uZnJvbV9oZXgoZGF0YS5ib2R5KSwgcHViS2V5LCBrZXlzLnByaXZhdGVLZXkpXG4gICk7XG5cbiAgY29uc3Qgc3ViamVjdCA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgZGVjcnlwdENyeXB0b0JveChzb2RpdW0uZnJvbV9oZXgoZGF0YS5zdWJqZWN0KSwgcHViS2V5LCBrZXlzLnByaXZhdGVLZXkpXG4gICk7XG5cbiAgY29uc3QgaGFzaCA9IHNvZGl1bS5jcnlwdG9fZ2VuZXJpY2hhc2goXG4gICAgc29kaXVtLmNyeXB0b19nZW5lcmljaGFzaF9CWVRFUyxcbiAgICBKU09OLnN0cmluZ2lmeSh7IGJvZHksIHN1YmplY3QgfSksXG4gICAgbUkuaGFzaEtleSxcbiAgICBcImhleFwiXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgaWQ6IGRhdGEuaWQsXG4gICAgbWFpbEludGVncml0eUlkOiBtSS5pZCxcbiAgICByZXBseVRvOiBtSS5yZXBseVRvPy5pZCxcbiAgICBib2R5LFxuICAgIHN1YmplY3QsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShkYXRhLmNyZWF0ZWRBdCksXG4gICAgZGVsZXRlZEF0OiBkYXRhLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGRhdGEuZGVsZXRlZEF0KSA6IG51bGwsXG4gICAgb3BlbmVkQXQ6IGRhdGEub3BlbmVkQXQgPyBuZXcgRGF0ZShkYXRhLm9wZW5lZEF0KSA6IG51bGwsXG4gICAgaXNBbHRlcmVkOiBoYXNoICE9PSBtSS5oYXNoLFxuICAgIHRlbXBvcmFyeVJlY2lwaWVudHM6IG1JLnRlbXBvcmFyeVJlY2lwaWVudHMsXG4gICAgcmVjaXBpZW50czogZGF0YS50eXBlID09PSBcImRyYWZ0XCIgPyBtSS5yZWNpcGllbnRzIDogZGF0YS5yZWNpcGllbnRzLFxuICAgIHNlbmRlcjogZGF0YS5zZW5kZXIsXG4gICAgZmlsZXM6IGRhdGEuZmlsZXMubWFwKGYgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGYuZmlsZW5hbWUpLCBwdWJLZXksIGtleXMucHJpdmF0ZUtleSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBmLmZpbGUuaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGtleTogZi5maWxlS2V5XG4gICAgICB9O1xuICAgIH0pXG4gIH07XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- import type { KeyPair } from "../../crypto/index.js";
2
- import type { GQLVFile, GQLVFileWithFolder, InternalVFile, InternalVFileWithFolder, VFile, VFileWithFolder } from "../types/index.js";
3
- export declare function gqlVFileToInternal(gql: GQLVFile | GQLVFileWithFolder, keyPair: KeyPair): Promise<InternalVFile | InternalVFileWithFolder>;
4
- export declare function internalVFileToVFile(internal: InternalVFile | InternalVFileWithFolder): VFile | VFileWithFolder;
5
- export declare function gqlVFileToExternal(gql: GQLVFile | GQLVFileWithFolder, keyPair: KeyPair): Promise<VFile | VFileWithFolder>;
@@ -1,164 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
-
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
-
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
-
9
- import { vFilesCache } from "../../cache.js";
10
- import { decryptCryptoBox } from "../../crypto/index.js";
11
- import { decryptSecretstream } from "../../crypto/file.js";
12
- import { sodium } from "../../sodium.js";
13
- import { gqlFileToInternal, internalFileToFile } from "./file.js";
14
- import { gqlFolderToInternal, internalFolderToFolder } from "./folder.js";
15
- export function gqlVFileToInternal(_x, _x2) {
16
- return _gqlVFileToInternal.apply(this, arguments);
17
- }
18
-
19
- function _gqlVFileToInternal() {
20
- _gqlVFileToInternal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(gql, keyPair) {
21
- var nameKey, internal, internalWithFolder;
22
- return _regeneratorRuntime.wrap(function _callee$(_context) {
23
- while (1) {
24
- switch (_context.prev = _context.next) {
25
- case 0:
26
- if (gql.current) {
27
- _context.next = 2;
28
- break;
29
- }
30
-
31
- throw "VFile " + gql.id + " doesn't have current file";
32
-
33
- case 2:
34
- if (gql.userApp) {
35
- _context.next = 4;
36
- break;
37
- }
38
-
39
- throw "VFile " + gql.id + " doesn't have userApp";
40
-
41
- case 4:
42
- // console.dir(gql, { depth: Infinity })
43
- nameKey = decryptCryptoBox(sodium.from_hex(gql.userApp.nameKey), gql.createdBy.user.publicKey, keyPair.privateKey);
44
- _context.t0 = _objectSpread;
45
- _context.t1 = _objectSpread({}, gql);
46
- _context.t2 = {};
47
- _context.t3 = gql.createdBy.user;
48
- _context.t4 = sodium;
49
- _context.next = 12;
50
- return decryptSecretstream(nameKey, sodium.from_hex(gql.filename));
51
-
52
- case 12:
53
- _context.t5 = _context.sent;
54
- _context.t6 = _context.t4.to_string.call(_context.t4, _context.t5);
55
- _context.t7 = {
56
- userApp: gql.userApp.userApp,
57
- rights: gql.userApp.rights,
58
- isRoot: gql.userApp.isRoot,
59
- nameKey: sodium.to_hex(nameKey)
60
- };
61
- _context.t8 = gql.userApps.map(function (u) {
62
- return [u.userApp.user, u.rights];
63
- });
64
- _context.t9 = new Date(gql.createdAt);
65
- _context.t10 = new Date(gql.updatedAt);
66
- _context.t11 = gql.deletedAt ? new Date(gql.deletedAt) : null;
67
- _context.t12 = gqlFileToInternal(gql.current, keyPair);
68
- _context.t13 = gql.history.map(function (f) {
69
- return gqlFileToInternal(f, keyPair);
70
- });
71
- _context.t14 = {
72
- createdBy: _context.t3,
73
- filename: _context.t6,
74
- userApp: _context.t7,
75
- users: _context.t8,
76
- createdAt: _context.t9,
77
- updatedAt: _context.t10,
78
- deletedAt: _context.t11,
79
- current: _context.t12,
80
- history: _context.t13
81
- };
82
- internal = (0, _context.t0)(_context.t1, _context.t2, _context.t14);
83
-
84
- if (!("folder" in gql)) {
85
- _context.next = 34;
86
- break;
87
- }
88
-
89
- _context.t15 = _objectSpread;
90
- _context.t16 = _objectSpread({}, internal);
91
- _context.t17 = {};
92
- _context.next = 29;
93
- return gqlFolderToInternal(gql.folder, keyPair);
94
-
95
- case 29:
96
- _context.t18 = _context.sent;
97
- _context.t19 = {
98
- folder: _context.t18
99
- };
100
- internalWithFolder = (0, _context.t15)(_context.t16, _context.t17, _context.t19);
101
- vFilesCache.set(internal.id, internalWithFolder);
102
- return _context.abrupt("return", internalWithFolder);
103
-
104
- case 34:
105
- // @ts-expect-error
106
- delete internal.userApps;
107
- vFilesCache.set(internal.id, internal);
108
- return _context.abrupt("return", internal);
109
-
110
- case 37:
111
- case "end":
112
- return _context.stop();
113
- }
114
- }
115
- }, _callee);
116
- }));
117
- return _gqlVFileToInternal.apply(this, arguments);
118
- }
119
-
120
- export function internalVFileToVFile(internal) {
121
- var vFile = _objectSpread(_objectSpread({}, internal), {}, {
122
- current: internalFileToFile(internal.current),
123
- history: internal.history.map(internalFileToFile)
124
- }); // @ts-ignore
125
-
126
-
127
- delete vFile.nameKey;
128
-
129
- if ("folder" in internal) {
130
- return _objectSpread(_objectSpread({}, internal), {}, {
131
- folder: internalFolderToFolder(internal.folder)
132
- });
133
- }
134
-
135
- return vFile;
136
- }
137
- export function gqlVFileToExternal(_x3, _x4) {
138
- return _gqlVFileToExternal.apply(this, arguments);
139
- }
140
-
141
- function _gqlVFileToExternal() {
142
- _gqlVFileToExternal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(gql, keyPair) {
143
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
144
- while (1) {
145
- switch (_context2.prev = _context2.next) {
146
- case 0:
147
- _context2.t0 = internalVFileToVFile;
148
- _context2.next = 3;
149
- return gqlVFileToInternal(gql, keyPair);
150
-
151
- case 3:
152
- _context2.t1 = _context2.sent;
153
- return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
154
-
155
- case 5:
156
- case "end":
157
- return _context2.stop();
158
- }
159
- }
160
- }, _callee2);
161
- }));
162
- return _gqlVFileToExternal.apply(this, arguments);
163
- }
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC92RmlsZS50cyJdLCJuYW1lcyI6WyJ2RmlsZXNDYWNoZSIsImRlY3J5cHRDcnlwdG9Cb3giLCJkZWNyeXB0U2VjcmV0c3RyZWFtIiwic29kaXVtIiwiZ3FsRmlsZVRvSW50ZXJuYWwiLCJpbnRlcm5hbEZpbGVUb0ZpbGUiLCJncWxGb2xkZXJUb0ludGVybmFsIiwiaW50ZXJuYWxGb2xkZXJUb0ZvbGRlciIsImdxbFZGaWxlVG9JbnRlcm5hbCIsImdxbCIsImtleVBhaXIiLCJjdXJyZW50IiwiaWQiLCJ1c2VyQXBwIiwibmFtZUtleSIsImZyb21faGV4IiwiY3JlYXRlZEJ5IiwidXNlciIsInB1YmxpY0tleSIsInByaXZhdGVLZXkiLCJmaWxlbmFtZSIsInRvX3N0cmluZyIsInJpZ2h0cyIsImlzUm9vdCIsInRvX2hleCIsInVzZXJBcHBzIiwibWFwIiwidSIsIkRhdGUiLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJkZWxldGVkQXQiLCJoaXN0b3J5IiwiZiIsInVzZXJzIiwiaW50ZXJuYWwiLCJmb2xkZXIiLCJpbnRlcm5hbFdpdGhGb2xkZXIiLCJzZXQiLCJpbnRlcm5hbFZGaWxlVG9WRmlsZSIsInZGaWxlIiwiZ3FsVkZpbGVUb0V4dGVybmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLFNBQVNBLFdBQVQsUUFBNEIsZ0JBQTVCO0FBRUEsU0FBU0MsZ0JBQVQsUUFBaUMsdUJBQWpDO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0Msc0JBQXBDO0FBQ0EsU0FBU0MsTUFBVCxRQUF1QixpQkFBdkI7QUFTQSxTQUFTQyxpQkFBVCxFQUE0QkMsa0JBQTVCLFFBQXNELFdBQXREO0FBQ0EsU0FBU0MsbUJBQVQsRUFBOEJDLHNCQUE5QixRQUE0RCxhQUE1RDtBQUVBLGdCQUFzQkMsa0JBQXRCO0FBQUE7QUFBQTs7O2lGQUFPLGlCQUNMQyxHQURLLEVBRUxDLE9BRks7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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QTtBQStDTDtBQUNBLG1CQUFPRixRQUFRLENBQUNWLFFBQWhCO0FBRUF6QixZQUFBQSxXQUFXLENBQUNzQyxHQUFaLENBQWdCSCxRQUFRLENBQUN2QixFQUF6QixFQUE2QnVCLFFBQTdCO0FBbERLLDZDQW1ERUEsUUFuREY7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRzs7OztBQXNEUCxPQUFPLFNBQVNJLG9CQUFULENBQ0xKLFFBREssRUFFb0I7QUFDekIsTUFBTUssS0FBWSxtQ0FDYkwsUUFEYTtBQUVoQnhCLElBQUFBLE9BQU8sRUFBRU4sa0JBQWtCLENBQUM4QixRQUFRLENBQUN4QixPQUFWLENBRlg7QUFHaEJxQixJQUFBQSxPQUFPLEVBQUVHLFFBQVEsQ0FBQ0gsT0FBVCxDQUFpQk4sR0FBakIsQ0FBcUJyQixrQkFBckI7QUFITyxJQUFsQixDQUR5QixDQU16Qjs7O0FBQ0EsU0FBT21DLEtBQUssQ0FBQzFCLE9BQWI7O0FBRUEsTUFBSSxZQUFZcUIsUUFBaEIsRUFBMEI7QUFDeEIsMkNBQ0tBLFFBREw7QUFFRUMsTUFBQUEsTUFBTSxFQUFFN0Isc0JBQXNCLENBQUM0QixRQUFRLENBQUNDLE1BQVY7QUFGaEM7QUFJRDs7QUFFRCxTQUFPSSxLQUFQO0FBQ0Q7QUFFRCxnQkFBc0JDLGtCQUF0QjtBQUFBO0FBQUE7OztpRkFBTyxrQkFDTGhDLEdBREssRUFFTEMsT0FGSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBSUU2QixvQkFKRjtBQUFBO0FBQUEsbUJBSTZCL0Isa0JBQWtCLENBQUNDLEdBQUQsRUFBTUMsT0FBTixDQUovQzs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZGaWxlc0NhY2hlIH0gZnJvbSBcIi4uLy4uL2NhY2hlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgc29kaXVtIH0gZnJvbSBcIi4uLy4uL3NvZGl1bS5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBHUUxWRmlsZSxcbiAgR1FMVkZpbGVXaXRoRm9sZGVyLFxuICBJbnRlcm5hbFZGaWxlLFxuICBJbnRlcm5hbFZGaWxlV2l0aEZvbGRlcixcbiAgVkZpbGUsXG4gIFZGaWxlV2l0aEZvbGRlclxufSBmcm9tIFwiLi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IGdxbEZpbGVUb0ludGVybmFsLCBpbnRlcm5hbEZpbGVUb0ZpbGUgfSBmcm9tIFwiLi9maWxlLmpzXCI7XG5pbXBvcnQgeyBncWxGb2xkZXJUb0ludGVybmFsLCBpbnRlcm5hbEZvbGRlclRvRm9sZGVyIH0gZnJvbSBcIi4vZm9sZGVyLmpzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBncWxWRmlsZVRvSW50ZXJuYWwoXG4gIGdxbDogR1FMVkZpbGUgfCBHUUxWRmlsZVdpdGhGb2xkZXIsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxWRmlsZSB8IEludGVybmFsVkZpbGVXaXRoRm9sZGVyPiB7XG4gIGlmICghZ3FsLmN1cnJlbnQpIHtcbiAgICB0aHJvdyBgVkZpbGUgJHtncWwuaWR9IGRvZXNuJ3QgaGF2ZSBjdXJyZW50IGZpbGVgO1xuICB9XG5cbiAgaWYgKCFncWwudXNlckFwcCkge1xuICAgIHRocm93IGBWRmlsZSAke2dxbC5pZH0gZG9lc24ndCBoYXZlIHVzZXJBcHBgO1xuICB9XG5cbiAgLy8gY29uc29sZS5kaXIoZ3FsLCB7IGRlcHRoOiBJbmZpbml0eSB9KVxuXG4gIGNvbnN0IG5hbWVLZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgIHNvZGl1bS5mcm9tX2hleChncWwudXNlckFwcC5uYW1lS2V5KSxcbiAgICBncWwuY3JlYXRlZEJ5LnVzZXIucHVibGljS2V5LFxuICAgIGtleVBhaXIucHJpdmF0ZUtleVxuICApO1xuICBjb25zdCBpbnRlcm5hbDogSW50ZXJuYWxWRmlsZSA9IHtcbiAgICAuLi5ncWwsXG4gICAgY3JlYXRlZEJ5OiBncWwuY3JlYXRlZEJ5LnVzZXIsXG4gICAgZmlsZW5hbWU6IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKG5hbWVLZXksIHNvZGl1bS5mcm9tX2hleChncWwuZmlsZW5hbWUpKVxuICAgICksXG4gICAgdXNlckFwcDoge1xuICAgICAgdXNlckFwcDogZ3FsLnVzZXJBcHAudXNlckFwcCxcbiAgICAgIHJpZ2h0czogZ3FsLnVzZXJBcHAucmlnaHRzLFxuICAgICAgaXNSb290OiBncWwudXNlckFwcC5pc1Jvb3QsXG4gICAgICBuYW1lS2V5OiBzb2RpdW0udG9faGV4KG5hbWVLZXkpXG4gICAgfSxcbiAgICB1c2VyczogZ3FsLnVzZXJBcHBzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKSxcbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKGdxbC5jcmVhdGVkQXQpLFxuICAgIHVwZGF0ZWRBdDogbmV3IERhdGUoZ3FsLnVwZGF0ZWRBdCksXG4gICAgZGVsZXRlZEF0OiBncWwuZGVsZXRlZEF0ID8gbmV3IERhdGUoZ3FsLmRlbGV0ZWRBdCkgOiBudWxsLFxuICAgIGN1cnJlbnQ6IGdxbEZpbGVUb0ludGVybmFsKGdxbC5jdXJyZW50LCBrZXlQYWlyKSxcbiAgICBoaXN0b3J5OiBncWwuaGlzdG9yeS5tYXAoZiA9PiBncWxGaWxlVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgfTtcbiAgaWYgKFwiZm9sZGVyXCIgaW4gZ3FsKSB7XG4gICAgY29uc3QgaW50ZXJuYWxXaXRoRm9sZGVyOiBJbnRlcm5hbFZGaWxlV2l0aEZvbGRlciA9IHtcbiAgICAgIC4uLmludGVybmFsLFxuICAgICAgZm9sZGVyOiBhd2FpdCBncWxGb2xkZXJUb0ludGVybmFsKGdxbC5mb2xkZXIsIGtleVBhaXIpXG4gICAgfTtcbiAgICB2RmlsZXNDYWNoZS5zZXQoaW50ZXJuYWwuaWQsIGludGVybmFsV2l0aEZvbGRlcik7XG4gICAgcmV0dXJuIGludGVybmFsV2l0aEZvbGRlcjtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgZGVsZXRlIGludGVybmFsLnVzZXJBcHBzO1xuXG4gIHZGaWxlc0NhY2hlLnNldChpbnRlcm5hbC5pZCwgaW50ZXJuYWwpO1xuICByZXR1cm4gaW50ZXJuYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcm5hbFZGaWxlVG9WRmlsZShcbiAgaW50ZXJuYWw6IEludGVybmFsVkZpbGUgfCBJbnRlcm5hbFZGaWxlV2l0aEZvbGRlclxuKTogVkZpbGUgfCBWRmlsZVdpdGhGb2xkZXIge1xuICBjb25zdCB2RmlsZTogVkZpbGUgPSB7XG4gICAgLi4uaW50ZXJuYWwsXG4gICAgY3VycmVudDogaW50ZXJuYWxGaWxlVG9GaWxlKGludGVybmFsLmN1cnJlbnQpLFxuICAgIGhpc3Rvcnk6IGludGVybmFsLmhpc3RvcnkubWFwKGludGVybmFsRmlsZVRvRmlsZSlcbiAgfTtcbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgdkZpbGUubmFtZUtleTtcblxuICBpZiAoXCJmb2xkZXJcIiBpbiBpbnRlcm5hbCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnRlcm5hbCxcbiAgICAgIGZvbGRlcjogaW50ZXJuYWxGb2xkZXJUb0ZvbGRlcihpbnRlcm5hbC5mb2xkZXIpXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB2RmlsZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbFZGaWxlVG9FeHRlcm5hbChcbiAgZ3FsOiBHUUxWRmlsZSB8IEdRTFZGaWxlV2l0aEZvbGRlcixcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxWRmlsZSB8IFZGaWxlV2l0aEZvbGRlcj4ge1xuICByZXR1cm4gaW50ZXJuYWxWRmlsZVRvVkZpbGUoYXdhaXQgZ3FsVkZpbGVUb0ludGVybmFsKGdxbCwga2V5UGFpcikpO1xufVxuIl19