@secrecy/lib 1.0.0-dev.64 → 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 -430
- 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 -196
- 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 -65
- 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 -227
- 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 -1411
- 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 -177
- 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 -1022
- 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 -36
- 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 -73
- 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 -33
- 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 -43
- 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 -88
- 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 -113
- 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 -46
- 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 -135
- 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 -195
- 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 -45
- 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 -23
- 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 -539
- 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 -58
- 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 -12
- 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 -47
- 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 -24
- 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 -118
- 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 -1287
- 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 -562
- package/dist/zeus/index.js.map +1 -0
- package/package.json +17 -20
|
@@ -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,88 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
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; }
|
|
4
|
-
import { sodium } from "../../sodium.js";
|
|
5
|
-
import { decryptCryptoBox } from "../../crypto/index.js";
|
|
6
|
-
import { nodesCache } from "../../cache.js";
|
|
7
|
-
import { decryptSecretstream } from "../../crypto/file.js";
|
|
8
|
-
import { gqlFileToInternal, internalFileToFile } from "./file.js";
|
|
9
|
-
export async function gqlNodeToInternal(gql, keyPair) {
|
|
10
|
-
if (!gql.access) {
|
|
11
|
-
throw `Can't access Node ${gql.id}`;
|
|
12
|
-
}
|
|
13
|
-
const internal = {
|
|
14
|
-
id: gql.id,
|
|
15
|
-
type: gql.type,
|
|
16
|
-
access: gql.access,
|
|
17
|
-
name: gql.name,
|
|
18
|
-
isFavorite: gql.isFavorite,
|
|
19
|
-
breadcrumb: gql.breadcrumb,
|
|
20
|
-
createdBy: gql.createdBy.user,
|
|
21
|
-
sizes: {
|
|
22
|
-
size: BigInt(gql.sizes.size),
|
|
23
|
-
sizeBefore: BigInt(gql.sizes.sizeBefore)
|
|
24
|
-
},
|
|
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
|
-
parentId: gql.parentId ?? null,
|
|
30
|
-
currentFileId: gql.currentFileId ?? null
|
|
31
|
-
};
|
|
32
|
-
internal.access = _objectSpread({}, gql.access);
|
|
33
|
-
if (gql.access.nameKey) {
|
|
34
|
-
if (!gql.access.sharedBy.keyPair) {
|
|
35
|
-
throw new Error(`Can't find keyPair for access`);
|
|
36
|
-
}
|
|
37
|
-
const key = decryptCryptoBox(sodium.from_hex(gql.access.nameKey), gql.createdBy.user.publicKey, keyPair.privateKey);
|
|
38
|
-
internal.name = sodium.to_string(await decryptSecretstream(key, sodium.from_hex(internal.name)));
|
|
39
|
-
internal.access.nameKey = sodium.to_hex(key);
|
|
40
|
-
}
|
|
41
|
-
for (const b of internal.breadcrumb) {
|
|
42
|
-
if (!b.nameKey) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
const key = decryptCryptoBox(sodium.from_hex(b.nameKey), b.pubKey, keyPair.privateKey);
|
|
46
|
-
b.nameKey = sodium.to_hex(key);
|
|
47
|
-
b.name = sodium.to_string(await decryptSecretstream(key, sodium.from_hex(b.name)));
|
|
48
|
-
}
|
|
49
|
-
nodesCache.set(internal.id, internal);
|
|
50
|
-
return internal;
|
|
51
|
-
}
|
|
52
|
-
export async function gqlNodeFullToInternalFull(gql, keyPair) {
|
|
53
|
-
const f = await gqlNodeToInternal(gql, keyPair);
|
|
54
|
-
return _objectSpread(_objectSpread({}, f), {}, {
|
|
55
|
-
current: gql.current ? gqlFileToInternal(gql.current, keyPair) : undefined,
|
|
56
|
-
parent: gql.parent ? await gqlNodeToInternal(gql.parent, keyPair) : null,
|
|
57
|
-
children: await Promise.all(gql.children.map(s => gqlNodeToInternal(s, keyPair))),
|
|
58
|
-
history: gql.history.map(f => gqlFileToInternal(f, keyPair))
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
export function internalNodeToNode(internal) {
|
|
62
|
-
var _node$access;
|
|
63
|
-
const node = _objectSpread(_objectSpread({}, internal), {}, {
|
|
64
|
-
access: internal.access ? _objectSpread({}, internal.access) : undefined
|
|
65
|
-
});
|
|
66
|
-
for (const b of node.breadcrumb) {
|
|
67
|
-
// @ts-ignore
|
|
68
|
-
delete b.pubKey;
|
|
69
|
-
}
|
|
70
|
-
// @ts-ignore
|
|
71
|
-
(_node$access = node.access) == null ? true : delete _node$access.nameKey;
|
|
72
|
-
return node;
|
|
73
|
-
}
|
|
74
|
-
export function internalNodeFullToNodeFull(internal) {
|
|
75
|
-
return _objectSpread(_objectSpread({}, internalNodeToNode(internal)), {}, {
|
|
76
|
-
parent: internal.parent ? internalNodeToNode(internal.parent) : null,
|
|
77
|
-
children: internal.children.map(internalNodeToNode),
|
|
78
|
-
history: internal.history.map(f => internalFileToFile(f)),
|
|
79
|
-
current: internal.current ? internalFileToFile(internal.current) : undefined
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
export async function gqlNodeToExternalNodeFull(gql, keyPair) {
|
|
83
|
-
return internalNodeFullToNodeFull(await gqlNodeFullToInternalFull(gql, keyPair));
|
|
84
|
-
}
|
|
85
|
-
export async function gqlNodeToExternal(gql, keyPair) {
|
|
86
|
-
return internalNodeToNode(await gqlNodeToInternal(gql, keyPair));
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94Iiwibm9kZXNDYWNoZSIsImRlY3J5cHRTZWNyZXRzdHJlYW0iLCJncWxGaWxlVG9JbnRlcm5hbCIsImludGVybmFsRmlsZVRvRmlsZSIsImdxbE5vZGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsImlkIiwiaW50ZXJuYWwiLCJ0eXBlIiwibmFtZSIsImlzRmF2b3JpdGUiLCJicmVhZGNydW1iIiwiY3JlYXRlZEJ5IiwidXNlciIsInNpemVzIiwic2l6ZSIsIkJpZ0ludCIsInNpemVCZWZvcmUiLCJjcmVhdGVkQXQiLCJEYXRlIiwidXBkYXRlZEF0IiwiZGVsZXRlZEF0IiwidXNlcnMiLCJhY2Nlc3NlcyIsIm1hcCIsInUiLCJ1c2VyQXBwIiwicmlnaHRzIiwicGFyZW50SWQiLCJjdXJyZW50RmlsZUlkIiwibmFtZUtleSIsInNoYXJlZEJ5IiwiRXJyb3IiLCJrZXkiLCJmcm9tX2hleCIsInB1YmxpY0tleSIsInByaXZhdGVLZXkiLCJ0b19zdHJpbmciLCJ0b19oZXgiLCJiIiwicHViS2V5Iiwic2V0IiwiZ3FsTm9kZUZ1bGxUb0ludGVybmFsRnVsbCIsImYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwicGFyZW50IiwiY2hpbGRyZW4iLCJQcm9taXNlIiwiYWxsIiwicyIsImhpc3RvcnkiLCJpbnRlcm5hbE5vZGVUb05vZGUiLCJub2RlIiwiaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwiLCJncWxOb2RlVG9FeHRlcm5hbE5vZGVGdWxsIiwiZ3FsTm9kZVRvRXh0ZXJuYWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBOb2RlIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdRTE5vZGUsXG4gIEludGVybmFsTm9kZSxcbiAgR1FMTm9kZUZ1bGwsXG4gIEludGVybmFsTm9kZUZ1bGwsXG4gIE5vZGVGdWxsXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgbm9kZXNDYWNoZSB9IGZyb20gXCIuLi8uLi9jYWNoZS5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgZ3FsRmlsZVRvSW50ZXJuYWwsIGludGVybmFsRmlsZVRvRmlsZSB9IGZyb20gXCIuL2ZpbGUuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0ludGVybmFsKFxuICBncWw6IEdRTE5vZGUsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlPiB7XG4gIGlmICghZ3FsLmFjY2Vzcykge1xuICAgIHRocm93IGBDYW4ndCBhY2Nlc3MgTm9kZSAke2dxbC5pZH1gO1xuICB9XG5cbiAgY29uc3QgaW50ZXJuYWw6IEludGVybmFsTm9kZSA9IHtcbiAgICBpZDogZ3FsLmlkLFxuICAgIHR5cGU6IGdxbC50eXBlLFxuICAgIGFjY2VzczogZ3FsLmFjY2VzcyxcbiAgICBuYW1lOiBncWwubmFtZSxcbiAgICBpc0Zhdm9yaXRlOiBncWwuaXNGYXZvcml0ZSxcbiAgICBicmVhZGNydW1iOiBncWwuYnJlYWRjcnVtYixcbiAgICBjcmVhdGVkQnk6IGdxbC5jcmVhdGVkQnkudXNlcixcbiAgICBzaXplczoge1xuICAgICAgc2l6ZTogQmlnSW50KGdxbC5zaXplcy5zaXplIGFzIHN0cmluZyksXG4gICAgICBzaXplQmVmb3JlOiBCaWdJbnQoZ3FsLnNpemVzLnNpemVCZWZvcmUgYXMgc3RyaW5nKVxuICAgIH0sXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgdXBkYXRlZEF0OiBuZXcgRGF0ZShncWwudXBkYXRlZEF0IGFzIHN0cmluZyksXG4gICAgZGVsZXRlZEF0OiBncWwuZGVsZXRlZEF0ID8gbmV3IERhdGUoZ3FsLmRlbGV0ZWRBdCBhcyBzdHJpbmcpIDogbnVsbCxcbiAgICB1c2VyczogZ3FsLmFjY2Vzc2VzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKSxcbiAgICBwYXJlbnRJZDogZ3FsLnBhcmVudElkID8/IG51bGwsXG4gICAgY3VycmVudEZpbGVJZDogZ3FsLmN1cnJlbnRGaWxlSWQgPz8gbnVsbFxuICB9O1xuXG4gIGludGVybmFsLmFjY2VzcyA9IHsgLi4uZ3FsLmFjY2VzcyB9O1xuXG4gIGlmIChncWwuYWNjZXNzLm5hbWVLZXkpIHtcbiAgICBpZiAoIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBmaW5kIGtleVBhaXIgZm9yIGFjY2Vzc2ApO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3MubmFtZUtleSksXG4gICAgICBncWwuY3JlYXRlZEJ5LnVzZXIucHVibGljS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcbiAgICBpbnRlcm5hbC5uYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgIGF3YWl0IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBzb2RpdW0uZnJvbV9oZXgoaW50ZXJuYWwubmFtZSkpXG4gICAgKTtcblxuICAgIGludGVybmFsLmFjY2Vzcy5uYW1lS2V5ID0gc29kaXVtLnRvX2hleChrZXkpO1xuICB9XG5cbiAgZm9yIChjb25zdCBiIG9mIGludGVybmFsLmJyZWFkY3J1bWIpIHtcbiAgICBpZiAoIWIubmFtZUtleSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IGRlY3J5cHRDcnlwdG9Cb3goXG4gICAgICBzb2RpdW0uZnJvbV9oZXgoYi5uYW1lS2V5KSxcbiAgICAgIGIucHViS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcblxuICAgIGIubmFtZUtleSA9IHNvZGl1bS50b19oZXgoa2V5KTtcblxuICAgIGIubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGIubmFtZSkpXG4gICAgKTtcbiAgfVxuXG4gIG5vZGVzQ2FjaGUuc2V0KGludGVybmFsLmlkLCBpbnRlcm5hbCk7XG4gIHJldHVybiBpbnRlcm5hbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlRnVsbD4ge1xuICBjb25zdCBmID0gYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5mLFxuICAgIGN1cnJlbnQ6IGdxbC5jdXJyZW50ID8gZ3FsRmlsZVRvSW50ZXJuYWwoZ3FsLmN1cnJlbnQsIGtleVBhaXIpIDogdW5kZWZpbmVkLFxuICAgIHBhcmVudDogZ3FsLnBhcmVudCA/IGF3YWl0IGdxbE5vZGVUb0ludGVybmFsKGdxbC5wYXJlbnQsIGtleVBhaXIpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBncWwuY2hpbGRyZW4ubWFwKHMgPT4gZ3FsTm9kZVRvSW50ZXJuYWwocywga2V5UGFpcikpXG4gICAgKSxcbiAgICBoaXN0b3J5OiBncWwuaGlzdG9yeS5tYXAoZiA9PiBncWxGaWxlVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbDogSW50ZXJuYWxOb2RlKTogTm9kZSB7XG4gIGNvbnN0IG5vZGU6IE5vZGUgPSB7XG4gICAgLi4uaW50ZXJuYWwsXG4gICAgYWNjZXNzOiBpbnRlcm5hbC5hY2Nlc3MgPyB7IC4uLmludGVybmFsLmFjY2VzcyB9IDogdW5kZWZpbmVkXG4gIH07XG5cbiAgZm9yIChjb25zdCBiIG9mIG5vZGUuYnJlYWRjcnVtYikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkZWxldGUgYi5wdWJLZXk7XG4gIH1cbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgbm9kZS5hY2Nlc3M/Lm5hbWVLZXk7XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwoXG4gIGludGVybmFsOiBJbnRlcm5hbE5vZGVGdWxsXG4pOiBOb2RlRnVsbCB7XG4gIHJldHVybiB7XG4gICAgLi4uaW50ZXJuYWxOb2RlVG9Ob2RlKGludGVybmFsKSxcbiAgICBwYXJlbnQ6IGludGVybmFsLnBhcmVudCA/IGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbC5wYXJlbnQpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogaW50ZXJuYWwuY2hpbGRyZW4ubWFwKGludGVybmFsTm9kZVRvTm9kZSksXG4gICAgaGlzdG9yeTogaW50ZXJuYWwuaGlzdG9yeS5tYXAoZiA9PiBpbnRlcm5hbEZpbGVUb0ZpbGUoZikpLFxuICAgIGN1cnJlbnQ6IGludGVybmFsLmN1cnJlbnQgPyBpbnRlcm5hbEZpbGVUb0ZpbGUoaW50ZXJuYWwuY3VycmVudCkgOiB1bmRlZmluZWRcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0V4dGVybmFsTm9kZUZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Tm9kZUZ1bGw+IHtcbiAgcmV0dXJuIGludGVybmFsTm9kZUZ1bGxUb05vZGVGdWxsKFxuICAgIGF3YWl0IGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoZ3FsLCBrZXlQYWlyKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsTm9kZVRvRXh0ZXJuYWwoXG4gIGdxbDogR1FMTm9kZSxcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxOb2RlPiB7XG4gIHJldHVybiBpbnRlcm5hbE5vZGVUb05vZGUoYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKSk7XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLE1BQU0sUUFBUSxpQkFBaUI7QUFFeEMsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBU3hELFNBQVNDLFVBQVUsUUFBUSxnQkFBZ0I7QUFDM0MsU0FBU0MsbUJBQW1CLFFBQVEsc0JBQXNCO0FBQzFELFNBQVNDLGlCQUFpQixFQUFFQyxrQkFBa0IsUUFBUSxXQUFXO0FBRWpFLE9BQU8sZUFBZUMsaUJBQWlCLENBQ3JDQyxHQUFZLEVBQ1pDLE9BQWdCLEVBQ087RUFDdkIsSUFBSSxDQUFDRCxHQUFHLENBQUNFLE1BQU0sRUFBRTtJQUNmLE1BQU8scUJBQW9CRixHQUFHLENBQUNHLEVBQUcsRUFBQztFQUNyQztFQUVBLE1BQU1DLFFBQXNCLEdBQUc7SUFDN0JELEVBQUUsRUFBRUgsR0FBRyxDQUFDRyxFQUFFO0lBQ1ZFLElBQUksRUFBRUwsR0FBRyxDQUFDSyxJQUFJO0lBQ2RILE1BQU0sRUFBRUYsR0FBRyxDQUFDRSxNQUFNO0lBQ2xCSSxJQUFJLEVBQUVOLEdBQUcsQ0FBQ00sSUFBSTtJQUNkQyxVQUFVLEVBQUVQLEdBQUcsQ0FBQ08sVUFBVTtJQUMxQkMsVUFBVSxFQUFFUixHQUFHLENBQUNRLFVBQVU7SUFDMUJDLFNBQVMsRUFBRVQsR0FBRyxDQUFDUyxTQUFTLENBQUNDLElBQUk7SUFDN0JDLEtBQUssRUFBRTtNQUNMQyxJQUFJ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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":"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","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,113 +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
|
-
const hash = window.location.hash.substr(1);
|
|
9
|
-
try {
|
|
10
|
-
const res = JSON.parse(atob(hash));
|
|
11
|
-
window.location.hash = "";
|
|
12
|
-
// TODO Add object content validation
|
|
13
|
-
return res;
|
|
14
|
-
} catch {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export const getUrl = _ref => {
|
|
19
|
-
let {
|
|
20
|
-
env,
|
|
21
|
-
hash,
|
|
22
|
-
path
|
|
23
|
-
} = _ref;
|
|
24
|
-
let envStr = "";
|
|
25
|
-
if (env === "dev") {
|
|
26
|
-
envStr = "dev.";
|
|
27
|
-
}
|
|
28
|
-
const lang = document.documentElement.lang;
|
|
29
|
-
return process.env.NEXT_PUBLIC_SECRECY_API_URL ? `http://localhost:3002${lang ? `/${lang}` : ""}${path.startsWith("/") ? path : `/${path}`}#${hash}` : `https://auth.${envStr}secrecy.me${lang ? `/${lang}` : ""}${path.startsWith("/") ? path : `/${path}`}#${hash}`;
|
|
30
|
-
};
|
|
31
|
-
export function getSecrecyClient(env, session) {
|
|
32
|
-
const storage = getStorage(session);
|
|
33
|
-
const uaSession = storage.userAppSession.load();
|
|
34
|
-
const uaKeys = storage.userAppKeys.load();
|
|
35
|
-
const uaJwt = storage.jwt.load();
|
|
36
|
-
if (!uaSession || !uaKeys || !uaJwt) {
|
|
37
|
-
const infos = parseInfos();
|
|
38
|
-
if (infos) {
|
|
39
|
-
storage.userAppKeys.save(infos.keys);
|
|
40
|
-
storage.userAppSession.save(infos.uaSession);
|
|
41
|
-
storage.jwt.save(infos.jwt);
|
|
42
|
-
return new SecrecyClient(infos.uaSession, infos.keys, infos.jwt, env);
|
|
43
|
-
}
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
return new SecrecyClient(uaSession, uaKeys, uaJwt, env);
|
|
47
|
-
}
|
|
48
|
-
export function login(_temp) {
|
|
49
|
-
let {
|
|
50
|
-
appCode,
|
|
51
|
-
path,
|
|
52
|
-
redirect,
|
|
53
|
-
scopes,
|
|
54
|
-
backPath,
|
|
55
|
-
env,
|
|
56
|
-
session
|
|
57
|
-
} = _temp === void 0 ? {} : _temp;
|
|
58
|
-
return new Promise((resolve, reject) => {
|
|
59
|
-
const appUrl = window.location.origin;
|
|
60
|
-
if (appCode && !appUrl.includes("localhost")) {
|
|
61
|
-
return reject("Can't use appCode if not in localhost");
|
|
62
|
-
}
|
|
63
|
-
const client = getSecrecyClient(env);
|
|
64
|
-
if (!client) {
|
|
65
|
-
const infos = {
|
|
66
|
-
appUrl,
|
|
67
|
-
appCode,
|
|
68
|
-
redirect,
|
|
69
|
-
path,
|
|
70
|
-
scopes,
|
|
71
|
-
backPath
|
|
72
|
-
};
|
|
73
|
-
const data = btoa(JSON.stringify(infos)).replaceAll("=", "");
|
|
74
|
-
const url = getUrl({
|
|
75
|
-
env,
|
|
76
|
-
hash: data,
|
|
77
|
-
path: "login"
|
|
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
|
-
if (redirect) {
|
|
87
|
-
const infos = parseInfos();
|
|
88
|
-
if (infos) {
|
|
89
|
-
return validate(infos);
|
|
90
|
-
} else {
|
|
91
|
-
window.location.href = url;
|
|
92
|
-
return resolve(null);
|
|
93
|
-
}
|
|
94
|
-
} else {
|
|
95
|
-
popup(url, "Secrecy Login", {
|
|
96
|
-
width: 500
|
|
97
|
-
}, (err, data) => {
|
|
98
|
-
if (err) {
|
|
99
|
-
return reject(err);
|
|
100
|
-
} else {
|
|
101
|
-
const infos = data;
|
|
102
|
-
if (infos) {
|
|
103
|
-
return validate(infos);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
} else {
|
|
109
|
-
return resolve(client);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWNyZWN5Q2xpZW50IiwicG9wdXAiLCJnZXRTdG9yYWdlIiwicGFyc2VJbmZvcyIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsInN1YnN0ciIsInJlcyIsIkpTT04iLCJwYXJzZSIsImF0b2IiLCJnZXRVcmwiLCJlbnYiLCJwYXRoIiwiZW52U3RyIiwibGFuZyIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicHJvY2VzcyIsIk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTCIsInN0YXJ0c1dpdGgiLCJnZXRTZWNyZWN5Q2xpZW50Iiwic2Vzc2lvbiIsInN0b3JhZ2UiLCJ1YVNlc3Npb24iLCJ1c2VyQXBwU2Vzc2lvbiIsImxvYWQiLCJ1YUtleXMiLCJ1c2VyQXBwS2V5cyIsInVhSnd0Iiwiand0IiwiaW5mb3MiLCJzYXZlIiwia2V5cyIsImxvZ2luIiwiYXBwQ29kZSIsInJlZGlyZWN0Iiwic2NvcGVzIiwiYmFja1BhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImFwcFVybCIsIm9yaWdpbiIsImluY2x1ZGVzIiwiY2xpZW50IiwiZGF0YSIsImJ0b2EiLCJzdHJpbmdpZnkiLCJyZXBsYWNlQWxsIiwidXJsIiwidmFsaWRhdGUiLCJocmVmIiwid2lkdGgiLCJlcnIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2hlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjcmVjeUNsaWVudCB9IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBwb3B1cCB9IGZyb20gXCIuLi9Qb3B1cFRvb2xzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlY3JlY3lVc2VyQXBwIH0gZnJvbSBcIi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiLi9zdG9yYWdlLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUluZm9zKCk6IFNlY3JlY3lVc2VyQXBwIHwgbnVsbCB7XG4gIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpO1xuICB0cnkge1xuICAgIGNvbnN0IHJlcyA9IEpTT04ucGFyc2UoYXRvYihoYXNoKSk7XG4gICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSBcIlwiO1xuICAgIC8vIFRPRE8gQWRkIG9iamVjdCBjb250ZW50IHZhbGlkYXRpb25cbiAgICByZXR1cm4gcmVzO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZ2V0VXJsID0gKHtcbiAgZW52LFxuICBoYXNoLFxuICBwYXRoXG59OiB7XG4gIGVudjogc3RyaW5nO1xuICBoYXNoOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbn0pOiBzdHJpbmcgPT4ge1xuICBsZXQgZW52U3RyID0gXCJcIjtcbiAgaWYgKGVudiA9PT0gXCJkZXZcIikge1xuICAgIGVudlN0ciA9IFwiZGV2LlwiO1xuICB9XG4gIGNvbnN0IGxhbmcgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZztcbiAgcmV0dXJuIHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTFxuICAgID8gYGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMiR7bGFuZyA/IGAvJHtsYW5nfWAgOiBcIlwifSR7XG4gICAgICAgIHBhdGguc3RhcnRzV2l0aChcIi9cIikgPyBwYXRoIDogYC8ke3BhdGh9YFxuICAgICAgfSMke2hhc2h9YFxuICAgIDogYGh0dHBzOi8vYXV0aC4ke2VudlN0cn1zZWNyZWN5Lm1lJHtsYW5nID8gYC8ke2xhbmd9YCA6IFwiXCJ9JHtcbiAgICAgICAgcGF0aC5zdGFydHNXaXRoKFwiL1wiKSA/IHBhdGggOiBgLyR7cGF0aH1gXG4gICAgICB9IyR7aGFzaH1gO1xufTtcblxuZXhwb3J0IHR5cGUgSGFzaEluZm9zID0ge1xuICBhcHBVcmw6IHN0cmluZztcbiAgYmFja1BhdGg/OiBzdHJpbmc7XG4gIGFwcENvZGU/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYXRoPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcmVkaXJlY3Q/OiBib29sZWFuO1xuICBzY29wZXM/OiB7XG4gICAgZW1haWw6IGJvb2xlYW47XG4gIH07XG59O1xuZXhwb3J0IHR5cGUgU2VjcmVjeUVudiA9IFwiZGV2XCIgfCBcInByb2RcIjtcbmV4cG9ydCB0eXBlIFVzZVNlY3JlY3lQYXJhbXMgPSBPbWl0PEhhc2hJbmZvcywgXCJhcHBVcmxcIj4gJiB7XG4gIGVudjogU2VjcmVjeUVudjtcbiAgc2Vzc2lvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBWYWx1ZTxUIGV4dGVuZHMgVXNlU2VjcmVjeVBhcmFtcz4gPSBUIGV4dGVuZHMgeyByZWRpcmVjdDogdHJ1ZSB9XG4gID8gU2VjcmVjeUNsaWVudCB8IG51bGxcbiAgOiBTZWNyZWN5Q2xpZW50O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VjcmVjeUNsaWVudChcbiAgZW52OiBTZWNyZWN5RW52LFxuICBzZXNzaW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZFxuKTogU2VjcmVjeUNsaWVudCB8IG51bGwge1xuICBjb25zdCBzdG9yYWdlID0gZ2V0U3RvcmFnZShzZXNzaW9uKTtcbiAgY29uc3QgdWFTZXNzaW9uID0gc3RvcmFnZS51c2VyQXBwU2Vzc2lvbi5sb2FkKCk7XG4gIGNvbnN0IHVhS2V5cyA9IHN0b3JhZ2UudXNlckFwcEtleXMubG9hZCgpO1xuICBjb25zdCB1YUp3dCA9IHN0b3JhZ2Uuand0LmxvYWQoKTtcbiAgaWYgKCF1YVNlc3Npb24gfHwgIXVhS2V5cyB8fCAhdWFKd3QpIHtcbiAgICBjb25zdCBpbmZvcyA9IHBhcnNlSW5mb3MoKTtcbiAgICBpZiAoaW5mb3MpIHtcbiAgICAgIHN0b3JhZ2UudXNlckFwcEtleXMuc2F2ZShpbmZvcy5rZXlzKTtcbiAgICAgIHN0b3JhZ2UudXNlckFwcFNlc3Npb24uc2F2ZShpbmZvcy51YVNlc3Npb24pO1xuICAgICAgc3RvcmFnZS5qd3Quc2F2ZShpbmZvcy5qd3QpO1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZWN5Q2xpZW50KGluZm9zLnVhU2Vzc2lvbiwgaW5mb3Mua2V5cywgaW5mb3Muand0LCBlbnYpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBuZXcgU2VjcmVjeUNsaWVudCh1YVNlc3Npb24sIHVhS2V5cywgdWFKd3QsIGVudik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dpbjxUIGV4dGVuZHMgVXNlU2VjcmVjeVBhcmFtcz4oXG4gIHsgYXBwQ29kZSwgcGF0aCwgcmVkaXJlY3QsIHNjb3BlcywgYmFja1BhdGgsIGVudiwgc2Vzc2lvbiB9OiBUID0ge30gYXMgVFxuKTogUHJvbWlzZTxWYWx1ZTxUPj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGFwcFVybCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgaWYgKGFwcENvZGUgJiYgIWFwcFVybC5pbmNsdWRlcyhcImxvY2FsaG9zdFwiKSkge1xuICAgICAgcmV0dXJuIHJlamVjdChcIkNhbid0IHVzZSBhcHBDb2RlIGlmIG5vdCBpbiBsb2NhbGhvc3RcIik7XG4gICAgfVxuICAgIGNvbnN0IGNsaWVudCA9IGdldFNlY3JlY3lDbGllbnQoZW52KTtcblxuICAgIGlmICghY2xpZW50KSB7XG4gICAgICBjb25zdCBpbmZvczogSGFzaEluZm9zID0ge1xuICAgICAgICBhcHBVcmwsXG4gICAgICAgIGFwcENvZGUsXG4gICAgICAgIHJlZGlyZWN0LFxuICAgICAgICBwYXRoLFxuICAgICAgICBzY29wZXMsXG4gICAgICAgIGJhY2tQYXRoXG4gICAgICB9O1xuICAgICAgY29uc3QgZGF0YSA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkoaW5mb3MpKS5yZXBsYWNlQWxsKFwiPVwiLCBcIlwiKTtcblxuICAgICAgY29uc3QgdXJsID0gZ2V0VXJsKHtcbiAgICAgICAgZW52LFxuICAgICAgICBoYXNoOiBkYXRhLFxuICAgICAgICBwYXRoOiBcImxvZ2luXCJcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB2YWxpZGF0ZSA9IChpbmZvczogU2VjcmVjeVVzZXJBcHApOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2Uoc2Vzc2lvbik7XG4gICAgICAgIHN0b3JhZ2UudXNlckFwcFNlc3Npb24uc2F2ZShpbmZvcy51YVNlc3Npb24pO1xuICAgICAgICBzdG9yYWdlLnVzZXJBcHBLZXlzLnNhdmUoaW5mb3Mua2V5cyk7XG4gICAgICAgIHN0b3JhZ2Uuand0LnNhdmUoaW5mb3Muand0KTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoXG4gICAgICAgICAgbmV3IFNlY3JlY3lDbGllbnQoXG4gICAgICAgICAgICBpbmZvcy51YVNlc3Npb24sXG4gICAgICAgICAgICBpbmZvcy5rZXlzLFxuICAgICAgICAgICAgaW5mb3Muand0LFxuICAgICAgICAgICAgZW52XG4gICAgICAgICAgKSBhcyBWYWx1ZTxUPlxuICAgICAgICApO1xuICAgICAgfTtcblxuICAgICAgaWYgKHJlZGlyZWN0KSB7XG4gICAgICAgIGNvbnN0IGluZm9zID0gcGFyc2VJbmZvcygpO1xuICAgICAgICBpZiAoaW5mb3MpIHtcbiAgICAgICAgICByZXR1cm4gdmFsaWRhdGUoaW5mb3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwgYXMgVmFsdWU8VD4pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3B1cChcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgXCJTZWNyZWN5IExvZ2luXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgd2lkdGg6IDUwMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBpbmZvcyA9IGRhdGEgYXMgU2VjcmVjeVVzZXJBcHA7XG4gICAgICAgICAgICAgIGlmIChpbmZvcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWxpZGF0ZShpbmZvcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXNvbHZlKGNsaWVudCBhcyBWYWx1ZTxUPik7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxRQUFRLFlBQVk7QUFDMUMsU0FBU0MsS0FBSyxRQUFRLGtCQUFrQjtBQUV4QyxTQUFTQyxVQUFVLFFBQVEsY0FBYztBQUV6QyxPQUFPLFNBQVNDLFVBQVUsR0FBMEI7RUFDbEQsSUFBSSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxFQUFFO0lBQ3pCLE9BQU8sSUFBSTtFQUNiO0VBQ0EsTUFBTUEsSUFBSSxHQUFHRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0VBQzNDLElBQUk7SUFDRixNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxJQUFJLENBQUNMLElBQUksQ0FBQyxDQUFDO0lBQ2xDRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxHQUFHLEVBQUU7SUFDekI7SUFDQSxPQUFPRSxHQUFHO0VBQ1osQ0FBQyxDQUFDLE1BQU07SUFDTixPQUFPLElBQUk7RUFDYjtBQUNGO0FBRUEsT0FBTyxNQUFNSSxNQUFNLEdBQUcsUUFRUjtFQUFBLElBUlM7SUFD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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,46 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
|
-
import { BaseClient } from "../BaseClient.js";
|
|
5
|
-
import { encryptSecretstream } from "../crypto/file.js";
|
|
6
|
-
import { sodium } from "../sodium.js";
|
|
7
|
-
import { SecrecyCloudClient } from "./SecrecyCloudClient.js";
|
|
8
|
-
import { SecrecyMailClient } from "./SecrecyMailClient.js";
|
|
9
|
-
import { SecrecyAppClient } from "./SecrecyAppClient.js";
|
|
10
|
-
import { nodesCache, filesCache } from "../cache.js";
|
|
11
|
-
import { SecrecyDbClient } from "./SecrecyDbClient.js";
|
|
12
|
-
import { SecrecyWalletClient } from "./SecrecyWalletClient.js";
|
|
13
|
-
import { SecrecyPayClient } from "./SecrecyPayClient.js";
|
|
14
|
-
export const encryptName = async (name, nameKey) => {
|
|
15
|
-
const {
|
|
16
|
-
data
|
|
17
|
-
} = await encryptSecretstream(sodium.from_hex(nameKey), sodium.from_string(name));
|
|
18
|
-
const nameEncrypted = sodium.to_hex(data);
|
|
19
|
-
return nameEncrypted;
|
|
20
|
-
};
|
|
21
|
-
var _keys = /*#__PURE__*/_classPrivateFieldLooseKey("keys");
|
|
22
|
-
export class SecrecyClient extends BaseClient {
|
|
23
|
-
constructor(uaSession, uaKeys, uaJwt, env) {
|
|
24
|
-
super(uaSession, env);
|
|
25
|
-
Object.defineProperty(this, _keys, {
|
|
26
|
-
writable: true,
|
|
27
|
-
value: void 0
|
|
28
|
-
});
|
|
29
|
-
_classPrivateFieldLooseBase(this, _keys)[_keys] = uaKeys;
|
|
30
|
-
this.cloud = new SecrecyCloudClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
31
|
-
this.mail = new SecrecyMailClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
32
|
-
this.app = new SecrecyAppClient(uaJwt, this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
33
|
-
this.db = new SecrecyDbClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
34
|
-
this.wallet = new SecrecyWalletClient(this);
|
|
35
|
-
this.pay = new SecrecyPayClient(this, _classPrivateFieldLooseBase(this, _keys)[_keys], this.thunder);
|
|
36
|
-
}
|
|
37
|
-
get publicKey() {
|
|
38
|
-
return _classPrivateFieldLooseBase(this, _keys)[_keys].publicKey;
|
|
39
|
-
}
|
|
40
|
-
async logout(sessionId) {
|
|
41
|
-
nodesCache.clear();
|
|
42
|
-
filesCache.clear();
|
|
43
|
-
await super.logout(sessionId);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ2xpZW50IiwiZW5jcnlwdFNlY3JldHN0cmVhbSIsInNvZGl1bSIsIlNlY3JlY3lDbG91ZENsaWVudCIsIlNlY3JlY3lNYWlsQ2xpZW50IiwiU2VjcmVjeUFwcENsaWVudCIsIm5vZGVzQ2FjaGUiLCJmaWxlc0NhY2hlIiwiU2VjcmVjeURiQ2xpZW50IiwiU2VjcmVjeVdhbGxldENsaWVudCIsIlNlY3JlY3lQYXlDbGllbnQiLCJlbmNyeXB0TmFtZSIsIm5hbWUiLCJuYW1lS2V5IiwiZGF0YSIsImZyb21faGV4IiwiZnJvbV9zdHJpbmciLCJuYW1lRW5jcnlwdGVkIiwidG9faGV4IiwiU2VjcmVjeUNsaWVudCIsImNvbnN0cnVjdG9yIiwidWFTZXNzaW9uIiwidWFLZXlzIiwidWFKd3QiLCJlbnYiLCJjbG91ZCIsInRodW5kZXIiLCJtYWlsIiwiYXBwIiwiZGIiLCJ3YWxsZXQiLCJwYXkiLCJwdWJsaWNLZXkiLCJsb2dvdXQiLCJzZXNzaW9uSWQiLCJjbGVhciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgeyBCYXNlQ2xpZW50IH0gZnJvbSBcIi4uL0Jhc2VDbGllbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUHJvZ3Jlc3MgfSBmcm9tIFwiLi4vY3J5cHRvL2ZpbGUuanNcIjtcbmltcG9ydCB7IGVuY3J5cHRTZWNyZXRzdHJlYW0gfSBmcm9tIFwiLi4vY3J5cHRvL2ZpbGUuanNcIjtcbmltcG9ydCB7IHNvZGl1bSB9IGZyb20gXCIuLi9zb2RpdW0uanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5UGFpciB9IGZyb20gXCIuLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgU2VjcmVjeUVudiB9IGZyb20gXCIuL2hlbHBlcnMuanNcIjtcbmltcG9ydCB7IFNlY3JlY3lDbG91ZENsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lDbG91ZENsaWVudC5qc1wiO1xuaW1wb3J0IHsgU2VjcmVjeU1haWxDbGllbnQgfSBmcm9tIFwiLi9TZWNyZWN5TWFpbENsaWVudC5qc1wiO1xuaW1wb3J0IHsgU2VjcmVjeUFwcENsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lBcHBDbGllbnQuanNcIjtcbmltcG9ydCB7IG5vZGVzQ2FjaGUsIGZpbGVzQ2FjaGUgfSBmcm9tIFwiLi4vY2FjaGUuanNcIjtcbmltcG9ydCB7IFNlY3JlY3lEYkNsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lEYkNsaWVudC5qc1wiO1xuaW1wb3J0IHsgU2VjcmVjeVdhbGxldENsaWVudCB9IGZyb20gXCIuL1NlY3JlY3lXYWxsZXRDbGllbnQuanNcIjtcbmltcG9ydCB7IFNlY3JlY3lQYXlDbGllbnQgfSBmcm9tIFwiLi9TZWNyZWN5UGF5Q2xpZW50LmpzXCI7XG5cbmV4cG9ydCB0eXBlIE5ld01haWwgPSB7XG4gIGJvZHk6IHN0cmluZztcbiAgc3ViamVjdDogc3RyaW5nO1xuICBmaWxlczogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfVtdO1xuICByZWNpcGllbnRzSWRzOiBzdHJpbmdbXTtcbiAgcmVwbHlUbz86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG59O1xuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NDYWxsYmFjayA9IChwcm9ncmVzczogUHJvZ3Jlc3MpID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCBjb25zdCBlbmNyeXB0TmFtZSA9IGFzeW5jIChcbiAgbmFtZTogc3RyaW5nLFxuICBuYW1lS2V5OiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZW5jcnlwdFNlY3JldHN0cmVhbShcbiAgICBzb2RpdW0uZnJvbV9oZXgobmFtZUtleSksXG4gICAgc29kaXVtLmZyb21fc3RyaW5nKG5hbWUpXG4gICk7XG4gIGNvbnN0IG5hbWVFbmNyeXB0ZWQgPSBzb2RpdW0udG9faGV4KGRhdGEpO1xuICByZXR1cm4gbmFtZUVuY3J5cHRlZDtcbn07XG5cbmV4cG9ydCBjbGFzcyBTZWNyZWN5Q2xpZW50IGV4dGVuZHMgQmFzZUNsaWVudCB7XG4gICNrZXlzOiBLZXlQYWlyO1xuXG4gIGNsb3VkOiBTZWNyZWN5Q2xvdWRDbGllbnQ7XG5cbiAgbWFpbDogU2VjcmVjeU1haWxDbGllbnQ7XG5cbiAgYXBwOiBTZWNyZWN5QXBwQ2xpZW50O1xuXG4gIGRiOiBTZWNyZWN5RGJDbGllbnQ7XG5cbiAgd2FsbGV0OiBTZWNyZWN5V2FsbGV0Q2xpZW50O1xuXG4gIHBheTogU2VjcmVjeVBheUNsaWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB1YVNlc3Npb246IHN0cmluZyxcbiAgICB1YUtleXM6IEtleVBhaXIsXG4gICAgdWFKd3Q6IHN0cmluZyxcbiAgICBlbnY6IFNlY3JlY3lFbnZcbiAgKSB7XG4gICAgc3VwZXIodWFTZXNzaW9uLCBlbnYpO1xuICAgIHRoaXMuI2tleXMgPSB1YUtleXM7XG4gICAgdGhpcy5jbG91ZCA9IG5ldyBTZWNyZWN5Q2xvdWRDbGllbnQodGhpcywgdGhpcy4ja2V5cywgdGhpcy50aHVuZGVyKTtcbiAgICB0aGlzLm1haWwgPSBuZXcgU2VjcmVjeU1haWxDbGllbnQodGhpcywgdGhpcy4ja2V5cywgdGhpcy50aHVuZGVyKTtcbiAgICB0aGlzLmFwcCA9IG5ldyBTZWNyZWN5QXBwQ2xpZW50KHVhSnd0LCB0aGlzLCB0aGlzLiNrZXlzLCB0aGlzLnRodW5kZXIpO1xuICAgIHRoaXMuZGIgPSBuZXcgU2VjcmVjeURiQ2xpZW50KHRoaXMsIHRoaXMuI2tleXMsIHRoaXMudGh1bmRlcik7XG4gICAgdGhpcy53YWxsZXQgPSBuZXcgU2VjcmVjeVdhbGxldENsaWVudCh0aGlzKTtcbiAgICB0aGlzLnBheSA9IG5ldyBTZWNyZWN5UGF5Q2xpZW50KHRoaXMsIHRoaXMuI2tleXMsIHRoaXMudGh1bmRlcik7XG4gIH1cblxuICBnZXQgcHVibGljS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2tleXMucHVibGljS2V5O1xuICB9XG5cbiAgYXN5bmMgbG9nb3V0KHNlc3Npb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBub2Rlc0NhY2hlLmNsZWFyKCk7XG4gICAgZmlsZXNDYWNoZS5jbGVhcigpO1xuICAgIGF3YWl0IHN1cGVyLmxvZ291dChzZXNzaW9uSWQpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQSxTQUFTQSxVQUFVLFFBQVEsa0JBQWtCO0FBRTdDLFNBQVNDLG1CQUFtQixRQUFRLG1CQUFtQjtBQUN2RCxTQUFTQyxNQUFNLFFBQVEsY0FBYztBQUdyQyxTQUFTQyxrQkFBa0IsUUFBUSx5QkFBeUI7QUFDNUQsU0FBU0MsaUJBQWlCLFFBQVEsd0JBQXdCO0FBQzFELFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyxVQUFVLEVBQUVDLFVBQVUsUUFBUSxhQUFhO0FBQ3BELFNBQVNDLGVBQWUsUUFBUSxzQkFBc0I7QUFDdEQsU0FBU0MsbUJBQW1CLFFBQVEsMEJBQTBCO0FBQzlELFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQVd4RCxPQUFPLE1BQU1DLFdBQVcsR0FBRyxPQUN6QkMsSUFBWSxFQUNaQyxPQUFlLEtBQ0s7RUFDcEIsTUFBTTtJQUFFQztFQUFLLENBQUMsR0FBRyxNQUFNYixtQkFBbUIsQ0FDeENDLE1BQU0sQ0FBQ2EsUUFBUSxDQUFDRixPQUFPLENBQUMsRUFDeEJYLE1BQU0sQ0FBQ2MsV0FBVyxDQUFDSixJQUFJLENBQUMsQ0FDekI7RUFDRCxNQUFNSyxhQUFhLEdBQUdmLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQ0osSUFBSSxDQUFDO0VBQ3pDLE9BQU9HLGFBQWE7QUFDdEIsQ0FBQztBQUFDO0FBRUYsT0FBTyxNQUFNRSxhQUFhLFNBQVNuQixVQUFVLENBQUM7RUFlNUNvQixXQUFXLENBQ1RDLFNBQWlCLEVBQ2pCQyxNQUFlLEVBQ2ZDLEtBQWEsRUFDYkMsR0FBZSxFQUNmO0lBQ0EsS0FBSyxDQUFDSCxTQUFTLEVBQUVHLEdBQUcsQ0FBQztJQUFDO01BQUE7TUFBQTtJQUFBO0lBQ3RCLGdDQUFJLGtCQUFTRixNQUFNO0lBQ25CLElBQUksQ0FBQ0csS0FBSyxHQUFHLElBQUl0QixrQkFBa0IsQ0FBQyxJQUFJLDhCQUFFLElBQUksaUJBQVEsSUFBSSxDQUFDdUIsT0FBTyxDQUFDO0lBQ25FLElBQUksQ0FBQ0MsSUFBSSxHQUFHLElBQUl2QixpQkFBaUIsQ0FBQyxJQUFJLDhCQUFFLElBQUksaUJBQVEsSUFBSSxDQUFDc0IsT0FBTyxDQUFDO0lBQ2pFLElBQUksQ0FBQ0UsR0FBRyxHQUFHLElBQUl2QixnQkFBZ0IsQ0FBQ2tCLEtBQUssRUFBRSxJQUFJLDhCQUFFLElBQUksaUJBQVEsSUFBSSxDQUFDRyxPQUFPLENBQUM7SUFDdEUsSUFBSSxDQUFDRyxFQUFFLEdBQUcsSUFBSXJCLGVBQWUsQ0FBQyxJQUFJLDhCQUFFLElBQUksaUJBQVEsSUFBSSxDQUFDa0IsT0FBTyxDQUFDO0lBQzdELElBQUksQ0FBQ0ksTUFBTSxHQUFHLElBQUlyQixtQkFBbUIsQ0FBQyxJQUFJLENBQUM7SUFDM0MsSUFBSSxDQUFDc0IsR0FBRyxHQUFHLElBQUlyQixnQkFBZ0IsQ0FBQyxJQUFJLDhCQUFFLElBQUksaUJBQVEsSUFBSSxDQUFDZ0IsT0FBTyxDQUFDO0VBQ2pFO0VBRUEsSUFBSU0sU0FBUyxHQUFXO0lBQ3RCLE9BQU8sZ0NBQUksZ0JBQU9BLFNBQVM7RUFDN0I7RUFFQSxNQUFNQyxNQUFNLENBQUNDLFNBQXFDLEVBQWlCO0lBQ2pFNUIsVUFBVSxDQUFDNkIsS0FBSyxFQUFFO0lBQ2xCNUIsVUFBVSxDQUFDNEIsS0FBSyxFQUFFO0lBQ2xCLE1BQU0sS0FBSyxDQUFDRixNQUFNLENBQUNDLFNBQVMsQ0FBQztFQUMvQjtBQUNGIn0=
|
|
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 };
|
package/dist/client/storage.js
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
const userAppSession = storeBuddy(`secrecy.user_app_session`, session).init(null);
|
|
4
|
-
const userAppKeys = storeBuddy(`secrecy.user_app_keys`, session).init(null);
|
|
5
|
-
const jwt = storeBuddy(`secrecy.jwt`, session).init(null);
|
|
6
|
-
return {
|
|
7
|
-
userAppKeys,
|
|
8
|
-
userAppSession,
|
|
9
|
-
jwt
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdG9yZUJ1ZGR5IiwiZ2V0U3RvcmFnZSIsInNlc3Npb24iLCJ1c2VyQXBwU2Vzc2lvbiIsImluaXQiLCJ1c2VyQXBwS2V5cyIsImp3dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvc3RvcmFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgU3RvcmVCdWRkeSB9IGZyb20gXCIuLi91dGlscy9zdG9yZS1idWRkeS5qc1wiO1xuaW1wb3J0IHsgc3RvcmVCdWRkeSB9IGZyb20gXCIuLi91dGlscy9zdG9yZS1idWRkeS5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZShzZXNzaW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IHtcbiAgdXNlckFwcEtleXM6IFN0b3JlQnVkZHk8S2V5UGFpciB8IG51bGw+O1xuICB1c2VyQXBwU2Vzc2lvbjogU3RvcmVCdWRkeTxzdHJpbmcgfCBudWxsPjtcbiAgand0OiBTdG9yZUJ1ZGR5PHN0cmluZyB8IG51bGw+O1xufSB7XG4gIGNvbnN0IHVzZXJBcHBTZXNzaW9uID0gc3RvcmVCdWRkeTxzdHJpbmcgfCBudWxsPihcbiAgICBgc2VjcmVjeS51c2VyX2FwcF9zZXNzaW9uYCxcbiAgICBzZXNzaW9uXG4gICkuaW5pdChudWxsKTtcbiAgY29uc3QgdXNlckFwcEtleXMgPSBzdG9yZUJ1ZGR5PEtleVBhaXIgfCBudWxsPihcbiAgICBgc2VjcmVjeS51c2VyX2FwcF9rZXlzYCxcbiAgICBzZXNzaW9uXG4gICkuaW5pdChudWxsKTtcbiAgY29uc3Qgand0ID0gc3RvcmVCdWRkeTxzdHJpbmcgfCBudWxsPihgc2VjcmVjeS5qd3RgLCBzZXNzaW9uKS5pbml0KG51bGwpO1xuICByZXR1cm4geyB1c2VyQXBwS2V5cywgdXNlckFwcFNlc3Npb24sIGp3dCB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxVQUFVLFFBQVEseUJBQXlCO0FBRXBELE9BQU8sU0FBU0MsVUFBVSxDQUFDQyxPQUE2QixFQUl0RDtFQUNBLE1BQU1DLGNBQWMsR0FBR0gsVUFBVSxDQUM5QiwwQkFBeUIsRUFDMUJFLE9BQU8sQ0FDUixDQUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDO0VBQ1osTUFBTUMsV0FBVyxHQUFHTCxVQUFVLENBQzNCLHVCQUFzQixFQUN2QkUsT0FBTyxDQUNSLENBQUNFLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDWixNQUFNRSxHQUFHLEdBQUdOLFVBQVUsQ0FBaUIsYUFBWSxFQUFFRSxPQUFPLENBQUMsQ0FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQztFQUN4RSxPQUFPO0lBQUVDLFdBQVc7SUFBRUYsY0FBYztJQUFFRztFQUFJLENBQUM7QUFDN0MifQ==
|
|
1
|
+
import"../chunk-KMTF2BZE.js";import{storeBuddy as r}from"../utils/store-buddy.js";function i(e){const t=r("secrecy.user_app_session",e).init(null),n=r("secrecy.user_app_keys",e).init(null),s=r("secrecy.jwt",e).init(null);return{userAppKeys:n,userAppSession:t,jwt:s}}export{i as getStorage};
|
|
2
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/storage.ts"],"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"],"mappings":"6BAEA,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","names":["storeBuddy","getStorage","session","userAppSession","userAppKeys","jwt"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";//# sourceMappingURL=File.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|