@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
@@ -1,16 +1,7 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
4
- import _regeneratorRuntime from "@babel/runtime/regenerator";
5
-
6
- 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; }
7
-
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
-
10
1
  /* eslint-disable @typescript-eslint/naming-convention */
11
2
  import { storeBuddy } from "../../utils/store-buddy.js";
12
3
  import { BaseClient } from "../../BaseClient.js";
13
- var userSelector = {
4
+ const userSelector = {
14
5
  id: true,
15
6
  firstname: true,
16
7
  lastname: true,
@@ -21,173 +12,94 @@ var userSelector = {
21
12
  deletedAt: true,
22
13
  lastLogin: true
23
14
  };
24
- export var AdminSecrecyClient = /*#__PURE__*/function (_BaseClient) {
25
- _inheritsLoose(AdminSecrecyClient, _BaseClient);
26
-
27
- function AdminSecrecyClient() {
28
- return _BaseClient.apply(this, arguments) || this;
29
- }
30
-
31
- var _proto = AdminSecrecyClient.prototype;
32
-
33
- _proto.userList = /*#__PURE__*/function () {
34
- var _userList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(search) {
35
- var _yield$this$client, userList, result;
36
-
37
- return _regeneratorRuntime.wrap(function _callee$(_context) {
38
- while (1) {
39
- switch (_context.prev = _context.next) {
40
- case 0:
41
- _context.next = 2;
42
- return this.client("query")({
43
- userList: [{
44
- search: search
45
- }, {
46
- "...on ErrorAccessDenied": {
47
- __typename: true,
48
- message: true
49
- },
50
- "...on UserListResponse": {
51
- __typename: true,
52
- userList: userSelector
53
- }
54
- }]
55
- });
56
-
57
- case 2:
58
- _yield$this$client = _context.sent;
59
- userList = _yield$this$client.userList;
60
-
61
- if (userList) {
62
- _context.next = 6;
63
- break;
64
- }
65
-
66
- return _context.abrupt("return", null);
67
-
68
- case 6:
69
- if (!(userList.__typename === "ErrorAccessDenied")) {
70
- _context.next = 8;
71
- break;
72
- }
73
-
74
- return _context.abrupt("return", userList);
75
-
76
- case 8:
77
- result = userList.userList.map(function (user) {
78
- return _objectSpread(_objectSpread({}, user), {}, {
79
- lastLogin: new Date(user.lastLogin),
80
- deletedAt: user.deletedAt ? new Date(user.deletedAt) : null
81
- });
82
- });
83
- return _context.abrupt("return", {
84
- __typename: "SuccessResponse",
85
- data: result
86
- });
87
-
88
- case 10:
89
- case "end":
90
- return _context.stop();
91
- }
15
+ export class AdminSecrecyClient extends BaseClient {
16
+ async userList(search) {
17
+ const {
18
+ userList
19
+ } = await this.client("query", {
20
+ scalars: {
21
+ DateTime: {
22
+ decode: e => new Date(e),
23
+ encode: e => e.toISOString()
24
+ }
25
+ }
26
+ })({
27
+ userList: [{
28
+ search
29
+ }, {
30
+ "...on ErrorAccessDenied": {
31
+ __typename: true,
32
+ message: true
33
+ },
34
+ "...on UserListResponse": {
35
+ __typename: true,
36
+ userList: userSelector
92
37
  }
93
- }, _callee, this);
94
- }));
38
+ }]
39
+ });
95
40
 
96
- function userList(_x) {
97
- return _userList.apply(this, arguments);
41
+ if (!userList) {
42
+ return null;
98
43
  }
99
44
 
100
- return userList;
101
- }();
102
-
103
- _proto.changeUserPlan = /*#__PURE__*/function () {
104
- var _changeUserPlan = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(userId, plan) {
105
- var _yield$this$client2, changeUserPlan;
106
-
107
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
108
- while (1) {
109
- switch (_context2.prev = _context2.next) {
110
- case 0:
111
- _context2.next = 2;
112
- return this.client("mutation")({
113
- changeUserPlan: [{
114
- userId: userId,
115
- plan: plan
116
- }, {
117
- "...on ErrorAccessDenied": {
118
- __typename: true,
119
- message: true
120
- },
121
- "...on ChangeUserPlanResponse": {
122
- __typename: true,
123
- changeUserPlan: userSelector
124
- }
125
- }]
126
- });
127
-
128
- case 2:
129
- _yield$this$client2 = _context2.sent;
130
- changeUserPlan = _yield$this$client2.changeUserPlan;
131
-
132
- if (changeUserPlan) {
133
- _context2.next = 6;
134
- break;
135
- }
136
-
137
- return _context2.abrupt("return", null);
138
-
139
- case 6:
140
- if (!(changeUserPlan.__typename === "ErrorAccessDenied")) {
141
- _context2.next = 8;
142
- break;
143
- }
144
-
145
- return _context2.abrupt("return", changeUserPlan);
45
+ if (userList.__typename === "ErrorAccessDenied") {
46
+ return userList;
47
+ }
146
48
 
147
- case 8:
148
- if (changeUserPlan.changeUserPlan) {
149
- _context2.next = 10;
150
- break;
151
- }
49
+ return {
50
+ __typename: "SuccessResponse",
51
+ data: userList.userList
52
+ };
53
+ }
152
54
 
153
- return _context2.abrupt("return", null);
55
+ async changeUserPlan(userId, plan) {
56
+ const {
57
+ changeUserPlan
58
+ } = await this.client("mutation", {
59
+ scalars: {
60
+ DateTime: {
61
+ decode: e => new Date(e),
62
+ encode: e => e.toISOString()
63
+ }
64
+ }
65
+ })({
66
+ changeUserPlan: [{
67
+ userId,
68
+ plan
69
+ }, {
70
+ "...on ErrorAccessDenied": {
71
+ __typename: true,
72
+ message: true
73
+ },
74
+ "...on ChangeUserPlanResponse": {
75
+ __typename: true,
76
+ changeUserPlan: userSelector
77
+ }
78
+ }]
79
+ });
154
80
 
155
- case 10:
156
- return _context2.abrupt("return", {
157
- __typename: "SuccessResponse",
158
- data: {
159
- deletedAt: changeUserPlan.changeUserPlan.deletedAt ? new Date(changeUserPlan.changeUserPlan.deletedAt) : null,
160
- lastLogin: new Date(changeUserPlan.changeUserPlan.lastLogin),
161
- email: changeUserPlan.changeUserPlan.email,
162
- firstname: changeUserPlan.changeUserPlan.firstname,
163
- id: changeUserPlan.changeUserPlan.id,
164
- lang: changeUserPlan.changeUserPlan.lang,
165
- lastname: changeUserPlan.changeUserPlan.lastname,
166
- phone: changeUserPlan.changeUserPlan.phone,
167
- role: changeUserPlan.changeUserPlan.role
168
- }
169
- });
81
+ if (!changeUserPlan) {
82
+ return null;
83
+ }
170
84
 
171
- case 11:
172
- case "end":
173
- return _context2.stop();
174
- }
175
- }
176
- }, _callee2, this);
177
- }));
85
+ if (changeUserPlan.__typename === "ErrorAccessDenied") {
86
+ return changeUserPlan;
87
+ }
178
88
 
179
- function changeUserPlan(_x2, _x3) {
180
- return _changeUserPlan.apply(this, arguments);
89
+ if (!changeUserPlan.changeUserPlan) {
90
+ return null;
181
91
  }
182
92
 
183
- return changeUserPlan;
184
- }();
93
+ return {
94
+ __typename: "SuccessResponse",
95
+ data: changeUserPlan.changeUserPlan
96
+ };
97
+ }
185
98
 
186
- return AdminSecrecyClient;
187
- }(BaseClient);
99
+ }
188
100
  export function getSecrecyAdminClient(env, session) {
189
- var userSession = storeBuddy("secrecy.user_session", session).init("");
190
- var uaSession = userSession.load();
101
+ const userSession = storeBuddy("secrecy.user_session", session).init("");
102
+ const uaSession = userSession.load();
191
103
 
192
104
  if (uaSession === "") {
193
105
  return null;
@@ -195,4 +107,4 @@ export function getSecrecyAdminClient(env, session) {
195
107
 
196
108
  return new AdminSecrecyClient(uaSession, env);
197
109
  }
198
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvYWRtaW4vaW5kZXgudHMiXSwibmFtZXMiOlsic3RvcmVCdWRkeSIsIkJhc2VDbGllbnQiLCJ1c2VyU2VsZWN0b3IiLCJpZCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibGFuZyIsImVtYWlsIiwicGhvbmUiLCJyb2xlIiwiZGVsZXRlZEF0IiwibGFzdExvZ2luIiwiQWRtaW5TZWNyZWN5Q2xpZW50IiwidXNlckxpc3QiLCJzZWFyY2giLCJjbGllbnQiLCJfX3R5cGVuYW1lIiwibWVzc2FnZSIsInJlc3VsdCIsIm1hcCIsInVzZXIiLCJEYXRlIiwiZGF0YSIsImNoYW5nZVVzZXJQbGFuIiwidXNlcklkIiwicGxhbiIsImdldFNlY3JlY3lBZG1pbkNsaWVudCIsImVudiIsInNlc3Npb24iLCJ1c2VyU2Vzc2lvbiIsImluaXQiLCJ1YVNlc3Npb24iLCJsb2FkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQU9BLFNBQVNBLFVBQVQsUUFBMkIsNEJBQTNCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixxQkFBM0I7QUF3QkEsSUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxFQUFFLEVBQUUsSUFEZTtBQUVuQkMsRUFBQUEsU0FBUyxFQUFFLElBRlE7QUFHbkJDLEVBQUFBLFFBQVEsRUFBRSxJQUhTO0FBSW5CQyxFQUFBQSxJQUFJLEVBQUUsSUFKYTtBQUtuQkMsRUFBQUEsS0FBSyxFQUFFLElBTFk7QUFNbkJDLEVBQUFBLEtBQUssRUFBRSxJQU5ZO0FBT25CQyxFQUFBQSxJQUFJLEVBQUUsSUFQYTtBQVFuQkMsRUFBQUEsU0FBUyxFQUFFLElBUlE7QUFTbkJDLEVBQUFBLFNBQVMsRUFBRTtBQVRRLENBQXJCO0FBWUEsV0FBYUMsa0JBQWI7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7O0FBQUEsU0FDUUMsUUFEUjtBQUFBLDZFQUNFLGlCQUNFQyxNQURGO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFB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S0pKLGtCQUFBQSxLQUFLLEVBQUVnQixjQUFjLENBQUNBLGNBQWYsQ0FBOEJoQixLQUxqQztBQU1KSCxrQkFBQUEsU0FBUyxFQUFFbUIsY0FBYyxDQUFDQSxjQUFmLENBQThCbkIsU0FOckM7QUFPSkQsa0JBQUFBLEVBQUUsRUFBRW9CLGNBQWMsQ0FBQ0EsY0FBZixDQUE4QnBCLEVBUDlCO0FBUUpHLGtCQUFBQSxJQUFJLEVBQUVpQixjQUFjLENBQUNBLGNBQWYsQ0FBOEJqQixJQVJoQztBQVNKRCxrQkFBQUEsUUFBUSxFQUFFa0IsY0FBYyxDQUFDQSxjQUFmLENBQThCbEIsUUFUcEM7QUFVSkcsa0JBQUFBLEtBQUssRUFBRWUsY0FBYyxDQUFDQSxjQUFmLENBQThCZixLQVZqQztBQVdKQyxrQkFBQUEsSUFBSSxFQUFFYyxjQUFjLENBQUNBLGNBQWYsQ0FBOEJkO0FBWGhDO0FBRkQsZUFuQ1Q7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsS0ExQ0Y7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQSxFQUF3Q1IsVUFBeEM7QUFnR0EsT0FBTyxTQUFTeUIscUJBQVQsQ0FDTEMsR0FESyxFQUVMQyxPQUZLLEVBR3NCO0FBQzNCLE1BQU1DLFdBQVcsR0FBRzdCLFVBQVUseUJBQWlDNEIsT0FBakMsQ0FBVixDQUFvREUsSUFBcEQsQ0FDbEIsRUFEa0IsQ0FBcEI7QUFHQSxNQUFNQyxTQUFTLEdBQUdGLFdBQVcsQ0FBQ0csSUFBWixFQUFsQjs7QUFDQSxNQUFJRCxTQUFTLEtBQUssRUFBbEIsRUFBc0I7QUFDcEIsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFJbkIsa0JBQUosQ0FBdUJtQixTQUF2QixFQUFrQ0osR0FBbEMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgdHlwZSB7XG4gIFBsYW5LaW5kLFxuICBTZWNyZWN5RW52LFxuICBTdWNjZXNzUmVzcG9uc2UsXG4gIFVzZXJcbn0gZnJvbSBcIi4uLy4uL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzdG9yZUJ1ZGR5IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3N0b3JlLWJ1ZGR5LmpzXCI7XG5pbXBvcnQgeyBCYXNlQ2xpZW50IH0gZnJvbSBcIi4uLy4uL0Jhc2VDbGllbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgRXJyb3JBY2Nlc3NEZW5pZWQgfSBmcm9tIFwiLi4vLi4vZXJyb3IuanNcIjtcblxuLyogVE9ET1xuLSBxdWVyeSBwb3VyIGxpc3RlciBsZXMgdXNlcnMgYXZlYyBwYWdpbmF0aW9uIGV0IGlucHV0IG9wdGlvbm5lbCBcInNlYXJjaFwiIGV0IGJvb2xlYW4gcG91ciBmaWx0cmVyIGxlcyBiYW5zXG4tIG11dGF0aW9uIGNoYW5nZXIgbGUgcGxhbiBkJ3VuIHVzZXIgKHNhbnMgcGF5ZXIgZHUgY291cClcbi0gcXVlcnkgcG91ciByZW52b3llciBsZXMgYXBwcyBkJ3VuIHVzZXJcbi0gcXVlcnkgcG91ciBkb25uZXIgbGVzIGxpbWl0ZXMgZCd1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgZG9ubmVyIGxlcyByZXBvcnRzIGQndW4gdXNlclxuLSBtdXRhdGlvbiBwb3VyIGJhbiB1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgZ2V0IGxlcyBiYW5zIGQndW4gdXNlclxuLSBtdXRhdGlvbiBwb3VyIGRlbGV0ZSB1biB1c2VyIChkw6lqw6AgZXhpc3RhbnQ/KVxuLSBtdXRhdGlvbiBjaGFuZ2VyIGxlIHJvbGUgZHUgdXNlciAodXNlci9hZG1pbilcbi0gbXV0YXRpb24gcG91ciBkw6ljbyB1bmUgb3UgZGVzIHNlc3Npb25zIG1ldGEgb3UgYXBwIGQndW4gdXNlclxuLSBxdWVyeSBhZmZpY2hlciBsZXMgc2Vzc2lvbnMgbWV0YSBvdSBhcHAgZCd1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgYWZmaWNoZXIgZGVzIGluZm9zIHN1ciBsZSBjbG91ZCBkJ3VuIHVzZXJcbi0gbXV0YXRpb24gcG91ciBkZWxldGUsIHJlc3RvcmUsIGRlbGV0ZSB0cmFzaCwgZGFucyBsZSBjbG91ZCBkJ3VuIHVzZXJcbi0gcXVlcnkgcG91ciBhZmZpY2hlciBsZXMgaW5mb3Mgc3VyIGxlcyBtYWlscyBkJ3VuIHVzZXJcbi0gbXV0YXRpb24gcG91ciBkZWxldGUsIHJlc3RvcmUsIGRlbGV0ZSB0cmFzaCwgZGFucyBsZXMgbWFpbHMgZCd1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgYWZmaWNoZXIgbGVzIGxpbWl0ZXMgbWF4IGV0IGFjdHVlbHMgZCd1biB1c2VyXG4tIHF1ZXJ5IGRlIHN0YXRzP1xuKi9cblxuZXhwb3J0IHR5cGUgVXNlckFkbWluUGFuZWwgPSBVc2VyPHsgd2l0aFB1YmxpY0tleTogZmFsc2UgfT47XG5jb25zdCB1c2VyU2VsZWN0b3IgPSB7XG4gIGlkOiB0cnVlLFxuICBmaXJzdG5hbWU6IHRydWUsXG4gIGxhc3RuYW1lOiB0cnVlLFxuICBsYW5nOiB0cnVlLFxuICBlbWFpbDogdHJ1ZSxcbiAgcGhvbmU6IHRydWUsXG4gIHJvbGU6IHRydWUsXG4gIGRlbGV0ZWRBdDogdHJ1ZSxcbiAgbGFzdExvZ2luOiB0cnVlXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY2xhc3MgQWRtaW5TZWNyZWN5Q2xpZW50IGV4dGVuZHMgQmFzZUNsaWVudCB7XG4gIGFzeW5jIHVzZXJMaXN0KFxuICAgIHNlYXJjaD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxTdWNjZXNzUmVzcG9uc2U8VXNlckFkbWluUGFuZWxbXT4gfCBFcnJvckFjY2Vzc0RlbmllZCB8IG51bGw+IHtcbiAgICBjb25zdCB7IHVzZXJMaXN0IH0gPSBhd2FpdCB0aGlzLmNsaWVudChcInF1ZXJ5XCIpKHtcbiAgICAgIHVzZXJMaXN0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzZWFyY2hcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gVXNlckxpc3RSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgdXNlckxpc3Q6IHVzZXJTZWxlY3RvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCF1c2VyTGlzdCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHVzZXJMaXN0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIHVzZXJMaXN0O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IHVzZXJMaXN0LnVzZXJMaXN0Lm1hcCh1c2VyID0+ICh7XG4gICAgICAuLi51c2VyLFxuICAgICAgbGFzdExvZ2luOiBuZXcgRGF0ZSh1c2VyLmxhc3RMb2dpbiksXG4gICAgICBkZWxldGVkQXQ6IHVzZXIuZGVsZXRlZEF0ID8gbmV3IERhdGUodXNlci5kZWxldGVkQXQpIDogbnVsbFxuICAgIH0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogcmVzdWx0XG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZVVzZXJQbGFuKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIHBsYW46IFBsYW5LaW5kXG4gICk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFVzZXJBZG1pblBhbmVsPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgY2hhbmdlVXNlclBsYW4gfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwibXV0YXRpb25cIikoe1xuICAgICAgY2hhbmdlVXNlclBsYW46IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICBwbGFuXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIENoYW5nZVVzZXJQbGFuUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGNoYW5nZVVzZXJQbGFuOiB1c2VyU2VsZWN0b3JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghY2hhbmdlVXNlclBsYW4pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VVc2VyUGxhbi5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBjaGFuZ2VVc2VyUGxhbjtcbiAgICB9XG5cbiAgICBpZiAoIWNoYW5nZVVzZXJQbGFuLmNoYW5nZVVzZXJQbGFuKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGVsZXRlZEF0OiBjaGFuZ2VVc2VyUGxhbi5jaGFuZ2VVc2VyUGxhbi5kZWxldGVkQXRcbiAgICAgICAgICA/IG5ldyBEYXRlKGNoYW5nZVVzZXJQbGFuLmNoYW5nZVVzZXJQbGFuLmRlbGV0ZWRBdClcbiAgICAgICAgICA6IG51bGwsXG4gICAgICAgIGxhc3RMb2dpbjogbmV3IERhdGUoY2hhbmdlVXNlclBsYW4uY2hhbmdlVXNlclBsYW4ubGFzdExvZ2luKSxcbiAgICAgICAgZW1haWw6IGNoYW5nZVVzZXJQbGFuLmNoYW5nZVVzZXJQbGFuLmVtYWlsLFxuICAgICAgICBmaXJzdG5hbWU6IGNoYW5nZVVzZXJQbGFuLmNoYW5nZVVzZXJQbGFuLmZpcnN0bmFtZSxcbiAgICAgICAgaWQ6IGNoYW5nZVVzZXJQbGFuLmNoYW5nZVVzZXJQbGFuLmlkLFxuICAgICAgICBsYW5nOiBjaGFuZ2VVc2VyUGxhbi5jaGFuZ2VVc2VyUGxhbi5sYW5nLFxuICAgICAgICBsYXN0bmFtZTogY2hhbmdlVXNlclBsYW4uY2hhbmdlVXNlclBsYW4ubGFzdG5hbWUsXG4gICAgICAgIHBob25lOiBjaGFuZ2VVc2VyUGxhbi5jaGFuZ2VVc2VyUGxhbi5waG9uZSxcbiAgICAgICAgcm9sZTogY2hhbmdlVXNlclBsYW4uY2hhbmdlVXNlclBsYW4ucm9sZVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlY3JlY3lBZG1pbkNsaWVudChcbiAgZW52OiBTZWNyZWN5RW52LFxuICBzZXNzaW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZFxuKTogQWRtaW5TZWNyZWN5Q2xpZW50IHwgbnVsbCB7XG4gIGNvbnN0IHVzZXJTZXNzaW9uID0gc3RvcmVCdWRkeTxzdHJpbmc+KGBzZWNyZWN5LnVzZXJfc2Vzc2lvbmAsIHNlc3Npb24pLmluaXQoXG4gICAgXCJcIlxuICApO1xuICBjb25zdCB1YVNlc3Npb24gPSB1c2VyU2Vzc2lvbi5sb2FkKCk7XG4gIGlmICh1YVNlc3Npb24gPT09IFwiXCIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBuZXcgQWRtaW5TZWNyZWN5Q2xpZW50KHVhU2Vzc2lvbiwgZW52KTtcbn1cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdG9yZUJ1ZGR5IiwiQmFzZUNsaWVudCIsInVzZXJTZWxlY3RvciIsImlkIiwiZmlyc3RuYW1lIiwibGFzdG5hbWUiLCJsYW5nIiwiZW1haWwiLCJwaG9uZSIsInJvbGUiLCJkZWxldGVkQXQiLCJsYXN0TG9naW4iLCJBZG1pblNlY3JlY3lDbGllbnQiLCJ1c2VyTGlzdCIsInNlYXJjaCIsImNsaWVudCIsInNjYWxhcnMiLCJEYXRlVGltZSIsImRlY29kZSIsImUiLCJEYXRlIiwiZW5jb2RlIiwidG9JU09TdHJpbmciLCJfX3R5cGVuYW1lIiwibWVzc2FnZSIsImRhdGEiLCJjaGFuZ2VVc2VyUGxhbiIsInVzZXJJZCIsInBsYW4iLCJnZXRTZWNyZWN5QWRtaW5DbGllbnQiLCJlbnYiLCJzZXNzaW9uIiwidXNlclNlc3Npb24iLCJpbml0IiwidWFTZXNzaW9uIiwibG9hZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvYWRtaW4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgdHlwZSB7XG4gIFBsYW5LaW5kLFxuICBTZWNyZWN5RW52LFxuICBTdWNjZXNzUmVzcG9uc2UsXG4gIFVzZXJcbn0gZnJvbSBcIi4uLy4uL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzdG9yZUJ1ZGR5IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3N0b3JlLWJ1ZGR5LmpzXCI7XG5pbXBvcnQgeyBCYXNlQ2xpZW50IH0gZnJvbSBcIi4uLy4uL0Jhc2VDbGllbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgRXJyb3JBY2Nlc3NEZW5pZWQgfSBmcm9tIFwiLi4vLi4vZXJyb3IuanNcIjtcblxuLyogVE9ET1xuLSBxdWVyeSBwb3VyIGxpc3RlciBsZXMgdXNlcnMgYXZlYyBwYWdpbmF0aW9uIGV0IGlucHV0IG9wdGlvbm5lbCBcInNlYXJjaFwiIGV0IGJvb2xlYW4gcG91ciBmaWx0cmVyIGxlcyBiYW5zXG4tIG11dGF0aW9uIGNoYW5nZXIgbGUgcGxhbiBkJ3VuIHVzZXIgKHNhbnMgcGF5ZXIgZHUgY291cClcbi0gcXVlcnkgcG91ciByZW52b3llciBsZXMgYXBwcyBkJ3VuIHVzZXJcbi0gcXVlcnkgcG91ciBkb25uZXIgbGVzIGxpbWl0ZXMgZCd1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgZG9ubmVyIGxlcyByZXBvcnRzIGQndW4gdXNlclxuLSBtdXRhdGlvbiBwb3VyIGJhbiB1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgZ2V0IGxlcyBiYW5zIGQndW4gdXNlclxuLSBtdXRhdGlvbiBwb3VyIGRlbGV0ZSB1biB1c2VyIChkw6lqw6AgZXhpc3RhbnQ/KVxuLSBtdXRhdGlvbiBjaGFuZ2VyIGxlIHJvbGUgZHUgdXNlciAodXNlci9hZG1pbilcbi0gbXV0YXRpb24gcG91ciBkw6ljbyB1bmUgb3UgZGVzIHNlc3Npb25zIG1ldGEgb3UgYXBwIGQndW4gdXNlclxuLSBxdWVyeSBhZmZpY2hlciBsZXMgc2Vzc2lvbnMgbWV0YSBvdSBhcHAgZCd1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgYWZmaWNoZXIgZGVzIGluZm9zIHN1ciBsZSBjbG91ZCBkJ3VuIHVzZXJcbi0gbXV0YXRpb24gcG91ciBkZWxldGUsIHJlc3RvcmUsIGRlbGV0ZSB0cmFzaCwgZGFucyBsZSBjbG91ZCBkJ3VuIHVzZXJcbi0gcXVlcnkgcG91ciBhZmZpY2hlciBsZXMgaW5mb3Mgc3VyIGxlcyBtYWlscyBkJ3VuIHVzZXJcbi0gbXV0YXRpb24gcG91ciBkZWxldGUsIHJlc3RvcmUsIGRlbGV0ZSB0cmFzaCwgZGFucyBsZXMgbWFpbHMgZCd1biB1c2VyXG4tIHF1ZXJ5IHBvdXIgYWZmaWNoZXIgbGVzIGxpbWl0ZXMgbWF4IGV0IGFjdHVlbHMgZCd1biB1c2VyXG4tIHF1ZXJ5IGRlIHN0YXRzP1xuKi9cblxuZXhwb3J0IHR5cGUgVXNlckFkbWluUGFuZWwgPSBVc2VyPHsgd2l0aFB1YmxpY0tleTogZmFsc2UgfT47XG5jb25zdCB1c2VyU2VsZWN0b3IgPSB7XG4gIGlkOiB0cnVlLFxuICBmaXJzdG5hbWU6IHRydWUsXG4gIGxhc3RuYW1lOiB0cnVlLFxuICBsYW5nOiB0cnVlLFxuICBlbWFpbDogdHJ1ZSxcbiAgcGhvbmU6IHRydWUsXG4gIHJvbGU6IHRydWUsXG4gIGRlbGV0ZWRBdDogdHJ1ZSxcbiAgbGFzdExvZ2luOiB0cnVlXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY2xhc3MgQWRtaW5TZWNyZWN5Q2xpZW50IGV4dGVuZHMgQmFzZUNsaWVudCB7XG4gIGFzeW5jIHVzZXJMaXN0KFxuICAgIHNlYXJjaD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxTdWNjZXNzUmVzcG9uc2U8VXNlckFkbWluUGFuZWxbXT4gfCBFcnJvckFjY2Vzc0RlbmllZCB8IG51bGw+IHtcbiAgICBjb25zdCB7IHVzZXJMaXN0IH0gPSBhd2FpdCB0aGlzLmNsaWVudChcInF1ZXJ5XCIsIHtcbiAgICAgIHNjYWxhcnM6IHtcbiAgICAgICAgRGF0ZVRpbWU6IHtcbiAgICAgICAgICBkZWNvZGU6IChlOiB1bmtub3duKSA9PiBuZXcgRGF0ZShlIGFzIHN0cmluZyksXG4gICAgICAgICAgZW5jb2RlOiAoZTogdW5rbm93bikgPT4gKGUgYXMgRGF0ZSkudG9JU09TdHJpbmcoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkoe1xuICAgICAgdXNlckxpc3Q6IFtcbiAgICAgICAge1xuICAgICAgICAgIHNlYXJjaFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBVc2VyTGlzdFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICB1c2VyTGlzdDogdXNlclNlbGVjdG9yXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIXVzZXJMaXN0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodXNlckxpc3QuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gdXNlckxpc3Q7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiB1c2VyTGlzdC51c2VyTGlzdFxuICAgIH07XG4gIH1cblxuICBhc3luYyBjaGFuZ2VVc2VyUGxhbihcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBwbGFuOiBQbGFuS2luZFxuICApOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxVc2VyQWRtaW5QYW5lbD4gfCBFcnJvckFjY2Vzc0RlbmllZCB8IG51bGw+IHtcbiAgICBjb25zdCB7IGNoYW5nZVVzZXJQbGFuIH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIsIHtcbiAgICAgIHNjYWxhcnM6IHtcbiAgICAgICAgRGF0ZVRpbWU6IHtcbiAgICAgICAgICBkZWNvZGU6IChlOiB1bmtub3duKSA9PiBuZXcgRGF0ZShlIGFzIHN0cmluZyksXG4gICAgICAgICAgZW5jb2RlOiAoZTogdW5rbm93bikgPT4gKGUgYXMgRGF0ZSkudG9JU09TdHJpbmcoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkoe1xuICAgICAgY2hhbmdlVXNlclBsYW46IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICBwbGFuXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIENoYW5nZVVzZXJQbGFuUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGNoYW5nZVVzZXJQbGFuOiB1c2VyU2VsZWN0b3JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghY2hhbmdlVXNlclBsYW4pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VVc2VyUGxhbi5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBjaGFuZ2VVc2VyUGxhbjtcbiAgICB9XG5cbiAgICBpZiAoIWNoYW5nZVVzZXJQbGFuLmNoYW5nZVVzZXJQbGFuKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IGNoYW5nZVVzZXJQbGFuLmNoYW5nZVVzZXJQbGFuXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VjcmVjeUFkbWluQ2xpZW50KFxuICBlbnY6IFNlY3JlY3lFbnYsXG4gIHNlc3Npb24/OiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBBZG1pblNlY3JlY3lDbGllbnQgfCBudWxsIHtcbiAgY29uc3QgdXNlclNlc3Npb24gPSBzdG9yZUJ1ZGR5PHN0cmluZz4oYHNlY3JlY3kudXNlcl9zZXNzaW9uYCwgc2Vzc2lvbikuaW5pdChcbiAgICBcIlwiXG4gICk7XG4gIGNvbnN0IHVhU2Vzc2lvbiA9IHVzZXJTZXNzaW9uLmxvYWQoKTtcbiAgaWYgKHVhU2Vzc2lvbiA9PT0gXCJcIikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBBZG1pblNlY3JlY3lDbGllbnQodWFTZXNzaW9uLCBlbnYpO1xufVxuIl0sIm1hcHBp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
@@ -1,5 +1,5 @@
1
1
  import type { KeyPair } from "../../crypto/index.js";
2
- import type { GQLFile, InternalFile, File } from "../types/index.js";
2
+ import type { GQLFile, InternalFile, FileMetadata } from "../types/index.js";
3
3
  export declare function gqlFileToInternal(gql: GQLFile, keyPair: KeyPair): InternalFile;
4
- export declare function internalFileToFile(internal: InternalFile): File;
5
- export declare function gqlFileToExternal(gql: GQLFile, keyPair: KeyPair): File;
4
+ export declare function internalFileToFile(internal: InternalFile): FileMetadata;
5
+ export declare function gqlFileToExternal(gql: GQLFile, keyPair: KeyPair): FileMetadata;
@@ -1,39 +1,34 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
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; }
4
-
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
-
7
1
  import { filesCache } from "../../cache.js";
8
2
  import { decryptCryptoBox } from "../../crypto/index.js";
9
3
  import { sodium } from "../../sodium.js";
10
4
  export function gqlFileToInternal(gql, keyPair) {
11
- var _gql$user;
5
+ if (!gql.access || !gql.access.sharedBy.keyPair) {
6
+ throw "File " + gql.id + " doesn't have access";
7
+ }
12
8
 
13
- var file = _objectSpread(_objectSpread({}, gql), {}, {
9
+ const file = {
10
+ id: gql.id,
11
+ md5: gql.md5,
12
+ md5Encrypted: gql.md5Encrypted,
14
13
  createdAt: new Date(gql.createdAt),
15
14
  size: BigInt(gql.size),
16
15
  sizeBefore: BigInt(gql.sizeBefore),
17
- user: null
18
- });
19
-
20
- if ((_gql$user = gql.user) != null && _gql$user.userApp.keyPair) {
21
- file.user = _objectSpread(_objectSpread({}, gql.user), {}, {
22
- key: sodium.to_hex(decryptCryptoBox(sodium.from_hex(gql.user.key), gql.user.userApp.keyPair.pub, keyPair.privateKey))
23
- });
24
- }
25
-
16
+ key: sodium.to_hex(decryptCryptoBox(sodium.from_hex(gql.access.key), gql.access.sharedBy.keyPair.pub, keyPair.privateKey))
17
+ };
26
18
  filesCache.set(file.id, file);
27
19
  return file;
28
20
  }
29
21
  export function internalFileToFile(internal) {
30
- var file = _objectSpread({}, internal); // @ts-ignore
31
-
32
-
33
- delete file.user;
34
- return file;
22
+ return {
23
+ id: internal.id,
24
+ md5: internal.md5,
25
+ md5Encrypted: internal.md5Encrypted,
26
+ createdAt: internal.createdAt,
27
+ size: internal.size,
28
+ sizeBefore: internal.sizeBefore
29
+ };
35
30
  }
36
31
  export function gqlFileToExternal(gql, keyPair) {
37
32
  return internalFileToFile(gqlFileToInternal(gql, keyPair));
38
33
  }
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9maWxlLnRzIl0sIm5hbWVzIjpbImZpbGVzQ2FjaGUiLCJkZWNyeXB0Q3J5cHRvQm94Iiwic29kaXVtIiwiZ3FsRmlsZVRvSW50ZXJuYWwiLCJncWwiLCJrZXlQYWlyIiwiZmlsZSIsImNyZWF0ZWRBdCIsIkRhdGUiLCJzaXplIiwiQmlnSW50Iiwic2l6ZUJlZm9yZSIsInVzZXIiLCJ1c2VyQXBwIiwia2V5IiwidG9faGV4IiwiZnJvbV9oZXgiLCJwdWIiLCJwcml2YXRlS2V5Iiwic2V0IiwiaWQiLCJpbnRlcm5hbEZpbGVUb0ZpbGUiLCJpbnRlcm5hbCIsImdxbEZpbGVUb0V4dGVybmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxVQUFULFFBQTJCLGdCQUEzQjtBQUVBLFNBQVNDLGdCQUFULFFBQWlDLHVCQUFqQztBQUNBLFNBQVNDLE1BQVQsUUFBdUIsaUJBQXZCO0FBR0EsT0FBTyxTQUFTQyxpQkFBVCxDQUNMQyxHQURLLEVBRUxDLE9BRkssRUFHUztBQUFBOztBQUNkLE1BQU1DLElBQWtCLG1DQUNuQkYsR0FEbUI7QUFFdEJHLElBQUFBLFNBQVMsRUFBRSxJQUFJQyxJQUFKLENBQVNKLEdBQUcsQ0FBQ0csU0FBYixDQUZXO0FBR3RCRSxJQUFBQSxJQUFJLEVBQUVDLE1BQU0sQ0FBQ04sR0FBRyxDQUFDSyxJQUFMLENBSFU7QUFJdEJFLElBQUFBLFVBQVUsRUFBRUQsTUFBTSxDQUFDTixHQUFHLENBQUNPLFVBQUwsQ0FKSTtBQUt0QkMsSUFBQUEsSUFBSSxFQUFFO0FBTGdCLElBQXhCOztBQVFBLG1CQUFJUixHQUFHLENBQUNRLElBQVIsYUFBSSxVQUFVQyxPQUFWLENBQWtCUixPQUF0QixFQUErQjtBQUM3QkMsSUFBQUEsSUFBSSxDQUFDTSxJQUFMLG1DQUNLUixHQUFHLENBQUNRLElBRFQ7QUFFRUUsTUFBQUEsR0FBRyxFQUFFWixNQUFNLENBQUNhLE1BQVAsQ0FDSGQsZ0JBQWdCLENBQ2RDLE1BQU0sQ0FBQ2MsUUFBUCxDQUFnQlosR0FBRyxDQUFDUSxJQUFKLENBQVNFLEdBQXpCLENBRGMsRUFFZFYsR0FBRyxDQUFDUSxJQUFKLENBQVNDLE9BQVQsQ0FBaUJSLE9BQWpCLENBQXlCWSxHQUZYLEVBR2RaLE9BQU8sQ0FBQ2EsVUFITSxDQURiO0FBRlA7QUFVRDs7QUFDRGxCLEVBQUFBLFVBQVUsQ0FBQ21CLEdBQVgsQ0FBZWIsSUFBSSxDQUFDYyxFQUFwQixFQUF3QmQsSUFBeEI7QUFDQSxTQUFPQSxJQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNlLGtCQUFULENBQTRCQyxRQUE1QixFQUEwRDtBQUMvRCxNQUFNaEIsSUFBVSxxQkFBUWdCLFFBQVIsQ0FBaEIsQ0FEK0QsQ0FFL0Q7OztBQUNBLFNBQU9oQixJQUFJLENBQUNNLElBQVo7QUFDQSxTQUFPTixJQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNpQixpQkFBVCxDQUEyQm5CLEdBQTNCLEVBQXlDQyxPQUF6QyxFQUFpRTtBQUN0RSxTQUFPZ0Isa0JBQWtCLENBQUNsQixpQkFBaUIsQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLENBQWxCLENBQXpCO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWxlc0NhY2hlIH0gZnJvbSBcIi4uLy4uL2NhY2hlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHsgc29kaXVtIH0gZnJvbSBcIi4uLy4uL3NvZGl1bS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBHUUxGaWxlLCBJbnRlcm5hbEZpbGUsIEZpbGUgfSBmcm9tIFwiLi4vdHlwZXMvaW5kZXguanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdxbEZpbGVUb0ludGVybmFsKFxuICBncWw6IEdRTEZpbGUsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IEludGVybmFsRmlsZSB7XG4gIGNvbnN0IGZpbGU6IEludGVybmFsRmlsZSA9IHtcbiAgICAuLi5ncWwsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0KSxcbiAgICBzaXplOiBCaWdJbnQoZ3FsLnNpemUpLFxuICAgIHNpemVCZWZvcmU6IEJpZ0ludChncWwuc2l6ZUJlZm9yZSksXG4gICAgdXNlcjogbnVsbFxuICB9O1xuXG4gIGlmIChncWwudXNlcj8udXNlckFwcC5rZXlQYWlyKSB7XG4gICAgZmlsZS51c2VyID0ge1xuICAgICAgLi4uZ3FsLnVzZXIsXG4gICAgICBrZXk6IHNvZGl1bS50b19oZXgoXG4gICAgICAgIGRlY3J5cHRDcnlwdG9Cb3goXG4gICAgICAgICAgc29kaXVtLmZyb21faGV4KGdxbC51c2VyLmtleSksXG4gICAgICAgICAgZ3FsLnVzZXIudXNlckFwcC5rZXlQYWlyLnB1YixcbiAgICAgICAgICBrZXlQYWlyLnByaXZhdGVLZXlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH07XG4gIH1cbiAgZmlsZXNDYWNoZS5zZXQoZmlsZS5pZCwgZmlsZSk7XG4gIHJldHVybiBmaWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxGaWxlVG9GaWxlKGludGVybmFsOiBJbnRlcm5hbEZpbGUpOiBGaWxlIHtcbiAgY29uc3QgZmlsZTogRmlsZSA9IHsgLi4uaW50ZXJuYWwgfTtcbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgZmlsZS51c2VyO1xuICByZXR1cm4gZmlsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdxbEZpbGVUb0V4dGVybmFsKGdxbDogR1FMRmlsZSwga2V5UGFpcjogS2V5UGFpcik6IEZpbGUge1xuICByZXR1cm4gaW50ZXJuYWxGaWxlVG9GaWxlKGdxbEZpbGVUb0ludGVybmFsKGdxbCwga2V5UGFpcikpO1xufVxuIl19
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWxlc0NhY2hlIiwiZGVjcnlwdENyeXB0b0JveCIsInNvZGl1bSIsImdxbEZpbGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsInNoYXJlZEJ5IiwiaWQiLCJmaWxlIiwibWQ1IiwibWQ1RW5jcnlwdGVkIiwiY3JlYXRlZEF0IiwiRGF0ZSIsInNpemUiLCJCaWdJbnQiLCJzaXplQmVmb3JlIiwia2V5IiwidG9faGV4IiwiZnJvbV9oZXgiLCJwdWIiLCJwcml2YXRlS2V5Iiwic2V0IiwiaW50ZXJuYWxGaWxlVG9GaWxlIiwiaW50ZXJuYWwiLCJncWxGaWxlVG9FeHRlcm5hbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9maWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGVzQ2FjaGUgfSBmcm9tIFwiLi4vLi4vY2FjaGUuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5UGFpciB9IGZyb20gXCIuLi8uLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB7IGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdRTEZpbGUsIEludGVybmFsRmlsZSwgRmlsZU1ldGFkYXRhIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBncWxGaWxlVG9JbnRlcm5hbChcbiAgZ3FsOiBHUUxGaWxlLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBJbnRlcm5hbEZpbGUge1xuICBpZiAoIWdxbC5hY2Nlc3MgfHwgIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgIHRocm93IGBGaWxlICR7Z3FsLmlkfSBkb2Vzbid0IGhhdmUgYWNjZXNzYDtcbiAgfVxuXG4gIGNvbnN0IGZpbGU6IEludGVybmFsRmlsZSA9IHtcbiAgICBpZDogZ3FsLmlkLFxuICAgIG1kNTogZ3FsLm1kNSxcbiAgICBtZDVFbmNyeXB0ZWQ6IGdxbC5tZDVFbmNyeXB0ZWQsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgc2l6ZTogQmlnSW50KGdxbC5zaXplIGFzIHN0cmluZyksXG4gICAgc2l6ZUJlZm9yZTogQmlnSW50KGdxbC5zaXplQmVmb3JlIGFzIHN0cmluZyksXG4gICAga2V5OiBzb2RpdW0udG9faGV4KFxuICAgICAgZGVjcnlwdENyeXB0b0JveChcbiAgICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3Mua2V5KSxcbiAgICAgICAgZ3FsLmFjY2Vzcy5zaGFyZWRCeS5rZXlQYWlyLnB1YixcbiAgICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgICApXG4gICAgKVxuICB9O1xuXG4gIGZpbGVzQ2FjaGUuc2V0KGZpbGUuaWQsIGZpbGUpO1xuICByZXR1cm4gZmlsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsRmlsZVRvRmlsZShpbnRlcm5hbDogSW50ZXJuYWxGaWxlKTogRmlsZU1ldGFkYXRhIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogaW50ZXJuYWwuaWQsXG4gICAgbWQ1OiBpbnRlcm5hbC5tZDUsXG4gICAgbWQ1RW5jcnlwdGVkOiBpbnRlcm5hbC5tZDVFbmNyeXB0ZWQsXG4gICAgY3JlYXRlZEF0OiBpbnRlcm5hbC5jcmVhdGVkQXQsXG4gICAgc2l6ZTogaW50ZXJuYWwuc2l6ZSxcbiAgICBzaXplQmVmb3JlOiBpbnRlcm5hbC5zaXplQmVmb3JlXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncWxGaWxlVG9FeHRlcm5hbChcbiAgZ3FsOiBHUUxGaWxlLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBGaWxlTWV0YWRhdGEge1xuICByZXR1cm4gaW50ZXJuYWxGaWxlVG9GaWxlKGdxbEZpbGVUb0ludGVybmFsKGdxbCwga2V5UGFpcikpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFULFFBQTJCLGdCQUEzQjtBQUVBLFNBQVNDLGdCQUFULFFBQWlDLHVCQUFqQztBQUNBLFNBQVNDLE1BQVQsUUFBdUIsaUJBQXZCO0FBR0EsT0FBTyxTQUFTQyxpQkFBVCxDQUNMQyxHQURLLEVBRUxDLE9BRkssRUFHUztFQUNkLElBQUksQ0FBQ0QsR0FBRyxDQUFDRSxNQUFMLElBQWUsQ0FBQ0YsR0FBRyxDQUFDRSxNQUFKLENBQVdDLFFBQVgsQ0FBb0JGLE9BQXhDLEVBQWlEO0lBQy9DLGdCQUFjRCxHQUFHLENBQUNJLEVBQWxCO0VBQ0Q7O0VBRUQsTUFBTUMsSUFBa0IsR0FBRztJQUN6QkQsRUFBRSxFQUFFSixHQUFHLENBQUNJLEVBRGlCO0lBRXpCRSxHQUFHLEVBQUVOLEdBQUcsQ0FBQ00sR0FGZ0I7SUFHekJDLFlBQVksRUFBRVAsR0FBRyxDQUFDTyxZQUhPO0lBSXpCQyxTQUFTLEVBQUUsSUFBSUMsSUFBSixDQUFTVCxHQUFHLENBQUNRLFNBQWIsQ0FKYztJQUt6QkUsSUFBSSxFQUFFQyxNQUFNLENBQUNYLEdBQUcsQ0FBQ1UsSUFBTCxDQUxhO0lBTXpCRSxVQUFVLEVBQUVELE1BQU0sQ0FBQ1gsR0FBRyxDQUFDWSxVQUFMLENBTk87SUFPekJDLEdBQUcsRUFBRWYsTUFBTSxDQUFDZ0IsTUFBUCxDQUNIakIsZ0JBQWdCLENBQ2RDLE1BQU0sQ0FBQ2lCLFFBQVAsQ0FBZ0JmLEdBQUcsQ0FBQ0UsTUFBSixDQUFXVyxHQUEzQixDQURjLEVBRWRiLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxRQUFYLENBQW9CRixPQUFwQixDQUE0QmUsR0FGZCxFQUdkZixPQUFPLENBQUNnQixVQUhNLENBRGI7RUFQb0IsQ0FBM0I7RUFnQkFyQixVQUFVLENBQUNzQixHQUFYLENBQWViLElBQUksQ0FBQ0QsRUFBcEIsRUFBd0JDLElBQXhCO0VBQ0EsT0FBT0EsSUFBUDtBQUNEO0FBRUQsT0FBTyxTQUFTYyxrQkFBVCxDQUE0QkMsUUFBNUIsRUFBa0U7RUFDdkUsT0FBTztJQUNMaEIsRUFBRSxFQUFFZ0IsUUFBUSxDQUFDaEIsRUFEUjtJQUVMRSxHQUFHLEVBQUVjLFFBQVEsQ0FBQ2QsR0FGVDtJQUdMQyxZQUFZLEVBQUVhLFFBQVEsQ0FBQ2IsWUFIbEI7SUFJTEMsU0FBUyxFQUFFWSxRQUFRLENBQUNaLFNBSmY7SUFLTEUsSUFBSSxFQUFFVSxRQUFRLENBQUNWLElBTFY7SUFNTEUsVUFBVSxFQUFFUSxRQUFRLENBQUNSO0VBTmhCLENBQVA7QUFRRDtBQUVELE9BQU8sU0FBU1MsaUJBQVQsQ0FDTHJCLEdBREssRUFFTEMsT0FGSyxFQUdTO0VBQ2QsT0FBT2tCLGtCQUFrQixDQUFDcEIsaUJBQWlCLENBQUNDLEdBQUQsRUFBTUMsT0FBTixDQUFsQixDQUF6QjtBQUNEIn0=
@@ -6,26 +6,26 @@ export function convertInternalMailToExternal(data, keys) {
6
6
  data.type = "draft";
7
7
  }
8
8
 
9
- var mI = data.type === "draft" ? data.mailIntegrityDraft : data.mailIntegrity;
9
+ const mI = data.type === "draft" ? data.mailIntegrityDraft : data.mailIntegrity;
10
10
 
11
11
  if (!mI) {
12
12
  return null;
13
13
  }
14
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
15
+ const pubKey = data.type === "received" ? data.sender.publicKey : keys.publicKey;
16
+ const body = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey));
17
+ const subject = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey));
18
+ const hash = sodium.crypto_generichash(sodium.crypto_generichash_BYTES, JSON.stringify({
19
+ body,
20
+ subject
21
21
  }), mI.hashKey, "hex");
22
22
  return {
23
23
  type: data.type,
24
24
  id: data.id,
25
25
  mailIntegrityId: mI.id,
26
26
  replyTo: (_mI$replyTo = mI.replyTo) == null ? void 0 : _mI$replyTo.id,
27
- body: body,
28
- subject: subject,
27
+ body,
28
+ subject,
29
29
  createdAt: new Date(data.createdAt),
30
30
  deletedAt: data.deletedAt ? new Date(data.deletedAt) : null,
31
31
  openedAt: data.openedAt ? new Date(data.openedAt) : null,
@@ -33,14 +33,14 @@ export function convertInternalMailToExternal(data, keys) {
33
33
  temporaryRecipients: mI.temporaryRecipients,
34
34
  recipients: data.type === "draft" ? mI.recipients : data.recipients,
35
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));
36
+ files: data.files.map(f => {
37
+ const name = sodium.to_string(decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey));
38
38
  return {
39
39
  id: f.file.id,
40
- name: name,
40
+ name,
41
41
  key: f.fileKey
42
42
  };
43
43
  })
44
44
  };
45
45
  }
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9tYWlsLnRzIl0sIm5hbWVzIjpbInNvZGl1bSIsImRlY3J5cHRDcnlwdG9Cb3giLCJjb252ZXJ0SW50ZXJuYWxNYWlsVG9FeHRlcm5hbCIsImRhdGEiLCJrZXlzIiwibWFpbEludGVncml0eURyYWZ0IiwidHlwZSIsIm1JIiwibWFpbEludGVncml0eSIsInB1YktleSIsInNlbmRlciIsInB1YmxpY0tleSIsImJvZHkiLCJ0b19zdHJpbmciLCJmcm9tX2hleCIsInByaXZhdGVLZXkiLCJzdWJqZWN0IiwiaGFzaCIsImNyeXB0b19nZW5lcmljaGFzaCIsImNyeXB0b19nZW5lcmljaGFzaF9CWVRFUyIsIkpTT04iLCJzdHJpbmdpZnkiLCJoYXNoS2V5IiwiaWQiLCJtYWlsSW50ZWdyaXR5SWQiLCJyZXBseVRvIiwiY3JlYXRlZEF0IiwiRGF0ZSIsImRlbGV0ZWRBdCIsIm9wZW5lZEF0IiwiaXNBbHRlcmVkIiwidGVtcG9yYXJ5UmVjaXBpZW50cyIsInJlY2lwaWVudHMiLCJmaWxlcyIsIm1hcCIsImYiLCJuYW1lIiwiZmlsZW5hbWUiLCJmaWxlIiwia2V5IiwiZmlsZUtleSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsTUFBVCxFQUFpQkMsZ0JBQWpCLFFBQXlDLGdCQUF6QztBQUVBLE9BQU8sU0FBU0MsNkJBQVQsQ0FDTEMsSUFESyxFQUVMQyxJQUZLLEVBR1E7QUFBQTs7QUFDYixNQUFJRCxJQUFJLENBQUNFLGtCQUFULEVBQTZCO0FBQzNCRixJQUFBQSxJQUFJLENBQUNHLElBQUwsR0FBWSxPQUFaO0FBQ0Q7O0FBRUQsTUFBTUMsRUFBRSxHQUNOSixJQUFJLENBQUNHLElBQUwsS0FBYyxPQUFkLEdBQXdCSCxJQUFJLENBQUNFLGtCQUE3QixHQUFrREYsSUFBSSxDQUFDSyxhQUR6RDs7QUFHQSxNQUFJLENBQUNELEVBQUwsRUFBUztBQUNQLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQU1FLE1BQU0sR0FDVk4sSUFBSSxDQUFDRyxJQUFMLEtBQWMsVUFBZCxHQUEyQkgsSUFBSSxDQUFDTyxNQUFMLENBQVlDLFNBQXZDLEdBQW1EUCxJQUFJLENBQUNPLFNBRDFEO0FBR0EsTUFBTUMsSUFBSSxHQUFHWixNQUFNLENBQUNhLFNBQVAsQ0FDWFosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUCxDQUFnQlgsSUFBSSxDQUFDUyxJQUFyQixDQUFELEVBQTZCSCxNQUE3QixFQUFxQ0wsSUFBSSxDQUFDVyxVQUExQyxDQURMLENBQWI7QUFJQSxNQUFNQyxPQUFPLEdBQUdoQixNQUFNLENBQUNhLFNBQVAsQ0FDZFosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUCxDQUFnQlgsSUFBSSxDQUFDYSxPQUFyQixDQUFELEVBQWdDUCxNQUFoQyxFQUF3Q0wsSUFBSSxDQUFDVyxVQUE3QyxDQURGLENBQWhCO0FBSUEsTUFBTUUsSUFBSSxHQUFHakIsTUFBTSxDQUFDa0Isa0JBQVAsQ0FDWGxCLE1BQU0sQ0FBQ21CLHdCQURJLEVBRVhDLElBQUksQ0FBQ0MsU0FBTCxDQUFlO0FBQUVULElBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRSSxJQUFBQSxPQUFPLEVBQVBBO0FBQVIsR0FBZixDQUZXLEVBR1hULEVBQUUsQ0FBQ2UsT0FIUSxFQUlYLEtBSlcsQ0FBYjtBQU9BLFNBQU87QUFDTGhCLElBQUFBLElBQUksRUFBRUgsSUFBSSxDQUFDRyxJQUROO0FBRUxpQixJQUFBQSxFQUFFLEVBQUVwQixJQUFJLENBQUNvQixFQUZKO0FBR0xDLElBQUFBLGVBQWUsRUFBRWpCLEVBQUUsQ0FBQ2dCLEVBSGY7QUFJTEUsSUFBQUEsT0FBTyxpQkFBRWxCLEVBQUUsQ0FBQ2tCLE9BQUwscUJBQUUsWUFBWUYsRUFKaEI7QUFLTFgsSUFBQUEsSUFBSSxFQUFKQSxJQUxLO0FBTUxJLElBQUFBLE9BQU8sRUFBUEEsT0FOSztBQU9MVSxJQUFBQSxTQUFTLEVBQUUsSUFBSUMsSUFBSixDQUFTeEIsSUFBSSxDQUFDdUIsU0FBZCxDQVBOO0FBUUxFLElBQUFBLFNBQVMsRUFBRXpCLElBQUksQ0FBQ3lCLFNBQUwsR0FBaUIsSUFBSUQsSUFBSixDQUFTeEIsSUFBSSxDQUFDeUIsU0FBZCxDQUFqQixHQUE0QyxJQVJsRDtBQVNMQyxJQUFBQSxRQUFRLEVBQUUxQixJQUFJLENBQUMwQixRQUFMLEdBQWdCLElBQUlGLElBQUosQ0FBU3hCLElBQUksQ0FBQzBCLFFBQWQsQ0FBaEIsR0FBMEMsSUFUL0M7QUFVTEMsSUFBQUEsU0FBUyxFQUFFYixJQUFJLEtBQUtWLEVBQUUsQ0FBQ1UsSUFWbEI7QUFXTGMsSUFBQUEsbUJBQW1CLEVBQUV4QixFQUFFLENBQUN3QixtQkFYbkI7QUFZTEMsSUFBQUEsVUFBVSxFQUFFN0IsSUFBSSxDQUFDRyxJQUFMLEtBQWMsT0FBZCxHQUF3QkMsRUFBRSxDQUFDeUIsVUFBM0IsR0FBd0M3QixJQUFJLENBQUM2QixVQVpwRDtBQWFMdEIsSUFBQUEsTUFBTSxFQUFFUCxJQUFJLENBQUNPLE1BYlI7QUFjTHVCLElBQUFBLEtBQUssRUFBRTlCLElBQUksQ0FBQzhCLEtBQUwsQ0FBV0MsR0FBWCxDQUFlLFVBQUFDLENBQUMsRUFBSTtBQUN6QixVQUFNQyxJQUFJLEdBQUdwQyxNQUFNLENBQUNhLFNBQVAsQ0FDWFosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUCxDQUFnQnFCLENBQUMsQ0FBQ0UsUUFBbEIsQ0FBRCxFQUE4QjVCLE1BQTlCLEVBQXNDTCxJQUFJLENBQUNXLFVBQTNDLENBREwsQ0FBYjtBQUlBLGFBQU87QUFDTFEsUUFBQUEsRUFBRSxFQUFFWSxDQUFDLENBQUNHLElBQUYsQ0FBT2YsRUFETjtBQUVMYSxRQUFBQSxJQUFJLEVBQUpBLElBRks7QUFHTEcsUUFBQUEsR0FBRyxFQUFFSixDQUFDLENBQUNLO0FBSEYsT0FBUDtBQUtELEtBVk07QUFkRixHQUFQO0FBMEJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1haWwsIE1haWwgfSBmcm9tIFwiLi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IHNvZGl1bSwgZGVjcnlwdENyeXB0b0JveCB9IGZyb20gXCIuLi8uLi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEludGVybmFsTWFpbFRvRXh0ZXJuYWwoXG4gIGRhdGE6IEludGVybmFsTWFpbCxcbiAga2V5czogS2V5UGFpclxuKTogTWFpbCB8IG51bGwge1xuICBpZiAoZGF0YS5tYWlsSW50ZWdyaXR5RHJhZnQpIHtcbiAgICBkYXRhLnR5cGUgPSBcImRyYWZ0XCI7XG4gIH1cblxuICBjb25zdCBtSSA9XG4gICAgZGF0YS50eXBlID09PSBcImRyYWZ0XCIgPyBkYXRhLm1haWxJbnRlZ3JpdHlEcmFmdCA6IGRhdGEubWFpbEludGVncml0eTtcblxuICBpZiAoIW1JKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwdWJLZXkgPVxuICAgIGRhdGEudHlwZSA9PT0gXCJyZWNlaXZlZFwiID8gZGF0YS5zZW5kZXIucHVibGljS2V5IDoga2V5cy5wdWJsaWNLZXk7XG5cbiAgY29uc3QgYm9keSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgZGVjcnlwdENyeXB0b0JveChzb2RpdW0uZnJvbV9oZXgoZGF0YS5ib2R5KSwgcHViS2V5LCBrZXlzLnByaXZhdGVLZXkpXG4gICk7XG5cbiAgY29uc3Qgc3ViamVjdCA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgZGVjcnlwdENyeXB0b0JveChzb2RpdW0uZnJvbV9oZXgoZGF0YS5zdWJqZWN0KSwgcHViS2V5LCBrZXlzLnByaXZhdGVLZXkpXG4gICk7XG5cbiAgY29uc3QgaGFzaCA9IHNvZGl1bS5jcnlwdG9fZ2VuZXJpY2hhc2goXG4gICAgc29kaXVtLmNyeXB0b19nZW5lcmljaGFzaF9CWVRFUyxcbiAgICBKU09OLnN0cmluZ2lmeSh7IGJvZHksIHN1YmplY3QgfSksXG4gICAgbUkuaGFzaEtleSxcbiAgICBcImhleFwiXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgaWQ6IGRhdGEuaWQsXG4gICAgbWFpbEludGVncml0eUlkOiBtSS5pZCxcbiAgICByZXBseVRvOiBtSS5yZXBseVRvPy5pZCxcbiAgICBib2R5LFxuICAgIHN1YmplY3QsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShkYXRhLmNyZWF0ZWRBdCksXG4gICAgZGVsZXRlZEF0OiBkYXRhLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGRhdGEuZGVsZXRlZEF0KSA6IG51bGwsXG4gICAgb3BlbmVkQXQ6IGRhdGEub3BlbmVkQXQgPyBuZXcgRGF0ZShkYXRhLm9wZW5lZEF0KSA6IG51bGwsXG4gICAgaXNBbHRlcmVkOiBoYXNoICE9PSBtSS5oYXNoLFxuICAgIHRlbXBvcmFyeVJlY2lwaWVudHM6IG1JLnRlbXBvcmFyeVJlY2lwaWVudHMsXG4gICAgcmVjaXBpZW50czogZGF0YS50eXBlID09PSBcImRyYWZ0XCIgPyBtSS5yZWNpcGllbnRzIDogZGF0YS5yZWNpcGllbnRzLFxuICAgIHNlbmRlcjogZGF0YS5zZW5kZXIsXG4gICAgZmlsZXM6IGRhdGEuZmlsZXMubWFwKGYgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGYuZmlsZW5hbWUpLCBwdWJLZXksIGtleXMucHJpdmF0ZUtleSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBmLmZpbGUuaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGtleTogZi5maWxlS2V5XG4gICAgICB9O1xuICAgIH0pXG4gIH07XG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94IiwiY29udmVydEludGVybmFsTWFpbFRvRXh0ZXJuYWwiLCJkYXRhIiwia2V5cyIsIm1haWxJbnRlZ3JpdHlEcmFmdCIsInR5cGUiLCJtSSIsIm1haWxJbnRlZ3JpdHkiLCJwdWJLZXkiLCJzZW5kZXIiLCJwdWJsaWNLZXkiLCJib2R5IiwidG9fc3RyaW5nIiwiZnJvbV9oZXgiLCJwcml2YXRlS2V5Iiwic3ViamVjdCIsImhhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2hfQllURVMiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFzaEtleSIsImlkIiwibWFpbEludGVncml0eUlkIiwicmVwbHlUbyIsImNyZWF0ZWRBdCIsIkRhdGUiLCJkZWxldGVkQXQiLCJvcGVuZWRBdCIsImlzQWx0ZXJlZCIsInRlbXBvcmFyeVJlY2lwaWVudHMiLCJyZWNpcGllbnRzIiwiZmlsZXMiLCJtYXAiLCJmIiwibmFtZSIsImZpbGVuYW1lIiwiZmlsZSIsImtleSIsImZpbGVLZXkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbWFpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTWFpbCwgTWFpbCB9IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgc29kaXVtLCBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0SW50ZXJuYWxNYWlsVG9FeHRlcm5hbChcbiAgZGF0YTogSW50ZXJuYWxNYWlsLFxuICBrZXlzOiBLZXlQYWlyXG4pOiBNYWlsIHwgbnVsbCB7XG4gIGlmIChkYXRhLm1haWxJbnRlZ3JpdHlEcmFmdCkge1xuICAgIGRhdGEudHlwZSA9IFwiZHJhZnRcIjtcbiAgfVxuXG4gIGNvbnN0IG1JID1cbiAgICBkYXRhLnR5cGUgPT09IFwiZHJhZnRcIiA/IGRhdGEubWFpbEludGVncml0eURyYWZ0IDogZGF0YS5tYWlsSW50ZWdyaXR5O1xuXG4gIGlmICghbUkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHB1YktleSA9XG4gICAgZGF0YS50eXBlID09PSBcInJlY2VpdmVkXCIgPyBkYXRhLnNlbmRlci5wdWJsaWNLZXkgOiBrZXlzLnB1YmxpY0tleTtcblxuICBjb25zdCBib2R5ID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICBkZWNyeXB0Q3J5cHRvQm94KHNvZGl1bS5mcm9tX2hleChkYXRhLmJvZHkpLCBwdWJLZXksIGtleXMucHJpdmF0ZUtleSlcbiAgKTtcblxuICBjb25zdCBzdWJqZWN0ID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICBkZWNyeXB0Q3J5cHRvQm94KHNvZGl1bS5mcm9tX2hleChkYXRhLnN1YmplY3QpLCBwdWJLZXksIGtleXMucHJpdmF0ZUtleSlcbiAgKTtcblxuICBjb25zdCBoYXNoID0gc29kaXVtLmNyeXB0b19nZW5lcmljaGFzaChcbiAgICBzb2RpdW0uY3J5cHRvX2dlbmVyaWNoYXNoX0JZVEVTLFxuICAgIEpTT04uc3RyaW5naWZ5KHsgYm9keSwgc3ViamVjdCB9KSxcbiAgICBtSS5oYXNoS2V5LFxuICAgIFwiaGV4XCJcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6IGRhdGEudHlwZSxcbiAgICBpZDogZGF0YS5pZCxcbiAgICBtYWlsSW50ZWdyaXR5SWQ6IG1JLmlkLFxuICAgIHJlcGx5VG86IG1JLnJlcGx5VG8/LmlkLFxuICAgIGJvZHksXG4gICAgc3ViamVjdCxcbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKGRhdGEuY3JlYXRlZEF0KSxcbiAgICBkZWxldGVkQXQ6IGRhdGEuZGVsZXRlZEF0ID8gbmV3IERhdGUoZGF0YS5kZWxldGVkQXQpIDogbnVsbCxcbiAgICBvcGVuZWRBdDogZGF0YS5vcGVuZWRBdCA/IG5ldyBEYXRlKGRhdGEub3BlbmVkQXQpIDogbnVsbCxcbiAgICBpc0FsdGVyZWQ6IGhhc2ggIT09IG1JLmhhc2gsXG4gICAgdGVtcG9yYXJ5UmVjaXBpZW50czogbUkudGVtcG9yYXJ5UmVjaXBpZW50cyxcbiAgICByZWNpcGllbnRzOiBkYXRhLnR5cGUgPT09IFwiZHJhZnRcIiA/IG1JLnJlY2lwaWVudHMgOiBkYXRhLnJlY2lwaWVudHMsXG4gICAgc2VuZGVyOiBkYXRhLnNlbmRlcixcbiAgICBmaWxlczogZGF0YS5maWxlcy5tYXAoZiA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgICAgZGVjcnlwdENyeXB0b0JveChzb2RpdW0uZnJvbV9oZXgoZi5maWxlbmFtZSksIHB1YktleSwga2V5cy5wcml2YXRlS2V5KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGYuZmlsZS5pZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAga2V5OiBmLmZpbGVLZXlcbiAgICAgIH07XG4gICAgfSlcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsTUFBVCxFQUFpQkMsZ0JBQWpCLFFBQXlDLGdCQUF6QztBQUVBLE9BQU8sU0FBU0MsNkJBQVQsQ0FDTEMsSUFESyxFQUVMQyxJQUZLLEVBR1E7RUFBQTs7RUFDYixJQUFJRCxJQUFJLENBQUNFLGtCQUFULEVBQTZCO0lBQzNCRixJQUFJLENBQUNHLElBQUwsR0FBWSxPQUFaO0VBQ0Q7O0VBRUQsTUFBTUMsRUFBRSxHQUNOSixJQUFJLENBQUNHLElBQUwsS0FBYyxPQUFkLEdBQXdCSCxJQUFJLENBQUNFLGtCQUE3QixHQUFrREYsSUFBSSxDQUFDSyxhQUR6RDs7RUFHQSxJQUFJLENBQUNELEVBQUwsRUFBUztJQUNQLE9BQU8sSUFBUDtFQUNEOztFQUVELE1BQU1FLE1BQU0sR0FDVk4sSUFBSSxDQUFDRyxJQUFMLEtBQWMsVUFBZCxHQUEyQkgsSUFB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
@@ -0,0 +1,9 @@
1
+ import type { KeyPair } from "../../crypto/index.js";
2
+ import type { Node } from "../types/index.js";
3
+ import type { GQLNode, InternalNode, GQLNodeFull, InternalNodeFull, NodeFull } from "../types/index.js";
4
+ export declare function gqlNodeToInternal(gql: GQLNode, keyPair: KeyPair): Promise<InternalNode>;
5
+ export declare function gqlNodeFullToInternalFull(gql: GQLNodeFull, keyPair: KeyPair): Promise<InternalNodeFull>;
6
+ export declare function internalNodeToNode(internal: InternalNode): Node;
7
+ export declare function internalNodeFullToNodeFull(internal: InternalNodeFull): NodeFull;
8
+ export declare function gqlNodeToExternalNodeFull(gql: GQLNodeFull, keyPair: KeyPair): Promise<NodeFull>;
9
+ export declare function gqlNodeToExternal(gql: GQLNode, keyPair: KeyPair): Promise<Node>;
@@ -0,0 +1,101 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
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; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
7
+ import { sodium } from "../../sodium.js";
8
+ import { decryptCryptoBox } from "../../crypto/index.js";
9
+ import { nodesCache } from "../../cache.js";
10
+ import { decryptSecretstream } from "../../crypto/file.js";
11
+ import { gqlFileToInternal, internalFileToFile } from "./file.js";
12
+ export async function gqlNodeToInternal(gql, keyPair) {
13
+ if (!gql.access) {
14
+ throw "Can't access Node " + gql.id;
15
+ }
16
+
17
+ const internal = {
18
+ id: gql.id,
19
+ type: gql.type,
20
+ access: gql.access,
21
+ name: gql.name,
22
+ isFavorite: gql.isFavorite,
23
+ breadcrumb: gql.breadcrumb,
24
+ createdBy: gql.createdBy.user,
25
+ createdAt: new Date(gql.createdAt),
26
+ updatedAt: new Date(gql.updatedAt),
27
+ deletedAt: gql.deletedAt ? new Date(gql.deletedAt) : null,
28
+ users: gql.accesses.map(u => [u.userApp.user, u.rights]),
29
+ history: gql.history.map(f => gqlFileToInternal(f, keyPair))
30
+ };
31
+
32
+ if (gql.current) {
33
+ internal.current = gqlFileToInternal(gql.current, keyPair);
34
+ }
35
+
36
+ internal.access = _objectSpread({}, gql.access);
37
+
38
+ if (gql.access.nameKey) {
39
+ if (!gql.access.sharedBy.keyPair) {
40
+ throw new Error("Can't find keyPair for access");
41
+ }
42
+
43
+ const key = decryptCryptoBox(sodium.from_hex(gql.access.nameKey), gql.createdBy.user.publicKey, keyPair.privateKey);
44
+ internal.name = sodium.to_string(await decryptSecretstream(key, sodium.from_hex(internal.name)));
45
+ internal.access.nameKey = sodium.to_hex(key);
46
+ }
47
+
48
+ for (const b of internal.breadcrumb) {
49
+ if (!b.nameKey) {
50
+ continue;
51
+ }
52
+
53
+ const key = decryptCryptoBox(sodium.from_hex(b.nameKey), b.pubKey, keyPair.privateKey);
54
+ b.nameKey = sodium.to_hex(key);
55
+ b.name = sodium.to_string(await decryptSecretstream(key, sodium.from_hex(b.name)));
56
+ }
57
+
58
+ nodesCache.set(internal.id, internal);
59
+ return internal;
60
+ }
61
+ export async function gqlNodeFullToInternalFull(gql, keyPair) {
62
+ const f = await gqlNodeToInternal(gql, keyPair);
63
+ return _objectSpread(_objectSpread({}, f), {}, {
64
+ parent: gql.parent ? await gqlNodeToInternal(gql.parent, keyPair) : null,
65
+ children: await Promise.all(gql.children.map(s => gqlNodeToInternal(s, keyPair)))
66
+ });
67
+ }
68
+ export function internalNodeToNode(internal) {
69
+ var _node$access;
70
+
71
+ const node = _objectSpread(_objectSpread({}, internal), {}, {
72
+ access: internal.access ? _objectSpread({}, internal.access) : undefined,
73
+ history: internal.history.map(f => internalFileToFile(f))
74
+ });
75
+
76
+ if (internal.current) {
77
+ node.current = internalFileToFile(internal.current);
78
+ }
79
+
80
+ for (const b of node.breadcrumb) {
81
+ // @ts-ignore
82
+ delete b.pubKey;
83
+ } // @ts-ignore
84
+
85
+
86
+ (_node$access = node.access) == null ? true : delete _node$access.nameKey;
87
+ return node;
88
+ }
89
+ export function internalNodeFullToNodeFull(internal) {
90
+ return _objectSpread(_objectSpread({}, internalNodeToNode(internal)), {}, {
91
+ parent: internal.parent ? internalNodeToNode(internal.parent) : null,
92
+ children: internal.children.map(internalNodeToNode)
93
+ });
94
+ }
95
+ export async function gqlNodeToExternalNodeFull(gql, keyPair) {
96
+ return internalNodeFullToNodeFull(await gqlNodeFullToInternalFull(gql, keyPair));
97
+ }
98
+ export async function gqlNodeToExternal(gql, keyPair) {
99
+ return internalNodeToNode(await gqlNodeToInternal(gql, keyPair));
100
+ }
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94Iiwibm9kZXNDYWNoZSIsImRlY3J5cHRTZWNyZXRzdHJlYW0iLCJncWxGaWxlVG9JbnRlcm5hbCIsImludGVybmFsRmlsZVRvRmlsZSIsImdxbE5vZGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsImlkIiwiaW50ZXJuYWwiLCJ0eXBlIiwibmFtZSIsImlzRmF2b3JpdGUiLCJicmVhZGNydW1iIiwiY3JlYXRlZEJ5IiwidXNlciIsImNyZWF0ZWRBdCIsIkRhdGUiLCJ1cGRhdGVkQXQiLCJkZWxldGVkQXQiLCJ1c2VycyIsImFjY2Vzc2VzIiwibWFwIiwidSIsInVzZXJBcHAiLCJyaWdodHMiLCJoaXN0b3J5IiwiZiIsImN1cnJlbnQiLCJuYW1lS2V5Iiwic2hhcmVkQnkiLCJFcnJvciIsImtleSIsImZyb21faGV4IiwicHVibGljS2V5IiwicHJpdmF0ZUtleSIsInRvX3N0cmluZyIsInRvX2hleCIsImIiLCJwdWJLZXkiLCJzZXQiLCJncWxOb2RlRnVsbFRvSW50ZXJuYWxGdWxsIiwicGFyZW50IiwiY2hpbGRyZW4iLCJQcm9taXNlIiwiYWxsIiwicyIsImludGVybmFsTm9kZVRvTm9kZSIsIm5vZGUiLCJ1bmRlZmluZWQiLCJpbnRlcm5hbE5vZGVGdWxsVG9Ob2RlRnVsbCIsImdxbE5vZGVUb0V4dGVybmFsTm9kZUZ1bGwiLCJncWxOb2RlVG9FeHRlcm5hbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9ub2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNvZGl1bSB9IGZyb20gXCIuLi8uLi9zb2RpdW0uanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5UGFpciB9IGZyb20gXCIuLi8uLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB7IGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7IE5vZGUgfSBmcm9tIFwiLi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgR1FMTm9kZSxcbiAgSW50ZXJuYWxOb2RlLFxuICBHUUxOb2RlRnVsbCxcbiAgSW50ZXJuYWxOb2RlRnVsbCxcbiAgTm9kZUZ1bGxcbn0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBub2Rlc0NhY2hlIH0gZnJvbSBcIi4uLy4uL2NhY2hlLmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0U2VjcmV0c3RyZWFtIH0gZnJvbSBcIi4uLy4uL2NyeXB0by9maWxlLmpzXCI7XG5pbXBvcnQgeyBncWxGaWxlVG9JbnRlcm5hbCwgaW50ZXJuYWxGaWxlVG9GaWxlIH0gZnJvbSBcIi4vZmlsZS5qc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsTm9kZVRvSW50ZXJuYWwoXG4gIGdxbDogR1FMTm9kZSxcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxJbnRlcm5hbE5vZGU+IHtcbiAgaWYgKCFncWwuYWNjZXNzKSB7XG4gICAgdGhyb3cgYENhbid0IGFjY2VzcyBOb2RlICR7Z3FsLmlkfWA7XG4gIH1cblxuICBjb25zdCBpbnRlcm5hbDogSW50ZXJuYWxOb2RlID0ge1xuICAgIGlkOiBncWwuaWQsXG4gICAgdHlwZTogZ3FsLnR5cGUsXG4gICAgYWNjZXNzOiBncWwuYWNjZXNzLFxuICAgIG5hbWU6IGdxbC5uYW1lLFxuICAgIGlzRmF2b3JpdGU6IGdxbC5pc0Zhdm9yaXRlLFxuICAgIGJyZWFkY3J1bWI6IGdxbC5icmVhZGNydW1iLFxuICAgIGNyZWF0ZWRCeTogZ3FsLmNyZWF0ZWRCeS51c2VyLFxuICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoZ3FsLmNyZWF0ZWRBdCBhcyBzdHJpbmcpLFxuICAgIHVwZGF0ZWRBdDogbmV3IERhdGUoZ3FsLnVwZGF0ZWRBdCBhcyBzdHJpbmcpLFxuICAgIGRlbGV0ZWRBdDogZ3FsLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGdxbC5kZWxldGVkQXQgYXMgc3RyaW5nKSA6IG51bGwsXG4gICAgdXNlcnM6IGdxbC5hY2Nlc3Nlcy5tYXAodSA9PiBbdS51c2VyQXBwLnVzZXIsIHUucmlnaHRzXSksXG4gICAgaGlzdG9yeTogZ3FsLmhpc3RvcnkubWFwKGYgPT4gZ3FsRmlsZVRvSW50ZXJuYWwoZiwga2V5UGFpcikpXG4gIH07XG5cbiAgaWYgKGdxbC5jdXJyZW50KSB7XG4gICAgaW50ZXJuYWwuY3VycmVudCA9IGdxbEZpbGVUb0ludGVybmFsKGdxbC5jdXJyZW50LCBrZXlQYWlyKTtcbiAgfVxuXG4gIGludGVybmFsLmFjY2VzcyA9IHsgLi4uZ3FsLmFjY2VzcyB9O1xuXG4gIGlmIChncWwuYWNjZXNzLm5hbWVLZXkpIHtcbiAgICBpZiAoIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBmaW5kIGtleVBhaXIgZm9yIGFjY2Vzc2ApO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3MubmFtZUtleSksXG4gICAgICBncWwuY3JlYXRlZEJ5LnVzZXIucHVibGljS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcbiAgICBpbnRlcm5hbC5uYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgIGF3YWl0IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBzb2RpdW0uZnJvbV9oZXgoaW50ZXJuYWwubmFtZSkpXG4gICAgKTtcblxuICAgIGludGVybmFsLmFjY2Vzcy5uYW1lS2V5ID0gc29kaXVtLnRvX2hleChrZXkpO1xuICB9XG5cbiAgZm9yIChjb25zdCBiIG9mIGludGVybmFsLmJyZWFkY3J1bWIpIHtcbiAgICBpZiAoIWIubmFtZUtleSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IGRlY3J5cHRDcnlwdG9Cb3goXG4gICAgICBzb2RpdW0uZnJvbV9oZXgoYi5uYW1lS2V5KSxcbiAgICAgIGIucHViS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcbiAgICBiLm5hbWVLZXkgPSBzb2RpdW0udG9faGV4KGtleSk7XG5cbiAgICBiLm5hbWUgPSBzb2RpdW0udG9fc3RyaW5nKFxuICAgICAgYXdhaXQgZGVjcnlwdFNlY3JldHN0cmVhbShrZXksIHNvZGl1bS5mcm9tX2hleChiLm5hbWUpKVxuICAgICk7XG4gIH1cblxuICBub2Rlc0NhY2hlLnNldChpbnRlcm5hbC5pZCwgaW50ZXJuYWwpO1xuICByZXR1cm4gaW50ZXJuYWw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBncWxOb2RlRnVsbFRvSW50ZXJuYWxGdWxsKFxuICBncWw6IEdRTE5vZGVGdWxsLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBQcm9taXNlPEludGVybmFsTm9kZUZ1bGw+IHtcbiAgY29uc3QgZiA9IGF3YWl0IGdxbE5vZGVUb0ludGVybmFsKGdxbCwga2V5UGFpcik7XG4gIHJldHVybiB7XG4gICAgLi4uZixcbiAgICBwYXJlbnQ6IGdxbC5wYXJlbnQgPyBhd2FpdCBncWxOb2RlVG9JbnRlcm5hbChncWwucGFyZW50LCBrZXlQYWlyKSA6IG51bGwsXG4gICAgY2hpbGRyZW46IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZ3FsLmNoaWxkcmVuLm1hcChzID0+IGdxbE5vZGVUb0ludGVybmFsKHMsIGtleVBhaXIpKVxuICAgIClcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbDogSW50ZXJuYWxOb2RlKTogTm9kZSB7XG4gIGNvbnN0IG5vZGU6IE5vZGUgPSB7XG4gICAgLi4uaW50ZXJuYWwsXG4gICAgYWNjZXNzOiBpbnRlcm5hbC5hY2Nlc3MgPyB7IC4uLmludGVybmFsLmFjY2VzcyB9IDogdW5kZWZpbmVkLFxuICAgIGhpc3Rvcnk6IGludGVybmFsLmhpc3RvcnkubWFwKGYgPT4gaW50ZXJuYWxGaWxlVG9GaWxlKGYpKVxuICB9O1xuXG4gIGlmIChpbnRlcm5hbC5jdXJyZW50KSB7XG4gICAgbm9kZS5jdXJyZW50ID0gaW50ZXJuYWxGaWxlVG9GaWxlKGludGVybmFsLmN1cnJlbnQpO1xuICB9XG5cbiAgZm9yIChjb25zdCBiIG9mIG5vZGUuYnJlYWRjcnVtYikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkZWxldGUgYi5wdWJLZXk7XG4gIH1cbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgbm9kZS5hY2Nlc3M/Lm5hbWVLZXk7XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwoXG4gIGludGVybmFsOiBJbnRlcm5hbE5vZGVGdWxsXG4pOiBOb2RlRnVsbCB7XG4gIHJldHVybiB7XG4gICAgLi4uaW50ZXJuYWxOb2RlVG9Ob2RlKGludGVybmFsKSxcbiAgICBwYXJlbnQ6IGludGVybmFsLnBhcmVudCA/IGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbC5wYXJlbnQpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogaW50ZXJuYWwuY2hpbGRyZW4ubWFwKGludGVybmFsTm9kZVRvTm9kZSlcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0V4dGVybmFsTm9kZUZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Tm9kZUZ1bGw+IHtcbiAgcmV0dXJuIGludGVybmFsTm9kZUZ1bGxUb05vZGVGdWxsKFxuICAgIGF3YWl0IGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoZ3FsLCBrZXlQYWlyKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsTm9kZVRvRXh0ZXJuYWwoXG4gIGdxbDogR1FMTm9kZSxcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxOb2RlPiB7XG4gIHJldHVybiBpbnRlcm5hbE5vZGVUb05vZGUoYXdhaXQgZ3Fs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