@secrecy/lib 1.0.0-dev.63 → 1.0.0-dev.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/BaseClient-15fdf493.d.ts +351 -0
  2. package/dist/BaseClient.cjs +2 -0
  3. package/dist/BaseClient.cjs.map +1 -0
  4. package/dist/BaseClient.d.ts +16 -104
  5. package/dist/BaseClient.js +2 -482
  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 -216
  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 -79
  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/chunk-5WPCTUWH.cjs +2 -0
  23. package/dist/chunk-5WPCTUWH.cjs.map +1 -0
  24. package/dist/chunk-KMTF2BZE.js +2 -0
  25. package/dist/chunk-KMTF2BZE.js.map +1 -0
  26. package/dist/client/SecrecyAppClient.cjs +2 -0
  27. package/dist/client/SecrecyAppClient.cjs.map +1 -0
  28. package/dist/client/SecrecyAppClient.d.ts +16 -17
  29. package/dist/client/SecrecyAppClient.js +2 -256
  30. package/dist/client/SecrecyAppClient.js.map +1 -0
  31. package/dist/client/SecrecyCloudClient.cjs +2 -0
  32. package/dist/client/SecrecyCloudClient.cjs.map +1 -0
  33. package/dist/client/SecrecyCloudClient.d.ts +16 -89
  34. package/dist/client/SecrecyCloudClient.js +2 -1627
  35. package/dist/client/SecrecyCloudClient.js.map +1 -0
  36. package/dist/client/SecrecyDbClient.cjs +2 -0
  37. package/dist/client/SecrecyDbClient.cjs.map +1 -0
  38. package/dist/client/SecrecyDbClient.d.ts +16 -21
  39. package/dist/client/SecrecyDbClient.js +2 -198
  40. package/dist/client/SecrecyDbClient.js.map +1 -0
  41. package/dist/client/SecrecyMailClient.cjs +2 -0
  42. package/dist/client/SecrecyMailClient.cjs.map +1 -0
  43. package/dist/client/SecrecyMailClient.d.ts +16 -42
  44. package/dist/client/SecrecyMailClient.js +2 -1187
  45. package/dist/client/SecrecyMailClient.js.map +1 -0
  46. package/dist/client/SecrecyPayClient.cjs +2 -0
  47. package/dist/client/SecrecyPayClient.cjs.map +1 -0
  48. package/dist/client/SecrecyPayClient.d.ts +16 -7
  49. package/dist/client/SecrecyPayClient.js +2 -37
  50. package/dist/client/SecrecyPayClient.js.map +1 -0
  51. package/dist/client/SecrecyWalletClient.cjs +2 -0
  52. package/dist/client/SecrecyWalletClient.cjs.map +1 -0
  53. package/dist/client/SecrecyWalletClient.d.ts +16 -30
  54. package/dist/client/SecrecyWalletClient.js +2 -76
  55. package/dist/client/SecrecyWalletClient.js.map +1 -0
  56. package/dist/client/convert/file.cjs +2 -0
  57. package/dist/client/convert/file.cjs.map +1 -0
  58. package/dist/client/convert/file.d.ts +11 -5
  59. package/dist/client/convert/file.js +2 -34
  60. package/dist/client/convert/file.js.map +1 -0
  61. package/dist/client/convert/mail.cjs +2 -0
  62. package/dist/client/convert/mail.cjs.map +1 -0
  63. package/dist/client/convert/mail.d.ts +13 -3
  64. package/dist/client/convert/mail.js +2 -48
  65. package/dist/client/convert/mail.js.map +1 -0
  66. package/dist/client/convert/node.cjs +2 -0
  67. package/dist/client/convert/node.cjs.map +1 -0
  68. package/dist/client/convert/node.d.ts +18 -9
  69. package/dist/client/convert/node.js +2 -100
  70. package/dist/client/convert/node.js.map +1 -0
  71. package/dist/client/helpers.cjs +2 -0
  72. package/dist/client/helpers.cjs.map +1 -0
  73. package/dist/client/helpers.d.ts +16 -28
  74. package/dist/client/helpers.js +2 -126
  75. package/dist/client/helpers.js.map +1 -0
  76. package/dist/client/index.cjs +2 -0
  77. package/dist/client/index.cjs.map +1 -0
  78. package/dist/client/index.d.ts +16 -34
  79. package/dist/client/index.js +2 -52
  80. package/dist/client/index.js.map +1 -0
  81. package/dist/client/storage.cjs +2 -0
  82. package/dist/client/storage.cjs.map +1 -0
  83. package/dist/client/storage.d.ts +6 -3
  84. package/dist/client/storage.js +2 -12
  85. package/dist/client/storage.js.map +1 -0
  86. package/dist/client/types/File.cjs +1 -0
  87. package/dist/client/types/File.cjs.map +1 -0
  88. package/dist/client/types/File.d.ts +9 -5
  89. package/dist/client/types/File.js +1 -3
  90. package/dist/client/types/File.js.map +1 -0
  91. package/dist/client/types/Inputs.cjs +1 -0
  92. package/dist/client/types/Inputs.cjs.map +1 -0
  93. package/dist/client/types/Inputs.d.ts +6 -4
  94. package/dist/client/types/Inputs.js +1 -3
  95. package/dist/client/types/Inputs.js.map +1 -0
  96. package/dist/client/types/Node.cjs +1 -0
  97. package/dist/client/types/Node.cjs.map +1 -0
  98. package/dist/client/types/Node.d.ts +9 -56
  99. package/dist/client/types/Node.js +1 -3
  100. package/dist/client/types/Node.js.map +1 -0
  101. package/dist/client/types/UserAppNotifications.cjs +1 -0
  102. package/dist/client/types/UserAppNotifications.cjs.map +1 -0
  103. package/dist/client/types/UserAppNotifications.d.ts +3 -1
  104. package/dist/client/types/UserAppNotifications.js +1 -3
  105. package/dist/client/types/UserAppNotifications.js.map +1 -0
  106. package/dist/client/types/UserAppSettings.cjs +1 -0
  107. package/dist/client/types/UserAppSettings.cjs.map +1 -0
  108. package/dist/client/types/UserAppSettings.d.ts +3 -1
  109. package/dist/client/types/UserAppSettings.js +1 -3
  110. package/dist/client/types/UserAppSettings.js.map +1 -0
  111. package/dist/client/types/index.cjs +2 -0
  112. package/dist/client/types/index.cjs.map +1 -0
  113. package/dist/client/types/index.d.ts +86 -30
  114. package/dist/client/types/index.js +2 -8
  115. package/dist/client/types/index.js.map +1 -0
  116. package/dist/client/types/selectors.cjs +2 -0
  117. package/dist/client/types/selectors.cjs.map +1 -0
  118. package/dist/client/types/selectors.d.ts +7 -5
  119. package/dist/client/types/selectors.js +2 -138
  120. package/dist/client/types/selectors.js.map +1 -0
  121. package/dist/crypto/file.cjs +2 -0
  122. package/dist/crypto/file.cjs.map +1 -0
  123. package/dist/crypto/file.d.ts +8 -6
  124. package/dist/crypto/file.js +2 -210
  125. package/dist/crypto/file.js.map +1 -0
  126. package/dist/crypto/index.cjs +2 -0
  127. package/dist/crypto/index.cjs.map +1 -0
  128. package/dist/crypto/index.d.ts +11 -9
  129. package/dist/crypto/index.js +2 -47
  130. package/dist/crypto/index.js.map +1 -0
  131. package/dist/error.cjs +1 -0
  132. package/dist/error.cjs.map +1 -0
  133. package/dist/error.d.ts +12 -10
  134. package/dist/error.js +1 -3
  135. package/dist/error.js.map +1 -0
  136. package/dist/index.cjs +2 -0
  137. package/dist/index.cjs.map +1 -0
  138. package/dist/index.d.ts +19 -11
  139. package/dist/index.js +2 -9
  140. package/dist/index.js.map +1 -0
  141. package/dist/minify/index.cjs +2 -0
  142. package/dist/minify/index.cjs.map +1 -0
  143. package/dist/minify/index.d.ts +4 -2
  144. package/dist/minify/index.js +2 -28
  145. package/dist/minify/index.js.map +1 -0
  146. package/dist/minify/lz4.cjs +3 -0
  147. package/dist/minify/lz4.cjs.map +1 -0
  148. package/dist/minify/lz4.d.ts +7 -5
  149. package/dist/minify/lz4.js +3 -627
  150. package/dist/minify/lz4.js.map +1 -0
  151. package/dist/sodium.cjs +2 -0
  152. package/dist/sodium.cjs.map +1 -0
  153. package/dist/sodium.d.ts +5 -3
  154. package/dist/sodium.js +2 -6
  155. package/dist/sodium.js.map +1 -0
  156. package/dist/utils/store-buddy.cjs +2 -0
  157. package/dist/utils/store-buddy.cjs.map +1 -0
  158. package/dist/utils/store-buddy.d.ts +4 -3
  159. package/dist/utils/store-buddy.js +2 -65
  160. package/dist/utils/store-buddy.js.map +1 -0
  161. package/dist/utils/time.cjs +2 -0
  162. package/dist/utils/time.cjs.map +1 -0
  163. package/dist/utils/time.d.ts +4 -2
  164. package/dist/utils/time.js +2 -14
  165. package/dist/utils/time.js.map +1 -0
  166. package/dist/utils/utils.cjs +2 -0
  167. package/dist/utils/utils.cjs.map +1 -0
  168. package/dist/utils/utils.d.ts +6 -4
  169. package/dist/utils/utils.js +2 -57
  170. package/dist/utils/utils.js.map +1 -0
  171. package/dist/worker/md5.cjs +2 -0
  172. package/dist/worker/md5.cjs.map +1 -0
  173. package/dist/worker/md5.d.ts +3 -1
  174. package/dist/worker/md5.js +2 -25
  175. package/dist/worker/md5.js.map +1 -0
  176. package/dist/worker/sodium.cjs +2 -0
  177. package/dist/worker/sodium.cjs.map +1 -0
  178. package/dist/worker/sodium.d.ts +6 -3
  179. package/dist/worker/sodium.js +2 -120
  180. package/dist/worker/sodium.js.map +1 -0
  181. package/dist/worker/workerCodes.cjs +254 -0
  182. package/dist/worker/workerCodes.cjs.map +1 -0
  183. package/dist/worker/workerCodes.d.ts +4 -2
  184. package/dist/worker/workerCodes.js +4 -5
  185. package/dist/worker/workerCodes.js.map +1 -0
  186. package/dist/zeus/const.cjs +2 -0
  187. package/dist/zeus/const.cjs.map +1 -0
  188. package/dist/zeus/const.d.ts +5 -3
  189. package/dist/zeus/const.js +2 -1286
  190. package/dist/zeus/const.js.map +1 -0
  191. package/dist/zeus/index.cjs +5 -0
  192. package/dist/zeus/index.cjs.map +1 -0
  193. package/dist/zeus/index.d.ts +80 -78
  194. package/dist/zeus/index.js +5 -687
  195. package/dist/zeus/index.js.map +1 -0
  196. package/package.json +27 -30
@@ -1,120 +1,2 @@
1
- import { workerSodiumScript } from "./workerCodes.js"; // const ensureNonDetachedUniqueBuffers = (
2
- // values: Transferable[]
3
- // ): Set<Transferable> =>
4
- // new Set(
5
- // values.filter(v => {
6
- // if (v instanceof ArrayBuffer) {
7
- // return v.byteLength === 0;
8
- // } else {
9
- // return true;
10
- // }
11
- // })
12
- // );
13
-
14
- export async function encrypt(key, dataToEncrypt, progress, signal) {
15
- return new Promise((resolve, reject) => {
16
- progress == null ? void 0 : progress({
17
- current: 0,
18
- percent: 0,
19
- total: dataToEncrypt.byteLength
20
- });
21
- const worker = new Worker(URL.createObjectURL(new Blob([workerSodiumScript], {
22
- type: "text/javascript"
23
- })));
24
- worker.addEventListener("error", reject);
25
- worker.addEventListener("messageerror", reject);
26
- worker.addEventListener("message", _ref => {
27
- let {
28
- data
29
- } = _ref;
30
-
31
- switch (data.event) {
32
- case "ready":
33
- {
34
- const postData = {
35
- event: "encrypt",
36
- data: dataToEncrypt,
37
- key
38
- };
39
- worker.postMessage(postData, [postData.data.buffer] // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.
40
- // ensureNonDetachedUniqueBuffers([postData.data.buffer])
41
- );
42
- break;
43
- }
44
-
45
- case "encrypt-progress":
46
- {
47
- if (signal != null && signal.aborted) {
48
- const abortError = new Error("Aborted");
49
- abortError.name = "AbortError";
50
- worker.terminate();
51
- reject(abortError);
52
- }
53
-
54
- progress == null ? void 0 : progress(data.data);
55
- break;
56
- }
57
-
58
- case "encrypt-result":
59
- {
60
- worker.terminate();
61
- return resolve(data.data);
62
- }
63
- }
64
- });
65
- });
66
- }
67
- export async function decrypt(key, dataToDecrypt, progress, signal) {
68
- return new Promise((resolve, reject) => {
69
- progress == null ? void 0 : progress({
70
- current: 0,
71
- percent: 0,
72
- total: dataToDecrypt.byteLength
73
- });
74
- const worker = new Worker(URL.createObjectURL(new Blob([workerSodiumScript], {
75
- type: "text/javascript"
76
- })));
77
- worker.addEventListener("error", reject);
78
- worker.addEventListener("messageerror", reject);
79
- worker.addEventListener("message", _ref2 => {
80
- let {
81
- data
82
- } = _ref2;
83
-
84
- switch (data.event) {
85
- case "ready":
86
- {
87
- const postData = {
88
- event: "decrypt",
89
- key,
90
- data: dataToDecrypt
91
- };
92
- worker.postMessage(postData, [postData.data.buffer] // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.
93
- // ensureNonDetachedUniqueBuffers([postData.data.buffer])
94
- );
95
- break;
96
- }
97
-
98
- case "decrypt-progress":
99
- {
100
- if (signal != null && signal.aborted) {
101
- const abortError = new Error("Aborted");
102
- abortError.name = "AbortError";
103
- worker.terminate();
104
- reject(abortError);
105
- }
106
-
107
- progress == null ? void 0 : progress(data.data);
108
- break;
109
- }
110
-
111
- case "decrypt-result":
112
- {
113
- worker.terminate();
114
- return resolve(data.data);
115
- }
116
- }
117
- });
118
- });
119
- }
120
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3b3JrZXJTb2RpdW1TY3JpcHQiLCJlbmNyeXB0Iiwia2V5IiwiZGF0YVRvRW5jcnlwdCIsInByb2dyZXNzIiwic2lnbmFsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjdXJyZW50IiwicGVyY2VudCIsInRvdGFsIiwiYnl0ZUxlbmd0aCIsIndvcmtlciIsIldvcmtlciIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsIkJsb2IiLCJ0eXBlIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRhdGEiLCJldmVudCIsInBvc3REYXRhIiwicG9zdE1lc3NhZ2UiLCJidWZmZXIiLCJhYm9ydGVkIiwiYWJvcnRFcnJvciIsIkVycm9yIiwibmFtZSIsInRlcm1pbmF0ZSIsImRlY3J5cHQiLCJkYXRhVG9EZWNyeXB0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dvcmtlci9zb2RpdW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmNyeXB0ZWRGaWxlLCBQcm9ncmVzcyB9IGZyb20gXCIuLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgd29ya2VyU29kaXVtU2NyaXB0IH0gZnJvbSBcIi4vd29ya2VyQ29kZXMuanNcIjtcblxuLy8gY29uc3QgZW5zdXJlTm9uRGV0YWNoZWRVbmlxdWVCdWZmZXJzID0gKFxuLy8gICB2YWx1ZXM6IFRyYW5zZmVyYWJsZVtdXG4vLyApOiBTZXQ8VHJhbnNmZXJhYmxlPiA9PlxuLy8gICBuZXcgU2V0KFxuLy8gICAgIHZhbHVlcy5maWx0ZXIodiA9PiB7XG4vLyAgICAgICBpZiAodiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4vLyAgICAgICAgIHJldHVybiB2LmJ5dGVMZW5ndGggPT09IDA7XG4vLyAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcbi8vICAgICAgIH1cbi8vICAgICB9KVxuLy8gICApO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdChcbiAga2V5OiBVaW50OEFycmF5LFxuICBkYXRhVG9FbmNyeXB0OiBVaW50OEFycmF5LFxuICBwcm9ncmVzcz86IChwcm9ncmVzczogUHJvZ3Jlc3MpID0+IFByb21pc2U8dm9pZD4sXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsXG4pOiBQcm9taXNlPEVuY3J5cHRlZEZpbGU+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBwcm9ncmVzcz8uKHtcbiAgICAgIGN1cnJlbnQ6IDAsXG4gICAgICBwZXJjZW50OiAwLFxuICAgICAgdG90YWw6IGRhdGFUb0VuY3J5cHQuYnl0ZUxlbmd0aFxuICAgIH0pO1xuICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIoXG4gICAgICBVUkwuY3JlYXRlT2JqZWN0VVJMKFxuICAgICAgICBuZXcgQmxvYihbd29ya2VyU29kaXVtU2NyaXB0XSwgeyB0eXBlOiBcInRleHQvamF2YXNjcmlwdFwiIH0pXG4gICAgICApXG4gICAgKTtcbiAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlamVjdCk7XG4gICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlZXJyb3JcIiwgcmVqZWN0KTtcbiAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgKHsgZGF0YSB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKGRhdGEuZXZlbnQpIHtcbiAgICAgICAgY2FzZSBcInJlYWR5XCI6IHtcbiAgICAgICAgICBjb25zdCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgIGV2ZW50OiBcImVuY3J5cHRcIixcbiAgICAgICAgICAgIGRhdGE6IGRhdGFUb0VuY3J5cHQsXG4gICAgICAgICAgICBrZXlcbiAgICAgICAgICB9O1xuICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShcbiAgICAgICAgICAgIHBvc3REYXRhLFxuICAgICAgICAgICAgW3Bvc3REYXRhLmRhdGEuYnVmZmVyXVxuICAgICAgICAgICAgLy8gLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGVzY3JpcHQgZXhwZWN0cyB0aGUgdHJhbnNmZXIgbGlzdCB0byBiZSBhbiBBcnJheSwgYnV0IGl0IGNhbiBhY3R1YWxseSBiZSBhbnkgaXRlcmFibGUuXG4gICAgICAgICAgICAvLyBlbnN1cmVOb25EZXRhY2hlZFVuaXF1ZUJ1ZmZlcnMoW3Bvc3REYXRhLmRhdGEuYnVmZmVyXSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJlbmNyeXB0LXByb2dyZXNzXCI6IHtcbiAgICAgICAgICBpZiAoc2lnbmFsPy5hYm9ydGVkKSB7XG4gICAgICAgICAgICBjb25zdCBhYm9ydEVycm9yID0gbmV3IEVycm9yKFwiQWJvcnRlZFwiKTtcbiAgICAgICAgICAgIGFib3J0RXJyb3IubmFtZSA9IFwiQWJvcnRFcnJvclwiO1xuICAgICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgcmVqZWN0KGFib3J0RXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9ncmVzcz8uKGRhdGEuZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImVuY3J5cHQtcmVzdWx0XCI6IHtcbiAgICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHQoXG4gIGtleTogVWludDhBcnJheSxcbiAgZGF0YVRvRGVjcnlwdDogVWludDhBcnJheSxcbiAgcHJvZ3Jlc3M/OiAocHJvZ3Jlc3M6IFByb2dyZXNzKSA9PiBQcm9taXNlPHZvaWQ+LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbFxuKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcHJvZ3Jlc3M/Lih7XG4gICAgICBjdXJyZW50OiAwLFxuICAgICAgcGVyY2VudDogMCxcbiAgICAgIHRvdGFsOiBkYXRhVG9EZWNyeXB0LmJ5dGVMZW5ndGhcbiAgICB9KTtcbiAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKFxuICAgICAgVVJMLmNyZWF0ZU9iamVjdFVSTChcbiAgICAgICAgbmV3IEJsb2IoW3dvcmtlclNvZGl1bVNjcmlwdF0sIHsgdHlwZTogXCJ0ZXh0L2phdmFzY3JpcHRcIiB9KVxuICAgICAgKVxuICAgICk7XG4gICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLCByZWplY3QpO1xuICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZWVycm9yXCIsIHJlamVjdCk7XG5cbiAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgKHsgZGF0YSB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKGRhdGEuZXZlbnQpIHtcbiAgICAgICAgY2FzZSBcInJlYWR5XCI6IHtcbiAgICAgICAgICBjb25zdCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgIGV2ZW50OiBcImRlY3J5cHRcIixcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFUb0RlY3J5cHRcbiAgICAgICAgICB9O1xuICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShcbiAgICAgICAgICAgIHBvc3REYXRhLFxuICAgICAgICAgICAgW3Bvc3REYXRhLmRhdGEuYnVmZmVyXVxuICAgICAgICAgICAgLy8gLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGVzY3JpcHQgZXhwZWN0cyB0aGUgdHJhbnNmZXIgbGlzdCB0byBiZSBhbiBBcnJheSwgYnV0IGl0IGNhbiBhY3R1YWxseSBiZSBhbnkgaXRlcmFibGUuXG4gICAgICAgICAgICAvLyBlbnN1cmVOb25EZXRhY2hlZFVuaXF1ZUJ1ZmZlcnMoW3Bvc3REYXRhLmRhdGEuYnVmZmVyXSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJkZWNyeXB0LXByb2dyZXNzXCI6IHtcbiAgICAgICAgICBpZiAoc2lnbmFsPy5hYm9ydGVkKSB7XG4gICAgICAgICAgICBjb25zdCBhYm9ydEVycm9yID0gbmV3IEVycm9yKFwiQWJvcnRlZFwiKTtcbiAgICAgICAgICAgIGFib3J0RXJyb3IubmFtZSA9IFwiQWJvcnRFcnJvclwiO1xuICAgICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgcmVqZWN0KGFib3J0RXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9ncmVzcz8uKGRhdGEuZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImRlY3J5cHQtcmVzdWx0XCI6IHtcbiAgICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0Esa0JBQVQsUUFBbUMsa0JBQW5DLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTyxlQUFlQyxPQUFmLENBQ0xDLEdBREssRUFFTEMsYUFGSyxFQUdMQyxRQUhLLEVBSUxDLE1BSkssRUFLbUI7RUFDeEIsT0FBTyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0lBQ3RDSixRQUFRLFFBQVIsWUFBQUEsUUFBUSxDQUFHO01BQ1RLLE9BQU8sRUFBRSxDQURBO01BRVRDLE9BQU8sRUFBRSxDQUZBO01BR1RDLEtBQUssRUFBRVIsYUFBYSxDQUFDUztJQUhaLENBQUgsQ0FBUjtJQUtBLE1BQU1DLE1BQU0sR0FBRyxJQUFJQyxNQUFKLENBQ2JDLEdBQUcsQ0FBQ0MsZUFBSixDQUNFLElBQUlDLElBQUosQ0FBUyxDQUFDakIsa0JBQUQsQ0FBVCxFQUErQjtNQUFFa0IsSUFBSSxFQUFFO0lBQVIsQ0FBL0IsQ0FERixDQURhLENBQWY7SUFLQUwsTUFBTSxDQUFDTSxnQkFBUCxDQUF3QixPQUF4QixFQUFpQ1gsTUFBakM7SUFDQUssTUFBTSxDQUFDTSxnQkFBUCxDQUF3QixjQUF4QixFQUF3Q1gsTUFBeEM7SUFDQUssTUFBTSxDQUFDTSxnQkFBUCxDQUF3QixTQUF4QixFQUFtQyxRQUFjO01BQUEsSUFBYjtRQUFFQztNQUFGLENBQWE7O01BQy9DLFFBQVFBLElBQUksQ0FBQ0MsS0FBYjtRQUNFLEtBQUssT0FBTDtVQUFjO1lBQ1osTUFBTUMsUUFBUSxHQUFHO2NBQ2ZELEtBQUssRUFBRSxTQURRO2NBRWZELElBQUksRUFBRWpCLGFBRlM7Y0FHZkQ7WUFIZSxDQUFqQjtZQUtBVyxNQUFNLENBQUNVLFdBQVAsQ0FDRUQsUUFERixFQUVFLENBQUNBLFFBQVEsQ0FBQ0YsSUFBVCxDQUFjSSxNQUFmLENBRkYsQ0FHRTtZQUNBO1lBSkY7WUFNQTtVQUNEOztRQUNELEtBQUssa0JBQUw7VUFBeUI7WUFDdkIsSUFBSW5CLE1BQUosWUFBSUEsTUFBTSxDQUFFb0IsT0FBWixFQUFxQjtjQUNuQixNQUFNQyxVQUFVLEdBQUcsSUFBSUMsS0FBSixDQUFVLFNBQVYsQ0FBbkI7Y0FDQUQsVUFBVSxDQUFDRSxJQUFYLEdBQWtCLFlBQWxCO2NBQ0FmLE1BQU0sQ0FBQ2dCLFNBQVA7Y0FDQXJCLE1BQU0sQ0FBQ2tCLFVBQUQsQ0FBTjtZQUNEOztZQUNEdEIsUUFBUSxRQUFSLFlBQUFBLFFBQVEsQ0FBR2dCLElBQUksQ0FBQ0EsSUFBUixDQUFSO1lBQ0E7VUFDRDs7UUFDRCxLQUFLLGdCQUFMO1VBQXVCO1lBQ3JCUCxNQUFNLENBQUNnQixTQUFQO1lBQ0EsT0FBT3RCLE9BQU8sQ0FBQ2EsSUFBSSxDQUFDQSxJQUFOLENBQWQ7VUFDRDtNQTVCSDtJQThCRCxDQS9CRDtFQWdDRCxDQTdDTSxDQUFQO0FBOENEO0FBRUQsT0FBTyxlQUFlVSxPQUFmLENBQ0w1QixHQURLLEVBRUw2QixhQUZLLEVBR0wzQixRQUhLLEVBSUxDLE1BSkssRUFLZ0I7RUFDckIsT0FBTyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0lBQ3RDSixRQUFRLFFBQVIsWUFBQUEsUUFBUSxDQUFHO01BQ1RLLE9BQU8sRUFBRSxDQURBO01BRVRDLE9BQU8sRUFBRSxDQUZBO01BR1RDLEtBQUssRUFBRW9CLGFBQWEsQ0FBQ25CO0lBSFosQ0FBSCxDQUFSO0lBS0EsTUFBTUMsTUFBTSxHQUFHLElBQUlDLE1BQUosQ0FDYkMsR0FBRyxDQUFDQyxlQUFKLENBQ0UsSUFBSUMsSUFBSixDQUFTLENBQUNqQixrQkFBRCxDQUFULEVBQStCO01BQUVrQixJQUFJLEVBQUU7SUFBUixDQUEvQixDQURGLENBRGEsQ0FBZjtJQUtBTCxNQUFNLENBQUNNLGdCQUFQLENBQXdCLE9BQXhCLEVBQWlDWCxNQUFqQztJQUNBSyxNQUFNLENBQUNNLGdCQUFQLENBQXdCLGNBQXhCLEVBQXdDWCxNQUF4QztJQUVBSyxNQUFNLENBQUNNLGdCQUFQLENBQXdCLFNBQXhCLEVBQW1DLFNBQWM7TUFBQSxJQUFiO1FBQUVDO01BQUYsQ0FBYTs7TUFDL0MsUUFBUUEsSUFBSSxDQUFDQyxLQUFiO1FBQ0UsS0FBSyxPQUFMO1VBQWM7WUFDWixNQUFNQyxRQUFRLEdBQUc7Y0FDZkQsS0FBSyxFQUFFLFNBRFE7Y0FFZm5CLEdBRmU7Y0FHZmtCLElBQUksRUFBRVc7WUFIUyxDQUFqQjtZQUtBbEIsTUFBTSxDQUFDVSxXQUFQLENBQ0VELFFBREYsRUFFRSxDQUFDQSxRQUFRLENBQUNGLElBQVQsQ0FBY0ksTUFBZixDQUZGLENBR0U7WUFDQTtZQUpGO1lBTUE7VUFDRDs7UUFDRCxLQUFLLGtCQUFMO1VBQXlCO1lBQ3ZCLElBQUluQixNQUFKLFlBQUlBLE1BQU0sQ0FBRW9CLE9BQVosRUFBcUI7Y0FDbkIsTUFBTUMsVUFBVSxHQUFHLElBQUlDLEtBQUosQ0FBVSxTQUFWLENBQW5CO2NBQ0FELFVBQVUsQ0FBQ0UsSUFBWCxHQUFrQixZQUFsQjtjQUNBZixNQUFNLENBQUNnQixTQUFQO2NBQ0FyQixNQUFNLENBQUNrQixVQUFELENBQU47WUFDRDs7WUFDRHRCLFFBQVEsUUFBUixZQUFBQSxRQUFRLENBQUdnQixJQUFJLENBQUNBLElBQVIsQ0FBUjtZQUNBO1VBQ0Q7O1FBQ0QsS0FBSyxnQkFBTDtVQUF1QjtZQUNyQlAsTUFBTSxDQUFDZ0IsU0FBUDtZQUNBLE9BQU90QixPQUFPLENBQUNhLElBQUksQ0FBQ0EsSUFBTixDQUFkO1VBQ0Q7TUE1Qkg7SUE4QkQsQ0EvQkQ7RUFnQ0QsQ0E5Q00sQ0FBUDtBQStDRCJ9
1
+ import"../chunk-KMTF2BZE.js";import{workerSodiumScript as y}from"./workerCodes.js";async function m(i,c,e,n){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([y],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"encrypt",data:c,key:i};t.postMessage(r,[r.data.buffer]);break}case"encrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"encrypt-result":return t.terminate(),d(o.data)}})})}async function s(i,c,e,n){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([y],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"decrypt",key:i,data:c};t.postMessage(r,[r.data.buffer]);break}case"decrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"decrypt-result":return t.terminate(),d(o.data)}})})}export{s as decrypt,m as encrypt};
2
+ //# sourceMappingURL=sodium.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/worker/sodium.ts"],"sourcesContent":["import type { EncryptedFile, Progress } from \"../crypto/file.js\";\nimport { workerSodiumScript } from \"./workerCodes.js\";\n\n// const ensureNonDetachedUniqueBuffers = (\n// values: Transferable[]\n// ): Set<Transferable> =>\n// new Set(\n// values.filter(v => {\n// if (v instanceof ArrayBuffer) {\n// return v.byteLength === 0;\n// } else {\n// return true;\n// }\n// })\n// );\n\nexport async function encrypt(\n key: Uint8Array,\n dataToEncrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<EncryptedFile> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToEncrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"encrypt\",\n data: dataToEncrypt,\n key\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"encrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"encrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n\nexport async function decrypt(\n key: Uint8Array,\n dataToDecrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToDecrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"decrypt\",\n key,\n data: dataToDecrypt\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"decrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"decrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n"],"mappings":"6BACA,OAAS,sBAAAA,MAA0B,mBAenC,eAAsBC,EACpBC,EACAC,EACAC,EACAC,EACwB,CACxB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCH,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOD,EAAc,UACvB,GACA,MAAMK,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACR,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAQ,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAC9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,KAAMP,EACN,IAAAD,CACF,EACAM,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIL,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMM,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAP,GAAA,MAAAA,EAAWK,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH,CAEA,eAAsBG,EACpBV,EACAW,EACAT,EACAC,EACqB,CACrB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCH,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOS,EAAc,UACvB,GACA,MAAML,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACR,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAQ,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,IAAAR,EACA,KAAMW,CACR,EACAL,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIL,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMM,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAP,GAAA,MAAAA,EAAWK,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH","names":["workerSodiumScript","encrypt","key","dataToEncrypt","progress","signal","resolve","reject","worker","data","postData","abortError","decrypt","dataToDecrypt"]}
@@ -0,0 +1,254 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');const e=`let sodium;
2
+
3
+ self.sodium = {
4
+ onload: (sod) => {
5
+ sodium = sod
6
+ postMessage({ event: "ready" })
7
+ }
8
+ };
9
+
10
+ importScripts('https://cdn.jsdelivr.net/gh/jedisct1/libsodium.js@master/dist/browsers/sodium.js');
11
+ importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');
12
+
13
+ function* chunks(arr, n) {
14
+ for (let i = 0; i < arr.length; i += n) {
15
+ yield arr.slice(i, i + n);
16
+ }
17
+ }
18
+
19
+ function assert(c, message) {
20
+ if (!c) {
21
+ throw new Error(message);
22
+ }
23
+ }
24
+
25
+ function encrypt(key) {
26
+ let destroyed = false;
27
+ const {
28
+ state,
29
+ header
30
+ } = sodium.crypto_secretstream_xchacha20poly1305_init_push(key);
31
+
32
+ const encrypt = (tag, plaintext) => {
33
+ assert(destroyed === false, "state already destroyed");
34
+
35
+ return sodium.crypto_secretstream_xchacha20poly1305_push(
36
+ state,
37
+ plaintext,
38
+ null,
39
+ tag
40
+ );
41
+ };
42
+
43
+ function destroy() {
44
+ assert(destroyed === false, "state already destroyed");
45
+ destroyed = true;
46
+ }
47
+
48
+ return {
49
+ encrypt,
50
+ destroy,
51
+ header
52
+ };
53
+ }
54
+
55
+ function decrypt(header, key) {
56
+ assert(
57
+ header.byteLength >=
58
+ sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,
59
+ "header must be at least HEADERBYTES (" + sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES + ") long"
60
+ );
61
+ assert(
62
+ key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,
63
+ "key must be at least KEYBYTES (" + sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES + ") long"
64
+ );
65
+
66
+ let destroyed = false;
67
+ const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(
68
+ header,
69
+ key
70
+ );
71
+
72
+ const decrypt = ciphertext => {
73
+ assert(destroyed === false, "state already destroyed");
74
+
75
+ return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);
76
+ };
77
+
78
+ function destroy() {
79
+ assert(destroyed === false, "state already destroyed");
80
+ destroyed = true;
81
+ }
82
+
83
+ return {
84
+ decrypt,
85
+ destroy
86
+ };
87
+ }
88
+
89
+ const CHUNK_SIZE = 8192;
90
+
91
+ async function encryptSecretstream(key, data, progress) {
92
+ const { encrypt: crypt, destroy, header } = encrypt(key);
93
+ const cryptedChunk =
94
+ CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;
95
+ const max =
96
+ Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;
97
+
98
+ progress?.({
99
+ percent: 0,
100
+ total: max,
101
+ current: 0
102
+ });
103
+ const final = new Uint8Array(max);
104
+ const sparkEncrypted = new SparkMD5.ArrayBuffer();
105
+ const spark = new SparkMD5.ArrayBuffer();
106
+
107
+ final.set(header);
108
+ sparkEncrypted.append(header);
109
+ let total = header.byteLength;
110
+ progress?.({
111
+ percent: total / max,
112
+ total: max,
113
+ current: total
114
+ });
115
+ let lastPercent = total / max;
116
+
117
+ for (const chunk of chunks(data, CHUNK_SIZE)) {
118
+ spark.append(chunk);
119
+ const tag =
120
+ chunk.length < CHUNK_SIZE
121
+ ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL
122
+ : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;
123
+ const crypted = crypt(tag, chunk);
124
+ sparkEncrypted.append(crypted);
125
+ final.set(crypted, total);
126
+ total += crypted.byteLength;
127
+ const percent = total / max;
128
+ if (percent > lastPercent + 0.01) {
129
+ progress?.({
130
+ percent,
131
+ total: max,
132
+ current: total
133
+ });
134
+ lastPercent = percent;
135
+ }
136
+ }
137
+
138
+ destroy();
139
+ progress?.({
140
+ percent: 1,
141
+ total,
142
+ current: total
143
+ });
144
+ return {
145
+ data: final.slice(0, total),
146
+ md5Encrypted: sparkEncrypted.end(),
147
+ md5: spark.end()
148
+ };
149
+ }
150
+
151
+ async function decryptSecretstream(key, data, progress) {
152
+ const header = data.slice(
153
+ 0,
154
+ sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES
155
+ );
156
+ data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);
157
+
158
+ const { decrypt: decryptt, destroy } = decrypt(header, key);
159
+ const chunkSize =
160
+ CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;
161
+ const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;
162
+
163
+ progress?.({
164
+ percent: 0,
165
+ total: max,
166
+ current: 0
167
+ });
168
+ const final = new Uint8Array(max);
169
+ let total = 0;
170
+ let lastPercent = total / max;
171
+
172
+ for (const chunk of chunks(data, chunkSize)) {
173
+ const tmp = decryptt(chunk);
174
+ final.set(tmp.message, total);
175
+ total += tmp.message.byteLength;
176
+
177
+ const percent = total / max;
178
+ if (percent > lastPercent + 0.01) {
179
+ progress?.({
180
+ percent,
181
+ total: max,
182
+ current: total
183
+ });
184
+ lastPercent = percent;
185
+ }
186
+ }
187
+
188
+ destroy();
189
+ progress?.({
190
+ percent: 1,
191
+ total,
192
+ current: total
193
+ });
194
+ return final.slice(0, total);
195
+ }
196
+
197
+ self.onmessage = async ({ data }) => {
198
+ switch (data.event) {
199
+ case "encrypt": {
200
+ postMessage({ event: "working" })
201
+ postMessage({
202
+ event: "encrypt-result",
203
+ data: await encryptSecretstream(data.key, data.data, progress => postMessage({
204
+ event: "encrypt-progress",
205
+ data: progress
206
+ }))
207
+ });
208
+ postMessage({ event: "ready" })
209
+ break;
210
+ }
211
+ case "decrypt": {
212
+ postMessage({ event: "working" })
213
+ postMessage({
214
+ event: "decrypt-result",
215
+ data: await decryptSecretstream(data.key, data.data, progress => postMessage({
216
+ event: "decrypt-progress",
217
+ data: progress
218
+ }))
219
+ });
220
+ postMessage({ event: "ready" })
221
+ break;
222
+ }
223
+ }
224
+ }`,t= exports.workerMd5Script =`importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');
225
+
226
+ function* chunks(arr, n) {
227
+ for (let i = 0; i < arr.length; i += n) {
228
+ yield arr.slice(i, i + n);
229
+ }
230
+ }
231
+
232
+ const CHUNK_SIZE = 8192;
233
+
234
+ function md5(data) {
235
+ const spark = new SparkMD5.ArrayBuffer();
236
+ for (const chunk of chunks(data, CHUNK_SIZE)) {
237
+ spark.append(chunk);
238
+ }
239
+ return spark.end();
240
+ }
241
+
242
+
243
+ self.onmessage = ({ data }) => {
244
+ switch (data.event) {
245
+ case "md5": {
246
+ postMessage({
247
+ event: "md5-result",
248
+ data: md5(data.data)
249
+ });
250
+ break;
251
+ }
252
+ }
253
+ }`;exports.workerMd5Script = t; exports.workerSodiumScript = e;
254
+ //# sourceMappingURL=workerCodes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/worker/workerCodes.ts"],"names":["workerSodiumScript","workerMd5Script"],"mappings":"8BAAO,MAAMA,EAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAiOrBC,EAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export const workerSodiumScript = `let sodium;\n\nself.sodium = {\n onload: (sod) => {\n sodium = sod\n postMessage({ event: \"ready\" })\n }\n};\n\nimportScripts('https://cdn.jsdelivr.net/gh/jedisct1/libsodium.js@master/dist/browsers/sodium.js');\nimportScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nfunction assert(c, message) {\n if (!c) {\n throw new Error(message);\n }\n}\n\nfunction encrypt(key) {\n let destroyed = false;\n const {\n state,\n header\n } = sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(header, key) {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n \"header must be at least HEADERBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES + \") long\"\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n \"key must be at least KEYBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES + \") long\"\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nconst CHUNK_SIZE = 8192;\n\nasync function encryptSecretstream(key, data, progress) {\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nasync function decryptSecretstream(key, data, progress) {\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\nself.onmessage = async ({ data }) => {\n switch (data.event) {\n case \"encrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"encrypt-result\",\n data: await encryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"encrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n case \"decrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"decrypt-result\",\n data: await decryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"decrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n }\n}`;\n\nexport const workerMd5Script = `importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nconst CHUNK_SIZE = 8192;\n\nfunction md5(data) {\n const spark = new SparkMD5.ArrayBuffer();\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n }\n return spark.end();\n}\n\n\nself.onmessage = ({ data }) => {\n switch (data.event) {\n case \"md5\": {\n postMessage({\n event: \"md5-result\",\n data: md5(data.data)\n });\n break;\n }\n }\n}`;\n"]}
@@ -1,2 +1,4 @@
1
- export declare const workerSodiumScript = "let sodium;\n\nself.sodium = {\n onload: (sod) => {\n sodium = sod\n postMessage({ event: \"ready\" })\n }\n};\n\nimportScripts('https://cdn.jsdelivr.net/gh/jedisct1/libsodium.js@master/dist/browsers/sodium.js');\nimportScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nfunction assert(c, message) {\n if (!c) {\n throw new Error(message);\n }\n}\n\nfunction encrypt(key) {\n let destroyed = false;\n const {\n state,\n header\n } = sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(header, key) {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n \"header must be at least HEADERBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES + \") long\"\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n \"key must be at least KEYBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES + \") long\"\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nconst CHUNK_SIZE = 8192;\n\nasync function encryptSecretstream(key, data, progress) {\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nasync function decryptSecretstream(key, data, progress) {\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\nself.onmessage = async ({ data }) => {\n switch (data.event) {\n case \"encrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"encrypt-result\",\n data: await encryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"encrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n case \"decrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"decrypt-result\",\n data: await decryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"decrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n }\n}";
2
- export declare const workerMd5Script = "importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nconst CHUNK_SIZE = 8192;\n\nfunction md5(data) {\n const spark = new SparkMD5.ArrayBuffer();\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n }\n return spark.end();\n}\n\n\nself.onmessage = ({ data }) => {\n switch (data.event) {\n case \"md5\": {\n postMessage({\n event: \"md5-result\",\n data: md5(data.data)\n });\n break;\n }\n }\n}";
1
+ declare const workerSodiumScript = "let sodium;\n\nself.sodium = {\n onload: (sod) => {\n sodium = sod\n postMessage({ event: \"ready\" })\n }\n};\n\nimportScripts('https://cdn.jsdelivr.net/gh/jedisct1/libsodium.js@master/dist/browsers/sodium.js');\nimportScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nfunction assert(c, message) {\n if (!c) {\n throw new Error(message);\n }\n}\n\nfunction encrypt(key) {\n let destroyed = false;\n const {\n state,\n header\n } = sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(header, key) {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n \"header must be at least HEADERBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES + \") long\"\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n \"key must be at least KEYBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES + \") long\"\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nconst CHUNK_SIZE = 8192;\n\nasync function encryptSecretstream(key, data, progress) {\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nasync function decryptSecretstream(key, data, progress) {\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\nself.onmessage = async ({ data }) => {\n switch (data.event) {\n case \"encrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"encrypt-result\",\n data: await encryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"encrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n case \"decrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"decrypt-result\",\n data: await decryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"decrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n }\n}";
2
+ declare const workerMd5Script = "importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nconst CHUNK_SIZE = 8192;\n\nfunction md5(data) {\n const spark = new SparkMD5.ArrayBuffer();\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n }\n return spark.end();\n}\n\n\nself.onmessage = ({ data }) => {\n switch (data.event) {\n case \"md5\": {\n postMessage({\n event: \"md5-result\",\n data: md5(data.data)\n });\n break;\n }\n }\n}";
3
+
4
+ export { workerMd5Script, workerSodiumScript };
@@ -1,4 +1,4 @@
1
- export const workerSodiumScript = `let sodium;
1
+ import"../chunk-KMTF2BZE.js";const e=`let sodium;
2
2
 
3
3
  self.sodium = {
4
4
  onload: (sod) => {
@@ -221,8 +221,7 @@ self.onmessage = async ({ data }) => {
221
221
  break;
222
222
  }
223
223
  }
224
- }`;
225
- export const workerMd5Script = `importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');
224
+ }`,t=`importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');
226
225
 
227
226
  function* chunks(arr, n) {
228
227
  for (let i = 0; i < arr.length; i += n) {
@@ -251,5 +250,5 @@ self.onmessage = ({ data }) => {
251
250
  break;
252
251
  }
253
252
  }
254
- }`;
255
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3b3JrZXJTb2RpdW1TY3JpcHQiLCJ3b3JrZXJNZDVTY3JpcHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ya2VyL3dvcmtlckNvZGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB3b3JrZXJTb2RpdW1TY3JpcHQgPSBgbGV0IHNvZGl1bTtcblxuc2VsZi5zb2RpdW0gPSB7XG4gIG9ubG9hZDogKHNvZCkgPT4ge1xuICAgIHNvZGl1bSA9IHNvZFxuICAgIHBvc3RNZXNzYWdlKHsgZXZlbnQ6IFwicmVhZHlcIiB9KVxuICB9XG59O1xuXG5pbXBvcnRTY3JpcHRzKCdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvamVkaXNjdDEvbGlic29kaXVtLmpzQG1hc3Rlci9kaXN0L2Jyb3dzZXJzL3NvZGl1bS5qcycpO1xuaW1wb3J0U2NyaXB0cygnaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvc3BhcmstbWQ1LzMuMC4wL3NwYXJrLW1kNS5taW4uanMnKTtcblxuZnVuY3Rpb24qIGNodW5rcyhhcnIsIG4pIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IG4pIHtcbiAgICB5aWVsZCBhcnIuc2xpY2UoaSwgaSArIG4pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydChjLCBtZXNzYWdlKSB7XG4gIGlmICghYykge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbmNyeXB0KGtleSkge1xuICBsZXQgZGVzdHJveWVkID0gZmFsc2U7XG4gIGNvbnN0IHtcbiAgICBzdGF0ZSxcbiAgICBoZWFkZXJcbiAgfSA9IHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X2luaXRfcHVzaChrZXkpO1xuXG4gIGNvbnN0IGVuY3J5cHQgPSAodGFnLCBwbGFpbnRleHQpID0+IHtcbiAgICBhc3NlcnQoZGVzdHJveWVkID09PSBmYWxzZSwgXCJzdGF0ZSBhbHJlYWR5IGRlc3Ryb3llZFwiKTtcblxuICAgIHJldHVybiBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9wdXNoKFxuICAgICAgc3RhdGUsXG4gICAgICBwbGFpbnRleHQsXG4gICAgICBudWxsLFxuICAgICAgdGFnXG4gICAgKTtcbiAgfTtcblxuICBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgIGFzc2VydChkZXN0cm95ZWQgPT09IGZhbHNlLCBcInN0YXRlIGFscmVhZHkgZGVzdHJveWVkXCIpO1xuICAgIGRlc3Ryb3llZCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVuY3J5cHQsXG4gICAgZGVzdHJveSxcbiAgICBoZWFkZXJcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVjcnlwdChoZWFkZXIsIGtleSkge1xuICBhc3NlcnQoXG4gICAgaGVhZGVyLmJ5dGVMZW5ndGggPj1cbiAgICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTLFxuICAgIFwiaGVhZGVyIG11c3QgYmUgYXQgbGVhc3QgSEVBREVSQllURVMgKFwiICsgc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfSEVBREVSQllURVMgKyBcIikgbG9uZ1wiXG4gICk7XG4gIGFzc2VydChcbiAgICBrZXkuYnl0ZUxlbmd0aCA+PSBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9LRVlCWVRFUyxcbiAgICBcImtleSBtdXN0IGJlIGF0IGxlYXN0IEtFWUJZVEVTIChcIiArIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0tFWUJZVEVTICsgXCIpIGxvbmdcIlxuICApO1xuXG4gIGxldCBkZXN0cm95ZWQgPSBmYWxzZTtcbiAgY29uc3Qgc3RhdGUgPSBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9pbml0X3B1bGwoXG4gICAgaGVhZGVyLFxuICAgIGtleVxuICApO1xuXG4gIGNvbnN0IGRlY3J5cHQgPSBjaXBoZXJ0ZXh0ID0+IHtcbiAgICBhc3NlcnQoZGVzdHJveWVkID09PSBmYWxzZSwgXCJzdGF0ZSBhbHJlYWR5IGRlc3Ryb3llZFwiKTtcblxuICAgIHJldHVybiBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9wdWxsKHN0YXRlLCBjaXBoZXJ0ZXh0KTtcbiAgfTtcblxuICBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgIGFzc2VydChkZXN0cm95ZWQgPT09IGZhbHNlLCBcInN0YXRlIGFscmVhZHkgZGVzdHJveWVkXCIpO1xuICAgIGRlc3Ryb3llZCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRlY3J5cHQsXG4gICAgZGVzdHJveVxuICB9O1xufVxuXG5jb25zdCBDSFVOS19TSVpFID0gODE5MjtcblxuYXN5bmMgZnVuY3Rpb24gZW5jcnlwdFNlY3JldHN0cmVhbShrZXksIGRhdGEsIHByb2dyZXNzKSB7XG4gIGNvbnN0IHsgZW5jcnlwdDogY3J5cHQsIGRlc3Ryb3ksIGhlYWRlciB9ID0gZW5jcnlwdChrZXkpO1xuICBjb25zdCBjcnlwdGVkQ2h1bmsgPVxuICAgIENIVU5LX1NJWkUgKyBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9BQllURVM7XG4gIGNvbnN0IG1heCA9XG4gICAgTWF0aC5jZWlsKGRhdGEuYnl0ZUxlbmd0aCAvIENIVU5LX1NJWkUpICogY3J5cHRlZENodW5rICsgaGVhZGVyLmJ5dGVMZW5ndGg7XG5cbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IDBcbiAgfSk7XG4gIGNvbnN0IGZpbmFsID0gbmV3IFVpbnQ4QXJyYXkobWF4KTtcbiAgY29uc3Qgc3BhcmtFbmNyeXB0ZWQgPSBuZXcgU3BhcmtNRDUuQXJyYXlCdWZmZXIoKTtcbiAgY29uc3Qgc3BhcmsgPSBuZXcgU3BhcmtNRDUuQXJyYXlCdWZmZXIoKTtcblxuICBmaW5hbC5zZXQoaGVhZGVyKTtcbiAgc3BhcmtFbmNyeXB0ZWQuYXBwZW5kKGhlYWRlcik7XG4gIGxldCB0b3RhbCA9IGhlYWRlci5ieXRlTGVuZ3RoO1xuICBwcm9ncmVzcz8uKHtcbiAgICBwZXJjZW50OiB0b3RhbCAvIG1heCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IHRvdGFsXG4gIH0pO1xuICBsZXQgbGFzdFBlcmNlbnQgPSB0b3RhbCAvIG1heDtcblxuICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rcyhkYXRhLCBDSFVOS19TSVpFKSkge1xuICAgIHNwYXJrLmFwcGVuZChjaHVuayk7XG4gICAgY29uc3QgdGFnID1cbiAgICAgIGNodW5rLmxlbmd0aCA8IENIVU5LX1NJWkVcbiAgICAgICAgPyBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9UQUdfRklOQUxcbiAgICAgICAgOiBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9UQUdfTUVTU0FHRTtcbiAgICBjb25zdCBjcnlwdGVkID0gY3J5cHQodGFnLCBjaHVuayk7XG4gICAgc3BhcmtFbmNyeXB0ZWQuYXBwZW5kKGNyeXB0ZWQpO1xuICAgIGZpbmFsLnNldChjcnlwdGVkLCB0b3RhbCk7XG4gICAgdG90YWwgKz0gY3J5cHRlZC5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IHBlcmNlbnQgPSB0b3RhbCAvIG1heDtcbiAgICBpZiAocGVyY2VudCA+IGxhc3RQZXJjZW50ICsgMC4wMSkge1xuICAgICAgcHJvZ3Jlc3M/Lih7XG4gICAgICAgIHBlcmNlbnQsXG4gICAgICAgIHRvdGFsOiBtYXgsXG4gICAgICAgIGN1cnJlbnQ6IHRvdGFsXG4gICAgICB9KTtcbiAgICAgIGxhc3RQZXJjZW50ID0gcGVyY2VudDtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCk7XG4gIHByb2dyZXNzPy4oe1xuICAgIHBlcmNlbnQ6IDEsXG4gICAgdG90YWwsXG4gICAgY3VycmVudDogdG90YWxcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgZGF0YTogZmluYWwuc2xpY2UoMCwgdG90YWwpLFxuICAgIG1kNUVuY3J5cHRlZDogc3BhcmtFbmNyeXB0ZWQuZW5kKCksXG4gICAgbWQ1OiBzcGFyay5lbmQoKVxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgZGF0YSwgcHJvZ3Jlc3MpIHtcbiAgY29uc3QgaGVhZGVyID0gZGF0YS5zbGljZShcbiAgICAwLFxuICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTXG4gICk7XG4gIGRhdGEgPSBkYXRhLnNsaWNlKHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTKTtcblxuICBjb25zdCB7IGRlY3J5cHQ6IGRlY3J5cHR0LCBkZXN0cm95IH0gPSBkZWNyeXB0KGhlYWRlciwga2V5KTtcbiAgY29uc3QgY2h1bmtTaXplID1cbiAgICBDSFVOS19TSVpFICsgc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfQUJZVEVTO1xuICBjb25zdCBtYXggPSBNYXRoLmNlaWwoZGF0YS5ieXRlTGVuZ3RoIC8gY2h1bmtTaXplKSAqIENIVU5LX1NJWkU7XG5cbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IDBcbiAgfSk7XG4gIGNvbnN0IGZpbmFsID0gbmV3IFVpbnQ4QXJyYXkobWF4KTtcbiAgbGV0IHRvdGFsID0gMDtcbiAgbGV0IGxhc3RQZXJjZW50ID0gdG90YWwgLyBtYXg7XG5cbiAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua3MoZGF0YSwgY2h1bmtTaXplKSkge1xuICAgIGNvbnN0IHRtcCA9IGRlY3J5cHR0KGNodW5rKTtcbiAgICBmaW5hbC5zZXQodG1wLm1lc3NhZ2UsIHRvdGFsKTtcbiAgICB0b3RhbCArPSB0bXAubWVzc2FnZS5ieXRlTGVuZ3RoO1xuXG4gICAgY29uc3QgcGVyY2VudCA9IHRvdGFsIC8gbWF4O1xuICAgIGlmIChwZXJjZW50ID4gbGFzdFBlcmNlbnQgKyAwLjAxKSB7XG4gICAgICBwcm9ncmVzcz8uKHtcbiAgICAgICAgcGVyY2VudCxcbiAgICAgICAgdG90YWw6IG1heCxcbiAgICAgICAgY3VycmVudDogdG90YWxcbiAgICAgIH0pO1xuICAgICAgbGFzdFBlcmNlbnQgPSBwZXJjZW50O1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKTtcbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMSxcbiAgICB0b3RhbCxcbiAgICBjdXJyZW50OiB0b3RhbFxuICB9KTtcbiAgcmV0dXJuIGZpbmFsLnNsaWNlKDAsIHRvdGFsKTtcbn1cblxuc2VsZi5vbm1lc3NhZ2UgPSBhc3luYyAoeyBkYXRhIH0pID0+IHtcbiAgc3dpdGNoIChkYXRhLmV2ZW50KSB7XG4gICAgY2FzZSBcImVuY3J5cHRcIjoge1xuICAgICAgcG9zdE1lc3NhZ2UoeyBldmVudDogXCJ3b3JraW5nXCIgfSlcbiAgICAgIHBvc3RNZXNzYWdlKHtcbiAgICAgICAgZXZlbnQ6IFwiZW5jcnlwdC1yZXN1bHRcIixcbiAgICAgICAgZGF0YTogYXdhaXQgZW5jcnlwdFNlY3JldHN0cmVhbShkYXRhLmtleSwgZGF0YS5kYXRhLCBwcm9ncmVzcyA9PiBwb3N0TWVzc2FnZSh7XG4gICAgICAgICAgZXZlbnQ6IFwiZW5jcnlwdC1wcm9ncmVzc1wiLFxuICAgICAgICAgIGRhdGE6IHByb2dyZXNzXG4gICAgICAgIH0pKVxuICAgICAgfSk7XG4gICAgICBwb3N0TWVzc2FnZSh7IGV2ZW50OiBcInJlYWR5XCIgfSlcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIFwiZGVjcnlwdFwiOiB7XG4gICAgICBwb3N0TWVzc2FnZSh7IGV2ZW50OiBcIndvcmtpbmdcIiB9KVxuICAgICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAgICBldmVudDogXCJkZWNyeXB0LXJlc3VsdFwiLFxuICAgICAgICBkYXRhOiBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGRhdGEua2V5LCBkYXRhLmRhdGEsIHByb2dyZXNzID0+IHBvc3RNZXNzYWdlKHtcbiAgICAgICAgICBldmVudDogXCJkZWNyeXB0LXByb2dyZXNzXCIsXG4gICAgICAgICAgZGF0YTogcHJvZ3Jlc3NcbiAgICAgICAgfSkpXG4gICAgICB9KTtcbiAgICAgIHBvc3RNZXNzYWdlKHsgZXZlbnQ6IFwicmVhZHlcIiB9KVxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGNvbnN0IHdvcmtlck1kNVNjcmlwdCA9IGBpbXBvcnRTY3JpcHRzKCdodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9zcGFyay1tZDUvMy4wLjAvc3BhcmstbWQ1Lm1pbi5qcycpO1xuXG5mdW5jdGlvbiogY2h1bmtzKGFyciwgbikge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkgKz0gbikge1xuICAgIHlpZWxkIGFyci5zbGljZShpLCBpICsgbik7XG4gIH1cbn1cblxuY29uc3QgQ0hVTktfU0laRSA9IDgxOTI7XG5cbmZ1bmN0aW9uIG1kNShkYXRhKSB7XG4gIGNvbnN0IHNwYXJrID0gbmV3IFNwYXJrTUQ1LkFycmF5QnVmZmVyKCk7XG4gIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKGRhdGEsIENIVU5LX1NJWkUpKSB7XG4gICAgc3BhcmsuYXBwZW5kKGNodW5rKTtcbiAgfVxuICByZXR1cm4gc3BhcmsuZW5kKCk7XG59XG5cblxuc2VsZi5vbm1lc3NhZ2UgPSAoeyBkYXRhIH0pID0+IHtcbiAgc3dpdGNoIChkYXRhLmV2ZW50KSB7XG4gICAgY2FzZSBcIm1kNVwiOiB7XG4gICAgICBwb3N0TWVzc2FnZSh7XG4gICAgICAgIGV2ZW50OiBcIm1kNS1yZXN1bHRcIixcbiAgICAgICAgZGF0YTogbWQ1KGRhdGEuZGF0YSlcbiAgICAgIH0pO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59YDtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxrQkFBa0IsR0FBSTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQS9OTztBQWlPUCxPQUFPLE1BQU1DLGVBQWUsR0FBSTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBN0JPIn0=
253
+ }`;export{t as workerMd5Script,e as workerSodiumScript};
254
+ //# sourceMappingURL=workerCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/worker/workerCodes.ts"],"sourcesContent":["export const workerSodiumScript = `let sodium;\n\nself.sodium = {\n onload: (sod) => {\n sodium = sod\n postMessage({ event: \"ready\" })\n }\n};\n\nimportScripts('https://cdn.jsdelivr.net/gh/jedisct1/libsodium.js@master/dist/browsers/sodium.js');\nimportScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nfunction assert(c, message) {\n if (!c) {\n throw new Error(message);\n }\n}\n\nfunction encrypt(key) {\n let destroyed = false;\n const {\n state,\n header\n } = sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(header, key) {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n \"header must be at least HEADERBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES + \") long\"\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n \"key must be at least KEYBYTES (\" + sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES + \") long\"\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy() {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nconst CHUNK_SIZE = 8192;\n\nasync function encryptSecretstream(key, data, progress) {\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nasync function decryptSecretstream(key, data, progress) {\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\nself.onmessage = async ({ data }) => {\n switch (data.event) {\n case \"encrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"encrypt-result\",\n data: await encryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"encrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n case \"decrypt\": {\n postMessage({ event: \"working\" })\n postMessage({\n event: \"decrypt-result\",\n data: await decryptSecretstream(data.key, data.data, progress => postMessage({\n event: \"decrypt-progress\",\n data: progress\n }))\n });\n postMessage({ event: \"ready\" })\n break;\n }\n }\n}`;\n\nexport const workerMd5Script = `importScripts('https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js');\n\nfunction* chunks(arr, n) {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nconst CHUNK_SIZE = 8192;\n\nfunction md5(data) {\n const spark = new SparkMD5.ArrayBuffer();\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n spark.append(chunk);\n }\n return spark.end();\n}\n\n\nself.onmessage = ({ data }) => {\n switch (data.event) {\n case \"md5\": {\n postMessage({\n event: \"md5-result\",\n data: md5(data.data)\n });\n break;\n }\n }\n}`;\n"],"mappings":"6BAAO,MAAMA,EAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAiOrBC,EAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":["workerSodiumScript","workerMd5Script"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');const e={BigInt:"scalar.BigInt",DateTime:"scalar.DateTime",Json:"scalar.Json",Bytes:"scalar.Bytes",Lang:"enum",PlanKind:"enum",UserRole:"enum",MailType:"enum",Rights:"enum",NodeType:"enum",FileContentType:"enum",InfuraNetwork:"enum",MailFileInput:{},MailRecipientInput:{files:"MailFileInput"},NameKeyInput:{files:"ShareFileKeyInput"},PayInput:{type:"PayInputType"},PayInputType:"enum",ShareFileInHistoryInput:{users:"ShareFileKeyInput"},ShareFileKeyInput:{},ShareNodesInput:{nodes:"NameKeyInput"},Query:{blog:{lang:"Lang"},dbConfig:{},dbGet:{},dbSearch:{},deletedMails:{mailType:"MailType"},faq:{lang:"Lang"},file:{},fileContent:{},filesContent:{},filesSharedWithMe:{},getJwt:{},isCryptoTransactionDone:{network:"InfuraNetwork"},mail:{},myCryptoBalance:{network:"InfuraNetwork"},node:{},nodesSharedWithMe:{type:"NodeType"},user:{},userList:{}},Mutation:{addFileToHistory:{},createApplication:{},createCryptoWallet:{},createDraftMail:{senderFiles:"MailFileInput"},createFolder:{},dbConfigMutation:{},dbSet:{},deleteDraftMail:{},deleteFile:{},deleteMail:{},deleteMailTrash:{},deleteNode:{},deleteNodeCloudTrash:{},deleteNodeSharing:{},deleteUser:{},duplicateNode:{},logout:{},moveNodes:{},pay:{input:"PayInput"},readMail:{},recoverMail:{},recoverNode:{},saveInCloud:{},sendAppMail:{},sendCryptoTransaction:{network:"InfuraNetwork"},sendDraftMail:{recipients:"MailRecipientInput"},sendOneMail:{recipient:"MailRecipientInput"},sendReport:{},shareFileInHistory:{input:"ShareFileInHistoryInput"},shareNode:{},shareNodeFinish:{shareNodes:"ShareNodesInput",rights:"Rights"},unreadMail:{},updateAppNotifications:{disableAllUntil:"DateTime"},updateAppSettings:{},updateAutoDisconnectDelay:{},updateDraftMail:{senderFiles:"MailFileInput"},updateNode:{deletedAt:"DateTime"},updateProfile:{lang:"Lang"},uploadAnonymous:{},uploadFile:{fileSize:"BigInt",fileSizeBefore:"BigInt"},uploadFileEnd:{},uploadFilePartEnd:{},uploadLiteFile:{content:"Bytes",fileSize:"BigInt",fileSizeBefore:"BigInt"},changeUserPlan:{plan:"PlanKind"}}},r= exports.ReturnTypes ={BigInt:"scalar.BigInt",DateTime:"scalar.DateTime",Json:"scalar.Json",Bytes:"scalar.Bytes",AppNotificationsResult:{"...on UserAppNotifications":"UserAppNotifications","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},BlogResult:{"...on BlogResponse":"BlogResponse","...on ErrorLangNotExist":"ErrorLangNotExist"},DbConfigResult:{"...on DbConfigResponse":"DbConfigResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist","...on ErrorNotFound":"ErrorNotFound"},DbGetResult:{"...on DbGetResponse":"DbGetResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound","...on ErrorNotExist":"ErrorNotExist"},DbSearchResult:{"...on DbSearchResponse":"DbSearchResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist","...on ErrorBasic":"ErrorBasic"},DeletedMailsResult:{"...on DeletedMailsResponse":"DeletedMailsResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DeletedNodesResult:{"...on DeletedNodesResponse":"DeletedNodesResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},FaqResult:{"...on FaqResponse":"FaqResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},FileResult:{"...on FileQueryResponse":"FileQueryResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},FileContentResult:{"...on FileContentResponse":"FileContentResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},FilesContentResult:{"...on FilesContentResponse":"FilesContentResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic","...on ErrorNotFound":"ErrorNotFound"},GetJwtResult:{"...on JwtResponse":"JwtResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},IsCryptoTransactionDoneResult:{"...on IsCryptoTransactionDoneResponse":"IsCryptoTransactionDoneResponse","...on ErrorNotExist":"ErrorNotExist"},LimitsResult:{"...on QueryLimits":"QueryLimits","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound","...on ErrorNotExist":"ErrorNotExist","...on ErrorLimit":"ErrorLimit"},MailResult:{"...on QueryMailResponse":"QueryMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},MyCryptoBalanceResult:{"...on MyCryptoBalanceResponse":"MyCryptoBalanceResponse","...on ErrorNotExist":"ErrorNotExist"},NodeResult:{"...on NodeResponse":"NodeResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},NodesSharedWithMeResult:{"...on NodesSharedWithMeResponse":"NodesSharedWithMeResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},PaymentInfosResult:{"...on PaymentInfosResponse":"PaymentInfosResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},PlansResult:{"...on PlanResponse":"PlanResponse"},SharedNodesResult:{"...on SharedNodesResponse":"SharedNodesResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},UnreadReceivedMailsCountResult:{"...on UnreadReceivedMailsCountResponse":"UnreadReceivedMailsCountResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},UserResult:{"...on UserResponse":"UserResponse","...on ErrorNotFound":"ErrorNotFound"},UserListResult:{"...on UserListResponse":"UserListResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},AddFileToHistoryResult:{"...on AddFileToHistoryResponse":"AddFileToHistoryResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist"},CancelPaymentResult:{"...on CancelPaymentResponse":"CancelPaymentResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},CreateApplicationResult:{"...on CreateApplicationResponse":"CreateApplicationResponse","...on ErrorNotExist":"ErrorNotExist"},CreateCryptoWalletResult:{"...on CreateCryptoWalletResponse":"CreateCryptoWalletResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},CreateDraftMailResult:{"...on CreateDraftMailResponse":"CreateDraftMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},CreateFolderResult:{"...on CreateFolderResponse":"CreateFolderResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist"},DbConfigMutationResult:{"...on DbConfigMutationResponse":"DbConfigMutationResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DbSetResult:{"...on DbSetResponse":"DbSetResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},DeleteDraftMailResult:{"...on DeleteDraftMailResponse":"DeleteDraftMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DeleteFileResult:{"...on DeleteFileResponse":"DeleteFileResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist"},DeleteMailResult:{"...on DeleteMailResponse":"DeleteMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DeleteMailTrashResult:{"...on DeleteMailTrashResponse":"DeleteMailTrashResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DeleteNodeResult:{"...on DeleteNodeResponse":"DeleteNodeResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DeleteNodeCloudTrashResult:{"...on DeleteNodeCloudTrashResponse":"DeleteNodeCloudTrashResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DeleteNodeSharingResult:{"...on DeleteNodeSharingResponse":"DeleteNodeSharingResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DeleteUserResult:{"...on DeleteUserResponse":"DeleteUserResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},DuplicateNodeResult:{"...on DuplicateNodeResponse":"DuplicateNodeResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},EmptyCloudTrashResult:{"...on EmptyCloudTrashResponse":"EmptyCloudTrashResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},EmptyMailTrashResult:{"...on EmptyMailTrashResponse":"EmptyMailTrashResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},LogoutResult:{"...on LogoutResponse":"LogoutResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},MoveNodesResult:{"...on MoveNodesResponse":"MoveNodesResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},PayResult:{"...on PayResponse":"PayResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},ReadMailResult:{"...on ReadMailResponse":"ReadMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic","...on ErrorNotFound":"ErrorNotFound"},RecoverMailResult:{"...on RecoverMailResponse":"RecoverMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},RecoverNodeResult:{"...on RecoverNodeResponse":"RecoverNodeResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist"},SaveInCloudResult:{"...on SaveInCloudResponse":"SaveInCloudResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist","...on ErrorBasic":"ErrorBasic","...on ErrorNotFound":"ErrorNotFound","...on ErrorLimit":"ErrorLimit"},SendAppMailResult:{"...on SendAppMailResponse":"SendAppMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic","...on ErrorNotFound":"ErrorNotFound"},SendCryptoTransactionResult:{"...on SendCryptoTransactionResponse":"SendCryptoTransactionResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic","...on ErrorNotExist":"ErrorNotExist"},SendDraftMailResult:{"...on SendDraftMailResponse":"SendDraftMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},SendOneMailResult:{"...on RecoverNodeResponse":"RecoverNodeResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},SendReportResult:{"...on SendReportResponse":"SendReportResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},ShareFileInHistoryResult:{"...on ShareFileInHistoryResponse":"ShareFileInHistoryResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},ShareNodeResult:{"...on ShareNodeResponse":"ShareNodeResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},ShareNodeFinishResult:{"...on ShareNodeFinishResponse":"ShareNodeFinishResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},UnreadMailResult:{"...on UnreadMailResponse":"UnreadMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound","...on ErrorBasic":"ErrorBasic"},UpdateAppNotificationsResult:{"...on UpdateAppNotificationsResponse":"UpdateAppNotificationsResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},UpdateAppSettingsResult:{"...on UpdateAppSettingsResponse":"UpdateAppSettingsResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},UpdateAutoDisconnectDelayResult:{"...on UpdateAutoDisconnectDelayResponse":"UpdateAutoDisconnectDelayResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound","...on ErrorBasic":"ErrorBasic"},UpdateDraftMailResult:{"...on UpdateDraftMailResponse":"UpdateDraftMailResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic"},UpdateNodeResult:{"...on UpdateNodeResponse":"UpdateNodeResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotExist":"ErrorNotExist"},UpdateProfileResult:{"...on UpdateProfileResponse":"UpdateProfileResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},UploadFileResult:{"...on UploadFileResponse":"UploadFileResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound","...on ErrorLimit":"ErrorLimit"},UploadFileEndResult:{"...on UploadFileEndResponse":"UploadFileEndResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound"},UploadFilePartEndResult:{"...on UploadFilePartEndResponse":"UploadFilePartEndResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},UploadLiteFileResult:{"...on UploadLiteFileResponse":"UploadLiteFileResponse","...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic","...on ErrorNotFound":"ErrorNotFound","...on ErrorLimit":"ErrorLimit"},ChangeUserPlanResult:{"...on ChangeUserPlanResponse":"ChangeUserPlanResponse","...on ErrorAccessDenied":"ErrorAccessDenied"},AppKeyPair:{pub:"String"},AppSession:{id:"ID",lastActivity:"DateTime",userAgent:"String",ip:"String",city:"String",country:"String",userSession:"UserSession",userApp:"ApplicationsOnUsers",createdAt:"DateTime"},Application:{id:"ID",name:"String",logo:"String",origin:"String"},ApplicationsOnUsers:{fakeUserId:"String",keyPair:"AppKeyPair",sessions:"AppSession",app:"Application",appId:"String",user:"User",userId:"String",settings:"UserAppSettings",filesAccesses:"FileAccess",filesSharedAccesses:"FileAccess",nodesAccesses:"NodeAccess",nodesSharedAccesses:"NodeAccess",createdNodes:"Node"},Blog:{id:"ID",order:"Int",entries:"BlogEntry"},BlogEntry:{id:"ID",lang:"Lang",author:"String",body:"String",date:"DateTime",image:"String",summary:"String",title:"String"},BlogItem:{id:"String",blogId:"String",order:"Int",title:"String",body:"String",author:"String",image:"String",imageAlt:"String",summary:"String",date:"DateTime"},CloudLimits:{size:"BigInt",maxSize:"BigInt",count:"BigInt",maxCount:"BigInt"},CryptoWallet:{address:"ID",privateKeyEncrypted:"String"},Error:{"...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorNotFound":"ErrorNotFound","...on ErrorUpgradePlan":"ErrorUpgradePlan","...on ErrorLangNotExist":"ErrorLangNotExist","...on ErrorNotExist":"ErrorNotExist","...on ErrorLimit":"ErrorLimit","...on ErrorBasic":"ErrorBasic"},ErrorAccessDenied:{message:"String"},ErrorBase:{"...on ErrorAccessDenied":"ErrorAccessDenied","...on ErrorBasic":"ErrorBasic","...on ErrorLangNotExist":"ErrorLangNotExist","...on ErrorLimit":"ErrorLimit","...on ErrorNotExist":"ErrorNotExist","...on ErrorNotFound":"ErrorNotFound","...on ErrorUpgradePlan":"ErrorUpgradePlan",message:"String"},ErrorBasic:{message:"String"},ErrorLangNotExist:{message:"String"},ErrorLimit:{message:"String",field:"String"},ErrorNotExist:{message:"String",field:"String"},ErrorNotFound:{message:"String",field:"String"},ErrorUpgradePlan:{message:"String"},Faq:{id:"ID",order:"Int",entries:"FaqEntry"},FaqEntry:{id:"ID",lang:"Lang",question:"String",answer:"String",faq:"Faq"},FaqItem:{order:"Int",question:"String",answer:"String"},File:{id:"ID",size:"BigInt",sizeBefore:"BigInt",createdAt:"DateTime",md5:"String",nodes:"Node",accesses:"FileAccess",md5Encrypted:"String",deletedAt:"DateTime",userApp:"ApplicationsOnUsers",mails:"FilesOnMails",validatedAt:"DateTime",access:"FileAccess"},FileAccess:{userApp:"ApplicationsOnUsers",userAppUserId:"String",userAppAppId:"String",file:"File",fileId:"String",key:"String",sharedBy:"ApplicationsOnUsers",sharedByUserId:"String",sharedByAppId:"String"},FileContent:{"...on FileContentCloud":"FileContentCloud","...on FileContentLite":"FileContentLite","...on FileContentReceivedMail":"FileContentReceivedMail","...on FileContentSentMail":"FileContentSentMail"},FileContentBase:{"...on FileContentCloud":"FileContentCloud","...on FileContentLite":"FileContentLite","...on FileContentReceivedMail":"FileContentReceivedMail","...on FileContentSentMail":"FileContentSentMail",id:"String",key:"String",md5:"String",md5Encrypted:"String",totalSize:"BigInt",type:"FileContentType"},FileContentCloud:{id:"String",key:"String",md5:"String",md5Encrypted:"String",totalSize:"BigInt",type:"FileContentType",parts:"FileContentPart",publicKey:"String"},FileContentLite:{id:"String",key:"String",md5:"String",md5Encrypted:"String",totalSize:"BigInt",type:"FileContentType",content:"Bytes",publicKey:"String"},FileContentPart:{contentUrl:"String",order:"Int",md5:"String"},FileContentReceivedMail:{id:"String",key:"String",md5:"String",md5Encrypted:"String",totalSize:"BigInt",type:"FileContentType",maybeParts:"FileContentPart",maybeContent:"Bytes",senderPublicKey:"String"},FileContentSentMail:{id:"String",key:"String",md5:"String",md5Encrypted:"String",totalSize:"BigInt",type:"FileContentType",maybeParts:"FileContentPart",maybeContent:"Bytes"},FilePart:{id:"ID",file:"File",fileId:"String",size:"BigInt",order:"Int",md5:"String",validatedAt:"DateTime"},FilePartResponse:{fields:"Json",url:"String",order:"Int"},FileResponse:{fileId:"String",parts:"FilePartResponse",filePartSize:"BigInt"},FileShared:{userId:"String",message:"String",appId:"String",id:"String",filename:"String",size:"Int",sizeBefore:"Int"},FileSharedContent:{ownerId:"String",pubKey:"String",message:"String",appId:"String",id:"String",type:"String",filename:"String",contentUrl:"String",key:"String",size:"Int",sizeBefore:"Int"},FilesContentResponse:{files:"FileContent"},FilesOnMails:{file:"File",fileKey:"String",filename:"String",mail:"Mail"},Limits:{downloadBandwidth:"BigInt",downloadCount:"BigInt",hardFileCount:"BigInt",hardFileSize:"BigInt",perFileSize:"BigInt",receivedMails:"MailLimits",sentMails:"MailLimits",uploadBandwidth:"BigInt",uploadCount:"BigInt"},MailLimits:{count:"BigInt",fileCount:"BigInt",fileSize:"BigInt",hardCount:"BigInt",hardFileCount:"BigInt",hardFileSize:"BigInt",perFileSize:"BigInt"},MailLimitsValues:{count:"BigInt",maxCount:"BigInt",fileCount:"BigInt",maxFileCount:"BigInt",fileSize:"BigInt",maxFileSize:"BigInt"},QueryLimits:{cloud:"CloudLimits",mail:"UserMailLimits"},UserMailLimits:{sent:"MailLimitsValues",received:"MailLimitsValues"},LiteFileResponse:{fileId:"String",content:"Bytes"},Mail:{id:"ID",app:"Application",body:"String",createdAt:"DateTime",deletedAt:"DateTime",files:"FilesOnMails",mailIntegrity:"MailIntegrity",mailIntegrityId:"String",mailIntegrityDraft:"MailIntegrityDraft",openedAt:"DateTime",recipient:"User",sender:"User",subject:"String",type:"MailType",recipients:"User"},MailIntegrity:{id:"ID",hash:"String",hashKey:"String",answers:"MailIntegrity",app:"Application",mails:"Mail",recipients:"User",temporaryRecipients:"TemporaryUser",replyTo:"MailIntegrity"},MailIntegrityDraft:{id:"ID",hash:"String",hashKey:"String",app:"Application",mail:"Mail",recipients:"User",temporaryRecipients:"TemporaryUser",replyTo:"MailIntegrity"},Node:{id:"ID",isFavorite:"Boolean",type:"NodeType",createdAt:"DateTime",deletedAt:"DateTime",parentId:"String",createdBy:"ApplicationsOnUsers",children:"Node",history:"File",updatedAt:"DateTime",createdByAppId:"String",createdByUserId:"String",name:"String",parent:"Node",accesses:"NodeAccess",current:"File",currentFileId:"String",sizes:"NodeSize",access:"NodeAccess",breadcrumb:"NodeBreadcrumbItem"},NodeBreadcrumbItem:{id:"String",name:"String",pubKey:"String",nameKey:"String"},NodeAccess:{node:"Node",nodeId:"String",userApp:"ApplicationsOnUsers",userAppUserId:"String",userAppAppId:"String",rights:"Rights",nameKey:"String",isRoot:"Boolean",sharedBy:"ApplicationsOnUsers",sharedByUserId:"String",sharedByAppId:"String"},NodeSize:{size:"BigInt",sizeBefore:"BigInt"},Plan:{id:"ID",kind:"PlanKind",codes:"String",limits:"Limits"},Report:{id:"ID",user:"User",reportedUser:"User",customMessage:"String"},AddFileToHistoryResponse:{addFileToHistory:"Node"},CancelPaymentResponse:{cancelPayment:"Boolean"},ChangeUserPlanResponse:{changeUserPlan:"User"},CreateApplicationResponse:{createApplication:"String"},CreateCryptoWalletResponse:{createCryptoWallet:"CryptoWallet"},CreateDraftMailResponse:{createDraftMail:"Mail"},CreateFolderResponse:{createFolder:"Node"},DbConfigMutationResponse:{dbConfigMutation:"Json"},DbSetResponse:{dbSet:"Json"},DeleteDraftMailResponse:{deleteDraftMail:"Boolean"},DeleteFileResponse:{deleteFile:"Boolean"},DeleteMailResponse:{deleteMail:"Boolean"},DeleteMailTrashResponse:{deleteMailTrash:"Boolean"},DeleteNodeResponse:{deleteNode:"Boolean"},DeleteNodeCloudTrashResponse:{deleteNodeCloudTrash:"Boolean"},DeleteNodeSharingResponse:{deleteNodeSharing:"Boolean"},DeleteUserResponse:{deleteUser:"Boolean"},DuplicateNodeResponse:{duplicateNode:"Boolean"},EmptyCloudTrashResponse:{emptyCloudTrash:"Boolean"},EmptyMailTrashResponse:{emptyMailTrash:"Boolean"},LogoutResponse:{logout:"Boolean"},MoveNodesResponse:{moveNodes:"Boolean"},PayResponse:{pay:"Boolean"},ReadMailResponse:{readMail:"Boolean"},RecoverMailResponse:{recoverMail:"Boolean"},RecoverNodeResponse:{recoverNode:"Boolean"},SaveInCloudResponse:{saveInCloud:"Node"},SendAppMailResponse:{sendAppMail:"Boolean"},SendCryptoTransactionResponse:{id:"String",hash:"String"},SendDraftMailResponse:{sendDraftMail:"Boolean"},SendOneMailResponse:{sendOneMail:"Boolean"},SendReportResponse:{sendReport:"Report"},ShareFileInHistoryResponse:{shareFileInHistory:"Boolean"},ShareNodeQueryResponse:{shareNode:"ShareNodeResponse"},ShareNodeFinishResponse:{shareNodeFinish:"Boolean"},UnreadMailResponse:{unreadMail:"Boolean"},UpdateAppNotificationsResponse:{updateAppNotifications:"UserAppNotifications"},UpdateAppSettingsResponse:{updateAppSettings:"UserAppSettings"},UpdateAutoDisconnectDelayResponse:{updateAutoDisconnectDelay:"Boolean"},UpdateDraftMailResponse:{updateDraftMail:"Mail"},UpdateNodeResponse:{updateNode:"Node"},UpdateProfileResponse:{updateProfile:"User"},UploadAnonymousResponse:{uploadAnonymous:"FileResponse"},UploadFileResponse:{uploadFile:"FileResponse"},UploadFileEndResponse:{uploadFileEnd:"String"},UploadFilePartEndResponse:{uploadFilePartEnd:"Boolean"},UploadLiteFileResponse:{uploadLiteFile:"LiteFileResponse"},BlogResponse:{blogItems:"BlogItem"},DbConfigResponse:{json:"Json"},DbGetResponse:{json:"Json"},DbSearchResponse:{json:"Json"},DeletedMailsResponse:{deletedMails:"Mail"},DeletedNodesResponse:{deletedNodes:"Node"},FaqResponse:{faq:"FaqItem"},FileQueryResponse:{file:"File"},FileContentResponse:{file:"FileContent"},JwtResponse:{jwt:"String"},IsCryptoTransactionDoneResponse:{done:"Boolean"},QueryMailResponse:{mail:"Mail"},MyCryptoBalanceResponse:{amount:"String"},NodeResponse:{node:"Node"},NodesSharedWithMeResponse:{nodesSharedWithMe:"Node"},PaymentInfosResponse:{paymentInfos:"PaymentInfos"},PlanResponse:{plan:"Plan"},SharedNodesResponse:{sharedNodes:"Node"},UnreadReceivedMailsCountResponse:{count:"Int"},UserResponse:{user:"User"},UserListResponse:{userList:"User"},TemporaryUser:{id:"ID",mails:"MailIntegrity",draftMails:"MailIntegrityDraft",email:"String"},User:{id:"ID",deletedAt:"DateTime",lang:"Lang",cryptoWallets:"CryptoWallet",reportSent:"Report",godFather:"User",godChildren:"User",infos:"UserInfos",infosId:"String",firstname:"String",lastname:"String",email:"String",phone:"String",lastLogin:"DateTime",role:"UserRole",sessions:"UserSession",createdAt:"DateTime",receivedMails:"Mail",waitingReceivedMails:"WaitingReceivedMail",sentMails:"Mail",draftMails:"Mail",appSettings:"UserAppSettings",applications:"ApplicationsOnUsers",publicKey:"String"},UserAppNotifications:{id:"ID",enableAll:"Boolean",mail:"Boolean",cloud:"Boolean",disableAllUntil:"DateTime"},UserAppSettings:{id:"ID",cloudNodeDaysForDelete:"Int",historyFileDaysForDelete:"Int",historyMaxFileCount:"Int"},UserInfos:{id:"ID",emails:"String",email:"String",phones:"String",lastname:"String",firstname:"String",user:"User",updatedAt:"DateTime"},UserSession:{id:"ID",appSessions:"AppSession",lastActivity:"DateTime",userAgent:"String",ip:"String",city:"String",country:"String",createdAt:"DateTime"},WaitingReceivedMail:{sender:"User",date:"DateTime",recipients:"User",temporaryRecipients:"TemporaryUser",attachmentsCount:"Int"},PaymentInfos:{hostedUrl:"String",currentSubscription:"RecurlySubscription",invoices:"RecurlyInvoices"},RecurlyInvoices:{pdf:"String",date:"DateTime",due:"DateTime",status:"String",total:"Int",name:"String",currency:"String"},RecurlySubscription:{autorenew:"Boolean",activatedAt:"DateTime",currentPeriodEndsAt:"DateTime",currentPeriodStartedAt:"DateTime",canceledAt:"DateTime",createdAt:"DateTime",expiresAt:"DateTime",pausedAt:"DateTime",trialEndsAt:"DateTime",trialStartedAt:"DateTime",updatedAt:"DateTime",state:"String",collectionMethod:"String",plan:"String",planCode:"String",total:"Int"},ShareNodeResponse:{nodes:"String"},Query:{appNotifications:"AppNotificationsResult",blog:"BlogResult",dbConfig:"DbConfigResult",dbGet:"DbGetResult",dbSearch:"DbSearchResult",deletedMails:"DeletedMailsResult",deletedNodes:"DeletedNodesResult",faq:"FaqResult",file:"FileResult",fileContent:"FileContentResult",filesContent:"FilesContentResult",filesSharedWithMe:"FileSharedContent",getJwt:"GetJwtResult",isCryptoTransactionDone:"IsCryptoTransactionDoneResult",limits:"LimitsResult",mail:"MailResult",myCryptoBalance:"MyCryptoBalanceResult",node:"NodeResult",nodesSharedWithMe:"NodesSharedWithMeResult",paymentInfos:"PaymentInfosResult",plans:"PlansResult",serverTime:"Int",sharedNodes:"SharedNodesResult",unreadReceivedMailsCount:"UnreadReceivedMailsCountResult",user:"UserResult",userList:"UserListResult"},Mutation:{addFileToHistory:"AddFileToHistoryResult",cancelPayment:"CancelPaymentResult",createApplication:"CreateApplicationResult",createCryptoWallet:"CreateCryptoWalletResult",createDraftMail:"CreateDraftMailResult",createFolder:"CreateFolderResult",dbConfigMutation:"DbConfigMutationResult",dbSet:"DbSetResult",deleteAllData:"Boolean",deleteDraftMail:"DeleteDraftMailResult",deleteFile:"DeleteFileResult",deleteMail:"DeleteMailResult",deleteMailTrash:"DeleteMailTrashResult",deleteNode:"DeleteNodeResult",deleteNodeCloudTrash:"DeleteNodeCloudTrashResult",deleteNodeSharing:"DeleteNodeSharingResult",deleteUser:"DeleteUserResult",duplicateNode:"DuplicateNodeResult",emptyCloudTrash:"EmptyCloudTrashResult",emptyMailTrash:"EmptyMailTrashResult",logout:"LogoutResult",moveNodes:"MoveNodesResult",pay:"PayResult",readMail:"ReadMailResult",recoverMail:"RecoverMailResult",recoverNode:"RecoverNodeResult",saveInCloud:"SaveInCloudResult",sendAppMail:"SendAppMailResult",sendCryptoTransaction:"SendCryptoTransactionResult",sendDraftMail:"SendDraftMailResult",sendOneMail:"SendOneMailResult",sendReport:"SendReportResult",shareFileInHistory:"ShareFileInHistoryResult",shareNode:"ShareNodeResult",shareNodeFinish:"ShareNodeFinishResult",unreadMail:"UnreadMailResult",updateAppNotifications:"UpdateAppNotificationsResult",updateAppSettings:"UpdateAppSettingsResult",updateAutoDisconnectDelay:"UpdateAutoDisconnectDelayResult",updateDraftMail:"UpdateDraftMailResult",updateNode:"UpdateNodeResult",updateProfile:"UpdateProfileResult",uploadAnonymous:"FileResponse",uploadFile:"UploadFileResult",uploadFileEnd:"UploadFileEndResult",uploadFilePartEnd:"UploadFilePartEndResult",uploadLiteFile:"UploadLiteFileResult",changeUserPlan:"ChangeUserPlanResult"},Subscription:{test:"Boolean"}},o= exports.Ops ={query:"Query",mutation:"Mutation",subscription:"Subscription"};exports.AllTypesProps = e; exports.Ops = o; exports.ReturnTypes = r;
2
+ //# sourceMappingURL=const.cjs.map