@hansaka02/baileys 7.3.2 → 7.3.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.
- package/README.md +247 -203
- package/lib/Defaults/connection.js +51 -0
- package/lib/Defaults/constants.js +62 -0
- package/lib/Defaults/history.js +17 -0
- package/lib/Defaults/index.js +36 -142
- package/lib/Defaults/media.js +48 -0
- package/lib/Defaults/prefix.js +18 -0
- package/lib/Signal/Group/group-session-builder.js +10 -42
- package/lib/Signal/Group/group_cipher.js +9 -6
- package/lib/Signal/Group/index.js +39 -53
- package/lib/Signal/Group/keyhelper.js +8 -41
- package/lib/Signal/Group/sender-chain-key.js +4 -4
- package/lib/Signal/Group/sender-key-distribution-message.js +5 -5
- package/lib/Signal/Group/sender-key-message.js +12 -8
- package/lib/Signal/Group/sender-key-record.js +7 -7
- package/lib/Signal/Group/sender-key-state.js +4 -4
- package/lib/Signal/Group/sender-message-key.js +2 -2
- package/lib/Signal/libsignal.js +45 -69
- package/lib/Signal/lid-mapping.js +15 -11
- package/lib/Socket/Client/types.js +2 -2
- package/lib/Socket/Client/websocket.js +16 -14
- package/lib/Socket/business.js +41 -32
- package/lib/Socket/chats.js +123 -98
- package/lib/Socket/community.js +50 -40
- package/lib/Socket/groups.js +59 -47
- package/lib/Socket/index.js +4 -4
- package/lib/Socket/messages-recv.js +219 -172
- package/lib/Socket/messages-send.js +187 -143
- package/lib/Socket/newsletter.js +61 -47
- package/lib/Socket/socket.js +133 -90
- package/lib/Socket/usync.js +6 -6
- package/lib/Store/index.js +27 -11
- package/lib/Store/make-cache-manager-store.js +14 -15
- package/lib/Store/make-in-memory-store.js +28 -24
- package/lib/Types/LabelAssociation.js +2 -2
- package/lib/Types/Message.js +6 -6
- package/lib/Types/MexUpdates.js +5 -5
- package/lib/Types/State.js +4 -4
- package/lib/Types/index.js +28 -12
- package/lib/Utils/auth-utils.js +28 -26
- package/lib/Utils/baileys-event-stream.js +68 -69
- package/lib/Utils/business.js +63 -53
- package/lib/Utils/chat-utils.js +81 -71
- package/lib/Utils/crypto.js +25 -45
- package/lib/Utils/decode-wa-message.js +319 -311
- package/lib/Utils/event-buffer.js +21 -22
- package/lib/Utils/generics.js +65 -82
- package/lib/Utils/history.js +21 -21
- package/lib/Utils/index.js +27 -13
- package/lib/Utils/link-preview.js +7 -30
- package/lib/Utils/logger.js +5 -5
- package/lib/Utils/lt-hash.js +3 -3
- package/lib/Utils/message-retry-manager.js +4 -4
- package/lib/Utils/messages-media.js +104 -109
- package/lib/Utils/messages.js +203 -171
- package/lib/Utils/noise-handler.js +28 -19
- package/lib/Utils/process-message.js +111 -96
- package/lib/Utils/signal.js +36 -25
- package/lib/Utils/use-multi-file-auth-state.js +18 -22
- package/lib/Utils/validate-connection.js +52 -45
- package/lib/WABinary/decode.js +6 -32
- package/lib/WABinary/encode.js +3 -29
- package/lib/WABinary/generic-utils.js +4 -4
- package/lib/WABinary/index.js +27 -11
- package/lib/WAM/encode.js +16 -8
- package/lib/WAM/index.js +27 -11
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +20 -16
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +2 -2
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +7 -4
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +2 -2
- package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -2
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +2 -2
- package/lib/WAUSync/Protocols/index.js +27 -11
- package/lib/WAUSync/USyncQuery.js +17 -10
- package/lib/WAUSync/index.js +27 -11
- package/lib/index.js +60 -31
- package/package.json +8 -14
- package/WAProto/AICommon/AICommon.d.ts +0 -11702
- package/WAProto/Adv/Adv.d.ts +0 -643
- package/WAProto/BotMetadata/BotMetadata.d.ts +0 -5654
- package/WAProto/Cert/Cert.d.ts +0 -613
- package/WAProto/ChatLockSettings/ChatLockSettings.d.ts +0 -476
- package/WAProto/CompanionReg/CompanionReg.d.ts +0 -1361
- package/WAProto/DeviceCapabilities/DeviceCapabilities.d.ts +0 -577
- package/WAProto/E2E/E2E.d.ts +0 -41724
- package/WAProto/Ephemeral/Ephemeral.d.ts +0 -114
- package/WAProto/HistorySync/HistorySync.d.ts +0 -51700
- package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.d.ts +0 -229
- package/WAProto/MdStorageChatRowOpaqueData/MdStorageChatRowOpaqueData.d.ts +0 -583
- package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.d.ts +0 -42897
- package/WAProto/MmsRetry/MmsRetry.d.ts +0 -243
- package/WAProto/Protocol/Protocol.d.ts +0 -270
- package/WAProto/Reporting/Reporting.d.ts +0 -371
- package/WAProto/ServerSync/ServerSync.d.ts +0 -1285
- package/WAProto/SignalLocalStorageProtocol/SignalLocalStorageProtocol.d.ts +0 -1868
- package/WAProto/SignalWhisperTextProtocol/SignalWhisperTextProtocol.d.ts +0 -767
- package/WAProto/StatusAttributions/StatusAttributions.d.ts +0 -1027
- package/WAProto/SyncAction/SyncAction.d.ts +0 -11193
- package/WAProto/UserPassword/UserPassword.d.ts +0 -363
- package/WAProto/VnameCert/VnameCert.d.ts +0 -821
- package/WAProto/Wa6/Wa6.d.ts +0 -2128
- package/WAProto/Web/Web.d.ts +0 -46383
- package/WAProto/index.d.ts +0 -55
- package/lib/Defaults/index.d.ts +0 -77
- package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
- package/lib/Signal/Group/group-session-builder.d.ts +0 -17
- package/lib/Signal/Group/group_cipher.d.ts +0 -19
- package/lib/Signal/Group/index.d.ts +0 -11
- package/lib/Signal/Group/keyhelper.d.ts +0 -16
- package/lib/Signal/Group/sender-chain-key.d.ts +0 -14
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -17
- package/lib/Signal/Group/sender-key-message.d.ts +0 -19
- package/lib/Signal/Group/sender-key-name.d.ts +0 -19
- package/lib/Signal/Group/sender-key-record.d.ts +0 -32
- package/lib/Signal/Group/sender-key-state.d.ts +0 -44
- package/lib/Signal/Group/sender-message-key.d.ts +0 -11
- package/lib/Signal/libsignal.d.ts +0 -8
- package/lib/Signal/lid-mapping.d.ts +0 -28
- package/lib/Socket/Client/index.d.ts +0 -2
- package/lib/Socket/Client/types.d.ts +0 -16
- package/lib/Socket/Client/websocket.d.ts +0 -13
- package/lib/Socket/business.d.ts +0 -187
- package/lib/Socket/chats.d.ts +0 -97
- package/lib/Socket/community.d.ts +0 -129
- package/lib/Socket/groups.d.ts +0 -129
- package/lib/Socket/index.d.ts +0 -191
- package/lib/Socket/messages-recv.d.ts +0 -174
- package/lib/Socket/messages-send.d.ts +0 -165
- package/lib/Socket/newsletter.d.ts +0 -145
- package/lib/Socket/socket.d.ts +0 -45
- package/lib/Socket/usync.d.ts +0 -37
- package/lib/Store/index.d.ts +0 -4
- package/lib/Store/make-cache-manager-store.d.ts +0 -14
- package/lib/Store/make-in-memory-store.d.ts +0 -123
- package/lib/Store/make-ordered-dictionary.d.ts +0 -12
- package/lib/Store/object-repository.d.ts +0 -10
- package/lib/Types/Auth.d.ts +0 -121
- package/lib/Types/Bussiness.d.ts +0 -28
- package/lib/Types/Call.d.ts +0 -14
- package/lib/Types/Chat.d.ts +0 -143
- package/lib/Types/Contact.d.ts +0 -23
- package/lib/Types/Events.d.ts +0 -226
- package/lib/Types/GroupMetadata.d.ts +0 -66
- package/lib/Types/Label.d.ts +0 -48
- package/lib/Types/LabelAssociation.d.ts +0 -35
- package/lib/Types/Message.d.ts +0 -484
- package/lib/Types/MexUpdates.d.ts +0 -9
- package/lib/Types/Newsletter.d.ts +0 -109
- package/lib/Types/Product.d.ts +0 -92
- package/lib/Types/Signal.d.ts +0 -98
- package/lib/Types/Socket.d.ts +0 -141
- package/lib/Types/State.d.ts +0 -41
- package/lib/Types/USync.d.ts +0 -26
- package/lib/Types/index.d.ts +0 -80
- package/lib/Utils/auth-utils.d.ts +0 -21
- package/lib/Utils/baileys-event-stream.d.ts +0 -18
- package/lib/Utils/business.d.ts +0 -29
- package/lib/Utils/chat-utils.d.ts +0 -82
- package/lib/Utils/crypto.d.ts +0 -56
- package/lib/Utils/decode-wa-message.d.ts +0 -53
- package/lib/Utils/event-buffer.d.ts +0 -39
- package/lib/Utils/generics.d.ts +0 -117
- package/lib/Utils/history.d.ts +0 -23
- package/lib/Utils/index.d.ts +0 -20
- package/lib/Utils/link-preview.d.ts +0 -23
- package/lib/Utils/logger.d.ts +0 -13
- package/lib/Utils/lt-hash.d.ts +0 -14
- package/lib/Utils/make-mutex.d.ts +0 -9
- package/lib/Utils/message-retry-manager.d.ts +0 -88
- package/lib/Utils/messages-media.d.ts +0 -135
- package/lib/Utils/messages.d.ts +0 -105
- package/lib/Utils/noise-handler.d.ts +0 -20
- package/lib/Utils/process-message.d.ts +0 -49
- package/lib/Utils/signal.d.ts +0 -42
- package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
- package/lib/Utils/use-mongo-file-auth-state.js +0 -84
- package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
- package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
- package/lib/Utils/use-single-file-auth-state.js +0 -80
- package/lib/Utils/validate-connection.d.ts +0 -13
- package/lib/WABinary/constants.d.ts +0 -30
- package/lib/WABinary/decode.d.ts +0 -9
- package/lib/WABinary/encode.d.ts +0 -3
- package/lib/WABinary/generic-utils.d.ts +0 -28
- package/lib/WABinary/index.d.ts +0 -5
- package/lib/WABinary/jid-utils.d.ts +0 -58
- package/lib/WABinary/types.d.ts +0 -22
- package/lib/WAM/BinaryInfo.d.ts +0 -16
- package/lib/WAM/constants.d.ts +0 -47
- package/lib/WAM/encode.d.ts +0 -3
- package/lib/WAM/index.d.ts +0 -3
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -10
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -26
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -14
- package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -10
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -14
- package/lib/WAUSync/Protocols/index.d.ts +0 -6
- package/lib/WAUSync/USyncQuery.d.ts +0 -31
- package/lib/WAUSync/USyncUser.d.ts +0 -12
- package/lib/WAUSync/index.d.ts +0 -3
- package/lib/index.d.ts +0 -13
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict"
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
|
+
|
|
5
|
+
const { Browsers } = require("../Utils")
|
|
6
|
+
const { default: logger } = require("../Utils/logger")
|
|
7
|
+
const { makeLibSignalRepository } = require("../Signal/libsignal")
|
|
8
|
+
const { version } = require("./baileys-version.json")
|
|
9
|
+
|
|
10
|
+
const DEFAULT_CONNECTION_CONFIG = {
|
|
11
|
+
version,
|
|
12
|
+
browser: Browsers.windows('Chrome'),
|
|
13
|
+
waWebSocketUrl: 'wss://web.whatsapp.com/ws/chat',
|
|
14
|
+
connectTimeoutMs: 20000,
|
|
15
|
+
keepAliveIntervalMs: 30000,
|
|
16
|
+
logger: logger.child({ class: 'baileys' }),
|
|
17
|
+
printQRInTerminal: false,
|
|
18
|
+
emitOwnEvents: true,
|
|
19
|
+
defaultQueryTimeoutMs: 60000,
|
|
20
|
+
customUploadHosts: [],
|
|
21
|
+
retryRequestDelayMs: 250,
|
|
22
|
+
maxMsgRetryCount: 5,
|
|
23
|
+
fireInitQueries: true,
|
|
24
|
+
auth: undefined,
|
|
25
|
+
markOnlineOnConnect: true,
|
|
26
|
+
syncFullHistory: false,
|
|
27
|
+
patchMessageBeforeSending: msg => msg,
|
|
28
|
+
shouldSyncHistoryMessage: () => true,
|
|
29
|
+
shouldIgnoreJid: () => false,
|
|
30
|
+
linkPreviewImageThumbnailWidth: 192,
|
|
31
|
+
transactionOpts: {
|
|
32
|
+
maxCommitRetries: 10,
|
|
33
|
+
delayBetweenTriesMs: 3000
|
|
34
|
+
},
|
|
35
|
+
generateHighQualityLinkPreview: false,
|
|
36
|
+
enableAutoSessionRecreation: true,
|
|
37
|
+
enableRecentMessageCache: true,
|
|
38
|
+
options: {},
|
|
39
|
+
appStateMacVerification: {
|
|
40
|
+
patch: false,
|
|
41
|
+
snapshot: false,
|
|
42
|
+
},
|
|
43
|
+
countryCode: 'EN',
|
|
44
|
+
getMessage: async () => undefined,
|
|
45
|
+
cachedGroupMetadata: async () => undefined,
|
|
46
|
+
makeSignalRepository: makeLibSignalRepository
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = {
|
|
50
|
+
DEFAULT_CONNECTION_CONFIG
|
|
51
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict"
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
|
+
|
|
5
|
+
const UNAUTHORIZED_CODES = [401, 403, 419]
|
|
6
|
+
|
|
7
|
+
const PHONENUMBER_MCC = require("./phonenumber-mcc.json")
|
|
8
|
+
|
|
9
|
+
const DEFAULT_ORIGIN = 'https://web.whatsapp.com'
|
|
10
|
+
|
|
11
|
+
const PHONE_CONNECTION_CB = 'CB:Pong'
|
|
12
|
+
|
|
13
|
+
const WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60
|
|
14
|
+
|
|
15
|
+
const NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0'
|
|
16
|
+
|
|
17
|
+
const DICT_VERSION = 3
|
|
18
|
+
|
|
19
|
+
const KEY_BUNDLE_TYPE = Buffer.from([5])
|
|
20
|
+
|
|
21
|
+
const NOISE_WA_HEADER = Buffer.from([87, 65, 6, DICT_VERSION]) // last is "DICT_VERSION"
|
|
22
|
+
|
|
23
|
+
/** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
|
|
24
|
+
const URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g
|
|
25
|
+
|
|
26
|
+
const MIN_PREKEY_COUNT = 5
|
|
27
|
+
|
|
28
|
+
const INITIAL_PREKEY_COUNT = 30
|
|
29
|
+
|
|
30
|
+
const UPLOAD_TIMEOUT = 30000 // 30 seconds
|
|
31
|
+
|
|
32
|
+
const MIN_UPLOAD_INTERVAL = 5000 // seconds minimum between uploads
|
|
33
|
+
|
|
34
|
+
const WA_CERT_DETAILS = {
|
|
35
|
+
SERIAL: 0
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const DEFAULT_CACHE_TTLS = {
|
|
39
|
+
SIGNAL_STORE: 5 * 60,
|
|
40
|
+
MSG_RETRY: 60 * 60,
|
|
41
|
+
CALL_OFFER: 5 * 60,
|
|
42
|
+
USER_DEVICES: 5 * 60, // 5 minutes
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = {
|
|
46
|
+
UNAUTHORIZED_CODES,
|
|
47
|
+
PHONENUMBER_MCC,
|
|
48
|
+
DEFAULT_ORIGIN,
|
|
49
|
+
PHONE_CONNECTION_CB,
|
|
50
|
+
WA_DEFAULT_EPHEMERAL,
|
|
51
|
+
NOISE_MODE,
|
|
52
|
+
DICT_VERSION,
|
|
53
|
+
KEY_BUNDLE_TYPE,
|
|
54
|
+
NOISE_WA_HEADER,
|
|
55
|
+
URL_REGEX,
|
|
56
|
+
MIN_PREKEY_COUNT,
|
|
57
|
+
MIN_UPLOAD_INTERVAL,
|
|
58
|
+
INITIAL_PREKEY_COUNT,
|
|
59
|
+
UPLOAD_TIMEOUT,
|
|
60
|
+
WA_CERT_DETAILS,
|
|
61
|
+
DEFAULT_CACHE_TTLS
|
|
62
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict"
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
|
+
|
|
5
|
+
const { proto } = require("../../WAProto")
|
|
6
|
+
|
|
7
|
+
const PROCESSABLE_HISTORY_TYPES = [
|
|
8
|
+
proto.Message.HistorySyncType.INITIAL_BOOTSTRAP,
|
|
9
|
+
proto.Message.HistorySyncType.PUSH_NAME,
|
|
10
|
+
proto.Message.HistorySyncType.RECENT,
|
|
11
|
+
proto.Message.HistorySyncType.FULL,
|
|
12
|
+
proto.Message.HistorySyncType.ON_DEMAND
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
module.exports = {
|
|
16
|
+
PROCESSABLE_HISTORY_TYPES
|
|
17
|
+
}
|
package/lib/Defaults/index.js
CHANGED
|
@@ -1,147 +1,41 @@
|
|
|
1
1
|
"use strict"
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k
|
|
5
|
+
|
|
6
|
+
let desc = Object.getOwnPropertyDescriptor(m, k)
|
|
7
|
+
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return m[k]
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
Object.defineProperty(o, k2, desc)
|
|
18
|
+
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k
|
|
21
|
+
o[k2] = m[k]
|
|
22
|
+
}
|
|
23
|
+
))
|
|
24
|
+
|
|
25
|
+
const __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
|
+
for (var p in m) {
|
|
27
|
+
if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) {
|
|
28
|
+
__createBinding(exports, m, p)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
5
31
|
}
|
|
6
32
|
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
33
|
+
Object.defineProperty(exports, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
})
|
|
8
36
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const logger_1 = __importDefault(require("../Utils/logger"));
|
|
15
|
-
const baileys_version_json_1 = require("./baileys-version.json");
|
|
16
|
-
const phonenumber_mcc_json_1 = __importDefault(require("./phonenumber-mcc.json"))
|
|
17
|
-
|
|
18
|
-
exports.UNAUTHORIZED_CODES = [401, 403, 419]
|
|
19
|
-
|
|
20
|
-
exports.PHONENUMBER_MCC = phonenumber_mcc_json_1.default
|
|
21
|
-
|
|
22
|
-
exports.DEFAULT_ORIGIN = 'https://web.whatsapp.com'
|
|
23
|
-
|
|
24
|
-
exports.CALL_VIDEO_PREFIX = 'https://call.whatsapp.com/video/'
|
|
25
|
-
|
|
26
|
-
exports.CALL_AUDIO_PREFIX = 'https://call.whatsapp.com/voice/'
|
|
27
|
-
|
|
28
|
-
exports.DEF_CALLBACK_PREFIX = 'CB:'
|
|
29
|
-
|
|
30
|
-
exports.DEF_TAG_PREFIX = 'TAG:'
|
|
31
|
-
|
|
32
|
-
exports.PHONE_CONNECTION_CB = 'CB:Pong'
|
|
33
|
-
|
|
34
|
-
exports.WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60
|
|
35
|
-
|
|
36
|
-
exports.NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0'
|
|
37
|
-
|
|
38
|
-
exports.DICT_VERSION = 3
|
|
39
|
-
|
|
40
|
-
exports.KEY_BUNDLE_TYPE = Buffer.from([5])
|
|
41
|
-
|
|
42
|
-
exports.NOISE_WA_HEADER = Buffer.from([87, 65, 6, exports.DICT_VERSION]) // last is "DICT_VERSION"
|
|
43
|
-
|
|
44
|
-
/** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
|
|
45
|
-
exports.URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g
|
|
46
|
-
|
|
47
|
-
exports.WA_CERT_DETAILS = {
|
|
48
|
-
SERIAL: 0,
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
exports.PROCESSABLE_HISTORY_TYPES = [
|
|
52
|
-
WAProto_1.proto.Message.HistorySyncType.INITIAL_BOOTSTRAP,
|
|
53
|
-
WAProto_1.proto.Message.HistorySyncType.PUSH_NAME,
|
|
54
|
-
WAProto_1.proto.Message.HistorySyncType.RECENT,
|
|
55
|
-
WAProto_1.proto.Message.HistorySyncType.FULL,
|
|
56
|
-
WAProto_1.proto.Message.HistorySyncType.ON_DEMAND
|
|
57
|
-
]
|
|
58
|
-
|
|
59
|
-
exports.DEFAULT_CONNECTION_CONFIG = {
|
|
60
|
-
version: baileys_version_json_1.version,
|
|
61
|
-
browser: Utils_1.Browsers.windows('Chrome'),
|
|
62
|
-
waWebSocketUrl: 'wss://web.whatsapp.com/ws/chat',
|
|
63
|
-
connectTimeoutMs: 20000,
|
|
64
|
-
keepAliveIntervalMs: 30000,
|
|
65
|
-
logger: logger_1.default.child({ class: 'baileys' }),
|
|
66
|
-
printQRInTerminal: false,
|
|
67
|
-
emitOwnEvents: true,
|
|
68
|
-
defaultQueryTimeoutMs: 60000,
|
|
69
|
-
customUploadHosts: [],
|
|
70
|
-
retryRequestDelayMs: 250,
|
|
71
|
-
maxMsgRetryCount: 5,
|
|
72
|
-
fireInitQueries: true,
|
|
73
|
-
auth: undefined,
|
|
74
|
-
markOnlineOnConnect: true,
|
|
75
|
-
syncFullHistory: false,
|
|
76
|
-
patchMessageBeforeSending: msg => msg,
|
|
77
|
-
shouldSyncHistoryMessage: () => true,
|
|
78
|
-
shouldIgnoreJid: () => false,
|
|
79
|
-
linkPreviewImageThumbnailWidth: 192,
|
|
80
|
-
transactionOpts: { maxCommitRetries: 10, delayBetweenTriesMs: 3000 },
|
|
81
|
-
generateHighQualityLinkPreview: false,
|
|
82
|
-
enableAutoSessionRecreation: true,
|
|
83
|
-
enableRecentMessageCache: true,
|
|
84
|
-
options: {},
|
|
85
|
-
appStateMacVerification: {
|
|
86
|
-
patch: false,
|
|
87
|
-
snapshot: false,
|
|
88
|
-
},
|
|
89
|
-
countryCode: 'EN',
|
|
90
|
-
getMessage: async () => undefined,
|
|
91
|
-
cachedGroupMetadata: async () => undefined,
|
|
92
|
-
makeSignalRepository: libsignal_1.makeLibSignalRepository
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
exports.MEDIA_PATH_MAP = {
|
|
96
|
-
image: '/mms/image',
|
|
97
|
-
video: '/mms/video',
|
|
98
|
-
document: '/mms/document',
|
|
99
|
-
audio: '/mms/audio',
|
|
100
|
-
sticker: '/mms/image',
|
|
101
|
-
'sticker-pack': '/mms/sticker',
|
|
102
|
-
'thumbnail-link': '/mms/image',
|
|
103
|
-
'product-catalog-image': '/product/image',
|
|
104
|
-
'md-app-state': '',
|
|
105
|
-
'md-msg-hist': '/mms/md-app-state',
|
|
106
|
-
'biz-cover-photo': '/pps/biz-cover-photo'
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
exports.MEDIA_HKDF_KEY_MAPPING = {
|
|
110
|
-
'audio': 'Audio',
|
|
111
|
-
'document': 'Document',
|
|
112
|
-
'gif': 'Video',
|
|
113
|
-
'image': 'Image',
|
|
114
|
-
'ppic': '',
|
|
115
|
-
'product': 'Image',
|
|
116
|
-
'ptt': 'Audio',
|
|
117
|
-
'video': 'Video',
|
|
118
|
-
'sticker': 'Image',
|
|
119
|
-
'sticker-pack': 'Sticker Pack',
|
|
120
|
-
'thumbnail-document': 'Document Thumbnail',
|
|
121
|
-
'thumbnail-image': 'Image Thumbnail',
|
|
122
|
-
'thumbnail-video': 'Video Thumbnail',
|
|
123
|
-
'thumbnail-link': 'Link Thumbnail',
|
|
124
|
-
'md-msg-hist': 'History',
|
|
125
|
-
'md-app-state': 'App State',
|
|
126
|
-
'product-catalog-image': '',
|
|
127
|
-
'payment-bg-image': 'Payment Background',
|
|
128
|
-
'ptv': 'Video',
|
|
129
|
-
'biz-cover-photo': 'Image'
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
exports.MEDIA_KEYS = Object.keys(exports.MEDIA_PATH_MAP)
|
|
133
|
-
|
|
134
|
-
exports.MIN_PREKEY_COUNT = 5
|
|
135
|
-
|
|
136
|
-
exports.INITIAL_PREKEY_COUNT = 30
|
|
137
|
-
|
|
138
|
-
exports.UPLOAD_TIMEOUT = 30000 // 30 seconds
|
|
139
|
-
|
|
140
|
-
exports.MIN_UPLOAD_INTERVAL = 5000 // seconds minimum between uploads
|
|
141
|
-
|
|
142
|
-
exports.DEFAULT_CACHE_TTLS = {
|
|
143
|
-
SIGNAL_STORE: 5 * 60,
|
|
144
|
-
MSG_RETRY: 60 * 60,
|
|
145
|
-
CALL_OFFER: 5 * 60,
|
|
146
|
-
USER_DEVICES: 5 * 60, // 5 minutes
|
|
147
|
-
}
|
|
37
|
+
__exportStar(require("./connection"), exports)
|
|
38
|
+
__exportStar(require("./constants"), exports)
|
|
39
|
+
__exportStar(require("./history"), exports)
|
|
40
|
+
__exportStar(require("./media"), exports)
|
|
41
|
+
__exportStar(require("./prefix"), exports)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict"
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
|
+
|
|
5
|
+
const MEDIA_PATH_MAP = {
|
|
6
|
+
image: '/mms/image',
|
|
7
|
+
video: '/mms/video',
|
|
8
|
+
document: '/mms/document',
|
|
9
|
+
audio: '/mms/audio',
|
|
10
|
+
sticker: '/mms/image',
|
|
11
|
+
'sticker-pack': '/mms/sticker',
|
|
12
|
+
'thumbnail-link': '/mms/image',
|
|
13
|
+
'product-catalog-image': '/product/image',
|
|
14
|
+
'md-app-state': '',
|
|
15
|
+
'md-msg-hist': '/mms/md-app-state',
|
|
16
|
+
'biz-cover-photo': '/pps/biz-cover-photo'
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const MEDIA_HKDF_KEY_MAPPING = {
|
|
20
|
+
'audio': 'Audio',
|
|
21
|
+
'document': 'Document',
|
|
22
|
+
'gif': 'Video',
|
|
23
|
+
'image': 'Image',
|
|
24
|
+
'ppic': '',
|
|
25
|
+
'product': 'Image',
|
|
26
|
+
'ptt': 'Audio',
|
|
27
|
+
'video': 'Video',
|
|
28
|
+
'sticker': 'Image',
|
|
29
|
+
'sticker-pack': 'Sticker Pack',
|
|
30
|
+
'thumbnail-document': 'Document Thumbnail',
|
|
31
|
+
'thumbnail-image': 'Image Thumbnail',
|
|
32
|
+
'thumbnail-video': 'Video Thumbnail',
|
|
33
|
+
'thumbnail-link': 'Link Thumbnail',
|
|
34
|
+
'md-msg-hist': 'History',
|
|
35
|
+
'md-app-state': 'App State',
|
|
36
|
+
'product-catalog-image': '',
|
|
37
|
+
'payment-bg-image': 'Payment Background',
|
|
38
|
+
'ptv': 'Video',
|
|
39
|
+
'biz-cover-photo': 'Image'
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const MEDIA_KEYS = Object.keys(MEDIA_PATH_MAP)
|
|
43
|
+
|
|
44
|
+
module.exports = {
|
|
45
|
+
MEDIA_KEYS,
|
|
46
|
+
MEDIA_PATH_MAP,
|
|
47
|
+
MEDIA_HKDF_KEY_MAPPING
|
|
48
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict"
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
|
+
|
|
5
|
+
const DEF_TAG_PREFIX = 'TAG:'
|
|
6
|
+
|
|
7
|
+
const DEF_CALLBACK_PREFIX = 'CB:'
|
|
8
|
+
|
|
9
|
+
const CALL_VIDEO_PREFIX = 'https://call.whatsapp.com/video/'
|
|
10
|
+
|
|
11
|
+
const CALL_AUDIO_PREFIX = 'https://call.whatsapp.com/voice/'
|
|
12
|
+
|
|
13
|
+
module.exports = {
|
|
14
|
+
DEF_TAG_PREFIX,
|
|
15
|
+
DEF_CALLBACK_PREFIX,
|
|
16
|
+
CALL_VIDEO_PREFIX,
|
|
17
|
+
CALL_AUDIO_PREFIX
|
|
18
|
+
}
|
|
@@ -1,45 +1,13 @@
|
|
|
1
1
|
"use strict"
|
|
2
2
|
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k)
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k] } }
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc)
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k
|
|
12
|
-
o[k2] = m[k]
|
|
13
|
-
}))
|
|
14
|
-
|
|
15
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v })
|
|
17
|
-
}) : function(o, v) {
|
|
18
|
-
o["default"] = v
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = []
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
|
|
26
|
-
return ar
|
|
27
|
-
}
|
|
28
|
-
return ownKeys(o)
|
|
29
|
-
}
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod
|
|
32
|
-
var result = {}
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
|
|
34
|
-
__setModuleDefault(result, mod)
|
|
35
|
-
return result
|
|
36
|
-
}
|
|
37
|
-
})()
|
|
38
|
-
|
|
39
3
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
40
4
|
|
|
41
|
-
const
|
|
42
|
-
|
|
5
|
+
const {
|
|
6
|
+
generateSenderKey,
|
|
7
|
+
generateSenderKeyId,
|
|
8
|
+
generateSenderSigningKey
|
|
9
|
+
} = require("./keyhelper")
|
|
10
|
+
const { SenderKeyDistributionMessage } = require("./sender-key-distribution-message")
|
|
43
11
|
|
|
44
12
|
class GroupSessionBuilder {
|
|
45
13
|
constructor(senderKeyStore) {
|
|
@@ -53,9 +21,9 @@ class GroupSessionBuilder {
|
|
|
53
21
|
async create(senderKeyName) {
|
|
54
22
|
const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName)
|
|
55
23
|
if (senderKeyRecord.isEmpty()) {
|
|
56
|
-
const keyId =
|
|
57
|
-
const senderKey =
|
|
58
|
-
const signingKey =
|
|
24
|
+
const keyId = generateSenderKeyId()
|
|
25
|
+
const senderKey = generateSenderKey()
|
|
26
|
+
const signingKey = generateSenderSigningKey()
|
|
59
27
|
senderKeyRecord.setSenderKeyState(keyId, 0, senderKey, signingKey)
|
|
60
28
|
await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord)
|
|
61
29
|
}
|
|
@@ -63,7 +31,7 @@ class GroupSessionBuilder {
|
|
|
63
31
|
if (!state) {
|
|
64
32
|
throw new Error('No session state available')
|
|
65
33
|
}
|
|
66
|
-
return new
|
|
34
|
+
return new SenderKeyDistributionMessage(state.getKeyId(), state.getSenderChainKey().getIteration(), state.getSenderChainKey().getSeed(), state.getSigningKeyPublic())
|
|
67
35
|
}
|
|
68
36
|
}
|
|
69
37
|
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
|
|
5
|
+
const {
|
|
6
|
+
decrypt,
|
|
7
|
+
encrypt
|
|
8
|
+
} = require("@itsukichan/libsignal-node/src/crypto")
|
|
9
|
+
const { SenderKeyMessage } = require("./sender-key-message")
|
|
7
10
|
|
|
8
11
|
class GroupCipher {
|
|
9
12
|
constructor(senderKeyStore, senderKeyName) {
|
|
@@ -26,7 +29,7 @@ class GroupCipher {
|
|
|
26
29
|
const iteration = senderKeyState.getSenderChainKey().getIteration()
|
|
27
30
|
const senderKey = this.getSenderKey(senderKeyState, iteration === 0 ? 0 : iteration + 1)
|
|
28
31
|
const ciphertext = await this.getCipherText(senderKey.getIv(), senderKey.getCipherKey(), paddedPlaintext)
|
|
29
|
-
const senderKeyMessage = new
|
|
32
|
+
const senderKeyMessage = new SenderKeyMessage(senderKeyState.getKeyId(), senderKey.getIteration(), ciphertext, senderKeyState.getSigningKeyPrivate())
|
|
30
33
|
|
|
31
34
|
await this.senderKeyStore.storeSenderKey(this.senderKeyName, record)
|
|
32
35
|
|
|
@@ -39,7 +42,7 @@ class GroupCipher {
|
|
|
39
42
|
throw new Error('No SenderKeyRecord found for decryption')
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
const senderKeyMessage = new
|
|
45
|
+
const senderKeyMessage = new SenderKeyMessage(null, null, null, null, senderKeyMessageBytes)
|
|
43
46
|
const senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId())
|
|
44
47
|
|
|
45
48
|
if (!senderKeyState) {
|
|
@@ -87,7 +90,7 @@ class GroupCipher {
|
|
|
87
90
|
}
|
|
88
91
|
async getPlainText(iv, key, ciphertext) {
|
|
89
92
|
try {
|
|
90
|
-
return
|
|
93
|
+
return decrypt(key, ciphertext, iv)
|
|
91
94
|
}
|
|
92
95
|
catch (e) {
|
|
93
96
|
throw new Error('InvalidMessageException')
|
|
@@ -98,7 +101,7 @@ class GroupCipher {
|
|
|
98
101
|
const ivBuffer = typeof iv === 'string' ? Buffer.from(iv, 'base64') : iv
|
|
99
102
|
const keyBuffer = typeof key === 'string' ? Buffer.from(key, 'base64') : key
|
|
100
103
|
const plaintextBuffer = typeof plaintext === 'string' ? Buffer.from(plaintext) : plaintext
|
|
101
|
-
return
|
|
104
|
+
return encrypt(keyBuffer, plaintextBuffer, ivBuffer)
|
|
102
105
|
}
|
|
103
106
|
catch (e) {
|
|
104
107
|
throw new Error('InvalidMessageException')
|
|
@@ -1,61 +1,47 @@
|
|
|
1
1
|
"use strict"
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
4
|
if (k2 === undefined) k2 = k
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
let desc = Object.getOwnPropertyDescriptor(m, k)
|
|
7
|
+
|
|
6
8
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = {
|
|
9
|
+
desc = {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return m[k]
|
|
13
|
+
}
|
|
14
|
+
}
|
|
8
15
|
}
|
|
9
|
-
Object.defineProperty(o, k2, desc)
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k
|
|
12
|
-
o[k2] = m[k]
|
|
13
|
-
}))
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v })
|
|
17
|
-
}) : function(o, v) {
|
|
18
|
-
o["default"] = v
|
|
19
|
-
})
|
|
17
|
+
Object.defineProperty(o, k2, desc)
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var ar = []
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
|
|
26
|
-
return ar
|
|
27
|
-
}
|
|
28
|
-
return ownKeys(o)
|
|
29
|
-
}
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod
|
|
32
|
-
var result = {}
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
|
|
34
|
-
__setModuleDefault(result, mod)
|
|
35
|
-
return result
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k
|
|
21
|
+
o[k2] = m[k]
|
|
36
22
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
23
|
+
))
|
|
24
|
+
|
|
25
|
+
const __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
|
+
for (var p in m) {
|
|
27
|
+
if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) {
|
|
28
|
+
__createBinding(exports, m, p)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
Object.defineProperty(exports, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
__exportStar(require("./ciphertext-message"), exports)
|
|
38
|
+
__exportStar(require("./group-session-builder"), exports)
|
|
39
|
+
__exportStar(require("./group_cipher"), exports)
|
|
40
|
+
__exportStar(require("./keyhelper"), exports)
|
|
41
|
+
__exportStar(require("./sender-chain-key"), exports)
|
|
42
|
+
__exportStar(require("./sender-key-distribution-message"), exports)
|
|
43
|
+
__exportStar(require("./sender-key-message"), exports)
|
|
44
|
+
__exportStar(require("./sender-key-name"), exports)
|
|
45
|
+
__exportStar(require("./sender-key-record"), exports)
|
|
46
|
+
__exportStar(require("./sender-key-state"), exports)
|
|
47
|
+
__exportStar(require("./sender-message-key"), exports)
|
|
@@ -1,57 +1,24 @@
|
|
|
1
1
|
"use strict"
|
|
2
2
|
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k)
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k] } }
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc)
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k
|
|
12
|
-
o[k2] = m[k]
|
|
13
|
-
}))
|
|
14
|
-
|
|
15
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v })
|
|
17
|
-
}) : function(o, v) {
|
|
18
|
-
o["default"] = v
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = []
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
|
|
26
|
-
return ar
|
|
27
|
-
}
|
|
28
|
-
return ownKeys(o)
|
|
29
|
-
}
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod
|
|
32
|
-
var result = {}
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
|
|
34
|
-
__setModuleDefault(result, mod)
|
|
35
|
-
return result
|
|
36
|
-
}
|
|
37
|
-
})()
|
|
38
|
-
|
|
39
3
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
40
4
|
|
|
41
|
-
const
|
|
42
|
-
|
|
5
|
+
const {
|
|
6
|
+
randomInt,
|
|
7
|
+
randomBytes
|
|
8
|
+
} = require("crypto")
|
|
9
|
+
const { generateKeyPair } = require("@itsukichan/libsignal-node/src/curve")
|
|
43
10
|
|
|
44
11
|
function generateSenderKey() {
|
|
45
|
-
return
|
|
12
|
+
return randomBytes(32)
|
|
46
13
|
}
|
|
47
14
|
|
|
48
15
|
function generateSenderKeyId() {
|
|
49
|
-
return
|
|
16
|
+
return randomInt(2147483647)
|
|
50
17
|
}
|
|
51
18
|
|
|
52
19
|
function generateSenderSigningKey(key) {
|
|
53
20
|
if (!key) {
|
|
54
|
-
key =
|
|
21
|
+
key = generateKeyPair()
|
|
55
22
|
}
|
|
56
23
|
return {
|
|
57
24
|
public: Buffer.from(key.pubKey),
|