@secrecy/lib 1.0.0-dev.27 → 1.0.0-dev.28

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 (154) hide show
  1. package/dist/BaseClient.d.ts +274 -0
  2. package/dist/BaseClient.js +2227 -0
  3. package/dist/PopupTools.d.ts +17 -0
  4. package/dist/PopupTools.js +213 -0
  5. package/dist/ZeusThunder.d.ts +2 -0
  6. package/dist/ZeusThunder.js +113 -0
  7. package/dist/cache.d.ts +7 -0
  8. package/dist/cache.js +5 -0
  9. package/dist/client/admin/index.d.ts +11 -0
  10. package/dist/client/admin/index.js +198 -0
  11. package/dist/client/convert/file.d.ts +5 -0
  12. package/dist/client/convert/file.js +39 -0
  13. package/dist/client/convert/folder.d.ts +8 -0
  14. package/dist/client/convert/folder.js +264 -0
  15. package/dist/client/convert/mail.d.ts +3 -0
  16. package/dist/client/convert/mail.js +46 -0
  17. package/dist/client/convert/vFile.d.ts +5 -0
  18. package/dist/client/convert/vFile.js +164 -0
  19. package/dist/client/helpers.d.ts +23 -0
  20. package/dist/client/helpers.js +114 -0
  21. package/dist/client/index.d.ts +172 -0
  22. package/dist/client/index.js +6169 -0
  23. package/dist/client/storage.d.ts +7 -0
  24. package/dist/client/storage.js +12 -0
  25. package/dist/client/types/File.d.ts +21 -0
  26. package/dist/client/types/File.js +3 -0
  27. package/dist/client/types/FilesOnUsersOnApplications.d.ts +9 -0
  28. package/dist/client/types/FilesOnUsersOnApplications.js +3 -0
  29. package/dist/client/types/Folder.d.ts +68 -0
  30. package/dist/client/types/Folder.js +7 -0
  31. package/dist/client/types/Inputs.d.ts +21 -0
  32. package/dist/client/types/Inputs.js +3 -0
  33. package/dist/client/types/UserAppNotifications.d.ts +6 -0
  34. package/dist/client/types/UserAppNotifications.js +3 -0
  35. package/dist/client/types/UserAppSettings.d.ts +7 -0
  36. package/dist/client/types/UserAppSettings.js +3 -0
  37. package/dist/client/types/VFile.d.ts +62 -0
  38. package/dist/client/types/VFile.js +4 -0
  39. package/dist/client/types/index.d.ts +154 -0
  40. package/dist/client/types/index.js +10 -0
  41. package/dist/client/types/queries.d.ts +535 -0
  42. package/dist/client/types/queries.js +192 -0
  43. package/dist/crypto/file.d.ts +14 -0
  44. package/dist/crypto/file.js +291 -0
  45. package/dist/crypto/index.d.ts +12 -0
  46. package/dist/crypto/index.js +45 -0
  47. package/dist/error.d.ts +30 -0
  48. package/dist/error.js +3 -0
  49. package/dist/index.d.ts +13 -3857
  50. package/dist/index.js +42 -255
  51. package/dist/minify/index.d.ts +2 -0
  52. package/dist/minify/index.js +28 -0
  53. package/dist/minify/lz4.d.ts +5 -0
  54. package/dist/minify/lz4.js +633 -0
  55. package/dist/sodium.d.ts +3 -0
  56. package/dist/sodium.js +28 -0
  57. package/dist/utils/store-buddy.d.ts +14 -0
  58. package/dist/utils/store-buddy.js +69 -0
  59. package/dist/utils/time.d.ts +10 -0
  60. package/dist/utils/time.js +22 -0
  61. package/dist/utils.d.ts +4 -0
  62. package/dist/utils.js +188 -0
  63. package/dist/worker/__mock__/sodium.worker.d.ts +19 -0
  64. package/dist/worker/__mock__/sodium.worker.js +46 -0
  65. package/dist/worker/md5.d.ts +1 -0
  66. package/dist/worker/md5.js +43 -0
  67. package/dist/worker/sodium.d.ts +3 -0
  68. package/dist/worker/sodium.js +155 -0
  69. package/dist/worker/workerCodes.d.ts +2 -0
  70. package/dist/worker/workerCodes.js +3 -0
  71. package/dist/zeus/const.d.ts +2 -0
  72. package/dist/zeus/const.js +2267 -0
  73. package/dist/zeus/index.d.ts +4043 -0
  74. package/dist/zeus/index.js +549 -0
  75. package/package.json +23 -14
  76. package/__tests__/client/client.test.ts +0 -81
  77. package/__tests__/client/folder.test.ts +0 -302
  78. package/__tests__/client/mail.test.ts +0 -476
  79. package/__tests__/client/timing.test.ts +0 -35
  80. package/__tests__/client/utils.ts +0 -41
  81. package/__tests__/client/vFile.test.ts +0 -207
  82. package/__tests__/index.test.ts +0 -171
  83. package/commitlint.config.cjs +0 -3
  84. package/dist/index.js.map +0 -1
  85. package/dist/index.mjs +0 -255
  86. package/dist/index.mjs.map +0 -1
  87. package/docs/assets/css/main.css +0 -2660
  88. package/docs/assets/images/icons.png +0 -0
  89. package/docs/assets/images/icons@2x.png +0 -0
  90. package/docs/assets/images/widgets.png +0 -0
  91. package/docs/assets/images/widgets@2x.png +0 -0
  92. package/docs/assets/js/main.js +0 -248
  93. package/docs/assets/js/search.js +0 -1
  94. package/docs/classes/baseclient.baseclient-1.html +0 -1165
  95. package/docs/classes/client.secrecyclient.html +0 -2527
  96. package/docs/enums/index.sodium.base64_variants.html +0 -205
  97. package/docs/index.html +0 -198
  98. package/docs/interfaces/client_types.draftmail.html +0 -335
  99. package/docs/interfaces/client_types.filecontentbase.html +0 -231
  100. package/docs/interfaces/client_types.filecontentcloud.html +0 -244
  101. package/docs/interfaces/client_types.filecontentreceivedmail.html +0 -244
  102. package/docs/interfaces/client_types.filecontentsentmail.html +0 -230
  103. package/docs/interfaces/client_types.receivedmail.html +0 -363
  104. package/docs/interfaces/client_types.sentmail.html +0 -335
  105. package/docs/interfaces/crypto.keypair.html +0 -202
  106. package/docs/interfaces/index.sodium.cryptobox.html +0 -185
  107. package/docs/interfaces/index.sodium.cryptokx.html +0 -185
  108. package/docs/interfaces/index.sodium.keypair.html +0 -199
  109. package/docs/interfaces/index.sodium.messagetag.html +0 -185
  110. package/docs/interfaces/index.sodium.secretbox.html +0 -185
  111. package/docs/interfaces/index.sodium.stateaddress.html +0 -171
  112. package/docs/interfaces/index.sodium.stringcryptobox.html +0 -185
  113. package/docs/interfaces/index.sodium.stringcryptokx.html +0 -185
  114. package/docs/interfaces/index.sodium.stringkeypair.html +0 -199
  115. package/docs/interfaces/index.sodium.stringmessagetag.html +0 -185
  116. package/docs/interfaces/index.sodium.stringsecretbox.html +0 -185
  117. package/docs/interfaces/utils_store_buddy.storebuddy.html +0 -333
  118. package/docs/modules/baseclient.html +0 -929
  119. package/docs/modules/cache.html +0 -185
  120. package/docs/modules/client.html +0 -207
  121. package/docs/modules/client_convert_file.html +0 -216
  122. package/docs/modules/client_convert_folder.html +0 -303
  123. package/docs/modules/client_convert_vfile.html +0 -216
  124. package/docs/modules/client_helpers.html +0 -311
  125. package/docs/modules/client_storage.html +0 -167
  126. package/docs/modules/client_types.html +0 -1227
  127. package/docs/modules/client_types_file.html +0 -233
  128. package/docs/modules/client_types_filesonusersonapplications.html +0 -168
  129. package/docs/modules/client_types_folder.html +0 -383
  130. package/docs/modules/client_types_inputs.html +0 -263
  131. package/docs/modules/client_types_mail.html +0 -181
  132. package/docs/modules/client_types_queries.html +0 -199
  133. package/docs/modules/client_types_userappsettings.html +0 -163
  134. package/docs/modules/client_types_vfile.html +0 -364
  135. package/docs/modules/crypto.html +0 -366
  136. package/docs/modules/crypto_file.html +0 -344
  137. package/docs/modules/index.html +0 -779
  138. package/docs/modules/index.sodium.html +0 -6039
  139. package/docs/modules/minify.html +0 -183
  140. package/docs/modules/minify_lz4.html +0 -279
  141. package/docs/modules/popuptools.html +0 -259
  142. package/docs/modules/sodium.html +0 -167
  143. package/docs/modules/utils.html +0 -219
  144. package/docs/modules/utils_store_buddy.html +0 -208
  145. package/docs/modules/utils_time.html +0 -330
  146. package/docs/modules/worker_md5.html +0 -156
  147. package/docs/modules/worker_sodium.html +0 -231
  148. package/docs/modules/worker_workercodes.html +0 -157
  149. package/docs/modules.html +0 -235
  150. package/index.html +0 -21
  151. package/jest.config.ts +0 -27
  152. package/jest.setup.ts +0 -6
  153. package/release.config.cjs +0 -15
  154. package/tsup.config.ts +0 -26
@@ -0,0 +1,192 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
7
+ export var gqlFileQuery = {
8
+ id: true,
9
+ size: true,
10
+ sizeBefore: true,
11
+ createdAt: true,
12
+ md5: true,
13
+ md5Encrypted: true,
14
+ user: {
15
+ key: true,
16
+ userApp: {
17
+ keyPair: {
18
+ pub: true
19
+ }
20
+ }
21
+ }
22
+ };
23
+ export var gqlVFileQuery = {
24
+ id: true,
25
+ filename: true,
26
+ createdBy: {
27
+ user: {
28
+ id: true,
29
+ firstname: true,
30
+ lastname: true,
31
+ email: true,
32
+ publicKey: true
33
+ }
34
+ },
35
+ userApps: {
36
+ rights: true,
37
+ isRoot: true,
38
+ userApp: {
39
+ user: {
40
+ id: true,
41
+ firstname: true,
42
+ lastname: true,
43
+ email: true,
44
+ publicKey: true
45
+ }
46
+ }
47
+ },
48
+ userApp: {
49
+ userApp: {
50
+ user: {
51
+ id: true
52
+ }
53
+ },
54
+ nameKey: true,
55
+ rights: true,
56
+ isRoot: true
57
+ },
58
+ isFavorite: true,
59
+ createdAt: true,
60
+ deletedAt: true,
61
+ updatedAt: true,
62
+ current: _objectSpread({}, gqlFileQuery),
63
+ history: _objectSpread({}, gqlFileQuery)
64
+ };
65
+ export var gqlFolderQuery = {
66
+ id: true,
67
+ isFavorite: true,
68
+ createdAt: true,
69
+ deletedAt: true,
70
+ updatedAt: true,
71
+ name: true,
72
+ createdBy: {
73
+ user: {
74
+ id: true,
75
+ firstname: true,
76
+ lastname: true,
77
+ email: true,
78
+ publicKey: true
79
+ }
80
+ },
81
+ userApps: {
82
+ rights: true,
83
+ isRoot: true,
84
+ userApp: {
85
+ user: {
86
+ id: true,
87
+ firstname: true,
88
+ lastname: true,
89
+ email: true,
90
+ publicKey: true
91
+ }
92
+ }
93
+ },
94
+ userApp: {
95
+ userApp: {
96
+ user: {
97
+ id: true
98
+ }
99
+ },
100
+ nameKey: true,
101
+ rights: true,
102
+ isRoot: true
103
+ },
104
+ breadcrumb: {
105
+ id: true,
106
+ name: true,
107
+ nameKey: true,
108
+ pubKey: true
109
+ }
110
+ };
111
+ export var gqlFolderFullQuery = _objectSpread(_objectSpread({}, gqlFolderQuery), {}, {
112
+ vFiles: _objectSpread({}, gqlVFileQuery),
113
+ parentFolder: gqlFolderQuery,
114
+ subfolders: gqlFolderQuery
115
+ });
116
+ export var gqlVFileWithFolderQuery = _objectSpread(_objectSpread({}, gqlVFileQuery), {}, {
117
+ folder: _objectSpread({}, gqlFolderQuery)
118
+ });
119
+ export var gqlMailQuery = {
120
+ id: true,
121
+ type: true,
122
+ body: true,
123
+ subject: true,
124
+ openedAt: true,
125
+ createdAt: true,
126
+ deletedAt: true,
127
+ recipients: {
128
+ id: true,
129
+ firstname: true,
130
+ lastname: true,
131
+ email: true,
132
+ publicKey: true
133
+ },
134
+ recipient: {
135
+ id: true,
136
+ firstname: true,
137
+ lastname: true,
138
+ email: true,
139
+ publicKey: true
140
+ },
141
+ sender: {
142
+ id: true,
143
+ firstname: true,
144
+ lastname: true,
145
+ email: true,
146
+ publicKey: true
147
+ },
148
+ mailIntegrity: {
149
+ temporaryRecipients: {
150
+ email: true
151
+ },
152
+ recipients: {
153
+ id: true,
154
+ firstname: true,
155
+ lastname: true,
156
+ email: true,
157
+ publicKey: true
158
+ },
159
+ id: true,
160
+ hash: true,
161
+ hashKey: true,
162
+ replyTo: {
163
+ id: true
164
+ }
165
+ },
166
+ mailIntegrityDraft: {
167
+ temporaryRecipients: {
168
+ email: true
169
+ },
170
+ recipients: {
171
+ id: true,
172
+ firstname: true,
173
+ lastname: true,
174
+ email: true,
175
+ publicKey: true
176
+ },
177
+ id: true,
178
+ hash: true,
179
+ hashKey: true,
180
+ replyTo: {
181
+ id: true
182
+ }
183
+ },
184
+ files: {
185
+ fileKey: true,
186
+ filename: true,
187
+ file: {
188
+ id: true
189
+ }
190
+ }
191
+ };
192
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvdHlwZXMvcXVlcmllcy50cyJdLCJuYW1lcyI6WyJncWxGaWxlUXVlcnkiLCJpZCIsInNpemUiLCJzaXplQmVmb3JlIiwiY3JlYXRlZEF0IiwibWQ1IiwibWQ1RW5jcnlwdGVkIiwidXNlciIsImtleSIsInVzZXJBcHAiLCJrZXlQYWlyIiwicHViIiwiZ3FsVkZpbGVRdWVyeSIsImZpbGVuYW1lIiwiY3JlYXRlZEJ5IiwiZmlyc3RuYW1lIiwibGFzdG5hbWUiLCJlbWFpbCIsInB1YmxpY0tleSIsInVzZXJBcHBzIiwicmlnaHRzIiwiaXNSb290IiwibmFtZUtleSIsImlzRmF2b3JpdGUiLCJkZWxldGVkQXQiLCJ1cGRhdGVkQXQiLCJjdXJyZW50IiwiaGlzdG9yeSIsImdxbEZvbGRlclF1ZXJ5IiwibmFtZSIsImJyZWFkY3J1bWIiLCJwdWJLZXkiLCJncWxGb2xkZXJGdWxsUXVlcnkiLCJ2RmlsZXMiLCJwYXJlbnRGb2xkZXIiLCJzdWJmb2xkZXJzIiwiZ3FsVkZpbGVXaXRoRm9sZGVyUXVlcnkiLCJmb2xkZXIiLCJncWxNYWlsUXVlcnkiLCJ0eXBlIiwiYm9keSIsInN1YmplY3QiLCJvcGVuZWRBdCIsInJlY2lwaWVudHMiLCJyZWNpcGllbnQiLCJzZW5kZXIiLCJtYWlsSW50ZWdyaXR5IiwidGVtcG9yYXJ5UmVjaXBpZW50cyIsImhhc2giLCJoYXNoS2V5IiwicmVwbHlUbyIsIm1haWxJbnRlZ3JpdHlEcmFmdCIsImZpbGVzIiwiZmlsZUtleSIsImZpbGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sSUFBTUEsWUFBWSxHQUFHO0FBQzFCQyxFQUFBQSxFQUFFLEVBQUUsSUFEc0I7QUFFMUJDLEVBQUFBLElBQUksRUFBRSxJQUZvQjtBQUcxQkMsRUFBQUEsVUFBVSxFQUFFLElBSGM7QUFJMUJDLEVBQUFBLFNBQVMsRUFBRSxJQUplO0FBSzFCQyxFQUFBQSxHQUFHLEVBQUUsSUFMcUI7QUFNMUJDLEVBQUFBLFlB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QUFFVmMsTUFBQUEsU0FBUyxFQUFFLElBRkQ7QUFHVkMsTUFBQUEsUUFBUSxFQUFFLElBSEE7QUFJVkMsTUFBQUEsS0FBSyxFQUFFLElBSkc7QUFLVkMsTUFBQUEsU0FBUyxFQUFFO0FBTEQsS0FKTTtBQVdsQmpCLElBQUFBLEVBQUUsRUFBRSxJQVhjO0FBWWxCK0MsSUFBQUEsSUFBSSxFQUFFLElBWlk7QUFhbEJDLElBQUFBLE9BQU8sRUFBRSxJQWJTO0FBY2xCQyxJQUFBQSxPQUFPLEVBQUU7QUFDUGpELE1BQUFBLEVBQUUsRUFBRTtBQURHO0FBZFMsR0EvQ007QUFpRTFCbUQsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLE9BQU8sRUFBRSxJQURKO0FBRUx4QyxJQUFBQSxRQUFRLEVBQUUsSUFGTDtBQUdMeUMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pyRCxNQUFBQSxFQUFFLEVBQUU7QUFEQTtBQUhEO0FBakVtQixDQUFyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBncWxGaWxlUXVlcnkgPSB7XG4gIGlkOiB0cnVlLFxuICBzaXplOiB0cnVlLFxuICBzaXplQmVmb3JlOiB0cnVlLFxuICBjcmVhdGVkQXQ6IHRydWUsXG4gIG1kNTogdHJ1ZSxcbiAgbWQ1RW5jcnlwdGVkOiB0cnVlLFxuICB1c2VyOiB7XG4gICAga2V5OiB0cnVlLFxuICAgIHVzZXJBcHA6IHtcbiAgICAgIGtleVBhaXI6IHtcbiAgICAgICAgcHViOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgZ3FsVkZpbGVRdWVyeSA9IHtcbiAgaWQ6IHRydWUsXG4gIGZpbGVuYW1lOiB0cnVlLFxuICBjcmVhdGVkQnk6IHtcbiAgICB1c2VyOiB7XG4gICAgICBpZDogdHJ1ZSxcbiAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgZW1haWw6IHRydWUsXG4gICAgICBwdWJsaWNLZXk6IHRydWVcbiAgICB9XG4gIH0sXG4gIHVzZXJBcHBzOiB7XG4gICAgcmlnaHRzOiB0cnVlLFxuICAgIGlzUm9vdDogdHJ1ZSxcbiAgICB1c2VyQXBwOiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIGlkOiB0cnVlLFxuICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgcHVibGljS2V5OiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9LFxuICB1c2VyQXBwOiB7XG4gICAgdXNlckFwcDoge1xuICAgICAgdXNlcjoge1xuICAgICAgICBpZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgbmFtZUtleTogdHJ1ZSxcbiAgICByaWdodHM6IHRydWUsXG4gICAgaXNSb290OiB0cnVlXG4gIH0sXG4gIGlzRmF2b3JpdGU6IHRydWUsXG4gIGNyZWF0ZWRBdDogdHJ1ZSxcbiAgZGVsZXRlZEF0OiB0cnVlLFxuICB1cGRhdGVkQXQ6IHRydWUsXG4gIGN1cnJlbnQ6IHtcbiAgICAuLi5ncWxGaWxlUXVlcnlcbiAgfSxcbiAgaGlzdG9yeToge1xuICAgIC4uLmdxbEZpbGVRdWVyeVxuICB9XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgZ3FsRm9sZGVyUXVlcnkgPSB7XG4gIGlkOiB0cnVlLFxuICBpc0Zhdm9yaXRlOiB0cnVlLFxuICBjcmVhdGVkQXQ6IHRydWUsXG4gIGRlbGV0ZWRBdDogdHJ1ZSxcbiAgdXBkYXRlZEF0OiB0cnVlLFxuICBuYW1lOiB0cnVlLFxuICBjcmVhdGVkQnk6IHtcbiAgICB1c2VyOiB7XG4gICAgICBpZDogdHJ1ZSxcbiAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgZW1haWw6IHRydWUsXG4gICAgICBwdWJsaWNLZXk6IHRydWVcbiAgICB9XG4gIH0sXG4gIHVzZXJBcHBzOiB7XG4gICAgcmlnaHRzOiB0cnVlLFxuICAgIGlzUm9vdDogdHJ1ZSxcbiAgICB1c2VyQXBwOiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIGlkOiB0cnVlLFxuICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgcHVibGljS2V5OiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9LFxuICB1c2VyQXBwOiB7XG4gICAgdXNlckFwcDoge1xuICAgICAgdXNlcjoge1xuICAgICAgICBpZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgbmFtZUtleTogdHJ1ZSxcbiAgICByaWdodHM6IHRydWUsXG4gICAgaXNSb290OiB0cnVlXG4gIH0sXG4gIGJyZWFkY3J1bWI6IHtcbiAgICBpZDogdHJ1ZSxcbiAgICBuYW1lOiB0cnVlLFxuICAgIG5hbWVLZXk6IHRydWUsXG4gICAgcHViS2V5OiB0cnVlXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBncWxGb2xkZXJGdWxsUXVlcnkgPSB7XG4gIC4uLmdxbEZvbGRlclF1ZXJ5LFxuICB2RmlsZXM6IHtcbiAgICAuLi5ncWxWRmlsZVF1ZXJ5XG4gIH0sXG4gIHBhcmVudEZvbGRlcjogZ3FsRm9sZGVyUXVlcnksXG4gIHN1YmZvbGRlcnM6IGdxbEZvbGRlclF1ZXJ5XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgZ3FsVkZpbGVXaXRoRm9sZGVyUXVlcnkgPSB7XG4gIC4uLmdxbFZGaWxlUXVlcnksXG4gIGZvbGRlcjoge1xuICAgIC4uLmdxbEZvbGRlclF1ZXJ5XG4gIH1cbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBncWxNYWlsUXVlcnkgPSB7XG4gIGlkOiB0cnVlLFxuICB0eXBlOiB0cnVlLFxuICBib2R5OiB0cnVlLFxuICBzdWJqZWN0OiB0cnVlLFxuICBvcGVuZWRBdDogdHJ1ZSxcbiAgY3JlYXRlZEF0OiB0cnVlLFxuICBkZWxldGVkQXQ6IHRydWUsXG4gIHJlY2lwaWVudHM6IHtcbiAgICBpZDogdHJ1ZSxcbiAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgbGFzdG5hbWU6IHRydWUsXG4gICAgZW1haWw6IHRydWUsXG4gICAgcHVibGljS2V5OiB0cnVlXG4gIH0sXG4gIHJlY2lwaWVudDoge1xuICAgIGlkOiB0cnVlLFxuICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICBlbWFpbDogdHJ1ZSxcbiAgICBwdWJsaWNLZXk6IHRydWVcbiAgfSxcbiAgc2VuZGVyOiB7XG4gICAgaWQ6IHRydWUsXG4gICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgIGVtYWlsOiB0cnVlLFxuICAgIHB1YmxpY0tleTogdHJ1ZVxuICB9LFxuICBtYWlsSW50ZWdyaXR5OiB7XG4gICAgdGVtcG9yYXJ5UmVjaXBpZW50czoge1xuICAgICAgZW1haWw6IHRydWVcbiAgICB9LFxuICAgIHJlY2lwaWVudHM6IHtcbiAgICAgIGlkOiB0cnVlLFxuICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgIHB1YmxpY0tleTogdHJ1ZVxuICAgIH0sXG4gICAgaWQ6IHRydWUsXG4gICAgaGFzaDogdHJ1ZSxcbiAgICBoYXNoS2V5OiB0cnVlLFxuICAgIHJlcGx5VG86IHtcbiAgICAgIGlkOiB0cnVlXG4gICAgfVxuICB9LFxuICBtYWlsSW50ZWdyaXR5RHJhZnQ6IHtcbiAgICB0ZW1wb3JhcnlSZWNpcGllbnRzOiB7XG4gICAgICBlbWFpbDogdHJ1ZVxuICAgIH0sXG4gICAgcmVjaXBpZW50czoge1xuICAgICAgaWQ6IHRydWUsXG4gICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgcHVibGljS2V5OiB0cnVlXG4gICAgfSxcbiAgICBpZDogdHJ1ZSxcbiAgICBoYXNoOiB0cnVlLFxuICAgIGhhc2hLZXk6IHRydWUsXG4gICAgcmVwbHlUbzoge1xuICAgICAgaWQ6IHRydWVcbiAgICB9XG4gIH0sXG4gIGZpbGVzOiB7XG4gICAgZmlsZUtleTogdHJ1ZSxcbiAgICBmaWxlbmFtZTogdHJ1ZSxcbiAgICBmaWxlOiB7XG4gICAgICBpZDogdHJ1ZVxuICAgIH1cbiAgfVxufSBhcyBjb25zdDtcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ export declare type EncryptedFile = {
2
+ data: Uint8Array;
3
+ md5: string;
4
+ md5Encrypted: string;
5
+ };
6
+ export declare function secretstreamKeygen(): Uint8Array;
7
+ export declare const CHUNK_SIZE = 8192;
8
+ export declare type Progress = {
9
+ percent: number;
10
+ total: number;
11
+ current: number;
12
+ };
13
+ export declare function encryptSecretstream(key: Uint8Array, data: Uint8Array, progress?: (progress: Progress) => Promise<void>, abort?: AbortController): Promise<EncryptedFile>;
14
+ export declare function decryptSecretstream(key: Uint8Array, data: Uint8Array, progress?: (progress: Progress) => Promise<void>, abort?: AbortController): Promise<Uint8Array>;
@@ -0,0 +1,291 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+
4
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+
6
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7
+
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
9
+
10
+ import { setup, sodium } from "../sodium.js";
11
+ import SparkMD5 from "spark-md5";
12
+ import { chunks } from "../utils.js";
13
+
14
+ function assert(c, message) {
15
+ if (!c) {
16
+ throw new Error(message);
17
+ }
18
+ }
19
+
20
+ export function secretstreamKeygen() {
21
+ return sodium.crypto_secretstream_xchacha20poly1305_keygen();
22
+ }
23
+
24
+ function encrypt(key) {
25
+ var destroyed = false;
26
+
27
+ var _sodium$crypto_secret = sodium.crypto_secretstream_xchacha20poly1305_init_push(key),
28
+ state = _sodium$crypto_secret.state,
29
+ header = _sodium$crypto_secret.header;
30
+
31
+ var encrypt = function encrypt(tag, plaintext) {
32
+ assert(destroyed === false, "state already destroyed");
33
+ return sodium.crypto_secretstream_xchacha20poly1305_push(state, plaintext, null, tag);
34
+ };
35
+
36
+ function destroy() {
37
+ assert(destroyed === false, "state already destroyed");
38
+ destroyed = true;
39
+ }
40
+
41
+ return {
42
+ encrypt: encrypt,
43
+ destroy: destroy,
44
+ header: header
45
+ };
46
+ }
47
+
48
+ function decrypt(header, key) {
49
+ assert(header.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES, "header must be at least HEADERBYTES (" + sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES + ") long");
50
+ assert(key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES, "key must be at least KEYBYTES (" + sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES + ") long");
51
+ var destroyed = false;
52
+ var state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(header, key);
53
+
54
+ var decrypt = function decrypt(ciphertext) {
55
+ assert(destroyed === false, "state already destroyed");
56
+ return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);
57
+ };
58
+
59
+ function destroy() {
60
+ assert(destroyed === false, "state already destroyed");
61
+ destroyed = true;
62
+ }
63
+
64
+ return {
65
+ decrypt: decrypt,
66
+ destroy: destroy
67
+ };
68
+ }
69
+
70
+ export var CHUNK_SIZE = 8192;
71
+ export function encryptSecretstream(_x, _x2, _x3, _x4) {
72
+ return _encryptSecretstream.apply(this, arguments);
73
+ }
74
+
75
+ function _encryptSecretstream() {
76
+ _encryptSecretstream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(key, data, progress, abort) {
77
+ var _encrypt, crypt, destroy, header, cryptedChunk, max, final, sparkEncrypted, spark, total, lastPercent, _iterator, _step, chunk, _tag, crypted, percent;
78
+
79
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
80
+ while (1) {
81
+ switch (_context.prev = _context.next) {
82
+ case 0:
83
+ _context.next = 2;
84
+ return setup();
85
+
86
+ case 2:
87
+ _encrypt = encrypt(key), crypt = _encrypt.encrypt, destroy = _encrypt.destroy, header = _encrypt.header;
88
+ cryptedChunk = CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;
89
+ max = Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;
90
+ progress == null ? void 0 : progress({
91
+ percent: 0,
92
+ total: max,
93
+ current: 0
94
+ });
95
+ final = new Uint8Array(max);
96
+ sparkEncrypted = new SparkMD5.ArrayBuffer();
97
+ spark = new SparkMD5.ArrayBuffer();
98
+ final.set(header);
99
+ sparkEncrypted.append(header);
100
+ total = header.byteLength;
101
+ progress == null ? void 0 : progress({
102
+ percent: total / max,
103
+ total: max,
104
+ current: total
105
+ });
106
+ lastPercent = total / max;
107
+ _iterator = _createForOfIteratorHelperLoose(chunks(data, CHUNK_SIZE));
108
+
109
+ case 15:
110
+ if ((_step = _iterator()).done) {
111
+ _context.next = 29;
112
+ break;
113
+ }
114
+
115
+ chunk = _step.value;
116
+
117
+ if (!(abort != null && abort.signal.aborted)) {
118
+ _context.next = 19;
119
+ break;
120
+ }
121
+
122
+ throw new Error("Encrypt aborted");
123
+
124
+ case 19:
125
+ spark.append(chunk);
126
+ _tag = chunk.length < CHUNK_SIZE ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;
127
+ crypted = crypt(_tag, chunk);
128
+ sparkEncrypted.append(crypted);
129
+ final.set(crypted, total);
130
+ total += crypted.byteLength;
131
+ percent = total / max;
132
+
133
+ if (percent > lastPercent + 0.01) {
134
+ progress == null ? void 0 : progress({
135
+ percent: percent,
136
+ total: max,
137
+ current: total
138
+ });
139
+ lastPercent = percent;
140
+ }
141
+
142
+ case 27:
143
+ _context.next = 15;
144
+ break;
145
+
146
+ case 29:
147
+ destroy();
148
+ progress == null ? void 0 : progress({
149
+ percent: 1,
150
+ total: total,
151
+ current: total
152
+ });
153
+ return _context.abrupt("return", {
154
+ data: final.slice(0, total),
155
+ md5Encrypted: sparkEncrypted.end(),
156
+ md5: spark.end()
157
+ });
158
+
159
+ case 32:
160
+ case "end":
161
+ return _context.stop();
162
+ }
163
+ }
164
+ }, _callee);
165
+ }));
166
+ return _encryptSecretstream.apply(this, arguments);
167
+ }
168
+
169
+ export function decryptSecretstream(_x5, _x6, _x7, _x8) {
170
+ return _decryptSecretstream.apply(this, arguments);
171
+ } // async function mainSecretstream(random: Uint8Array): Promise<void> {
172
+ // const key = secretstreamKeygen();
173
+ // console.time("secretstream_encrypt");
174
+ // const crypted = encryptSecretstream(key, random);
175
+ // console.timeEnd("secretstream_encrypt");
176
+ // console.time("secretstream_decrypt");
177
+ // const decrypted = decryptSecretstream(key, crypted);
178
+ // console.timeEnd("secretstream_decrypt");
179
+ // const first = to_hex(random).slice(0, 32);
180
+ // const final = to_hex(decrypted).slice(0, 32);
181
+ // console.log({
182
+ // first,
183
+ // final,
184
+ // equals: first === final
185
+ // });
186
+ // }
187
+ // async function mainSecretbox(random: Uint8Array): Promise<void> {
188
+ // const key = generateSecretBox();
189
+ // console.time("secretbox_encrypt");
190
+ // const crypted = encryptFile(random, key);
191
+ // console.timeEnd("secretbox_encrypt");
192
+ // console.time("secretbox_decrypt");
193
+ // const decrypted = decryptFile(crypted, key);
194
+ // console.timeEnd("secretbox_decrypt");
195
+ // const first = to_hex(random).slice(0, 32);
196
+ // const final = to_hex(decrypted).slice(0, 32);
197
+ // console.log({
198
+ // first,
199
+ // final,
200
+ // equals: first === final
201
+ // });
202
+ // }
203
+ // async function main(): Promise<void> {
204
+ // await ready;
205
+ // console.time("randombytes_buf");
206
+ // const random = randombytes_buf(1_000_000 * 1024);
207
+ // console.timeEnd("randombytes_buf");
208
+ // await Promise.all([mainSecretstream(random), mainSecretbox(random)]);
209
+ // }
210
+ // main();
211
+
212
+ function _decryptSecretstream() {
213
+ _decryptSecretstream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(key, data, progress, abort) {
214
+ var header, _decrypt, decryptt, destroy, chunkSize, max, final, total, lastPercent, _iterator2, _step2, chunk, tmp, percent;
215
+
216
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
217
+ while (1) {
218
+ switch (_context2.prev = _context2.next) {
219
+ case 0:
220
+ _context2.next = 2;
221
+ return setup();
222
+
223
+ case 2:
224
+ header = data.slice(0, sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);
225
+ data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);
226
+ _decrypt = decrypt(header, key), decryptt = _decrypt.decrypt, destroy = _decrypt.destroy;
227
+ chunkSize = CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;
228
+ max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;
229
+ progress == null ? void 0 : progress({
230
+ percent: 0,
231
+ total: max,
232
+ current: 0
233
+ });
234
+ final = new Uint8Array(max);
235
+ total = 0;
236
+ lastPercent = total / max;
237
+ _iterator2 = _createForOfIteratorHelperLoose(chunks(data, chunkSize));
238
+
239
+ case 12:
240
+ if ((_step2 = _iterator2()).done) {
241
+ _context2.next = 23;
242
+ break;
243
+ }
244
+
245
+ chunk = _step2.value;
246
+
247
+ if (!(abort != null && abort.signal.aborted)) {
248
+ _context2.next = 16;
249
+ break;
250
+ }
251
+
252
+ throw new Error("Decrypt aborted");
253
+
254
+ case 16:
255
+ tmp = decryptt(chunk);
256
+ final.set(tmp.message, total);
257
+ total += tmp.message.byteLength;
258
+ percent = total / max;
259
+
260
+ if (percent > lastPercent + 0.01) {
261
+ progress == null ? void 0 : progress({
262
+ percent: percent,
263
+ total: max,
264
+ current: total
265
+ });
266
+ lastPercent = percent;
267
+ }
268
+
269
+ case 21:
270
+ _context2.next = 12;
271
+ break;
272
+
273
+ case 23:
274
+ destroy();
275
+ progress == null ? void 0 : progress({
276
+ percent: 1,
277
+ total: total,
278
+ current: total
279
+ });
280
+ return _context2.abrupt("return", final.slice(0, total));
281
+
282
+ case 26:
283
+ case "end":
284
+ return _context2.stop();
285
+ }
286
+ }
287
+ }, _callee2);
288
+ }));
289
+ return _decryptSecretstream.apply(this, arguments);
290
+ }
291
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jcnlwdG8vZmlsZS50cyJdLCJuYW1lcyI6WyJzZXR1cCIsInNvZGl1bSIsIlNwYXJrTUQ1IiwiY2h1bmtzIiwiYXNzZXJ0IiwiYyIsIm1lc3NhZ2UiLCJFcnJvciIsInNlY3JldHN0cmVhbUtleWdlbiIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfa2V5Z2VuIiwiZW5jcnlwdCIsImtleSIsImRlc3Ryb3llZCIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfaW5pdF9wdXNoIiwic3RhdGUiLCJoZWFkZXIiLCJ0YWciLCJwbGFpbnRleHQiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X3B1c2giLCJkZXN0cm95IiwiZGVjcnlwdCIsImJ5dGVMZW5ndGgiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTIiwiY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9LRVlCWVRFUyIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfaW5pdF9wdWxsIiwiY2lwaGVydGV4dCIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfcHVsbCIsIkNIVU5LX1NJWkUiLCJlbmNyeXB0U2VjcmV0c3RyZWFtIiwiZGF0YSIsInByb2dyZXNzIiwiYWJvcnQiLCJjcnlwdCIsImNyeXB0ZWRDaHVuayIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfQUJZVEVTIiwibWF4IiwiTWF0aCIsImNlaWwiLCJwZXJjZW50IiwidG90YWwiLCJjdXJyZW50IiwiZmluYWwiLCJVaW50OEFycmF5Iiwic3BhcmtFbmNyeXB0ZWQiLCJBcnJheUJ1ZmZlciIsInNwYXJrIiwic2V0IiwiYXBwZW5kIiwibGFzdFBlcmNlbnQiLCJjaHVuayIsInNpZ25hbCIsImFib3J0ZWQiLCJsZW5ndGgiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X1RBR19GSU5BTCIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfVEFHX01FU1NBR0UiLCJjcnlwdGVkIiwic2xpY2UiLCJtZDVFbmNyeXB0ZWQiLCJlbmQiLCJtZDUiLCJkZWNyeXB0U2VjcmV0c3RyZWFtIiwiZGVjcnlwdHQiLCJjaHVua1NpemUiLCJ0bXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLFNBQVNBLEtBQVQsRUFBZ0JDLE1BQWhCLFFBQThCLGNBQTlCO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixXQUFyQjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsYUFBdkI7O0FBUUEsU0FBU0MsTUFBVCxDQUFnQkMsQ0FBaEIsRUFBNEJDLE9BQTVCLEVBQW1EO0FBQ2pELE1BQUksQ0FBQ0QsQ0FBTCxFQUFRO0FBQ04sVUFBTSxJQUFJRSxLQUFKLENBQVVELE9BQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBTUQsT0FBTyxTQUFTRSxrQkFBVCxHQUEwQztBQUMvQyxTQUFPUCxNQUFNLENBQUNRLDRDQUFQLEVBQVA7QUFDRDs7QUFFRCxTQUFTQyxPQUFULENBQWlCQyxHQUFqQixFQUlFO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEtBQWhCOztBQUNBLDhCQUNFWCxNQUFNLENBQUNZLCtDQUFQLENBQXVERixHQUF2RCxDQURGO0FBQUEsTUFBUUcsS0FBUix5QkFBUUEsS0FBUjtBQUFBLE1BQWVDLE1BQWYseUJBQWVBLE1BQWY7O0FBR0EsTUFBTUwsT0FBa0IsR0FBRyxTQUFyQkEsT0FBcUIsQ0FBQ00sR0FBRCxFQUFNQyxTQUFOLEVBQW9CO0FBQzdDYixJQUFBQSxNQUFNLENBQUNRLFNBQVMsS0FBSyxLQUFmLEVBQXNCLHlCQUF0QixDQUFOO0FBRUEsV0FBT1gsTUFBTSxDQUFDaUIsMENBQVAsQ0FDTEosS0FESyxFQUVMRyxTQUZLLEVBR0wsSUFISyxFQUlMRCxHQUpLLENBQVA7QUFNRCxHQVREOztBQVdBLFdBQVNHLE9BQVQs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Q0FBLFlBQUFBLEtBQUssSUFBSXdCLEdBQUcsQ0FBQ3pELE9BQUosQ0FBWWUsVUFBckI7QUFDTWlCLFlBQUFBLE9BbkNILEdBbUNhQyxLQUFLLEdBQUdKLEdBbkNyQjs7QUFvQ0gsZ0JBQUlHLE9BQU8sR0FBR1UsV0FBVyxHQUFHLElBQTVCLEVBQWtDO0FBQ2hDbEIsY0FBQUEsUUFBUSxRQUFSLFlBQUFBLFFBQVEsQ0FBRztBQUNUUSxnQkFBQUEsT0FBTyxFQUFQQSxPQURTO0FBRVRDLGdCQUFBQSxLQUFLLEVBQUVKLEdBRkU7QUFHVEssZ0JBQUFBLE9BQU8sRUFBRUQ7QUFIQSxlQUFILENBQVI7QUFLQVMsY0FBQUEsV0FBVyxHQUFHVixPQUFkO0FBQ0Q7O0FBM0NFO0FBQUE7QUFBQTs7QUFBQTtBQThDTG5CLFlBQUFBLE9BQU87QUFDUFcsWUFBQUEsUUFBUSxRQUFSLFlBQUFBLFFBQVEsQ0FBRztBQUNUUSxjQUFBQSxPQUFPLEVBQUUsQ0FEQTtBQUVUQyxjQUFBQSxLQUFLLEVBQUxBLEtBRlM7QUFHVEMsY0FBQUEsT0FBTyxFQUFFRDtBQUhBLGFBQUgsQ0FBUjtBQS9DSyw4Q0FvREVFLEtBQUssQ0FBQ2UsS0FBTixDQUFZLENBQVosRUFBZWpCLEtBQWYsQ0FwREY7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWVzc2FnZVRhZyB9IGZyb20gXCJsaWJzb2RpdW0td3JhcHBlcnNcIjtcbmltcG9ydCB7IHNldHVwLCBzb2RpdW0gfSBmcm9tIFwiLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgU3BhcmtNRDUgZnJvbSBcInNwYXJrLW1kNVwiO1xuaW1wb3J0IHsgY2h1bmtzIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCB0eXBlIEVuY3J5cHRlZEZpbGUgPSB7XG4gIGRhdGE6IFVpbnQ4QXJyYXk7XG4gIG1kNTogc3RyaW5nO1xuICBtZDVFbmNyeXB0ZWQ6IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGFzc2VydChjOiBib29sZWFuLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFjKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9XG59XG5cbnR5cGUgRW5jcnlwdEZuID0gKHRhZzogbnVtYmVyLCBwbGFpbnRleHQ6IFVpbnQ4QXJyYXkpID0+IFVpbnQ4QXJyYXk7XG5cbnR5cGUgRGVjcnlwdEZuID0gKGNpcGhlcnRleHQ6IFVpbnQ4QXJyYXkpID0+IE1lc3NhZ2VUYWc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWNyZXRzdHJlYW1LZXlnZW4oKTogVWludDhBcnJheSB7XG4gIHJldHVybiBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9rZXlnZW4oKTtcbn1cblxuZnVuY3Rpb24gZW5jcnlwdChrZXk6IFVpbnQ4QXJyYXkpOiB7XG4gIGRlc3Ryb3k6ICgpID0+IHZvaWQ7XG4gIGVuY3J5cHQ6IEVuY3J5cHRGbjtcbiAgaGVhZGVyOiBVaW50OEFycmF5O1xufSB7XG4gIGxldCBkZXN0cm95ZWQgPSBmYWxzZTtcbiAgY29uc3QgeyBzdGF0ZSwgaGVhZGVyIH0gPVxuICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X2luaXRfcHVzaChrZXkpO1xuXG4gIGNvbnN0IGVuY3J5cHQ6IEVuY3J5cHRGbiA9ICh0YWcsIHBsYWludGV4dCkgPT4ge1xuICAgIGFzc2VydChkZXN0cm95ZWQgPT09IGZhbHNlLCBcInN0YXRlIGFscmVhZHkgZGVzdHJveWVkXCIpO1xuXG4gICAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X3B1c2goXG4gICAgICBzdGF0ZSxcbiAgICAgIHBsYWludGV4dCxcbiAgICAgIG51bGwsXG4gICAgICB0YWdcbiAgICApO1xuICB9O1xuXG4gIGZ1bmN0aW9uIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgYXNzZXJ0KGRlc3Ryb3llZCA9PT0gZmFsc2UsIFwic3RhdGUgYWxyZWFkeSBkZXN0cm95ZWRcIik7XG4gICAgZGVzdHJveWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW5jcnlwdCxcbiAgICBkZXN0cm95LFxuICAgIGhlYWRlclxuICB9O1xufVxuXG5mdW5jdGlvbiBkZWNyeXB0KFxuICBoZWFkZXI6IFVpbnQ4QXJyYXksXG4gIGtleTogVWludDhBcnJheVxuKToge1xuICBkZXN0cm95OiAoKSA9PiB2b2lkO1xuICBkZWNyeXB0OiBEZWNyeXB0Rm47XG59IHtcbiAgYXNzZXJ0KFxuICAgIGhlYWRlci5ieXRlTGVuZ3RoID49XG4gICAgICBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9IRUFERVJCWVRFUyxcbiAgICBgaGVhZGVyIG11c3QgYmUgYXQgbGVhc3QgSEVBREVSQllURVMgKCR7c29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfSEVBREVSQllURVN9KSBsb25nYFxuICApO1xuICBhc3NlcnQoXG4gICAga2V5LmJ5dGVMZW5ndGggPj0gc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfS0VZQllURVMsXG4gICAgYGtleSBtdXN0IGJlIGF0IGxlYXN0IEtFWUJZVEVTICgke3NvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0tFWUJZVEVTfSkgbG9uZ2BcbiAgKTtcblxuICBsZXQgZGVzdHJveWVkID0gZmFsc2U7XG4gIGNvbnN0IHN0YXRlID0gc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfaW5pdF9wdWxsKFxuICAgIGhlYWRlcixcbiAgICBrZXlcbiAgKTtcblxuICBjb25zdCBkZWNyeXB0OiBEZWNyeXB0Rm4gPSBjaXBoZXJ0ZXh0ID0+IHtcbiAgICBhc3NlcnQoZGVzdHJveWVkID09PSBmYWxzZSwgXCJzdGF0ZSBhbHJlYWR5IGRlc3Ryb3llZFwiKTtcblxuICAgIHJldHVybiBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9wdWxsKHN0YXRlLCBjaXBoZXJ0ZXh0KTtcbiAgfTtcblxuICBmdW5jdGlvbiBkZXN0cm95KCk6IHZvaWQge1xuICAgIGFzc2VydChkZXN0cm95ZWQgPT09IGZhbHNlLCBcInN0YXRlIGFscmVhZHkgZGVzdHJveWVkXCIpO1xuICAgIGRlc3Ryb3llZCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRlY3J5cHQsXG4gICAgZGVzdHJveVxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgQ0hVTktfU0laRSA9IDgxOTI7XG5cbmV4cG9ydCB0eXBlIFByb2dyZXNzID0ge1xuICBwZXJjZW50OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG4gIGN1cnJlbnQ6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmNyeXB0U2VjcmV0c3RyZWFtKFxuICBrZXk6IFVpbnQ4QXJyYXksXG4gIGRhdGE6IFVpbnQ4QXJyYXksXG4gIHByb2dyZXNzPzogKHByb2dyZXNzOiBQcm9ncmVzcykgPT4gUHJvbWlzZTx2b2lkPixcbiAgYWJvcnQ/OiBBYm9ydENvbnRyb2xsZXJcbik6IFByb21pc2U8RW5jcnlwdGVkRmlsZT4ge1xuICBhd2FpdCBzZXR1cCgpO1xuICBjb25zdCB7IGVuY3J5cHQ6IGNyeXB0LCBkZXN0cm95LCBoZWFkZXIgfSA9IGVuY3J5cHQoa2V5KTtcbiAgY29uc3QgY3J5cHRlZENodW5rID1cbiAgICBDSFVOS19TSVpFICsgc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfQUJZVEVTO1xuICBjb25zdCBtYXggPVxuICAgIE1hdGguY2VpbChkYXRhLmJ5dGVMZW5ndGggLyBDSFVOS19TSVpFKSAqIGNyeXB0ZWRDaHVuayArIGhlYWRlci5ieXRlTGVuZ3RoO1xuXG4gIHByb2dyZXNzPy4oe1xuICAgIHBlcmNlbnQ6IDAsXG4gICAgdG90YWw6IG1heCxcbiAgICBjdXJyZW50OiAwXG4gIH0pO1xuICBjb25zdCBmaW5hbCA9IG5ldyBVaW50OEFycmF5KG1heCk7XG4gIGNvbnN0IHNwYXJrRW5jcnlwdGVkID0gbmV3IFNwYXJrTUQ1LkFycmF5QnVmZmVyKCk7XG4gIGNvbnN0IHNwYXJrID0gbmV3IFNwYXJrTUQ1LkFycmF5QnVmZmVyKCk7XG5cbiAgZmluYWwuc2V0KGhlYWRlcik7XG4gIHNwYXJrRW5jcnlwdGVkLmFwcGVuZChoZWFkZXIpO1xuICBsZXQgdG90YWwgPSBoZWFkZXIuYnl0ZUxlbmd0aDtcbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogdG90YWwgLyBtYXgsXG4gICAgdG90YWw6IG1heCxcbiAgICBjdXJyZW50OiB0b3RhbFxuICB9KTtcbiAgbGV0IGxhc3RQZXJjZW50ID0gdG90YWwgLyBtYXg7XG5cbiAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua3MoZGF0YSwgQ0hVTktfU0laRSkpIHtcbiAgICBpZiAoYWJvcnQ/LnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVuY3J5cHQgYWJvcnRlZGApO1xuICAgIH1cbiAgICBzcGFyay5hcHBlbmQoY2h1bmspO1xuICAgIGNvbnN0IHRhZyA9XG4gICAgICBjaHVuay5sZW5ndGggPCBDSFVOS19TSVpFXG4gICAgICAgID8gc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfVEFHX0ZJTkFMXG4gICAgICAgIDogc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfVEFHX01FU1NBR0U7XG4gICAgY29uc3QgY3J5cHRlZCA9IGNyeXB0KHRhZywgY2h1bmspO1xuICAgIHNwYXJrRW5jcnlwdGVkLmFwcGVuZChjcnlwdGVkKTtcbiAgICBmaW5hbC5zZXQoY3J5cHRlZCwgdG90YWwpO1xuICAgIHRvdGFsICs9IGNyeXB0ZWQuYnl0ZUxlbmd0aDtcbiAgICBjb25zdCBwZXJjZW50ID0gdG90YWwgLyBtYXg7XG4gICAgaWYgKHBlcmNlbnQgPiBsYXN0UGVyY2VudCArIDAuMDEpIHtcbiAgICAgIHByb2dyZXNzPy4oe1xuICAgICAgICBwZXJjZW50LFxuICAgICAgICB0b3RhbDogbWF4LFxuICAgICAgICBjdXJyZW50OiB0b3RhbFxuICAgICAgfSk7XG4gICAgICBsYXN0UGVyY2VudCA9IHBlcmNlbnQ7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpO1xuICBwcm9ncmVzcz8uKHtcbiAgICBwZXJjZW50OiAxLFxuICAgIHRvdGFsLFxuICAgIGN1cnJlbnQ6IHRvdGFsXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGRhdGE6IGZpbmFsLnNsaWNlKDAsIHRvdGFsKSxcbiAgICBtZDVFbmNyeXB0ZWQ6IHNwYXJrRW5jcnlwdGVkLmVuZCgpLFxuICAgIG1kNTogc3BhcmsuZW5kKClcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHRTZWNyZXRzdHJlYW0oXG4gIGtleTogVWludDhBcnJheSxcbiAgZGF0YTogVWludDhBcnJheSxcbiAgcHJvZ3Jlc3M/OiAocHJvZ3Jlc3M6IFByb2dyZXNzKSA9PiBQcm9taXNlPHZvaWQ+LFxuICBhYm9ydD86IEFib3J0Q29udHJvbGxlclxuKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIGF3YWl0IHNldHVwKCk7XG4gIGNvbnN0IGhlYWRlciA9IGRhdGEuc2xpY2UoXG4gICAgMCxcbiAgICBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9IRUFERVJCWVRFU1xuICApO1xuICBkYXRhID0gZGF0YS5zbGljZShzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9IRUFERVJCWVRFUyk7XG5cbiAgY29uc3QgeyBkZWNyeXB0OiBkZWNyeXB0dCwgZGVzdHJveSB9ID0gZGVjcnlwdChoZWFkZXIsIGtleSk7XG4gIGNvbnN0IGNodW5rU2l6ZSA9XG4gICAgQ0hVTktfU0laRSArIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0FCWVRFUztcbiAgY29uc3QgbWF4ID0gTWF0aC5jZWlsKGRhdGEuYnl0ZUxlbmd0aCAvIGNodW5rU2l6ZSkgKiBDSFVOS19TSVpFO1xuXG4gIHByb2dyZXNzPy4oe1xuICAgIHBlcmNlbnQ6IDAsXG4gICAgdG90YWw6IG1heCxcbiAgICBjdXJyZW50OiAwXG4gIH0pO1xuICBjb25zdCBmaW5hbCA9IG5ldyBVaW50OEFycmF5KG1heCk7XG4gIGxldCB0b3RhbCA9IDA7XG5cbiAgbGV0IGxhc3RQZXJjZW50ID0gdG90YWwgLyBtYXg7XG5cbiAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua3MoZGF0YSwgY2h1bmtTaXplKSkge1xuICAgIGlmIChhYm9ydD8uc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRGVjcnlwdCBhYm9ydGVkYCk7XG4gICAgfVxuICAgIGNvbnN0IHRtcCA9IGRlY3J5cHR0KGNodW5rKTtcbiAgICBmaW5hbC5zZXQodG1wLm1lc3NhZ2UsIHRvdGFsKTtcbiAgICB0b3RhbCArPSB0bXAubWVzc2FnZS5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IHBlcmNlbnQgPSB0b3RhbCAvIG1heDtcbiAgICBpZiAocGVyY2VudCA+IGxhc3RQZXJjZW50ICsgMC4wMSkge1xuICAgICAgcHJvZ3Jlc3M/Lih7XG4gICAgICAgIHBlcmNlbnQsXG4gICAgICAgIHRvdGFsOiBtYXgsXG4gICAgICAgIGN1cnJlbnQ6IHRvdGFsXG4gICAgICB9KTtcbiAgICAgIGxhc3RQZXJjZW50ID0gcGVyY2VudDtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCk7XG4gIHByb2dyZXNzPy4oe1xuICAgIHBlcmNlbnQ6IDEsXG4gICAgdG90YWwsXG4gICAgY3VycmVudDogdG90YWxcbiAgfSk7XG4gIHJldHVybiBmaW5hbC5zbGljZSgwLCB0b3RhbCk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIG1haW5TZWNyZXRzdHJlYW0ocmFuZG9tOiBVaW50OEFycmF5KTogUHJvbWlzZTx2b2lkPiB7XG4vLyAgIGNvbnN0IGtleSA9IHNlY3JldHN0cmVhbUtleWdlbigpO1xuLy8gICBjb25zb2xlLnRpbWUoXCJzZWNyZXRzdHJlYW1fZW5jcnlwdFwiKTtcbi8vICAgY29uc3QgY3J5cHRlZCA9IGVuY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCByYW5kb20pO1xuLy8gICBjb25zb2xlLnRpbWVFbmQoXCJzZWNyZXRzdHJlYW1fZW5jcnlwdFwiKTtcbi8vICAgY29uc29sZS50aW1lKFwic2VjcmV0c3RyZWFtX2RlY3J5cHRcIik7XG4vLyAgIGNvbnN0IGRlY3J5cHRlZCA9IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBjcnlwdGVkKTtcbi8vICAgY29uc29sZS50aW1lRW5kKFwic2VjcmV0c3RyZWFtX2RlY3J5cHRcIik7XG4vLyAgIGNvbnN0IGZpcnN0ID0gdG9faGV4KHJhbmRvbSkuc2xpY2UoMCwgMzIpO1xuLy8gICBjb25zdCBmaW5hbCA9IHRvX2hleChkZWNyeXB0ZWQpLnNsaWNlKDAsIDMyKTtcbi8vICAgY29uc29sZS5sb2coe1xuLy8gICAgIGZpcnN0LFxuLy8gICAgIGZpbmFsLFxuLy8gICAgIGVxdWFsczogZmlyc3QgPT09IGZpbmFsXG4vLyAgIH0pO1xuLy8gfVxuLy8gYXN5bmMgZnVuY3Rpb24gbWFpblNlY3JldGJveChyYW5kb206IFVpbnQ4QXJyYXkpOiBQcm9taXNlPHZvaWQ+IHtcbi8vICAgY29uc3Qga2V5ID0gZ2VuZXJhdGVTZWNyZXRCb3goKTtcbi8vICAgY29uc29sZS50aW1lKFwic2VjcmV0Ym94X2VuY3J5cHRcIik7XG4vLyAgIGNvbnN0IGNyeXB0ZWQgPSBlbmNyeXB0RmlsZShyYW5kb20sIGtleSk7XG4vLyAgIGNvbnNvbGUudGltZUVuZChcInNlY3JldGJveF9lbmNyeXB0XCIpO1xuLy8gICBjb25zb2xlLnRpbWUoXCJzZWNyZXRib3hfZGVjcnlwdFwiKTtcbi8vICAgY29uc3QgZGVjcnlwdGVkID0gZGVjcnlwdEZpbGUoY3J5cHRlZCwga2V5KTtcbi8vICAgY29uc29sZS50aW1lRW5kKFwic2VjcmV0Ym94X2RlY3J5cHRcIik7XG4vLyAgIGNvbnN0IGZpcnN0ID0gdG9faGV4KHJhbmRvbSkuc2xpY2UoMCwgMzIpO1xuLy8gICBjb25zdCBmaW5hbCA9IHRvX2hleChkZWNyeXB0ZWQpLnNsaWNlKDAsIDMyKTtcbi8vICAgY29uc29sZS5sb2coe1xuLy8gICAgIGZpcnN0LFxuLy8gICAgIGZpbmFsLFxuLy8gICAgIGVxdWFsczogZmlyc3QgPT09IGZpbmFsXG4vLyAgIH0pO1xuLy8gfVxuXG4vLyBhc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4ge1xuLy8gICBhd2FpdCByZWFkeTtcbi8vICAgY29uc29sZS50aW1lKFwicmFuZG9tYnl0ZXNfYnVmXCIpO1xuLy8gICBjb25zdCByYW5kb20gPSByYW5kb21ieXRlc19idWYoMV8wMDBfMDAwICogMTAyNCk7XG4vLyAgIGNvbnNvbGUudGltZUVuZChcInJhbmRvbWJ5dGVzX2J1ZlwiKTtcbi8vICAgYXdhaXQgUHJvbWlzZS5hbGwoW21haW5TZWNyZXRzdHJlYW0ocmFuZG9tKSwgbWFpblNlY3JldGJveChyYW5kb20pXSk7XG4vLyB9XG5cbi8vIG1haW4oKTtcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export interface KeyPair {
2
+ publicKey: string;
3
+ privateKey: string;
4
+ }
5
+ export declare function encryptCryptoBox(data: Uint8Array, publicKeyBob: string, privateKeyAlice: string): Uint8Array;
6
+ export declare function generateCryptoBoxKeyPair(): KeyPair;
7
+ export declare function decryptCryptoBox(data: Uint8Array, publicKeyAlice: string, privateKeyBob: string): Uint8Array;
8
+ export declare function generateSecretBoxKey(): string;
9
+ export declare function encryptSecretBox(data: Uint8Array, key: string): Uint8Array;
10
+ export declare function decryptSecretBox(data: Uint8Array, key: string): Uint8Array;
11
+ export declare function encryptAnonymous(data: Uint8Array, receiverPublicKey: string): Uint8Array;
12
+ export declare function decryptAnonymous(data: Uint8Array, { privateKey, publicKey }: KeyPair): Uint8Array;
@@ -0,0 +1,45 @@
1
+ import { concatenate } from "../utils.js";
2
+ import { sodium } from "../sodium.js";
3
+ export function encryptCryptoBox(data, publicKeyBob, privateKeyAlice) {
4
+ var nonce = sodium.randombytes_buf(sodium.crypto_box_NONCEBYTES);
5
+ var crypt = sodium.crypto_box_easy(data, nonce, sodium.from_hex(publicKeyBob), sodium.from_hex(privateKeyAlice));
6
+ return concatenate(nonce, crypt);
7
+ }
8
+ export function generateCryptoBoxKeyPair() {
9
+ return sodium.crypto_box_keypair("hex");
10
+ }
11
+ export function decryptCryptoBox(data, publicKeyAlice, privateKeyBob) {
12
+ if (data.length < sodium.crypto_box_NONCEBYTES + sodium.crypto_box_MACBYTES) {
13
+ throw "data too short";
14
+ }
15
+
16
+ var nonce = data.slice(0, sodium.crypto_box_NONCEBYTES);
17
+ var cipher = data.slice(sodium.crypto_box_NONCEBYTES);
18
+ return sodium.crypto_box_open_easy(cipher, nonce, sodium.from_hex(publicKeyAlice), sodium.from_hex(privateKeyBob));
19
+ }
20
+ export function generateSecretBoxKey() {
21
+ return sodium.randombytes_buf(sodium.crypto_secretbox_KEYBYTES, "hex");
22
+ }
23
+ export function encryptSecretBox(data, key) {
24
+ var nonce = sodium.randombytes_buf(sodium.crypto_secretbox_NONCEBYTES);
25
+ var crypt = sodium.crypto_secretbox_easy(data, nonce, sodium.from_hex(key));
26
+ return concatenate(nonce, crypt);
27
+ }
28
+ export function decryptSecretBox(data, key) {
29
+ if (data.length < sodium.crypto_secretbox_NONCEBYTES + sodium.crypto_secretbox_MACBYTES) {
30
+ throw "data too short";
31
+ }
32
+
33
+ var nonce = data.slice(0, sodium.crypto_secretbox_NONCEBYTES);
34
+ var cipher = data.slice(sodium.crypto_secretbox_NONCEBYTES);
35
+ return sodium.crypto_secretbox_open_easy(cipher, nonce, sodium.from_hex(key));
36
+ }
37
+ export function encryptAnonymous(data, receiverPublicKey) {
38
+ return sodium.crypto_box_seal(data, sodium.from_hex(receiverPublicKey));
39
+ }
40
+ export function decryptAnonymous(data, _ref) {
41
+ var privateKey = _ref.privateKey,
42
+ publicKey = _ref.publicKey;
43
+ return sodium.crypto_box_seal_open(data, sodium.from_hex(publicKey), sodium.from_hex(privateKey));
44
+ }
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jcnlwdG8vaW5kZXgudHMiXSwibmFtZXMiOlsiY29uY2F0ZW5hdGUiLCJzb2RpdW0iLCJlbmNyeXB0Q3J5cHRvQm94IiwiZGF0YSIsInB1YmxpY0tleUJvYiIsInByaXZhdGVLZXlBbGljZSIsIm5vbmNlIiwicmFuZG9tYnl0ZXNfYnVmIiwiY3J5cHRvX2JveF9OT05DRUJZVEVTIiwiY3J5cHQiLCJjcnlwdG9fYm94X2Vhc3kiLCJmcm9tX2hleCIsImdlbmVyYXRlQ3J5cHRvQm94S2V5UGFpciIsImNyeXB0b19ib3hfa2V5cGFpciIsImRlY3J5cHRDcnlwdG9Cb3giLCJwdWJsaWNLZXlBbGljZSIsInByaXZhdGVLZXlCb2IiLCJsZW5ndGgiLCJjcnlwdG9fYm94X01BQ0JZVEVTIiwic2xpY2UiLCJjaXBoZXIiLCJjcnlwdG9fYm94X29wZW5fZWFzeSIsImdlbmVyYXRlU2VjcmV0Qm94S2V5IiwiY3J5cHRvX3NlY3JldGJveF9LRVlCWVRFUyIsImVuY3J5cHRTZWNyZXRCb3giLCJrZXkiLCJjcnlwdG9fc2VjcmV0Ym94X05PTkNFQllURVMiLCJjcnlwdG9fc2VjcmV0Ym94X2Vhc3kiLCJkZWNyeXB0U2VjcmV0Qm94IiwiY3J5cHRvX3NlY3JldGJveF9NQUNCWVRFUyIsImNyeXB0b19zZWNyZXRib3hfb3Blbl9lYXN5IiwiZW5jcnlwdEFub255bW91cyIsInJlY2VpdmVyUHVibGljS2V5IiwiY3J5cHRvX2JveF9zZWFsIiwiZGVjcnlwdEFub255bW91cyIsInByaXZhdGVLZXkiLCJwdWJsaWNLZXkiLCJjcnlwdG9fYm94X3NlYWxfb3BlbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVCxRQUE0QixhQUE1QjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsY0FBdkI7QUFPQSxPQUFPLFNBQVNDLGdCQUFULENBQ0xDLElBREssRUFFTEMsWUFGSyxFQUdMQyxlQUhLLEVBSU87QUFDWixNQUFNQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sZUFBUCxD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LE1BREVDLFNBQ0YsUUFERUEsU0FDRjtBQUNaLFNBQU9uQyxNQUFNLENBQUNvQyxvQkFBUCxDQUNMbEMsSUFESyxFQUVMRixNQUFNLENBQUNVLFFBQVAsQ0FBZ0J5QixTQUFoQixDQUZLLEVBR0xuQyxNQUFNLENBQUNVLFFBQVAsQ0FBZ0J3QixVQUFoQixDQUhLLENBQVA7QUFLRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmNhdGVuYXRlIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vc29kaXVtLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5UGFpciB7XG4gIHB1YmxpY0tleTogc3RyaW5nO1xuICBwcml2YXRlS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNyeXB0Q3J5cHRvQm94KFxuICBkYXRhOiBVaW50OEFycmF5LFxuICBwdWJsaWNLZXlCb2I6IHN0cmluZyxcbiAgcHJpdmF0ZUtleUFsaWNlOiBzdHJpbmdcbik6IFVpbnQ4QXJyYXkge1xuICBjb25zdCBub25jZSA9IHNvZGl1bS5yYW5kb21ieXRlc19idWYoc29kaXVtLmNyeXB0b19ib3hfTk9OQ0VCWVRFUyk7XG4gIGNvbnN0IGNyeXB0ID0gc29kaXVtLmNyeXB0b19ib3hfZWFzeShcbiAgICBkYXRhLFxuICAgIG5vbmNlLFxuICAgIHNvZGl1bS5mcm9tX2hleChwdWJsaWNLZXlCb2IpLFxuICAgIHNvZGl1bS5mcm9tX2hleChwcml2YXRlS2V5QWxpY2UpXG4gICk7XG4gIHJldHVybiBjb25jYXRlbmF0ZShub25jZSwgY3J5cHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDcnlwdG9Cb3hLZXlQYWlyKCk6IEtleVBhaXIge1xuICByZXR1cm4gc29kaXVtLmNyeXB0b19ib3hfa2V5cGFpcihcImhleFwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY3J5cHRDcnlwdG9Cb3goXG4gIGRhdGE6IFVpbnQ4QXJyYXksXG4gIHB1YmxpY0tleUFsaWNlOiBzdHJpbmcsXG4gIHByaXZhdGVLZXlCb2I6IHN0cmluZ1xuKTogVWludDhBcnJheSB7XG4gIGlmIChkYXRhLmxlbmd0aCA8IHNvZGl1bS5jcnlwdG9fYm94X05PTkNFQllURVMgKyBzb2RpdW0uY3J5cHRvX2JveF9NQUNCWVRFUykge1xuICAgIHRocm93IFwiZGF0YSB0b28gc2hvcnRcIjtcbiAgfVxuICBjb25zdCBub25jZSA9IGRhdGEuc2xpY2UoMCwgc29kaXVtLmNyeXB0b19ib3hfTk9OQ0VCWVRFUyk7XG4gIGNvbnN0IGNpcGhlciA9IGRhdGEuc2xpY2Uoc29kaXVtLmNyeXB0b19ib3hfTk9OQ0VCWVRFUyk7XG4gIHJldHVybiBzb2RpdW0uY3J5cHRvX2JveF9vcGVuX2Vhc3koXG4gICAgY2lwaGVyLFxuICAgIG5vbmNlLFxuICAgIHNvZGl1bS5mcm9tX2hleChwdWJsaWNLZXlBbGljZSksXG4gICAgc29kaXVtLmZyb21faGV4KHByaXZhdGVLZXlCb2IpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVNlY3JldEJveEtleSgpOiBzdHJpbmcge1xuICByZXR1cm4gc29kaXVtLnJhbmRvbWJ5dGVzX2J1Zihzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9LRVlCWVRFUywgXCJoZXhcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNyeXB0U2VjcmV0Qm94KGRhdGE6IFVpbnQ4QXJyYXksIGtleTogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGNvbnN0IG5vbmNlID0gc29kaXVtLnJhbmRvbWJ5dGVzX2J1Zihzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9OT05DRUJZVEVTKTtcbiAgY29uc3QgY3J5cHQgPSBzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9lYXN5KGRhdGEsIG5vbmNlLCBzb2RpdW0uZnJvbV9oZXgoa2V5KSk7XG4gIHJldHVybiBjb25jYXRlbmF0ZShub25jZSwgY3J5cHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjcnlwdFNlY3JldEJveChkYXRhOiBVaW50OEFycmF5LCBrZXk6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBpZiAoXG4gICAgZGF0YS5sZW5ndGggPFxuICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0Ym94X05PTkNFQllURVMgKyBzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9NQUNCWVRFU1xuICApIHtcbiAgICB0aHJvdyBcImRhdGEgdG9vIHNob3J0XCI7XG4gIH1cbiAgY29uc3Qgbm9uY2UgPSBkYXRhLnNsaWNlKDAsIHNvZGl1bS5jcnlwdG9fc2VjcmV0Ym94X05PTkNFQllURVMpO1xuICBjb25zdCBjaXBoZXIgPSBkYXRhLnNsaWNlKHNvZGl1bS5jcnlwdG9fc2VjcmV0Ym94X05PTkNFQllURVMpO1xuICByZXR1cm4gc29kaXVtLmNyeXB0b19zZWNyZXRib3hfb3Blbl9lYXN5KGNpcGhlciwgbm9uY2UsIHNvZGl1bS5mcm9tX2hleChrZXkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY3J5cHRBbm9ueW1vdXMoXG4gIGRhdGE6IFVpbnQ4QXJyYXksXG4gIHJlY2VpdmVyUHVibGljS2V5OiBzdHJpbmdcbik6IFVpbnQ4QXJyYXkge1xuICByZXR1cm4gc29kaXVtLmNyeXB0b19ib3hfc2VhbChkYXRhLCBzb2RpdW0uZnJvbV9oZXgocmVjZWl2ZXJQdWJsaWNLZXkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY3J5cHRBbm9ueW1vdXMoXG4gIGRhdGE6IFVpbnQ4QXJyYXksXG4gIHsgcHJpdmF0ZUtleSwgcHVibGljS2V5IH06IEtleVBhaXJcbik6IFVpbnQ4QXJyYXkge1xuICByZXR1cm4gc29kaXVtLmNyeXB0b19ib3hfc2VhbF9vcGVuKFxuICAgIGRhdGEsXG4gICAgc29kaXVtLmZyb21faGV4KHB1YmxpY0tleSksXG4gICAgc29kaXVtLmZyb21faGV4KHByaXZhdGVLZXkpXG4gICk7XG59XG4iXX0=
@@ -0,0 +1,30 @@
1
+ export declare type ErrorType = "ErrorUpgradePlan" | "ErrorNotFound" | "ErrorNotExist" | "ErrorAccessDenied" | "ErrorLangNotExist" | "ErrorLimit" | "ErrorBasic";
2
+ export interface ErrorBase {
3
+ message: string;
4
+ __typename: ErrorType;
5
+ }
6
+ export interface ErrorUpgradePlan extends ErrorBase {
7
+ __typename: "ErrorUpgradePlan";
8
+ }
9
+ export interface ErrorNotFound extends ErrorBase {
10
+ __typename: "ErrorNotFound";
11
+ field?: string | undefined;
12
+ }
13
+ export interface ErrorNotExist extends ErrorBase {
14
+ __typename: "ErrorNotExist";
15
+ field?: string | undefined;
16
+ }
17
+ export interface ErrorAccessDenied extends ErrorBase {
18
+ __typename: "ErrorAccessDenied";
19
+ }
20
+ export interface ErrorLangNotExist extends ErrorBase {
21
+ __typename: "ErrorLangNotExist";
22
+ }
23
+ export interface ErrorLimit extends ErrorBase {
24
+ __typename: "ErrorLimit";
25
+ field?: string | undefined;
26
+ }
27
+ export interface ErrorBasic extends ErrorBase {
28
+ __typename: "ErrorBasic";
29
+ }
30
+ export declare type SecrecyError = ErrorUpgradePlan | ErrorNotFound | ErrorNotExist | ErrorAccessDenied | ErrorLangNotExist | ErrorLimit | ErrorBasic;
package/dist/error.js ADDED
@@ -0,0 +1,3 @@
1
+ export {};
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=