@secrecy/lib 1.0.0-dev.8 → 1.0.0-dev.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/BaseClient.d.ts +104 -0
- package/dist/BaseClient.js +430 -0
- package/{lib → dist}/PopupTools.d.ts +1 -1
- package/dist/PopupTools.js +196 -0
- package/{lib → dist}/ZeusThunder.d.ts +0 -0
- package/dist/ZeusThunder.js +65 -0
- package/dist/cache.d.ts +6 -0
- package/dist/cache.js +4 -0
- package/dist/client/SecrecyAppClient.d.ts +17 -0
- package/dist/client/SecrecyAppClient.js +227 -0
- package/dist/client/SecrecyCloudClient.d.ts +89 -0
- package/dist/client/SecrecyCloudClient.js +1411 -0
- package/dist/client/SecrecyDbClient.d.ts +21 -0
- package/dist/client/SecrecyDbClient.js +177 -0
- package/dist/client/SecrecyMailClient.d.ts +42 -0
- package/dist/client/SecrecyMailClient.js +1022 -0
- package/dist/client/SecrecyPayClient.d.ts +28 -0
- package/dist/client/SecrecyPayClient.js +68 -0
- package/dist/client/SecrecyWalletClient.d.ts +30 -0
- package/dist/client/SecrecyWalletClient.js +73 -0
- package/{lib → dist}/client/convert/file.d.ts +3 -3
- package/dist/client/convert/file.js +33 -0
- package/dist/client/convert/mail.d.ts +3 -0
- package/dist/client/convert/mail.js +43 -0
- package/dist/client/convert/node.d.ts +9 -0
- package/dist/client/convert/node.js +88 -0
- package/{lib → dist}/client/helpers.d.ts +6 -1
- package/dist/client/helpers.js +119 -0
- package/dist/client/index.d.ts +34 -0
- package/dist/client/index.js +46 -0
- package/{lib → dist}/client/storage.d.ts +0 -0
- package/dist/client/storage.js +12 -0
- package/dist/client/types/File.d.ts +14 -0
- package/dist/client/types/File.js +3 -0
- package/{lib → dist}/client/types/Inputs.d.ts +2 -7
- package/dist/client/types/Inputs.js +3 -0
- package/dist/client/types/Node.d.ts +56 -0
- package/dist/client/types/Node.js +3 -0
- package/{lib → dist}/client/types/UserAppNotifications.d.ts +1 -1
- package/dist/client/types/UserAppNotifications.js +3 -0
- package/{lib → dist}/client/types/UserAppSettings.d.ts +1 -3
- package/dist/client/types/UserAppSettings.js +3 -0
- package/{lib → dist}/client/types/index.d.ts +9 -43
- package/dist/client/types/index.js +8 -0
- package/dist/client/types/selectors.d.ts +400 -0
- package/dist/client/types/selectors.js +135 -0
- package/{lib → dist}/crypto/file.d.ts +0 -0
- package/dist/crypto/file.js +195 -0
- package/{lib → dist}/crypto/index.d.ts +0 -0
- package/dist/crypto/index.js +45 -0
- package/dist/error.d.ts +33 -0
- package/dist/error.js +3 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +10 -0
- package/{lib → dist}/minify/index.d.ts +0 -0
- package/dist/minify/index.js +23 -0
- package/{lib → dist}/minify/lz4.d.ts +0 -0
- package/dist/minify/lz4.js +539 -0
- package/{lib → dist}/sodium.d.ts +0 -0
- package/dist/sodium.js +6 -0
- package/{lib → dist}/utils/store-buddy.d.ts +0 -0
- package/dist/utils/store-buddy.js +58 -0
- package/{lib → dist}/utils/time.d.ts +0 -0
- package/dist/utils/time.js +12 -0
- package/{lib → dist/utils}/utils.d.ts +0 -0
- package/dist/utils/utils.js +47 -0
- package/{lib → dist}/worker/md5.d.ts +0 -0
- package/dist/worker/md5.js +24 -0
- package/{lib → dist}/worker/sodium.d.ts +0 -0
- package/dist/worker/sodium.js +118 -0
- package/{lib → dist}/worker/workerCodes.d.ts +0 -0
- package/dist/worker/workerCodes.js +255 -0
- package/{lib → dist}/zeus/const.d.ts +5 -0
- package/dist/zeus/const.js +1670 -0
- package/dist/zeus/index.d.ts +7896 -0
- package/dist/zeus/index.js +602 -0
- package/package.json +64 -54
- package/lib/BaseClient.d.ts +0 -266
- package/lib/BaseClient.js +0 -1332
- package/lib/PopupTools.js +0 -213
- package/lib/ZeusThunder.js +0 -112
- package/lib/cache.d.ts +0 -7
- package/lib/cache.js +0 -5
- package/lib/client/convert/file.js +0 -39
- package/lib/client/convert/folder.d.ts +0 -8
- package/lib/client/convert/folder.js +0 -264
- package/lib/client/convert/mail.d.ts +0 -3
- package/lib/client/convert/mail.js +0 -46
- package/lib/client/convert/vFile.d.ts +0 -5
- package/lib/client/convert/vFile.js +0 -164
- package/lib/client/helpers.js +0 -116
- package/lib/client/index.d.ts +0 -168
- package/lib/client/index.js +0 -3795
- package/lib/client/storage.js +0 -12
- package/lib/client/types/File.d.ts +0 -21
- package/lib/client/types/File.js +0 -2
- package/lib/client/types/FilesOnUsersOnApplications.d.ts +0 -9
- package/lib/client/types/FilesOnUsersOnApplications.js +0 -2
- package/lib/client/types/Folder.d.ts +0 -68
- package/lib/client/types/Folder.js +0 -7
- package/lib/client/types/Inputs.js +0 -2
- package/lib/client/types/UserAppNotifications.js +0 -2
- package/lib/client/types/UserAppSettings.js +0 -2
- package/lib/client/types/VFile.d.ts +0 -62
- package/lib/client/types/VFile.js +0 -4
- package/lib/client/types/index.js +0 -9
- package/lib/client/types/queries.d.ts +0 -535
- package/lib/client/types/queries.js +0 -192
- package/lib/crypto/file.js +0 -291
- package/lib/crypto/index.js +0 -37
- package/lib/index.d.ts +0 -11
- package/lib/index.js +0 -40
- package/lib/minify/index.js +0 -28
- package/lib/minify/lz4.js +0 -633
- package/lib/sodium.js +0 -28
- package/lib/utils/store-buddy.js +0 -69
- package/lib/utils/time.js +0 -22
- package/lib/utils.js +0 -188
- package/lib/worker/__mock__/sodium.worker.d.ts +0 -19
- package/lib/worker/__mock__/sodium.worker.js +0 -57
- package/lib/worker/md5.js +0 -43
- package/lib/worker/sodium.js +0 -155
- package/lib/worker/workerCodes.js +0 -3
- package/lib/zeus/const.js +0 -1644
- package/lib/zeus/index.d.ts +0 -26279
- package/lib/zeus/index.js +0 -552
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SecrecyClient, SecrecyEnv } from "../index.js";
|
|
2
|
+
import type { KeyPair } from "../crypto/index.js";
|
|
3
|
+
import type { Thunder } from "../zeus/index.js";
|
|
4
|
+
declare type SuccessPayResponse<T> = {
|
|
5
|
+
success: true;
|
|
6
|
+
data: T;
|
|
7
|
+
};
|
|
8
|
+
declare type ErrorPayResponse = {
|
|
9
|
+
success: false;
|
|
10
|
+
error: string;
|
|
11
|
+
};
|
|
12
|
+
export declare type SecrecyPayResponse<T> = SuccessPayResponse<T> | ErrorPayResponse;
|
|
13
|
+
export declare class SecrecyPayClient {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(client: SecrecyClient, keys: KeyPair, thunder: ReturnType<typeof Thunder>);
|
|
16
|
+
confirmPaymentIntent({ env, paymentIntentId, secrecyIdWhoCreatedPaymentIntent, secrecyIdWhoNeedToConfirmPaymentIntent, amount, currency }: {
|
|
17
|
+
env?: SecrecyEnv;
|
|
18
|
+
paymentIntentId: string;
|
|
19
|
+
secrecyIdWhoCreatedPaymentIntent: string;
|
|
20
|
+
secrecyIdWhoNeedToConfirmPaymentIntent: string;
|
|
21
|
+
amount: number;
|
|
22
|
+
currency: "eur" | "usd";
|
|
23
|
+
}): Promise<SecrecyPayResponse<{
|
|
24
|
+
id: string;
|
|
25
|
+
message: string;
|
|
26
|
+
}>>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import _classPrivateFieldLooseBase from "@babel/runtime/helpers/classPrivateFieldLooseBase";
|
|
2
|
+
import _classPrivateFieldLooseKey from "@babel/runtime/helpers/classPrivateFieldLooseKey";
|
|
3
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
|
+
|
|
5
|
+
import { getUrl } from "../index.js";
|
|
6
|
+
import { popup } from "../PopupTools.js";
|
|
7
|
+
var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
|
|
8
|
+
var _keys = /*#__PURE__*/_classPrivateFieldLooseKey("keys");
|
|
9
|
+
var _thunder = /*#__PURE__*/_classPrivateFieldLooseKey("thunder");
|
|
10
|
+
export class SecrecyPayClient {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
|
|
20
|
+
constructor(client, keys, thunder) {
|
|
21
|
+
Object.defineProperty(this, _client, {
|
|
22
|
+
writable: true,
|
|
23
|
+
value: void 0
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(this, _keys, {
|
|
26
|
+
writable: true,
|
|
27
|
+
value: void 0
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, _thunder, {
|
|
30
|
+
writable: true,
|
|
31
|
+
value: void 0
|
|
32
|
+
});
|
|
33
|
+
_classPrivateFieldLooseBase(this, _client)[_client] = client;
|
|
34
|
+
_classPrivateFieldLooseBase(this, _keys)[_keys] = keys;
|
|
35
|
+
_classPrivateFieldLooseBase(this, _thunder)[_thunder] = thunder;
|
|
36
|
+
}
|
|
37
|
+
async confirmPaymentIntent(_ref) {
|
|
38
|
+
let {
|
|
39
|
+
env = "prod",
|
|
40
|
+
paymentIntentId,
|
|
41
|
+
secrecyIdWhoCreatedPaymentIntent,
|
|
42
|
+
secrecyIdWhoNeedToConfirmPaymentIntent,
|
|
43
|
+
amount,
|
|
44
|
+
currency
|
|
45
|
+
} = _ref;
|
|
46
|
+
const url = getUrl({
|
|
47
|
+
env,
|
|
48
|
+
hash: Buffer.from(JSON.stringify({
|
|
49
|
+
appSession: _classPrivateFieldLooseBase(this, _client)[_client].sessionId,
|
|
50
|
+
paymentIntentId,
|
|
51
|
+
secrecyIdWhoCreatedPaymentIntent,
|
|
52
|
+
secrecyIdWhoNeedToConfirmPaymentIntent,
|
|
53
|
+
amount,
|
|
54
|
+
currency
|
|
55
|
+
})).toString("base64"),
|
|
56
|
+
path: "/account/iframe/pay-confirm"
|
|
57
|
+
});
|
|
58
|
+
return new Promise((resolve, reject) => popup(url, "Secrecy Pay - Confirm Payment Intent", {
|
|
59
|
+
width: 500
|
|
60
|
+
}, (err, data) => {
|
|
61
|
+
if (err) {
|
|
62
|
+
return reject(err);
|
|
63
|
+
}
|
|
64
|
+
return resolve(data);
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVcmwiLCJwb3B1cCIsIlNlY3JlY3lQYXlDbGllbnQiLCJjb25zdHJ1Y3RvciIsImNsaWVudCIsImtleXMiLCJ0aHVuZGVyIiwiY29uZmlybVBheW1lbnRJbnRlbnQiLCJlbnYiLCJwYXltZW50SW50ZW50SWQiLCJzZWNyZWN5SWRXaG9DcmVhdGVkUGF5bWVudEludGVudCIsInNlY3JlY3lJZFdob05lZWRUb0NvbmZpcm1QYXltZW50SW50ZW50IiwiYW1vdW50IiwiY3VycmVuY3kiLCJ1cmwiLCJoYXNoIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJhcHBTZXNzaW9uIiwic2Vzc2lvbklkIiwidG9TdHJpbmciLCJwYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ3aWR0aCIsImVyciIsImRhdGEiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L1NlY3JlY3lQYXlDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgdHlwZSB7IFNlY3JlY3lDbGllbnQsIFNlY3JlY3lFbnYgfSBmcm9tIFwiLi4vaW5kZXguanNcIjtcbmltcG9ydCB7IGdldFVybCB9IGZyb20gXCIuLi9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUaHVuZGVyIH0gZnJvbSBcIi4uL3pldXMvaW5kZXguanNcIjtcbmltcG9ydCB7IHBvcHVwIH0gZnJvbSBcIi4uL1BvcHVwVG9vbHMuanNcIjtcblxudHlwZSBTdWNjZXNzUGF5UmVzcG9uc2U8VD4gPSB7XG4gIHN1Y2Nlc3M6IHRydWU7XG4gIGRhdGE6IFQ7XG59O1xuXG50eXBlIEVycm9yUGF5UmVzcG9uc2UgPSB7XG4gIHN1Y2Nlc3M6IGZhbHNlO1xuICBlcnJvcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU2VjcmVjeVBheVJlc3BvbnNlPFQ+ID0gU3VjY2Vzc1BheVJlc3BvbnNlPFQ+IHwgRXJyb3JQYXlSZXNwb25zZTtcblxuZXhwb3J0IGNsYXNzIFNlY3JlY3lQYXlDbGllbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gIC8vIEB0cy1pZ25vcmVcbiAgI2NsaWVudDogU2VjcmVjeUNsaWVudDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gIC8vIEB0cy1pZ25vcmVcbiAgI2tleXM6IEtleVBhaXI7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlXG4gICN0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjbGllbnQ6IFNlY3JlY3lDbGllbnQsXG4gICAga2V5czogS2V5UGFpcixcbiAgICB0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPlxuICApIHtcbiAgICB0aGlzLiNjbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy4ja2V5cyA9IGtleXM7XG4gICAgdGhpcy4jdGh1bmRlciA9IHRodW5kZXI7XG4gIH1cblxuICBhc3luYyBjb25maXJtUGF5bWVudEludGVudCh7XG4gICAgZW52ID0gXCJwcm9kXCIsXG4gICAgcGF5bWVudEludGVudElkLFxuICAgIHNlY3JlY3lJZFdob0NyZWF0ZWRQYXltZW50SW50ZW50LFxuICAgIHNlY3JlY3lJZFdob05lZWRUb0NvbmZpcm1QYXltZW50SW50ZW50LFxuICAgIGFtb3VudCxcbiAgICBjdXJyZW5jeVxuICB9OiB7XG4gICAgZW52PzogU2VjcmVjeUVudjtcbiAgICBwYXltZW50SW50ZW50SWQ6IHN0cmluZztcbiAgICBzZWNyZWN5SWRXaG9DcmVhdGVkUGF5bWVudEludGVudDogc3RyaW5nO1xuICAgIHNlY3JlY3lJZFdob05lZWRUb0NvbmZpcm1QYXltZW50SW50ZW50OiBzdHJpbmc7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gICAgY3VycmVuY3k6IFwiZXVyXCIgfCBcInVzZFwiO1xuICB9KTogUHJvbWlzZTxTZWNyZWN5UGF5UmVzcG9uc2U8eyBpZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfT4+IHtcbiAgICBjb25zdCB1cmwgPSBnZXRVcmwoe1xuICAgICAgZW52LFxuICAgICAgaGFzaDogQnVmZmVyLmZyb20oXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBhcHBTZXNzaW9uOiB0aGlzLiNjbGllbnQuc2Vzc2lvbklkLFxuICAgICAgICAgIHBheW1lbnRJbnRlbnRJZCxcbiAgICAgICAgICBzZWNyZWN5SWRXaG9DcmVhdGVkUGF5bWVudEludGVudCxcbiAgICAgICAgICBzZWNyZWN5SWRXaG9OZWVkVG9Db25maXJtUGF5bWVudEludGVudCxcbiAgICAgICAgICBhbW91bnQsXG4gICAgICAgICAgY3VycmVuY3lcbiAgICAgICAgfSlcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIiksXG4gICAgICBwYXRoOiBcIi9hY2NvdW50L2lmcmFtZS9wYXktY29uZmlybVwiXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICBwb3B1cChcbiAgICAgICAgdXJsLFxuICAgICAgICBcIlNlY3JlY3kgUGF5IC0gQ29uZmlybSBQYXltZW50IEludGVudFwiLFxuICAgICAgICB7XG4gICAgICAgICAgd2lkdGg6IDUwMFxuICAgICAgICB9LFxuICAgICAgICAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShcbiAgICAgICAgICAgIGRhdGEgYXMgU2VjcmVjeVBheVJlc3BvbnNlPHsgaWQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFFQSxTQUFTQSxNQUFNLFFBQVEsYUFBYTtBQUdwQyxTQUFTQyxLQUFLLFFBQVEsa0JBQWtCO0FBQUM7QUFBQTtBQUFBO0FBY3pDLE9BQU8sTUFBTUMsZ0JBQWdCLENBQUM7RUFDNUI7RUFDQTs7RUFHQTtFQUNBOztFQUdBO0VBQ0E7O0VBR0FDLFdBQVcsQ0FDVEMsTUFBcUIsRUFDckJDLElBQWEsRUFDYkMsT0FBbUMsRUFDbkM7SUFBQTtNQUFBO01BQUE7SUFBQTtJQUFBO01BQUE7TUFBQTtJQUFBO0lBQUE7TUFBQTtNQUFBO0lBQUE7SUFDQSxnQ0FBSSxzQkFBV0YsTUFBTTtJQUNyQixnQ0FBSSxrQkFBU0MsSUFBSTtJQUNqQixnQ0FBSSx3QkFBWUMsT0FBTztFQUN6QjtFQUVBLE1BQU1DLG9CQUFvQixPQWN1QztJQUFBLElBZHRDO01BQ3pCQyxHQUFHLEdBQUcsTUFBTTtNQUNaQyxlQUFlO01BQ2ZDLGdDQUFnQztNQUNoQ0Msc0NBQXNDO01BQ3RDQyxNQUFNO01BQ05DO0lBUUYsQ0FBQztJQUNDLE1BQU1DLEdBQUcsR0FBR2QsTUFBTSxDQUFDO01BQ2pCUSxHQUFHO01BQ0hPLElBQUksRUFBRUMsTUFBTSxDQUFDQyxJQUFJLENBQ2ZDLElBQUksQ0FBQ0MsU0FBUyxDQUFDO1FBQ2JDLFVBQVUsRUFBRSxnQ0FBSSxvQkFBU0MsU0FBUztRQUNsQ1osZUFBZTtRQUNmQyxnQ0FBZ0M7UUFDaENDLHNDQUFzQztRQUN0Q0MsTUFBTTtRQUNOQztNQUNGLENBQUMsQ0FBQyxDQUNILENBQUNTLFFBQVEsQ0FBQyxRQUFRLENBQUM7TUFDcEJDLElBQUksRUFBRTtJQUNSLENBQUMsQ0FBQztJQUNGLE9BQU8sSUFBSUMsT0FBTyxDQUFDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUNqQ3pCLEtBQUssQ0FDSGEsR0FBRyxFQUNILHNDQUFzQyxFQUN0QztNQUNFYSxLQUFLLEVBQUU7SUFDVCxDQUFDLEVBQ0QsQ0FBQ0MsR0FBRyxFQUFFQyxJQUFJLEtBQUs7TUFDYixJQUFJRCxHQUFHLEVBQUU7UUFDUCxPQUFPRixNQUFNLENBQUNFLEdBQUcsQ0FBQztNQUNwQjtNQUNBLE9BQU9ILE9BQU8sQ0FDWkksSUFBSSxDQUNMO0lBQ0gsQ0FBQyxDQUNGLENBQ0Y7RUFDSDtBQUNGIn0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SecrecyClient, SecrecyEnv } from "../index.js";
|
|
2
|
+
import { InfuraNetwork } from "../zeus/index.js";
|
|
3
|
+
import type { providers } from "ethers";
|
|
4
|
+
declare type SuccessWalletResponse<T> = {
|
|
5
|
+
success: true;
|
|
6
|
+
data: T;
|
|
7
|
+
};
|
|
8
|
+
declare type ErrorWalletResponse = {
|
|
9
|
+
success: false;
|
|
10
|
+
error: string;
|
|
11
|
+
};
|
|
12
|
+
export declare type SecrecyWalletResponse<T> = SuccessWalletResponse<T> | ErrorWalletResponse;
|
|
13
|
+
export declare class SecrecyWalletClient {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(client: SecrecyClient);
|
|
16
|
+
createTransaction({ env, network, tx }: {
|
|
17
|
+
env?: SecrecyEnv;
|
|
18
|
+
network?: InfuraNetwork;
|
|
19
|
+
tx: providers.TransactionRequest;
|
|
20
|
+
}): Promise<SecrecyWalletResponse<{
|
|
21
|
+
id: string;
|
|
22
|
+
hash: string;
|
|
23
|
+
}>>;
|
|
24
|
+
createSignature({ env, network, message }: {
|
|
25
|
+
env?: SecrecyEnv;
|
|
26
|
+
network?: InfuraNetwork;
|
|
27
|
+
message: string;
|
|
28
|
+
}): Promise<SecrecyWalletResponse<string>>;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import _classPrivateFieldLooseBase from "@babel/runtime/helpers/classPrivateFieldLooseBase";
|
|
2
|
+
import _classPrivateFieldLooseKey from "@babel/runtime/helpers/classPrivateFieldLooseKey";
|
|
3
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
|
+
|
|
5
|
+
import { getUrl } from "../index.js";
|
|
6
|
+
import { InfuraNetwork } from "../zeus/index.js";
|
|
7
|
+
import { popup } from "../PopupTools.js";
|
|
8
|
+
var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
|
|
9
|
+
export class SecrecyWalletClient {
|
|
10
|
+
// #keys: KeyPair;
|
|
11
|
+
|
|
12
|
+
// #thunder: ReturnType<typeof Thunder>;
|
|
13
|
+
|
|
14
|
+
constructor(client) {
|
|
15
|
+
Object.defineProperty(this, _client, {
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
19
|
+
_classPrivateFieldLooseBase(this, _client)[_client] = client;
|
|
20
|
+
// this.#keys = keys;
|
|
21
|
+
// this.#thunder = thunder;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async createTransaction(_ref) {
|
|
25
|
+
let {
|
|
26
|
+
env = "prod",
|
|
27
|
+
network = InfuraNetwork.mainnet,
|
|
28
|
+
tx
|
|
29
|
+
} = _ref;
|
|
30
|
+
const url = getUrl({
|
|
31
|
+
env,
|
|
32
|
+
hash: Buffer.from(JSON.stringify({
|
|
33
|
+
appSession: _classPrivateFieldLooseBase(this, _client)[_client].sessionId,
|
|
34
|
+
network,
|
|
35
|
+
tx
|
|
36
|
+
})).toString("base64"),
|
|
37
|
+
path: "/account/iframe/wallet-transaction"
|
|
38
|
+
});
|
|
39
|
+
return new Promise((resolve, reject) => popup(url, "Secrecy Wallet - Transaction", {
|
|
40
|
+
width: 500
|
|
41
|
+
}, (err, data) => {
|
|
42
|
+
if (err) {
|
|
43
|
+
return reject(err);
|
|
44
|
+
}
|
|
45
|
+
return resolve(data);
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
async createSignature(_ref2) {
|
|
49
|
+
let {
|
|
50
|
+
env = "prod",
|
|
51
|
+
network = InfuraNetwork.mainnet,
|
|
52
|
+
message
|
|
53
|
+
} = _ref2;
|
|
54
|
+
const url = getUrl({
|
|
55
|
+
env,
|
|
56
|
+
hash: Buffer.from(JSON.stringify({
|
|
57
|
+
appSession: _classPrivateFieldLooseBase(this, _client)[_client].sessionId,
|
|
58
|
+
network,
|
|
59
|
+
message
|
|
60
|
+
})).toString("base64"),
|
|
61
|
+
path: "/account/iframe/wallet-signature"
|
|
62
|
+
});
|
|
63
|
+
return new Promise((resolve, reject) => popup(url, "Secrecy Wallet - Signature", {
|
|
64
|
+
width: 500
|
|
65
|
+
}, (err, data) => {
|
|
66
|
+
if (err) {
|
|
67
|
+
return reject(err);
|
|
68
|
+
}
|
|
69
|
+
return resolve(data);
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVcmwiLCJJbmZ1cmFOZXR3b3JrIiwicG9wdXAiLCJTZWNyZWN5V2FsbGV0Q2xpZW50IiwiY29uc3RydWN0b3IiLCJjbGllbnQiLCJjcmVhdGVUcmFuc2FjdGlvbiIsImVudiIsIm5ldHdvcmsiLCJtYWlubmV0IiwidHgiLCJ1cmwiLCJoYXNoIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJhcHBTZXNzaW9uIiwic2Vzc2lvbklkIiwidG9TdHJpbmciLCJwYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ3aWR0aCIsImVyciIsImRhdGEiLCJjcmVhdGVTaWduYXR1cmUiLCJtZXNzYWdlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9TZWNyZWN5V2FsbGV0Q2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuaW1wb3J0IHR5cGUgeyBTZWNyZWN5Q2xpZW50LCBTZWNyZWN5RW52IH0gZnJvbSBcIi4uL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBnZXRVcmwgfSBmcm9tIFwiLi4vaW5kZXguanNcIjtcbmltcG9ydCB7IEluZnVyYU5ldHdvcmsgfSBmcm9tIFwiLi4vemV1cy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgcG9wdXAgfSBmcm9tIFwiLi4vUG9wdXBUb29scy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBwcm92aWRlcnMgfSBmcm9tIFwiZXRoZXJzXCI7XG5cbnR5cGUgU3VjY2Vzc1dhbGxldFJlc3BvbnNlPFQ+ID0ge1xuICBzdWNjZXNzOiB0cnVlO1xuICBkYXRhOiBUO1xufTtcblxudHlwZSBFcnJvcldhbGxldFJlc3BvbnNlID0ge1xuICBzdWNjZXNzOiBmYWxzZTtcbiAgZXJyb3I6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNlY3JlY3lXYWxsZXRSZXNwb25zZTxUPiA9XG4gIHwgU3VjY2Vzc1dhbGxldFJlc3BvbnNlPFQ+XG4gIHwgRXJyb3JXYWxsZXRSZXNwb25zZTtcblxuZXhwb3J0IGNsYXNzIFNlY3JlY3lXYWxsZXRDbGllbnQge1xuICAjY2xpZW50OiBTZWNyZWN5Q2xpZW50O1xuXG4gIC8vICNrZXlzOiBLZXlQYWlyO1xuXG4gIC8vICN0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjbGllbnQ6IFNlY3JlY3lDbGllbnRcbiAgICAvLyBfa2V5czogS2V5UGFpcixcbiAgICAvLyBfdGh1bmRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVGh1bmRlcj5cbiAgKSB7XG4gICAgdGhpcy4jY2xpZW50ID0gY2xpZW50O1xuICAgIC8vIHRoaXMuI2tleXMgPSBrZXlzO1xuICAgIC8vIHRoaXMuI3RodW5kZXIgPSB0aHVuZGVyO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlVHJhbnNhY3Rpb24oe1xuICAgIGVudiA9IFwicHJvZFwiLFxuICAgIG5ldHdvcmsgPSBJbmZ1cmFOZXR3b3JrLm1haW5uZXQsXG4gICAgdHhcbiAgfToge1xuICAgIGVudj86IFNlY3JlY3lFbnY7XG4gICAgbmV0d29yaz86IEluZnVyYU5ldHdvcms7XG4gICAgdHg6IHByb3ZpZGVycy5UcmFuc2FjdGlvblJlcXVlc3Q7XG4gIH0pOiBQcm9taXNlPFNlY3JlY3lXYWxsZXRSZXNwb25zZTx7IGlkOiBzdHJpbmc7IGhhc2g6IHN0cmluZyB9Pj4ge1xuICAgIGNvbnN0IHVybCA9IGdldFVybCh7XG4gICAgICBlbnYsXG4gICAgICBoYXNoOiBCdWZmZXIuZnJvbShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGFwcFNlc3Npb246IHRoaXMuI2NsaWVudC5zZXNzaW9uSWQsXG4gICAgICAgICAgbmV0d29yayxcbiAgICAgICAgICB0eFxuICAgICAgICB9KVxuICAgICAgKS50b1N0cmluZyhcImJhc2U2NFwiKSxcbiAgICAgIHBhdGg6IFwiL2FjY291bnQvaWZyYW1lL3dhbGxldC10cmFuc2FjdGlvblwiXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICBwb3B1cChcbiAgICAgICAgdXJsLFxuICAgICAgICBcIlNlY3JlY3kgV2FsbGV0IC0gVHJhbnNhY3Rpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIHdpZHRoOiA1MDBcbiAgICAgICAgfSxcbiAgICAgICAgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoXG4gICAgICAgICAgICBkYXRhIGFzIFNlY3JlY3lXYWxsZXRSZXNwb25zZTx7IGlkOiBzdHJpbmc7IGhhc2g6IHN0cmluZyB9PlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlU2lnbmF0dXJlKHtcbiAgICBlbnYgPSBcInByb2RcIixcbiAgICBuZXR3b3JrID0gSW5mdXJhTmV0d29yay5tYWlubmV0LFxuICAgIG1lc3NhZ2VcbiAgfToge1xuICAgIGVudj86IFNlY3JlY3lFbnY7XG4gICAgbmV0d29yaz86IEluZnVyYU5ldHdvcms7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxTZWNyZWN5V2FsbGV0UmVzcG9uc2U8c3RyaW5nPj4ge1xuICAgIGNvbnN0IHVybCA9IGdldFVybCh7XG4gICAgICBlbnYsXG4gICAgICBoYXNoOiBCdWZmZXIuZnJvbShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGFwcFNlc3Npb246IHRoaXMuI2NsaWVudC5zZXNzaW9uSWQsXG4gICAgICAgICAgbmV0d29yayxcbiAgICAgICAgICBtZXNzYWdlXG4gICAgICAgIH0pXG4gICAgICApLnRvU3RyaW5nKFwiYmFzZTY0XCIpLFxuICAgICAgcGF0aDogXCIvYWNjb3VudC9pZnJhbWUvd2FsbGV0LXNpZ25hdHVyZVwiXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICBwb3B1cChcbiAgICAgICAgdXJsLFxuICAgICAgICBcIlNlY3JlY3kgV2FsbGV0IC0gU2lnbmF0dXJlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICB3aWR0aDogNTAwXG4gICAgICAgIH0sXG4gICAgICAgIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRhdGEgYXMgU2VjcmVjeVdhbGxldFJlc3BvbnNlPHN0cmluZz4pO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUVBLFNBQVNBLE1BQU0sUUFBUSxhQUFhO0FBQ3BDLFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsS0FBSyxRQUFRLGtCQUFrQjtBQUFDO0FBaUJ6QyxPQUFPLE1BQU1DLG1CQUFtQixDQUFDO0VBRy9COztFQUVBOztFQUVBQyxXQUFXLENBQ1RDLE1BQXFCLEVBR3JCO0lBQUE7TUFBQTtNQUFBO0lBQUE7SUFDQSxnQ0FBSSxzQkFBV0EsTUFBTTtJQUNyQjtJQUNBO0VBQ0Y7O0VBRUEsTUFBTUMsaUJBQWlCLE9BUTBDO0lBQUEsSUFSekM7TUFDdEJDLEdBQUcsR0FBRyxNQUFNO01BQ1pDLE9BQU8sR0FBR1AsYUFBYSxDQUFDUSxPQUFPO01BQy9CQztJQUtGLENBQUM7SUFDQyxNQUFNQyxHQUFHLEdBQUdYLE1BQU0sQ0FBQztNQUNqQk8sR0FBRztNQUNISyxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsSUFBSSxDQUNmQyxJQUFJLENBQUNDLFNBQVMsQ0FBQztRQUNiQyxVQUFVLEVBQUUsZ0NBQUksb0JBQVNDLFNBQVM7UUFDbENWLE9BQU87UUFDUEU7TUFDRixDQUFDLENBQUMsQ0FDSCxDQUFDUyxRQUFRLENBQUMsUUFBUSxDQUFDO01BQ3BCQyxJQUFJLEVBQUU7SUFDUixDQUFDLENBQUM7SUFDRixPQUFPLElBQUlDLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FDakNyQixLQUFLLENBQ0hTLEdBQUcsRUFDSCw4QkFBOEIsRUFDOUI7TUFDRWEsS0FBSyxFQUFFO0lBQ1QsQ0FBQyxFQUNELENBQUNDLEdBQUcsRUFBRUMsSUFBSSxLQUFLO01BQ2IsSUFBSUQsR0FBRyxFQUFFO1FBQ1AsT0FBT0YsTUFBTSxDQUFDRSxHQUFHLENBQUM7TUFDcEI7TUFDQSxPQUFPSCxPQUFPLENBQ1pJLElBQUksQ0FDTDtJQUNILENBQUMsQ0FDRixDQUNGO0VBQ0g7RUFFQSxNQUFNQyxlQUFlLFFBUXNCO0lBQUEsSUFSckI7TUFDcEJwQixHQUFHLEdBQUcsTUFBTTtNQUNaQyxPQUFPLEdBQUdQLGFBQWEsQ0FBQ1EsT0FBTztNQUMvQm1CO0lBS0YsQ0FBQztJQUNDLE1BQU1qQixHQUFHLEdBQUdYLE1BQU0sQ0FBQztNQUNqQk8sR0FBRztNQUNISyxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsSUFBSSxDQUNmQyxJQUFJLENBQUNDLFNBQVMsQ0FBQztRQUNiQyxVQUFVLEVBQUUsZ0NBQUksb0JBQVNDLFNBQVM7UUFDbENWLE9BQU87UUFDUG9CO01BQ0YsQ0FBQyxDQUFDLENBQ0gsQ0FBQ1QsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUNwQkMsSUFBSSxFQUFFO0lBQ1IsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxJQUFJQyxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQ2pDckIsS0FBSyxDQUNIUyxHQUFHLEVBQ0gsNEJBQTRCLEVBQzVCO01BQ0VhLEtBQUssRUFBRTtJQUNULENBQUMsRUFDRCxDQUFDQyxHQUFHLEVBQUVDLElBQUksS0FBSztNQUNiLElBQUlELEdBQUcsRUFBRTtRQUNQLE9BQU9GLE1BQU0sQ0FBQ0UsR0FBRyxDQUFDO01BQ3BCO01BQ0EsT0FBT0gsT0FBTyxDQUFDSSxJQUFJLENBQWtDO0lBQ3ZELENBQUMsQ0FDRixDQUNGO0VBQ0g7QUFDRiJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { KeyPair } from "../../crypto/index.js";
|
|
2
|
-
import type { GQLFile, InternalFile,
|
|
2
|
+
import type { GQLFile, InternalFile, FileMetadata } from "../types/index.js";
|
|
3
3
|
export declare function gqlFileToInternal(gql: GQLFile, keyPair: KeyPair): InternalFile;
|
|
4
|
-
export declare function internalFileToFile(internal: InternalFile):
|
|
5
|
-
export declare function gqlFileToExternal(gql: GQLFile, keyPair: KeyPair):
|
|
4
|
+
export declare function internalFileToFile(internal: InternalFile): FileMetadata;
|
|
5
|
+
export declare function gqlFileToExternal(gql: GQLFile, keyPair: KeyPair): FileMetadata;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { filesCache } from "../../cache.js";
|
|
2
|
+
import { decryptCryptoBox } from "../../crypto/index.js";
|
|
3
|
+
import { sodium } from "../../sodium.js";
|
|
4
|
+
export function gqlFileToInternal(gql, keyPair) {
|
|
5
|
+
if (!gql.access || !gql.access.sharedBy.keyPair) {
|
|
6
|
+
throw `File ${gql.id} doesn't have access`;
|
|
7
|
+
}
|
|
8
|
+
const file = {
|
|
9
|
+
id: gql.id,
|
|
10
|
+
md5: gql.md5,
|
|
11
|
+
md5Encrypted: gql.md5Encrypted,
|
|
12
|
+
createdAt: new Date(gql.createdAt),
|
|
13
|
+
size: BigInt(gql.size),
|
|
14
|
+
sizeBefore: BigInt(gql.sizeBefore),
|
|
15
|
+
key: sodium.to_hex(decryptCryptoBox(sodium.from_hex(gql.access.key), gql.access.sharedBy.keyPair.pub, keyPair.privateKey))
|
|
16
|
+
};
|
|
17
|
+
filesCache.set(file.id, file);
|
|
18
|
+
return file;
|
|
19
|
+
}
|
|
20
|
+
export function internalFileToFile(internal) {
|
|
21
|
+
return {
|
|
22
|
+
id: internal.id,
|
|
23
|
+
md5: internal.md5,
|
|
24
|
+
md5Encrypted: internal.md5Encrypted,
|
|
25
|
+
createdAt: internal.createdAt,
|
|
26
|
+
size: internal.size,
|
|
27
|
+
sizeBefore: internal.sizeBefore
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function gqlFileToExternal(gql, keyPair) {
|
|
31
|
+
return internalFileToFile(gqlFileToInternal(gql, keyPair));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWxlc0NhY2hlIiwiZGVjcnlwdENyeXB0b0JveCIsInNvZGl1bSIsImdxbEZpbGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsInNoYXJlZEJ5IiwiaWQiLCJmaWxlIiwibWQ1IiwibWQ1RW5jcnlwdGVkIiwiY3JlYXRlZEF0IiwiRGF0ZSIsInNpemUiLCJCaWdJbnQiLCJzaXplQmVmb3JlIiwia2V5IiwidG9faGV4IiwiZnJvbV9oZXgiLCJwdWIiLCJwcml2YXRlS2V5Iiwic2V0IiwiaW50ZXJuYWxGaWxlVG9GaWxlIiwiaW50ZXJuYWwiLCJncWxGaWxlVG9FeHRlcm5hbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9maWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGVzQ2FjaGUgfSBmcm9tIFwiLi4vLi4vY2FjaGUuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5UGFpciB9IGZyb20gXCIuLi8uLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB7IGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdRTEZpbGUsIEludGVybmFsRmlsZSwgRmlsZU1ldGFkYXRhIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBncWxGaWxlVG9JbnRlcm5hbChcbiAgZ3FsOiBHUUxGaWxlLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBJbnRlcm5hbEZpbGUge1xuICBpZiAoIWdxbC5hY2Nlc3MgfHwgIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgIHRocm93IGBGaWxlICR7Z3FsLmlkfSBkb2Vzbid0IGhhdmUgYWNjZXNzYDtcbiAgfVxuXG4gIGNvbnN0IGZpbGU6IEludGVybmFsRmlsZSA9IHtcbiAgICBpZDogZ3FsLmlkLFxuICAgIG1kNTogZ3FsLm1kNSxcbiAgICBtZDVFbmNyeXB0ZWQ6IGdxbC5tZDVFbmNyeXB0ZWQsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgc2l6ZTogQmlnSW50KGdxbC5zaXplIGFzIHN0cmluZyksXG4gICAgc2l6ZUJlZm9yZTogQmlnSW50KGdxbC5zaXplQmVmb3JlIGFzIHN0cmluZyksXG4gICAga2V5OiBzb2RpdW0udG9faGV4KFxuICAgICAgZGVjcnlwdENyeXB0b0JveChcbiAgICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3Mua2V5KSxcbiAgICAgICAgZ3FsLmFjY2Vzcy5zaGFyZWRCeS5rZXlQYWlyLnB1YixcbiAgICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgICApXG4gICAgKVxuICB9O1xuXG4gIGZpbGVzQ2FjaGUuc2V0KGZpbGUuaWQsIGZpbGUpO1xuXG4gIHJldHVybiBmaWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxGaWxlVG9GaWxlKGludGVybmFsOiBJbnRlcm5hbEZpbGUpOiBGaWxlTWV0YWRhdGEge1xuICByZXR1cm4ge1xuICAgIGlkOiBpbnRlcm5hbC5pZCxcbiAgICBtZDU6IGludGVybmFsLm1kNSxcbiAgICBtZDVFbmNyeXB0ZWQ6IGludGVybmFsLm1kNUVuY3J5cHRlZCxcbiAgICBjcmVhdGVkQXQ6IGludGVybmFsLmNyZWF0ZWRBdCxcbiAgICBzaXplOiBpbnRlcm5hbC5zaXplLFxuICAgIHNpemVCZWZvcmU6IGludGVybmFsLnNpemVCZWZvcmVcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdxbEZpbGVUb0V4dGVybmFsKFxuICBncWw6IEdRTEZpbGUsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IEZpbGVNZXRhZGF0YSB7XG4gIHJldHVybiBpbnRlcm5hbEZpbGVUb0ZpbGUoZ3FsRmlsZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKSk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSxnQkFBZ0I7QUFFM0MsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLE1BQU0sUUFBUSxpQkFBaUI7QUFHeEMsT0FBTyxTQUFTQyxpQkFBaUIsQ0FDL0JDLEdBQVksRUFDWkMsT0FBZ0IsRUFDRjtFQUNkLElBQUksQ0FBQ0QsR0FBRyxDQUFDRSxNQUFNLElBQUksQ0FBQ0YsR0FBRyxDQUFDRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsT0FBTyxFQUFFO0lBQy9DLE1BQU8sUUFBT0QsR0FBRyxDQUFDSSxFQUFHLHNCQUFxQjtFQUM1QztFQUVBLE1BQU1DLElBQWtCLEdBQUc7SUFDekJELEVBQUUsRUFBRUosR0FBRyxDQUFDSSxFQUFFO0lBQ1ZFLEdBQUcsRUFBRU4sR0FBRyxDQUFDTSxHQUFHO0lBQ1pDLFlBQVksRUFBRVAsR0FBRyxDQUFDTyxZQUFZO0lBQzlCQyxTQUFTLEVBQUUsSUFBSUMsSUFBSSxDQUFDVCxHQUFHLENBQUNRLFNBQVMsQ0FBVztJQUM1Q0UsSUFBSSxFQUFFQyxNQUFNLENBQUNYLEdBQUcsQ0FBQ1UsSUFBSSxDQUFXO0lBQ2hDRSxVQUFVLEVBQUVELE1BQU0sQ0FBQ1gsR0FBRyxDQUFDWSxVQUFVLENBQVc7SUFDNUNDLEdBQUcsRUFBRWYsTUFBTSxDQUFDZ0IsTUFBTSxDQUNoQmpCLGdCQUFnQixDQUNkQyxNQUFNLENBQUNpQixRQUFRLENBQUNmLEdBQUcsQ0FBQ0UsTUFBTSxDQUFDVyxHQUFHLENBQUMsRUFDL0JiLEdBQUcsQ0FBQ0UsTUFBTSxDQUFDQyxRQUFRLENBQUNGLE9BQU8sQ0FBQ2UsR0FBRyxFQUMvQmYsT0FBTyxDQUFDZ0IsVUFBVSxDQUNuQjtFQUVMLENBQUM7RUFFRHJCLFVBQVUsQ0FBQ3NCLEdBQUcsQ0FBQ2IsSUFBSSxDQUFDRCxFQUFFLEVBQUVDLElBQUksQ0FBQztFQUU3QixPQUFPQSxJQUFJO0FBQ2I7QUFFQSxPQUFPLFNBQVNjLGtCQUFrQixDQUFDQyxRQUFzQixFQUFnQjtFQUN2RSxPQUFPO0lBQ0xoQixFQUFFLEVBQUVnQixRQUFRLENBQUNoQixFQUFFO0lBQ2ZFLEdBQUcsRUFBRWMsUUFBUSxDQUFDZCxHQUFHO0lBQ2pCQyxZQUFZLEVBQUVhLFFBQVEsQ0FBQ2IsWUFBWTtJQUNuQ0MsU0FBUyxFQUFFWSxRQUFRLENBQUNaLFNBQVM7SUFDN0JFLElBQUksRUFBRVUsUUFBUSxDQUFDVixJQUFJO0lBQ25CRSxVQUFVLEVBQUVRLFFBQVEsQ0FBQ1I7RUFDdkIsQ0FBQztBQUNIO0FBRUEsT0FBTyxTQUFTUyxpQkFBaUIsQ0FDL0JyQixHQUFZLEVBQ1pDLE9BQWdCLEVBQ0Y7RUFDZCxPQUFPa0Isa0JBQWtCLENBQUNwQixpQkFBaUIsQ0FBQ0MsR0FBRyxFQUFFQyxPQUFPLENBQUMsQ0FBQztBQUM1RCJ9
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { sodium, decryptCryptoBox } from "../../index.js";
|
|
2
|
+
export function convertInternalMailToExternal(data, keys) {
|
|
3
|
+
var _mI$replyTo;
|
|
4
|
+
let type = data.type;
|
|
5
|
+
if (data.mailIntegrityDraft) {
|
|
6
|
+
type = "draft";
|
|
7
|
+
}
|
|
8
|
+
const mI = type === "draft" ? data.mailIntegrityDraft : data.mailIntegrity;
|
|
9
|
+
if (!mI) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
const pubKey = data.type === "received" ? data.sender.publicKey : keys.publicKey;
|
|
13
|
+
const body = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey));
|
|
14
|
+
const subject = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey));
|
|
15
|
+
const hash = sodium.crypto_generichash(sodium.crypto_generichash_BYTES, JSON.stringify({
|
|
16
|
+
body,
|
|
17
|
+
subject
|
|
18
|
+
}), mI.hashKey, "hex");
|
|
19
|
+
return {
|
|
20
|
+
type,
|
|
21
|
+
id: data.id,
|
|
22
|
+
mailIntegrityId: mI.id,
|
|
23
|
+
replyTo: (_mI$replyTo = mI.replyTo) == null ? void 0 : _mI$replyTo.id,
|
|
24
|
+
body,
|
|
25
|
+
subject,
|
|
26
|
+
createdAt: new Date(data.createdAt),
|
|
27
|
+
deletedAt: data.deletedAt ? new Date(data.deletedAt) : null,
|
|
28
|
+
openedAt: data.openedAt ? new Date(data.openedAt) : null,
|
|
29
|
+
isAltered: hash !== mI.hash,
|
|
30
|
+
temporaryRecipients: mI.temporaryRecipients,
|
|
31
|
+
recipients: type === "draft" ? mI.recipients : data.recipients,
|
|
32
|
+
sender: data.sender,
|
|
33
|
+
files: data.files.map(f => {
|
|
34
|
+
const name = sodium.to_string(decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey));
|
|
35
|
+
return {
|
|
36
|
+
id: f.file.id,
|
|
37
|
+
name,
|
|
38
|
+
key: f.fileKey
|
|
39
|
+
};
|
|
40
|
+
})
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94IiwiY29udmVydEludGVybmFsTWFpbFRvRXh0ZXJuYWwiLCJkYXRhIiwia2V5cyIsInR5cGUiLCJtYWlsSW50ZWdyaXR5RHJhZnQiLCJtSSIsIm1haWxJbnRlZ3JpdHkiLCJwdWJLZXkiLCJzZW5kZXIiLCJwdWJsaWNLZXkiLCJib2R5IiwidG9fc3RyaW5nIiwiZnJvbV9oZXgiLCJwcml2YXRlS2V5Iiwic3ViamVjdCIsImhhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2hfQllURVMiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFzaEtleSIsImlkIiwibWFpbEludGVncml0eUlkIiwicmVwbHlUbyIsImNyZWF0ZWRBdCIsIkRhdGUiLCJkZWxldGVkQXQiLCJvcGVuZWRBdCIsImlzQWx0ZXJlZCIsInRlbXBvcmFyeVJlY2lwaWVudHMiLCJyZWNpcGllbnRzIiwiZmlsZXMiLCJtYXAiLCJmIiwibmFtZSIsImZpbGVuYW1lIiwiZmlsZSIsImtleSIsImZpbGVLZXkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbWFpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdRTE1haWwsIE1haWwsIE1haWxUeXBlIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzb2RpdW0sIGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJbnRlcm5hbE1haWxUb0V4dGVybmFsKFxuICBkYXRhOiBHUUxNYWlsLFxuICBrZXlzOiBLZXlQYWlyXG4pOiBNYWlsIHwgbnVsbCB7XG4gIGxldCB0eXBlOiBNYWlsVHlwZSA9IGRhdGEudHlwZTtcbiAgaWYgKGRhdGEubWFpbEludGVncml0eURyYWZ0KSB7XG4gICAgdHlwZSA9IFwiZHJhZnRcIjtcbiAgfVxuXG4gIGNvbnN0IG1JID0gdHlwZSA9PT0gXCJkcmFmdFwiID8gZGF0YS5tYWlsSW50ZWdyaXR5RHJhZnQgOiBkYXRhLm1haWxJbnRlZ3JpdHk7XG5cbiAgaWYgKCFtSSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcHViS2V5ID1cbiAgICBkYXRhLnR5cGUgPT09IFwicmVjZWl2ZWRcIiA/IGRhdGEuc2VuZGVyLnB1YmxpY0tleSA6IGtleXMucHVibGljS2V5O1xuXG4gIGNvbnN0IGJvZHkgPSBzb2RpdW0udG9fc3RyaW5nKFxuICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGRhdGEuYm9keSksIHB1YktleSwga2V5cy5wcml2YXRlS2V5KVxuICApO1xuXG4gIGNvbnN0IHN1YmplY3QgPSBzb2RpdW0udG9fc3RyaW5nKFxuICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGRhdGEuc3ViamVjdCksIHB1YktleSwga2V5cy5wcml2YXRlS2V5KVxuICApO1xuXG4gIGNvbnN0IGhhc2ggPSBzb2RpdW0uY3J5cHRvX2dlbmVyaWNoYXNoKFxuICAgIHNvZGl1bS5jcnlwdG9fZ2VuZXJpY2hhc2hfQllURVMsXG4gICAgSlNPTi5zdHJpbmdpZnkoeyBib2R5LCBzdWJqZWN0IH0pLFxuICAgIG1JLmhhc2hLZXksXG4gICAgXCJoZXhcIlxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZSxcbiAgICBpZDogZGF0YS5pZCxcbiAgICBtYWlsSW50ZWdyaXR5SWQ6IG1JLmlkLFxuICAgIHJlcGx5VG86IG1JLnJlcGx5VG8/LmlkLFxuICAgIGJvZHksXG4gICAgc3ViamVjdCxcbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKGRhdGEuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgZGVsZXRlZEF0OiBkYXRhLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGRhdGEuZGVsZXRlZEF0IGFzIHN0cmluZykgOiBudWxsLFxuICAgIG9wZW5lZEF0OiBkYXRhLm9wZW5lZEF0ID8gbmV3IERhdGUoZGF0YS5vcGVuZWRBdCBhcyBzdHJpbmcpIDogbnVsbCxcbiAgICBpc0FsdGVyZWQ6IGhhc2ggIT09IG1JLmhhc2gsXG4gICAgdGVtcG9yYXJ5UmVjaXBpZW50czogbUkudGVtcG9yYXJ5UmVjaXBpZW50cyxcbiAgICByZWNpcGllbnRzOiB0eXBlID09PSBcImRyYWZ0XCIgPyBtSS5yZWNpcGllbnRzIDogZGF0YS5yZWNpcGllbnRzLFxuICAgIHNlbmRlcjogZGF0YS5zZW5kZXIsXG4gICAgZmlsZXM6IGRhdGEuZmlsZXMubWFwKGYgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGYuZmlsZW5hbWUpLCBwdWJLZXksIGtleXMucHJpdmF0ZUtleSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBmLmZpbGUuaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGtleTogZi5maWxlS2V5XG4gICAgICB9O1xuICAgIH0pXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLE1BQU0sRUFBRUMsZ0JBQWdCLFFBQVEsZ0JBQWdCO0FBRXpELE9BQU8sU0FBU0MsNkJBQTZCLENBQzNDQyxJQUFhLEVBQ2JDLElBQWEsRUFDQTtFQUFBO0VBQ2IsSUFBSUMsSUFBYyxHQUFHRixJQUFJLENBQUNFLElBQUk7RUFDOUIsSUFBSUYsSUFBSSxDQUFDRyxrQkFBa0IsRUFBRTtJQUMzQkQsSUFBSSxHQUFHLE9BQU87RUFDaEI7RUFFQSxNQUFNRSxFQUFFLEdBQUdGLElBQUksS0FBSyxPQUFPLEdBQUdGLElBQUksQ0FBQ0csa0JBQWtCLEdBQUdILElBQUksQ0FBQ0ssYUFBYTtFQUUxRSxJQUFJLENBQUNELEVBQUUsRUFBRTtJQUNQLE9BQU8sSUFBSTtFQUNiO0VBRUEsTUFBTUUsTUFBTSxHQUNWTixJQUFJLENBQUNFLElBQUksS0FBSyxVQUFVLEdBQUdGLElBQUksQ0FBQ08sTUFBTSxDQUFDQyxTQUFTLEdBQUdQLElBQUksQ0FBQ08sU0FBUztFQUVuRSxNQUFNQyxJQUFJLEdBQUdaLE1BQU0sQ0FBQ2EsU0FBUyxDQUMzQlosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUSxDQUFDWCxJQUFJLENBQUNTLElBQUksQ0FBQyxFQUFFSCxNQUFNLEVBQUVMLElBQUksQ0FBQ1csVUFBVSxDQUFDLENBQ3RFO0VBRUQsTUFBTUMsT0FBTyxHQUFHaEIsTUFBTSxDQUFDYSxTQUFTLENBQzlCWixnQkFBZ0IsQ0FBQ0QsTUFBTSxDQUFDYyxRQUFRLENBQUNYLElBQUksQ0FBQ2EsT0FBTyxDQUFDLEVBQUVQLE1BQU0sRUFBRUwsSUFBSSxDQUFDVyxVQUFVLENBQUMsQ0FDekU7RUFFRCxNQUFNRSxJQUFJLEdBQUdqQixNQUFNLENBQUNrQixrQkFBa0IsQ0FDcENsQixNQUFNLENBQUNtQix3QkFBd0IsRUFDL0JDLElBQUksQ0FBQ0MsU0FBUyxDQUFDO0lBQUVULElBQUk7SUFBRUk7RUFBUSxDQUFDLENBQUMsRUFDakNULEVBQUUsQ0FBQ2UsT0FBTyxFQUNWLEtBQUssQ0FDTjtFQUVELE9BQU87SUFDTGpCLElBQUk7SUFDSmtCLEVBQUUsRUFBRXBCLElBQUksQ0FBQ29CLEVBQUU7SUFDWEMsZUFBZSxFQUFFakIsRUFBRSxDQUFDZ0IsRUFBRTtJQUN0QkUsT0FBTyxpQkFBRWxCLEVBQUUsQ0FBQ2tCLE9BQU8scUJBQVYsWUFBWUYsRUFBRTtJQUN2QlgsSUFBSTtJQUNKSSxPQUFPO0lBQ1BVLFNBQVMsRUFBRSxJQUFJQyxJQUFJLENBQUN4QixJQUFJLENBQUN1QixTQUFTLENBQVc7SUFDN0NFLFNBQVMsRUFBRXpCLElBQUksQ0FBQ3lCLFNBQVMsR0FBRyxJQUFJRCxJQUFJLENBQUN4QixJQUFJLENBQUN5QixTQUFTLENBQVcsR0FBRyxJQUFJO0lBQ3JFQyxRQUFRLEVBQUUxQixJQUFJLENBQUMwQixRQUFRLEdBQUcsSUFBSUYsSUFBSSxDQUFDeEIsSUFBSSxDQUFDMEIsUUFBUSxDQUFXLEdBQUcsSUFBSTtJQUNsRUMsU0FBUyxFQUFFYixJQUFJLEtBQUtWLEVBQUUsQ0FBQ1UsSUFBSTtJQUMzQmMsbUJBQW1CLEVBQUV4QixFQUFFLENBQUN3QixtQkFBbUI7SUFDM0NDLFVBQVUsRUFBRTNCLElBQUksS0FBSyxPQUFPLEdBQUdFLEVBQUUsQ0FBQ3lCLFVBQVUsR0FBRzdCLElBQUksQ0FBQzZCLFVBQVU7SUFDOUR0QixNQUFNLEVBQUVQLElBQUksQ0FBQ08sTUFBTTtJQUNuQnVCLEtBQUssRUFBRTlCLElBQUksQ0FBQzhCLEtBQUssQ0FBQ0MsR0FBRyxDQUFDQyxDQUFDLElBQUk7TUFDekIsTUFBTUMsSUFBSSxHQUFHcEMsTUFBTSxDQUFDYSxTQUFTLENBQzNCWixnQkFBZ0IsQ0FBQ0QsTUFBTSxDQUFDYyxRQUFRLENBQUNxQixDQUFDLENBQUNFLFFBQVEsQ0FBQyxFQUFFNUIsTUFBTSxFQUFFTCxJQUFJLENBQUNXLFVBQVUsQ0FBQyxDQUN2RTtNQUVELE9BQU87UUFDTFEsRUFBRSxFQUFFWSxDQUFDLENBQUNHLElBQUksQ0FBQ2YsRUFBRTtRQUNiYSxJQUFJO1FBQ0pHLEdBQUcsRUFBRUosQ0FBQyxDQUFDSztNQUNULENBQUM7SUFDSCxDQUFDO0VBQ0gsQ0FBQztBQUNIIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { KeyPair } from "../../crypto/index.js";
|
|
2
|
+
import type { Node } from "../types/index.js";
|
|
3
|
+
import type { GQLNode, InternalNode, GQLNodeFull, InternalNodeFull, NodeFull } from "../types/index.js";
|
|
4
|
+
export declare function gqlNodeToInternal(gql: GQLNode, keyPair: KeyPair): Promise<InternalNode>;
|
|
5
|
+
export declare function gqlNodeFullToInternalFull(gql: GQLNodeFull, keyPair: KeyPair): Promise<InternalNodeFull>;
|
|
6
|
+
export declare function internalNodeToNode(internal: InternalNode): Node;
|
|
7
|
+
export declare function internalNodeFullToNodeFull(internal: InternalNodeFull): NodeFull;
|
|
8
|
+
export declare function gqlNodeToExternalNodeFull(gql: GQLNodeFull, keyPair: KeyPair): Promise<NodeFull>;
|
|
9
|
+
export declare function gqlNodeToExternal(gql: GQLNode, keyPair: KeyPair): Promise<Node>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
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; }
|
|
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,6 +1,11 @@
|
|
|
1
1
|
import { SecrecyClient } from "./index.js";
|
|
2
2
|
import type { SecrecyUserApp } from "./types/index.js";
|
|
3
3
|
export declare function parseInfos(): SecrecyUserApp | null;
|
|
4
|
+
export declare const getUrl: ({ env, hash, path }: {
|
|
5
|
+
env: string;
|
|
6
|
+
hash: string;
|
|
7
|
+
path: string;
|
|
8
|
+
}) => string;
|
|
4
9
|
export declare type HashInfos = {
|
|
5
10
|
appUrl: string;
|
|
6
11
|
backPath?: string;
|
|
@@ -11,7 +16,7 @@ export declare type HashInfos = {
|
|
|
11
16
|
email: boolean;
|
|
12
17
|
};
|
|
13
18
|
};
|
|
14
|
-
export declare type SecrecyEnv = "dev" | "
|
|
19
|
+
export declare type SecrecyEnv = "dev" | "prod";
|
|
15
20
|
export declare type UseSecrecyParams = Omit<HashInfos, "appUrl"> & {
|
|
16
21
|
env: SecrecyEnv;
|
|
17
22
|
session?: boolean | undefined;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { SecrecyClient } from "./index.js";
|
|
2
|
+
import { popup } from "../PopupTools.js";
|
|
3
|
+
import { getStorage } from "./storage.js";
|
|
4
|
+
export function parseInfos() {
|
|
5
|
+
if (!window.location.hash) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
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
|
+
height: 750,
|
|
98
|
+
resizable: "no",
|
|
99
|
+
menubar: "no",
|
|
100
|
+
location: "no",
|
|
101
|
+
centered: true,
|
|
102
|
+
scrollbars: "no"
|
|
103
|
+
}, (err, data) => {
|
|
104
|
+
if (err) {
|
|
105
|
+
return reject(err);
|
|
106
|
+
} else {
|
|
107
|
+
const infos = data;
|
|
108
|
+
if (infos) {
|
|
109
|
+
return validate(infos);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
} else {
|
|
115
|
+
return resolve(client);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWNyZWN5Q2xpZW50IiwicG9wdXAiLCJnZXRTdG9yYWdlIiwicGFyc2VJbmZvcyIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsInN1YnN0ciIsInJlcyIsIkpTT04iLCJwYXJzZSIsImF0b2IiLCJnZXRVcmwiLCJlbnYiLCJwYXRoIiwiZW52U3RyIiwibGFuZyIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicHJvY2VzcyIsIk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTCIsInN0YXJ0c1dpdGgiLCJnZXRTZWNyZWN5Q2xpZW50Iiwic2Vzc2lvbiIsInN0b3JhZ2UiLCJ1YVNlc3Npb24iLCJ1c2VyQXBwU2Vzc2lvbiIsImxvYWQiLCJ1YUtleXMiLCJ1c2VyQXBwS2V5cyIsInVhSnd0Iiwiand0IiwiaW5mb3MiLCJzYXZlIiwia2V5cyIsImxvZ2luIiwiYXBwQ29kZSIsInJlZGlyZWN0Iiwic2NvcGVzIiwiYmFja1BhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImFwcFVybCIsIm9yaWdpbiIsImluY2x1ZGVzIiwiY2xpZW50IiwiZGF0YSIsImJ0b2EiLCJzdHJpbmdpZnkiLCJyZXBsYWNlQWxsIiwidXJsIiwidmFsaWRhdGUiLCJocmVmIiwid2lkdGgiLCJoZWlnaHQiLCJyZXNpemFibGUiLCJtZW51YmFyIiwiY2VudGVyZWQiLCJzY3JvbGxiYXJzIiwiZXJyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlY3JlY3lDbGllbnQgfSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgcG9wdXAgfSBmcm9tIFwiLi4vUG9wdXBUb29scy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTZWNyZWN5VXNlckFwcCB9IGZyb20gXCIuL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIi4vc3RvcmFnZS5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmZvcygpOiBTZWNyZWN5VXNlckFwcCB8IG51bGwge1xuICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXMgPSBKU09OLnBhcnNlKGF0b2IoaGFzaCkpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gXCJcIjtcbiAgICAvLyBUT0RPIEFkZCBvYmplY3QgY29udGVudCB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIHJlcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFVybCA9ICh7XG4gIGVudixcbiAgaGFzaCxcbiAgcGF0aFxufToge1xuICBlbnY6IHN0cmluZztcbiAgaGFzaDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG59KTogc3RyaW5nID0+IHtcbiAgbGV0IGVudlN0ciA9IFwiXCI7XG4gIGlmIChlbnYgPT09IFwiZGV2XCIpIHtcbiAgICBlbnZTdHIgPSBcImRldi5cIjtcbiAgfVxuICBjb25zdCBsYW5nID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmc7XG4gIHJldHVybiBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19TRUNSRUNZX0FQSV9VUkxcbiAgICA/IGBodHRwOi8vbG9jYWxob3N0OjMwMDIke2xhbmcgPyBgLyR7bGFuZ31gIDogXCJcIn0ke1xuICAgICAgICBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpID8gcGF0aCA6IGAvJHtwYXRofWBcbiAgICAgIH0jJHtoYXNofWBcbiAgICA6IGBodHRwczovL2F1dGguJHtlbnZTdHJ9c2VjcmVjeS5tZSR7bGFuZyA/IGAvJHtsYW5nfWAgOiBcIlwifSR7XG4gICAgICAgIHBhdGguc3RhcnRzV2l0aChcIi9cIikgPyBwYXRoIDogYC8ke3BhdGh9YFxuICAgICAgfSMke2hhc2h9YDtcbn07XG5cbmV4cG9ydCB0eXBlIEhhc2hJbmZvcyA9IHtcbiAgYXBwVXJsOiBzdHJpbmc7XG4gIGJhY2tQYXRoPzogc3RyaW5nO1xuICBhcHBDb2RlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF0aD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHJlZGlyZWN0PzogYm9vbGVhbjtcbiAgc2NvcGVzPzoge1xuICAgIGVtYWlsOiBib29sZWFuO1xuICB9O1xufTtcbmV4cG9ydCB0eXBlIFNlY3JlY3lFbnYgPSBcImRldlwiIHwgXCJwcm9kXCI7XG5leHBvcnQgdHlwZSBVc2VTZWNyZWN5UGFyYW1zID0gT21pdDxIYXNoSW5mb3MsIFwiYXBwVXJsXCI+ICYge1xuICBlbnY6IFNlY3JlY3lFbnY7XG4gIHNlc3Npb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgVmFsdWU8VCBleHRlbmRzIFVzZVNlY3JlY3lQYXJhbXM+ID0gVCBleHRlbmRzIHsgcmVkaXJlY3Q6IHRydWUgfVxuICA/IFNlY3JlY3lDbGllbnQgfCBudWxsXG4gIDogU2VjcmVjeUNsaWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlY3JlY3lDbGllbnQoXG4gIGVudjogU2VjcmVjeUVudixcbiAgc2Vzc2lvbj86IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IFNlY3JlY3lDbGllbnQgfCBudWxsIHtcbiAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2Uoc2Vzc2lvbik7XG4gIGNvbnN0IHVhU2Vzc2lvbiA9IHN0b3JhZ2UudXNlckFwcFNlc3Npb24ubG9hZCgpO1xuICBjb25zdCB1YUtleXMgPSBzdG9yYWdlLnVzZXJBcHBLZXlzLmxvYWQoKTtcbiAgY29uc3QgdWFKd3QgPSBzdG9yYWdlLmp3dC5sb2FkKCk7XG4gIGlmICghdWFTZXNzaW9uIHx8ICF1YUtleXMgfHwgIXVhSnd0KSB7XG4gICAgY29uc3QgaW5mb3MgPSBwYXJzZUluZm9zKCk7XG4gICAgaWYgKGluZm9zKSB7XG4gICAgICBzdG9yYWdlLnVzZXJBcHBLZXlzLnNhdmUoaW5mb3Mua2V5cyk7XG4gICAgICBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLnNhdmUoaW5mb3MudWFTZXNzaW9uKTtcbiAgICAgIHN0b3JhZ2Uuand0LnNhdmUoaW5mb3Muand0KTtcbiAgICAgIHJldHVybiBuZXcgU2VjcmVjeUNsaWVudChpbmZvcy51YVNlc3Npb24sIGluZm9zLmtleXMsIGluZm9zLmp3dCwgZW52KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gbmV3IFNlY3JlY3lDbGllbnQodWFTZXNzaW9uLCB1YUtleXMsIHVhSnd0LCBlbnYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9naW48VCBleHRlbmRzIFVzZVNlY3JlY3lQYXJhbXM+KFxuICB7IGFwcENvZGUsIHBhdGgsIHJlZGlyZWN0LCBzY29wZXMsIGJhY2tQYXRoLCBlbnYsIHNlc3Npb24gfTogVCA9IHt9IGFzIFRcbik6IFByb21pc2U8VmFsdWU8VD4+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBhcHBVcmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgIGlmIChhcHBDb2RlICYmICFhcHBVcmwuaW5jbHVkZXMoXCJsb2NhbGhvc3RcIikpIHtcbiAgICAgIHJldHVybiByZWplY3QoXCJDYW4ndCB1c2UgYXBwQ29kZSBpZiBub3QgaW4gbG9jYWxob3N0XCIpO1xuICAgIH1cbiAgICBjb25zdCBjbGllbnQgPSBnZXRTZWNyZWN5Q2xpZW50KGVudik7XG5cbiAgICBpZiAoIWNsaWVudCkge1xuICAgICAgY29uc3QgaW5mb3M6IEhhc2hJbmZvcyA9IHtcbiAgICAgICAgYXBwVXJsLFxuICAgICAgICBhcHBDb2RlLFxuICAgICAgICByZWRpcmVjdCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgc2NvcGVzLFxuICAgICAgICBiYWNrUGF0aFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGRhdGEgPSBidG9hKEpTT04uc3RyaW5naWZ5KGluZm9zKSkucmVwbGFjZUFsbChcIj1cIiwgXCJcIik7XG5cbiAgICAgIGNvbnN0IHVybCA9IGdldFVybCh7XG4gICAgICAgIGVudixcbiAgICAgICAgaGFzaDogZGF0YSxcbiAgICAgICAgcGF0aDogXCJsb2dpblwiXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdmFsaWRhdGUgPSAoaW5mb3M6IFNlY3JlY3lVc2VyQXBwKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKHNlc3Npb24pO1xuICAgICAgICBzdG9yYWdlLnVzZXJBcHBTZXNzaW9uLnNhdmUoaW5mb3MudWFTZXNzaW9uKTtcbiAgICAgICAgc3RvcmFnZS51c2VyQXBwS2V5cy5zYXZlKGluZm9zLmtleXMpO1xuICAgICAgICBzdG9yYWdlLmp3dC5zYXZlKGluZm9zLmp3dCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKFxuICAgICAgICAgIG5ldyBTZWNyZWN5Q2xpZW50KFxuICAgICAgICAgICAgaW5mb3MudWFTZXNzaW9uLFxuICAgICAgICAgICAgaW5mb3Mua2V5cyxcbiAgICAgICAgICAgIGluZm9zLmp3dCxcbiAgICAgICAgICAgIGVudlxuICAgICAgICAgICkgYXMgVmFsdWU8VD5cbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICBjb25zdCBpbmZvcyA9IHBhcnNlSW5mb3MoKTtcbiAgICAgICAgaWYgKGluZm9zKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbGlkYXRlKGluZm9zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsIGFzIFZhbHVlPFQ+KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9wdXAoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIFwiU2VjcmVjeSBMb2dpblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDc1MCxcbiAgICAgICAgICAgIHJlc2l6YWJsZTogXCJub1wiLFxuICAgICAgICAgICAgbWVudWJhcjogXCJub1wiLFxuICAgICAgICAgICAgbG9jYXRpb246IFwibm9cIixcbiAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgc2Nyb2xsYmFyczogXCJub1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZm9zID0gZGF0YSBhcyBTZWNyZWN5VXNlckFwcDtcbiAgICAgICAgICAgICAgaWYgKGluZm9zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlKGluZm9zKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc29sdmUoY2xpZW50IGFzIFZhbHVlPFQ+KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxhQUFhLFFBQVEsWUFBWTtBQUMxQyxTQUFTQyxLQUFLLFFBQVEsa0JBQWtCO0FBRXhDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBRXpDLE9BQU8sU0FBU0MsVUFBVSxHQUEwQjtFQUNsRCxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLEVBQUU7SUFDekIsT0FBTyxJQUFJO0VBQ2I7RUFDQSxNQUFNQSxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNDLE1BQU0sQ0FBQyxDQUFDLENBQUM7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
|