@secrecy/lib 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/BaseClient-ca94a07f.d.ts +405 -0
  2. package/dist/BaseClient.cjs +2 -0
  3. package/dist/BaseClient.cjs.map +1 -0
  4. package/dist/BaseClient.d.ts +16 -111
  5. package/dist/BaseClient.js +2 -506
  6. package/dist/BaseClient.js.map +1 -0
  7. package/dist/PopupTools.cjs +2 -0
  8. package/dist/PopupTools.cjs.map +1 -0
  9. package/dist/PopupTools.d.ts +5 -4
  10. package/dist/PopupTools.js +2 -195
  11. package/dist/PopupTools.js.map +1 -0
  12. package/dist/ZeusThunder.cjs +2 -0
  13. package/dist/ZeusThunder.cjs.map +1 -0
  14. package/dist/ZeusThunder.d.ts +6 -2
  15. package/dist/ZeusThunder.js +2 -65
  16. package/dist/ZeusThunder.js.map +1 -0
  17. package/dist/cache.cjs +2 -0
  18. package/dist/cache.cjs.map +1 -0
  19. package/dist/cache.d.ts +22 -4
  20. package/dist/cache.js +2 -4
  21. package/dist/cache.js.map +1 -0
  22. package/dist/client/SecrecyAppClient.cjs +2 -0
  23. package/dist/client/SecrecyAppClient.cjs.map +1 -0
  24. package/dist/client/SecrecyAppClient.d.ts +16 -17
  25. package/dist/client/SecrecyAppClient.js +2 -226
  26. package/dist/client/SecrecyAppClient.js.map +1 -0
  27. package/dist/client/SecrecyCloudClient.cjs +2 -0
  28. package/dist/client/SecrecyCloudClient.cjs.map +1 -0
  29. package/dist/client/SecrecyCloudClient.d.ts +16 -89
  30. package/dist/client/SecrecyCloudClient.js +2 -1405
  31. package/dist/client/SecrecyCloudClient.js.map +1 -0
  32. package/dist/client/SecrecyDbClient.cjs +2 -0
  33. package/dist/client/SecrecyDbClient.cjs.map +1 -0
  34. package/dist/client/SecrecyDbClient.d.ts +16 -48
  35. package/dist/client/SecrecyDbClient.js +2 -419
  36. package/dist/client/SecrecyDbClient.js.map +1 -0
  37. package/dist/client/SecrecyMailClient.cjs +2 -0
  38. package/dist/client/SecrecyMailClient.cjs.map +1 -0
  39. package/dist/client/SecrecyMailClient.d.ts +16 -42
  40. package/dist/client/SecrecyMailClient.js +2 -1022
  41. package/dist/client/SecrecyMailClient.js.map +1 -0
  42. package/dist/client/SecrecyPayClient.cjs +2 -0
  43. package/dist/client/SecrecyPayClient.cjs.map +1 -0
  44. package/dist/client/SecrecyPayClient.d.ts +16 -28
  45. package/dist/client/SecrecyPayClient.js +2 -68
  46. package/dist/client/SecrecyPayClient.js.map +1 -0
  47. package/dist/client/SecrecyWalletClient.cjs +2 -0
  48. package/dist/client/SecrecyWalletClient.cjs.map +1 -0
  49. package/dist/client/SecrecyWalletClient.d.ts +16 -30
  50. package/dist/client/SecrecyWalletClient.js +2 -73
  51. package/dist/client/SecrecyWalletClient.js.map +1 -0
  52. package/dist/client/convert/file.cjs +2 -0
  53. package/dist/client/convert/file.cjs.map +1 -0
  54. package/dist/client/convert/file.d.ts +11 -5
  55. package/dist/client/convert/file.js +2 -33
  56. package/dist/client/convert/file.js.map +1 -0
  57. package/dist/client/convert/mail.cjs +2 -0
  58. package/dist/client/convert/mail.cjs.map +1 -0
  59. package/dist/client/convert/mail.d.ts +13 -3
  60. package/dist/client/convert/mail.js +2 -42
  61. package/dist/client/convert/mail.js.map +1 -0
  62. package/dist/client/convert/node.cjs +2 -0
  63. package/dist/client/convert/node.cjs.map +1 -0
  64. package/dist/client/convert/node.d.ts +18 -9
  65. package/dist/client/convert/node.js +2 -87
  66. package/dist/client/convert/node.js.map +1 -0
  67. package/dist/client/helpers.cjs +2 -0
  68. package/dist/client/helpers.cjs.map +1 -0
  69. package/dist/client/helpers.d.ts +16 -28
  70. package/dist/client/helpers.js +2 -119
  71. package/dist/client/helpers.js.map +1 -0
  72. package/dist/client/index.cjs +2 -0
  73. package/dist/client/index.cjs.map +1 -0
  74. package/dist/client/index.d.ts +16 -34
  75. package/dist/client/index.js +2 -46
  76. package/dist/client/index.js.map +1 -0
  77. package/dist/client/storage.cjs +2 -0
  78. package/dist/client/storage.cjs.map +1 -0
  79. package/dist/client/storage.d.ts +6 -3
  80. package/dist/client/storage.js +2 -12
  81. package/dist/client/storage.js.map +1 -0
  82. package/dist/client/types/File.cjs +1 -0
  83. package/dist/client/types/File.cjs.map +1 -0
  84. package/dist/client/types/File.d.ts +9 -5
  85. package/dist/client/types/File.js +1 -3
  86. package/dist/client/types/File.js.map +1 -0
  87. package/dist/client/types/Inputs.cjs +1 -0
  88. package/dist/client/types/Inputs.cjs.map +1 -0
  89. package/dist/client/types/Inputs.d.ts +6 -4
  90. package/dist/client/types/Inputs.js +1 -3
  91. package/dist/client/types/Inputs.js.map +1 -0
  92. package/dist/client/types/Node.cjs +1 -0
  93. package/dist/client/types/Node.cjs.map +1 -0
  94. package/dist/client/types/Node.d.ts +9 -56
  95. package/dist/client/types/Node.js +1 -3
  96. package/dist/client/types/Node.js.map +1 -0
  97. package/dist/client/types/UserAppNotifications.cjs +1 -0
  98. package/dist/client/types/UserAppNotifications.cjs.map +1 -0
  99. package/dist/client/types/UserAppNotifications.d.ts +3 -1
  100. package/dist/client/types/UserAppNotifications.js +1 -3
  101. package/dist/client/types/UserAppNotifications.js.map +1 -0
  102. package/dist/client/types/UserAppSettings.cjs +1 -0
  103. package/dist/client/types/UserAppSettings.cjs.map +1 -0
  104. package/dist/client/types/UserAppSettings.d.ts +3 -1
  105. package/dist/client/types/UserAppSettings.js +1 -3
  106. package/dist/client/types/UserAppSettings.js.map +1 -0
  107. package/dist/client/types/index.cjs +2 -0
  108. package/dist/client/types/index.cjs.map +1 -0
  109. package/dist/client/types/index.d.ts +86 -30
  110. package/dist/client/types/index.js +2 -8
  111. package/dist/client/types/index.js.map +1 -0
  112. package/dist/client/types/selectors.cjs +2 -0
  113. package/dist/client/types/selectors.cjs.map +1 -0
  114. package/dist/client/types/selectors.d.ts +7 -5
  115. package/dist/client/types/selectors.js +2 -135
  116. package/dist/client/types/selectors.js.map +1 -0
  117. package/dist/crypto/file.cjs +2 -0
  118. package/dist/crypto/file.cjs.map +1 -0
  119. package/dist/crypto/file.d.ts +8 -6
  120. package/dist/crypto/file.js +2 -195
  121. package/dist/crypto/file.js.map +1 -0
  122. package/dist/crypto/index.cjs +2 -0
  123. package/dist/crypto/index.cjs.map +1 -0
  124. package/dist/crypto/index.d.ts +11 -9
  125. package/dist/crypto/index.js +2 -45
  126. package/dist/crypto/index.js.map +1 -0
  127. package/dist/error.cjs +1 -0
  128. package/dist/error.cjs.map +1 -0
  129. package/dist/error.d.ts +13 -11
  130. package/dist/error.js +1 -3
  131. package/dist/error.js.map +1 -0
  132. package/dist/index.cjs +2 -0
  133. package/dist/index.cjs.map +1 -0
  134. package/dist/index.d.ts +19 -14
  135. package/dist/index.js +2 -10
  136. package/dist/index.js.map +1 -0
  137. package/dist/minify/index.cjs +2 -0
  138. package/dist/minify/index.cjs.map +1 -0
  139. package/dist/minify/index.d.ts +4 -2
  140. package/dist/minify/index.js +2 -23
  141. package/dist/minify/index.js.map +1 -0
  142. package/dist/minify/lz4.cjs +3 -0
  143. package/dist/minify/lz4.cjs.map +1 -0
  144. package/dist/minify/lz4.d.ts +7 -5
  145. package/dist/minify/lz4.js +2 -538
  146. package/dist/minify/lz4.js.map +1 -0
  147. package/dist/sodium.cjs +2 -0
  148. package/dist/sodium.cjs.map +1 -0
  149. package/dist/sodium.d.ts +5 -3
  150. package/dist/sodium.js +2 -6
  151. package/dist/sodium.js.map +1 -0
  152. package/dist/utils/encoders.cjs +2 -0
  153. package/dist/utils/encoders.cjs.map +1 -0
  154. package/dist/utils/encoders.d.ts +6 -4
  155. package/dist/utils/encoders.js +2 -18
  156. package/dist/utils/encoders.js.map +1 -0
  157. package/dist/utils/store-buddy.cjs +2 -0
  158. package/dist/utils/store-buddy.cjs.map +1 -0
  159. package/dist/utils/store-buddy.d.ts +4 -3
  160. package/dist/utils/store-buddy.js +2 -58
  161. package/dist/utils/store-buddy.js.map +1 -0
  162. package/dist/utils/time.cjs +2 -0
  163. package/dist/utils/time.cjs.map +1 -0
  164. package/dist/utils/time.d.ts +4 -2
  165. package/dist/utils/time.js +2 -12
  166. package/dist/utils/time.js.map +1 -0
  167. package/dist/utils/utils.cjs +2 -0
  168. package/dist/utils/utils.cjs.map +1 -0
  169. package/dist/utils/utils.d.ts +6 -4
  170. package/dist/utils/utils.js +2 -47
  171. package/dist/utils/utils.js.map +1 -0
  172. package/dist/worker/md5.cjs +2 -0
  173. package/dist/worker/md5.cjs.map +1 -0
  174. package/dist/worker/md5.d.ts +3 -1
  175. package/dist/worker/md5.js +2 -24
  176. package/dist/worker/md5.js.map +1 -0
  177. package/dist/worker/sodium.cjs +2 -0
  178. package/dist/worker/sodium.cjs.map +1 -0
  179. package/dist/worker/sodium.d.ts +6 -3
  180. package/dist/worker/sodium.js +2 -118
  181. package/dist/worker/sodium.js.map +1 -0
  182. package/dist/worker/workerCodes.cjs +254 -0
  183. package/dist/worker/workerCodes.cjs.map +1 -0
  184. package/dist/worker/workerCodes.d.ts +4 -2
  185. package/dist/worker/workerCodes.js +4 -5
  186. package/dist/worker/workerCodes.js.map +1 -0
  187. package/dist/zeus/const.cjs +2 -0
  188. package/dist/zeus/const.cjs.map +1 -0
  189. package/dist/zeus/const.d.ts +5 -3
  190. package/dist/zeus/const.js +2 -1846
  191. package/dist/zeus/const.js.map +1 -0
  192. package/dist/zeus/index.cjs +5 -0
  193. package/dist/zeus/index.cjs.map +1 -0
  194. package/dist/zeus/index.d.ts +91 -89
  195. package/dist/zeus/index.js +5 -642
  196. package/dist/zeus/index.js.map +1 -0
  197. package/package.json +2 -2
@@ -1,42 +1,2 @@
1
- import { sodium, decryptCryptoBox } from "../../index.js";
2
- export function convertInternalMailToExternal(data, keys) {
3
- let type = data.type;
4
- if (data.mailIntegrityDraft) {
5
- type = "draft";
6
- }
7
- const mI = type === "draft" ? data.mailIntegrityDraft : data.mailIntegrity;
8
- if (!mI) {
9
- return null;
10
- }
11
- const pubKey = data.type === "received" ? data.sender.publicKey : keys.publicKey;
12
- const body = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey));
13
- const subject = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey));
14
- const hash = sodium.crypto_generichash(sodium.crypto_generichash_BYTES, JSON.stringify({
15
- body,
16
- subject
17
- }), mI.hashKey, "hex");
18
- return {
19
- type,
20
- id: data.id,
21
- mailIntegrityId: mI.id,
22
- replyTo: mI.replyTo?.id,
23
- body,
24
- subject,
25
- createdAt: new Date(data.createdAt),
26
- deletedAt: data.deletedAt ? new Date(data.deletedAt) : null,
27
- openedAt: data.openedAt ? new Date(data.openedAt) : null,
28
- isAltered: hash !== mI.hash,
29
- temporaryRecipients: mI.temporaryRecipients,
30
- recipients: type === "draft" ? mI.recipients : data.recipients,
31
- sender: data.sender,
32
- files: data.files.map(f => {
33
- const name = sodium.to_string(decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey));
34
- return {
35
- id: f.file.id,
36
- name,
37
- key: f.fileKey
38
- };
39
- })
40
- };
41
- }
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94IiwiY29udmVydEludGVybmFsTWFpbFRvRXh0ZXJuYWwiLCJkYXRhIiwia2V5cyIsInR5cGUiLCJtYWlsSW50ZWdyaXR5RHJhZnQiLCJtSSIsIm1haWxJbnRlZ3JpdHkiLCJwdWJLZXkiLCJzZW5kZXIiLCJwdWJsaWNLZXkiLCJib2R5IiwidG9fc3RyaW5nIiwiZnJvbV9oZXgiLCJwcml2YXRlS2V5Iiwic3ViamVjdCIsImhhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2hfQllURVMiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFzaEtleSIsImlkIiwibWFpbEludGVncml0eUlkIiwicmVwbHlUbyIsImNyZWF0ZWRBdCIsIkRhdGUiLCJkZWxldGVkQXQiLCJvcGVuZWRBdCIsImlzQWx0ZXJlZCIsInRlbXBvcmFyeVJlY2lwaWVudHMiLCJyZWNpcGllbnRzIiwiZmlsZXMiLCJtYXAiLCJmIiwibmFtZSIsImZpbGVuYW1lIiwiZmlsZSIsImtleSIsImZpbGVLZXkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbWFpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdRTE1haWwsIE1haWwsIE1haWxUeXBlIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzb2RpdW0sIGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJbnRlcm5hbE1haWxUb0V4dGVybmFsKFxuICBkYXRhOiBHUUxNYWlsLFxuICBrZXlzOiBLZXlQYWlyXG4pOiBNYWlsIHwgbnVsbCB7XG4gIGxldCB0eXBlOiBNYWlsVHlwZSA9IGRhdGEudHlwZTtcbiAgaWYgKGRhdGEubWFpbEludGVncml0eURyYWZ0KSB7XG4gICAgdHlwZSA9IFwiZHJhZnRcIjtcbiAgfVxuXG4gIGNvbnN0IG1JID0gdHlwZSA9PT0gXCJkcmFmdFwiID8gZGF0YS5tYWlsSW50ZWdyaXR5RHJhZnQgOiBkYXRhLm1haWxJbnRlZ3JpdHk7XG5cbiAgaWYgKCFtSSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcHViS2V5ID1cbiAgICBkYXRhLnR5cGUgPT09IFwicmVjZWl2ZWRcIiA/IGRhdGEuc2VuZGVyLnB1YmxpY0tleSA6IGtleXMucHVibGljS2V5O1xuXG4gIGNvbnN0IGJvZHkgPSBzb2RpdW0udG9fc3RyaW5nKFxuICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGRhdGEuYm9keSksIHB1YktleSwga2V5cy5wcml2YXRlS2V5KVxuICApO1xuXG4gIGNvbnN0IHN1YmplY3QgPSBzb2RpdW0udG9fc3RyaW5nKFxuICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGRhdGEuc3ViamVjdCksIHB1YktleSwga2V5cy5wcml2YXRlS2V5KVxuICApO1xuXG4gIGNvbnN0IGhhc2ggPSBzb2RpdW0uY3J5cHRvX2dlbmVyaWNoYXNoKFxuICAgIHNvZGl1bS5jcnlwdG9fZ2VuZXJpY2hhc2hfQllURVMsXG4gICAgSlNPTi5zdHJpbmdpZnkoeyBib2R5LCBzdWJqZWN0IH0pLFxuICAgIG1JLmhhc2hLZXksXG4gICAgXCJoZXhcIlxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZSxcbiAgICBpZDogZGF0YS5pZCxcbiAgICBtYWlsSW50ZWdyaXR5SWQ6IG1JLmlkLFxuICAgIHJlcGx5VG86IG1JLnJlcGx5VG8/LmlkLFxuICAgIGJvZHksXG4gICAgc3ViamVjdCxcbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKGRhdGEuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgZGVsZXRlZEF0OiBkYXRhLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGRhdGEuZGVsZXRlZEF0IGFzIHN0cmluZykgOiBudWxsLFxuICAgIG9wZW5lZEF0OiBkYXRhLm9wZW5lZEF0ID8gbmV3IERhdGUoZGF0YS5vcGVuZWRBdCBhcyBzdHJpbmcpIDogbnVsbCxcbiAgICBpc0FsdGVyZWQ6IGhhc2ggIT09IG1JLmhhc2gsXG4gICAgdGVtcG9yYXJ5UmVjaXBpZW50czogbUkudGVtcG9yYXJ5UmVjaXBpZW50cyxcbiAgICByZWNpcGllbnRzOiB0eXBlID09PSBcImRyYWZ0XCIgPyBtSS5yZWNpcGllbnRzIDogZGF0YS5yZWNpcGllbnRzLFxuICAgIHNlbmRlcjogZGF0YS5zZW5kZXIsXG4gICAgZmlsZXM6IGRhdGEuZmlsZXMubWFwKGYgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGYuZmlsZW5hbWUpLCBwdWJLZXksIGtleXMucHJpdmF0ZUtleSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBmLmZpbGUuaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGtleTogZi5maWxlS2V5XG4gICAgICB9O1xuICAgIH0pXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLE1BQU0sRUFBRUMsZ0JBQWdCLFFBQVEsZ0JBQWdCO0FBRXpELE9BQU8sU0FBU0MsNkJBQTZCLENBQzNDQyxJQUFhLEVBQ2JDLElBQWEsRUFDQTtFQUNiLElBQUlDLElBQWMsR0FBR0YsSUFBSSxDQUFDRSxJQUFJO0VBQzlCLElBQUlGLElBQUksQ0FBQ0csa0JBQWtCLEVBQUU7SUFDM0JELElBQUksR0FBRyxPQUFPO0VBQ2hCO0VBRUEsTUFBTUUsRUFBRSxHQUFHRixJQUFJLEtBQUssT0FBTyxHQUFHRixJQUFJLENBQUNHLGtCQUFrQixHQUFHSCxJQUFJLENBQUNLLGFBQWE7RUFFMUUsSUFBSSxDQUFDRCxFQUFFLEVBQUU7SUFDUCxPQUFPLElBQUk7RUFDYjtFQUVBLE1BQU1FLE1BQU0sR0FDVk4sSUFBSSxDQUFDRSxJQUFJLEtBQUssVUFBVSxHQUFHRixJQUFJLENBQUNPLE1BQU0sQ0FBQ0MsU0FBUyxHQUFHUCxJQUFJLENBQUNPLFNBQVM7RUFFbkUsTUFBTUMsSUFBSSxHQUFHWixNQUFNLENBQUNhLFNBQVMsQ0FDM0JaLGdCQUFnQixDQUFDRCxNQUFNLENBQUNjLFFBQVEsQ0FBQ1gsSUFBSSxDQUFDUyxJQUFJLENBQUMsRUFBRUgsTUFBTSxFQUFFTCxJQUFJLENBQUNXLFVBQVUsQ0FBQyxDQUN0RTtFQUVELE1BQU1DLE9BQU8sR0FBR2hCLE1BQU0sQ0FBQ2EsU0FBUyxDQUM5QlosZ0JBQWdCLENBQUNELE1BQU0sQ0FBQ2MsUUFBUSxDQUFDWCxJQUFJLENBQUNhLE9BQU8sQ0FBQyxFQUFFUCxNQUFNLEVBQUVMLElBQUksQ0FBQ1csVUFBVSxDQUFDLENBQ3pFO0VBRUQsTUFBTUUsSUFBSSxHQUFHakIsTUFBTSxDQUFDa0Isa0JBQWtCLENBQ3BDbEIsTUFBTSxDQUFDbUIsd0JBQXdCLEVBQy9CQyxJQUFJLENBQUNDLFNBQVMsQ0FBQztJQUFFVCxJQUFJO0lBQUVJO0VBQVEsQ0FBQyxDQUFDLEVBQ2pDVCxFQUFFLENBQUNlLE9BQU8sRUFDVixLQUFLLENBQ047RUFFRCxPQUFPO0lBQ0xqQixJQUFJO0lBQ0prQixFQUFFLEVBQUVwQixJQUFJLENBQUNvQixFQUFFO0lBQ1hDLGVBQWUsRUFBRWpCLEVBQUUsQ0FBQ2dCLEVBQUU7SUFDdEJFLE9BQU8sRUFBRWxCLEVBQUUsQ0FBQ2tCLE9BQU8sRUFBRUYsRUFBRTtJQUN2QlgsSUFBSTtJQUNKSSxPQUFPO0lBQ1BVLFNBQVMsRUFBRSxJQUFJQyxJQUFJLENBQUN4QixJQUFJLENBQUN1QixTQUFTLENBQVc7SUFDN0NFLFNBQVMsRUFBRXpCLElBQUksQ0FBQ3lCLFNBQVMsR0FBRyxJQUFJRCxJQUFJLENBQUN4QixJQUFJLENBQUN5QixTQUFTLENBQVcsR0FBRyxJQUFJO0lBQ3JFQyxRQUFRLEVBQUUxQixJQUFJLENBQUMwQixRQUFRLEdBQUcsSUFBSUYsSUFBSSxDQUFDeEIsSUFBSSxDQUFDMEIsUUFBUSxDQUFXLEdBQUcsSUFBSTtJQUNsRUMsU0FBUyxFQUFFYixJQUFJLEtBQUtWLEVBQUUsQ0FBQ1UsSUFBSTtJQUMzQmMsbUJBQW1CLEVBQUV4QixFQUFFLENBQUN3QixtQkFBbUI7SUFDM0NDLFVBQVUsRUFBRTNCLElBQUksS0FBSyxPQUFPLEdBQUdFLEVBQUUsQ0FBQ3lCLFVBQVUsR0FBRzdCLElBQUksQ0FBQzZCLFVBQVU7SUFDOUR0QixNQUFNLEVBQUVQLElBQUksQ0FBQ08sTUFBTTtJQUNuQnVCLEtBQUssRUFBRTlCLElBQUksQ0FBQzhCLEtBQUssQ0FBQ0MsR0FBRyxDQUFDQyxDQUFDLElBQUk7TUFDekIsTUFBTUMsSUFBSSxHQUFHcEMsTUFBTSxDQUFDYSxTQUFTLENBQzNCWixnQkFBZ0IsQ0FBQ0QsTUFBTSxDQUFDYyxRQUFRLENBQUNxQixDQUFDLENBQUNFLFFBQVEsQ0FBQyxFQUFFNUIsTUFBTSxFQUFFTCxJQUFJLENBQUNXLFVBQVUsQ0FBQyxDQUN2RTtNQUVELE9BQU87UUFDTFEsRUFBRSxFQUFFWSxDQUFDLENBQUNHLElBQUksQ0FBQ2YsRUFBRTtRQUNiYSxJQUFJO1FBQ0pHLEdBQUcsRUFBRUosQ0FBQyxDQUFDSztNQUNULENBQUM7SUFDSCxDQUFDO0VBQ0gsQ0FBQztBQUNIIn0=
1
+ import{sodium as t,decryptCryptoBox as l}from"../../index.js";function d(e,r){let n=e.type;e.mailIntegrityDraft&&(n="draft");const i=n==="draft"?e.mailIntegrityDraft:e.mailIntegrity;if(!i)return null;const o=e.type==="received"?e.sender.publicKey:r.publicKey,s=t.to_string(l(t.from_hex(e.body),o,r.privateKey)),y=t.to_string(l(t.from_hex(e.subject),o,r.privateKey)),c=t.crypto_generichash(t.crypto_generichash_BYTES,JSON.stringify({body:s,subject:y}),i.hashKey,"hex");return{type:n,id:e.id,mailIntegrityId:i.id,replyTo:i.replyTo?.id,body:s,subject:y,createdAt:new Date(e.createdAt),deletedAt:e.deletedAt?new Date(e.deletedAt):null,openedAt:e.openedAt?new Date(e.openedAt):null,isAltered:c!==i.hash,temporaryRecipients:i.temporaryRecipients,recipients:n==="draft"?i.recipients:e.recipients,sender:e.sender,files:e.files.map(p=>{const m=t.to_string(l(t.from_hex(p.filename),o,r.privateKey));return{id:p.file.id,name:m,key:p.fileKey}})}}export{d as convertInternalMailToExternal};
2
+ //# sourceMappingURL=mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/mail.ts"],"sourcesContent":["import type { KeyPair } from \"../../crypto/index.js\";\nimport type { GQLMail, Mail, MailType } from \"../types/index.js\";\nimport { sodium, decryptCryptoBox } from \"../../index.js\";\n\nexport function convertInternalMailToExternal(\n data: GQLMail,\n keys: KeyPair\n): Mail | null {\n let type: MailType = data.type;\n if (data.mailIntegrityDraft) {\n type = \"draft\";\n }\n\n const mI = type === \"draft\" ? data.mailIntegrityDraft : data.mailIntegrity;\n\n if (!mI) {\n return null;\n }\n\n const pubKey =\n data.type === \"received\" ? data.sender.publicKey : keys.publicKey;\n\n const body = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey)\n );\n\n const subject = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey)\n );\n\n const hash = sodium.crypto_generichash(\n sodium.crypto_generichash_BYTES,\n JSON.stringify({ body, subject }),\n mI.hashKey,\n \"hex\"\n );\n\n return {\n type,\n id: data.id,\n mailIntegrityId: mI.id,\n replyTo: mI.replyTo?.id,\n body,\n subject,\n createdAt: new Date(data.createdAt as string),\n deletedAt: data.deletedAt ? new Date(data.deletedAt as string) : null,\n openedAt: data.openedAt ? new Date(data.openedAt as string) : null,\n isAltered: hash !== mI.hash,\n temporaryRecipients: mI.temporaryRecipients,\n recipients: type === \"draft\" ? mI.recipients : data.recipients,\n sender: data.sender,\n files: data.files.map(f => {\n const name = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey)\n );\n\n return {\n id: f.file.id,\n name,\n key: f.fileKey\n };\n })\n };\n}\n"],"mappings":"AAEA,OAAS,UAAAA,EAAQ,oBAAAC,MAAwB,iBAElC,SAASC,EACdC,EACAC,EACa,CACb,IAAIC,EAAiBF,EAAK,KACtBA,EAAK,qBACPE,EAAO,SAGT,MAAMC,EAAKD,IAAS,QAAUF,EAAK,mBAAqBA,EAAK,cAE7D,GAAI,CAACG,EACH,OAAO,KAGT,MAAMC,EACJJ,EAAK,OAAS,WAAaA,EAAK,OAAO,UAAYC,EAAK,UAEpDI,EAAOR,EAAO,UAClBC,EAAiBD,EAAO,SAASG,EAAK,IAAI,EAAGI,EAAQH,EAAK,UAAU,CACtE,EAEMK,EAAUT,EAAO,UACrBC,EAAiBD,EAAO,SAASG,EAAK,OAAO,EAAGI,EAAQH,EAAK,UAAU,CACzE,EAEMM,EAAOV,EAAO,mBAClBA,EAAO,yBACP,KAAK,UAAU,CAAE,KAAAQ,EAAM,QAAAC,CAAQ,CAAC,EAChCH,EAAG,QACH,KACF,EAEA,MAAO,CACL,KAAAD,EACA,GAAIF,EAAK,GACT,gBAAiBG,EAAG,GACpB,QAASA,EAAG,SAAS,GACrB,KAAAE,EACA,QAAAC,EACA,UAAW,IAAI,KAAKN,EAAK,SAAmB,EAC5C,UAAWA,EAAK,UAAY,IAAI,KAAKA,EAAK,SAAmB,EAAI,KACjE,SAAUA,EAAK,SAAW,IAAI,KAAKA,EAAK,QAAkB,EAAI,KAC9D,UAAWO,IAASJ,EAAG,KACvB,oBAAqBA,EAAG,oBACxB,WAAYD,IAAS,QAAUC,EAAG,WAAaH,EAAK,WACpD,OAAQA,EAAK,OACb,MAAOA,EAAK,MAAM,IAAIQ,GAAK,CACzB,MAAMC,EAAOZ,EAAO,UAClBC,EAAiBD,EAAO,SAASW,EAAE,QAAQ,EAAGJ,EAAQH,EAAK,UAAU,CACvE,EAEA,MAAO,CACL,GAAIO,EAAE,KAAK,GACX,KAAAC,EACA,IAAKD,EAAE,OACT,CACF,CAAC,CACH,CACF","names":["sodium","decryptCryptoBox","convertInternalMailToExternal","data","keys","type","mI","pubKey","body","subject","hash","f","name"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } function _optionalChainDelete(ops) { const result = _optionalChain(ops); return result == null ? true : result; }var _sodiumjs = require('../../sodium.js');var _indexjs = require('../../crypto/index.js');var _cachejs = require('../../cache.js');var _filejs = require('../../crypto/file.js');var _filejs3 = require('./file.js');async function a(e,r){if(!e.access)throw`Can't access Node ${e.id}`;const n={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(t=>[t.userApp.user,t.rights]),parentId:_nullishCoalesce(e.parentId, () => (null)),currentFileId:_nullishCoalesce(e.currentFileId, () => (null))};if(n.access={...e.access},e.access.nameKey){if(!e.access.sharedBy.keyPair)throw new Error("Can't find keyPair for access");const t=_indexjs.decryptCryptoBox.call(void 0, _sodiumjs.sodium.from_hex(e.access.nameKey),e.createdBy.user.publicKey,r.privateKey);n.name=_sodiumjs.sodium.to_string(await _filejs.decryptSecretstream.call(void 0, t,_sodiumjs.sodium.from_hex(n.name))),n.access.nameKey=_sodiumjs.sodium.to_hex(t)}for(const t of n.breadcrumb){if(!t.nameKey)continue;const d=_indexjs.decryptCryptoBox.call(void 0, _sodiumjs.sodium.from_hex(t.nameKey),t.pubKey,r.privateKey);t.nameKey=_sodiumjs.sodium.to_hex(d),t.name=_sodiumjs.sodium.to_string(await _filejs.decryptSecretstream.call(void 0, d,_sodiumjs.sodium.from_hex(t.name)))}return _cachejs.nodesCache.set(n.id,n),n}async function l(e,r){return{...await a(e,r),current:e.current?_filejs3.gqlFileToInternal.call(void 0, e.current,r):void 0,parent:e.parent?await a(e.parent,r):null,children:await Promise.all(e.children.map(t=>a(t,r))),history:e.history.map(t=>_filejs3.gqlFileToInternal.call(void 0, t,r))}}function s(e){const r={...e,access:e.access?{...e.access}:void 0};for(const n of r.breadcrumb)delete n.pubKey;return _optionalChainDelete([r, 'access', _ => _.access, 'optionalAccess', _2 => delete _2.nameKey]),r}function y(e){return{...s(e),parent:e.parent?s(e.parent):null,children:e.children.map(s),history:e.history.map(r=>_filejs3.internalFileToFile.call(void 0, r)),current:e.current?_filejs3.internalFileToFile.call(void 0, e.current):void 0}}async function K(e,r){return y(await l(e,r))}async function I(e,r){return s(await a(e,r))}exports.gqlNodeFullToInternalFull = l; exports.gqlNodeToExternal = I; exports.gqlNodeToExternalNodeFull = K; exports.gqlNodeToInternal = a; exports.internalNodeFullToNodeFull = y; exports.internalNodeToNode = s;
2
+ //# sourceMappingURL=node.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/node.ts"],"names":["sodium","decryptCryptoBox","nodesCache","decryptSecretstream","gqlFileToInternal","internalFileToFile","gqlNodeToInternal","gql","keyPair","internal","u","key","b","gqlNodeFullToInternalFull","s","f","internalNodeToNode","node","internalNodeFullToNodeFull","gqlNodeToExternalNodeFull","gqlNodeToExternal"],"mappings":"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","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"]}
@@ -1,9 +1,18 @@
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>;
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,87 +1,2 @@
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
- const node = _objectSpread(_objectSpread({}, internal), {}, {
63
- access: internal.access ? _objectSpread({}, internal.access) : undefined
64
- });
65
- for (const b of node.breadcrumb) {
66
- // @ts-ignore
67
- delete b.pubKey;
68
- }
69
- // @ts-ignore
70
- delete node.access?.nameKey;
71
- return node;
72
- }
73
- export function internalNodeFullToNodeFull(internal) {
74
- return _objectSpread(_objectSpread({}, internalNodeToNode(internal)), {}, {
75
- parent: internal.parent ? internalNodeToNode(internal.parent) : null,
76
- children: internal.children.map(internalNodeToNode),
77
- history: internal.history.map(f => internalFileToFile(f)),
78
- current: internal.current ? internalFileToFile(internal.current) : undefined
79
- });
80
- }
81
- export async function gqlNodeToExternalNodeFull(gql, keyPair) {
82
- return internalNodeFullToNodeFull(await gqlNodeFullToInternalFull(gql, keyPair));
83
- }
84
- export async function gqlNodeToExternal(gql, keyPair) {
85
- return internalNodeToNode(await gqlNodeToInternal(gql, keyPair));
86
- }
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94Iiwibm9kZXNDYWNoZSIsImRlY3J5cHRTZWNyZXRzdHJlYW0iLCJncWxGaWxlVG9JbnRlcm5hbCIsImludGVybmFsRmlsZVRvRmlsZSIsImdxbE5vZGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsImlkIiwiaW50ZXJuYWwiLCJ0eXBlIiwibmFtZSIsImlzRmF2b3JpdGUiLCJicmVhZGNydW1iIiwiY3JlYXRlZEJ5IiwidXNlciIsInNpemVzIiwic2l6ZSIsIkJpZ0ludCIsInNpemVCZWZvcmUiLCJjcmVhdGVkQXQiLCJEYXRlIiwidXBkYXRlZEF0IiwiZGVsZXRlZEF0IiwidXNlcnMiLCJhY2Nlc3NlcyIsIm1hcCIsInUiLCJ1c2VyQXBwIiwicmlnaHRzIiwicGFyZW50SWQiLCJjdXJyZW50RmlsZUlkIiwibmFtZUtleSIsInNoYXJlZEJ5IiwiRXJyb3IiLCJrZXkiLCJmcm9tX2hleCIsInB1YmxpY0tleSIsInByaXZhdGVLZXkiLCJ0b19zdHJpbmciLCJ0b19oZXgiLCJiIiwicHViS2V5Iiwic2V0IiwiZ3FsTm9kZUZ1bGxUb0ludGVybmFsRnVsbCIsImYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwicGFyZW50IiwiY2hpbGRyZW4iLCJQcm9taXNlIiwiYWxsIiwicyIsImhpc3RvcnkiLCJpbnRlcm5hbE5vZGVUb05vZGUiLCJub2RlIiwiaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwiLCJncWxOb2RlVG9FeHRlcm5hbE5vZGVGdWxsIiwiZ3FsTm9kZVRvRXh0ZXJuYWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBOb2RlIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdRTE5vZGUsXG4gIEludGVybmFsTm9kZSxcbiAgR1FMTm9kZUZ1bGwsXG4gIEludGVybmFsTm9kZUZ1bGwsXG4gIE5vZGVGdWxsXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgbm9kZXNDYWNoZSB9IGZyb20gXCIuLi8uLi9jYWNoZS5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgZ3FsRmlsZVRvSW50ZXJuYWwsIGludGVybmFsRmlsZVRvRmlsZSB9IGZyb20gXCIuL2ZpbGUuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0ludGVybmFsKFxuICBncWw6IEdRTE5vZGUsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlPiB7XG4gIGlmICghZ3FsLmFjY2Vzcykge1xuICAgIHRocm93IGBDYW4ndCBhY2Nlc3MgTm9kZSAke2dxbC5pZH1gO1xuICB9XG5cbiAgY29uc3QgaW50ZXJuYWw6IEludGVybmFsTm9kZSA9IHtcbiAgICBpZDogZ3FsLmlkLFxuICAgIHR5cGU6IGdxbC50eXBlLFxuICAgIGFjY2VzczogZ3FsLmFjY2VzcyxcbiAgICBuYW1lOiBncWwubmFtZSxcbiAgICBpc0Zhdm9yaXRlOiBncWwuaXNGYXZvcml0ZSxcbiAgICBicmVhZGNydW1iOiBncWwuYnJlYWRjcnVtYixcbiAgICBjcmVhdGVkQnk6IGdxbC5jcmVhdGVkQnkudXNlcixcbiAgICBzaXplczoge1xuICAgICAgc2l6ZTogQmlnSW50KGdxbC5zaXplcy5zaXplIGFzIHN0cmluZyksXG4gICAgICBzaXplQmVmb3JlOiBCaWdJbnQoZ3FsLnNpemVzLnNpemVCZWZvcmUgYXMgc3RyaW5nKVxuICAgIH0sXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgdXBkYXRlZEF0OiBuZXcgRGF0ZShncWwudXBkYXRlZEF0IGFzIHN0cmluZyksXG4gICAgZGVsZXRlZEF0OiBncWwuZGVsZXRlZEF0ID8gbmV3IERhdGUoZ3FsLmRlbGV0ZWRBdCBhcyBzdHJpbmcpIDogbnVsbCxcbiAgICB1c2VyczogZ3FsLmFjY2Vzc2VzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKSxcbiAgICBwYXJlbnRJZDogZ3FsLnBhcmVudElkID8/IG51bGwsXG4gICAgY3VycmVudEZpbGVJZDogZ3FsLmN1cnJlbnRGaWxlSWQgPz8gbnVsbFxuICB9O1xuXG4gIGludGVybmFsLmFjY2VzcyA9IHsgLi4uZ3FsLmFjY2VzcyB9O1xuXG4gIGlmIChncWwuYWNjZXNzLm5hbWVLZXkpIHtcbiAgICBpZiAoIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBmaW5kIGtleVBhaXIgZm9yIGFjY2Vzc2ApO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3MubmFtZUtleSksXG4gICAgICBncWwuY3JlYXRlZEJ5LnVzZXIucHVibGljS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcbiAgICBpbnRlcm5hbC5uYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgIGF3YWl0IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBzb2RpdW0uZnJvbV9oZXgoaW50ZXJuYWwubmFtZSkpXG4gICAgKTtcblxuICAgIGludGVybmFsLmFjY2Vzcy5uYW1lS2V5ID0gc29kaXVtLnRvX2hleChrZXkpO1xuICB9XG5cbiAgZm9yIChjb25zdCBiIG9mIGludGVybmFsLmJyZWFkY3J1bWIpIHtcbiAgICBpZiAoIWIubmFtZUtleSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IGRlY3J5cHRDcnlwdG9Cb3goXG4gICAgICBzb2RpdW0uZnJvbV9oZXgoYi5uYW1lS2V5KSxcbiAgICAgIGIucHViS2V5LFxuICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgKTtcblxuICAgIGIubmFtZUtleSA9IHNvZGl1bS50b19oZXgoa2V5KTtcblxuICAgIGIubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGIubmFtZSkpXG4gICAgKTtcbiAgfVxuXG4gIG5vZGVzQ2FjaGUuc2V0KGludGVybmFsLmlkLCBpbnRlcm5hbCk7XG4gIHJldHVybiBpbnRlcm5hbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxOb2RlRnVsbD4ge1xuICBjb25zdCBmID0gYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5mLFxuICAgIGN1cnJlbnQ6IGdxbC5jdXJyZW50ID8gZ3FsRmlsZVRvSW50ZXJuYWwoZ3FsLmN1cnJlbnQsIGtleVBhaXIpIDogdW5kZWZpbmVkLFxuICAgIHBhcmVudDogZ3FsLnBhcmVudCA/IGF3YWl0IGdxbE5vZGVUb0ludGVybmFsKGdxbC5wYXJlbnQsIGtleVBhaXIpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBncWwuY2hpbGRyZW4ubWFwKHMgPT4gZ3FsTm9kZVRvSW50ZXJuYWwocywga2V5UGFpcikpXG4gICAgKSxcbiAgICBoaXN0b3J5OiBncWwuaGlzdG9yeS5tYXAoZiA9PiBncWxGaWxlVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbDogSW50ZXJuYWxOb2RlKTogTm9kZSB7XG4gIGNvbnN0IG5vZGU6IE5vZGUgPSB7XG4gICAgLi4uaW50ZXJuYWwsXG4gICAgYWNjZXNzOiBpbnRlcm5hbC5hY2Nlc3MgPyB7IC4uLmludGVybmFsLmFjY2VzcyB9IDogdW5kZWZpbmVkXG4gIH07XG5cbiAgZm9yIChjb25zdCBiIG9mIG5vZGUuYnJlYWRjcnVtYikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkZWxldGUgYi5wdWJLZXk7XG4gIH1cbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgbm9kZS5hY2Nlc3M/Lm5hbWVLZXk7XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxOb2RlRnVsbFRvTm9kZUZ1bGwoXG4gIGludGVybmFsOiBJbnRlcm5hbE5vZGVGdWxsXG4pOiBOb2RlRnVsbCB7XG4gIHJldHVybiB7XG4gICAgLi4uaW50ZXJuYWxOb2RlVG9Ob2RlKGludGVybmFsKSxcbiAgICBwYXJlbnQ6IGludGVybmFsLnBhcmVudCA/IGludGVybmFsTm9kZVRvTm9kZShpbnRlcm5hbC5wYXJlbnQpIDogbnVsbCxcbiAgICBjaGlsZHJlbjogaW50ZXJuYWwuY2hpbGRyZW4ubWFwKGludGVybmFsTm9kZVRvTm9kZSksXG4gICAgaGlzdG9yeTogaW50ZXJuYWwuaGlzdG9yeS5tYXAoZiA9PiBpbnRlcm5hbEZpbGVUb0ZpbGUoZikpLFxuICAgIGN1cnJlbnQ6IGludGVybmFsLmN1cnJlbnQgPyBpbnRlcm5hbEZpbGVUb0ZpbGUoaW50ZXJuYWwuY3VycmVudCkgOiB1bmRlZmluZWRcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbE5vZGVUb0V4dGVybmFsTm9kZUZ1bGwoXG4gIGdxbDogR1FMTm9kZUZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Tm9kZUZ1bGw+IHtcbiAgcmV0dXJuIGludGVybmFsTm9kZUZ1bGxUb05vZGVGdWxsKFxuICAgIGF3YWl0IGdxbE5vZGVGdWxsVG9JbnRlcm5hbEZ1bGwoZ3FsLCBrZXlQYWlyKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsTm9kZVRvRXh0ZXJuYWwoXG4gIGdxbDogR1FMTm9kZSxcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxOb2RlPiB7XG4gIHJldHVybiBpbnRlcm5hbE5vZGVUb05vZGUoYXdhaXQgZ3FsTm9kZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKSk7XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLE1BQU0sUUFBUSxpQkFBaUI7QUFFeEMsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBU3hELFNBQVNDLFVBQVUsUUFBUSxnQkFBZ0I7QUFDM0MsU0FBU0MsbUJBQW1CLFFBQVEsc0JBQXNCO0FBQzFELFNBQVNDLGlCQUFpQixFQUFFQyxrQkFBa0IsUUFBUSxXQUFXO0FBRWpFLE9BQU8sZUFBZUMsaUJBQWlCLENBQ3JDQyxHQUFZLEVBQ1pDLE9BQWdCLEVBQ087RUFDdkIsSUFBSSxDQUFDRCxHQUFHLENBQUNFLE1BQU0sRUFBRTtJQUNmLE1BQU8scUJBQW9CRixHQUFHLENBQUNHLEVBQUcsRUFBQztFQUNyQztFQUVBLE1BQU1DLFFBQXNCLEdBQUc7SUFDN0JELEVBQUUsRUFBRUgsR0FBRyxDQUFDRyxFQUFFO0lBQ1ZFLElBQUksRUFBRUwsR0FBRyxDQUFDSyxJQUFJO0lBQ2RILE1BQU0sRUFBRUYsR0FBRyxDQUFDRSxNQUFNO0lBQ2xCSSxJQUFJLEVBQUVOLEdBQUcsQ0FBQ00sSUFBSTtJQUNkQyxVQUFVLEVBQUVQLEdBQUcsQ0FBQ08sVUFBVTtJQUMxQkMsVUFBVSxFQUFFUixHQUFHLENBQUNRLFVBQVU7SUFDMUJDLFNBQVMsRUFBRVQsR0FBRyxDQUFDUyxTQUFTLENBQUNDLElBQUk7SUFDN0JDLEtBQUssRUFBRTtNQUNMQyxJQUFJ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
1
+ import{sodium as o}from"../../sodium.js";import{decryptCryptoBox as i}from"../../crypto/index.js";import{nodesCache as p}from"../../cache.js";import{decryptSecretstream as c}from"../../crypto/file.js";import{gqlFileToInternal as u,internalFileToFile as m}from"./file.js";async function a(e,r){if(!e.access)throw`Can't access Node ${e.id}`;const n={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(t=>[t.userApp.user,t.rights]),parentId:e.parentId??null,currentFileId:e.currentFileId??null};if(n.access={...e.access},e.access.nameKey){if(!e.access.sharedBy.keyPair)throw new Error("Can't find keyPair for access");const t=i(o.from_hex(e.access.nameKey),e.createdBy.user.publicKey,r.privateKey);n.name=o.to_string(await c(t,o.from_hex(n.name))),n.access.nameKey=o.to_hex(t)}for(const t of n.breadcrumb){if(!t.nameKey)continue;const d=i(o.from_hex(t.nameKey),t.pubKey,r.privateKey);t.nameKey=o.to_hex(d),t.name=o.to_string(await c(d,o.from_hex(t.name)))}return p.set(n.id,n),n}async function l(e,r){return{...await a(e,r),current:e.current?u(e.current,r):void 0,parent:e.parent?await a(e.parent,r):null,children:await Promise.all(e.children.map(t=>a(t,r))),history:e.history.map(t=>u(t,r))}}function s(e){const r={...e,access:e.access?{...e.access}:void 0};for(const n of r.breadcrumb)delete n.pubKey;return delete r.access?.nameKey,r}function y(e){return{...s(e),parent:e.parent?s(e.parent):null,children:e.children.map(s),history:e.history.map(r=>m(r)),current:e.current?m(e.current):void 0}}async function K(e,r){return y(await l(e,r))}async function I(e,r){return s(await a(e,r))}export{l as gqlNodeFullToInternalFull,I as gqlNodeToExternal,K as gqlNodeToExternalNodeFull,a as gqlNodeToInternal,y as internalNodeFullToNodeFull,s 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","internal","u","key","b","gqlNodeFullToInternalFull","s","f","internalNodeToNode","node","internalNodeFullToNodeFull","gqlNodeToExternalNodeFull","gqlNodeToExternal"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _indexjs = require('./index.js');var _PopupToolsjs = require('../PopupTools.js');var _storagejs = require('./storage.js');function g(){if(!window.location.hash)return null;const s=window.location.hash.substr(1);try{const o=JSON.parse(atob(s));return window.location.hash="",o}catch (e2){return null}}const x=({env:s,hash:o,path:e})=>{let a="";s==="dev"&&(a="dev.");const t=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${t?`/${t}`:""}${e.startsWith("/")?e:`/${e}`}#${o}`:`https://auth.${a}secrecy.me${t?`/${t}`:""}${e.startsWith("/")?e:`/${e}`}#${o}`};function A(s,o){const e=_storagejs.getStorage.call(void 0, o),a=e.userAppSession.load(),t=e.userAppKeys.load(),i=e.jwt.load();if(!a||!t||!i){const r=g();return r?(e.userAppKeys.save(r.keys),e.userAppSession.save(r.uaSession),e.jwt.save(r.jwt),new (0, _indexjs.SecrecyClient)(r.uaSession,r.keys,r.jwt,s)):null}return new (0, _indexjs.SecrecyClient)(a,t,i,s)}function T({appCode:s,path:o,redirect:e,scopes:a,backPath:t,env:i,session:r}={}){return new Promise((l,p)=>{const d=window.location.origin;if(s&&!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:s,redirect:e,path:o,scopes:a,backPath:t},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=n=>{const c=_storagejs.getStorage.call(void 0, r);return c.userAppSession.save(n.uaSession),c.userAppKeys.save(n.keys),c.jwt.save(n.jwt),l(new (0, _indexjs.SecrecyClient)(n.uaSession,n.keys,n.jwt,i))};if(e){const n=g();return n?f(n):(window.location.href=S,l(null))}else _PopupToolsjs.popup.call(void 0, S,"Secrecy Login",{width:500,height:750,resizable:"no",menubar:"no",location:"no",centered:!0,scrollbars:"no"},(n,c)=>{if(n)return p(n);{const h=c;if(h)return f(h)}})}})}exports.getSecrecyClient = A; exports.getUrl = x; exports.login = T; 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","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 height: 750,\n resizable: \"no\",\n menubar: \"no\",\n location: \"no\",\n centered: true,\n scrollbars: \"no\"\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"]}
@@ -1,28 +1,16 @@
1
- import { SecrecyClient } from "./index.js";
2
- import type { SecrecyUserApp } from "./types/index.js";
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;
9
- export type HashInfos = {
10
- appUrl: string;
11
- backPath?: string;
12
- appCode?: string | null | undefined;
13
- path?: string | null | undefined;
14
- redirect?: boolean;
15
- scopes?: {
16
- email: boolean;
17
- };
18
- };
19
- export type SecrecyEnv = "dev" | "prod";
20
- export type UseSecrecyParams = Omit<HashInfos, "appUrl"> & {
21
- env: SecrecyEnv;
22
- session?: boolean | undefined;
23
- };
24
- export 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-ca94a07f.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';
@@ -1,119 +1,2 @@
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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
1
+ 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 s=window.location.hash.substr(1);try{const o=JSON.parse(atob(s));return window.location.hash="",o}catch{return null}}const x=({env:s,hash:o,path:e})=>{let a="";s==="dev"&&(a="dev.");const t=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${t?`/${t}`:""}${e.startsWith("/")?e:`/${e}`}#${o}`:`https://auth.${a}secrecy.me${t?`/${t}`:""}${e.startsWith("/")?e:`/${e}`}#${o}`};function A(s,o){const e=w(o),a=e.userAppSession.load(),t=e.userAppKeys.load(),i=e.jwt.load();if(!a||!t||!i){const r=g();return r?(e.userAppKeys.save(r.keys),e.userAppSession.save(r.uaSession),e.jwt.save(r.jwt),new u(r.uaSession,r.keys,r.jwt,s)):null}return new u(a,t,i,s)}function T({appCode:s,path:o,redirect:e,scopes:a,backPath:t,env:i,session:r}={}){return new Promise((l,p)=>{const d=window.location.origin;if(s&&!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:s,redirect:e,path:o,scopes:a,backPath:t},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=n=>{const c=w(r);return c.userAppSession.save(n.uaSession),c.userAppKeys.save(n.keys),c.jwt.save(n.jwt),l(new u(n.uaSession,n.keys,n.jwt,i))};if(e){const n=g();return n?f(n):(window.location.href=S,l(null))}else U(S,"Secrecy Login",{width:500,height:750,resizable:"no",menubar:"no",location:"no",centered:!0,scrollbars:"no"},(n,c)=>{if(n)return p(n);{const h=c;if(h)return f(h)}})}})}export{A as getSecrecyClient,x as getUrl,T 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 height: 750,\n resizable: \"no\",\n menubar: \"no\",\n location: \"no\",\n centered: true,\n scrollbars: \"no\"\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","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 _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 v=async(i,e)=>{const{data:t}=await _filejs.encryptSecretstream.call(void 0, _sodiumjs.sodium.from_hex(e),_sodiumjs.sodium.from_string(i));return _sodiumjs.sodium.to_hex(t)};class E extends _BaseClientjs.BaseClient{#e;constructor(e,t,s,n){super(e,n),this.#e=t,this.cloud=new (0, _SecrecyCloudClientjs.SecrecyCloudClient)(this,this.#e,this.thunder),this.mail=new (0, _SecrecyMailClientjs.SecrecyMailClient)(this,this.#e,this.thunder),this.app=new (0, _SecrecyAppClientjs.SecrecyAppClient)(s,this,this.#e,this.thunder),this.db=new (0, _SecrecyDbClientjs.SecrecyDbClient)(this,this.#e,this.thunder),this.wallet=new (0, _SecrecyWalletClientjs.SecrecyWalletClient)(this),this.pay=new (0, _SecrecyPayClientjs.SecrecyPayClient)(this,this.#e,this.thunder)}get publicKey(){return this.#e.publicKey}async logout(e){_cachejs.nodesCache.clear(),_cachejs.filesCache.clear(),await super.logout(e)}}exports.SecrecyClient = E; exports.encryptName = v;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/index.ts"],"names":["BaseClient","encryptSecretstream","sodium","SecrecyCloudClient","SecrecyMailClient","SecrecyAppClient","nodesCache","filesCache","SecrecyDbClient","SecrecyWalletClient","SecrecyPayClient","encryptName","name","nameKey","data","SecrecyClient","#keys","uaSession","uaKeys","uaJwt","env","sessionId"],"mappings":"AACA,OAAS,cAAAA,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,CAC5CgB,GAEA,MAEA,KAEA,IAEA,GAEA,OAEA,IAEA,YACEC,EACAC,EACAC,EACAC,EACA,CACA,MAAMH,EAAWG,CAAG,EACpB,KAAKJ,GAAQE,EACb,KAAK,MAAQ,IAAIf,EAAmB,KAAM,KAAKa,GAAO,KAAK,OAAO,EAClE,KAAK,KAAO,IAAIZ,EAAkB,KAAM,KAAKY,GAAO,KAAK,OAAO,EAChE,KAAK,IAAM,IAAIX,EAAiBc,EAAO,KAAM,KAAKH,GAAO,KAAK,OAAO,EACrE,KAAK,GAAK,IAAIR,EAAgB,KAAM,KAAKQ,GAAO,KAAK,OAAO,EAC5D,KAAK,OAAS,IAAIP,EAAoB,IAAI,EAC1C,KAAK,IAAM,IAAIC,EAAiB,KAAM,KAAKM,GAAO,KAAK,OAAO,CAChE,CAEA,IAAI,WAAoB,CACtB,OAAO,KAAKA,GAAM,SACpB,CAEA,MAAM,OAAOK,EAAsD,CACjEf,EAAW,MAAM,EACjBC,EAAW,MAAM,EACjB,MAAM,MAAM,OAAOc,CAAS,CAC9B,CACF","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"]}
@@ -1,34 +1,16 @@
1
- import { BaseClient } from "../BaseClient.js";
2
- import type { Progress } from "../crypto/file.js";
3
- import type { KeyPair } from "../crypto/index.js";
4
- import type { SecrecyEnv } from "./helpers.js";
5
- import { SecrecyCloudClient } from "./SecrecyCloudClient.js";
6
- import { SecrecyMailClient } from "./SecrecyMailClient.js";
7
- import { SecrecyAppClient } from "./SecrecyAppClient.js";
8
- import { SecrecyDbClient } from "./SecrecyDbClient.js";
9
- import { SecrecyWalletClient } from "./SecrecyWalletClient.js";
10
- import { SecrecyPayClient } from "./SecrecyPayClient.js";
11
- export type NewMail = {
12
- body: string;
13
- subject: string;
14
- files: {
15
- id: string;
16
- name: string;
17
- }[];
18
- recipientsIds: string[];
19
- replyTo?: string | null | undefined;
20
- };
21
- export 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-ca94a07f.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';