kage-baileys 3.0.6 → 3.2.4

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 (217) hide show
  1. package/Example/connection.cjs +4 -0
  2. package/README.MD +4726 -48
  3. package/README.md +5941 -0
  4. package/WAProto/WAProto.proto +3395 -415
  5. package/WAProto/compat.cjs +12 -0
  6. package/WAProto/index.d.ts +47104 -19888
  7. package/WAProto/index.js +131979 -57361
  8. package/lib/Addon/http-error.js +43 -0
  9. package/lib/Addon/index.js +32 -0
  10. package/lib/Addon/keyed-db.js +250 -0
  11. package/lib/Addon/link-preview.js +82 -0
  12. package/lib/Defaults/baileys-version.json +3 -0
  13. package/lib/Defaults/connection.js +110 -0
  14. package/lib/Defaults/constants.js +156 -0
  15. package/lib/Defaults/history.js +46 -0
  16. package/lib/Defaults/index.js +230 -0
  17. package/lib/Defaults/media.js +104 -0
  18. package/lib/Defaults/phonenumber-mcc.json +223 -0
  19. package/lib/Defaults/prefix.js +44 -0
  20. package/lib/Extensions/business-advanced.js +382 -0
  21. package/lib/Extensions/business.js +159 -0
  22. package/lib/Extensions/chats-advanced.js +1106 -0
  23. package/lib/Extensions/chats.js +349 -0
  24. package/lib/Extensions/communities-advanced.js +430 -0
  25. package/lib/Extensions/community.js +94 -0
  26. package/lib/Extensions/groups-advanced.js +343 -0
  27. package/lib/Extensions/index.js +30 -0
  28. package/lib/Extensions/messages-recv-advanced.js +1690 -0
  29. package/lib/Extensions/messages-send-advanced.js +622 -0
  30. package/lib/Extensions/messages-send.js +1380 -0
  31. package/lib/Extensions/newsletter-advanced.js +228 -0
  32. package/lib/Extensions/newsletter.js +72 -0
  33. package/lib/Extensions/socket.js +389 -0
  34. package/lib/Modded/message_builder.js +2084 -4
  35. package/lib/Signal/Group/ciphertext-message.js +54 -0
  36. package/lib/Signal/Group/group-session-builder.js +124 -0
  37. package/lib/Signal/Group/group_cipher.js +216 -0
  38. package/lib/Signal/Group/index.js +124 -0
  39. package/lib/Signal/Group/keyhelper.js +108 -0
  40. package/lib/Signal/Group/sender-chain-key.js +83 -0
  41. package/lib/Signal/Group/sender-key-distribution-message.js +157 -0
  42. package/lib/Signal/Group/sender-key-message.js +166 -0
  43. package/lib/Signal/Group/sender-key-name.js +130 -0
  44. package/lib/Signal/Group/sender-key-record.js +113 -0
  45. package/lib/Signal/Group/sender-key-state.js +208 -0
  46. package/lib/Signal/Group/sender-message-key.js +82 -0
  47. package/lib/Signal/libsignal.js +935 -0
  48. package/lib/Signal/lid-mapping.js +545 -1
  49. package/lib/Socket/Client/index.js +60 -0
  50. package/lib/Socket/Client/types.js +51 -0
  51. package/lib/Socket/Client/websocket.js +152 -0
  52. package/lib/Socket/business.js +831 -0
  53. package/lib/Socket/chats.js +2535 -49
  54. package/lib/Socket/communities.js +450 -1
  55. package/lib/Socket/community.js +1022 -0
  56. package/lib/Socket/dugong.js +1 -1
  57. package/lib/Socket/groups.js +747 -0
  58. package/lib/Socket/index.js +60 -2
  59. package/lib/Socket/messages-recv.js +3450 -5
  60. package/lib/Socket/messages-send.js +3123 -0
  61. package/lib/Socket/mex.js +126 -1
  62. package/lib/Socket/newsletter.js +465 -0
  63. package/lib/Socket/socket.js +2217 -1
  64. package/lib/Store/index.js +79 -0
  65. package/lib/Store/make-cache-manager-store.js +186 -0
  66. package/lib/Store/make-in-memory-store.js +878 -0
  67. package/lib/Store/make-ordered-dictionary.js +187 -0
  68. package/lib/Store/object-repository.js +78 -0
  69. package/lib/Types/Auth.js +25 -0
  70. package/lib/Types/Bussines.js +25 -1
  71. package/lib/Types/Call.js +25 -0
  72. package/lib/Types/Chat.js +39 -0
  73. package/lib/Types/Contact.js +25 -0
  74. package/lib/Types/Events.js +25 -0
  75. package/lib/Types/GroupMetadata.js +25 -0
  76. package/lib/Types/Label.js +76 -0
  77. package/lib/Types/LabelAssociation.js +40 -0
  78. package/lib/Types/Message.js +57 -0
  79. package/lib/Types/Mex.js +56 -1
  80. package/lib/Types/MexUpdates.js +46 -0
  81. package/lib/Types/Newsletter.js +56 -0
  82. package/lib/Types/Product.js +25 -0
  83. package/lib/Types/RichType.js +23 -0
  84. package/lib/Types/Signal.js +25 -0
  85. package/lib/Types/Socket.js +25 -0
  86. package/lib/Types/State.js +92 -0
  87. package/lib/Types/USync.js +25 -0
  88. package/lib/Types/index.js +133 -0
  89. package/lib/Utils/auth-utils.js +703 -0
  90. package/lib/Utils/automation-tools.js +51 -16
  91. package/lib/Utils/baileys-event-stream.js +146 -0
  92. package/lib/Utils/browser-utils.js +95 -0
  93. package/lib/Utils/business.js +525 -0
  94. package/lib/Utils/chat-utils.js +1861 -0
  95. package/lib/Utils/companion-reg-client-utils.js +55 -1
  96. package/lib/Utils/crypto.js +355 -0
  97. package/lib/Utils/decode-wa-message.js +709 -0
  98. package/lib/Utils/event-buffer.js +1323 -8
  99. package/lib/Utils/generics.js +945 -1
  100. package/lib/Utils/history.js +266 -0
  101. package/lib/Utils/identity-change-handler.js +62 -1
  102. package/lib/Utils/index.js +114 -0
  103. package/lib/Utils/link-preview.js +179 -0
  104. package/lib/Utils/logger.js +42 -0
  105. package/lib/Utils/lt-hash.js +73 -0
  106. package/lib/Utils/make-mutex.js +104 -0
  107. package/lib/Utils/message-inspector.js +110 -0
  108. package/lib/Utils/message-retry-manager.js +507 -2
  109. package/lib/Utils/messages-media.js +1931 -1
  110. package/lib/Utils/messages.js +3748 -0
  111. package/lib/Utils/noise-handler.js +423 -0
  112. package/lib/Utils/offline-node-processor.js +53 -1
  113. package/lib/Utils/pre-key-manager.js +255 -1
  114. package/lib/Utils/process-message.js +1592 -0
  115. package/lib/Utils/reporting-utils.js +272 -1
  116. package/lib/Utils/rich-message-utils.js +377 -0
  117. package/lib/Utils/rich-messages.js +1 -1
  118. package/lib/Utils/signal.js +437 -0
  119. package/lib/Utils/stanza-ack.js +51 -1
  120. package/lib/Utils/status-refresh.js +37 -0
  121. package/lib/Utils/status-tools.js +4 -2
  122. package/lib/Utils/sync-action-utils.js +63 -1
  123. package/lib/Utils/tc-token-utils.js +185 -1
  124. package/lib/Utils/terminal-banner.js +31 -0
  125. package/lib/Utils/use-multi-file-auth-state.js +271 -0
  126. package/lib/Utils/use-single-file-auth-state.js +108 -0
  127. package/lib/Utils/use-sqlite-auth-state.js +142 -0
  128. package/lib/Utils/validate-connection.js +497 -1
  129. package/lib/Utils/view-once-compat.js +13 -5
  130. package/lib/VoIP/audio-feeder.js +150 -0
  131. package/lib/VoIP/index.js +289 -0
  132. package/lib/VoIP/relay-transport.js +608 -0
  133. package/lib/VoIP/signaling.js +583 -0
  134. package/lib/VoIP/types.js +30 -0
  135. package/lib/VoIP/wasm-engine.js +1261 -2
  136. package/lib/VoIP/worker-bootstrap.js +1090 -2
  137. package/lib/WABinary/constants.js +2805 -0
  138. package/lib/WABinary/decode.js +649 -2
  139. package/lib/WABinary/encode.js +564 -2
  140. package/lib/WABinary/generic-utils.js +401 -0
  141. package/lib/WABinary/index.js +82 -0
  142. package/lib/WABinary/jid-utils.js +290 -0
  143. package/lib/WABinary/types.js +25 -0
  144. package/lib/WAM/BinaryInfo.js +50 -0
  145. package/lib/WAM/constants.js +45747 -0
  146. package/lib/WAM/encode.js +393 -0
  147. package/lib/WAM/index.js +78 -0
  148. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +135 -0
  149. package/lib/WAUSync/Protocols/USyncContactProtocol.js +110 -0
  150. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +142 -0
  151. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +85 -0
  152. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +69 -0
  153. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +107 -0
  154. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +38 -1
  155. package/lib/WAUSync/Protocols/index.js +83 -0
  156. package/lib/WAUSync/USyncQuery.js +241 -2
  157. package/lib/WAUSync/USyncUser.js +86 -0
  158. package/lib/WAUSync/index.js +78 -0
  159. package/lib/assets/wasm/loader.js +1875 -1
  160. package/lib/assets/wasm/worker-modules.js +11047 -1
  161. package/lib/index.d.ts +126 -0
  162. package/lib/index.js +53 -21
  163. package/lib/index.mjs +437 -0
  164. package/licenses/upstream-MIT.txt +22 -0
  165. package/maintenance/api-coverage.json +1642 -0
  166. package/maintenance/archivos-sha256.json +207 -0
  167. package/maintenance/consumer-validation.log +3 -0
  168. package/maintenance/dependency-audit.json +4 -4
  169. package/maintenance/extension-inventory.json +57 -0
  170. package/maintenance/protocol-update.json +1101 -0
  171. package/maintenance/protocol-wire-audit.json +4 -0
  172. package/maintenance/reference-socket-surface.json +209 -0
  173. package/maintenance/resumen-validacion.json +50 -0
  174. package/maintenance/validation.log +2725 -0
  175. package/maintenance/verification.json +566 -0
  176. package/package.json +107 -9
  177. package/scripts/check-imports.cjs +10 -0
  178. package/scripts/check-package.cjs +40 -0
  179. package/scripts/check-syntax.cjs +1 -1
  180. package/scripts/generate-protobuf.cjs +6 -1
  181. package/scripts/generate-public-types.cjs +9 -0
  182. package/scripts/kage-base64-fix.cjs +45 -0
  183. package/scripts/maintenance.cjs +10 -0
  184. package/test/advanced.test.cjs +24 -0
  185. package/test/base64-fix.test.cjs +49 -0
  186. package/test/maintenance.test.cjs +1 -1
  187. package/test/npm-publication.test.cjs +141 -0
  188. package/test/recepcion-reparada.test.cjs +98 -0
  189. package/test/resilience-binary.test.cjs +69 -0
  190. package/test/resilience-transport.test.cjs +34 -0
  191. package/test/types.test.ts +5 -0
  192. package/test/upgrade.test.cjs +104 -0
  193. package/tsconfig.json +20 -0
  194. package/WAProto/p.html +0 -1
  195. package/lib/KageExtra/Modded/message_builder.js +0 -2330
  196. package/lib/KageExtra/VoIP/audio-feeder.js +0 -136
  197. package/lib/KageExtra/VoIP/index.js +0 -282
  198. package/lib/KageExtra/VoIP/relay-transport.js +0 -559
  199. package/lib/KageExtra/VoIP/signaling.js +0 -603
  200. package/lib/KageExtra/VoIP/types.js +0 -17
  201. package/lib/KageExtra/VoIP/wasm-engine.js +0 -1214
  202. package/lib/KageExtra/VoIP/worker-bootstrap.js +0 -1042
  203. package/lib/KageExtra/assets/wasm/loader.js +0 -5
  204. package/lib/KageExtra/assets/wasm/whatsapp.wasm +0 -0
  205. package/lib/KageExtra/assets/wasm/worker-modules.js +0 -273
  206. package/lib/KageExtra/index.js +0 -3
  207. package/lib/KageExtra/package.json +0 -1
  208. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +0 -53
  209. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +0 -24
  210. package/maintenance/revision-full-check.txt +0 -1097
  211. package/maintenance/revision-library-tests.tap +0 -1088
  212. package/maintenance/revision-protobuf.txt +0 -5
  213. package/maintenance/revision-syntax.txt +0 -5
  214. package/maintenance/schema-coverage.json +0 -23
  215. package/maintenance/schema-merge.json +0 -30
  216. package/maintenance/validation-node20.txt +0 -191
  217. package/maintenance/validation-node22.txt +0 -237
@@ -97,3 +97,211 @@ class SenderKeyState {
97
97
  }
98
98
  }
99
99
  exports.SenderKeyState = SenderKeyState;
100
+
101
+ // Kage: compatibilidad de API.
102
+ const __kageModule17 = (() => {
103
+ const module = { exports: {} }; const exports = module.exports;
104
+ "use strict"
105
+
106
+ Object.defineProperty(exports, "__esModule", { value: true })
107
+
108
+ const { SenderChainKey } = require("./sender-chain-key")
109
+ const { SenderMessageKey } = require("./sender-message-key")
110
+
111
+ class SenderKeyState {
112
+ constructor(id, iteration, chainKey, signatureKeyPair, signatureKeyPublic, signatureKeyPrivate, senderKeyStateStructure) {
113
+ this.MAX_MESSAGE_KEYS = 2000
114
+
115
+ if (senderKeyStateStructure) {
116
+ this.senderKeyStateStructure = {
117
+ ...senderKeyStateStructure,
118
+ senderMessageKeys: Array.isArray(senderKeyStateStructure.senderMessageKeys)
119
+ ? senderKeyStateStructure.senderMessageKeys
120
+ : []
121
+ }
122
+ }
123
+ else {
124
+ if (signatureKeyPair) {
125
+ signatureKeyPublic = signatureKeyPair.public
126
+ signatureKeyPrivate = signatureKeyPair.private
127
+ }
128
+
129
+ this.senderKeyStateStructure = {
130
+ senderKeyId: id || 0,
131
+ senderChainKey: {
132
+ iteration: iteration || 0,
133
+ seed: Buffer.from(chainKey || [])
134
+ },
135
+ senderSigningKey: {
136
+ public: Buffer.from(signatureKeyPublic || []),
137
+ private: Buffer.from(signatureKeyPrivate || [])
138
+ },
139
+ senderMessageKeys: []
140
+ }
141
+ }
142
+ }
143
+ getKeyId() {
144
+ return this.senderKeyStateStructure.senderKeyId
145
+ }
146
+ getSenderChainKey() {
147
+ return new SenderChainKey(this.senderKeyStateStructure.senderChainKey.iteration, this.senderKeyStateStructure.senderChainKey.seed)
148
+ }
149
+ setSenderChainKey(chainKey) {
150
+ this.senderKeyStateStructure.senderChainKey = {
151
+ iteration: chainKey.getIteration(),
152
+ seed: chainKey.getSeed()
153
+ }
154
+ }
155
+ getSigningKeyPublic() {
156
+ const publicKey = Buffer.from(this.senderKeyStateStructure.senderSigningKey.public)
157
+
158
+ if (publicKey.length === 32) {
159
+ const fixed = Buffer.alloc(33)
160
+
161
+ fixed[0] = 0x05
162
+ publicKey.copy(fixed, 1)
163
+
164
+ return fixed
165
+ }
166
+
167
+ return publicKey
168
+ }
169
+ getSigningKeyPrivate() {
170
+ const privateKey = this.senderKeyStateStructure.senderSigningKey.private
171
+ return Buffer.from(privateKey || [])
172
+ }
173
+ hasSenderMessageKey(iteration) {
174
+ return this.senderKeyStateStructure.senderMessageKeys.some(key => key.iteration === iteration)
175
+ }
176
+ addSenderMessageKey(senderMessageKey) {
177
+ this.senderKeyStateStructure.senderMessageKeys.push({
178
+ iteration: senderMessageKey.getIteration(),
179
+ seed: senderMessageKey.getSeed()
180
+ })
181
+
182
+ if (this.senderKeyStateStructure.senderMessageKeys.length > this.MAX_MESSAGE_KEYS) {
183
+ this.senderKeyStateStructure.senderMessageKeys.shift()
184
+ }
185
+ }
186
+ removeSenderMessageKey(iteration) {
187
+ const index = this.senderKeyStateStructure.senderMessageKeys.findIndex(key => key.iteration === iteration)
188
+
189
+ if (index !== -1) {
190
+ const messageKey = this.senderKeyStateStructure.senderMessageKeys[index]
191
+ this.senderKeyStateStructure.senderMessageKeys.splice(index, 1)
192
+ return new SenderMessageKey(messageKey.iteration, messageKey.seed)
193
+ }
194
+
195
+ return null
196
+ }
197
+ getStructure() {
198
+ return this.senderKeyStateStructure
199
+ }
200
+ }
201
+
202
+ module.exports = {
203
+ SenderKeyState
204
+ }
205
+ return module.exports;
206
+ })();
207
+ for (const key of Object.keys(__kageModule17)) {
208
+ if (key !== '__esModule' && !Object.prototype.hasOwnProperty.call(exports,key)) Object.defineProperty(exports,key,{enumerable:true,configurable:true,get:()=>__kageModule17[key]});
209
+ }
210
+
211
+ // Kage: funciones avanzadas.
212
+ const __kageModule123 = (() => {
213
+ const module = { exports: {} }; const exports = module.exports;
214
+ "use strict";
215
+ Object.defineProperty(exports, "__esModule", { value: true });
216
+ exports.SenderKeyState = void 0;
217
+ const sender_chain_key_js_1 = require("./sender-chain-key.js");
218
+ const sender_message_key_js_1 = require("./sender-message-key.js");
219
+ class SenderKeyState {
220
+ constructor(id, iteration, chainKey, signatureKeyPair, signatureKeyPublic, signatureKeyPrivate, senderKeyStateStructure) {
221
+ this.MAX_MESSAGE_KEYS = 2000;
222
+ if (senderKeyStateStructure) {
223
+ this.senderKeyStateStructure = {
224
+ ...senderKeyStateStructure,
225
+ senderMessageKeys: Array.isArray(senderKeyStateStructure.senderMessageKeys)
226
+ ? senderKeyStateStructure.senderMessageKeys
227
+ : []
228
+ };
229
+ }
230
+ else {
231
+ if (signatureKeyPair) {
232
+ signatureKeyPublic = signatureKeyPair.public;
233
+ signatureKeyPrivate = signatureKeyPair.private;
234
+ }
235
+ this.senderKeyStateStructure = {
236
+ senderKeyId: id || 0,
237
+ senderChainKey: {
238
+ iteration: iteration || 0,
239
+ seed: Buffer.from(chainKey || [])
240
+ },
241
+ senderSigningKey: {
242
+ public: Buffer.from(signatureKeyPublic || []),
243
+ private: Buffer.from(signatureKeyPrivate || [])
244
+ },
245
+ senderMessageKeys: []
246
+ };
247
+ }
248
+ }
249
+ getKeyId() {
250
+ return this.senderKeyStateStructure.senderKeyId;
251
+ }
252
+ getSenderChainKey() {
253
+ return new sender_chain_key_js_1.SenderChainKey(this.senderKeyStateStructure.senderChainKey.iteration, this.senderKeyStateStructure.senderChainKey.seed);
254
+ }
255
+ setSenderChainKey(chainKey) {
256
+ this.senderKeyStateStructure.senderChainKey = {
257
+ iteration: chainKey.getIteration(),
258
+ seed: chainKey.getSeed()
259
+ };
260
+ }
261
+ getSigningKeyPublic() {
262
+ const publicKey = Buffer.from(this.senderKeyStateStructure.senderSigningKey.public);
263
+ if (publicKey.length === 32) {
264
+ const fixed = Buffer.alloc(33);
265
+ fixed[0] = 0x05;
266
+ publicKey.copy(fixed, 1);
267
+ return fixed;
268
+ }
269
+ return publicKey;
270
+ }
271
+ getSigningKeyPrivate() {
272
+ const privateKey = this.senderKeyStateStructure.senderSigningKey.private;
273
+ return Buffer.from(privateKey || []);
274
+ }
275
+ hasSenderMessageKey(iteration) {
276
+ return this.senderKeyStateStructure.senderMessageKeys.some(key => key.iteration === iteration);
277
+ }
278
+ addSenderMessageKey(senderMessageKey) {
279
+ this.senderKeyStateStructure.senderMessageKeys.push({
280
+ iteration: senderMessageKey.getIteration(),
281
+ seed: senderMessageKey.getSeed()
282
+ });
283
+ if (this.senderKeyStateStructure.senderMessageKeys.length > this.MAX_MESSAGE_KEYS) {
284
+ this.senderKeyStateStructure.senderMessageKeys.shift();
285
+ }
286
+ }
287
+ removeSenderMessageKey(iteration) {
288
+ const index = this.senderKeyStateStructure.senderMessageKeys.findIndex(key => key.iteration === iteration);
289
+ if (index !== -1) {
290
+ const messageKey = this.senderKeyStateStructure.senderMessageKeys[index];
291
+ this.senderKeyStateStructure.senderMessageKeys.splice(index, 1);
292
+ return new sender_message_key_js_1.SenderMessageKey(messageKey.iteration, messageKey.seed);
293
+ }
294
+ return null;
295
+ }
296
+ getStructure() {
297
+ return this.senderKeyStateStructure;
298
+ }
299
+ }
300
+ exports.SenderKeyState = SenderKeyState;
301
+
302
+ return module.exports;
303
+ })();
304
+ for (const key of Object.keys(__kageModule123)) {
305
+ if (key !== '__esModule' && !Object.prototype.hasOwnProperty.call(exports,key)) Object.defineProperty(exports,key,{enumerable:true,configurable:true,get:()=>__kageModule123[key]});
306
+ }
307
+ Object.defineProperty(exports, Symbol.for('kage.advanced'), {value:__kageModule123, configurable:true});
@@ -27,3 +27,85 @@ class SenderMessageKey {
27
27
  }
28
28
  }
29
29
  exports.SenderMessageKey = SenderMessageKey;
30
+
31
+ // Kage: compatibilidad de API.
32
+ const __kageModule18 = (() => {
33
+ const module = { exports: {} }; const exports = module.exports;
34
+ "use strict"
35
+ Object.defineProperty(exports, "__esModule", { value: true })
36
+
37
+ const { deriveSecrets } = require("@itsukichan/libsignal-node/src/crypto")
38
+
39
+ class SenderMessageKey {
40
+ constructor(iteration, seed) {
41
+ const derivative = deriveSecrets(seed, Buffer.alloc(32), Buffer.from('WhisperGroup'))
42
+ const keys = new Uint8Array(32)
43
+ keys.set(new Uint8Array(derivative[0].slice(16)))
44
+ keys.set(new Uint8Array(derivative[1].slice(0, 16)), 16)
45
+ this.iv = Buffer.from(derivative[0].slice(0, 16))
46
+ this.cipherKey = Buffer.from(keys.buffer)
47
+ this.iteration = iteration
48
+ this.seed = seed
49
+ }
50
+ getIteration() {
51
+ return this.iteration
52
+ }
53
+ getIv() {
54
+ return this.iv
55
+ }
56
+ getCipherKey() {
57
+ return this.cipherKey
58
+ }
59
+ getSeed() {
60
+ return this.seed
61
+ }
62
+ }
63
+
64
+ module.exports = {
65
+ SenderMessageKey
66
+ }
67
+ return module.exports;
68
+ })();
69
+ for (const key of Object.keys(__kageModule18)) {
70
+ if (key !== '__esModule' && !Object.prototype.hasOwnProperty.call(exports,key)) Object.defineProperty(exports,key,{enumerable:true,configurable:true,get:()=>__kageModule18[key]});
71
+ }
72
+
73
+ // Kage: funciones avanzadas.
74
+ const __kageModule124 = (() => {
75
+ const module = { exports: {} }; const exports = module.exports;
76
+ "use strict";
77
+ Object.defineProperty(exports, "__esModule", { value: true });
78
+ exports.SenderMessageKey = void 0;
79
+ const crypto_js_1 = require("libsignal/src/crypto.js");
80
+ class SenderMessageKey {
81
+ constructor(iteration, seed) {
82
+ const derivative = (0, crypto_js_1.deriveSecrets)(seed, Buffer.alloc(32), Buffer.from('WhisperGroup'));
83
+ const keys = new Uint8Array(32);
84
+ keys.set(new Uint8Array(derivative[0].slice(16)));
85
+ keys.set(new Uint8Array(derivative[1].slice(0, 16)), 16);
86
+ this.iv = Buffer.from(derivative[0].slice(0, 16));
87
+ this.cipherKey = Buffer.from(keys.buffer);
88
+ this.iteration = iteration;
89
+ this.seed = seed;
90
+ }
91
+ getIteration() {
92
+ return this.iteration;
93
+ }
94
+ getIv() {
95
+ return this.iv;
96
+ }
97
+ getCipherKey() {
98
+ return this.cipherKey;
99
+ }
100
+ getSeed() {
101
+ return this.seed;
102
+ }
103
+ }
104
+ exports.SenderMessageKey = SenderMessageKey;
105
+
106
+ return module.exports;
107
+ })();
108
+ for (const key of Object.keys(__kageModule124)) {
109
+ if (key !== '__esModule' && !Object.prototype.hasOwnProperty.call(exports,key)) Object.defineProperty(exports,key,{enumerable:true,configurable:true,get:()=>__kageModule124[key]});
110
+ }
111
+ Object.defineProperty(exports, Symbol.for('kage.advanced'), {value:__kageModule124, configurable:true});