@leonoremods/baileys 0.0.0-stage → 1.2.9

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 (150) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1204 -2
  3. package/WAProto/GenerateStatics.sh +3 -0
  4. package/WAProto/WAProto.proto +8083 -0
  5. package/WAProto/fix-imports.js +75 -0
  6. package/WAProto/index.d.ts +23020 -0
  7. package/WAProto/index.js +136324 -0
  8. package/engine-requirements.js +17 -0
  9. package/package.json +107 -4
  10. package/scripts/check-syntax.js +28 -0
  11. package/src/Defaults/index.js +186 -0
  12. package/src/Defaults/phonenumber-mcc.json +223 -0
  13. package/src/Signal/Group/ciphertext-message.js +15 -0
  14. package/src/Signal/Group/group-session-builder.js +86 -0
  15. package/src/Signal/Group/group_cipher.js +82 -0
  16. package/src/Signal/Group/index.js +140 -0
  17. package/src/Signal/Group/keyhelper.js +77 -0
  18. package/src/Signal/Group/sender-chain-key.js +29 -0
  19. package/src/Signal/Group/sender-key-distribution-message.js +66 -0
  20. package/src/Signal/Group/sender-key-message.js +69 -0
  21. package/src/Signal/Group/sender-key-name.js +51 -0
  22. package/src/Signal/Group/sender-key-record.js +44 -0
  23. package/src/Signal/Group/sender-key-state.js +87 -0
  24. package/src/Signal/Group/sender-message-key.js +29 -0
  25. package/src/Signal/libsignal.js +455 -0
  26. package/src/Signal/lid-mapping.js +273 -0
  27. package/src/Socket/Client/index.js +31 -0
  28. package/src/Socket/Client/types.js +13 -0
  29. package/src/Socket/Client/websocket.js +61 -0
  30. package/src/Socket/aigroups.js +221 -0
  31. package/src/Socket/business.js +411 -0
  32. package/src/Socket/chats.js +1449 -0
  33. package/src/Socket/communities.js +463 -0
  34. package/src/Socket/graphql.js +523 -0
  35. package/src/Socket/groups.js +516 -0
  36. package/src/Socket/index.js +31 -0
  37. package/src/Socket/interactive-handler.js +527 -0
  38. package/src/Socket/interop.js +339 -0
  39. package/src/Socket/luxu.js +349 -0
  40. package/src/Socket/managed-account.js +98 -0
  41. package/src/Socket/messages-recv.js +2685 -0
  42. package/src/Socket/messages-send.js +2047 -0
  43. package/src/Socket/mex.js +57 -0
  44. package/src/Socket/newsletter.js +455 -0
  45. package/src/Socket/privacy.js +125 -0
  46. package/src/Socket/registration.js +236 -0
  47. package/src/Socket/socket.js +983 -0
  48. package/src/Socket/text-router.js +65 -0
  49. package/src/Socket/username.js +130 -0
  50. package/src/Store/index.js +33 -0
  51. package/src/Store/keyed-db.js +118 -0
  52. package/src/Store/make-cache-manager-store.js +84 -0
  53. package/src/Store/make-in-memory-store.js +551 -0
  54. package/src/Store/make-ordered-dictionary.js +81 -0
  55. package/src/Store/object-repository.js +26 -0
  56. package/src/Types/Auth.js +31 -0
  57. package/src/Types/Bussines.js +2 -0
  58. package/src/Types/Call.js +2 -0
  59. package/src/Types/Chat.js +4 -0
  60. package/src/Types/Contact.js +2 -0
  61. package/src/Types/Events.js +2 -0
  62. package/src/Types/GroupMetadata.js +2 -0
  63. package/src/Types/Label.js +26 -0
  64. package/src/Types/LabelAssociation.js +8 -0
  65. package/src/Types/Message.js +93 -0
  66. package/src/Types/Mex.js +112 -0
  67. package/src/Types/Newsletter.js +109 -0
  68. package/src/Types/Product.js +2 -0
  69. package/src/Types/Signal.js +2 -0
  70. package/src/Types/Socket.js +2 -0
  71. package/src/Types/State.js +62 -0
  72. package/src/Types/USync.js +2 -0
  73. package/src/Types/index.js +56 -0
  74. package/src/Utils/auth-utils.js +254 -0
  75. package/src/Utils/browser-utils.js +112 -0
  76. package/src/Utils/business.js +240 -0
  77. package/src/Utils/chat-utils.js +1230 -0
  78. package/src/Utils/command-loader.d.ts +27 -0
  79. package/src/Utils/command-loader.js +89 -0
  80. package/src/Utils/companion-reg-client-utils.js +40 -0
  81. package/src/Utils/consumer-application.js +105 -0
  82. package/src/Utils/crypto.js +118 -0
  83. package/src/Utils/curve25519-js.js +242 -0
  84. package/src/Utils/decode-wa-message.js +529 -0
  85. package/src/Utils/event-buffer.js +580 -0
  86. package/src/Utils/generics.js +483 -0
  87. package/src/Utils/group-history.js +44 -0
  88. package/src/Utils/history.js +232 -0
  89. package/src/Utils/identity-change-handler.js +52 -0
  90. package/src/Utils/index.js +59 -0
  91. package/src/Utils/jid-display-normalization.js +195 -0
  92. package/src/Utils/link-preview.js +135 -0
  93. package/src/Utils/logger.js +8 -0
  94. package/src/Utils/lt-hash.js +25 -0
  95. package/src/Utils/make-mutex.js +36 -0
  96. package/src/Utils/message-composer.js +471 -0
  97. package/src/Utils/message-retry-manager.js +217 -0
  98. package/src/Utils/messages-media.js +843 -0
  99. package/src/Utils/messages.js +2817 -0
  100. package/src/Utils/meta-ai-msmsg.js +222 -0
  101. package/src/Utils/native-bridge.js +68 -0
  102. package/src/Utils/noise-handler.js +169 -0
  103. package/src/Utils/offline-node-processor.js +34 -0
  104. package/src/Utils/pre-key-manager.js +90 -0
  105. package/src/Utils/process-message.js +950 -0
  106. package/src/Utils/reporting-utils.js +261 -0
  107. package/src/Utils/session-pool.d.ts +14 -0
  108. package/src/Utils/session-pool.js +70 -0
  109. package/src/Utils/signal.js +217 -0
  110. package/src/Utils/socket-tools.js +252 -0
  111. package/src/Utils/stanza-ack.js +30 -0
  112. package/src/Utils/sticker.d.ts +13 -0
  113. package/src/Utils/sticker.js +123 -0
  114. package/src/Utils/sync-action-utils.js +45 -0
  115. package/src/Utils/tc-token-utils.js +158 -0
  116. package/src/Utils/use-multi-file-auth-state.js +111 -0
  117. package/src/Utils/validate-connection.js +209 -0
  118. package/src/Utils/view-once-cache.d.ts +12 -0
  119. package/src/Utils/view-once-cache.js +63 -0
  120. package/src/Utils/voip-rekey.js +22 -0
  121. package/src/WABinary/constants.js +1304 -0
  122. package/src/WABinary/decode.js +342 -0
  123. package/src/WABinary/encode.js +225 -0
  124. package/src/WABinary/generic-utils.js +238 -0
  125. package/src/WABinary/index.js +34 -0
  126. package/src/WABinary/jid-utils.js +351 -0
  127. package/src/WABinary/types.js +2 -0
  128. package/src/WAM/BinaryInfo.js +13 -0
  129. package/src/WAM/constants.js +39484 -0
  130. package/src/WAM/encode.js +149 -0
  131. package/src/WAM/index.js +32 -0
  132. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +53 -0
  133. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +44 -0
  134. package/src/WAUSync/Protocols/USyncContactProtocol.js +55 -0
  135. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +55 -0
  136. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +31 -0
  137. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +54 -0
  138. package/src/WAUSync/Protocols/USyncLIDProtocol.js +32 -0
  139. package/src/WAUSync/Protocols/USyncNewsletterProtocol.js +481 -0
  140. package/src/WAUSync/Protocols/USyncPictureProtocol.js +34 -0
  141. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +29 -0
  142. package/src/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  143. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  144. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +28 -0
  145. package/src/WAUSync/Protocols/index.js +40 -0
  146. package/src/WAUSync/USyncQuery.js +126 -0
  147. package/src/WAUSync/USyncUser.js +50 -0
  148. package/src/WAUSync/index.js +32 -0
  149. package/src/antiban.js +4152 -0
  150. package/src/index.js +78 -0
@@ -0,0 +1,17 @@
1
+ const major = parseInt(process.versions.node.split(".")[0], 10);
2
+ if (major < 20) {
3
+ console.error(`
4
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━
5
+ 🚫 Unsupported Node.js Version
6
+
7
+ • Current : v${process.versions.node}
8
+ • Required : v20.0.0+
9
+
10
+ This package uses features available only in
11
+ Node.js 20 or newer.
12
+
13
+ Please update Node.js and try again.
14
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━
15
+ `);
16
+ process.exit(1);
17
+ }
package/package.json CHANGED
@@ -1,6 +1,109 @@
1
1
  {
2
2
  "name": "@leonoremods/baileys",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.2.9",
4
+ "description": "Baileys WhatsApp API modification by LeonoreMods",
5
+ "keywords": [
6
+ "whatsapp",
7
+ "whatsapp-web",
8
+ "whatsapp-api",
9
+ "baileys",
10
+ "multi-device",
11
+ "wasm",
12
+ "rust",
13
+ "automation",
14
+ "md",
15
+ "newsletter",
16
+ "rich-message",
17
+ "media",
18
+ "websocket",
19
+ "reconnect",
20
+ "message-queue"
21
+ ],
22
+ "homepage": "https://www.npmjs.com/package/@leonoremods/baileys",
23
+ "license": "MIT",
24
+ "author": "LeonoreMods",
25
+ "main": "src/index.js",
26
+ "files": [
27
+ "src/**/*",
28
+ "WAProto/**/*",
29
+ "engine-requirements.js",
30
+ "scripts/**/*"
31
+ ],
32
+ "scripts": {
33
+ "format": "prettier --write \"src/**/*.{js,json,md}\"",
34
+ "lint": "node ./scripts/check-syntax.js",
35
+ "lint:fix": "npm run format && npm run lint",
36
+ "test": "jest --runInBand",
37
+ "preinstall": "node ./engine-requirements.js",
38
+ "prepublishOnly": "npm run lint && npm test"
39
+ },
40
+ "dependencies": {
41
+ "@adiwajshing/keyed-db": "^0.2.4",
42
+ "@cacheable/node-cache": "^3.0.1",
43
+ "@hapi/boom": "^10.0.1",
44
+ "async-mutex": "^0.5.0",
45
+ "cache-manager": "^7.2.8",
46
+ "chalk": "^4.1.2",
47
+ "jimp": "^1.6.0",
48
+ "libphonenumber-js": "^1.13.3",
49
+ "lru-cache": "^11.5.0",
50
+ "music-metadata": "^11.12.3",
51
+ "p-queue": "^9.3.0",
52
+ "pino": "^10.3.1",
53
+ "protobufjs": "^7.6.1",
54
+ "whatsapp-rust-bridge": "0.5.4",
55
+ "ws": "^8.21.0"
56
+ },
57
+ "devDependencies": {
58
+ "@eslint/eslintrc": "^3.3.1",
59
+ "@eslint/js": "^9.31.0",
60
+ "@types/jest": "^30.0.0",
61
+ "@types/node": "^22.0.0",
62
+ "@types/ws": "^8.0.0",
63
+ "@typescript-eslint/eslint-plugin": "^8.59.4",
64
+ "@typescript-eslint/parser": "^8.59.4",
65
+ "@whiskeysockets/eslint-config": "^1.0.0",
66
+ "eslint": "^9",
67
+ "eslint-config-prettier": "^10.1.8",
68
+ "eslint-plugin-prettier": "^5.4.1",
69
+ "jest": "^29.7.0",
70
+ "jimp": "^1.6.0",
71
+ "jiti": "^2.4.2",
72
+ "json": "^11.0.0",
73
+ "link-preview-js": "^4.0.4",
74
+ "pino-pretty": "^13.1.1",
75
+ "prettier": "^3.5.3",
76
+ "protobufjs-cli": "^1.3.1",
77
+ "qrcode-terminal": "^0.12.0",
78
+ "ts-jest": "^29.4.11",
79
+ "tsx": "^4.22.3"
80
+ },
81
+ "peerDependencies": {
82
+ "@img/sharp-wasm32": "^0.35.1",
83
+ "audio-decode": "^2.1.3",
84
+ "link-preview-js": "^4.0.4",
85
+ "sharp": "^0.32.5"
86
+ },
87
+ "peerDependenciesMeta": {
88
+ "audio-decode": {
89
+ "optional": true
90
+ },
91
+ "link-preview-js": {
92
+ "optional": true
93
+ },
94
+ "@img/sharp-wasm32": {
95
+ "optional": true
96
+ },
97
+ "sharp": {
98
+ "optional": true
99
+ }
100
+ },
101
+ "packageManager": "yarn@4.9.2",
102
+ "engines": {
103
+ "node": ">=20.0.0"
104
+ },
105
+ "repository": {
106
+ "type": "git",
107
+ "url": "git+https://github.com/LeonoreXd/Baileys.git"
108
+ }
109
+ }
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { spawnSync } = require('child_process');
6
+
7
+ const roots = ['src', 'WAProto'];
8
+ const files = [];
9
+
10
+ const walk = directory => {
11
+ if (!fs.existsSync(directory)) return;
12
+ for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
13
+ const fullPath = path.join(directory, entry.name);
14
+ if (entry.isDirectory()) walk(fullPath);
15
+ else if (entry.isFile() && fullPath.endsWith('.js')) files.push(fullPath);
16
+ }
17
+ };
18
+
19
+ for (const root of roots) walk(root);
20
+
21
+ let failed = false;
22
+ for (const file of files) {
23
+ const result = spawnSync(process.execPath, ['--check', file], { stdio: 'inherit' });
24
+ if (result.status !== 0) failed = true;
25
+ }
26
+
27
+ if (failed) process.exit(1);
28
+ console.log(`Syntax check passed for ${files.length} JavaScript files.`);
@@ -0,0 +1,186 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) ||
3
+ function (mod) {
4
+ return mod && mod.__esModule ? mod : { default: mod };
5
+ };
6
+ Object.defineProperty(exports, '__esModule', { value: true });
7
+ exports.VERSION =
8
+ exports.TimeMs =
9
+ exports.DEFAULT_CACHE_TTLS =
10
+ exports.MIN_UPLOAD_INTERVAL =
11
+ exports.UPLOAD_TIMEOUT =
12
+ exports.INITIAL_PREKEY_COUNT =
13
+ exports.MIN_PREKEY_COUNT =
14
+ exports.MEDIA_KEYS =
15
+ exports.MEDIA_HKDF_KEY_MAPPING =
16
+ exports.MEDIA_PATH_MAP =
17
+ exports.DEFAULT_CONNECTION_CONFIG =
18
+ exports.PROCESSABLE_HISTORY_TYPES =
19
+ exports.WA_CERT_DETAILS =
20
+ exports.URL_REGEX =
21
+ exports.NOISE_WA_HEADER =
22
+ exports.KEY_BUNDLE_TYPE =
23
+ exports.DICT_VERSION =
24
+ exports.NOISE_MODE =
25
+ exports.PLACEHOLDER_MAX_AGE_SECONDS =
26
+ exports.STATUS_EXPIRY_SECONDS =
27
+ exports.WA_DEFAULT_EPHEMERAL =
28
+ exports.WA_ADV_HOSTED_DEVICE_SIG_PREFIX =
29
+ exports.WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX =
30
+ exports.WA_ADV_DEVICE_SIG_PREFIX =
31
+ exports.WA_ADV_ACCOUNT_SIG_PREFIX =
32
+ exports.PHONE_CONNECTION_CB =
33
+ exports.DEF_TAG_PREFIX =
34
+ exports.DEF_CALLBACK_PREFIX =
35
+ exports.CALL_AUDIO_PREFIX =
36
+ exports.CALL_VIDEO_PREFIX =
37
+ exports.DEFAULT_ORIGIN =
38
+ exports.UNAUTHORIZED_CODES =
39
+ void 0;
40
+ const index_js_1 = require('../../WAProto/index.js');
41
+ const libsignal_1 = require('../Signal/libsignal');
42
+ const browser_utils_1 = require('../Utils/browser-utils');
43
+ const logger_1 = __importDefault(require('../Utils/logger'));
44
+ const version = [2, 3000, 1041467552];
45
+ exports.VERSION = version;
46
+ exports.UNAUTHORIZED_CODES = [401, 403, 419];
47
+ exports.DEFAULT_ORIGIN = 'https://web.whatsapp.com';
48
+ exports.CALL_VIDEO_PREFIX = 'https://call.whatsapp.com/video/';
49
+ exports.CALL_AUDIO_PREFIX = 'https://call.whatsapp.com/voice/';
50
+ exports.DEF_CALLBACK_PREFIX = 'CB:';
51
+ exports.DEF_TAG_PREFIX = 'TAG:';
52
+ exports.PHONE_CONNECTION_CB = 'CB:Pong';
53
+ exports.WA_ADV_ACCOUNT_SIG_PREFIX = Buffer.from([6, 0]);
54
+ exports.WA_ADV_DEVICE_SIG_PREFIX = Buffer.from([6, 1]);
55
+ exports.WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX = Buffer.from([6, 5]);
56
+ exports.WA_ADV_HOSTED_DEVICE_SIG_PREFIX = Buffer.from([6, 6]);
57
+ exports.WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60;
58
+ exports.STATUS_EXPIRY_SECONDS = 24 * 60 * 60;
59
+ exports.PLACEHOLDER_MAX_AGE_SECONDS = 14 * 24 * 60 * 60;
60
+ exports.NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0';
61
+ exports.DICT_VERSION = 3;
62
+ exports.KEY_BUNDLE_TYPE = Buffer.from([5]);
63
+ exports.NOISE_WA_HEADER = Buffer.from([87, 65, 6, exports.DICT_VERSION]);
64
+ exports.URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g;
65
+ exports.WA_CERT_DETAILS = {
66
+ SERIAL: 0,
67
+ ISSUER: 'WhatsAppLongTerm1',
68
+ PUBLIC_KEY: Buffer.from('142375574d0a587166aae71ebe516437c4a28b73e3695c6ce1f7f9545da8ee6b', 'hex')
69
+ };
70
+ exports.HISTORY_SYNC_PAUSED_TIMEOUT_MS = 120000;
71
+ exports.PROCESSABLE_HISTORY_TYPES = [
72
+ index_js_1.proto.HistorySync.HistorySyncType.INITIAL_BOOTSTRAP,
73
+ index_js_1.proto.HistorySync.HistorySyncType.PUSH_NAME,
74
+ index_js_1.proto.HistorySync.HistorySyncType.RECENT,
75
+ index_js_1.proto.HistorySync.HistorySyncType.FULL,
76
+ index_js_1.proto.HistorySync.HistorySyncType.ON_DEMAND,
77
+ index_js_1.proto.HistorySync.HistorySyncType.NON_BLOCKING_DATA,
78
+ index_js_1.proto.HistorySync.HistorySyncType.INITIAL_STATUS_V3
79
+ ];
80
+ exports.DEFAULT_CONNECTION_CONFIG = {
81
+ version: version,
82
+ browser: browser_utils_1.Browsers.windows('Firefox'),
83
+ waWebSocketUrl: 'wss://web.whatsapp.com/ws/chat',
84
+ connectTimeoutMs: 20000,
85
+ keepAliveIntervalMs: 30000,
86
+ aiLabel: true,
87
+ logger: logger_1.default.child({ class: 'baileys' }),
88
+ emitOwnEvents: true,
89
+ defaultQueryTimeoutMs: 60000,
90
+ customUploadHosts: [],
91
+ retryRequestDelayMs: 250,
92
+ maxMsgRetryCount: 5,
93
+ fireInitQueries: true,
94
+ auth: undefined,
95
+ markOnlineOnConnect: true,
96
+ syncFullHistory: false,
97
+ patchMessageBeforeSending: msg => msg,
98
+ shouldSyncHistoryMessage: ({ syncType }) => {
99
+ return syncType !== index_js_1.proto.HistorySync.HistorySyncType.FULL;
100
+ },
101
+ shouldIgnoreJid: () => false,
102
+ masqueradeAsPrimary: false,
103
+ linkPreviewImageThumbnailWidth: 192,
104
+ transactionOpts: { maxCommitRetries: 10, delayBetweenTriesMs: 3000 },
105
+ generateHighQualityLinkPreview: false,
106
+ enableAutoSessionRecreation: true,
107
+ enableRecentMessageCache: true,
108
+ options: {},
109
+ appStateMacVerification: {
110
+ patch: false,
111
+ snapshot: false
112
+ },
113
+ countryCode: 'US',
114
+ getMessage: async () => undefined,
115
+ cachedGroupMetadata: async () => undefined,
116
+ makeSignalRepository: libsignal_1.makeLibSignalRepository,
117
+ maxConcurrentUploads: 3,
118
+ presenceUpdateIntervalMs: 5000,
119
+ groupMetadataCacheTTL: 30 * 60 * 1000,
120
+ useCachedGroupMetadata: false,
121
+ enableCallHistory: false,
122
+ reconnectOnNetworkChange: false
123
+ };
124
+ exports.MEDIA_PATH_MAP = {
125
+ image: '/mms/image',
126
+ video: '/mms/video',
127
+ document: '/mms/document',
128
+ audio: '/mms/audio',
129
+ sticker: '/mms/image',
130
+ 'thumbnail-link': '/mms/image',
131
+ 'thumbnail-image': '/mms/image',
132
+ 'thumbnail-video': '/mms/video',
133
+ 'thumbnail-document': '/mms/document',
134
+ 'product-catalog-image': '/product/image',
135
+ 'md-app-state': '',
136
+ 'md-msg-hist': '/mms/md-app-state',
137
+ 'biz-cover-photo': '/pps/biz-cover-photo',
138
+ ptv: '/mms/video'
139
+ };
140
+ exports.MEDIA_HKDF_KEY_MAPPING = {
141
+ audio: 'Audio',
142
+ document: 'Document',
143
+ gif: 'Video',
144
+ image: 'Image',
145
+ ppic: '',
146
+ product: 'Image',
147
+ ptt: 'Audio',
148
+ sticker: 'Image',
149
+ video: 'Video',
150
+ 'thumbnail-document': 'Document Thumbnail',
151
+ 'thumbnail-image': 'Image Thumbnail',
152
+ 'thumbnail-video': 'Video Thumbnail',
153
+ 'thumbnail-link': 'Link Thumbnail',
154
+ 'md-msg-hist': 'History',
155
+ 'md-app-state': 'App State',
156
+ 'product-catalog-image': 'Product Catalog Image',
157
+ 'payment-bg-image': 'Payment Background',
158
+ ptv: 'Video',
159
+ 'biz-cover-photo': 'Image',
160
+ location: 'Location',
161
+ contact: 'Contact',
162
+ 'voip-token': 'Voip Token'
163
+ };
164
+ exports.MEDIA_KEYS = Object.keys(exports.MEDIA_PATH_MAP);
165
+ exports.MIN_PREKEY_COUNT = 5;
166
+ exports.INITIAL_PREKEY_COUNT = 812;
167
+ exports.UPLOAD_TIMEOUT = 30000;
168
+ exports.MIN_UPLOAD_INTERVAL = 5000;
169
+ exports.DEFAULT_CACHE_TTLS = {
170
+ SIGNAL_STORE: 5 * 60,
171
+ MSG_RETRY: 60 * 60,
172
+ CALL_OFFER: 5 * 60,
173
+ USER_DEVICES: 5 * 60,
174
+ GROUP_METADATA: 30 * 60,
175
+ CALL_SESSION: 10 * 60,
176
+ USYNC_RESULTS: 10 * 60,
177
+ IDENTITY_PROOF: 60 * 60
178
+ };
179
+ exports.TimeMs = {
180
+ Second: 1000,
181
+ Minute: 60 * 1000,
182
+ Hour: 60 * 60 * 1000,
183
+ Day: 24 * 60 * 60 * 1000,
184
+ Week: 7 * 24 * 60 * 60 * 1000,
185
+ Month: 30 * 24 * 60 * 60 * 1000
186
+ };
@@ -0,0 +1,223 @@
1
+ {
2
+ "93": 412,
3
+ "355": 276,
4
+ "213": 603,
5
+ "1-684": 544,
6
+ "376": 213,
7
+ "244": 631,
8
+ "1-264": 365,
9
+ "1-268": 344,
10
+ "54": 722,
11
+ "374": 283,
12
+ "297": 363,
13
+ "61": 505,
14
+ "43": 232,
15
+ "994": 400,
16
+ "1-242": 364,
17
+ "973": 426,
18
+ "880": 470,
19
+ "1-246": 342,
20
+ "375": 257,
21
+ "32": 206,
22
+ "501": 702,
23
+ "229": 616,
24
+ "1-441": 350,
25
+ "975": 402,
26
+ "591": 736,
27
+ "387": 218,
28
+ "267": 652,
29
+ "55": 724,
30
+ "1-284": 348,
31
+ "673": 528,
32
+ "359": 284,
33
+ "226": 613,
34
+ "257": 642,
35
+ "855": 456,
36
+ "237": 624,
37
+ "238": 625,
38
+ "1-345": 346,
39
+ "236": 623,
40
+ "235": 622,
41
+ "56": 730,
42
+ "86": 454,
43
+ "57": 732,
44
+ "269": 654,
45
+ "682": 548,
46
+ "506": 712,
47
+ "385": 219,
48
+ "53": 368,
49
+ "357": 280,
50
+ "420": 230,
51
+ "243": 630,
52
+ "45": 238,
53
+ "253": 638,
54
+ "1-767": 366,
55
+ "1-809": 370,
56
+ "1-849": 370,
57
+ "1-829": 370,
58
+ "593": 740,
59
+ "20": 602,
60
+ "503": 706,
61
+ "240": 627,
62
+ "291": 657,
63
+ "372": 248,
64
+ "251": 636,
65
+ "500": 750,
66
+ "298": 288,
67
+ "679": 542,
68
+ "358": 244,
69
+ "33": 208,
70
+ "689": 547,
71
+ "241": 628,
72
+ "220": 607,
73
+ "995": 282,
74
+ "49": 262,
75
+ "233": 620,
76
+ "350": 266,
77
+ "30": 202,
78
+ "299": 290,
79
+ "1-473": 352,
80
+ "1-671": 535,
81
+ "502": 704,
82
+ "224": 537,
83
+ "592": 738,
84
+ "509": 372,
85
+ "504": 708,
86
+ "852": 454,
87
+ "36": 216,
88
+ "354": 274,
89
+ "91": 404,
90
+ "62": 510,
91
+ "98": 432,
92
+ "964": 418,
93
+ "353": 234,
94
+ "972": 425,
95
+ "39": 222,
96
+ "225": 612,
97
+ "1-876": 338,
98
+ "81": 440,
99
+ "962": 416,
100
+ "254": 639,
101
+ "686": 545,
102
+ "383": 221,
103
+ "965": 419,
104
+ "371": 247,
105
+ "961": 415,
106
+ "266": 651,
107
+ "231": 618,
108
+ "218": 606,
109
+ "423": 295,
110
+ "370": 246,
111
+ "352": 270,
112
+ "389": 294,
113
+ "261": 646,
114
+ "265": 650,
115
+ "60": 502,
116
+ "960": 472,
117
+ "223": 610,
118
+ "356": 278,
119
+ "692": 551,
120
+ "222": 609,
121
+ "230": 617,
122
+ "52": 334,
123
+ "691": 550,
124
+ "373": 259,
125
+ "377": 212,
126
+ "976": 428,
127
+ "382": 297,
128
+ "1-664": 354,
129
+ "212": 604,
130
+ "258": 643,
131
+ "95": 414,
132
+ "264": 649,
133
+ "674": 536,
134
+ "977": 429,
135
+ "31": 204,
136
+ "687": 546,
137
+ "64": 530,
138
+ "505": 710,
139
+ "227": 614,
140
+ "234": 621,
141
+ "683": 555,
142
+ "1-670": 534,
143
+ "47": 242,
144
+ "968": 226,
145
+ "92": 410,
146
+ "680": 552,
147
+ "970": 423,
148
+ "507": 714,
149
+ "675": 537,
150
+ "595": 744,
151
+ "51": 716,
152
+ "63": 515,
153
+ "48": 260,
154
+ "351": 268,
155
+ "1-787, 1-939": 330,
156
+ "974": 427,
157
+ "242": 630,
158
+ "40": 226,
159
+ "7": 250,
160
+ "250": 635,
161
+ "290": 658,
162
+ "1-869": 356,
163
+ "1-758": 358,
164
+ "508": 308,
165
+ "1-784": 360,
166
+ "685": 544,
167
+ "378": 292,
168
+ "239": 626,
169
+ "966": 420,
170
+ "221": 608,
171
+ "381": 220,
172
+ "248": 633,
173
+ "232": 619,
174
+ "65": 525,
175
+ "386": 293,
176
+ "677": 540,
177
+ "27": 655,
178
+ "211": 659,
179
+ "34": 214,
180
+ "94": 413,
181
+ "249": 634,
182
+ "597": 746,
183
+ "268": 653,
184
+ "46": 240,
185
+ "41": 228,
186
+ "963": 417,
187
+ "886": 466,
188
+ "992": 436,
189
+ "255": 640,
190
+ "66": 520,
191
+ "228": 615,
192
+ "690": 554,
193
+ "676": 539,
194
+ "1-868": 374,
195
+ "216": 605,
196
+ "90": 286,
197
+ "993": 438,
198
+ "1-649": 376,
199
+ "688": 553,
200
+ "1-340": 332,
201
+ "256": 641,
202
+ "380": 255,
203
+ "971": 424,
204
+ "44": 234,
205
+ "1": 310,
206
+ "598": 748,
207
+ "998": 434,
208
+ "678": 541,
209
+ "379": 225,
210
+ "58": 734,
211
+ "681": 543,
212
+ "967": 421,
213
+ "260": 645,
214
+ "263": 648,
215
+ "670": 514,
216
+ "245": 632,
217
+ "856": 457,
218
+ "599": 362,
219
+ "850": 467,
220
+ "262": 647,
221
+ "82": 450,
222
+ "84": 452
223
+ }
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.CiphertextMessage = void 0;
4
+ class CiphertextMessage {
5
+ constructor() {
6
+ this.UNSUPPORTED_VERSION = 1;
7
+ this.CURRENT_VERSION = 3;
8
+ this.WHISPER_TYPE = 2;
9
+ this.PREKEY_TYPE = 3;
10
+ this.SENDERKEY_TYPE = 4;
11
+ this.SENDERKEY_DISTRIBUTION_TYPE = 5;
12
+ this.ENCRYPTED_MESSAGE_OVERHEAD = 53;
13
+ }
14
+ }
15
+ exports.CiphertextMessage = CiphertextMessage;
@@ -0,0 +1,86 @@
1
+ 'use strict';
2
+ var __createBinding = (this && this.__createBinding) ||
3
+ (Object.create
4
+ ? function (o, m, k, k2) {
5
+ if (k2 === undefined)
6
+ k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
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
+ Object.defineProperty(o, k2, desc);
17
+ }
18
+ : function (o, m, k, k2) {
19
+ if (k2 === undefined)
20
+ k2 = k;
21
+ o[k2] = m[k];
22
+ });
23
+ var __setModuleDefault = (this && this.__setModuleDefault) ||
24
+ (Object.create
25
+ ? function (o, v) {
26
+ Object.defineProperty(o, 'default', { enumerable: true, value: v });
27
+ }
28
+ : function (o, v) {
29
+ o['default'] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) ||
32
+ (function () {
33
+ var ownKeys = function (o) {
34
+ ownKeys =
35
+ Object.getOwnPropertyNames ||
36
+ function (o) {
37
+ var ar = [];
38
+ for (var k in o)
39
+ if (Object.prototype.hasOwnProperty.call(o, k))
40
+ ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule)
47
+ return mod;
48
+ var result = {};
49
+ if (mod != null)
50
+ for (var k = ownKeys(mod), i = 0; i < k.length; i++)
51
+ if (k[i] !== 'default')
52
+ __createBinding(result, mod, k[i]);
53
+ __setModuleDefault(result, mod);
54
+ return result;
55
+ };
56
+ })();
57
+ Object.defineProperty(exports, '__esModule', { value: true });
58
+ exports.GroupSessionBuilder = void 0;
59
+ const keyhelper = __importStar(require('./keyhelper'));
60
+ const sender_key_distribution_message_1 = require('./sender-key-distribution-message');
61
+ class GroupSessionBuilder {
62
+ constructor(senderKeyStore) {
63
+ this.senderKeyStore = senderKeyStore;
64
+ }
65
+ async process(senderKeyName, senderKeyDistributionMessage) {
66
+ const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);
67
+ senderKeyRecord.addSenderKeyState(senderKeyDistributionMessage.getId(), senderKeyDistributionMessage.getIteration(), senderKeyDistributionMessage.getChainKey(), senderKeyDistributionMessage.getSignatureKey());
68
+ await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);
69
+ }
70
+ async create(senderKeyName) {
71
+ const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);
72
+ if (senderKeyRecord.isEmpty()) {
73
+ const keyId = keyhelper.generateSenderKeyId();
74
+ const senderKey = keyhelper.generateSenderKey();
75
+ const signingKey = keyhelper.generateSenderSigningKey();
76
+ senderKeyRecord.setSenderKeyState(keyId, 0, senderKey, signingKey);
77
+ await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);
78
+ }
79
+ const state = senderKeyRecord.getSenderKeyState();
80
+ if (!state) {
81
+ throw new Error('No session state available');
82
+ }
83
+ return new sender_key_distribution_message_1.SenderKeyDistributionMessage(state.getKeyId(), state.getSenderChainKey().getIteration(), state.getSenderChainKey().getSeed(), state.getSigningKeyPublic());
84
+ }
85
+ }
86
+ exports.GroupSessionBuilder = GroupSessionBuilder;