@secrecy/lib 1.0.0-dev.63 → 1.0.0-dev.65
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/dist/BaseClient-15fdf493.d.ts +351 -0
- package/dist/BaseClient.cjs +2 -0
- package/dist/BaseClient.cjs.map +1 -0
- package/dist/BaseClient.d.ts +16 -104
- package/dist/BaseClient.js +2 -482
- package/dist/BaseClient.js.map +1 -0
- package/dist/PopupTools.cjs +2 -0
- package/dist/PopupTools.cjs.map +1 -0
- package/dist/PopupTools.d.ts +5 -4
- package/dist/PopupTools.js +2 -216
- package/dist/PopupTools.js.map +1 -0
- package/dist/ZeusThunder.cjs +2 -0
- package/dist/ZeusThunder.cjs.map +1 -0
- package/dist/ZeusThunder.d.ts +6 -2
- package/dist/ZeusThunder.js +2 -79
- package/dist/ZeusThunder.js.map +1 -0
- package/dist/cache.cjs +2 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.ts +22 -4
- package/dist/cache.js +2 -4
- package/dist/cache.js.map +1 -0
- package/dist/chunk-5WPCTUWH.cjs +2 -0
- package/dist/chunk-5WPCTUWH.cjs.map +1 -0
- package/dist/chunk-KMTF2BZE.js +2 -0
- package/dist/chunk-KMTF2BZE.js.map +1 -0
- package/dist/client/SecrecyAppClient.cjs +2 -0
- package/dist/client/SecrecyAppClient.cjs.map +1 -0
- package/dist/client/SecrecyAppClient.d.ts +16 -17
- package/dist/client/SecrecyAppClient.js +2 -256
- package/dist/client/SecrecyAppClient.js.map +1 -0
- package/dist/client/SecrecyCloudClient.cjs +2 -0
- package/dist/client/SecrecyCloudClient.cjs.map +1 -0
- package/dist/client/SecrecyCloudClient.d.ts +16 -89
- package/dist/client/SecrecyCloudClient.js +2 -1627
- package/dist/client/SecrecyCloudClient.js.map +1 -0
- package/dist/client/SecrecyDbClient.cjs +2 -0
- package/dist/client/SecrecyDbClient.cjs.map +1 -0
- package/dist/client/SecrecyDbClient.d.ts +16 -21
- package/dist/client/SecrecyDbClient.js +2 -198
- package/dist/client/SecrecyDbClient.js.map +1 -0
- package/dist/client/SecrecyMailClient.cjs +2 -0
- package/dist/client/SecrecyMailClient.cjs.map +1 -0
- package/dist/client/SecrecyMailClient.d.ts +16 -42
- package/dist/client/SecrecyMailClient.js +2 -1187
- package/dist/client/SecrecyMailClient.js.map +1 -0
- package/dist/client/SecrecyPayClient.cjs +2 -0
- package/dist/client/SecrecyPayClient.cjs.map +1 -0
- package/dist/client/SecrecyPayClient.d.ts +16 -7
- package/dist/client/SecrecyPayClient.js +2 -37
- package/dist/client/SecrecyPayClient.js.map +1 -0
- package/dist/client/SecrecyWalletClient.cjs +2 -0
- package/dist/client/SecrecyWalletClient.cjs.map +1 -0
- package/dist/client/SecrecyWalletClient.d.ts +16 -30
- package/dist/client/SecrecyWalletClient.js +2 -76
- package/dist/client/SecrecyWalletClient.js.map +1 -0
- package/dist/client/convert/file.cjs +2 -0
- package/dist/client/convert/file.cjs.map +1 -0
- package/dist/client/convert/file.d.ts +11 -5
- package/dist/client/convert/file.js +2 -34
- package/dist/client/convert/file.js.map +1 -0
- package/dist/client/convert/mail.cjs +2 -0
- package/dist/client/convert/mail.cjs.map +1 -0
- package/dist/client/convert/mail.d.ts +13 -3
- package/dist/client/convert/mail.js +2 -48
- package/dist/client/convert/mail.js.map +1 -0
- package/dist/client/convert/node.cjs +2 -0
- package/dist/client/convert/node.cjs.map +1 -0
- package/dist/client/convert/node.d.ts +18 -9
- package/dist/client/convert/node.js +2 -100
- package/dist/client/convert/node.js.map +1 -0
- package/dist/client/helpers.cjs +2 -0
- package/dist/client/helpers.cjs.map +1 -0
- package/dist/client/helpers.d.ts +16 -28
- package/dist/client/helpers.js +2 -126
- package/dist/client/helpers.js.map +1 -0
- package/dist/client/index.cjs +2 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.ts +16 -34
- package/dist/client/index.js +2 -52
- package/dist/client/index.js.map +1 -0
- package/dist/client/storage.cjs +2 -0
- package/dist/client/storage.cjs.map +1 -0
- package/dist/client/storage.d.ts +6 -3
- package/dist/client/storage.js +2 -12
- package/dist/client/storage.js.map +1 -0
- package/dist/client/types/File.cjs +1 -0
- package/dist/client/types/File.cjs.map +1 -0
- package/dist/client/types/File.d.ts +9 -5
- package/dist/client/types/File.js +1 -3
- package/dist/client/types/File.js.map +1 -0
- package/dist/client/types/Inputs.cjs +1 -0
- package/dist/client/types/Inputs.cjs.map +1 -0
- package/dist/client/types/Inputs.d.ts +6 -4
- package/dist/client/types/Inputs.js +1 -3
- package/dist/client/types/Inputs.js.map +1 -0
- package/dist/client/types/Node.cjs +1 -0
- package/dist/client/types/Node.cjs.map +1 -0
- package/dist/client/types/Node.d.ts +9 -56
- package/dist/client/types/Node.js +1 -3
- package/dist/client/types/Node.js.map +1 -0
- package/dist/client/types/UserAppNotifications.cjs +1 -0
- package/dist/client/types/UserAppNotifications.cjs.map +1 -0
- package/dist/client/types/UserAppNotifications.d.ts +3 -1
- package/dist/client/types/UserAppNotifications.js +1 -3
- package/dist/client/types/UserAppNotifications.js.map +1 -0
- package/dist/client/types/UserAppSettings.cjs +1 -0
- package/dist/client/types/UserAppSettings.cjs.map +1 -0
- package/dist/client/types/UserAppSettings.d.ts +3 -1
- package/dist/client/types/UserAppSettings.js +1 -3
- package/dist/client/types/UserAppSettings.js.map +1 -0
- package/dist/client/types/index.cjs +2 -0
- package/dist/client/types/index.cjs.map +1 -0
- package/dist/client/types/index.d.ts +86 -30
- package/dist/client/types/index.js +2 -8
- package/dist/client/types/index.js.map +1 -0
- package/dist/client/types/selectors.cjs +2 -0
- package/dist/client/types/selectors.cjs.map +1 -0
- package/dist/client/types/selectors.d.ts +7 -5
- package/dist/client/types/selectors.js +2 -138
- package/dist/client/types/selectors.js.map +1 -0
- package/dist/crypto/file.cjs +2 -0
- package/dist/crypto/file.cjs.map +1 -0
- package/dist/crypto/file.d.ts +8 -6
- package/dist/crypto/file.js +2 -210
- package/dist/crypto/file.js.map +1 -0
- package/dist/crypto/index.cjs +2 -0
- package/dist/crypto/index.cjs.map +1 -0
- package/dist/crypto/index.d.ts +11 -9
- package/dist/crypto/index.js +2 -47
- package/dist/crypto/index.js.map +1 -0
- package/dist/error.cjs +1 -0
- package/dist/error.cjs.map +1 -0
- package/dist/error.d.ts +12 -10
- package/dist/error.js +1 -3
- package/dist/error.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -11
- package/dist/index.js +2 -9
- package/dist/index.js.map +1 -0
- package/dist/minify/index.cjs +2 -0
- package/dist/minify/index.cjs.map +1 -0
- package/dist/minify/index.d.ts +4 -2
- package/dist/minify/index.js +2 -28
- package/dist/minify/index.js.map +1 -0
- package/dist/minify/lz4.cjs +3 -0
- package/dist/minify/lz4.cjs.map +1 -0
- package/dist/minify/lz4.d.ts +7 -5
- package/dist/minify/lz4.js +3 -627
- package/dist/minify/lz4.js.map +1 -0
- package/dist/sodium.cjs +2 -0
- package/dist/sodium.cjs.map +1 -0
- package/dist/sodium.d.ts +5 -3
- package/dist/sodium.js +2 -6
- package/dist/sodium.js.map +1 -0
- package/dist/utils/store-buddy.cjs +2 -0
- package/dist/utils/store-buddy.cjs.map +1 -0
- package/dist/utils/store-buddy.d.ts +4 -3
- package/dist/utils/store-buddy.js +2 -65
- package/dist/utils/store-buddy.js.map +1 -0
- package/dist/utils/time.cjs +2 -0
- package/dist/utils/time.cjs.map +1 -0
- package/dist/utils/time.d.ts +4 -2
- package/dist/utils/time.js +2 -14
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/utils.cjs +2 -0
- package/dist/utils/utils.cjs.map +1 -0
- package/dist/utils/utils.d.ts +6 -4
- package/dist/utils/utils.js +2 -57
- package/dist/utils/utils.js.map +1 -0
- package/dist/worker/md5.cjs +2 -0
- package/dist/worker/md5.cjs.map +1 -0
- package/dist/worker/md5.d.ts +3 -1
- package/dist/worker/md5.js +2 -25
- package/dist/worker/md5.js.map +1 -0
- package/dist/worker/sodium.cjs +2 -0
- package/dist/worker/sodium.cjs.map +1 -0
- package/dist/worker/sodium.d.ts +6 -3
- package/dist/worker/sodium.js +2 -120
- package/dist/worker/sodium.js.map +1 -0
- package/dist/worker/workerCodes.cjs +254 -0
- package/dist/worker/workerCodes.cjs.map +1 -0
- package/dist/worker/workerCodes.d.ts +4 -2
- package/dist/worker/workerCodes.js +4 -5
- package/dist/worker/workerCodes.js.map +1 -0
- package/dist/zeus/const.cjs +2 -0
- package/dist/zeus/const.cjs.map +1 -0
- package/dist/zeus/const.d.ts +5 -3
- package/dist/zeus/const.js +2 -1286
- package/dist/zeus/const.js.map +1 -0
- package/dist/zeus/index.cjs +5 -0
- package/dist/zeus/index.cjs.map +1 -0
- package/dist/zeus/index.d.ts +80 -78
- package/dist/zeus/index.js +5 -687
- package/dist/zeus/index.js.map +1 -0
- package/package.json +27 -30
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { KeyPair } from '../../crypto/index.js';
|
|
2
|
+
import { GQLNode, InternalNode, GQLNodeFull, InternalNodeFull, Node, NodeFull } from '../types/index.js';
|
|
3
|
+
import '../../zeus/index.js';
|
|
4
|
+
import '../../zeus/const.js';
|
|
5
|
+
import '../types/selectors.js';
|
|
6
|
+
import '../types/File.js';
|
|
7
|
+
import '../types/UserAppSettings.js';
|
|
8
|
+
import '../types/UserAppNotifications.js';
|
|
9
|
+
import '../types/Inputs.js';
|
|
10
|
+
|
|
11
|
+
declare function gqlNodeToInternal(gql: GQLNode, keyPair: KeyPair): Promise<InternalNode>;
|
|
12
|
+
declare function gqlNodeFullToInternalFull(gql: GQLNodeFull, keyPair: KeyPair): Promise<InternalNodeFull>;
|
|
13
|
+
declare function internalNodeToNode(internal: InternalNode): Node;
|
|
14
|
+
declare function internalNodeFullToNodeFull(internal: InternalNodeFull): NodeFull;
|
|
15
|
+
declare function gqlNodeToExternalNodeFull(gql: GQLNodeFull, keyPair: KeyPair): Promise<NodeFull>;
|
|
16
|
+
declare function gqlNodeToExternal(gql: GQLNode, keyPair: KeyPair): Promise<Node>;
|
|
17
|
+
|
|
18
|
+
export { gqlNodeFullToInternalFull, gqlNodeToExternal, gqlNodeToExternalNodeFull, gqlNodeToInternal, internalNodeFullToNodeFull, internalNodeToNode };
|
|
@@ -1,100 +1,2 @@
|
|
|
1
|
-
import
|
|
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
|
-
sizes: {
|
|
26
|
-
size: BigInt(gql.sizes.size),
|
|
27
|
-
sizeBefore: BigInt(gql.sizes.sizeBefore)
|
|
28
|
-
},
|
|
29
|
-
createdAt: new Date(gql.createdAt),
|
|
30
|
-
updatedAt: new Date(gql.updatedAt),
|
|
31
|
-
deletedAt: gql.deletedAt ? new Date(gql.deletedAt) : null,
|
|
32
|
-
users: gql.accesses.map(u => [u.userApp.user, u.rights]),
|
|
33
|
-
parentId: gql.parentId ?? null,
|
|
34
|
-
currentFileId: gql.currentFileId ?? null
|
|
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
|
-
current: gql.current ? gqlFileToInternal(gql.current, keyPair) : undefined,
|
|
65
|
-
parent: gql.parent ? await gqlNodeToInternal(gql.parent, keyPair) : null,
|
|
66
|
-
children: await Promise.all(gql.children.map(s => gqlNodeToInternal(s, keyPair))),
|
|
67
|
-
history: gql.history.map(f => gqlFileToInternal(f, keyPair))
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
export function internalNodeToNode(internal) {
|
|
71
|
-
var _node$access;
|
|
72
|
-
|
|
73
|
-
const node = _objectSpread(_objectSpread({}, internal), {}, {
|
|
74
|
-
access: internal.access ? _objectSpread({}, internal.access) : undefined
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
for (const b of node.breadcrumb) {
|
|
78
|
-
// @ts-ignore
|
|
79
|
-
delete b.pubKey;
|
|
80
|
-
} // @ts-ignore
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
(_node$access = node.access) == null ? true : delete _node$access.nameKey;
|
|
84
|
-
return node;
|
|
85
|
-
}
|
|
86
|
-
export function internalNodeFullToNodeFull(internal) {
|
|
87
|
-
return _objectSpread(_objectSpread({}, internalNodeToNode(internal)), {}, {
|
|
88
|
-
parent: internal.parent ? internalNodeToNode(internal.parent) : null,
|
|
89
|
-
children: internal.children.map(internalNodeToNode),
|
|
90
|
-
history: internal.history.map(f => internalFileToFile(f)),
|
|
91
|
-
current: internal.current ? internalFileToFile(internal.current) : undefined
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
export async function gqlNodeToExternalNodeFull(gql, keyPair) {
|
|
95
|
-
return internalNodeFullToNodeFull(await gqlNodeFullToInternalFull(gql, keyPair));
|
|
96
|
-
}
|
|
97
|
-
export async function gqlNodeToExternal(gql, keyPair) {
|
|
98
|
-
return internalNodeToNode(await gqlNodeToInternal(gql, keyPair));
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94Iiwibm9kZXNDYWNoZSIsImRlY3J5cHRTZWNyZXRzdHJlYW0iLCJncWxGaWxlVG9JbnRlcm5hbCIsImludGVybmFsRmlsZVRvRmlsZSIsImdxbE5vZGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsImlkIiwiaW50ZXJuYWwiLCJ0eXBlIiwibmFtZSIsImlzRmF2b3JpdGUiLCJicmVhZGNydW1iIiwiY3JlYXRlZEJ5IiwidXNlciIsInNpemVzIiwic2l6ZSIsIkJpZ0ludCIsInNpemVCZWZvcmUiLCJjcmVhdGVkQXQiLCJEYXRlIiwidXBkYXRlZEF0IiwiZGVsZXRlZEF0IiwidXNlcnMiLCJhY2Nlc3NlcyIsIm1hcCIsInUiLCJ1c2VyQXBwIiwicmlnaHRzIiwicGFyZW50SWQiLCJjdXJyZW50RmlsZUlkIiwibmFtZUtleSIsInNoYXJlZEJ5IiwiRXJyb3IiLCJrZXkiLCJmcm9tX2hleCIsInB1YmxpY0tleSIsInByaXZhdGVLZXkiLCJ0b19zdHJpbmciLCJ0b19oZXgiLCJiIiwicHViS2V5Iiwic2V0IiwiZ3FsTm9kZUZ1bGxUb0ludGVybmFsRnVsbCIsImYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwicGFyZW50IiwiY2hpbGRyZW4iLCJQcm9taXNlIiwiYWxsIiwicyIsImhpc3RvcnkiLCJpbnRlcm5hbE5vZGVUb05vZGUiLCJub2RlIiwiaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwiLCJncWxOb2RlVG9FeHRlcm5hbE5vZGVGdWxsIiwiZ3FsTm9kZVRvRXh0ZXJuYWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBOb2RlIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdRTE5vZGUsXG4gIEludGVybmFsTm9kZSxcbiAgR1FMTm9kZUZ1bGwsXG4gIEludGVybmFsTm9kZUZ1bGwsXG4gIE5vZGVGdWxsXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgbm9kZXNDYWNoZSB9IGZyb20gXCIuLi8uLi9jYWNoZS5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgZ3FsRmlsZVRvSW50ZXJuYWwsIGludGVybmFsRmlsZVRvRmlsZSB9IGZyb20gXCIuL2ZpbGUuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0ludGVybmFsKFxuICBncWw6IEdRTE5vZGUsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlPiB7XG4gIGlmICghZ3FsLmFjY2Vzcykge1xuICAgIHRocm93IGBDYW4ndCBhY2Nlc3MgTm9kZSAke2dxbC5pZH1gO1xuICB9XG5cbiAgY29uc3QgaW50ZXJuYWw6IEludGVybmFsTm9kZSA9IHtcbiAgICBpZDogZ3FsLmlkLFxuICAgIHR5cGU6IGdxbC50eXBlLFxuICAgIGFjY2VzczogZ3FsLmFjY2VzcyxcbiAgICBuYW1lOiBncWwubmFtZSxcbiAgICBpc0Zhdm9yaXRlOiBncWwuaXNGYXZvcml0ZSxcbiAgICBicmVhZGNydW1iOiBncWwuYnJlYWRjcnVtYixcbiAgICBjcmVhdGVkQnk6IGdxbC5jcmVhdGVkQnkudXNlcixcbiAgICBzaXplczoge1xuICAgICAgc2l6ZTogQmlnSW50KGdxbC5zaXplcy5zaXplIGFzIHN0cmluZyksXG4gICAgICBzaXplQmVmb3JlOiBCaWdJbnQoZ3FsLnNpemVzLnNpemVCZWZvcmUgYXMgc3RyaW5nKVxuICAgIH0sXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgdXBkYXRlZEF0OiBuZXcgRGF0ZShncWwudXBkYXRlZEF0IGFzIHN0cmluZyksXG4gICAgZGVsZXRlZEF0OiBncWwuZGVsZXRlZEF0ID8gbmV3IERhdGUoZ3FsLmRlbGV0ZWRBdCBhcyBzdHJpbmcpIDogbnVsbCxcbiAgICB1c2VyczogZ3FsLmFjY2Vzc2VzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKSxcbiAgICBwYXJlbnRJZDogZ3FsLnBhcmVudElkID8/IG51bGwsXG4gICAgY3VycmVudEZpbGVJZDogZ3FsLmN1cnJlbnRGaWxlSWQgPz8gbnVsbFxuICB9O1xuXG4gIGludGVybmFsLmFjY2VzcyA9IHsgLi4uZ3FsLmFjY2VzcyB9O1xuXG4gIGlmIChncWwuYWNjZXNzLm5hbWVLZXkpIHtcbiAgICBpZiAoIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBmaW5kIGtleVBhaXIgZm9yIGFjY2Vzc2ApO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3MubmFtZUtleSksXG4gICAgICBncWwuY3JlYXRlZEJ5LnVzZXIucHVibGljS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcbiAgICBpbnRlcm5hbC5uYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgIGF3YWl0IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBzb2RpdW0uZnJvbV9oZXgoaW50ZXJuYWwubmFtZSkpXG4gICAgKTtcblxuICAgIGludGVybmFsLmFjY2Vzcy5uYW1lS2V5ID0gc29kaXVtLnRvX2hleChrZXkpO1xuICB9XG5cbiAgZm9yIChjb25zdCBiIG9mIGludGVybmFsLmJyZWFkY3J1bWIpIHtcbiAgICBpZiAoIWIubmFtZUtleSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IGRlY3J5cHRDcnlwdG9Cb3goXG4gICAgICBzb2RpdW0uZnJvbV9oZXgoYi5uYW1lS2V5KSxcbiAgICAgIGIucHViS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcblxuICAgIGIubmFtZUtleSA9IHNvZGl1bS50b19oZXgoa2V5KTtcblxuICAgIGIubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGIubmFtZSkpXG4gICAgKTtcbiAgfVxuXG4gIG5vZGVzQ2FjaGUuc2V0KGludGVybmFsLmlkLCBpbnRlcm5hbCk7XG4gIHJldHVybiBpbnRlcm5hbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlRnVsbD4ge1xuICBjb25zdCBmID0gYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5mLFxuICAgIGN1cnJlbnQ6IGdxbC5jdXJyZW50ID8gZ3FsRmlsZVRvSW50ZXJuYWwoZ3FsLmN1cnJlbnQsIGtleVBhaXIpIDogdW5kZWZpbmVkLFxuICAgIHBhcmVudDogZ3FsLnBhcmVudCA/IGF3YWl0IGdxbE5vZGVUb0ludGVybmFsKGdxbC5wYXJlbnQsIGtleVBhaXIpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBncWwuY2hpbGRyZW4ubWFwKHMgPT4gZ3FsTm9kZVRvSW50ZXJuYWwocywga2V5UGFpcikpXG4gICAgKSxcbiAgICBoaXN0b3J5OiBncWwuaGlzdG9yeS5tYXAoZiA9PiBncWxGaWxlVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbDogSW50ZXJuYWxOb2RlKTogTm9kZSB7XG4gIGNvbnN0IG5vZGU6IE5vZGUgPSB7XG4gICAgLi4uaW50ZXJuYWwsXG4gICAgYWNjZXNzOiBpbnRlcm5hbC5hY2Nlc3MgPyB7IC4uLmludGVybmFsLmFjY2VzcyB9IDogdW5kZWZpbmVkXG4gIH07XG5cbiAgZm9yIChjb25zdCBiIG9mIG5vZGUuYnJlYWRjcnVtYikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkZWxldGUgYi5wdWJLZXk7XG4gIH1cbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgbm9kZS5hY2Nlc3M/Lm5hbWVLZXk7XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwoXG4gIGludGVybmFsOiBJbnRlcm5hbE5vZGVGdWxsXG4pOiBOb2RlRnVsbCB7XG4gIHJldHVybiB7XG4gICAgLi4uaW50ZXJuYWxOb2RlVG9Ob2RlKGludGVybmFsKSxcbiAgICBwYXJlbnQ6IGludGVybmFsLnBhcmVudCA/IGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbC5wYXJlbnQpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogaW50ZXJuYWwuY2hpbGRyZW4ubWFwKGludGVybmFsTm9kZVRvTm9kZSksXG4gICAgaGlzdG9yeTogaW50ZXJuYWwuaGlzdG9yeS5tYXAoZiA9PiBpbnRlcm5hbEZpbGVUb0ZpbGUoZikpLFxuICAgIGN1cnJlbnQ6IGludGVybmFsLmN1cnJlbnQgPyBpbnRlcm5hbEZpbGVUb0ZpbGUoaW50ZXJuYWwuY3VycmVudCkgOiB1bmRlZmluZWRcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0V4dGVybmFsTm9kZUZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Tm9kZUZ1bGw+IHtcbiAgcmV0dXJuIGludGVybmFsTm9kZUZ1bGxUb05vZGVGdWxsKFxuICAgIGF3YWl0IGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoZ3FsLCBrZXlQYWlyKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsTm9kZVRvRXh0ZXJuYWwoXG4gIGdxbDogR1FMTm9kZSxcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxOb2RlPiB7XG4gIHJldHVybiBpbnRlcm5hbE5vZGVUb05vZGUoYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLE1BQVQsUUFBdUIsaUJBQXZCO0FBRUEsU0FBU0MsZ0JBQVQsUUFBaUMsdUJBQWpDO0FBU0EsU0FBU0MsVUFBVCxRQUEyQixnQkFBM0I7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxzQkFBcEM7QUFDQSxTQUFTQyxpQkFBVCxFQUE0QkMsa0JBQTVCLFFBQXNELFdBQXREO0FBRUEsT0FBTyxlQUFlQyxpQkFBZixDQUNMQyxHQURLLEVBRUxDLE9BRkssRUFHa0I7RUFDdkIsSUFBSSxDQUFDRCxHQUFHLENBQUNFLE1BQVQsRUFBaUI7SUFDZixNQUFPLHFCQUFvQkYsR0FBRyxDQUFDRyxFQUFHLEVBQWxDO0VBQ0Q7O0VBRUQsTUFBTUMsUUFBc0IsR0FBRztJQUM3QkQsRUFBRSxFQUFFSCxHQUFHLENBQUNHLEVBRHFCO0lBRTdCRSxJQUFJLEVBQUVMLEdBQUcsQ0FBQ0ssSUFGbUI7SUFHN0JILE1BQU0sRUFBRUYsR0FBRyxDQUFDRSxNQUhpQjtJQUk3QkksSUFBSSxFQUFFTixHQUFHLENBQUNNLElBSm1CO0lBSzdCQyxVQUFVLEVBQUVQLEdBQUcsQ0FBQ08sVUFMYTtJQU03QkMsVUFBVSxFQUFFUixHQUFHLENBQUNRLFVBTmE7SUFPN0JDLFNBQVMsRUFBRVQsR0FBRyxDQUFDUyxTQUFKLENBQWNDLElBUEk7SUFRN0JDLEtBQUssRUFBRTtN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
|
|
1
|
+
import{a as s,b as d}from"../../chunk-KMTF2BZE.js";import{sodium as a}from"../../sodium.js";import{decryptCryptoBox as p}from"../../crypto/index.js";import{nodesCache as N}from"../../cache.js";import{decryptSecretstream as l}from"../../crypto/file.js";import{gqlFileToInternal as y,internalFileToFile as f}from"./file.js";async function i(e,r){var o,u;if(!e.access)throw`Can't access Node ${e.id}`;const t={id:e.id,type:e.type,access:e.access,name:e.name,isFavorite:e.isFavorite,breadcrumb:e.breadcrumb,createdBy:e.createdBy.user,sizes:{size:BigInt(e.sizes.size),sizeBefore:BigInt(e.sizes.sizeBefore)},createdAt:new Date(e.createdAt),updatedAt:new Date(e.updatedAt),deletedAt:e.deletedAt?new Date(e.deletedAt):null,users:e.accesses.map(n=>[n.userApp.user,n.rights]),parentId:(o=e.parentId)!=null?o:null,currentFileId:(u=e.currentFileId)!=null?u:null};if(t.access=s({},e.access),e.access.nameKey){if(!e.access.sharedBy.keyPair)throw new Error("Can't find keyPair for access");const n=p(a.from_hex(e.access.nameKey),e.createdBy.user.publicKey,r.privateKey);t.name=a.to_string(await l(n,a.from_hex(t.name))),t.access.nameKey=a.to_hex(n)}for(const n of t.breadcrumb){if(!n.nameKey)continue;const m=p(a.from_hex(n.nameKey),n.pubKey,r.privateKey);n.nameKey=a.to_hex(m),n.name=a.to_string(await l(m,a.from_hex(n.name)))}return N.set(t.id,t),t}async function F(e,r){const t=await i(e,r);return d(s({},t),{current:e.current?y(e.current,r):void 0,parent:e.parent?await i(e.parent,r):null,children:await Promise.all(e.children.map(o=>i(o,r))),history:e.history.map(o=>y(o,r))})}function c(e){var t;const r=d(s({},e),{access:e.access?s({},e.access):void 0});for(const o of r.breadcrumb)delete o.pubKey;return(t=r.access)==null||delete t.nameKey,r}function h(e){return d(s({},c(e)),{parent:e.parent?c(e.parent):null,children:e.children.map(c),history:e.history.map(r=>f(r)),current:e.current?f(e.current):void 0})}async function B(e,r){return h(await F(e,r))}async function A(e,r){return c(await i(e,r))}export{F as gqlNodeFullToInternalFull,A as gqlNodeToExternal,B as gqlNodeToExternalNodeFull,i as gqlNodeToInternal,h as internalNodeFullToNodeFull,c as internalNodeToNode};
|
|
2
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/client/convert/node.ts"],"sourcesContent":["import { sodium } from \"../../sodium.js\";\nimport type { KeyPair } from \"../../crypto/index.js\";\nimport { decryptCryptoBox } from \"../../crypto/index.js\";\nimport type { Node } from \"../types/index.js\";\nimport type {\n GQLNode,\n InternalNode,\n GQLNodeFull,\n InternalNodeFull,\n NodeFull\n} from \"../types/index.js\";\nimport { nodesCache } from \"../../cache.js\";\nimport { decryptSecretstream } from \"../../crypto/file.js\";\nimport { gqlFileToInternal, internalFileToFile } from \"./file.js\";\n\nexport async function gqlNodeToInternal(\n gql: GQLNode,\n keyPair: KeyPair\n): Promise<InternalNode> {\n if (!gql.access) {\n throw `Can't access Node ${gql.id}`;\n }\n\n const internal: InternalNode = {\n id: gql.id,\n type: gql.type,\n access: gql.access,\n name: gql.name,\n isFavorite: gql.isFavorite,\n breadcrumb: gql.breadcrumb,\n createdBy: gql.createdBy.user,\n sizes: {\n size: BigInt(gql.sizes.size as string),\n sizeBefore: BigInt(gql.sizes.sizeBefore as string)\n },\n createdAt: new Date(gql.createdAt as string),\n updatedAt: new Date(gql.updatedAt as string),\n deletedAt: gql.deletedAt ? new Date(gql.deletedAt as string) : null,\n users: gql.accesses.map(u => [u.userApp.user, u.rights]),\n parentId: gql.parentId ?? null,\n currentFileId: gql.currentFileId ?? null\n };\n\n internal.access = { ...gql.access };\n\n if (gql.access.nameKey) {\n if (!gql.access.sharedBy.keyPair) {\n throw new Error(`Can't find keyPair for access`);\n }\n const key = decryptCryptoBox(\n sodium.from_hex(gql.access.nameKey),\n gql.createdBy.user.publicKey,\n keyPair.privateKey\n );\n internal.name = sodium.to_string(\n await decryptSecretstream(key, sodium.from_hex(internal.name))\n );\n\n internal.access.nameKey = sodium.to_hex(key);\n }\n\n for (const b of internal.breadcrumb) {\n if (!b.nameKey) {\n continue;\n }\n const key = decryptCryptoBox(\n sodium.from_hex(b.nameKey),\n b.pubKey,\n keyPair.privateKey\n );\n\n b.nameKey = sodium.to_hex(key);\n\n b.name = sodium.to_string(\n await decryptSecretstream(key, sodium.from_hex(b.name))\n );\n }\n\n nodesCache.set(internal.id, internal);\n return internal;\n}\n\nexport async function gqlNodeFullToInternalFull(\n gql: GQLNodeFull,\n keyPair: KeyPair\n): Promise<InternalNodeFull> {\n const f = await gqlNodeToInternal(gql, keyPair);\n return {\n ...f,\n current: gql.current ? gqlFileToInternal(gql.current, keyPair) : undefined,\n parent: gql.parent ? await gqlNodeToInternal(gql.parent, keyPair) : null,\n children: await Promise.all(\n gql.children.map(s => gqlNodeToInternal(s, keyPair))\n ),\n history: gql.history.map(f => gqlFileToInternal(f, keyPair))\n };\n}\n\nexport function internalNodeToNode(internal: InternalNode): Node {\n const node: Node = {\n ...internal,\n access: internal.access ? { ...internal.access } : undefined\n };\n\n for (const b of node.breadcrumb) {\n // @ts-ignore\n delete b.pubKey;\n }\n // @ts-ignore\n delete node.access?.nameKey;\n return node;\n}\n\nexport function internalNodeFullToNodeFull(\n internal: InternalNodeFull\n): NodeFull {\n return {\n ...internalNodeToNode(internal),\n parent: internal.parent ? internalNodeToNode(internal.parent) : null,\n children: internal.children.map(internalNodeToNode),\n history: internal.history.map(f => internalFileToFile(f)),\n current: internal.current ? internalFileToFile(internal.current) : undefined\n };\n}\n\nexport async function gqlNodeToExternalNodeFull(\n gql: GQLNodeFull,\n keyPair: KeyPair\n): Promise<NodeFull> {\n return internalNodeFullToNodeFull(\n await gqlNodeFullToInternalFull(gql, keyPair)\n );\n}\n\nexport async function gqlNodeToExternal(\n gql: GQLNode,\n keyPair: KeyPair\n): Promise<Node> {\n return internalNodeToNode(await gqlNodeToInternal(gql, keyPair));\n}\n"],"mappings":"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","names":["sodium","decryptCryptoBox","nodesCache","decryptSecretstream","gqlFileToInternal","internalFileToFile","gqlNodeToInternal","gql","keyPair","_a","_b","internal","u","__spreadValues","key","b","gqlNodeFullToInternalFull","f","__spreadProps","s","internalNodeToNode","node","internalNodeFullToNodeFull","gqlNodeToExternalNodeFull","gqlNodeToExternal"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _indexjs = require('./index.js');var _PopupToolsjs = require('../PopupTools.js');var _storagejs = require('./storage.js');function g(){if(!window.location.hash)return null;const n=window.location.hash.substr(1);try{const t=JSON.parse(atob(n));return window.location.hash="",t}catch(t){return null}}const x=({env:n,hash:t,path:e})=>{let a="";n==="dev"&&(a="dev.");const r=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`:`https://auth.${a}secrecy.me${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`};function A(n,t){const e=_storagejs.getStorage.call(void 0, t),a=e.userAppSession.load(),r=e.userAppKeys.load(),i=e.jwt.load();if(!a||!r||!i){const o=g();return o?(e.userAppKeys.save(o.keys),e.userAppSession.save(o.uaSession),e.jwt.save(o.jwt),new (0, _indexjs.SecrecyClient)(o.uaSession,o.keys,o.jwt,n)):null}return new (0, _indexjs.SecrecyClient)(a,r,i,n)}function b({appCode:n,path:t,redirect:e,scopes:a,backPath:r,env:i,session:o}={}){return new Promise((l,p)=>{const d=window.location.origin;if(n&&!d.includes("localhost"))return p("Can't use appCode if not in localhost");const y=A(i);if(y)return l(y);{const m={appUrl:d,appCode:n,redirect:e,path:t,scopes:a,backPath:r},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=s=>{const c=_storagejs.getStorage.call(void 0, o);return c.userAppSession.save(s.uaSession),c.userAppKeys.save(s.keys),c.jwt.save(s.jwt),l(new (0, _indexjs.SecrecyClient)(s.uaSession,s.keys,s.jwt,i))};if(e){const s=g();return s?f(s):(window.location.href=S,l(null))}else _PopupToolsjs.popup.call(void 0, S,"Secrecy Login",{width:500},(s,c)=>{if(s)return p(s);{const h=c;if(h)return f(h)}})}})}exports.getSecrecyClient = A; exports.getUrl = x; exports.login = b; exports.parseInfos = g;
|
|
2
|
+
//# sourceMappingURL=helpers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/helpers.ts"],"names":["SecrecyClient","popup","getStorage","parseInfos","hash","res","e","getUrl","env","path","envStr","lang","getSecrecyClient","session","storage","uaSession","uaKeys","uaJwt","infos","login","appCode","redirect","scopes","backPath","resolve","reject","appUrl","client","data","url","validate","err"],"mappings":"8BAAA,OAAS,iBAAAA,MAAqB,aAC9B,OAAS,SAAAC,MAAa,mBAEtB,OAAS,cAAAC,MAAkB,eAEpB,SAASC,GAAoC,CAClD,GAAI,CAAC,OAAO,SAAS,KACnB,OAAO,KAET,MAAMC,EAAO,OAAO,SAAS,KAAK,OAAO,CAAC,EAC1C,GAAI,CACF,MAAMC,EAAM,KAAK,MAAM,KAAKD,CAAI,CAAC,EACjC,cAAO,SAAS,KAAO,GAEhBC,CACT,OAAQC,EAAN,CACA,OAAO,IACT,CACF,CAEO,MAAMC,EAAS,CAAC,CACrB,IAAAC,EACA,KAAAJ,EACA,KAAAK,CACF,IAIc,CACZ,IAAIC,EAAS,GACTF,IAAQ,QACVE,EAAS,QAEX,MAAMC,EAAO,SAAS,gBAAgB,KACtC,OAAO,QAAQ,IAAI,4BACf,wBAAwBA,EAAO,IAAIA,IAAS,KAC1CF,EAAK,WAAW,GAAG,EAAIA,EAAO,IAAIA,OAChCL,IACJ,gBAAgBM,cAAmBC,EAAO,IAAIA,IAAS,KACrDF,EAAK,WAAW,GAAG,EAAIA,EAAO,IAAIA,OAChCL,GACV,EAsBO,SAASQ,EACdJ,EACAK,EACsB,CACtB,MAAMC,EAAUZ,EAAWW,CAAO,EAC5BE,EAAYD,EAAQ,eAAe,KAAK,EACxCE,EAASF,EAAQ,YAAY,KAAK,EAClCG,EAAQH,EAAQ,IAAI,KAAK,EAC/B,GAAI,CAACC,GAAa,CAACC,GAAU,CAACC,EAAO,CACnC,MAAMC,EAAQf,EAAW,EACzB,OAAIe,GACFJ,EAAQ,YAAY,KAAKI,EAAM,IAAI,EACnCJ,EAAQ,eAAe,KAAKI,EAAM,SAAS,EAC3CJ,EAAQ,IAAI,KAAKI,EAAM,GAAG,EACnB,IAAIlB,EAAckB,EAAM,UAAWA,EAAM,KAAMA,EAAM,IAAKV,CAAG,GAE/D,IACT,CAEA,OAAO,IAAIR,EAAce,EAAWC,EAAQC,EAAOT,CAAG,CACxD,CAEO,SAASW,EACd,CAAE,QAAAC,EAAS,KAAAX,EAAM,SAAAY,EAAU,OAAAC,EAAQ,SAAAC,EAAU,IAAAf,EAAK,QAAAK,CAAQ,EAAO,CAAC,EAC/C,CACnB,OAAO,IAAI,QAAQ,CAACW,EAASC,IAAW,CACtC,MAAMC,EAAS,OAAO,SAAS,OAC/B,GAAIN,GAAW,CAACM,EAAO,SAAS,WAAW,EACzC,OAAOD,EAAO,uCAAuC,EAEvD,MAAME,EAASf,EAAiBJ,CAAG,EAEnC,GAAKmB,EA4DH,OAAOH,EAAQG,CAAkB,EA5DtB,CACX,MAAMT,EAAmB,CACvB,OAAAQ,EACA,QAAAN,EACA,SAAAC,EACA,KAAAZ,EACA,OAAAa,EACA,SAAAC,CACF,EACMK,EAAO,KAAK,KAAK,UAAUV,CAAK,CAAC,EAAE,WAAW,IAAK,EAAE,EAErDW,EAAMtB,EAAO,CACjB,IAAAC,EACA,KAAMoB,EACN,KAAM,OACR,CAAC,EAEKE,EAAYZ,GAAgC,CAChD,MAAMJ,EAAUZ,EAAWW,CAAO,EAClC,OAAAC,EAAQ,eAAe,KAAKI,EAAM,SAAS,EAC3CJ,EAAQ,YAAY,KAAKI,EAAM,IAAI,EACnCJ,EAAQ,IAAI,KAAKI,EAAM,GAAG,EACnBM,EACL,IAAIxB,EACFkB,EAAM,UACNA,EAAM,KACNA,EAAM,IACNV,CACF,CACF,CACF,EAEA,GAAIa,EAAU,CACZ,MAAMH,EAAQf,EAAW,EACzB,OAAIe,EACKY,EAASZ,CAAK,GAErB,OAAO,SAAS,KAAOW,EAChBL,EAAQ,IAAgB,EAEnC,MACEvB,EACE4B,EACA,gBACA,CACE,MAAO,GACT,EACA,CAACE,EAAKH,IAAS,CACb,GAAIG,EACF,OAAON,EAAOM,CAAG,EACZ,CACL,MAAMb,EAAQU,EACd,GAAIV,EACF,OAAOY,EAASZ,CAAK,CAEzB,CACF,CACF,CAEJ,CAGF,CAAC,CACH","sourcesContent":["import { SecrecyClient } from \"./index.js\";\nimport { popup } from \"../PopupTools.js\";\nimport type { SecrecyUserApp } from \"./types/index.js\";\nimport { getStorage } from \"./storage.js\";\n\nexport function parseInfos(): SecrecyUserApp | null {\n if (!window.location.hash) {\n return null;\n }\n const hash = window.location.hash.substr(1);\n try {\n const res = JSON.parse(atob(hash));\n window.location.hash = \"\";\n // TODO Add object content validation\n return res;\n } catch {\n return null;\n }\n}\n\nexport const getUrl = ({\n env,\n hash,\n path\n}: {\n env: string;\n hash: string;\n path: string;\n}): string => {\n let envStr = \"\";\n if (env === \"dev\") {\n envStr = \"dev.\";\n }\n const lang = document.documentElement.lang;\n return process.env.NEXT_PUBLIC_SECRECY_API_URL\n ? `http://localhost:3002${lang ? `/${lang}` : \"\"}${\n path.startsWith(\"/\") ? path : `/${path}`\n }#${hash}`\n : `https://auth.${envStr}secrecy.me${lang ? `/${lang}` : \"\"}${\n path.startsWith(\"/\") ? path : `/${path}`\n }#${hash}`;\n};\n\nexport type HashInfos = {\n appUrl: string;\n backPath?: string;\n appCode?: string | null | undefined;\n path?: string | null | undefined;\n redirect?: boolean;\n scopes?: {\n email: boolean;\n };\n};\nexport type SecrecyEnv = \"dev\" | \"prod\";\nexport type UseSecrecyParams = Omit<HashInfos, \"appUrl\"> & {\n env: SecrecyEnv;\n session?: boolean | undefined;\n};\n\nexport type Value<T extends UseSecrecyParams> = T extends { redirect: true }\n ? SecrecyClient | null\n : SecrecyClient;\n\nexport function getSecrecyClient(\n env: SecrecyEnv,\n session?: boolean | undefined\n): SecrecyClient | null {\n const storage = getStorage(session);\n const uaSession = storage.userAppSession.load();\n const uaKeys = storage.userAppKeys.load();\n const uaJwt = storage.jwt.load();\n if (!uaSession || !uaKeys || !uaJwt) {\n const infos = parseInfos();\n if (infos) {\n storage.userAppKeys.save(infos.keys);\n storage.userAppSession.save(infos.uaSession);\n storage.jwt.save(infos.jwt);\n return new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env);\n }\n return null;\n }\n\n return new SecrecyClient(uaSession, uaKeys, uaJwt, env);\n}\n\nexport function login<T extends UseSecrecyParams>(\n { appCode, path, redirect, scopes, backPath, env, session }: T = {} as T\n): Promise<Value<T>> {\n return new Promise((resolve, reject) => {\n const appUrl = window.location.origin;\n if (appCode && !appUrl.includes(\"localhost\")) {\n return reject(\"Can't use appCode if not in localhost\");\n }\n const client = getSecrecyClient(env);\n\n if (!client) {\n const infos: HashInfos = {\n appUrl,\n appCode,\n redirect,\n path,\n scopes,\n backPath\n };\n const data = btoa(JSON.stringify(infos)).replaceAll(\"=\", \"\");\n\n const url = getUrl({\n env,\n hash: data,\n path: \"login\"\n });\n\n const validate = (infos: SecrecyUserApp): void => {\n const storage = getStorage(session);\n storage.userAppSession.save(infos.uaSession);\n storage.userAppKeys.save(infos.keys);\n storage.jwt.save(infos.jwt);\n return resolve(\n new SecrecyClient(\n infos.uaSession,\n infos.keys,\n infos.jwt,\n env\n ) as Value<T>\n );\n };\n\n if (redirect) {\n const infos = parseInfos();\n if (infos) {\n return validate(infos);\n } else {\n window.location.href = url;\n return resolve(null as Value<T>);\n }\n } else {\n popup(\n url,\n \"Secrecy Login\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n } else {\n const infos = data as SecrecyUserApp;\n if (infos) {\n return validate(infos);\n }\n }\n }\n );\n }\n } else {\n return resolve(client as Value<T>);\n }\n });\n}\n"]}
|
package/dist/client/helpers.d.ts
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
export declare type SecrecyEnv = "dev" | "prod";
|
|
20
|
-
export declare type UseSecrecyParams = Omit<HashInfos, "appUrl"> & {
|
|
21
|
-
env: SecrecyEnv;
|
|
22
|
-
session?: boolean | undefined;
|
|
23
|
-
};
|
|
24
|
-
export declare type Value<T extends UseSecrecyParams> = T extends {
|
|
25
|
-
redirect: true;
|
|
26
|
-
} ? SecrecyClient | null : SecrecyClient;
|
|
27
|
-
export declare function getSecrecyClient(env: SecrecyEnv, session?: boolean | undefined): SecrecyClient | null;
|
|
28
|
-
export declare function login<T extends UseSecrecyParams>({ appCode, path, redirect, scopes, backPath, env, session }?: T): Promise<Value<T>>;
|
|
1
|
+
export { H as HashInfos, f as SecrecyEnv, h as UseSecrecyParams, V as Value, i as getSecrecyClient, g as getUrl, l as login, p as parseInfos } from '../BaseClient-15fdf493.js';
|
|
2
|
+
import './types/index.js';
|
|
3
|
+
import 'ky';
|
|
4
|
+
import '../zeus/index.js';
|
|
5
|
+
import '../zeus/const.js';
|
|
6
|
+
import '../error.js';
|
|
7
|
+
import '../crypto/file.js';
|
|
8
|
+
import '../crypto/index.js';
|
|
9
|
+
import './types/File.js';
|
|
10
|
+
import './types/selectors.js';
|
|
11
|
+
import './types/UserAppSettings.js';
|
|
12
|
+
import './types/UserAppNotifications.js';
|
|
13
|
+
import 'jsonwebtoken';
|
|
14
|
+
import 'bson';
|
|
15
|
+
import 'ethers';
|
|
16
|
+
import './types/Inputs.js';
|
package/dist/client/helpers.js
CHANGED
|
@@ -1,126 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
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 const getUrl = _ref => {
|
|
21
|
-
let {
|
|
22
|
-
env,
|
|
23
|
-
hash,
|
|
24
|
-
path
|
|
25
|
-
} = _ref;
|
|
26
|
-
let envStr = "";
|
|
27
|
-
|
|
28
|
-
if (env === "dev") {
|
|
29
|
-
envStr = "dev.";
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const lang = document.documentElement.lang;
|
|
33
|
-
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}`;
|
|
34
|
-
};
|
|
35
|
-
export function getSecrecyClient(env, session) {
|
|
36
|
-
const storage = getStorage(session);
|
|
37
|
-
const uaSession = storage.userAppSession.load();
|
|
38
|
-
const uaKeys = storage.userAppKeys.load();
|
|
39
|
-
const uaJwt = storage.jwt.load();
|
|
40
|
-
|
|
41
|
-
if (!uaSession || !uaKeys || !uaJwt) {
|
|
42
|
-
const infos = parseInfos();
|
|
43
|
-
|
|
44
|
-
if (infos) {
|
|
45
|
-
storage.userAppKeys.save(infos.keys);
|
|
46
|
-
storage.userAppSession.save(infos.uaSession);
|
|
47
|
-
storage.jwt.save(infos.jwt);
|
|
48
|
-
return new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return new SecrecyClient(uaSession, uaKeys, uaJwt, env);
|
|
55
|
-
}
|
|
56
|
-
export function login(_temp) {
|
|
57
|
-
let {
|
|
58
|
-
appCode,
|
|
59
|
-
path,
|
|
60
|
-
redirect,
|
|
61
|
-
scopes,
|
|
62
|
-
backPath,
|
|
63
|
-
env,
|
|
64
|
-
session
|
|
65
|
-
} = _temp === void 0 ? {} : _temp;
|
|
66
|
-
return new Promise((resolve, reject) => {
|
|
67
|
-
const appUrl = window.location.origin;
|
|
68
|
-
|
|
69
|
-
if (appCode && !appUrl.includes("localhost")) {
|
|
70
|
-
return reject("Can't use appCode if not in localhost");
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const client = getSecrecyClient(env);
|
|
74
|
-
|
|
75
|
-
if (!client) {
|
|
76
|
-
const infos = {
|
|
77
|
-
appUrl,
|
|
78
|
-
appCode,
|
|
79
|
-
redirect,
|
|
80
|
-
path,
|
|
81
|
-
scopes,
|
|
82
|
-
backPath
|
|
83
|
-
};
|
|
84
|
-
const data = btoa(JSON.stringify(infos)).replaceAll("=", "");
|
|
85
|
-
const url = getUrl({
|
|
86
|
-
env,
|
|
87
|
-
hash: data,
|
|
88
|
-
path: "login"
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
const validate = infos => {
|
|
92
|
-
const storage = getStorage(session);
|
|
93
|
-
storage.userAppSession.save(infos.uaSession);
|
|
94
|
-
storage.userAppKeys.save(infos.keys);
|
|
95
|
-
storage.jwt.save(infos.jwt);
|
|
96
|
-
return resolve(new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env));
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
if (redirect) {
|
|
100
|
-
const infos = parseInfos();
|
|
101
|
-
|
|
102
|
-
if (infos) {
|
|
103
|
-
return validate(infos);
|
|
104
|
-
} else {
|
|
105
|
-
window.location.href = url;
|
|
106
|
-
return resolve(null);
|
|
107
|
-
}
|
|
108
|
-
} else {
|
|
109
|
-
popup(url, "Secrecy Login", {}, (err, data) => {
|
|
110
|
-
if (err) {
|
|
111
|
-
return reject(err);
|
|
112
|
-
} else {
|
|
113
|
-
const infos = data;
|
|
114
|
-
|
|
115
|
-
if (infos) {
|
|
116
|
-
return validate(infos);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
} else {
|
|
122
|
-
return resolve(client);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWNyZWN5Q2xpZW50IiwicG9wdXAiLCJnZXRTdG9yYWdlIiwicGFyc2VJbmZvcyIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsInN1YnN0ciIsInJlcyIsIkpTT04iLCJwYXJzZSIsImF0b2IiLCJnZXRVcmwiLCJlbnYiLCJwYXRoIiwiZW52U3RyIiwibGFuZyIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicHJvY2VzcyIsIk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTCIsInN0YXJ0c1dpdGgiLCJnZXRTZWNyZWN5Q2xpZW50Iiwic2Vzc2lvbiIsInN0b3JhZ2UiLCJ1YVNlc3Npb24iLCJ1c2VyQXBwU2Vzc2lvbiIsImxvYWQiLCJ1YUtleXMiLCJ1c2VyQXBwS2V5cyIsInVhSnd0Iiwiand0IiwiaW5mb3MiLCJzYXZlIiwia2V5cyIsImxvZ2luIiwiYXBwQ29kZSIsInJlZGlyZWN0Iiwic2NvcGVzIiwiYmFja1BhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImFwcFVybCIsIm9yaWdpbiIsImluY2x1ZGVzIiwiY2xpZW50IiwiZGF0YSIsImJ0b2EiLCJzdHJpbmdpZnkiLCJyZXBsYWNlQWxsIiwidXJsIiwidmFsaWRhdGUiLCJocmVmIiwiZXJyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlY3JlY3lDbGllbnQgfSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgcG9wdXAgfSBmcm9tIFwiLi4vUG9wdXBUb29scy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTZWNyZWN5VXNlckFwcCB9IGZyb20gXCIuL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIi4vc3RvcmFnZS5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmZvcygpOiBTZWNyZWN5VXNlckFwcCB8IG51bGwge1xuICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXMgPSBKU09OLnBhcnNlKGF0b2IoaGFzaCkpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gXCJcIjtcbiAgICAvLyBUT0RPIEFkZCBvYmplY3QgY29udGVudCB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIHJlcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFVybCA9ICh7XG4gIGVudixcbiAgaGFzaCxcbiAgcGF0aFxufToge1xuICBlbnY6IHN0cmluZztcbiAgaGFzaDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG59KTogc3RyaW5nID0+IHtcbiAgbGV0IGVudlN0ciA9IFwiXCI7XG4gIGlmIChlbnYgPT09IFwiZGV2XCIpIHtcbiAgICBlbnZTdHIgPSBcImRldi5cIjtcbiAgfVxuICBjb25zdCBsYW5nID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmc7XG4gIHJldHVybiBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19TRUNSRUNZX0FQSV9VUkxcbiAgICA/IGBodHRwOi8vbG9jYWxob3N0OjMwMDIke2xhbmcgPyBgLyR7bGFuZ31gIDogXCJcIn0ke1xuICAgICAgICBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpID8gcGF0aCA6IGAvJHtwYXRofWBcbiAgICAgIH0jJHtoYXNofWBcbiAgICA6IGBodHRwczovL2F1dGguJHtlbnZTdHJ9c2VjcmVjeS5tZSR7bGFuZyA/IGAvJHtsYW5nfWAgOiBcIlwifSR7XG4gICAgICAgIHBhdGguc3RhcnRzV2l0aChcIi9cIikgPyBwYXRoIDogYC8ke3BhdGh9YFxuICAgICAgfSMke2hhc2h9YDtcbn07XG5cbmV4cG9ydCB0eXBlIEhhc2hJbmZvcyA9IHtcbiAgYXBwVXJsOiBzdHJpbmc7XG4gIGJhY2tQYXRoPzogc3RyaW5nO1xuICBhcHBDb2RlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF0aD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHJlZGlyZWN0PzogYm9vbGVhbjtcbiAgc2NvcGVzPzoge1xuICAgIGVtYWlsOiBib29sZWFuO1xuICB9O1xufTtcbmV4cG9ydCB0eXBlIFNlY3JlY3lFbnYgPSBcImRldlwiIHwgXCJwcm9kXCI7XG5leHBvcnQgdHlwZSBVc2VTZWNyZWN5UGFyYW1zID0gT21pdDxIYXNoSW5mb3MsIFwiYXBwVXJsXCI+ICYge1xuICBlbnY6IFNlY3JlY3lFbnY7XG4gIHNlc3Npb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgVmFsdWU8VCBleHRlbmRzIFVzZVNlY3JlY3lQYXJhbXM+ID0gVCBleHRlbmRzIHsgcmVkaXJlY3Q6IHRydWUgfVxuICA/IFNlY3JlY3lDbGllbnQgfCBudWxsXG4gIDogU2VjcmVjeUNsaWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlY3JlY3lDbGllbnQoXG4gIGVudjogU2VjcmVjeUVudixcbiAgc2Vzc2lvbj86IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IFNlY3JlY3lDbGllbnQgfCBudWxsIHtcbiAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2Uoc2Vzc2lvbik7XG4gIGNvbnN0IHVhU2Vzc2lvbiA9IHN0b3JhZ2UudXNlckFwcFNlc3Npb24ubG9hZCgpO1xuICBjb25zdCB1YUtleXMgPSBzdG9yYWdlLnVzZXJBcHBLZXlzLmxvYWQoKTtcbiAgY29uc3QgdWFKd3QgPSBzdG9yYWdlLmp3dC5sb2FkKCk7XG4gIGlmICghdWFTZXNzaW9uIHx8ICF1YUtleXMgfHwgIXVhSnd0KSB7XG4gICAgY29uc3QgaW5mb3MgPSBwYXJzZUluZm9zKCk7XG4gICAgaWYgKGluZm9zKSB7XG4gICAgICBzdG9yYWdlLnVzZXJBcHBLZXlzLnNhdmUoaW5mb3Mua2V5cyk7XG4gICAgICBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLnNhdmUoaW5mb3MudWFTZXNzaW9uKTtcbiAgICAgIHN0b3JhZ2Uuand0LnNhdmUoaW5mb3Muand0KTtcbiAgICAgIHJldHVybiBuZXcgU2VjcmVjeUNsaWVudChpbmZvcy51YVNlc3Npb24sIGluZm9zLmtleXMsIGluZm9zLmp3dCwgZW52KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gbmV3IFNlY3JlY3lDbGllbnQodWFTZXNzaW9uLCB1YUtleXMsIHVhSnd0LCBlbnYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9naW48VCBleHRlbmRzIFVzZVNlY3JlY3lQYXJhbXM+KFxuICB7IGFwcENvZGUsIHBhdGgsIHJlZGlyZWN0LCBzY29wZXMsIGJhY2tQYXRoLCBlbnYsIHNlc3Npb24gfTogVCA9IHt9IGFzIFRcbik6IFByb21pc2U8VmFsdWU8VD4+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBhcHBVcmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgIGlmIChhcHBDb2RlICYmICFhcHBVcmwuaW5jbHVkZXMoXCJsb2NhbGhvc3RcIikpIHtcbiAgICAgIHJldHVybiByZWplY3QoXCJDYW4ndCB1c2UgYXBwQ29kZSBpZiBub3QgaW4gbG9jYWxob3N0XCIpO1xuICAgIH1cbiAgICBjb25zdCBjbGllbnQgPSBnZXRTZWNyZWN5Q2xpZW50KGVudik7XG5cbiAgICBpZiAoIWNsaWVudCkge1xuICAgICAgY29uc3QgaW5mb3M6IEhhc2hJbmZvcyA9IHtcbiAgICAgICAgYXBwVXJsLFxuICAgICAgICBhcHBDb2RlLFxuICAgICAgICByZWRpcmVjdCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgc2NvcGVzLFxuICAgICAgICBiYWNrUGF0aFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGRhdGEgPSBidG9hKEpTT04uc3RyaW5naWZ5KGluZm9zKSkucmVwbGFjZUFsbChcIj1cIiwgXCJcIik7XG5cbiAgICAgIGNvbnN0IHVybCA9IGdldFVybCh7XG4gICAgICAgIGVudixcbiAgICAgICAgaGFzaDogZGF0YSxcbiAgICAgICAgcGF0aDogXCJsb2dpblwiXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdmFsaWRhdGUgPSAoaW5mb3M6IFNlY3JlY3lVc2VyQXBwKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKHNlc3Npb24pO1xuICAgICAgICBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLnNhdmUoaW5mb3MudWFTZXNzaW9uKTtcbiAgICAgICAgc3RvcmFnZS51c2VyQXBwS2V5cy5zYXZlKGluZm9zLmtleXMpO1xuICAgICAgICBzdG9yYWdlLmp3dC5zYXZlKGluZm9zLmp3dCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKFxuICAgICAgICAgIG5ldyBTZWNyZWN5Q2xpZW50KFxuICAgICAgICAgICAgaW5mb3MudWFTZXNzaW9uLFxuICAgICAgICAgICAgaW5mb3Mua2V5cyxcbiAgICAgICAgICAgIGluZm9zLmp3dCxcbiAgICAgICAgICAgIGVudlxuICAgICAgICAgICkgYXMgVmFsdWU8VD5cbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICBjb25zdCBpbmZvcyA9IHBhcnNlSW5mb3MoKTtcbiAgICAgICAgaWYgKGluZm9zKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbGlkYXRlKGluZm9zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsIGFzIFZhbHVlPFQ+KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9wdXAodXJsLCBcIlNlY3JlY3kgTG9naW5cIiwge30sIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGluZm9zID0gZGF0YSBhcyBTZWNyZWN5VXNlckFwcDtcbiAgICAgICAgICAgIGlmIChpbmZvcykge1xuICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGUoaW5mb3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXNvbHZlKGNsaWVudCBhcyBWYWx1ZTxUPik7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBVCxRQUE4QixZQUE5QjtBQUNBLFNBQVNDLEtBQVQsUUFBc0Isa0JBQXRCO0FBRUEsU0FBU0MsVUFBVCxRQUEyQixjQUEzQjtBQUVBLE9BQU8sU0FBU0MsVUFBVCxHQUE2QztFQUNsRCxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkMsSUFBckIsRUFBMkI7SUFDekIsT0FBTyxJQUFQO0VBQ0Q7O0VBQ0QsTUFBTUEsSUFBSSxHQUFHRixNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLElBQWhCLENBQXFCQyxNQUFyQixDQUE0QixDQUE1QixDQUFiOztFQUNBLElBQUk7SUFDRixNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0MsS0FBTCxDQUFXQyxJQUFJLENBQUNMLElBQUQsQ0FBZixDQUFaO0lBQ0FGLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkMsSUFBaEIsR0FBdUIsRUFBdkIsQ0FGRSxDQUdGOztJQUNBLE9BQU9FLEdBQVA7RUFDRCxDQUxELENBS0UsTUFBTTtJQUNOLE9BQU8sSUFBUDtFQUNEO0FBQ0Y7QUFFRCxPQUFPLE1BQU1JLE1BQU0sR0FBRyxRQVFSO0VBQUEsSUFSUztJQUNyQkMsR0FEcUI7SUFFckJQLElBRnFCO0lBR3JCUTtFQUhxQixDQVFUO0VBQ1osSUFBSUMsTUFBTSxHQUFHLEVBQWI7O0VBQ0EsSUFBSUYsR0FBRyxLQUFLLEtBQVosRUFB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
|
|
1
|
+
import"../chunk-KMTF2BZE.js";import{SecrecyClient as u}from"./index.js";import{popup as U}from"../PopupTools.js";import{getStorage as w}from"./storage.js";function g(){if(!window.location.hash)return null;const n=window.location.hash.substr(1);try{const t=JSON.parse(atob(n));return window.location.hash="",t}catch(t){return null}}const x=({env:n,hash:t,path:e})=>{let a="";n==="dev"&&(a="dev.");const r=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`:`https://auth.${a}secrecy.me${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`};function A(n,t){const e=w(t),a=e.userAppSession.load(),r=e.userAppKeys.load(),i=e.jwt.load();if(!a||!r||!i){const o=g();return o?(e.userAppKeys.save(o.keys),e.userAppSession.save(o.uaSession),e.jwt.save(o.jwt),new u(o.uaSession,o.keys,o.jwt,n)):null}return new u(a,r,i,n)}function b({appCode:n,path:t,redirect:e,scopes:a,backPath:r,env:i,session:o}={}){return new Promise((l,p)=>{const d=window.location.origin;if(n&&!d.includes("localhost"))return p("Can't use appCode if not in localhost");const y=A(i);if(y)return l(y);{const m={appUrl:d,appCode:n,redirect:e,path:t,scopes:a,backPath:r},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=s=>{const c=w(o);return c.userAppSession.save(s.uaSession),c.userAppKeys.save(s.keys),c.jwt.save(s.jwt),l(new u(s.uaSession,s.keys,s.jwt,i))};if(e){const s=g();return s?f(s):(window.location.href=S,l(null))}else U(S,"Secrecy Login",{width:500},(s,c)=>{if(s)return p(s);{const h=c;if(h)return f(h)}})}})}export{A as getSecrecyClient,x as getUrl,b as login,g as parseInfos};
|
|
2
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/helpers.ts"],"sourcesContent":["import { SecrecyClient } from \"./index.js\";\nimport { popup } from \"../PopupTools.js\";\nimport type { SecrecyUserApp } from \"./types/index.js\";\nimport { getStorage } from \"./storage.js\";\n\nexport function parseInfos(): SecrecyUserApp | null {\n if (!window.location.hash) {\n return null;\n }\n const hash = window.location.hash.substr(1);\n try {\n const res = JSON.parse(atob(hash));\n window.location.hash = \"\";\n // TODO Add object content validation\n return res;\n } catch {\n return null;\n }\n}\n\nexport const getUrl = ({\n env,\n hash,\n path\n}: {\n env: string;\n hash: string;\n path: string;\n}): string => {\n let envStr = \"\";\n if (env === \"dev\") {\n envStr = \"dev.\";\n }\n const lang = document.documentElement.lang;\n return process.env.NEXT_PUBLIC_SECRECY_API_URL\n ? `http://localhost:3002${lang ? `/${lang}` : \"\"}${\n path.startsWith(\"/\") ? path : `/${path}`\n }#${hash}`\n : `https://auth.${envStr}secrecy.me${lang ? `/${lang}` : \"\"}${\n path.startsWith(\"/\") ? path : `/${path}`\n }#${hash}`;\n};\n\nexport type HashInfos = {\n appUrl: string;\n backPath?: string;\n appCode?: string | null | undefined;\n path?: string | null | undefined;\n redirect?: boolean;\n scopes?: {\n email: boolean;\n };\n};\nexport type SecrecyEnv = \"dev\" | \"prod\";\nexport type UseSecrecyParams = Omit<HashInfos, \"appUrl\"> & {\n env: SecrecyEnv;\n session?: boolean | undefined;\n};\n\nexport type Value<T extends UseSecrecyParams> = T extends { redirect: true }\n ? SecrecyClient | null\n : SecrecyClient;\n\nexport function getSecrecyClient(\n env: SecrecyEnv,\n session?: boolean | undefined\n): SecrecyClient | null {\n const storage = getStorage(session);\n const uaSession = storage.userAppSession.load();\n const uaKeys = storage.userAppKeys.load();\n const uaJwt = storage.jwt.load();\n if (!uaSession || !uaKeys || !uaJwt) {\n const infos = parseInfos();\n if (infos) {\n storage.userAppKeys.save(infos.keys);\n storage.userAppSession.save(infos.uaSession);\n storage.jwt.save(infos.jwt);\n return new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env);\n }\n return null;\n }\n\n return new SecrecyClient(uaSession, uaKeys, uaJwt, env);\n}\n\nexport function login<T extends UseSecrecyParams>(\n { appCode, path, redirect, scopes, backPath, env, session }: T = {} as T\n): Promise<Value<T>> {\n return new Promise((resolve, reject) => {\n const appUrl = window.location.origin;\n if (appCode && !appUrl.includes(\"localhost\")) {\n return reject(\"Can't use appCode if not in localhost\");\n }\n const client = getSecrecyClient(env);\n\n if (!client) {\n const infos: HashInfos = {\n appUrl,\n appCode,\n redirect,\n path,\n scopes,\n backPath\n };\n const data = btoa(JSON.stringify(infos)).replaceAll(\"=\", \"\");\n\n const url = getUrl({\n env,\n hash: data,\n path: \"login\"\n });\n\n const validate = (infos: SecrecyUserApp): void => {\n const storage = getStorage(session);\n storage.userAppSession.save(infos.uaSession);\n storage.userAppKeys.save(infos.keys);\n storage.jwt.save(infos.jwt);\n return resolve(\n new SecrecyClient(\n infos.uaSession,\n infos.keys,\n infos.jwt,\n env\n ) as Value<T>\n );\n };\n\n if (redirect) {\n const infos = parseInfos();\n if (infos) {\n return validate(infos);\n } else {\n window.location.href = url;\n return resolve(null as Value<T>);\n }\n } else {\n popup(\n url,\n \"Secrecy Login\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n } else {\n const infos = data as SecrecyUserApp;\n if (infos) {\n return validate(infos);\n }\n }\n }\n );\n }\n } else {\n return resolve(client as Value<T>);\n }\n });\n}\n"],"mappings":"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","names":["SecrecyClient","popup","getStorage","parseInfos","hash","res","e","getUrl","env","path","envStr","lang","getSecrecyClient","session","storage","uaSession","uaKeys","uaJwt","infos","login","appCode","redirect","scopes","backPath","resolve","reject","appUrl","client","data","url","validate","err"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5WPCTUWHcjs = require('../chunk-5WPCTUWH.cjs');var e;var _BaseClientjs = require('../BaseClient.js');var _filejs = require('../crypto/file.js');var _sodiumjs = require('../sodium.js');var _SecrecyCloudClientjs = require('./SecrecyCloudClient.js');var _SecrecyMailClientjs = require('./SecrecyMailClient.js');var _SecrecyAppClientjs = require('./SecrecyAppClient.js');var _cachejs = require('../cache.js');var _SecrecyDbClientjs = require('./SecrecyDbClient.js');var _SecrecyWalletClientjs = require('./SecrecyWalletClient.js');var _SecrecyPayClientjs = require('./SecrecyPayClient.js');const D=async(n,o)=>{const{data:i}=await _filejs.encryptSecretstream.call(void 0, _sodiumjs.sodium.from_hex(o),_sodiumjs.sodium.from_string(n));return _sodiumjs.sodium.to_hex(i)};class N extends _BaseClientjs.BaseClient{constructor(i,c,y,a){super(i,a);_chunk5WPCTUWHcjs.e.call(void 0, this,e,void 0);_chunk5WPCTUWHcjs.c.call(void 0, this,"cloud");_chunk5WPCTUWHcjs.c.call(void 0, this,"mail");_chunk5WPCTUWHcjs.c.call(void 0, this,"app");_chunk5WPCTUWHcjs.c.call(void 0, this,"db");_chunk5WPCTUWHcjs.c.call(void 0, this,"wallet");_chunk5WPCTUWHcjs.c.call(void 0, this,"pay");_chunk5WPCTUWHcjs.f.call(void 0, this,e,c),this.cloud=new (0, _SecrecyCloudClientjs.SecrecyCloudClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.mail=new (0, _SecrecyMailClientjs.SecrecyMailClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.app=new (0, _SecrecyAppClientjs.SecrecyAppClient)(y,this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.db=new (0, _SecrecyDbClientjs.SecrecyDbClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.wallet=new (0, _SecrecyWalletClientjs.SecrecyWalletClient)(this),this.pay=new (0, _SecrecyPayClientjs.SecrecyPayClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder)}get publicKey(){return _chunk5WPCTUWHcjs.d.call(void 0, this,e).publicKey}async logout(i){_cachejs.nodesCache.clear(),_cachejs.filesCache.clear(),await super.logout(i)}}e=new WeakMap;exports.SecrecyClient = N; exports.encryptName = D;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/index.ts"],"names":["_keys","BaseClient","encryptSecretstream","sodium","SecrecyCloudClient","SecrecyMailClient","SecrecyAppClient","nodesCache","filesCache","SecrecyDbClient","SecrecyWalletClient","SecrecyPayClient","encryptName","name","nameKey","data","SecrecyClient","uaSession","uaKeys","uaJwt","env","__privateAdd","__publicField","__privateSet","__privateGet","sessionId"],"mappings":"+DAAA,IAAAA,EACA,OAAS,cAAAC,MAAkB,mBAE3B,OAAS,uBAAAC,MAA2B,oBACpC,OAAS,UAAAC,MAAc,eAGvB,OAAS,sBAAAC,MAA0B,0BACnC,OAAS,qBAAAC,MAAyB,yBAClC,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,cAAAC,EAAY,cAAAC,MAAkB,cACvC,OAAS,mBAAAC,MAAuB,uBAChC,OAAS,uBAAAC,MAA2B,2BACpC,OAAS,oBAAAC,MAAwB,wBAW1B,MAAMC,EAAc,MACzBC,EACAC,IACoB,CACpB,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAMb,EACrBC,EAAO,SAASW,CAAO,EACvBX,EAAO,YAAYU,CAAI,CACzB,EAEA,OADsBV,EAAO,OAAOY,CAAI,CAE1C,EAEO,MAAMC,UAAsBf,CAAW,CAe5C,YACEgB,EACAC,EACAC,EACAC,EACA,CACA,MAAMH,EAAWG,CAAG,EApBtBC,EAAA,KAAArB,EAAA,QAEAsB,EAAA,cAEAA,EAAA,aAEAA,EAAA,YAEAA,EAAA,WAEAA,EAAA,eAEAA,EAAA,YASEC,EAAA,KAAKvB,EAAQkB,GACb,KAAK,MAAQ,IAAId,EAAmB,KAAMoB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAClE,KAAK,KAAO,IAAIK,EAAkB,KAAMmB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAChE,KAAK,IAAM,IAAIM,EAAiBa,EAAO,KAAMK,EAAA,KAAKxB,GAAO,KAAK,OAAO,EACrE,KAAK,GAAK,IAAIS,EAAgB,KAAMe,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAC5D,KAAK,OAAS,IAAIU,EAAoB,IAAI,EAC1C,KAAK,IAAM,IAAIC,EAAiB,KAAMa,EAAA,KAAKxB,GAAO,KAAK,OAAO,CAChE,CAEA,IAAI,WAAoB,CACtB,OAAOwB,EAAA,KAAKxB,GAAM,SACpB,CAEA,MAAM,OAAOyB,EAAsD,CACjElB,EAAW,MAAM,EACjBC,EAAW,MAAM,EACjB,MAAM,MAAM,OAAOiB,CAAS,CAC9B,CACF,CAvCEzB,EAAA","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { BaseClient } from \"../BaseClient.js\";\nimport type { Progress } from \"../crypto/file.js\";\nimport { encryptSecretstream } from \"../crypto/file.js\";\nimport { sodium } from \"../sodium.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { SecrecyEnv } from \"./helpers.js\";\nimport { SecrecyCloudClient } from \"./SecrecyCloudClient.js\";\nimport { SecrecyMailClient } from \"./SecrecyMailClient.js\";\nimport { SecrecyAppClient } from \"./SecrecyAppClient.js\";\nimport { nodesCache, filesCache } from \"../cache.js\";\nimport { SecrecyDbClient } from \"./SecrecyDbClient.js\";\nimport { SecrecyWalletClient } from \"./SecrecyWalletClient.js\";\nimport { SecrecyPayClient } from \"./SecrecyPayClient.js\";\n\nexport type NewMail = {\n body: string;\n subject: string;\n files: { id: string; name: string }[];\n recipientsIds: string[];\n replyTo?: string | null | undefined;\n};\nexport type ProgressCallback = (progress: Progress) => Promise<void>;\n\nexport const encryptName = async (\n name: string,\n nameKey: string\n): Promise<string> => {\n const { data } = await encryptSecretstream(\n sodium.from_hex(nameKey),\n sodium.from_string(name)\n );\n const nameEncrypted = sodium.to_hex(data);\n return nameEncrypted;\n};\n\nexport class SecrecyClient extends BaseClient {\n #keys: KeyPair;\n\n cloud: SecrecyCloudClient;\n\n mail: SecrecyMailClient;\n\n app: SecrecyAppClient;\n\n db: SecrecyDbClient;\n\n wallet: SecrecyWalletClient;\n\n pay: SecrecyPayClient;\n\n constructor(\n uaSession: string,\n uaKeys: KeyPair,\n uaJwt: string,\n env: SecrecyEnv\n ) {\n super(uaSession, env);\n this.#keys = uaKeys;\n this.cloud = new SecrecyCloudClient(this, this.#keys, this.thunder);\n this.mail = new SecrecyMailClient(this, this.#keys, this.thunder);\n this.app = new SecrecyAppClient(uaJwt, this, this.#keys, this.thunder);\n this.db = new SecrecyDbClient(this, this.#keys, this.thunder);\n this.wallet = new SecrecyWalletClient(this);\n this.pay = new SecrecyPayClient(this, this.#keys, this.thunder);\n }\n\n get publicKey(): string {\n return this.#keys.publicKey;\n }\n\n async logout(sessionId?: string | null | undefined): Promise<void> {\n nodesCache.clear();\n filesCache.clear();\n await super.logout(sessionId);\n }\n}\n"]}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,34 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}[];
|
|
18
|
-
recipientsIds: string[];
|
|
19
|
-
replyTo?: string | null | undefined;
|
|
20
|
-
};
|
|
21
|
-
export declare type ProgressCallback = (progress: Progress) => Promise<void>;
|
|
22
|
-
export declare const encryptName: (name: string, nameKey: string) => Promise<string>;
|
|
23
|
-
export declare class SecrecyClient extends BaseClient {
|
|
24
|
-
#private;
|
|
25
|
-
cloud: SecrecyCloudClient;
|
|
26
|
-
mail: SecrecyMailClient;
|
|
27
|
-
app: SecrecyAppClient;
|
|
28
|
-
db: SecrecyDbClient;
|
|
29
|
-
wallet: SecrecyWalletClient;
|
|
30
|
-
pay: SecrecyPayClient;
|
|
31
|
-
constructor(uaSession: string, uaKeys: KeyPair, uaJwt: string, env: SecrecyEnv);
|
|
32
|
-
get publicKey(): string;
|
|
33
|
-
logout(sessionId?: string | null | undefined): Promise<void>;
|
|
34
|
-
}
|
|
1
|
+
export { N as NewMail, P as ProgressCallback, d as SecrecyClient, e as encryptName } from '../BaseClient-15fdf493.js';
|
|
2
|
+
import '../crypto/file.js';
|
|
3
|
+
import '../crypto/index.js';
|
|
4
|
+
import 'ky';
|
|
5
|
+
import '../zeus/index.js';
|
|
6
|
+
import '../zeus/const.js';
|
|
7
|
+
import '../error.js';
|
|
8
|
+
import './types/File.js';
|
|
9
|
+
import './types/selectors.js';
|
|
10
|
+
import './types/index.js';
|
|
11
|
+
import './types/UserAppSettings.js';
|
|
12
|
+
import './types/UserAppNotifications.js';
|
|
13
|
+
import './types/Inputs.js';
|
|
14
|
+
import 'jsonwebtoken';
|
|
15
|
+
import 'bson';
|
|
16
|
+
import 'ethers';
|
package/dist/client/index.js
CHANGED
|
@@ -1,52 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
|
-
import { BaseClient } from "../BaseClient.js";
|
|
6
|
-
import { encryptSecretstream } from "../crypto/file.js";
|
|
7
|
-
import { sodium } from "../sodium.js";
|
|
8
|
-
import { SecrecyCloudClient } from "./SecrecyCloudClient.js";
|
|
9
|
-
import { SecrecyMailClient } from "./SecrecyMailClient.js";
|
|
10
|
-
import { SecrecyAppClient } from "./SecrecyAppClient.js";
|
|
11
|
-
import { nodesCache, filesCache } from "../cache.js";
|
|
12
|
-
import { SecrecyDbClient } from "./SecrecyDbClient.js";
|
|
13
|
-
import { SecrecyWalletClient } from "./SecrecyWalletClient.js";
|
|
14
|
-
import { SecrecyPayClient } from "./SecrecyPayClient.js";
|
|
15
|
-
export const encryptName = async (name, nameKey) => {
|
|
16
|
-
const {
|
|
17
|
-
data
|
|
18
|
-
} = await encryptSecretstream(sodium.from_hex(nameKey), sodium.from_string(name));
|
|
19
|
-
const nameEncrypted = sodium.to_hex(data);
|
|
20
|
-
return nameEncrypted;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
var _keys = /*#__PURE__*/_classPrivateFieldLooseKey("keys");
|
|
24
|
-
|
|
25
|
-
export class SecrecyClient extends BaseClient {
|
|
26
|
-
constructor(uaSession, uaKeys, uaJwt, env) {
|
|
27
|
-
super(uaSession, env);
|
|
28
|
-
Object.defineProperty(this, _keys, {
|
|
29
|
-
writable: true,
|
|
30
|
-
value: void 0
|
|
31
|
-
});
|
|
32
|
-
_classPrivateFieldLooseBase(this, _keys)[_keys] = uaKeys;
|
|
33
|
-
this.cloud = new SecrecyCloudClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
34
|
-
this.mail = new SecrecyMailClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
35
|
-
this.app = new SecrecyAppClient(uaJwt, this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
36
|
-
this.db = new SecrecyDbClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
37
|
-
this.wallet = new SecrecyWalletClient(this);
|
|
38
|
-
this.pay = new SecrecyPayClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
get publicKey() {
|
|
42
|
-
return _classPrivateFieldLooseBase(this, _keys)[_keys].publicKey;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
async logout(sessionId) {
|
|
46
|
-
nodesCache.clear();
|
|
47
|
-
filesCache.clear();
|
|
48
|
-
await super.logout(sessionId);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ2xpZW50IiwiZW5jcnlwdFNlY3JldHN0cmVhbSIsInNvZGl1bSIsIlNlY3JlY3lDbG91ZENsaWVudCIsIlNlY3JlY3lNYWlsQ2xpZW50IiwiU2VjcmVjeUFwcENsaWVudCIsIm5vZGVzQ2FjaGUiLCJmaWxlc0NhY2hlIiwiU2VjcmVjeURiQ2xpZW50IiwiU2VjcmVjeVdhbGxldENsaWVudCIsIlNlY3JlY3lQYXlDbGllbnQiLCJlbmNyeXB0TmFtZSIsIm5hbWUiLCJuYW1lS2V5IiwiZGF0YSIsImZyb21faGV4IiwiZnJvbV9zdHJpbmciLCJuYW1lRW5jcnlwdGVkIiwidG9faGV4IiwiU2VjcmVjeUNsaWVudCIsImNvbnN0cnVjdG9yIiwidWFTZXNzaW9uIiwidWFLZXlzIiwidWFKd3QiLCJlbnYiLCJjbG91ZCIsInRodW5kZXIiLCJtYWlsIiwiYXBwIiwiZGIiLCJ3YWxsZXQiLCJwYXkiLCJwdWJsaWNLZXkiLCJsb2dvdXQiLCJzZXNzaW9uSWQiLCJjbGVhciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgeyBCYXNlQ2xpZW50IH0gZnJvbSBcIi4uL0Jhc2VDbGllbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUHJvZ3Jlc3MgfSBmcm9tIFwiLi4vY3J5cHRvL2ZpbGUuanNcIjtcbmltcG9ydCB7IGVuY3J5cHRTZWNyZXRzdHJlYW0gfSBmcm9tIFwiLi4vY3J5cHRvL2ZpbGUuanNcIjtcbmltcG9ydCB7IHNvZGl1bSB9IGZyb20gXCIuLi9zb2RpdW0uanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5UGFpciB9IGZyb20gXCIuLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgU2VjcmVjeUVudiB9IGZyb20gXCIuL2hlbHBlcnMuanNcIjtcbmltcG9ydCB7IFNlY3JlY3lDbG91ZENsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lDbG91ZENsaWVudC5qc1wiO1xuaW1wb3J0IHsgU2VjcmVjeU1haWxDbGllbnQgfSBmcm9tIFwiLi9TZWNyZWN5TWFpbENsaWVudC5qc1wiO1xuaW1wb3J0IHsgU2VjcmVjeUFwcENsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lBcHBDbGllbnQuanNcIjtcbmltcG9ydCB7IG5vZGVzQ2FjaGUsIGZpbGVzQ2FjaGUgfSBmcm9tIFwiLi4vY2FjaGUuanNcIjtcbmltcG9ydCB7IFNlY3JlY3lEYkNsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lEYkNsaWVudC5qc1wiO1xuaW1wb3J0IHsgU2VjcmVjeVdhbGxldENsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lXYWxsZXRDbGllbnQuanNcIjtcbmltcG9ydCB7IFNlY3JlY3lQYXlDbGllbnQgfSBmcm9tIFwiLi9TZWNyZWN5UGF5Q2xpZW50LmpzXCI7XG5cbmV4cG9ydCB0eXBlIE5ld01haWwgPSB7XG4gIGJvZHk6IHN0cmluZztcbiAgc3ViamVjdDogc3RyaW5nO1xuICBmaWxlczogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfVtdO1xuICByZWNpcGllbnRzSWRzOiBzdHJpbmdbXTtcbiAgcmVwbHlUbz86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG59O1xuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NDYWxsYmFjayA9IChwcm9ncmVzczogUHJvZ3Jlc3MpID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCBjb25zdCBlbmNyeXB0TmFtZSA9IGFzeW5jIChcbiAgbmFtZTogc3RyaW5nLFxuICBuYW1lS2V5OiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZW5jcnlwdFNlY3JldHN0cmVhbShcbiAgICBzb2RpdW0uZnJvbV9oZXgobmFtZUtleSksXG4gICAgc29kaXVtLmZyb21fc3RyaW5nKG5hbWUpXG4gICk7XG4gIGNvbnN0IG5hbWVFbmNyeXB0ZWQgPSBzb2RpdW0udG9faGV4KGRhdGEpO1xuICByZXR1cm4gbmFtZUVuY3J5cHRlZDtcbn07XG5cbmV4cG9ydCBjbGFzcyBTZWNyZWN5Q2xpZW50IGV4dGVuZHMgQmFzZUNsaWVudCB7XG4gICNrZXlzOiBLZXlQYWlyO1xuXG4gIGNsb3VkOiBTZWNyZWN5Q2xvdWRDbGllbnQ7XG5cbiAgbWFpbDogU2VjcmVjeU1haWxDbGllbnQ7XG5cbiAgYXBwOiBTZWNyZWN5QXBwQ2xpZW50O1xuXG4gIGRiOiBTZWNyZWN5RGJDbGllbnQ7XG5cbiAgd2FsbGV0OiBTZWNyZWN5V2FsbGV0Q2xpZW50O1xuXG4gIHBheTogU2VjcmVjeVBheUNsaWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB1YVNlc3Npb246IHN0cmluZyxcbiAgICB1YUtleXM6IEtleVBhaXIsXG4gICAgdWFKd3Q6IHN0cmluZyxcbiAgICBlbnY6IFNlY3JlY3lFbnZcbiAgKSB7XG4gICAgc3VwZXIodWFTZXNzaW9uLCBlbnYpO1xuICAgIHRoaXMuI2tleXMgPSB1YUtleXM7XG4gICAgdGhpcy5jbG91ZCA9IG5ldyBTZWNyZWN5Q2xvdWRDbGllbnQodGhpcywgdGhpcy4ja2V5cywgdGhpcy50aHVuZGVyKTtcbiAgICB0aGlzLm1haWwgPSBuZXcgU2VjcmVjeU1haWxDbGllbnQodGhpcywgdGhpcy4ja2V5cywgdGhpcy50aHVuZGVyKTtcbiAgICB0aGlzLmFwcCA9IG5ldyBTZWNyZWN5QXBwQ2xpZW50KHVhSnd0LCB0aGlzLCB0aGlzLiNrZXlzLCB0aGlzLnRodW5kZXIpO1xuICAgIHRoaXMuZGIgPSBuZXcgU2VjcmVjeURiQ2xpZW50KHRoaXMsIHRoaXMuI2tleXMsIHRoaXMudGh1bmRlcik7XG4gICAgdGhpcy53YWxsZXQgPSBuZXcgU2VjcmVjeVdhbGxldENsaWVudCh0aGlzKTtcbiAgICB0aGlzLnBheSA9IG5ldyBTZWNyZWN5UGF5Q2xpZW50KHRoaXMsIHRoaXMuI2tleXMsIHRoaXMudGh1bmRlcik7XG4gIH1cblxuICBnZXQgcHVibGljS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2tleXMucHVibGljS2V5O1xuICB9XG5cbiAgYXN5bmMgbG9nb3V0KHNlc3Npb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBub2Rlc0NhY2hlLmNsZWFyKCk7XG4gICAgZmlsZXNDYWNoZS5jbGVhcigpO1xuICAgIGF3YWl0IHN1cGVyLmxvZ291dChzZXNzaW9uSWQpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0EsU0FBU0EsVUFBVCxRQUEyQixrQkFBM0I7QUFFQSxTQUFTQyxtQkFBVCxRQUFvQyxtQkFBcEM7QUFDQSxTQUFTQyxNQUFULFFBQXVCLGNBQXZCO0FBR0EsU0FBU0Msa0JBQVQsUUFBbUMseUJBQW5DO0FBQ0EsU0FBU0MsaUJBQVQsUUFBa0Msd0JBQWxDO0FBQ0EsU0FBU0MsZ0JBQVQsUUFBaUMsdUJBQWpDO0FBQ0EsU0FBU0MsVUFBVCxFQUFxQkMsVUFBckIsUUFBdUMsYUFBdkM7QUFDQSxTQUFTQyxlQUFULFFBQWdDLHNCQUFoQztBQUNBLFNBQVNDLG1CQUFULFFBQW9DLDBCQUFwQztBQUNBLFNBQVNDLGdCQUFULFFBQWlDLHVCQUFqQztBQVdBLE9BQU8sTUFBTUMsV0FBVyxHQUFHLE9BQ3pCQyxJQUR5QixFQUV6QkMsT0FGeUIsS0FHTDtFQUNwQixNQUFNO0lBQUVDO0VBQUYsSUFBVyxNQUFNYixtQkFBbUIsQ0FDeENDLE1BQU0sQ0FBQ2EsUUFBUCxDQUFnQkYsT0FBaEIsQ0FEd0MsRUFFeENYLE1BQU0sQ0FBQ2MsV0FBUCxDQUFtQkosSUFBbkIsQ0FGd0MsQ0FBMUM7RUFJQSxNQUFNSyxhQUFhLEdBQUdmLE1BQU0sQ0FBQ2dCLE1BQVAsQ0FBY0osSUFBZCxDQUF0QjtFQUNBLE9BQU9HLGFBQVA7QUFDRCxDQVZNOzs7O0FBWVAsT0FBTyxNQUFNRSxhQUFOLFNBQTRCbkIsVUFBNUIsQ0FBdUM7RUFlNUNvQixXQUFXLENBQ1RDLFNBRFMsRUFFVEMsTUFGUyxFQUdUQyxLQUhTLEVBSVRDLEdBSlMsRUFLVDtJQUNBLE1BQU1ILFNBQU4sRUFBaUJHLEdBQWpCO0lBREE7TUFBQTtNQUFBO0lBQUE7SUFFQSxrREFBYUYsTUFBYjtJQUNBLEtBQUtHLEtBQUwsR0FBYSxJQUFJdEIsa0JBQUosQ0FBdUIsSUFBdkIsOEJBQTZCLElBQTdCLGlCQUF5QyxLQUFLdUIsT0FBOUMsQ0FBYjtJQUNBLEtBQUtDLElBQUwsR0FBWSxJQUFJdkIsaUJBQUosQ0FBc0IsSUFBdEIsOEJBQTRCLElBQTVCLGlCQUF3QyxLQUFLc0IsT0FBN0MsQ0FBWjtJQUNBLEtBQUtFLEdBQUwsR0FBVyxJQUFJdkIsZ0JBQUosQ0FBcUJrQixLQUFyQixFQUE0QixJQUE1Qiw4QkFBa0MsSUFBbEMsaUJBQThDLEtBQUtHLE9BQW5ELENBQVg7SUFDQSxLQUFLRyxFQUFMLEdBQVUsSUFBSXJCLGVBQUosQ0FBb0IsSUFBcEIsOEJBQTBCLElBQTFCLGlCQUFzQyxLQUFLa0IsT0FBM0MsQ0FBVjtJQUNBLEtBQUtJLE1BQUwsR0FBYyxJQUFJckIsbUJBQUosQ0FBd0IsSUFBeEIsQ0FBZDtJQUNBLEtBQUtzQixHQUFMLEdBQVcsSUFBSXJCLGdCQUFKLENBQXFCLElBQXJCLDhCQUEyQixJQUEzQixpQkFBdUMsS0FBS2dCLE9BQTVDLENBQVg7RUFDRDs7RUFFWSxJQUFUTSxTQUFTLEdBQVc7SUFDdEIsT0FBTyxnREFBV0EsU0FBbEI7RUFDRDs7RUFFVyxNQUFOQyxNQUFNLENBQUNDLFNBQUQsRUFBdUQ7SUFDakU1QixVQUFVLENBQUM2QixLQUFYO0lBQ0E1QixVQUFVLENBQUM0QixLQUFYO0lBQ0EsTUFBTSxNQUFNRixNQUFOLENBQWFDLFNBQWIsQ0FBTjtFQUNEOztBQXZDMkMifQ==
|
|
1
|
+
import{c as t,d as r,e as l,f as p}from"../chunk-KMTF2BZE.js";var e;import{BaseClient as m}from"../BaseClient.js";import{encryptSecretstream as h}from"../crypto/file.js";import{sodium as s}from"../sodium.js";import{SecrecyCloudClient as d}from"./SecrecyCloudClient.js";import{SecrecyMailClient as u}from"./SecrecyMailClient.js";import{SecrecyAppClient as g}from"./SecrecyAppClient.js";import{nodesCache as f,filesCache as C}from"../cache.js";import{SecrecyDbClient as S}from"./SecrecyDbClient.js";import{SecrecyWalletClient as w}from"./SecrecyWalletClient.js";import{SecrecyPayClient as P}from"./SecrecyPayClient.js";const D=async(n,o)=>{const{data:i}=await h(s.from_hex(o),s.from_string(n));return s.to_hex(i)};class N extends m{constructor(i,c,y,a){super(i,a);l(this,e,void 0);t(this,"cloud");t(this,"mail");t(this,"app");t(this,"db");t(this,"wallet");t(this,"pay");p(this,e,c),this.cloud=new d(this,r(this,e),this.thunder),this.mail=new u(this,r(this,e),this.thunder),this.app=new g(y,this,r(this,e),this.thunder),this.db=new S(this,r(this,e),this.thunder),this.wallet=new w(this),this.pay=new P(this,r(this,e),this.thunder)}get publicKey(){return r(this,e).publicKey}async logout(i){f.clear(),C.clear(),await super.logout(i)}}e=new WeakMap;export{N as SecrecyClient,D as encryptName};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { BaseClient } from \"../BaseClient.js\";\nimport type { Progress } from \"../crypto/file.js\";\nimport { encryptSecretstream } from \"../crypto/file.js\";\nimport { sodium } from \"../sodium.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { SecrecyEnv } from \"./helpers.js\";\nimport { SecrecyCloudClient } from \"./SecrecyCloudClient.js\";\nimport { SecrecyMailClient } from \"./SecrecyMailClient.js\";\nimport { SecrecyAppClient } from \"./SecrecyAppClient.js\";\nimport { nodesCache, filesCache } from \"../cache.js\";\nimport { SecrecyDbClient } from \"./SecrecyDbClient.js\";\nimport { SecrecyWalletClient } from \"./SecrecyWalletClient.js\";\nimport { SecrecyPayClient } from \"./SecrecyPayClient.js\";\n\nexport type NewMail = {\n body: string;\n subject: string;\n files: { id: string; name: string }[];\n recipientsIds: string[];\n replyTo?: string | null | undefined;\n};\nexport type ProgressCallback = (progress: Progress) => Promise<void>;\n\nexport const encryptName = async (\n name: string,\n nameKey: string\n): Promise<string> => {\n const { data } = await encryptSecretstream(\n sodium.from_hex(nameKey),\n sodium.from_string(name)\n );\n const nameEncrypted = sodium.to_hex(data);\n return nameEncrypted;\n};\n\nexport class SecrecyClient extends BaseClient {\n #keys: KeyPair;\n\n cloud: SecrecyCloudClient;\n\n mail: SecrecyMailClient;\n\n app: SecrecyAppClient;\n\n db: SecrecyDbClient;\n\n wallet: SecrecyWalletClient;\n\n pay: SecrecyPayClient;\n\n constructor(\n uaSession: string,\n uaKeys: KeyPair,\n uaJwt: string,\n env: SecrecyEnv\n ) {\n super(uaSession, env);\n this.#keys = uaKeys;\n this.cloud = new SecrecyCloudClient(this, this.#keys, this.thunder);\n this.mail = new SecrecyMailClient(this, this.#keys, this.thunder);\n this.app = new SecrecyAppClient(uaJwt, this, this.#keys, this.thunder);\n this.db = new SecrecyDbClient(this, this.#keys, this.thunder);\n this.wallet = new SecrecyWalletClient(this);\n this.pay = new SecrecyPayClient(this, this.#keys, this.thunder);\n }\n\n get publicKey(): string {\n return this.#keys.publicKey;\n }\n\n async logout(sessionId?: string | null | undefined): Promise<void> {\n nodesCache.clear();\n filesCache.clear();\n await super.logout(sessionId);\n }\n}\n"],"mappings":"8DAAA,IAAAA,EACA,OAAS,cAAAC,MAAkB,mBAE3B,OAAS,uBAAAC,MAA2B,oBACpC,OAAS,UAAAC,MAAc,eAGvB,OAAS,sBAAAC,MAA0B,0BACnC,OAAS,qBAAAC,MAAyB,yBAClC,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,cAAAC,EAAY,cAAAC,MAAkB,cACvC,OAAS,mBAAAC,MAAuB,uBAChC,OAAS,uBAAAC,MAA2B,2BACpC,OAAS,oBAAAC,MAAwB,wBAW1B,MAAMC,EAAc,MACzBC,EACAC,IACoB,CACpB,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAMb,EACrBC,EAAO,SAASW,CAAO,EACvBX,EAAO,YAAYU,CAAI,CACzB,EAEA,OADsBV,EAAO,OAAOY,CAAI,CAE1C,EAEO,MAAMC,UAAsBf,CAAW,CAe5C,YACEgB,EACAC,EACAC,EACAC,EACA,CACA,MAAMH,EAAWG,CAAG,EApBtBC,EAAA,KAAArB,EAAA,QAEAsB,EAAA,cAEAA,EAAA,aAEAA,EAAA,YAEAA,EAAA,WAEAA,EAAA,eAEAA,EAAA,YASEC,EAAA,KAAKvB,EAAQkB,GACb,KAAK,MAAQ,IAAId,EAAmB,KAAMoB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAClE,KAAK,KAAO,IAAIK,EAAkB,KAAMmB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAChE,KAAK,IAAM,IAAIM,EAAiBa,EAAO,KAAMK,EAAA,KAAKxB,GAAO,KAAK,OAAO,EACrE,KAAK,GAAK,IAAIS,EAAgB,KAAMe,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAC5D,KAAK,OAAS,IAAIU,EAAoB,IAAI,EAC1C,KAAK,IAAM,IAAIC,EAAiB,KAAMa,EAAA,KAAKxB,GAAO,KAAK,OAAO,CAChE,CAEA,IAAI,WAAoB,CACtB,OAAOwB,EAAA,KAAKxB,GAAM,SACpB,CAEA,MAAM,OAAOyB,EAAsD,CACjElB,EAAW,MAAM,EACjBC,EAAW,MAAM,EACjB,MAAM,MAAM,OAAOiB,CAAS,CAC9B,CACF,CAvCEzB,EAAA","names":["_keys","BaseClient","encryptSecretstream","sodium","SecrecyCloudClient","SecrecyMailClient","SecrecyAppClient","nodesCache","filesCache","SecrecyDbClient","SecrecyWalletClient","SecrecyPayClient","encryptName","name","nameKey","data","SecrecyClient","uaSession","uaKeys","uaJwt","env","__privateAdd","__publicField","__privateSet","__privateGet","sessionId"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _storebuddyjs = require('../utils/store-buddy.js');function i(e){const t=_storebuddyjs.storeBuddy.call(void 0, "secrecy.user_app_session",e).init(null),n=_storebuddyjs.storeBuddy.call(void 0, "secrecy.user_app_keys",e).init(null),s=_storebuddyjs.storeBuddy.call(void 0, "secrecy.jwt",e).init(null);return{userAppKeys:n,userAppSession:t,jwt:s}}exports.getStorage = i;
|
|
2
|
+
//# sourceMappingURL=storage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/storage.ts"],"names":["storeBuddy","getStorage","session","userAppSession","userAppKeys","jwt"],"mappings":"8BAEA,OAAS,cAAAA,MAAkB,0BAEpB,SAASC,EAAWC,EAIzB,CACA,MAAMC,EAAiBH,EACrB,2BACAE,CACF,EAAE,KAAK,IAAI,EACLE,EAAcJ,EAClB,wBACAE,CACF,EAAE,KAAK,IAAI,EACLG,EAAML,EAA0B,cAAeE,CAAO,EAAE,KAAK,IAAI,EACvE,MAAO,CAAE,YAAAE,EAAa,eAAAD,EAAgB,IAAAE,CAAI,CAC5C","sourcesContent":["import type { KeyPair } from \"../index.js\";\nimport type { StoreBuddy } from \"../utils/store-buddy.js\";\nimport { storeBuddy } from \"../utils/store-buddy.js\";\n\nexport function getStorage(session?: boolean | undefined): {\n userAppKeys: StoreBuddy<KeyPair | null>;\n userAppSession: StoreBuddy<string | null>;\n jwt: StoreBuddy<string | null>;\n} {\n const userAppSession = storeBuddy<string | null>(\n `secrecy.user_app_session`,\n session\n ).init(null);\n const userAppKeys = storeBuddy<KeyPair | null>(\n `secrecy.user_app_keys`,\n session\n ).init(null);\n const jwt = storeBuddy<string | null>(`secrecy.jwt`, session).init(null);\n return { userAppKeys, userAppSession, jwt };\n}\n"]}
|
package/dist/client/storage.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { KeyPair } from '../crypto/index.js';
|
|
2
|
+
import { StoreBuddy } from '../utils/store-buddy.js';
|
|
3
|
+
|
|
4
|
+
declare function getStorage(session?: boolean | undefined): {
|
|
4
5
|
userAppKeys: StoreBuddy<KeyPair | null>;
|
|
5
6
|
userAppSession: StoreBuddy<string | null>;
|
|
6
7
|
jwt: StoreBuddy<string | null>;
|
|
7
8
|
};
|
|
9
|
+
|
|
10
|
+
export { getStorage };
|