@secrecy/lib 1.0.0-dev.7 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +1 -1
  2. package/{lib → dist}/BaseClient.d.ts +62 -69
  3. package/dist/BaseClient.js +1124 -0
  4. package/{lib → dist}/PopupTools.d.ts +1 -1
  5. package/dist/PopupTools.js +212 -0
  6. package/{lib → dist}/ZeusThunder.d.ts +0 -0
  7. package/dist/ZeusThunder.js +79 -0
  8. package/dist/cache.d.ts +6 -0
  9. package/dist/cache.js +4 -0
  10. package/dist/client/admin/index.d.ts +11 -0
  11. package/dist/client/admin/index.js +110 -0
  12. package/{lib → dist}/client/convert/file.d.ts +3 -3
  13. package/dist/client/convert/file.js +34 -0
  14. package/{lib → dist}/client/convert/mail.d.ts +0 -0
  15. package/dist/client/convert/mail.js +46 -0
  16. package/dist/client/convert/node.d.ts +9 -0
  17. package/dist/client/convert/node.js +101 -0
  18. package/{lib → dist}/client/helpers.d.ts +1 -1
  19. package/dist/client/helpers.js +114 -0
  20. package/dist/client/index.d.ts +164 -0
  21. package/dist/client/index.js +3206 -0
  22. package/{lib → dist}/client/storage.d.ts +0 -0
  23. package/dist/client/storage.js +12 -0
  24. package/dist/client/types/File.d.ts +14 -0
  25. package/dist/client/types/File.js +3 -0
  26. package/{lib → dist}/client/types/Inputs.d.ts +2 -7
  27. package/dist/client/types/Inputs.js +3 -0
  28. package/dist/client/types/Node.d.ts +49 -0
  29. package/dist/client/types/Node.js +3 -0
  30. package/{lib → dist}/client/types/UserAppNotifications.d.ts +1 -1
  31. package/dist/client/types/UserAppNotifications.js +3 -0
  32. package/{lib → dist}/client/types/UserAppSettings.d.ts +0 -1
  33. package/dist/client/types/UserAppSettings.js +3 -0
  34. package/{lib → dist}/client/types/index.d.ts +7 -13
  35. package/dist/client/types/index.js +8 -0
  36. package/dist/client/types/selectors.d.ts +476 -0
  37. package/dist/client/types/selectors.js +125 -0
  38. package/{lib → dist}/crypto/file.d.ts +0 -0
  39. package/dist/crypto/file.js +210 -0
  40. package/{lib → dist}/crypto/index.d.ts +0 -0
  41. package/dist/crypto/index.js +47 -0
  42. package/dist/error.d.ts +30 -0
  43. package/dist/error.js +3 -0
  44. package/{lib → dist}/index.d.ts +4 -3
  45. package/dist/index.js +10 -0
  46. package/{lib → dist}/minify/index.d.ts +0 -0
  47. package/dist/minify/index.js +28 -0
  48. package/{lib → dist}/minify/lz4.d.ts +0 -0
  49. package/dist/minify/lz4.js +627 -0
  50. package/{lib → dist}/sodium.d.ts +0 -0
  51. package/dist/sodium.js +6 -0
  52. package/{lib → dist}/utils/store-buddy.d.ts +0 -0
  53. package/dist/utils/store-buddy.js +65 -0
  54. package/{lib → dist}/utils/time.d.ts +0 -0
  55. package/dist/utils/time.js +14 -0
  56. package/{lib → dist/utils}/utils.d.ts +0 -0
  57. package/dist/utils/utils.js +57 -0
  58. package/{lib → dist}/worker/__mock__/sodium.worker.d.ts +0 -0
  59. package/dist/worker/__mock__/sodium.worker.js +49 -0
  60. package/{lib → dist}/worker/md5.d.ts +0 -0
  61. package/dist/worker/md5.js +25 -0
  62. package/{lib → dist}/worker/sodium.d.ts +0 -0
  63. package/dist/worker/sodium.js +120 -0
  64. package/{lib → dist}/worker/workerCodes.d.ts +0 -0
  65. package/dist/worker/workerCodes.js +3 -0
  66. package/{lib → dist}/zeus/const.d.ts +5 -0
  67. package/dist/zeus/const.js +1230 -0
  68. package/dist/zeus/index.d.ts +4069 -0
  69. package/dist/zeus/index.js +657 -0
  70. package/package.json +64 -57
  71. package/lib/BaseClient.js +0 -1332
  72. package/lib/PopupTools.js +0 -213
  73. package/lib/ZeusThunder.js +0 -112
  74. package/lib/cache.d.ts +0 -7
  75. package/lib/cache.js +0 -5
  76. package/lib/client/convert/file.js +0 -39
  77. package/lib/client/convert/folder.d.ts +0 -8
  78. package/lib/client/convert/folder.js +0 -264
  79. package/lib/client/convert/mail.js +0 -46
  80. package/lib/client/convert/vFile.d.ts +0 -5
  81. package/lib/client/convert/vFile.js +0 -164
  82. package/lib/client/helpers.js +0 -116
  83. package/lib/client/index.d.ts +0 -167
  84. package/lib/client/index.js +0 -3746
  85. package/lib/client/storage.js +0 -12
  86. package/lib/client/types/File.d.ts +0 -21
  87. package/lib/client/types/File.js +0 -2
  88. package/lib/client/types/FilesOnUsersOnApplications.d.ts +0 -9
  89. package/lib/client/types/FilesOnUsersOnApplications.js +0 -2
  90. package/lib/client/types/Folder.d.ts +0 -68
  91. package/lib/client/types/Folder.js +0 -7
  92. package/lib/client/types/Inputs.js +0 -2
  93. package/lib/client/types/UserAppNotifications.js +0 -2
  94. package/lib/client/types/UserAppSettings.js +0 -2
  95. package/lib/client/types/VFile.d.ts +0 -62
  96. package/lib/client/types/VFile.js +0 -4
  97. package/lib/client/types/index.js +0 -9
  98. package/lib/client/types/queries.d.ts +0 -535
  99. package/lib/client/types/queries.js +0 -192
  100. package/lib/crypto/file.js +0 -291
  101. package/lib/crypto/index.js +0 -37
  102. package/lib/index.js +0 -40
  103. package/lib/minify/index.js +0 -28
  104. package/lib/minify/lz4.js +0 -633
  105. package/lib/sodium.js +0 -28
  106. package/lib/utils/store-buddy.js +0 -69
  107. package/lib/utils/time.js +0 -22
  108. package/lib/utils.js +0 -188
  109. package/lib/worker/__mock__/sodium.worker.js +0 -57
  110. package/lib/worker/md5.js +0 -43
  111. package/lib/worker/sodium.js +0 -155
  112. package/lib/worker/workerCodes.js +0 -3
  113. package/lib/zeus/const.js +0 -1643
  114. package/lib/zeus/index.d.ts +0 -26220
  115. package/lib/zeus/index.js +0 -552
@@ -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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
@@ -11,7 +11,7 @@ export declare type HashInfos = {
11
11
  email: boolean;
12
12
  };
13
13
  };
14
- export declare type SecrecyEnv = "dev" | "staging" | "prod";
14
+ export declare type SecrecyEnv = "dev" | "prod";
15
15
  export declare type UseSecrecyParams = Omit<HashInfos, "appUrl"> & {
16
16
  env: SecrecyEnv;
17
17
  session?: boolean | undefined;
@@ -0,0 +1,114 @@
1
+ import { SecrecyClient } from "./index.js";
2
+ import { popup } from "../PopupTools.js";
3
+ import { getStorage } from "./storage.js";
4
+ export function parseInfos() {
5
+ if (!window.location.hash) {
6
+ return null;
7
+ }
8
+
9
+ const hash = window.location.hash.substr(1);
10
+
11
+ try {
12
+ const res = JSON.parse(atob(hash));
13
+ window.location.hash = ""; // TODO Add object content validation
14
+
15
+ return res;
16
+ } catch {
17
+ return null;
18
+ }
19
+ }
20
+ export function getSecrecyClient(env, session) {
21
+ const storage = getStorage(session);
22
+ const uaSession = storage.userAppSession.load();
23
+ const uaKeys = storage.userAppKeys.load();
24
+ const uaJwt = storage.jwt.load();
25
+
26
+ if (!uaSession || !uaKeys || !uaJwt) {
27
+ const infos = parseInfos();
28
+
29
+ if (infos) {
30
+ storage.userAppKeys.save(infos.keys);
31
+ storage.userAppSession.save(infos.uaSession);
32
+ storage.jwt.save(infos.jwt);
33
+ return new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env);
34
+ }
35
+
36
+ return null;
37
+ }
38
+
39
+ return new SecrecyClient(uaSession, uaKeys, uaJwt, env);
40
+ }
41
+ export function login(_temp) {
42
+ let {
43
+ appCode,
44
+ path,
45
+ redirect,
46
+ scopes,
47
+ backPath,
48
+ env,
49
+ session
50
+ } = _temp === void 0 ? {} : _temp;
51
+ return new Promise((resolve, reject) => {
52
+ const appUrl = window.location.origin;
53
+
54
+ if (appCode && !appUrl.includes("localhost")) {
55
+ return reject("Can't use appCode if not in localhost");
56
+ }
57
+
58
+ const client = getSecrecyClient(env);
59
+
60
+ if (!client) {
61
+ const infos = {
62
+ appUrl,
63
+ appCode,
64
+ redirect,
65
+ path,
66
+ scopes,
67
+ backPath
68
+ };
69
+ const data = btoa(JSON.stringify(infos)).replaceAll("=", "");
70
+ let envStr = "";
71
+
72
+ if (env === "dev") {
73
+ envStr = "dev.";
74
+ }
75
+
76
+ const lang = document.documentElement.lang;
77
+ const url = process.env.NEXT_PUBLIC_SECRECY_API_URL ? "http://localhost:3002" + (lang ? "/" + lang : "") + "/login#" + data : "https://auth." + envStr + "secrecy.me" + (lang ? "/" + lang : "") + "/login#" + data;
78
+
79
+ const validate = infos => {
80
+ const storage = getStorage(session);
81
+ storage.userAppSession.save(infos.uaSession);
82
+ storage.userAppKeys.save(infos.keys);
83
+ storage.jwt.save(infos.jwt);
84
+ return resolve(new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env));
85
+ };
86
+
87
+ if (redirect) {
88
+ const infos = parseInfos();
89
+
90
+ if (infos) {
91
+ return validate(infos);
92
+ } else {
93
+ window.location.href = url;
94
+ return resolve(null);
95
+ }
96
+ } else {
97
+ popup(url, "Secrecy Login", {}, (err, data) => {
98
+ if (err) {
99
+ return reject(err);
100
+ } else {
101
+ const infos = data;
102
+
103
+ if (infos) {
104
+ return validate(infos);
105
+ }
106
+ }
107
+ });
108
+ }
109
+ } else {
110
+ return resolve(client);
111
+ }
112
+ });
113
+ }
114
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWNyZWN5Q2xpZW50IiwicG9wdXAiLCJnZXRTdG9yYWdlIiwicGFyc2VJbmZvcyIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsInN1YnN0ciIsInJlcyIsIkpTT04iLCJwYXJzZSIsImF0b2IiLCJnZXRTZWNyZWN5Q2xpZW50IiwiZW52Iiwic2Vzc2lvbiIsInN0b3JhZ2UiLCJ1YVNlc3Npb24iLCJ1c2VyQXBwU2Vzc2lvbiIsImxvYWQiLCJ1YUtleXMiLCJ1c2VyQXBwS2V5cyIsInVhSnd0Iiwiand0IiwiaW5mb3MiLCJzYXZlIiwia2V5cyIsImxvZ2luIiwiYXBwQ29kZSIsInBhdGgiLCJyZWRpcmVjdCIsInNjb3BlcyIsImJhY2tQYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhcHBVcmwiLCJvcmlnaW4iLCJpbmNsdWRlcyIsImNsaWVudCIsImRhdGEiLCJidG9hIiwic3RyaW5naWZ5IiwicmVwbGFjZUFsbCIsImVudlN0ciIsImxhbmciLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInVybCIsInByb2Nlc3MiLCJORVhUX1BVQkxJQ19TRUNSRUNZX0FQSV9VUkwiLCJ2YWxpZGF0ZSIsImhyZWYiLCJlcnIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2hlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjcmVjeUNsaWVudCB9IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBwb3B1cCB9IGZyb20gXCIuLi9Qb3B1cFRvb2xzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlY3JlY3lVc2VyQXBwIH0gZnJvbSBcIi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiLi9zdG9yYWdlLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUluZm9zKCk6IFNlY3JlY3lVc2VyQXBwIHwgbnVsbCB7XG4gIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpO1xuICB0cnkge1xuICAgIGNvbnN0IHJlcyA9IEpTT04ucGFyc2UoYXRvYihoYXNoKSk7XG4gICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSBcIlwiO1xuICAgIC8vIFRPRE8gQWRkIG9iamVjdCBjb250ZW50IHZhbGlkYXRpb25cbiAgICByZXR1cm4gcmVzO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBIYXNoSW5mb3MgPSB7XG4gIGFwcFVybDogc3RyaW5nO1xuICBiYWNrUGF0aD86IHN0cmluZztcbiAgYXBwQ29kZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHBhdGg/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICByZWRpcmVjdD86IGJvb2xlYW47XG4gIHNjb3Blcz86IHtcbiAgICBlbWFpbDogYm9vbGVhbjtcbiAgfTtcbn07XG5leHBvcnQgdHlwZSBTZWNyZWN5RW52ID0gXCJkZXZcIiB8IFwicHJvZFwiO1xuZXhwb3J0IHR5cGUgVXNlU2VjcmVjeVBhcmFtcyA9IE9taXQ8SGFzaEluZm9zLCBcImFwcFVybFwiPiAmIHtcbiAgZW52OiBTZWNyZWN5RW52O1xuICBzZXNzaW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIFZhbHVlPFQgZXh0ZW5kcyBVc2VTZWNyZWN5UGFyYW1zPiA9IFQgZXh0ZW5kcyB7IHJlZGlyZWN0OiB0cnVlIH1cbiAgPyBTZWNyZWN5Q2xpZW50IHwgbnVsbFxuICA6IFNlY3JlY3lDbGllbnQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWNyZWN5Q2xpZW50KFxuICBlbnY6IFNlY3JlY3lFbnYsXG4gIHNlc3Npb24/OiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBTZWNyZWN5Q2xpZW50IHwgbnVsbCB7XG4gIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKHNlc3Npb24pO1xuICBjb25zdCB1YVNlc3Npb24gPSBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLmxvYWQoKTtcbiAgY29uc3QgdWFLZXlzID0gc3RvcmFnZS51c2VyQXBwS2V5cy5sb2FkKCk7XG4gIGNvbnN0IHVhSnd0ID0gc3RvcmFnZS5qd3QubG9hZCgpO1xuICBpZiAoIXVhU2Vzc2lvbiB8fCAhdWFLZXlzIHx8ICF1YUp3dCkge1xuICAgIGNvbnN0IGluZm9zID0gcGFyc2VJbmZvcygpO1xuICAgIGlmIChpbmZvcykge1xuICAgICAgc3RvcmFnZS51c2VyQXBwS2V5cy5zYXZlKGluZm9zLmtleXMpO1xuICAgICAgc3RvcmFnZS51c2VyQXBwU2Vzc2lvbi5zYXZlKGluZm9zLnVhU2Vzc2lvbik7XG4gICAgICBzdG9yYWdlLmp3dC5zYXZlKGluZm9zLmp3dCk7XG4gICAgICByZXR1cm4gbmV3IFNlY3JlY3lDbGllbnQoaW5mb3MudWFTZXNzaW9uLCBpbmZvcy5rZXlzLCBpbmZvcy5qd3QsIGVudik7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBTZWNyZWN5Q2xpZW50KHVhU2Vzc2lvbiwgdWFLZXlzLCB1YUp3dCwgZW52KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ2luPFQgZXh0ZW5kcyBVc2VTZWNyZWN5UGFyYW1zPihcbiAgeyBhcHBDb2RlLCBwYXRoLCByZWRpcmVjdCwgc2NvcGVzLCBiYWNrUGF0aCwgZW52LCBzZXNzaW9uIH06IFQgPSB7fSBhcyBUXG4pOiBQcm9taXNlPFZhbHVlPFQ+PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgYXBwVXJsID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICBpZiAoYXBwQ29kZSAmJiAhYXBwVXJsLmluY2x1ZGVzKFwibG9jYWxob3N0XCIpKSB7XG4gICAgICByZXR1cm4gcmVqZWN0KFwiQ2FuJ3QgdXNlIGFwcENvZGUgaWYgbm90IGluIGxvY2FsaG9zdFwiKTtcbiAgICB9XG4gICAgY29uc3QgY2xpZW50ID0gZ2V0U2VjcmVjeUNsaWVudChlbnYpO1xuXG4gICAgaWYgKCFjbGllbnQpIHtcbiAgICAgIGNvbnN0IGluZm9zOiBIYXNoSW5mb3MgPSB7XG4gICAgICAgIGFwcFVybCxcbiAgICAgICAgYXBwQ29kZSxcbiAgICAgICAgcmVkaXJlY3QsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHNjb3BlcyxcbiAgICAgICAgYmFja1BhdGhcbiAgICAgIH07XG4gICAgICBjb25zdCBkYXRhID0gYnRvYShKU09OLnN0cmluZ2lmeShpbmZvcykpLnJlcGxhY2VBbGwoXCI9XCIsIFwiXCIpO1xuXG4gICAgICBsZXQgZW52U3RyID0gXCJcIjtcbiAgICAgIGlmIChlbnYgPT09IFwiZGV2XCIpIHtcbiAgICAgICAgZW52U3RyID0gXCJkZXYuXCI7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxhbmcgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZztcblxuICAgICAgY29uc3QgdXJsID0gcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfU0VDUkVDWV9BUElfVVJMXG4gICAgICAgID8gYGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMiR7bGFuZyA/IGAvJHtsYW5nfWAgOiBcIlwifS9sb2dpbiMke2RhdGF9YFxuICAgICAgICA6IGBodHRwczovL2F1dGguJHtlbnZTdHJ9c2VjcmVjeS5tZSR7XG4gICAgICAgICAgICBsYW5nID8gYC8ke2xhbmd9YCA6IFwiXCJcbiAgICAgICAgICB9L2xvZ2luIyR7ZGF0YX1gO1xuXG4gICAgICBjb25zdCB2YWxpZGF0ZSA9IChpbmZvczogU2VjcmVjeVVzZXJBcHApOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2Uoc2Vzc2lvbik7XG4gICAgICAgIHN0b3JhZ2UudXNlckFwcFNlc3Npb24uc2F2ZShpbmZvcy51YVNlc3Npb24pO1xuICAgICAgICBzdG9yYWdlLnVzZXJBcHBLZXlzLnNhdmUoaW5mb3Mua2V5cyk7XG4gICAgICAgIHN0b3JhZ2Uuand0LnNhdmUoaW5mb3Muand0KTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoXG4gICAgICAgICAgbmV3IFNlY3JlY3lDbGllbnQoXG4gICAgICAgICAgICBpbmZvcy51YVNlc3Npb24sXG4gICAgICAgICAgICBpbmZvcy5rZXlzLFxuICAgICAgICAgICAgaW5mb3Muand0LFxuICAgICAgICAgICAgZW52XG4gICAgICAgICAgKSBhcyBWYWx1ZTxUPlxuICAgICAgICApO1xuICAgICAgfTtcblxuICAgICAgaWYgKHJlZGlyZWN0KSB7XG4gICAgICAgIGNvbnN0IGluZm9zID0gcGFyc2VJbmZvcygpO1xuICAgICAgICBpZiAoaW5mb3MpIHtcbiAgICAgICAgICByZXR1cm4gdmFsaWRhdGUoaW5mb3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwgYXMgVmFsdWU8VD4pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3B1cCh1cmwsIFwiU2VjcmVjeSBMb2dpblwiLCB7fSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW5mb3MgPSBkYXRhIGFzIFNlY3JlY3lVc2VyQXBwO1xuICAgICAgICAgICAgaWYgKGluZm9zKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWxpZGF0ZShpbmZvcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc29sdmUoY2xpZW50IGFzIFZhbHVlPFQ+KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxT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
@@ -0,0 +1,164 @@
1
+ import type { MailType, NodeType } from "./../zeus/index";
2
+ import type { DownloadProgress } from "ky";
3
+ import type { FolderSize, SuccessResponse, UserData } from "../BaseClient.js";
4
+ import { BaseClient } from "../BaseClient.js";
5
+ import type { Progress } from "../crypto/file.js";
6
+ import type { ReceivedMail, SentMail, Node, NodeFull, UserAppSettings, UserAppNotifications, FileMetadata as SecrecyFile, WaitingReceivedMail, DraftMail, Mail } from "./types/index.js";
7
+ import type { KeyPair } from "../crypto/index.js";
8
+ import type { SecrecyEnv } from "./helpers.js";
9
+ import type { Rights } from "../zeus/index.js";
10
+ import type { JwtPayload } from "jsonwebtoken";
11
+ import type { ErrorAccessDenied, ErrorNotFound, ErrorBasic, ErrorNotExist, ErrorLimit } from "../error.js";
12
+ export declare type NewMail = {
13
+ body: string;
14
+ subject: string;
15
+ files: {
16
+ id: string;
17
+ name: string;
18
+ }[];
19
+ recipientsIds: string[];
20
+ replyTo?: string | null | undefined;
21
+ };
22
+ export declare type ProgressCallback = (progress: Progress) => Promise<void>;
23
+ export declare class SecrecyClient extends BaseClient {
24
+ #private;
25
+ jwt: string;
26
+ jwtDecoded: JwtPayload;
27
+ constructor(uaSession: string, uaKeys: KeyPair, uaJwt: string, env: SecrecyEnv);
28
+ get publicKey(): string;
29
+ get appUserId(): string;
30
+ addFileToHistory({ fileId, nodeId }: {
31
+ fileId: string;
32
+ nodeId: string;
33
+ }): Promise<SuccessResponse<Node> | ErrorAccessDenied | ErrorNotExist | null>;
34
+ uploadFile({ file, encryptProgress, uploadProgress, signal }: {
35
+ file: globalThis.File | Uint8Array;
36
+ encryptProgress?: ProgressCallback;
37
+ uploadProgress?: ProgressCallback;
38
+ signal?: AbortSignal;
39
+ }): Promise<SuccessResponse<string> | ErrorAccessDenied | ErrorLimit | ErrorNotFound | null>;
40
+ uploadFileInCloud({ file, name, nodeId, encryptProgress, uploadProgress, signal }: {
41
+ file: globalThis.File | Uint8Array;
42
+ name: string;
43
+ nodeId?: string;
44
+ encryptProgress?: ProgressCallback;
45
+ uploadProgress?: ProgressCallback;
46
+ signal?: AbortSignal;
47
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorLimit | ErrorNotFound | ErrorBasic | ErrorNotExist | null>;
48
+ logout(sessionId?: string | null | undefined): Promise<void>;
49
+ createFolder({ name, parentFolderId }: {
50
+ name: string;
51
+ parentFolderId?: string | null;
52
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorNotExist | null>;
53
+ node({ id, deleted }?: {
54
+ id?: string | null | undefined;
55
+ deleted?: boolean | null | undefined;
56
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | null>;
57
+ file({ id }: {
58
+ id: string;
59
+ }): Promise<SuccessResponse<SecrecyFile> | ErrorAccessDenied | null>;
60
+ mail({ id }: {
61
+ id: string;
62
+ }): Promise<SuccessResponse<Mail> | ErrorAccessDenied | null>;
63
+ deletedNodes(): Promise<SuccessResponse<Node[]> | ErrorAccessDenied | null>;
64
+ sharedNodes(): Promise<SuccessResponse<Node[]> | ErrorAccessDenied | null>;
65
+ nodesSharedWithMe(type?: NodeType | null | undefined): Promise<SuccessResponse<Node[]> | ErrorAccessDenied | null>;
66
+ deleteNodeSharing({ nodeId, userId }: {
67
+ nodeId: string;
68
+ userId: string;
69
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
70
+ duplicateNode({ nodeId, folderId, customName }: {
71
+ nodeId: string;
72
+ folderId?: string | null | undefined;
73
+ customName?: string | null | undefined;
74
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotFound | null>;
75
+ deleteNodeCloudTrash({ ids }: {
76
+ ids: Array<string>;
77
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
78
+ shareNode({ nodeId, userId, rights }: {
79
+ nodeId: string;
80
+ userId: string;
81
+ rights: Rights;
82
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotFound | null>;
83
+ updateNode({ nodeId, name, isFavorite, deletedAt }: {
84
+ nodeId: string;
85
+ name?: string | null | undefined;
86
+ isFavorite?: boolean | null | undefined;
87
+ deletedAt?: Date | null | undefined;
88
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorNotExist | null>;
89
+ deletedMails({ mailType }: {
90
+ mailType: MailType;
91
+ }): Promise<SuccessResponse<Mail[]> | ErrorAccessDenied | null>;
92
+ updateAppNotifications(notifications: Partial<UserAppNotifications>): Promise<SuccessResponse<UserAppNotifications> | ErrorAccessDenied | null>;
93
+ appNotifications(): Promise<SuccessResponse<UserAppNotifications> | ErrorAccessDenied | ErrorNotFound | null>;
94
+ createMail(data: NewMail, customMessage?: string | null | undefined): Promise<SuccessResponse<boolean> | ErrorBasic | ErrorAccessDenied | null>;
95
+ waitingReceivedMails(): Promise<SuccessResponse<WaitingReceivedMail[]> | ErrorNotFound | null>;
96
+ updateDraftMail(draftId: string, { body, subject, files, recipientsIds, replyTo }: Partial<NewMail>): Promise<SuccessResponse<DraftMail> | ErrorNotFound | ErrorAccessDenied | ErrorBasic | null>;
97
+ deleteDraftMail(draftId: string): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
98
+ deleteMailTrash({ ids }: {
99
+ ids: Array<string>;
100
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
101
+ emptyMailTrash(): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
102
+ emptyCloudTrash(): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
103
+ recoverNode(id: string): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotExist | null>;
104
+ recoverMail({ mailId }: {
105
+ mailId: string;
106
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null>;
107
+ deleteFile({ fileId, nodeId }: {
108
+ fileId: string;
109
+ nodeId: string;
110
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotExist | null>;
111
+ deleteNode({ nodeId }: {
112
+ nodeId: string;
113
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
114
+ moveNodes({ nodeIds, parentNodeId }: {
115
+ nodeIds: string[];
116
+ parentNodeId?: string | null | undefined;
117
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
118
+ folderSize({ folderId }: {
119
+ folderId?: string | null | undefined;
120
+ }): Promise<SuccessResponse<FolderSize> | ErrorAccessDenied | null>;
121
+ deleteMail({ mailId }: {
122
+ mailId: string;
123
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
124
+ saveInCloud({ fileId, name, nodeId }: {
125
+ fileId: string;
126
+ name: string;
127
+ nodeId?: string;
128
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorBasic | ErrorLimit | ErrorNotFound | ErrorNotExist | null>;
129
+ dbGet<U>({ field, userId }: {
130
+ field: string;
131
+ userId?: string | null | undefined;
132
+ }): Promise<SuccessResponse<U> | ErrorAccessDenied | ErrorNotExist | ErrorNotFound | null>;
133
+ dbSet<T extends UserData, U extends Document>({ value, userId }: {
134
+ value: U;
135
+ userId?: string | null | undefined;
136
+ }): Promise<SuccessResponse<T> | ErrorAccessDenied | ErrorNotFound | null>;
137
+ dbSearch<T>({ search, field }: {
138
+ field: string;
139
+ search: string;
140
+ }): Promise<SuccessResponse<T[]> | ErrorAccessDenied | ErrorBasic | ErrorNotExist | null>;
141
+ sendDraftMail(draftId: string, customMessage?: string | null | undefined): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null>;
142
+ sendWaitingEmails(): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null>;
143
+ createDraftMail({ body, subject, files, recipientsIds, replyTo }: NewMail): Promise<SuccessResponse<DraftMail> | ErrorAccessDenied | ErrorBasic | null>;
144
+ fileContent({ fileId, onDownloadProgress, progressDecrypt, signal }: {
145
+ fileId: string;
146
+ onDownloadProgress?: (progress: DownloadProgress) => void;
147
+ progressDecrypt?: ProgressCallback;
148
+ signal?: AbortSignal;
149
+ }): Promise<SuccessResponse<Uint8Array> | ErrorAccessDenied | ErrorBasic | null>;
150
+ readMail({ mailId }: {
151
+ mailId: string;
152
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | ErrorNotFound | null>;
153
+ unreadMail({ mailId }: {
154
+ mailId: string;
155
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | ErrorNotFound | null>;
156
+ appSettings(): Promise<SuccessResponse<UserAppSettings> | ErrorNotFound | null>;
157
+ updateAppSettings(settings: Partial<UserAppSettings>): Promise<SuccessResponse<UserAppSettings> | ErrorAccessDenied | ErrorBasic | null>;
158
+ receivedMails(): Promise<SuccessResponse<ReceivedMail[]> | ErrorNotFound | null>;
159
+ sentMails(): Promise<SuccessResponse<SentMail[]> | ErrorNotFound | null>;
160
+ draftMails(): Promise<SuccessResponse<DraftMail[]> | ErrorNotFound | null>;
161
+ private perNode;
162
+ unreadReceivedMailsCount(): Promise<SuccessResponse<number> | ErrorAccessDenied | null>;
163
+ private _eachUser;
164
+ }