@secrecy/lib 1.0.0-dev.5 → 1.0.0-dev.50

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 (116) hide show
  1. package/README.md +1 -1
  2. package/{lib → dist}/BaseClient.d.ts +62 -73
  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 +102 -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 +163 -0
  21. package/dist/client/index.js +3209 -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 +56 -0
  29. package/dist/client/types/Node.js +3 -0
  30. package/dist/client/types/UserAppNotifications.d.ts +6 -0
  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 +8 -13
  35. package/dist/client/types/index.js +8 -0
  36. package/dist/client/types/selectors.d.ts +400 -0
  37. package/dist/client/types/selectors.js +130 -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/dist/index.d.ts +12 -0
  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/dist/worker/sodium.d.ts +3 -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 +1234 -0
  68. package/dist/zeus/index.d.ts +5893 -0
  69. package/dist/zeus/index.js +681 -0
  70. package/package.json +58 -51
  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 -3699
  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/UserAppSettings.js +0 -2
  94. package/lib/client/types/VFile.d.ts +0 -62
  95. package/lib/client/types/VFile.js +0 -4
  96. package/lib/client/types/index.js +0 -8
  97. package/lib/client/types/queries.d.ts +0 -535
  98. package/lib/client/types/queries.js +0 -192
  99. package/lib/crypto/file.js +0 -291
  100. package/lib/crypto/index.js +0 -37
  101. package/lib/index.d.ts +0 -11
  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.d.ts +0 -3
  112. package/lib/worker/sodium.js +0 -141
  113. package/lib/worker/workerCodes.js +0 -3
  114. package/lib/zeus/const.js +0 -1609
  115. package/lib/zeus/index.d.ts +0 -26113
  116. package/lib/zeus/index.js +0 -552
@@ -0,0 +1,102 @@
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
+ var _gql$parentId, _gql$currentFileId;
14
+
15
+ if (!gql.access) {
16
+ throw "Can't access Node " + gql.id;
17
+ }
18
+
19
+ const internal = {
20
+ id: gql.id,
21
+ type: gql.type,
22
+ access: gql.access,
23
+ name: gql.name,
24
+ isFavorite: gql.isFavorite,
25
+ breadcrumb: gql.breadcrumb,
26
+ createdBy: gql.createdBy.user,
27
+ sizes: {
28
+ size: BigInt(gql.sizes.size),
29
+ sizeBefore: BigInt(gql.sizes.sizeBefore)
30
+ },
31
+ createdAt: new Date(gql.createdAt),
32
+ updatedAt: new Date(gql.updatedAt),
33
+ deletedAt: gql.deletedAt ? new Date(gql.deletedAt) : null,
34
+ users: gql.accesses.map(u => [u.userApp.user, u.rights]),
35
+ parentId: (_gql$parentId = gql.parentId) != null ? _gql$parentId : null,
36
+ currentFileId: (_gql$currentFileId = gql.currentFileId) != null ? _gql$currentFileId : null
37
+ };
38
+ internal.access = _objectSpread({}, gql.access);
39
+
40
+ if (gql.access.nameKey) {
41
+ if (!gql.access.sharedBy.keyPair) {
42
+ throw new Error("Can't find keyPair for access");
43
+ }
44
+
45
+ const key = decryptCryptoBox(sodium.from_hex(gql.access.nameKey), gql.createdBy.user.publicKey, keyPair.privateKey);
46
+ internal.name = sodium.to_string(await decryptSecretstream(key, sodium.from_hex(internal.name)));
47
+ internal.access.nameKey = sodium.to_hex(key);
48
+ }
49
+
50
+ for (const b of internal.breadcrumb) {
51
+ if (!b.nameKey) {
52
+ continue;
53
+ }
54
+
55
+ const key = decryptCryptoBox(sodium.from_hex(b.nameKey), b.pubKey, keyPair.privateKey);
56
+ b.nameKey = sodium.to_hex(key);
57
+ b.name = sodium.to_string(await decryptSecretstream(key, sodium.from_hex(b.name)));
58
+ }
59
+
60
+ nodesCache.set(internal.id, internal);
61
+ return internal;
62
+ }
63
+ export async function gqlNodeFullToInternalFull(gql, keyPair) {
64
+ const f = await gqlNodeToInternal(gql, keyPair);
65
+ return _objectSpread(_objectSpread({}, f), {}, {
66
+ current: gql.current ? gqlFileToInternal(gql.current, keyPair) : undefined,
67
+ parent: gql.parent ? await gqlNodeToInternal(gql.parent, keyPair) : null,
68
+ children: await Promise.all(gql.children.map(s => gqlNodeToInternal(s, keyPair))),
69
+ history: gql.history.map(f => gqlFileToInternal(f, keyPair))
70
+ });
71
+ }
72
+ export function internalNodeToNode(internal) {
73
+ var _node$access;
74
+
75
+ const node = _objectSpread(_objectSpread({}, internal), {}, {
76
+ access: internal.access ? _objectSpread({}, internal.access) : undefined
77
+ });
78
+
79
+ for (const b of node.breadcrumb) {
80
+ // @ts-ignore
81
+ delete b.pubKey;
82
+ } // @ts-ignore
83
+
84
+
85
+ (_node$access = node.access) == null ? true : delete _node$access.nameKey;
86
+ return node;
87
+ }
88
+ export function internalNodeFullToNodeFull(internal) {
89
+ return _objectSpread(_objectSpread({}, internalNodeToNode(internal)), {}, {
90
+ parent: internal.parent ? internalNodeToNode(internal.parent) : null,
91
+ children: internal.children.map(internalNodeToNode),
92
+ history: internal.history.map(f => internalFileToFile(f)),
93
+ current: internal.current ? internalFileToFile(internal.current) : undefined
94
+ });
95
+ }
96
+ export async function gqlNodeToExternalNodeFull(gql, keyPair) {
97
+ return internalNodeFullToNodeFull(await gqlNodeFullToInternalFull(gql, keyPair));
98
+ }
99
+ export async function gqlNodeToExternal(gql, keyPair) {
100
+ return internalNodeToNode(await gqlNodeToInternal(gql, keyPair));
101
+ }
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94Iiwibm9kZXNDYWNoZSIsImRlY3J5cHRTZWNyZXRzdHJlYW0iLCJncWxGaWxlVG9JbnRlcm5hbCIsImludGVybmFsRmlsZVRvRmlsZSIsImdxbE5vZGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsImlkIiwiaW50ZXJuYWwiLCJ0eXBlIiwibmFtZSIsImlzRmF2b3JpdGUiLCJicmVhZGNydW1iIiwiY3JlYXRlZEJ5IiwidXNlciIsInNpemVzIiwic2l6ZSIsIkJpZ0ludCIsInNpemVCZWZvcmUiLCJjcmVhdGVkQXQiLCJEYXRlIiwidXBkYXRlZEF0IiwiZGVsZXRlZEF0IiwidXNlcnMiLCJhY2Nlc3NlcyIsIm1hcCIsInUiLCJ1c2VyQXBwIiwicmlnaHRzIiwicGFyZW50SWQiLCJjdXJyZW50RmlsZUlkIiwibmFtZUtleSIsInNoYXJlZEJ5IiwiRXJyb3IiLCJrZXkiLCJmcm9tX2hleCIsInB1YmxpY0tleSIsInByaXZhdGVLZXkiLCJ0b19zdHJpbmciLCJ0b19oZXgiLCJiIiwicHViS2V5Iiwic2V0IiwiZ3FsTm9kZUZ1bGxUb0ludGVybmFsRnVsbCIsImYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwicGFyZW50IiwiY2hpbGRyZW4iLCJQcm9taXNlIiwiYWxsIiwicyIsImhpc3RvcnkiLCJpbnRlcm5hbE5vZGVUb05vZGUiLCJub2RlIiwiaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwiLCJncWxOb2RlVG9FeHRlcm5hbE5vZGVGdWxsIiwiZ3FsTm9kZVRvRXh0ZXJuYWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBOb2RlIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdRTE5vZGUsXG4gIEludGVybmFsTm9kZSxcbiAgR1FMTm9kZUZ1bGwsXG4gIEludGVybmFsTm9kZUZ1bGwsXG4gIE5vZGVGdWxsXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgbm9kZXNDYWNoZSB9IGZyb20gXCIuLi8uLi9jYWNoZS5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgZ3FsRmlsZVRvSW50ZXJuYWwsIGludGVybmFsRmlsZVRvRmlsZSB9IGZyb20gXCIuL2ZpbGUuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0ludGVybmFsKFxuICBncWw6IEdRTE5vZGUsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlPiB7XG4gIGlmICghZ3FsLmFjY2Vzcykge1xuICAgIHRocm93IGBDYW4ndCBhY2Nlc3MgTm9kZSAke2dxbC5pZH1gO1xuICB9XG5cbiAgY29uc3QgaW50ZXJuYWw6IEludGVybmFsTm9kZSA9IHtcbiAgICBpZDogZ3FsLmlkLFxuICAgIHR5cGU6IGdxbC50eXBlLFxuICAgIGFjY2VzczogZ3FsLmFjY2VzcyxcbiAgICBuYW1lOiBncWwubmFtZSxcbiAgICBpc0Zhdm9yaXRlOiBncWwuaXNGYXZvcml0ZSxcbiAgICBicmVhZGNydW1iOiBncWwuYnJlYWRjcnVtYixcbiAgICBjcmVhdGVkQnk6IGdxbC5jcmVhdGVkQnkudXNlcixcbiAgICBzaXplczoge1xuICAgICAgc2l6ZTogQmlnSW50KGdxbC5zaXplcy5zaXplIGFzIHN0cmluZyksXG4gICAgICBzaXplQmVmb3JlOiBCaWdJbnQoZ3FsLnNpemVzLnNpemVCZWZvcmUgYXMgc3RyaW5nKVxuICAgIH0sXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgdXBkYXRlZEF0OiBuZXcgRGF0ZShncWwudXBkYXRlZEF0IGFzIHN0cmluZyksXG4gICAgZGVsZXRlZEF0OiBncWwuZGVsZXRlZEF0ID8gbmV3IERhdGUoZ3FsLmRlbGV0ZWRBdCBhcyBzdHJpbmcpIDogbnVsbCxcbiAgICB1c2VyczogZ3FsLmFjY2Vzc2VzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKSxcbiAgICBwYXJlbnRJZDogZ3FsLnBhcmVudElkID8/IG51bGwsXG4gICAgY3VycmVudEZpbGVJZDogZ3FsLmN1cnJlbnRGaWxlSWQgPz8gbnVsbFxuICB9O1xuXG4gIGludGVybmFsLmFjY2VzcyA9IHsgLi4uZ3FsLmFjY2VzcyB9O1xuXG4gIGlmIChncWwuYWNjZXNzLm5hbWVLZXkpIHtcbiAgICBpZiAoIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBmaW5kIGtleVBhaXIgZm9yIGFjY2Vzc2ApO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3MubmFtZUtleSksXG4gICAgICBncWwuY3JlYXRlZEJ5LnVzZXIucHVibGljS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcbiAgICBpbnRlcm5hbC5uYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgIGF3YWl0IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBzb2RpdW0uZnJvbV9oZXgoaW50ZXJuYWwubmFtZSkpXG4gICAgKTtcblxuICAgIGludGVybmFsLmFjY2Vzcy5uYW1lS2V5ID0gc29kaXVtLnRvX2hleChrZXkpO1xuICB9XG5cbiAgZm9yIChjb25zdCBiIG9mIGludGVybmFsLmJyZWFkY3J1bWIpIHtcbiAgICBpZiAoIWIubmFtZUtleSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IGRlY3J5cHRDcnlwdG9Cb3goXG4gICAgICBzb2RpdW0uZnJvbV9oZXgoYi5uYW1lS2V5KSxcbiAgICAgIGIucHViS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcblxuICAgIGIubmFtZUtleSA9IHNvZGl1bS50b19oZXgoa2V5KTtcblxuICAgIGIubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGIubmFtZSkpXG4gICAgKTtcbiAgfVxuXG4gIG5vZGVzQ2FjaGUuc2V0KGludGVybmFsLmlkLCBpbnRlcm5hbCk7XG4gIHJldHVybiBpbnRlcm5hbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlRnVsbD4ge1xuICBjb25zdCBmID0gYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5mLFxuICAgIGN1cnJlbnQ6IGdxbC5jdXJyZW50ID8gZ3FsRmlsZVRvSW50ZXJuYWwoZ3FsLmN1cnJlbnQsIGtleVBhaXIpIDogdW5kZWZpbmVkLFxuICAgIHBhcmVudDogZ3FsLnBhcmVudCA/IGF3YWl0IGdxbE5vZGVUb0ludGVybmFsKGdxbC5wYXJlbnQsIGtleVBhaXIpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBncWwuY2hpbGRyZW4ubWFwKHMgPT4gZ3FsTm9kZVRvSW50ZXJuYWwocywga2V5UGFpcikpXG4gICAgKSxcbiAgICBoaXN0b3J5OiBncWwuaGlzdG9yeS5tYXAoZiA9PiBncWxGaWxlVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbDogSW50ZXJuYWxOb2RlKTogTm9kZSB7XG4gIGNvbnN0IG5vZGU6IE5vZGUgPSB7XG4gICAgLi4uaW50ZXJuYWwsXG4gICAgYWNjZXNzOiBpbnRlcm5hbC5hY2Nlc3MgPyB7IC4uLmludGVybmFsLmFjY2VzcyB9IDogdW5kZWZpbmVkXG4gIH07XG5cbiAgZm9yIChjb25zdCBiIG9mIG5vZGUuYnJlYWRjcnVtYikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkZWxldGUgYi5wdWJLZXk7XG4gIH1cbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgbm9kZS5hY2Nlc3M/Lm5hbWVLZXk7XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwoXG4gIGludGVybmFsOiBJbnRlcm5hbE5vZGVGdWxsXG4pOiBOb2RlRnVsbCB7XG4gIHJldHVybiB7XG4gICAgLi4uaW50ZXJuYWxOb2RlVG9Ob2RlKGludGVybmFsKSxcbiAgICBwYXJlbnQ6IGludGVybmFsLnBhcmVudCA/IGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbC5wYXJlbnQpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogaW50ZXJuYWwuY2hpbGRyZW4ubWFwKGludGVybmFsTm9kZVRvTm9kZSksXG4gICAgaGlzdG9yeTogaW50ZXJuYWwuaGlzdG9yeS5tYXAoZiA9PiBpbnRlcm5hbEZpbGVUb0ZpbGUoZikpLFxuICAgIGN1cnJlbnQ6IGludGVybmFsLmN1cnJlbnQgPyBpbnRlcm5hbEZpbGVUb0ZpbGUoaW50ZXJuYWwuY3VycmVudCkgOiB1bmRlZmluZWRcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0V4dGVybmFsTm9kZUZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Tm9kZUZ1bGw+IHtcbiAgcmV0dXJuIGludGVybmFsTm9kZUZ1bGxUb05vZGVGdWxsKFxuICAgIGF3YWl0IGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoZ3FsLCBrZXlQYWlyKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsTm9kZVRvRXh0ZXJuYWwoXG4gIGdxbDogR1FMTm9kZSxcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxOb2RlPiB7XG4gIHJldHVybiBpbnRlcm5hbE5vZGVUb05vZGUoYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLE1BQVQsUUFBdUIsaUJBQXZCO0FBRUEsU0FBU0MsZ0JBQVQsUUFBaUMsdUJBQWpDO0FBU0EsU0FBU0MsVUFBVCxRQUEyQixnQkFBM0I7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxzQkFBcEM7QUFDQSxTQUFTQyxpQkFBVCxFQUE0QkMsa0JBQTVCLFFBQXNELFdBQXREO0FBRUEsT0FBTyxlQUFlQyxpQkFBZixDQUNMQyxHQURLLEVBRUxDLE9BRkssRUFHa0I7RUFBQTs7RUFDdkIsSUFBSSxDQUFDRCxHQUFHLENBQUNFLE1BQVQsRUFBaUI7SUFDZiw2QkFBMkJGLEdBQUcsQ0FBQ0csRUFBL0I7RUFDRDs7RUFFRCxNQUFNQyxRQUFzQixHQUFHO0lBQzdCRCxFQUFFLEVBQUVILEdBQUcsQ0FBQ0csRUFEcUI7SUFFN0JFLElBQUksRUFBRUwsR0FBRyxDQUFDSyxJQUZtQjtJQUc3QkgsTUFBTSxFQUFFRixHQUFHLENBQUNFLE1BSGlCO0lBSTdCSSxJQUFJLEVBQUVOLEdBQUcsQ0FBQ00sSUFKbUI7SUFLN0JDLFVBQVUsRUFBRVAsR0FBRyxDQUFDTyxVQUxhO0lBTTdCQyxVQUFVLEVBQUVSLEdBQUcsQ0FBQ1EsVUFOYTtJQU83QkMsU0FBUyxFQUFFVCxHQUFHLENBQUNTLFNBQUosQ0FBY0MsSUFQSTtJQVE3QkMsS0FBSyxFQUFFO01BQ0xD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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,163 @@
1
+ import type { MailType, NodeType } from "./../zeus/index";
2
+ import type { DownloadProgress } from "ky";
3
+ import type { 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
+ import type { Document } from "bson";
13
+ export declare type NewMail = {
14
+ body: string;
15
+ subject: string;
16
+ files: {
17
+ id: string;
18
+ name: string;
19
+ }[];
20
+ recipientsIds: string[];
21
+ replyTo?: string | null | undefined;
22
+ };
23
+ export declare type ProgressCallback = (progress: Progress) => Promise<void>;
24
+ export declare class SecrecyClient extends BaseClient {
25
+ #private;
26
+ jwt: string;
27
+ jwtDecoded: JwtPayload;
28
+ constructor(uaSession: string, uaKeys: KeyPair, uaJwt: string, env: SecrecyEnv);
29
+ get publicKey(): string;
30
+ get appUserId(): string;
31
+ addFileToHistory({ fileId, nodeId }: {
32
+ fileId: string;
33
+ nodeId: string;
34
+ }): Promise<SuccessResponse<Node> | ErrorAccessDenied | ErrorNotExist | null>;
35
+ uploadFile({ file, encryptProgress, uploadProgress, signal }: {
36
+ file: globalThis.File | Uint8Array;
37
+ encryptProgress?: ProgressCallback;
38
+ uploadProgress?: ProgressCallback;
39
+ signal?: AbortSignal;
40
+ }): Promise<SuccessResponse<string> | ErrorAccessDenied | ErrorLimit | ErrorNotFound | null>;
41
+ uploadFileInCloud({ file, name, nodeId, encryptProgress, uploadProgress, signal }: {
42
+ file: globalThis.File | Uint8Array;
43
+ name: string;
44
+ nodeId?: string;
45
+ encryptProgress?: ProgressCallback;
46
+ uploadProgress?: ProgressCallback;
47
+ signal?: AbortSignal;
48
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorLimit | ErrorNotFound | ErrorBasic | ErrorNotExist | null>;
49
+ logout(sessionId?: string | null | undefined): Promise<void>;
50
+ createFolder({ name, parentFolderId }: {
51
+ name: string;
52
+ parentFolderId?: string | null;
53
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorNotExist | null>;
54
+ node({ id, deleted }?: {
55
+ id?: string | null | undefined;
56
+ deleted?: boolean | null | undefined;
57
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | null>;
58
+ file({ id }: {
59
+ id: string;
60
+ }): Promise<SuccessResponse<SecrecyFile> | ErrorAccessDenied | null>;
61
+ mail({ id }: {
62
+ id: string;
63
+ }): Promise<SuccessResponse<Mail> | ErrorAccessDenied | null>;
64
+ deletedNodes(): Promise<SuccessResponse<Node[]> | ErrorAccessDenied | null>;
65
+ sharedNodes(): Promise<SuccessResponse<Node[]> | ErrorAccessDenied | null>;
66
+ nodesSharedWithMe(type?: NodeType | null | undefined): Promise<SuccessResponse<Node[]> | ErrorAccessDenied | null>;
67
+ deleteNodeSharing({ nodeId, userId }: {
68
+ nodeId: string;
69
+ userId: string;
70
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
71
+ duplicateNode({ nodeId, folderId, customName }: {
72
+ nodeId: string;
73
+ folderId?: string | null | undefined;
74
+ customName?: string | null | undefined;
75
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotFound | null>;
76
+ deleteNodeCloudTrash({ ids }: {
77
+ ids: Array<string>;
78
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
79
+ shareNode({ nodeId, userId, rights }: {
80
+ nodeId: string;
81
+ userId: string;
82
+ rights: Rights;
83
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotFound | null>;
84
+ updateNode({ nodeId, name, isFavorite, deletedAt }: {
85
+ nodeId: string;
86
+ name?: string | null | undefined;
87
+ isFavorite?: boolean | null | undefined;
88
+ deletedAt?: Date | null | undefined;
89
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorNotExist | null>;
90
+ deletedMails({ mailType }: {
91
+ mailType: MailType;
92
+ }): Promise<SuccessResponse<Mail[]> | ErrorAccessDenied | null>;
93
+ updateAppNotifications(notifications: Partial<UserAppNotifications>): Promise<SuccessResponse<UserAppNotifications> | ErrorAccessDenied | null>;
94
+ appNotifications(): Promise<SuccessResponse<UserAppNotifications> | ErrorAccessDenied | ErrorNotFound | null>;
95
+ createMail(data: NewMail, customMessage?: string | null | undefined): Promise<SuccessResponse<boolean> | ErrorBasic | ErrorAccessDenied | null>;
96
+ waitingReceivedMails(): Promise<SuccessResponse<WaitingReceivedMail[]> | ErrorNotFound | null>;
97
+ updateDraftMail(draftId: string, { body, subject, files, recipientsIds, replyTo }: Partial<NewMail>): Promise<SuccessResponse<DraftMail> | ErrorNotFound | ErrorAccessDenied | ErrorBasic | null>;
98
+ deleteDraftMail(draftId: string): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
99
+ deleteMailTrash({ ids }: {
100
+ ids: Array<string>;
101
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
102
+ emptyMailTrash(): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
103
+ emptyCloudTrash(): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
104
+ recoverNode(id: string): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotExist | null>;
105
+ recoverMail({ mailId }: {
106
+ mailId: string;
107
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null>;
108
+ deleteFile({ fileId, nodeId }: {
109
+ fileId: string;
110
+ nodeId: string;
111
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorNotExist | null>;
112
+ deleteNode({ nodeId }: {
113
+ nodeId: string;
114
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
115
+ moveNodes({ nodeIds, parentNodeId }: {
116
+ nodeIds: string[];
117
+ parentNodeId?: string | null | undefined;
118
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
119
+ deleteMail({ mailId }: {
120
+ mailId: string;
121
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null>;
122
+ saveInCloud({ fileId, name, nodeId }: {
123
+ fileId: string;
124
+ name: string;
125
+ nodeId?: string;
126
+ }): Promise<SuccessResponse<NodeFull> | ErrorAccessDenied | ErrorBasic | ErrorLimit | ErrorNotFound | ErrorNotExist | null>;
127
+ dbGet<U>({ field, userId }: {
128
+ field: string;
129
+ userId?: string | null | undefined;
130
+ }): Promise<SuccessResponse<U> | ErrorAccessDenied | ErrorNotExist | ErrorNotFound | null>;
131
+ dbSet<T extends UserData, U extends Document>({ value, userId }: {
132
+ value: U;
133
+ userId?: string | null | undefined;
134
+ }): Promise<SuccessResponse<T> | ErrorAccessDenied | ErrorNotFound | null>;
135
+ dbSearch<T>({ search, field }: {
136
+ field: string;
137
+ search: string;
138
+ }): Promise<SuccessResponse<T[]> | ErrorAccessDenied | ErrorBasic | ErrorNotExist | null>;
139
+ sendDraftMail(draftId: string, customMessage?: string | null | undefined): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null>;
140
+ sendWaitingEmails(): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null>;
141
+ createDraftMail({ body, subject, files, recipientsIds, replyTo }: NewMail): Promise<SuccessResponse<DraftMail> | ErrorAccessDenied | ErrorBasic | null>;
142
+ fileContent({ fileId, onDownloadProgress, progressDecrypt, signal }: {
143
+ fileId: string;
144
+ onDownloadProgress?: (progress: DownloadProgress) => void;
145
+ progressDecrypt?: ProgressCallback;
146
+ signal?: AbortSignal;
147
+ }): Promise<SuccessResponse<Uint8Array> | ErrorAccessDenied | ErrorBasic | null>;
148
+ readMail({ mailId }: {
149
+ mailId: string;
150
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | ErrorNotFound | null>;
151
+ unreadMail({ mailId }: {
152
+ mailId: string;
153
+ }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | ErrorNotFound | null>;
154
+ appSettings(): Promise<SuccessResponse<UserAppSettings> | ErrorNotFound | null>;
155
+ getJwt(): Promise<string>;
156
+ updateAppSettings(settings: Partial<UserAppSettings>): Promise<SuccessResponse<UserAppSettings> | ErrorAccessDenied | ErrorBasic | null>;
157
+ receivedMails(): Promise<SuccessResponse<ReceivedMail[]> | ErrorNotFound | null>;
158
+ sentMails(): Promise<SuccessResponse<SentMail[]> | ErrorNotFound | null>;
159
+ draftMails(): Promise<SuccessResponse<DraftMail[]> | ErrorNotFound | null>;
160
+ private perNode;
161
+ unreadReceivedMailsCount(): Promise<SuccessResponse<number> | ErrorAccessDenied | null>;
162
+ private _eachUser;
163
+ }