@secrecy/lib 1.0.0 → 1.0.1

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 (64) hide show
  1. package/LICENSE +1 -1
  2. package/dist/BaseClient.d.ts +29 -177
  3. package/dist/BaseClient.js +114 -732
  4. package/dist/PopupTools.d.ts +4 -4
  5. package/dist/PopupTools.js +24 -41
  6. package/dist/ZeusThunder.js +3 -17
  7. package/dist/cache.js +1 -1
  8. package/dist/client/SecrecyAppClient.d.ts +17 -0
  9. package/dist/client/SecrecyAppClient.js +226 -0
  10. package/dist/client/SecrecyCloudClient.d.ts +89 -0
  11. package/dist/client/SecrecyCloudClient.js +1405 -0
  12. package/dist/client/SecrecyDbClient.d.ts +21 -0
  13. package/dist/client/SecrecyDbClient.js +177 -0
  14. package/dist/client/SecrecyMailClient.d.ts +42 -0
  15. package/dist/client/SecrecyMailClient.js +1022 -0
  16. package/dist/client/SecrecyPayClient.d.ts +28 -0
  17. package/dist/client/SecrecyPayClient.js +68 -0
  18. package/dist/client/SecrecyWalletClient.d.ts +30 -0
  19. package/dist/client/SecrecyWalletClient.js +73 -0
  20. package/dist/client/convert/file.js +2 -3
  21. package/dist/client/convert/mail.d.ts +2 -2
  22. package/dist/client/convert/mail.js +7 -11
  23. package/dist/client/convert/node.js +19 -33
  24. package/dist/client/helpers.d.ts +9 -4
  25. package/dist/client/helpers.js +30 -25
  26. package/dist/client/index.d.ts +15 -145
  27. package/dist/client/index.js +16 -3176
  28. package/dist/client/storage.js +4 -4
  29. package/dist/client/types/File.d.ts +3 -3
  30. package/dist/client/types/Inputs.d.ts +4 -4
  31. package/dist/client/types/Node.d.ts +21 -14
  32. package/dist/client/types/Node.js +1 -1
  33. package/dist/client/types/UserAppNotifications.d.ts +1 -1
  34. package/dist/client/types/UserAppSettings.d.ts +2 -3
  35. package/dist/client/types/UserAppSettings.js +1 -1
  36. package/dist/client/types/index.d.ts +23 -51
  37. package/dist/client/types/index.js +1 -1
  38. package/dist/client/types/selectors.d.ts +51 -127
  39. package/dist/client/types/selectors.js +21 -11
  40. package/dist/crypto/file.d.ts +2 -2
  41. package/dist/crypto/file.js +19 -34
  42. package/dist/crypto/index.js +1 -3
  43. package/dist/error.d.ts +5 -2
  44. package/dist/error.js +1 -1
  45. package/dist/index.d.ts +7 -5
  46. package/dist/index.js +4 -4
  47. package/dist/minify/index.js +2 -7
  48. package/dist/minify/lz4.js +79 -167
  49. package/dist/sodium.js +1 -1
  50. package/dist/utils/store-buddy.d.ts +1 -1
  51. package/dist/utils/store-buddy.js +1 -8
  52. package/dist/utils/time.js +1 -3
  53. package/dist/utils/utils.js +1 -11
  54. package/dist/worker/md5.js +1 -2
  55. package/dist/worker/sodium.js +16 -18
  56. package/dist/worker/workerCodes.js +255 -3
  57. package/dist/zeus/const.js +476 -27
  58. package/dist/zeus/index.d.ts +4477 -605
  59. package/dist/zeus/index.js +181 -239
  60. package/package.json +64 -61
  61. package/dist/client/admin/index.d.ts +0 -11
  62. package/dist/client/admin/index.js +0 -110
  63. package/dist/worker/__mock__/sodium.worker.d.ts +0 -19
  64. package/dist/worker/__mock__/sodium.worker.js +0 -49
@@ -5,37 +5,44 @@ export function parseInfos() {
5
5
  if (!window.location.hash) {
6
6
  return null;
7
7
  }
8
-
9
8
  const hash = window.location.hash.substr(1);
10
-
11
9
  try {
12
10
  const res = JSON.parse(atob(hash));
13
- window.location.hash = ""; // TODO Add object content validation
14
-
11
+ window.location.hash = "";
12
+ // TODO Add object content validation
15
13
  return res;
16
14
  } catch {
17
15
  return null;
18
16
  }
19
17
  }
18
+ export const getUrl = _ref => {
19
+ let {
20
+ env,
21
+ hash,
22
+ path
23
+ } = _ref;
24
+ let envStr = "";
25
+ if (env === "dev") {
26
+ envStr = "dev.";
27
+ }
28
+ const lang = document.documentElement.lang;
29
+ return process.env.NEXT_PUBLIC_SECRECY_API_URL ? `http://localhost:3002${lang ? `/${lang}` : ""}${path.startsWith("/") ? path : `/${path}`}#${hash}` : `https://auth.${envStr}secrecy.me${lang ? `/${lang}` : ""}${path.startsWith("/") ? path : `/${path}`}#${hash}`;
30
+ };
20
31
  export function getSecrecyClient(env, session) {
21
32
  const storage = getStorage(session);
22
33
  const uaSession = storage.userAppSession.load();
23
34
  const uaKeys = storage.userAppKeys.load();
24
35
  const uaJwt = storage.jwt.load();
25
-
26
36
  if (!uaSession || !uaKeys || !uaJwt) {
27
37
  const infos = parseInfos();
28
-
29
38
  if (infos) {
30
39
  storage.userAppKeys.save(infos.keys);
31
40
  storage.userAppSession.save(infos.uaSession);
32
41
  storage.jwt.save(infos.jwt);
33
42
  return new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env);
34
43
  }
35
-
36
44
  return null;
37
45
  }
38
-
39
46
  return new SecrecyClient(uaSession, uaKeys, uaJwt, env);
40
47
  }
41
48
  export function login(_temp) {
@@ -50,13 +57,10 @@ export function login(_temp) {
50
57
  } = _temp === void 0 ? {} : _temp;
51
58
  return new Promise((resolve, reject) => {
52
59
  const appUrl = window.location.origin;
53
-
54
60
  if (appCode && !appUrl.includes("localhost")) {
55
61
  return reject("Can't use appCode if not in localhost");
56
62
  }
57
-
58
63
  const client = getSecrecyClient(env);
59
-
60
64
  if (!client) {
61
65
  const infos = {
62
66
  appUrl,
@@ -67,15 +71,11 @@ export function login(_temp) {
67
71
  backPath
68
72
  };
69
73
  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
-
74
+ const url = getUrl({
75
+ env,
76
+ hash: data,
77
+ path: "login"
78
+ });
79
79
  const validate = infos => {
80
80
  const storage = getStorage(session);
81
81
  storage.userAppSession.save(infos.uaSession);
@@ -83,10 +83,8 @@ export function login(_temp) {
83
83
  storage.jwt.save(infos.jwt);
84
84
  return resolve(new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env));
85
85
  };
86
-
87
86
  if (redirect) {
88
87
  const infos = parseInfos();
89
-
90
88
  if (infos) {
91
89
  return validate(infos);
92
90
  } else {
@@ -94,12 +92,19 @@ export function login(_temp) {
94
92
  return resolve(null);
95
93
  }
96
94
  } else {
97
- popup(url, "Secrecy Login", {}, (err, data) => {
95
+ popup(url, "Secrecy Login", {
96
+ width: 500,
97
+ height: 750,
98
+ resizable: "no",
99
+ menubar: "no",
100
+ location: "no",
101
+ centered: true,
102
+ scrollbars: "no"
103
+ }, (err, data) => {
98
104
  if (err) {
99
105
  return reject(err);
100
106
  } else {
101
107
  const infos = data;
102
-
103
108
  if (infos) {
104
109
  return validate(infos);
105
110
  }
@@ -111,4 +116,4 @@ export function login(_temp) {
111
116
  }
112
117
  });
113
118
  }
114
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWNyZWN5Q2xpZW50IiwicG9wdXAiLCJnZXRTdG9yYWdlIiwicGFyc2VJbmZvcyIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsInN1YnN0ciIsInJlcyIsIkpTT04iLCJwYXJzZSIsImF0b2IiLCJnZXRTZWNyZWN5Q2xpZW50IiwiZW52Iiwic2Vzc2lvbiIsInN0b3JhZ2UiLCJ1YVNlc3Npb24iLCJ1c2VyQXBwU2Vzc2lvbiIsImxvYWQiLCJ1YUtleXMiLCJ1c2VyQXBwS2V5cyIsInVhSnd0Iiwiand0IiwiaW5mb3MiLCJzYXZlIiwia2V5cyIsImxvZ2luIiwiYXBwQ29kZSIsInBhdGgiLCJyZWRpcmVjdCIsInNjb3BlcyIsImJhY2tQYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhcHBVcmwiLCJvcmlnaW4iLCJpbmNsdWRlcyIsImNsaWVudCIsImRhdGEiLCJidG9hIiwic3RyaW5naWZ5IiwicmVwbGFjZUFsbCIsImVudlN0ciIsImxhbmciLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInVybCIsInByb2Nlc3MiLCJORVhUX1BVQkxJQ19TRUNSRUNZX0FQSV9VUkwiLCJ2YWxpZGF0ZSIsImhyZWYiLCJlcnIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2hlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjcmVjeUNsaWVudCB9IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBwb3B1cCB9IGZyb20gXCIuLi9Qb3B1cFRvb2xzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlY3JlY3lVc2VyQXBwIH0gZnJvbSBcIi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiLi9zdG9yYWdlLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUluZm9zKCk6IFNlY3JlY3lVc2VyQXBwIHwgbnVsbCB7XG4gIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpO1xuICB0cnkge1xuICAgIGNvbnN0IHJlcyA9IEpTT04ucGFyc2UoYXRvYihoYXNoKSk7XG4gICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSBcIlwiO1xuICAgIC8vIFRPRE8gQWRkIG9iamVjdCBjb250ZW50IHZhbGlkYXRpb25cbiAgICByZXR1cm4gcmVzO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBIYXNoSW5mb3MgPSB7XG4gIGFwcFVybDogc3RyaW5nO1xuICBiYWNrUGF0aD86IHN0cmluZztcbiAgYXBwQ29kZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHBhdGg/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICByZWRpcmVjdD86IGJvb2xlYW47XG4gIHNjb3Blcz86IHtcbiAgICBlbWFpbDogYm9vbGVhbjtcbiAgfTtcbn07XG5leHBvcnQgdHlwZSBTZWNyZWN5RW52ID0gXCJkZXZcIiB8IFwicHJvZFwiO1xuZXhwb3J0IHR5cGUgVXNlU2VjcmVjeVBhcmFtcyA9IE9taXQ8SGFzaEluZm9zLCBcImFwcFVybFwiPiAmIHtcbiAgZW52OiBTZWNyZWN5RW52O1xuICBzZXNzaW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIFZhbHVlPFQgZXh0ZW5kcyBVc2VTZWNyZWN5UGFyYW1zPiA9IFQgZXh0ZW5kcyB7IHJlZGlyZWN0OiB0cnVlIH1cbiAgPyBTZWNyZWN5Q2xpZW50IHwgbnVsbFxuICA6IFNlY3JlY3lDbGllbnQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWNyZWN5Q2xpZW50KFxuICBlbnY6IFNlY3JlY3lFbnYsXG4gIHNlc3Npb24/OiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBTZWNyZWN5Q2xpZW50IHwgbnVsbCB7XG4gIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKHNlc3Npb24pO1xuICBjb25zdCB1YVNlc3Npb24gPSBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLmxvYWQoKTtcbiAgY29uc3QgdWFLZXlzID0gc3RvcmFnZS51c2VyQXBwS2V5cy5sb2FkKCk7XG4gIGNvbnN0IHVhSnd0ID0gc3RvcmFnZS5qd3QubG9hZCgpO1xuICBpZiAoIXVhU2Vzc2lvbiB8fCAhdWFLZXlzIHx8ICF1YUp3dCkge1xuICAgIGNvbnN0IGluZm9zID0gcGFyc2VJbmZvcygpO1xuICAgIGlmIChpbmZvcykge1xuICAgICAgc3RvcmFnZS51c2VyQXBwS2V5cy5zYXZlKGluZm9zLmtleXMpO1xuICAgICAgc3RvcmFnZS51c2VyQXBwU2Vzc2lvbi5zYXZlKGluZm9zLnVhU2Vzc2lvbik7XG4gICAgICBzdG9yYWdlLmp3dC5zYXZlKGluZm9zLmp3dCk7XG4gICAgICByZXR1cm4gbmV3IFNlY3JlY3lDbGllbnQoaW5mb3MudWFTZXNzaW9uLCBpbmZvcy5rZXlzLCBpbmZvcy5qd3QsIGVudik7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBTZWNyZWN5Q2xpZW50KHVhU2Vzc2lvbiwgdWFLZXlzLCB1YUp3dCwgZW52KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ2luPFQgZXh0ZW5kcyBVc2VTZWNyZWN5UGFyYW1zPihcbiAgeyBhcHBDb2RlLCBwYXRoLCByZWRpcmVjdCwgc2NvcGVzLCBiYWNrUGF0aCwgZW52LCBzZXNzaW9uIH06IFQgPSB7fSBhcyBUXG4pOiBQcm9taXNlPFZhbHVlPFQ+PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgYXBwVXJsID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICBpZiAoYXBwQ29kZSAmJiAhYXBwVXJsLmluY2x1ZGVzKFwibG9jYWxob3N0XCIpKSB7XG4gICAgICByZXR1cm4gcmVqZWN0KFwiQ2FuJ3QgdXNlIGFwcENvZGUgaWYgbm90IGluIGxvY2FsaG9zdFwiKTtcbiAgICB9XG4gICAgY29uc3QgY2xpZW50ID0gZ2V0U2VjcmVjeUNsaWVudChlbnYpO1xuXG4gICAgaWYgKCFjbGllbnQpIHtcbiAgICAgIGNvbnN0IGluZm9zOiBIYXNoSW5mb3MgPSB7XG4gICAgICAgIGFwcFVybCxcbiAgICAgICAgYXBwQ29kZSxcbiAgICAgICAgcmVkaXJlY3QsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHNjb3BlcyxcbiAgICAgICAgYmFja1BhdGhcbiAgICAgIH07XG4gICAgICBjb25zdCBkYXRhID0gYnRvYShKU09OLnN0cmluZ2lmeShpbmZvcykpLnJlcGxhY2VBbGwoXCI9XCIsIFwiXCIpO1xuXG4gICAgICBsZXQgZW52U3RyID0gXCJcIjtcbiAgICAgIGlmIChlbnYgPT09IFwiZGV2XCIpIHtcbiAgICAgICAgZW52U3RyID0gXCJkZXYuXCI7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxhbmcgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZztcblxuICAgICAgY29uc3QgdXJsID0gcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfU0VDUkVDWV9BUElfVVJMXG4gICAgICAgID8gYGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMiR7bGFuZyA/IGAvJHtsYW5nfWAgOiBcIlwifS9sb2dpbiMke2RhdGF9YFxuICAgICAgICA6IGBodHRwczovL2F1dGguJHtlbnZTdHJ9c2VjcmVjeS5tZSR7XG4gICAgICAgICAgICBsYW5nID8gYC8ke2xhbmd9YCA6IFwiXCJcbiAgICAgICAgICB9L2xvZ2luIyR7ZGF0YX1gO1xuXG4gICAgICBjb25zdCB2YWxpZGF0ZSA9IChpbmZvczogU2VjcmVjeVVzZXJBcHApOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2Uoc2Vzc2lvbik7XG4gICAgICAgIHN0b3JhZ2UudXNlckFwcFNlc3Npb24uc2F2ZShpbmZvcy51YVNlc3Npb24pO1xuICAgICAgICBzdG9yYWdlLnVzZXJBcHBLZXlzLnNhdmUoaW5mb3Mua2V5cyk7XG4gICAgICAgIHN0b3JhZ2Uuand0LnNhdmUoaW5mb3Muand0KTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoXG4gICAgICAgICAgbmV3IFNlY3JlY3lDbGllbnQoXG4gICAgICAgICAgICBpbmZvcy51YVNlc3Npb24sXG4gICAgICAgICAgICBpbmZvcy5rZXlzLFxuICAgICAgICAgICAgaW5mb3Muand0LFxuICAgICAgICAgICAgZW52XG4gICAgICAgICAgKSBhcyBWYWx1ZTxUPlxuICAgICAgICApO1xuICAgICAgfTtcblxuICAgICAgaWYgKHJlZGlyZWN0KSB7XG4gICAgICAgIGNvbnN0IGluZm9zID0gcGFyc2VJbmZvcygpO1xuICAgICAgICBpZiAoaW5mb3MpIHtcbiAgICAgICAgICByZXR1cm4gdmFsaWRhdGUoaW5mb3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwgYXMgVmFsdWU8VD4pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3B1cCh1cmwsIFwiU2VjcmVjeSBMb2dpblwiLCB7fSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW5mb3MgPSBkYXRhIGFzIFNlY3JlY3lVc2VyQXBwO1xuICAgICAgICAgICAgaWYgKGluZm9zKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWxpZGF0ZShpbmZvcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc29sdmUoY2xpZW50IGFzIFZhbHVlPFQ+KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxT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
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWNyZWN5Q2xpZW50IiwicG9wdXAiLCJnZXRTdG9yYWdlIiwicGFyc2VJbmZvcyIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsInN1YnN0ciIsInJlcyIsIkpTT04iLCJwYXJzZSIsImF0b2IiLCJnZXRVcmwiLCJlbnYiLCJwYXRoIiwiZW52U3RyIiwibGFuZyIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicHJvY2VzcyIsIk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTCIsInN0YXJ0c1dpdGgiLCJnZXRTZWNyZWN5Q2xpZW50Iiwic2Vzc2lvbiIsInN0b3JhZ2UiLCJ1YVNlc3Npb24iLCJ1c2VyQXBwU2Vzc2lvbiIsImxvYWQiLCJ1YUtleXMiLCJ1c2VyQXBwS2V5cyIsInVhSnd0Iiwiand0IiwiaW5mb3MiLCJzYXZlIiwia2V5cyIsImxvZ2luIiwiYXBwQ29kZSIsInJlZGlyZWN0Iiwic2NvcGVzIiwiYmFja1BhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImFwcFVybCIsIm9yaWdpbiIsImluY2x1ZGVzIiwiY2xpZW50IiwiZGF0YSIsImJ0b2EiLCJzdHJpbmdpZnkiLCJyZXBsYWNlQWxsIiwidXJsIiwidmFsaWRhdGUiLCJocmVmIiwid2lkdGgiLCJoZWlnaHQiLCJyZXNpemFibGUiLCJtZW51YmFyIiwiY2VudGVyZWQiLCJzY3JvbGxiYXJzIiwiZXJyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlY3JlY3lDbGllbnQgfSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgcG9wdXAgfSBmcm9tIFwiLi4vUG9wdXBUb29scy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTZWNyZWN5VXNlckFwcCB9IGZyb20gXCIuL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIi4vc3RvcmFnZS5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmZvcygpOiBTZWNyZWN5VXNlckFwcCB8IG51bGwge1xuICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXMgPSBKU09OLnBhcnNlKGF0b2IoaGFzaCkpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gXCJcIjtcbiAgICAvLyBUT0RPIEFkZCBvYmplY3QgY29udGVudCB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIHJlcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFVybCA9ICh7XG4gIGVudixcbiAgaGFzaCxcbiAgcGF0aFxufToge1xuICBlbnY6IHN0cmluZztcbiAgaGFzaDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG59KTogc3RyaW5nID0+IHtcbiAgbGV0IGVudlN0ciA9IFwiXCI7XG4gIGlmIChlbnYgPT09IFwiZGV2XCIpIHtcbiAgICBlbnZTdHIgPSBcImRldi5cIjtcbiAgfVxuICBjb25zdCBsYW5nID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmc7XG4gIHJldHVybiBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19TRUNSRUNZX0FQSV9VUkxcbiAgICA/IGBodHRwOi8vbG9jYWxob3N0OjMwMDIke2xhbmcgPyBgLyR7bGFuZ31gIDogXCJcIn0ke1xuICAgICAgICBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpID8gcGF0aCA6IGAvJHtwYXRofWBcbiAgICAgIH0jJHtoYXNofWBcbiAgICA6IGBodHRwczovL2F1dGguJHtlbnZTdHJ9c2VjcmVjeS5tZSR7bGFuZyA/IGAvJHtsYW5nfWAgOiBcIlwifSR7XG4gICAgICAgIHBhdGguc3RhcnRzV2l0aChcIi9cIikgPyBwYXRoIDogYC8ke3BhdGh9YFxuICAgICAgfSMke2hhc2h9YDtcbn07XG5cbmV4cG9ydCB0eXBlIEhhc2hJbmZvcyA9IHtcbiAgYXBwVXJsOiBzdHJpbmc7XG4gIGJhY2tQYXRoPzogc3RyaW5nO1xuICBhcHBDb2RlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF0aD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHJlZGlyZWN0PzogYm9vbGVhbjtcbiAgc2NvcGVzPzoge1xuICAgIGVtYWlsOiBib29sZWFuO1xuICB9O1xufTtcbmV4cG9ydCB0eXBlIFNlY3JlY3lFbnYgPSBcImRldlwiIHwgXCJwcm9kXCI7XG5leHBvcnQgdHlwZSBVc2VTZWNyZWN5UGFyYW1zID0gT21pdDxIYXNoSW5mb3MsIFwiYXBwVXJsXCI+ICYge1xuICBlbnY6IFNlY3JlY3lFbnY7XG4gIHNlc3Npb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgVmFsdWU8VCBleHRlbmRzIFVzZVNlY3JlY3lQYXJhbXM+ID0gVCBleHRlbmRzIHsgcmVkaXJlY3Q6IHRydWUgfVxuICA/IFNlY3JlY3lDbGllbnQgfCBudWxsXG4gIDogU2VjcmVjeUNsaWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlY3JlY3lDbGllbnQoXG4gIGVudjogU2VjcmVjeUVudixcbiAgc2Vzc2lvbj86IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IFNlY3JlY3lDbGllbnQgfCBudWxsIHtcbiAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2Uoc2Vzc2lvbik7XG4gIGNvbnN0IHVhU2Vzc2lvbiA9IHN0b3JhZ2UudXNlckFwcFNlc3Npb24ubG9hZCgpO1xuICBjb25zdCB1YUtleXMgPSBzdG9yYWdlLnVzZXJBcHBLZXlzLmxvYWQoKTtcbiAgY29uc3QgdWFKd3QgPSBzdG9yYWdlLmp3dC5sb2FkKCk7XG4gIGlmICghdWFTZXNzaW9uIHx8ICF1YUtleXMgfHwgIXVhSnd0KSB7XG4gICAgY29uc3QgaW5mb3MgPSBwYXJzZUluZm9zKCk7XG4gICAgaWYgKGluZm9zKSB7XG4gICAgICBzdG9yYWdlLnVzZXJBcHBLZXlzLnNhdmUoaW5mb3Mua2V5cyk7XG4gICAgICBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLnNhdmUoaW5mb3MudWFTZXNzaW9uKTtcbiAgICAgIHN0b3JhZ2Uuand0LnNhdmUoaW5mb3Muand0KTtcbiAgICAgIHJldHVybiBuZXcgU2VjcmVjeUNsaWVudChpbmZvcy51YVNlc3Npb24sIGluZm9zLmtleXMsIGluZm9zLmp3dCwgZW52KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gbmV3IFNlY3JlY3lDbGllbnQodWFTZXNzaW9uLCB1YUtleXMsIHVhSnd0LCBlbnYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9naW48VCBleHRlbmRzIFVzZVNlY3JlY3lQYXJhbXM+KFxuICB7IGFwcENvZGUsIHBhdGgsIHJlZGlyZWN0LCBzY29wZXMsIGJhY2tQYXRoLCBlbnYsIHNlc3Npb24gfTogVCA9IHt9IGFzIFRcbik6IFByb21pc2U8VmFsdWU8VD4+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBhcHBVcmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgIGlmIChhcHBDb2RlICYmICFhcHBVcmwuaW5jbHVkZXMoXCJsb2NhbGhvc3RcIikpIHtcbiAgICAgIHJldHVybiByZWplY3QoXCJDYW4ndCB1c2UgYXBwQ29kZSBpZiBub3QgaW4gbG9jYWxob3N0XCIpO1xuICAgIH1cbiAgICBjb25zdCBjbGllbnQgPSBnZXRTZWNyZWN5Q2xpZW50KGVudik7XG5cbiAgICBpZiAoIWNsaWVudCkge1xuICAgICAgY29uc3QgaW5mb3M6IEhhc2hJbmZvcyA9IHtcbiAgICAgICAgYXBwVXJsLFxuICAgICAgICBhcHBDb2RlLFxuICAgICAgICByZWRpcmVjdCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgc2NvcGVzLFxuICAgICAgICBiYWNrUGF0aFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGRhdGEgPSBidG9hKEpTT04uc3RyaW5naWZ5KGluZm9zKSkucmVwbGFjZUFsbChcIj1cIiwgXCJcIik7XG5cbiAgICAgIGNvbnN0IHVybCA9IGdldFVybCh7XG4gICAgICAgIGVudixcbiAgICAgICAgaGFzaDogZGF0YSxcbiAgICAgICAgcGF0aDogXCJsb2dpblwiXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdmFsaWRhdGUgPSAoaW5mb3M6IFNlY3JlY3lVc2VyQXBwKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKHNlc3Npb24pO1xuICAgICAgICBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLnNhdmUoaW5mb3MudWFTZXNzaW9uKTtcbiAgICAgICAgc3RvcmFnZS51c2VyQXBwS2V5cy5zYXZlKGluZm9zLmtleXMpO1xuICAgICAgICBzdG9yYWdlLmp3dC5zYXZlKGluZm9zLmp3dCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKFxuICAgICAgICAgIG5ldyBTZWNyZWN5Q2xpZW50KFxuICAgICAgICAgICAgaW5mb3MudWFTZXNzaW9uLFxuICAgICAgICAgICAgaW5mb3Mua2V5cyxcbiAgICAgICAgICAgIGluZm9zLmp3dCxcbiAgICAgICAgICAgIGVudlxuICAgICAgICAgICkgYXMgVmFsdWU8VD5cbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICBjb25zdCBpbmZvcyA9IHBhcnNlSW5mb3MoKTtcbiAgICAgICAgaWYgKGluZm9zKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbGlkYXRlKGluZm9zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsIGFzIFZhbHVlPFQ+KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9wdXAoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIFwiU2VjcmVjeSBMb2dpblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDc1MCxcbiAgICAgICAgICAgIHJlc2l6YWJsZTogXCJub1wiLFxuICAgICAgICAgICAgbWVudWJhcjogXCJub1wiLFxuICAgICAgICAgICAgbG9jYXRpb246IFwibm9cIixcbiAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgc2Nyb2xsYmFyczogXCJub1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZm9zID0gZGF0YSBhcyBTZWNyZWN5VXNlckFwcDtcbiAgICAgICAgICAgICAgaWYgKGluZm9zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlKGluZm9zKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc29sdmUoY2xpZW50IGFzIFZhbHVlPFQ+KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxhQUFhLFFBQVEsWUFBWTtBQUMxQyxTQUFTQyxLQUFLLFFBQVEsa0JBQWtCO0FBRXhDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBRXpDLE9BQU8sU0FBU0MsVUFBVSxHQUEwQjtFQUNsRCxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLEVBQUU7SUFDekIsT0FBTyxJQUFJO0VBQ2I7RUFDQSxNQUFNQSxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNDLE1BQU0sQ0FBQyxDQUFDLENBQUM7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
@@ -1,15 +1,14 @@
1
- import type { MailType, NodeType } from "./../zeus/index";
2
- import type { DownloadProgress } from "ky";
3
- import type { FolderSize, SuccessResponse, UserData } from "../BaseClient.js";
4
1
  import { BaseClient } from "../BaseClient.js";
5
2
  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
3
  import type { KeyPair } from "../crypto/index.js";
8
4
  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 = {
5
+ import { SecrecyCloudClient } from "./SecrecyCloudClient.js";
6
+ import { SecrecyMailClient } from "./SecrecyMailClient.js";
7
+ import { SecrecyAppClient } from "./SecrecyAppClient.js";
8
+ import { SecrecyDbClient } from "./SecrecyDbClient.js";
9
+ import { SecrecyWalletClient } from "./SecrecyWalletClient.js";
10
+ import { SecrecyPayClient } from "./SecrecyPayClient.js";
11
+ export type NewMail = {
13
12
  body: string;
14
13
  subject: string;
15
14
  files: {
@@ -19,146 +18,17 @@ export declare type NewMail = {
19
18
  recipientsIds: string[];
20
19
  replyTo?: string | null | undefined;
21
20
  };
22
- export declare type ProgressCallback = (progress: Progress) => Promise<void>;
21
+ export type ProgressCallback = (progress: Progress) => Promise<void>;
22
+ export declare const encryptName: (name: string, nameKey: string) => Promise<string>;
23
23
  export declare class SecrecyClient extends BaseClient {
24
24
  #private;
25
- jwt: string;
26
- jwtDecoded: JwtPayload;
25
+ cloud: SecrecyCloudClient;
26
+ mail: SecrecyMailClient;
27
+ app: SecrecyAppClient;
28
+ db: SecrecyDbClient;
29
+ wallet: SecrecyWalletClient;
30
+ pay: SecrecyPayClient;
27
31
  constructor(uaSession: string, uaKeys: KeyPair, uaJwt: string, env: SecrecyEnv);
28
32
  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
33
  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
34
  }