@secrecy/lib 1.0.0-dev.9 → 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.
- package/README.md +1 -1
- package/{lib → dist}/BaseClient.d.ts +62 -69
- package/dist/BaseClient.js +1124 -0
- package/{lib → dist}/PopupTools.d.ts +1 -1
- package/dist/PopupTools.js +212 -0
- package/{lib → dist}/ZeusThunder.d.ts +0 -0
- package/dist/ZeusThunder.js +79 -0
- package/dist/cache.d.ts +6 -0
- package/dist/cache.js +4 -0
- package/dist/client/admin/index.d.ts +11 -0
- package/dist/client/admin/index.js +110 -0
- package/{lib → dist}/client/convert/file.d.ts +3 -3
- package/dist/client/convert/file.js +34 -0
- package/{lib → dist}/client/convert/mail.d.ts +0 -0
- package/dist/client/convert/mail.js +46 -0
- package/dist/client/convert/node.d.ts +9 -0
- package/dist/client/convert/node.js +101 -0
- package/{lib → dist}/client/helpers.d.ts +1 -1
- package/dist/client/helpers.js +114 -0
- package/dist/client/index.d.ts +164 -0
- package/dist/client/index.js +3206 -0
- package/{lib → dist}/client/storage.d.ts +0 -0
- package/dist/client/storage.js +12 -0
- package/dist/client/types/File.d.ts +14 -0
- package/dist/client/types/File.js +3 -0
- package/{lib → dist}/client/types/Inputs.d.ts +2 -7
- package/dist/client/types/Inputs.js +3 -0
- package/dist/client/types/Node.d.ts +49 -0
- package/dist/client/types/Node.js +3 -0
- package/{lib → dist}/client/types/UserAppNotifications.d.ts +1 -1
- package/dist/client/types/UserAppNotifications.js +3 -0
- package/{lib → dist}/client/types/UserAppSettings.d.ts +0 -1
- package/dist/client/types/UserAppSettings.js +3 -0
- package/{lib → dist}/client/types/index.d.ts +7 -13
- package/dist/client/types/index.js +8 -0
- package/dist/client/types/selectors.d.ts +476 -0
- package/dist/client/types/selectors.js +125 -0
- package/{lib → dist}/crypto/file.d.ts +0 -0
- package/dist/crypto/file.js +210 -0
- package/{lib → dist}/crypto/index.d.ts +0 -0
- package/dist/crypto/index.js +47 -0
- package/dist/error.d.ts +30 -0
- package/dist/error.js +3 -0
- package/{lib → dist}/index.d.ts +3 -3
- package/dist/index.js +10 -0
- package/{lib → dist}/minify/index.d.ts +0 -0
- package/dist/minify/index.js +28 -0
- package/{lib → dist}/minify/lz4.d.ts +0 -0
- package/dist/minify/lz4.js +627 -0
- package/{lib → dist}/sodium.d.ts +0 -0
- package/dist/sodium.js +6 -0
- package/{lib → dist}/utils/store-buddy.d.ts +0 -0
- package/dist/utils/store-buddy.js +65 -0
- package/{lib → dist}/utils/time.d.ts +0 -0
- package/dist/utils/time.js +14 -0
- package/{lib → dist/utils}/utils.d.ts +0 -0
- package/dist/utils/utils.js +57 -0
- package/{lib → dist}/worker/__mock__/sodium.worker.d.ts +0 -0
- package/dist/worker/__mock__/sodium.worker.js +49 -0
- package/{lib → dist}/worker/md5.d.ts +0 -0
- package/dist/worker/md5.js +25 -0
- package/{lib → dist}/worker/sodium.d.ts +0 -0
- package/dist/worker/sodium.js +120 -0
- package/{lib → dist}/worker/workerCodes.d.ts +0 -0
- package/dist/worker/workerCodes.js +3 -0
- package/{lib → dist}/zeus/const.d.ts +5 -0
- package/dist/zeus/const.js +1230 -0
- package/dist/zeus/index.d.ts +4069 -0
- package/dist/zeus/index.js +657 -0
- package/package.json +64 -57
- package/lib/BaseClient.js +0 -1332
- package/lib/PopupTools.js +0 -213
- package/lib/ZeusThunder.js +0 -115
- package/lib/cache.d.ts +0 -7
- package/lib/cache.js +0 -5
- package/lib/client/admin/index.d.ts +0 -10
- package/lib/client/admin/index.js +0 -145
- package/lib/client/convert/file.js +0 -39
- package/lib/client/convert/folder.d.ts +0 -8
- package/lib/client/convert/folder.js +0 -264
- package/lib/client/convert/mail.js +0 -46
- package/lib/client/convert/vFile.d.ts +0 -5
- package/lib/client/convert/vFile.js +0 -164
- package/lib/client/helpers.js +0 -116
- package/lib/client/index.d.ts +0 -169
- package/lib/client/index.js +0 -3803
- package/lib/client/storage.js +0 -12
- package/lib/client/types/File.d.ts +0 -21
- package/lib/client/types/File.js +0 -2
- package/lib/client/types/FilesOnUsersOnApplications.d.ts +0 -9
- package/lib/client/types/FilesOnUsersOnApplications.js +0 -2
- package/lib/client/types/Folder.d.ts +0 -68
- package/lib/client/types/Folder.js +0 -7
- package/lib/client/types/Inputs.js +0 -2
- package/lib/client/types/UserAppNotifications.js +0 -2
- package/lib/client/types/UserAppSettings.js +0 -2
- package/lib/client/types/VFile.d.ts +0 -62
- package/lib/client/types/VFile.js +0 -4
- package/lib/client/types/index.js +0 -9
- package/lib/client/types/queries.d.ts +0 -535
- package/lib/client/types/queries.js +0 -192
- package/lib/crypto/file.js +0 -291
- package/lib/crypto/index.js +0 -37
- package/lib/index.js +0 -41
- package/lib/minify/index.js +0 -28
- package/lib/minify/lz4.js +0 -633
- package/lib/sodium.js +0 -28
- package/lib/utils/store-buddy.js +0 -69
- package/lib/utils/time.js +0 -22
- package/lib/utils.js +0 -188
- package/lib/worker/__mock__/sodium.worker.js +0 -57
- package/lib/worker/md5.js +0 -43
- package/lib/worker/sodium.js +0 -155
- package/lib/worker/workerCodes.js +0 -3
- package/lib/zeus/const.js +0 -1671
- package/lib/zeus/index.d.ts +0 -33302
- package/lib/zeus/index.js +0 -558
|
@@ -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" | "
|
|
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
|
+
}
|