@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.
- package/dist/BaseClient.d.ts +274 -0
- package/dist/BaseClient.js +2227 -0
- package/dist/PopupTools.d.ts +17 -0
- package/dist/PopupTools.js +213 -0
- package/dist/ZeusThunder.d.ts +2 -0
- package/dist/ZeusThunder.js +113 -0
- package/dist/cache.d.ts +7 -0
- package/dist/cache.js +5 -0
- package/dist/client/admin/index.d.ts +11 -0
- package/dist/client/admin/index.js +198 -0
- package/dist/client/convert/file.d.ts +5 -0
- package/dist/client/convert/file.js +39 -0
- package/dist/client/convert/folder.d.ts +8 -0
- package/dist/client/convert/folder.js +264 -0
- package/dist/client/convert/mail.d.ts +3 -0
- package/dist/client/convert/mail.js +46 -0
- package/dist/client/convert/vFile.d.ts +5 -0
- package/dist/client/convert/vFile.js +164 -0
- package/dist/client/helpers.d.ts +23 -0
- package/dist/client/helpers.js +114 -0
- package/dist/client/index.d.ts +172 -0
- package/dist/client/index.js +6169 -0
- package/dist/client/storage.d.ts +7 -0
- package/dist/client/storage.js +12 -0
- package/dist/client/types/File.d.ts +21 -0
- package/dist/client/types/File.js +3 -0
- package/dist/client/types/FilesOnUsersOnApplications.d.ts +9 -0
- package/dist/client/types/FilesOnUsersOnApplications.js +3 -0
- package/dist/client/types/Folder.d.ts +68 -0
- package/dist/client/types/Folder.js +7 -0
- package/dist/client/types/Inputs.d.ts +21 -0
- package/dist/client/types/Inputs.js +3 -0
- package/dist/client/types/UserAppNotifications.d.ts +6 -0
- package/dist/client/types/UserAppNotifications.js +3 -0
- package/dist/client/types/UserAppSettings.d.ts +7 -0
- package/dist/client/types/UserAppSettings.js +3 -0
- package/dist/client/types/VFile.d.ts +62 -0
- package/dist/client/types/VFile.js +4 -0
- package/dist/client/types/index.d.ts +154 -0
- package/dist/client/types/index.js +10 -0
- package/dist/client/types/queries.d.ts +535 -0
- package/dist/client/types/queries.js +192 -0
- package/dist/crypto/file.d.ts +14 -0
- package/dist/crypto/file.js +291 -0
- package/dist/crypto/index.d.ts +12 -0
- package/dist/crypto/index.js +45 -0
- package/dist/error.d.ts +30 -0
- package/dist/error.js +3 -0
- package/dist/index.d.ts +13 -3857
- package/dist/index.js +42 -255
- package/dist/minify/index.d.ts +2 -0
- package/dist/minify/index.js +28 -0
- package/dist/minify/lz4.d.ts +5 -0
- package/dist/minify/lz4.js +633 -0
- package/dist/sodium.d.ts +3 -0
- package/dist/sodium.js +28 -0
- package/dist/utils/store-buddy.d.ts +14 -0
- package/dist/utils/store-buddy.js +69 -0
- package/dist/utils/time.d.ts +10 -0
- package/dist/utils/time.js +22 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +188 -0
- package/dist/worker/__mock__/sodium.worker.d.ts +19 -0
- package/dist/worker/__mock__/sodium.worker.js +46 -0
- package/dist/worker/md5.d.ts +1 -0
- package/dist/worker/md5.js +43 -0
- package/dist/worker/sodium.d.ts +3 -0
- package/dist/worker/sodium.js +155 -0
- package/dist/worker/workerCodes.d.ts +2 -0
- package/dist/worker/workerCodes.js +3 -0
- package/dist/zeus/const.d.ts +2 -0
- package/dist/zeus/const.js +2267 -0
- package/dist/zeus/index.d.ts +4043 -0
- package/dist/zeus/index.js +549 -0
- package/package.json +23 -14
- package/__tests__/client/client.test.ts +0 -81
- package/__tests__/client/folder.test.ts +0 -302
- package/__tests__/client/mail.test.ts +0 -476
- package/__tests__/client/timing.test.ts +0 -35
- package/__tests__/client/utils.ts +0 -41
- package/__tests__/client/vFile.test.ts +0 -207
- package/__tests__/index.test.ts +0 -171
- package/commitlint.config.cjs +0 -3
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -255
- package/dist/index.mjs.map +0 -1
- package/docs/assets/css/main.css +0 -2660
- package/docs/assets/images/icons.png +0 -0
- package/docs/assets/images/icons@2x.png +0 -0
- package/docs/assets/images/widgets.png +0 -0
- package/docs/assets/images/widgets@2x.png +0 -0
- package/docs/assets/js/main.js +0 -248
- package/docs/assets/js/search.js +0 -1
- package/docs/classes/baseclient.baseclient-1.html +0 -1165
- package/docs/classes/client.secrecyclient.html +0 -2527
- package/docs/enums/index.sodium.base64_variants.html +0 -205
- package/docs/index.html +0 -198
- package/docs/interfaces/client_types.draftmail.html +0 -335
- package/docs/interfaces/client_types.filecontentbase.html +0 -231
- package/docs/interfaces/client_types.filecontentcloud.html +0 -244
- package/docs/interfaces/client_types.filecontentreceivedmail.html +0 -244
- package/docs/interfaces/client_types.filecontentsentmail.html +0 -230
- package/docs/interfaces/client_types.receivedmail.html +0 -363
- package/docs/interfaces/client_types.sentmail.html +0 -335
- package/docs/interfaces/crypto.keypair.html +0 -202
- package/docs/interfaces/index.sodium.cryptobox.html +0 -185
- package/docs/interfaces/index.sodium.cryptokx.html +0 -185
- package/docs/interfaces/index.sodium.keypair.html +0 -199
- package/docs/interfaces/index.sodium.messagetag.html +0 -185
- package/docs/interfaces/index.sodium.secretbox.html +0 -185
- package/docs/interfaces/index.sodium.stateaddress.html +0 -171
- package/docs/interfaces/index.sodium.stringcryptobox.html +0 -185
- package/docs/interfaces/index.sodium.stringcryptokx.html +0 -185
- package/docs/interfaces/index.sodium.stringkeypair.html +0 -199
- package/docs/interfaces/index.sodium.stringmessagetag.html +0 -185
- package/docs/interfaces/index.sodium.stringsecretbox.html +0 -185
- package/docs/interfaces/utils_store_buddy.storebuddy.html +0 -333
- package/docs/modules/baseclient.html +0 -929
- package/docs/modules/cache.html +0 -185
- package/docs/modules/client.html +0 -207
- package/docs/modules/client_convert_file.html +0 -216
- package/docs/modules/client_convert_folder.html +0 -303
- package/docs/modules/client_convert_vfile.html +0 -216
- package/docs/modules/client_helpers.html +0 -311
- package/docs/modules/client_storage.html +0 -167
- package/docs/modules/client_types.html +0 -1227
- package/docs/modules/client_types_file.html +0 -233
- package/docs/modules/client_types_filesonusersonapplications.html +0 -168
- package/docs/modules/client_types_folder.html +0 -383
- package/docs/modules/client_types_inputs.html +0 -263
- package/docs/modules/client_types_mail.html +0 -181
- package/docs/modules/client_types_queries.html +0 -199
- package/docs/modules/client_types_userappsettings.html +0 -163
- package/docs/modules/client_types_vfile.html +0 -364
- package/docs/modules/crypto.html +0 -366
- package/docs/modules/crypto_file.html +0 -344
- package/docs/modules/index.html +0 -779
- package/docs/modules/index.sodium.html +0 -6039
- package/docs/modules/minify.html +0 -183
- package/docs/modules/minify_lz4.html +0 -279
- package/docs/modules/popuptools.html +0 -259
- package/docs/modules/sodium.html +0 -167
- package/docs/modules/utils.html +0 -219
- package/docs/modules/utils_store_buddy.html +0 -208
- package/docs/modules/utils_time.html +0 -330
- package/docs/modules/worker_md5.html +0 -156
- package/docs/modules/worker_sodium.html +0 -231
- package/docs/modules/worker_workercodes.html +0 -157
- package/docs/modules.html +0 -235
- package/index.html +0 -21
- package/jest.config.ts +0 -27
- package/jest.setup.ts +0 -6
- package/release.config.cjs +0 -15
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvdHlwZXMvcXVlcmllcy50cyJdLCJuYW1lcyI6WyJncWxGaWxlUXVlcnkiLCJpZCIsInNpemUiLCJzaXplQmVmb3JlIiwiY3JlYXRlZEF0IiwibWQ1IiwibWQ1RW5jcnlwdGVkIiwidXNlciIsImtleSIsInVzZXJBcHAiLCJrZXlQYWlyIiwicHViIiwiZ3FsVkZpbGVRdWVyeSIsImZpbGVuYW1lIiwiY3JlYXRlZEJ5IiwiZmlyc3RuYW1lIiwibGFzdG5hbWUiLCJlbWFpbCIsInB1YmxpY0tleSIsInVzZXJBcHBzIiwicmlnaHRzIiwiaXNSb290IiwibmFtZUtleSIsImlzRmF2b3JpdGUiLCJkZWxldGVkQXQiLCJ1cGRhdGVkQXQiLCJjdXJyZW50IiwiaGlzdG9yeSIsImdxbEZvbGRlclF1ZXJ5IiwibmFtZSIsImJyZWFkY3J1bWIiLCJwdWJLZXkiLCJncWxGb2xkZXJGdWxsUXVlcnkiLCJ2RmlsZXMiLCJwYXJlbnRGb2xkZXIiLCJzdWJmb2xkZXJzIiwiZ3FsVkZpbGVXaXRoRm9sZGVyUXVlcnkiLCJmb2xkZXIiLCJncWxNYWlsUXVlcnkiLCJ0eXBlIiwiYm9keSIsInN1YmplY3QiLCJvcGVuZWRBdCIsInJlY2lwaWVudHMiLCJyZWNpcGllbnQiLCJzZW5kZXIiLCJtYWlsSW50ZWdyaXR5IiwidGVtcG9yYXJ5UmVjaXBpZW50cyIsImhhc2giLCJoYXNoS2V5IiwicmVwbHlUbyIsIm1haWxJbnRlZ3JpdHlEcmFmdCIsImZpbGVzIiwiZmlsZUtleSIsImZpbGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sSUFBTUEsWUFBWSxHQUFHO0FBQzFCQyxFQUFBQSxFQUFFLEVBQUUsSUFEc0I7QUFFMUJDLEVBQUFBLElBQUksRUFBRSxJQUZvQjtBQUcxQkMsRUFBQUEsVUFBVSxFQUFFLElBSGM7QUFJMUJDLEVBQUFBLFNBQVMsRUFBRSxJQUplO0FBSzFCQyxFQUFBQSxHQUFHLEVBQUUsSUFMcUI7QUFNMUJDLEVBQUFBLFlBQVksRUFBRSxJQU5ZO0FBTzFCQyxFQUFBQSxJQUFJLEVBQUU7QUFDSkMsSUFBQUEsR0FBRyxFQUFFLElBREQ7QUFFSkMsSUFBQUEsT0FBTyxFQUFFO0FBQ1BDLE1BQUFBLE9BQU8sRUFBRTtBQUNQQyxRQUFBQSxHQUFHLEVBQUU7QUFERTtBQURGO0FBRkw7QUFQb0IsQ0FBckI7QUFpQlAsT0FBTyxJQUFNQyxhQUFhLEdBQUc7QUFDM0JYLEVBQUFBLEVBQUUsRUFBRSxJQUR1QjtBQUUzQlksRUFBQUEsUUFBUSxFQUFFLElBRmlCO0FBRzNCQyxFQUFBQSxTQUFTLEVBQUU7QUFDVFAsSUFBQUEsSUFBSSxFQUFFO0FBQ0pOLE1BQUFBLEVBQUUsRUFBRSxJQURBO0FBRUpjLE1BQUFBLFNBQVMsRUFBRSxJQUZQO0FBR0pDLE1BQUFBLFFBQVEsRUFBRSxJQUhOO0FBSUpDLE1BQUFBLEtBQUssRUFBRSxJQUpIO0FBS0pDLE1BQUFBLFNBQVMsRUFBRTtBQUxQO0FBREcsR0FIZ0I7QUFZM0JDLEVBQUFBLFFBQVEsRUFBRTtBQUNSQyxJQUFBQSxNQUFNLEVBQUUsSUFEQTtBQUVSQyxJQUFBQSxNQUFNLEVBQUUsSUFGQTtBQUdSWixJQUFBQSxPQUFPLEVBQUU7QUFDUEYsTUFBQUEsSUFBSSxFQUFFO0FBQ0pOLFFBQUFBLEVBQUUsRUFBRSxJQURBO0FBRUpjLFFBQUFBLFNBQVMsRUFBRSxJQUZQO0FBR0pDLFFBQUFBLFFBQVEsRUFBRSxJQUhOO0FBSUpDLFFBQUFBLEtBQUssRUFBRSxJQUpIO0FBS0pDLFFBQUFBLFNBQVMsRUFBRTtBQUxQO0FBREM7QUFIRCxHQVppQjtBQXlCM0JULEVBQUFBLE9BQU8sRUFBRTtBQUNQQSxJQUFBQSxPQUFPLEVBQUU7QUFDUEYsTUFBQUEsSUFBSSxFQUFFO0FBQ0pOLFFBQUFBLEVBQUUsRUFBRTtBQURBO0FBREMsS0FERjtBQU1QcUIsSUFBQUEsT0FBTyxFQUFFLElBTkY7QUFPUEYsSUFBQUEsTUFBTSxFQUFFLElBUEQ7QUFRUEMsSUFBQUEsTUFBTSxFQUFFO0FBUkQsR0F6QmtCO0FBbUMzQkUsRUFBQUEsVUFBVSxFQUFFLElBbkNlO0FBb0MzQm5CLEVBQUFBLFNBQVMsRUFBRSxJQXBDZ0I7QUFxQzNCb0IsRUFBQUEsU0FBUyxFQUFFLElBckNnQjtBQXNDM0JDLEVBQUFBLFNBQVMsRUFBRSxJQXRDZ0I7QUF1QzNCQyxFQUFBQSxPQUFPLG9CQUNGMUIsWUFERSxDQXZDb0I7QUEwQzNCMkIsRUFBQUEsT0FBTyxvQkFDRjNCLFlBREU7QUExQ29CLENBQXRCO0FBK0NQLE9BQU8sSUFBTTRCLGNBQWMsR0FBRztBQUM1QjNCLEVBQUFBLEVBQUUsRUFBRSxJQUR3QjtBQUU1QnNCLEVBQUFBLFVBQVUsRUFBRSxJQUZnQjtBQUc1Qm5CLEVBQUFBLFNBQVMsRUFBRSxJQUhpQjtBQUk1Qm9CLEVBQUFBLFNBQVMsRUFBRSxJQUppQjtBQUs1QkMsRUFBQUEsU0FBUyxFQUFFLElBTGlCO0FBTTVCSSxFQUFBQSxJQUFJLEVBQUUsSUFOc0I7QUFPNUJmLEVBQUFBLFNBQVMsRUFBRTtBQUNUUCxJQUFBQSxJQUFJLEVBQUU7QUFDSk4sTUFBQUEsRUFBRSxFQUFFLElBREE7QUFFSmMsTUFBQUEsU0FBUyxFQUFFLElBRlA7QUFHSkMsTUFBQUEsUUFBUSxFQUFFLElBSE47QUFJSkMsTUFBQUEsS0FBSyxFQUFFLElBSkg7QUFLSkMsTUFBQUEsU0FBUyxFQUFFO0FBTFA7QUFERyxHQVBpQjtBQWdCNUJDLEVBQUFBLFFBQVEsRUFBRTtBQUNSQyxJQUFBQSxNQUFNLEVBQUUsSUFEQTtBQUVSQyxJQUFBQSxNQUFNLEVBQUUsSUFGQTtBQUdSWixJQUFBQSxPQUFPLEVBQUU7QUFDUEYsTUFBQUEsSUFBSSxFQUFFO0FBQ0pOLFFBQUFBLEVBQUUsRUFBRSxJQURBO0FBRUpjLFFBQUFBLFNBQVMsRUFBRSxJQUZQO0FBR0pDLFFBQUFBLFFBQVEsRUFBRSxJQUhOO0FBSUpDLFFBQUFBLEtBQUssRUFBRSxJQUpIO0FBS0pDLFFBQUFBLFNBQVMsRUFBRTtBQUxQO0FBREM7QUFIRCxHQWhCa0I7QUE2QjVCVCxFQUFBQSxPQUFPLEVBQUU7QUFDUEEsSUFBQUEsT0FBTyxFQUFFO0FBQ1BGLE1BQUFBLElBQUksRUFBRTtBQUNKTixRQUFBQSxFQUFFLEVBQUU7QUFEQTtBQURDLEtBREY7QUFNUHFCLElBQUFBLE9BQU8sRUFBRSxJQU5GO0FBT1BGLElBQUFBLE1BQU0sRUFBRSxJQVBEO0FBUVBDLElBQUFBLE1BQU0sRUFBRTtBQVJELEdBN0JtQjtBQXVDNUJTLEVBQUFBLFVBQVUsRUFBRTtBQUNWN0IsSUFBQUEsRUFBRSxFQUFFLElBRE07QUFFVjRCLElBQUFBLElBQUksRUFBRSxJQUZJO0FBR1ZQLElBQUFBLE9BQU8sRUFBRSxJQUhDO0FBSVZTLElBQUFBLE1BQU0sRUFBRTtBQUpFO0FBdkNnQixDQUF2QjtBQStDUCxPQUFPLElBQU1DLGtCQUFrQixtQ0FDMUJKLGNBRDBCO0FBRTdCSyxFQUFBQSxNQUFNLG9CQUNEckIsYUFEQyxDQUZ1QjtBQUs3QnNCLEVBQUFBLFlBQVksRUFBRU4sY0FMZTtBQU03Qk8sRUFBQUEsVUFBVSxFQUFFUDtBQU5pQixFQUF4QjtBQVNQLE9BQU8sSUFBTVEsdUJBQXVCLG1DQUMvQnhCLGFBRCtCO0FBRWxDeUIsRUFBQUEsTUFBTSxvQkFDRFQsY0FEQztBQUY0QixFQUE3QjtBQU9QLE9BQU8sSUFBTVUsWUFBWSxHQUFHO0FBQzFCckMsRUFBQUEsRUFBRSxFQUFFLElBRHNCO0FBRTFCc0MsRUFBQUEsSUFBSSxFQUFFLElBRm9CO0FBRzFCQyxFQUFBQSxJQUFJLEVBQUUsSUFIb0I7QUFJMUJDLEVBQUFBLE9BQU8sRUFBRSxJQUppQjtBQUsxQkMsRUFBQUEsUUFBUSxFQUFFLElBTGdCO0FBTTFCdEMsRUFBQUEsU0FBUyxFQUFFLElBTmU7QUFPMUJvQixFQUFBQSxTQUFTLEVBQUUsSUFQZTtBQVExQm1CLEVBQUFBLFVBQVUsRUFBRTtBQUNWMUMsSUFBQUEsRUFBRSxFQUFFLElBRE07QUFFVmMsSUFBQUEsU0FBUyxFQUFFLElBRkQ7QUFHVkMsSUFBQUEsUUFBUSxFQUFFLElBSEE7QUFJVkMsSUFBQUEsS0FBSyxFQUFFLElBSkc7QUFLVkMsSUFBQUEsU0FBUyxFQUFFO0FBTEQsR0FSYztBQWUxQjBCLEVBQUFBLFNBQVMsRUFBRTtBQUNUM0MsSUFBQUEsRUFBRSxFQUFFLElBREs7QUFFVGMsSUFBQUEsU0FBUyxFQUFFLElBRkY7QUFHVEMsSUFBQUEsUUFBUSxFQUFFLElBSEQ7QUFJVEMsSUFBQUEsS0FBSyxFQUFFLElBSkU7QUFLVEMsSUFBQUEsU0FBUyxFQUFFO0FBTEYsR0FmZTtBQXNCMUIyQixFQUFBQSxNQUFNLEVBQUU7QUFDTjVDLElBQUFBLEVBQUUsRUFBRSxJQURFO0FBRU5jLElBQUFBLFNBQVMsRUFBRSxJQUZMO0FBR05DLElBQUFBLFFBQVEsRUFBRSxJQUhKO0FBSU5DLElBQUFBLEtBQUssRUFBRSxJQUpEO0FBS05DLElBQUFBLFNBQVMsRUFBRTtBQUxMLEdBdEJrQjtBQTZCMUI0QixFQUFBQSxhQUFhLEVBQUU7QUFDYkMsSUFBQUEsbUJBQW1CLEVBQUU7QUFDbkI5QixNQUFBQSxLQUFLLEVBQUU7QUFEWSxLQURSO0FBSWIwQixJQUFBQSxVQUFVLEVBQUU7QUFDVjFDLE1BQUFBLEVBQUUsRUFBRSxJQURNO0FBRVZjLE1BQUFBLFNBQVMsRUFBRSxJQUZEO0FBR1ZDLE1BQUFBLFFBQVEsRUFBRSxJQUhBO0FBSVZDLE1BQUFBLEtBQUssRUFBRSxJQUpHO0FBS1ZDLE1BQUFBLFNBQVMsRUFBRTtBQUxELEtBSkM7QUFXYmpCLElBQUFBLEVBQUUsRUFBRSxJQVhTO0FBWWIrQyxJQUFBQSxJQUFJLEVBQUUsSUFaTztBQWFiQyxJQUFBQSxPQUFPLEVBQUUsSUFiSTtBQWNiQyxJQUFBQSxPQUFPLEVBQUU7QUFDUGpELE1BQUFBLEVBQUUsRUFBRTtBQURHO0FBZEksR0E3Qlc7QUErQzFCa0QsRUFBQUEsa0JBQWtCLEVBQUU7QUFDbEJKLElBQUFBLG1CQUFtQixFQUFFO0FBQ25COUIsTUFBQUEsS0FBSyxFQUFFO0FBRFksS0FESDtBQUlsQjBCLElBQUFBLFVBQVUsRUFBRTtBQUNWMUMsTUFBQUEsRUFBRSxFQUFFLElBRE07QUFFVmMsTUFBQUEsU0FBUyxFQUFFLElBRkQ7QUFHVkMsTUFBQUEsUUFBUSxFQUFFLElBSEE7QUFJVkMsTUFBQUEsS0FBSyxFQUFFLElBSkc7QUFLVkMsTUFBQUEsU0FBUyxFQUFFO0FBTEQsS0FKTTtBQVdsQmpCLElBQUFBLEVBQUUsRUFBRSxJQVhjO0FBWWxCK0MsSUFBQUEsSUFBSSxFQUFFLElBWlk7QUFhbEJDLElBQUFBLE9BQU8sRUFBRSxJQWJTO0FBY2xCQyxJQUFBQSxPQUFPLEVBQUU7QUFDUGpELE1BQUFBLEVBQUUsRUFBRTtBQURHO0FBZFMsR0EvQ007QUFpRTFCbUQsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLE9BQU8sRUFBRSxJQURKO0FBRUx4QyxJQUFBQSxRQUFRLEVBQUUsSUFGTDtBQUdMeUMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pyRCxNQUFBQSxFQUFFLEVBQUU7QUFEQTtBQUhEO0FBakVtQixDQUFyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBncWxGaWxlUXVlcnkgPSB7XG4gIGlkOiB0cnVlLFxuICBzaXplOiB0cnVlLFxuICBzaXplQmVmb3JlOiB0cnVlLFxuICBjcmVhdGVkQXQ6IHRydWUsXG4gIG1kNTogdHJ1ZSxcbiAgbWQ1RW5jcnlwdGVkOiB0cnVlLFxuICB1c2VyOiB7XG4gICAga2V5OiB0cnVlLFxuICAgIHVzZXJBcHA6IHtcbiAgICAgIGtleVBhaXI6IHtcbiAgICAgICAgcHViOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgZ3FsVkZpbGVRdWVyeSA9IHtcbiAgaWQ6IHRydWUsXG4gIGZpbGVuYW1lOiB0cnVlLFxuICBjcmVhdGVkQnk6IHtcbiAgICB1c2VyOiB7XG4gICAgICBpZDogdHJ1ZSxcbiAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgZW1haWw6IHRydWUsXG4gICAgICBwdWJsaWNLZXk6IHRydWVcbiAgICB9XG4gIH0sXG4gIHVzZXJBcHBzOiB7XG4gICAgcmlnaHRzOiB0cnVlLFxuICAgIGlzUm9vdDogdHJ1ZSxcbiAgICB1c2VyQXBwOiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIGlkOiB0cnVlLFxuICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgcHVibGljS2V5OiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9LFxuICB1c2VyQXBwOiB7XG4gICAgdXNlckFwcDoge1xuICAgICAgdXNlcjoge1xuICAgICAgICBpZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgbmFtZUtleTogdHJ1ZSxcbiAgICByaWdodHM6IHRydWUsXG4gICAgaXNSb290OiB0cnVlXG4gIH0sXG4gIGlzRmF2b3JpdGU6IHRydWUsXG4gIGNyZWF0ZWRBdDogdHJ1ZSxcbiAgZGVsZXRlZEF0OiB0cnVlLFxuICB1cGRhdGVkQXQ6IHRydWUsXG4gIGN1cnJlbnQ6IHtcbiAgICAuLi5ncWxGaWxlUXVlcnlcbiAgfSxcbiAgaGlzdG9yeToge1xuICAgIC4uLmdxbEZpbGVRdWVyeVxuICB9XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgZ3FsRm9sZGVyUXVlcnkgPSB7XG4gIGlkOiB0cnVlLFxuICBpc0Zhdm9yaXRlOiB0cnVlLFxuICBjcmVhdGVkQXQ6IHRydWUsXG4gIGRlbGV0ZWRBdDogdHJ1ZSxcbiAgdXBkYXRlZEF0OiB0cnVlLFxuICBuYW1lOiB0cnVlLFxuICBjcmVhdGVkQnk6IHtcbiAgICB1c2VyOiB7XG4gICAgICBpZDogdHJ1ZSxcbiAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgZW1haWw6IHRydWUsXG4gICAgICBwdWJsaWNLZXk6IHRydWVcbiAgICB9XG4gIH0sXG4gIHVzZXJBcHBzOiB7XG4gICAgcmlnaHRzOiB0cnVlLFxuICAgIGlzUm9vdDogdHJ1ZSxcbiAgICB1c2VyQXBwOiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIGlkOiB0cnVlLFxuICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgcHVibGljS2V5OiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9LFxuICB1c2VyQXBwOiB7XG4gICAgdXNlckFwcDoge1xuICAgICAgdXNlcjoge1xuICAgICAgICBpZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgbmFtZUtleTogdHJ1ZSxcbiAgICByaWdodHM6IHRydWUsXG4gICAgaXNSb290OiB0cnVlXG4gIH0sXG4gIGJyZWFkY3J1bWI6IHtcbiAgICBpZDogdHJ1ZSxcbiAgICBuYW1lOiB0cnVlLFxuICAgIG5hbWVLZXk6IHRydWUsXG4gICAgcHViS2V5OiB0cnVlXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBncWxGb2xkZXJGdWxsUXVlcnkgPSB7XG4gIC4uLmdxbEZvbGRlclF1ZXJ5LFxuICB2RmlsZXM6IHtcbiAgICAuLi5ncWxWRmlsZVF1ZXJ5XG4gIH0sXG4gIHBhcmVudEZvbGRlcjogZ3FsRm9sZGVyUXVlcnksXG4gIHN1YmZvbGRlcnM6IGdxbEZvbGRlclF1ZXJ5XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgZ3FsVkZpbGVXaXRoRm9sZGVyUXVlcnkgPSB7XG4gIC4uLmdxbFZGaWxlUXVlcnksXG4gIGZvbGRlcjoge1xuICAgIC4uLmdxbEZvbGRlclF1ZXJ5XG4gIH1cbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBncWxNYWlsUXVlcnkgPSB7XG4gIGlkOiB0cnVlLFxuICB0eXBlOiB0cnVlLFxuICBib2R5OiB0cnVlLFxuICBzdWJqZWN0OiB0cnVlLFxuICBvcGVuZWRBdDogdHJ1ZSxcbiAgY3JlYXRlZEF0OiB0cnVlLFxuICBkZWxldGVkQXQ6IHRydWUsXG4gIHJlY2lwaWVudHM6IHtcbiAgICBpZDogdHJ1ZSxcbiAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgbGFzdG5hbWU6IHRydWUsXG4gICAgZW1haWw6IHRydWUsXG4gICAgcHVibGljS2V5OiB0cnVlXG4gIH0sXG4gIHJlY2lwaWVudDoge1xuICAgIGlkOiB0cnVlLFxuICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICBlbWFpbDogdHJ1ZSxcbiAgICBwdWJsaWNLZXk6IHRydWVcbiAgfSxcbiAgc2VuZGVyOiB7XG4gICAgaWQ6IHRydWUsXG4gICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgIGVtYWlsOiB0cnVlLFxuICAgIHB1YmxpY0tleTogdHJ1ZVxuICB9LFxuICBtYWlsSW50ZWdyaXR5OiB7XG4gICAgdGVtcG9yYXJ5UmVjaXBpZW50czoge1xuICAgICAgZW1haWw6IHRydWVcbiAgICB9LFxuICAgIHJlY2lwaWVudHM6IHtcbiAgICAgIGlkOiB0cnVlLFxuICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgIHB1YmxpY0tleTogdHJ1ZVxuICAgIH0sXG4gICAgaWQ6IHRydWUsXG4gICAgaGFzaDogdHJ1ZSxcbiAgICBoYXNoS2V5OiB0cnVlLFxuICAgIHJlcGx5VG86IHtcbiAgICAgIGlkOiB0cnVlXG4gICAgfVxuICB9LFxuICBtYWlsSW50ZWdyaXR5RHJhZnQ6IHtcbiAgICB0ZW1wb3JhcnlSZWNpcGllbnRzOiB7XG4gICAgICBlbWFpbDogdHJ1ZVxuICAgIH0sXG4gICAgcmVjaXBpZW50czoge1xuICAgICAgaWQ6IHRydWUsXG4gICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgcHVibGljS2V5OiB0cnVlXG4gICAgfSxcbiAgICBpZDogdHJ1ZSxcbiAgICBoYXNoOiB0cnVlLFxuICAgIGhhc2hLZXk6IHRydWUsXG4gICAgcmVwbHlUbzoge1xuICAgICAgaWQ6IHRydWVcbiAgICB9XG4gIH0sXG4gIGZpbGVzOiB7XG4gICAgZmlsZUtleTogdHJ1ZSxcbiAgICBmaWxlbmFtZTogdHJ1ZSxcbiAgICBmaWxlOiB7XG4gICAgICBpZDogdHJ1ZVxuICAgIH1cbiAgfVxufSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -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=
|
package/dist/error.d.ts
ADDED
|
@@ -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