@pontalabs/baileys 1.0.6 → 1.0.7

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 (185) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +839 -267
  3. package/WAProto/GenerateStatics.sh +4 -3
  4. package/WAProto/WAProto.proto +511 -1215
  5. package/WAProto/index.d.ts +55 -14017
  6. package/WAProto/index.js +29 -97689
  7. package/lib/Defaults/index.d.ts +74 -72
  8. package/lib/Defaults/index.js +108 -94
  9. package/lib/Signal/Group/ciphertext-message.d.ts +7 -8
  10. package/lib/Signal/Group/ciphertext-message.js +16 -9
  11. package/lib/Signal/Group/group-session-builder.d.ts +13 -11
  12. package/lib/Signal/Group/group-session-builder.js +61 -19
  13. package/lib/Signal/Group/group_cipher.d.ts +16 -14
  14. package/lib/Signal/Group/group_cipher.js +70 -41
  15. package/lib/Signal/Group/index.d.ts +11 -12
  16. package/lib/Signal/Group/index.js +61 -12
  17. package/lib/Signal/Group/keyhelper.d.ts +14 -9
  18. package/lib/Signal/Group/keyhelper.js +58 -10
  19. package/lib/Signal/Group/sender-chain-key.d.ts +13 -13
  20. package/lib/Signal/Group/sender-chain-key.js +34 -13
  21. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -16
  22. package/lib/Signal/Group/sender-key-distribution-message.js +36 -28
  23. package/lib/Signal/Group/sender-key-message.d.ts +18 -18
  24. package/lib/Signal/Group/sender-key-message.js +45 -38
  25. package/lib/Signal/Group/sender-key-name.d.ts +15 -14
  26. package/lib/Signal/Group/sender-key-name.js +31 -20
  27. package/lib/Signal/Group/sender-key-record.d.ts +25 -24
  28. package/lib/Signal/Group/sender-key-record.js +35 -18
  29. package/lib/Signal/Group/sender-key-state.d.ts +34 -29
  30. package/lib/Signal/Group/sender-key-state.js +100 -37
  31. package/lib/Signal/Group/sender-message-key.d.ts +10 -11
  32. package/lib/Signal/Group/sender-message-key.js +22 -15
  33. package/lib/Signal/libsignal.d.ts +8 -5
  34. package/lib/Signal/libsignal.js +142 -288
  35. package/lib/Signal/lid-mapping.d.ts +28 -23
  36. package/lib/Signal/lid-mapping.js +184 -277
  37. package/lib/Socket/Client/index.d.ts +2 -3
  38. package/lib/Socket/Client/index.js +22 -3
  39. package/lib/Socket/Client/types.d.ts +15 -15
  40. package/lib/Socket/Client/types.js +15 -8
  41. package/lib/Socket/Client/websocket.d.ts +12 -12
  42. package/lib/Socket/Client/websocket.js +37 -29
  43. package/lib/Socket/business.d.ts +178 -208
  44. package/lib/Socket/business.js +127 -91
  45. package/lib/Socket/chats.d.ts +93 -120
  46. package/lib/Socket/chats.js +652 -727
  47. package/lib/Socket/community.js +10 -2
  48. package/lib/Socket/groups.d.ts +111 -143
  49. package/lib/Socket/groups.js +186 -165
  50. package/lib/Socket/index.d.ts +183 -252
  51. package/lib/Socket/index.js +18 -38
  52. package/lib/Socket/messages-recv.d.ts +167 -196
  53. package/lib/Socket/messages-recv.js +1567 -1443
  54. package/lib/Socket/messages-send.d.ts +158 -192
  55. package/lib/Socket/messages-send.js +1208 -1102
  56. package/lib/Socket/newsletter.d.ts +138 -163
  57. package/lib/Socket/newsletter.js +249 -153
  58. package/lib/Socket/socket.d.ts +36 -50
  59. package/lib/Socket/socket.js +820 -749
  60. package/lib/Store/index.d.ts +4 -4
  61. package/lib/Store/index.js +24 -4
  62. package/lib/Store/make-in-memory-store.d.ts +104 -44
  63. package/lib/Store/make-in-memory-store.js +213 -199
  64. package/lib/Store/make-ordered-dictionary.d.ts +12 -13
  65. package/lib/Store/make-ordered-dictionary.js +45 -38
  66. package/lib/Store/object-repository.d.ts +10 -11
  67. package/lib/Store/object-repository.js +16 -9
  68. package/lib/Types/Auth.d.ts +97 -93
  69. package/lib/Types/Auth.js +3 -2
  70. package/lib/Types/Bussines.js +3 -2
  71. package/lib/Types/Call.d.ts +13 -14
  72. package/lib/Types/Call.js +3 -2
  73. package/lib/Types/Chat.d.ts +97 -78
  74. package/lib/Types/Chat.js +9 -8
  75. package/lib/Types/Contact.d.ts +9 -12
  76. package/lib/Types/Contact.js +3 -2
  77. package/lib/Types/Events.d.ts +176 -206
  78. package/lib/Types/Events.js +3 -2
  79. package/lib/Types/GroupMetadata.d.ts +48 -53
  80. package/lib/Types/GroupMetadata.js +3 -2
  81. package/lib/Types/Label.d.ts +14 -13
  82. package/lib/Types/Label.js +30 -24
  83. package/lib/Types/LabelAssociation.d.ts +20 -15
  84. package/lib/Types/LabelAssociation.js +12 -6
  85. package/lib/Types/Message.d.ts +412 -248
  86. package/lib/Types/Message.js +19 -17
  87. package/lib/Types/Product.d.ts +71 -58
  88. package/lib/Types/Product.js +3 -2
  89. package/lib/Types/Signal.d.ts +82 -71
  90. package/lib/Types/Signal.js +3 -2
  91. package/lib/Types/Socket.d.ts +81 -76
  92. package/lib/Types/Socket.js +3 -3
  93. package/lib/Types/State.d.ts +19 -75
  94. package/lib/Types/State.js +14 -56
  95. package/lib/Types/USync.d.ts +8 -8
  96. package/lib/Types/USync.js +3 -2
  97. package/lib/Types/index.d.ts +62 -47
  98. package/lib/Types/index.js +50 -26
  99. package/lib/Utils/auth-utils.d.ts +10 -13
  100. package/lib/Utils/auth-utils.js +472 -213
  101. package/lib/Utils/business.d.ts +20 -14
  102. package/lib/Utils/business.js +134 -110
  103. package/lib/Utils/chat-utils.d.ts +70 -88
  104. package/lib/Utils/chat-utils.js +403 -466
  105. package/lib/Utils/crypto.d.ts +46 -27
  106. package/lib/Utils/crypto.js +188 -117
  107. package/lib/Utils/decode-wa-message.d.ts +45 -58
  108. package/lib/Utils/decode-wa-message.js +311 -212
  109. package/lib/Utils/event-buffer.d.ts +17 -14
  110. package/lib/Utils/event-buffer.js +296 -321
  111. package/lib/Utils/generics.d.ts +92 -66
  112. package/lib/Utils/generics.js +436 -270
  113. package/lib/Utils/history.d.ts +23 -24
  114. package/lib/Utils/history.js +76 -106
  115. package/lib/Utils/index.d.ts +21 -24
  116. package/lib/Utils/index.js +41 -24
  117. package/lib/Utils/link-preview.d.ts +14 -12
  118. package/lib/Utils/link-preview.js +75 -40
  119. package/lib/Utils/logger.d.ts +11 -10
  120. package/lib/Utils/logger.js +7 -3
  121. package/lib/Utils/lt-hash.d.ts +14 -8
  122. package/lib/Utils/lt-hash.js +53 -3
  123. package/lib/Utils/make-mutex.d.ts +7 -7
  124. package/lib/Utils/make-mutex.js +44 -28
  125. package/lib/Utils/message-retry-manager.d.ts +88 -115
  126. package/lib/Utils/message-retry-manager.js +160 -265
  127. package/lib/Utils/messages-media.d.ts +107 -105
  128. package/lib/Utils/messages-media.js +619 -548
  129. package/lib/Utils/messages.d.ts +66 -52
  130. package/lib/Utils/messages.js +1558 -1730
  131. package/lib/Utils/noise-handler.d.ts +18 -18
  132. package/lib/Utils/noise-handler.js +130 -176
  133. package/lib/Utils/process-message.d.ts +32 -43
  134. package/lib/Utils/process-message.js +282 -484
  135. package/lib/Utils/rich-message-utils.js +724 -1220
  136. package/lib/Utils/signal.d.ts +32 -37
  137. package/lib/Utils/signal.js +105 -140
  138. package/lib/Utils/use-multi-file-auth-state.d.ts +5 -5
  139. package/lib/Utils/use-multi-file-auth-state.js +120 -70
  140. package/lib/Utils/use-single-file-auth-state.d.ts +13 -11
  141. package/lib/Utils/use-single-file-auth-state.js +66 -92
  142. package/lib/Utils/validate-connection.d.ts +13 -11
  143. package/lib/Utils/validate-connection.js +113 -128
  144. package/lib/WABinary/constants.d.ts +27 -25
  145. package/lib/WABinary/constants.js +1292 -1451
  146. package/lib/WABinary/decode.d.ts +9 -7
  147. package/lib/WABinary/decode.js +189 -163
  148. package/lib/WABinary/encode.d.ts +3 -3
  149. package/lib/WABinary/encode.js +155 -110
  150. package/lib/WABinary/generic-utils.d.ts +27 -14
  151. package/lib/WABinary/generic-utils.js +105 -177
  152. package/lib/WABinary/index.d.ts +5 -6
  153. package/lib/WABinary/index.js +25 -6
  154. package/lib/WABinary/jid-utils.d.ts +54 -41
  155. package/lib/WABinary/jid-utils.js +152 -83
  156. package/lib/WABinary/types.d.ts +13 -10
  157. package/lib/WABinary/types.js +3 -2
  158. package/lib/WAM/BinaryInfo.d.ts +15 -8
  159. package/lib/WAM/BinaryInfo.js +14 -7
  160. package/lib/WAM/constants.d.ts +37 -30
  161. package/lib/WAM/constants.js +11983 -19465
  162. package/lib/WAM/encode.d.ts +3 -3
  163. package/lib/WAM/encode.js +109 -95
  164. package/lib/WAM/index.d.ts +3 -4
  165. package/lib/WAM/index.js +23 -4
  166. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  167. package/lib/WAUSync/Protocols/USyncContactProtocol.js +21 -37
  168. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -19
  169. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +26 -18
  170. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -11
  171. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +20 -12
  172. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -11
  173. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +24 -16
  174. package/lib/WAUSync/Protocols/index.d.ts +6 -6
  175. package/lib/WAUSync/Protocols/index.js +26 -6
  176. package/lib/WAUSync/USyncQuery.d.ts +28 -27
  177. package/lib/WAUSync/USyncQuery.js +62 -68
  178. package/lib/WAUSync/USyncUser.d.ts +10 -15
  179. package/lib/WAUSync/USyncUser.js +19 -20
  180. package/lib/WAUSync/index.d.ts +3 -4
  181. package/lib/WAUSync/index.js +23 -4
  182. package/lib/index.d.ts +12 -11
  183. package/lib/index.js +39 -12
  184. package/package.json +42 -86
  185. package/engine-requirements.js +0 -10
@@ -1,11 +1,13 @@
1
- export function useSingleFileAuthState(fileName: any): Promise<{
2
- state: {
3
- creds: any;
4
- keys: {
5
- get: (type: any, ids: any) => {};
6
- set: (data: any) => void;
7
- };
8
- };
9
- saveCreds: () => void;
10
- }>;
11
- //# sourceMappingURL=use-single-file-auth-state.d.ts.map
1
+ import { ILogger } from './logger'
2
+ import type { AuthenticationState } from '../Types'
3
+
4
+ /**
5
+ * @deprecated use multi file auth state instead please
6
+ * stores the full authentication state in a single JSON file
7
+ *
8
+ * DO NOT USE IN A PROD ENVIRONMENT, only meant to serve as an example
9
+ * */
10
+ export declare const useSingleFileAuthState: (filename: string, logger?: ILogger) => {
11
+ state: AuthenticationState
12
+ saveState: () => void
13
+ }
@@ -1,106 +1,80 @@
1
- import { readFile, rename, stat, writeFile } from 'fs/promises';
2
- import { DEFAULT_CACHE_TTLS } from '../Defaults/index.js';
3
- import { proto } from '../../WAProto/index.js';
4
- import { initAuthCreds } from './auth-utils.js';
5
- import { BufferJSON } from './generics.js';
6
- import { LRUCache } from 'lru-cache';
7
- import { Mutex } from 'async-mutex';
8
- const FLUSH_TIMEOUT_MS = 3000;
9
- export const useSingleFileAuthState = async (fileName) => {
10
- const cache = new LRUCache({
11
- max: 15000,
12
- ttl: 1000 * DEFAULT_CACHE_TTLS.SIGNAL_STORE,
13
- updateAgeOnGet: false,
14
- updateAgeOnHas: false,
15
- ttlAutopurge: true
16
- });
17
- const mutex = new Mutex();
18
- let fileData = {};
19
- let isLoaded = false;
20
- let flushTimeout = null;
21
- const loadKey = async () => {
22
- return await mutex.runExclusive(async () => {
23
- if (isLoaded)
24
- return;
25
- try {
26
- const data = JSON.parse(await readFile(fileName, 'utf-8'), BufferJSON.reviver);
27
- fileData = data || {};
28
- for (const [keyName, value] of Object.entries(fileData)) {
29
- cache.set(keyName, value);
30
- }
31
- }
32
- catch {
33
- fileData = {};
34
- }
35
- isLoaded = true;
36
- });
37
- };
38
- const flushKey = () => {
39
- if (flushTimeout)
40
- return;
41
- flushTimeout = setTimeout(async () => {
42
- flushTimeout = null;
43
- await mutex.runExclusive(async () => {
44
- try {
45
- const tempFile = fileName + '.temp';
46
- await writeFile(tempFile, JSON.stringify(fileData, BufferJSON.replacer));
47
- await rename(tempFile, fileName);
48
- }
49
- catch { }
50
- });
51
- }, FLUSH_TIMEOUT_MS);
52
- };
53
- const writeKey = (keyName, value) => {
54
- cache.set(keyName, value);
55
- fileData[keyName] = value;
56
- flushKey();
57
- };
58
- const removeKey = (keyName) => {
59
- cache.delete(keyName);
60
- delete fileData[keyName];
61
- flushKey();
62
- };
63
- const fileInfo = await stat(fileName).catch(() => null);
64
- if (!fileInfo) {
65
- await writeFile(fileName, '{}');
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const WAProto_1 = require("../../WAProto")
6
+ const auth_utils_1 = require("./auth-utils")
7
+ const generics_1 = require("./generics")
8
+
9
+ // useless key map only there to maintain backwards compatibility
10
+ // do not use in your own systems please
11
+ const KEY_MAP = {
12
+ 'pre-key': 'preKeys',
13
+ 'session': 'sessions',
14
+ 'sender-key': 'senderKeys',
15
+ 'app-state-sync-key': 'appStateSyncKeys',
16
+ 'app-state-sync-version': 'appStateVersions',
17
+ 'sender-key-memory': 'senderKeyMemory'
18
+ }
19
+
20
+ /**
21
+ * @deprecated use multi file auth state instead please
22
+ * stores the full authentication state in a single JSON file
23
+ *
24
+ * DO NOT USE IN A PROD ENVIRONMENT, only meant to serve as an example
25
+ * */
26
+ const useSingleFileAuthState = (filename, logger) => {
27
+ // require fs here so that in case "fs" is not available -- the app does not crash
28
+ const { readFileSync, writeFileSync, existsSync } = require('fs')
29
+ let creds
30
+ let keys = {}
31
+ // save the authentication state to a file
32
+ const saveState = () => {
33
+ logger && logger.trace('saving auth state')
34
+ writeFileSync(filename,
35
+ // BufferJSON replacer utility saves buffers nicely
36
+ JSON.stringify({ creds, keys }, generics_1.BufferJSON.replacer, 2))
37
+ }
38
+ if (existsSync(filename)) {
39
+ const result = JSON.parse(readFileSync(filename, { encoding: 'utf-8' }), generics_1.BufferJSON.reviver)
40
+ creds = result.creds
41
+ keys = result.keys
66
42
  }
67
- else if (!fileInfo.isFile()) {
68
- throw new Error(`found something that is not a file at ${fileName}, either delete it or specify a different location`);
43
+ else {
44
+ creds = auth_utils_1.initAuthCreds()
45
+ keys = {}
69
46
  }
70
- await loadKey();
71
- const creds = fileData['creds'] || initAuthCreds();
72
47
  return {
73
48
  state: {
74
49
  creds,
75
50
  keys: {
76
51
  get: (type, ids) => {
77
- const data = {};
78
- for (const id of ids) {
79
- const keyName = type + id;
80
- let value = cache.get(keyName);
81
- if (value === undefined && fileData[keyName] !== undefined) {
82
- value = fileData[keyName];
83
- cache.set(keyName, value);
52
+ const key = KEY_MAP[type]
53
+ return ids.reduce((dict, id) => {
54
+ let value = keys[key]?.[id]
55
+ if (value) {
56
+ if (type === 'app-state-sync-key') {
57
+ value = WAProto_1.proto.Message.AppStateSyncKeyData.fromObject(value)
58
+ }
59
+ dict[id] = value
84
60
  }
85
- if (type === 'app-state-sync-key' && value) {
86
- value = proto.Message.AppStateSyncKeyData.fromObject(value);
87
- }
88
- data[id] = value;
89
- }
90
- return data;
61
+ return dict
62
+ }, {})
91
63
  },
92
64
  set: (data) => {
93
- for (const category in data) {
94
- for (const id in data[category]) {
95
- const keyName = category + id;
96
- const value = data[category][id];
97
- value ? writeKey(keyName, value) : removeKey(keyName);
98
- }
65
+ for (const _key in data) {
66
+ const key = KEY_MAP[_key]
67
+ keys[key] = keys[key] || {}
68
+ Object.assign(keys[key], data[_key])
99
69
  }
70
+ saveState()
100
71
  }
101
72
  }
102
73
  },
103
- saveCreds: () => writeKey('creds', creds)
104
- };
105
- };
106
- //# sourceMappingURL=use-single-file-auth-state.js.map
74
+ saveState
75
+ }
76
+ }
77
+
78
+ module.exports = {
79
+ useSingleFileAuthState
80
+ }
@@ -1,11 +1,13 @@
1
- import { proto } from '../../WAProto/index.js';
2
- import type { AuthenticationCreds, SignalCreds, SocketConfig } from '../Types/index.js';
3
- import { type BinaryNode } from '../WABinary/index.js';
4
- export declare const generateLoginNode: (userJid: string, config: SocketConfig) => proto.IClientPayload;
5
- export declare const generateRegistrationNode: ({ registrationId, signedPreKey, signedIdentityKey }: SignalCreds, config: SocketConfig) => proto.ClientPayload;
6
- export declare const configureSuccessfulPairing: (stanza: BinaryNode, { advSecretKey, signedIdentityKey, signalIdentities }: Pick<AuthenticationCreds, "advSecretKey" | "signedIdentityKey" | "signalIdentities">) => {
7
- creds: Partial<AuthenticationCreds>;
8
- reply: BinaryNode;
9
- };
10
- export declare const encodeSignedDeviceIdentity: (account: proto.IADVSignedDeviceIdentity, includeSignatureKey: boolean) => Uint8Array<ArrayBufferLike>;
11
- //# sourceMappingURL=validate-connection.d.ts.map
1
+ import { proto } from '../../WAProto'
2
+ import type { AuthenticationCreds, SignalCreds, SocketConfig } from '../Types'
3
+ import { BinaryNode } from '../WABinary'
4
+
5
+ export declare const generateLoginNode: (userJid: string, config: SocketConfig) => proto.IClientPayload
6
+
7
+ export declare const generateRegistrationNode: ({ registrationId, signedPreKey, signedIdentityKey }: SignalCreds, config: SocketConfig) => proto.ClientPayload
8
+
9
+ export declare const configureSuccessfulPairing: (stanza: BinaryNode, { advSecretKey, signedIdentityKey, signalIdentities }: Pick<AuthenticationCreds, 'advSecretKey' | 'signedIdentityKey' | 'signalIdentities'>) => {
10
+ creds: Partial<AuthenticationCreds>
11
+ reply: BinaryNode
12
+ }
13
+ export declare const encodeSignedDeviceIdentity: (account: proto.IADVSignedDeviceIdentity, includeSignatureKey: boolean) => Uint8Array
@@ -1,20 +1,25 @@
1
- import { Boom } from '@hapi/boom';
2
- import { createHash } from 'crypto';
3
- import { proto } from '../../WAProto/index.js';
4
- import { KEY_BUNDLE_TYPE, WA_ADV_ACCOUNT_SIG_PREFIX, WA_ADV_DEVICE_SIG_PREFIX, WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX } from '../Defaults/index.js';
5
- import { getBinaryNodeChild, jidDecode, S_WHATSAPP_NET } from '../WABinary/index.js';
6
- import { Curve, hmacSign } from './crypto.js';
7
- import { encodeBigEndian } from './generics.js';
8
- import { createSignalIdentity } from './signal.js';
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const boom_1 = require("@hapi/boom")
6
+ const crypto_1 = require("crypto")
7
+ const WAProto_1 = require("../../WAProto")
8
+ const Defaults_1 = require("../Defaults")
9
+ const WABinary_1 = require("../WABinary")
10
+ const crypto_2 = require("./crypto")
11
+ const generics_1 = require("./generics")
12
+ const signal_1 = require("./signal")
13
+
9
14
  const getUserAgent = (config) => {
10
15
  return {
11
16
  appVersion: {
12
17
  primary: config.version[0],
13
18
  secondary: config.version[1],
14
- tertiary: config.version[2]
19
+ tertiary: config.version[2],
15
20
  },
16
- platform: proto.ClientPayload.UserAgent.Platform.WEB,
17
- releaseChannel: proto.ClientPayload.UserAgent.ReleaseChannel.RELEASE,
21
+ platform: WAProto_1.proto.ClientPayload.UserAgent.Platform.WEB,
22
+ releaseChannel: WAProto_1.proto.ClientPayload.UserAgent.ReleaseChannel.RELEASE,
18
23
  osVersion: '0.1',
19
24
  device: 'Desktop',
20
25
  osBuildNumber: '0.1',
@@ -22,85 +27,62 @@ const getUserAgent = (config) => {
22
27
  mnc: '000',
23
28
  mcc: '000',
24
29
  localeCountryIso31661Alpha2: config.countryCode
25
- };
26
- };
30
+ }
31
+ }
32
+
27
33
  const PLATFORM_MAP = {
28
- 'Mac OS': proto.ClientPayload.WebInfo.WebSubPlatform.DARWIN,
29
- Windows: proto.ClientPayload.WebInfo.WebSubPlatform.WIN32
30
- };
34
+ 'Mac OS': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.DARWIN,
35
+ 'Windows': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WIN32,
36
+ 'Android': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WIN_HYBRID
37
+ }
38
+
31
39
  const getWebInfo = (config) => {
32
- let webSubPlatform = proto.ClientPayload.WebInfo.WebSubPlatform.WEB_BROWSER;
33
- if (config.syncFullHistory &&
34
- PLATFORM_MAP[config.browser[0]] &&
35
- config.browser[1] === 'Desktop') {
36
- webSubPlatform = PLATFORM_MAP[config.browser[0]];
40
+ let webSubPlatform = WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WEB_BROWSER
41
+ if (config.syncFullHistory && PLATFORM_MAP[config.browser[0]]) {
42
+ webSubPlatform = PLATFORM_MAP[config.browser[0]]
37
43
  }
38
- return { webSubPlatform };
39
- };
44
+ return { webSubPlatform }
45
+ }
46
+
40
47
  const getClientPayload = (config) => {
41
48
  const payload = {
42
- connectType: proto.ClientPayload.ConnectType.WIFI_UNKNOWN,
43
- connectReason: proto.ClientPayload.ConnectReason.USER_ACTIVATED,
44
- userAgent: getUserAgent(config)
45
- };
46
- payload.webInfo = getWebInfo(config);
47
- if (config.pushName) {
48
- payload.pushName = config.pushName;
49
+ connectType: WAProto_1.proto.ClientPayload.ConnectType.WIFI_UNKNOWN,
50
+ connectReason: WAProto_1.proto.ClientPayload.ConnectReason.USER_ACTIVATED,
51
+ userAgent: getUserAgent(config),
49
52
  }
50
- return payload;
51
- };
52
- export const generateLoginNode = (userJid, config) => {
53
- const { user, device } = jidDecode(userJid);
53
+ payload.webInfo = getWebInfo(config)
54
+ return payload
55
+ }
56
+
57
+ const generateLoginNode = (userJid, config) => {
58
+ const { user, device } = WABinary_1.jidDecode(userJid)
54
59
  const payload = {
55
60
  ...getClientPayload(config),
56
61
  passive: true,
57
62
  pull: true,
58
63
  username: +user,
59
64
  device: device,
60
- // TODO: investigate (hard set as false atm)
61
- lidDbMigrated: false
62
- };
63
- return proto.ClientPayload.fromObject(payload);
64
- };
65
+ }
66
+ return WAProto_1.proto.ClientPayload.fromObject(payload)
67
+ }
68
+
65
69
  const getPlatformType = (platform) => {
66
- const platformType = platform.toUpperCase();
67
- return (proto.DeviceProps.PlatformType[platformType] ||
68
- proto.DeviceProps.PlatformType.CHROME);
69
- };
70
- export const generateRegistrationNode = ({ registrationId, signedPreKey, signedIdentityKey }, config) => {
70
+ const platformType = platform.toUpperCase()
71
+ return WAProto_1.proto.DeviceProps.PlatformType[platformType] || WAProto_1.proto.DeviceProps.PlatformType.DESKTOP
72
+ }
73
+
74
+ const generateRegistrationNode = ({ registrationId, signedPreKey, signedIdentityKey }, config) => {
71
75
  // the app version needs to be md5 hashed
72
76
  // and passed in
73
- const appVersionBuf = createHash('md5')
77
+ const appVersionBuf = crypto_1.createHash('md5')
74
78
  .update(config.version.join('.')) // join as string
75
- .digest();
79
+ .digest()
76
80
  const companion = {
77
81
  os: config.browser[0],
78
82
  platformType: getPlatformType(config.browser[1]),
79
83
  requireFullSync: config.syncFullHistory,
80
- historySyncConfig: {
81
- storageQuotaMb: 10240,
82
- inlineInitialPayloadInE2EeMsg: true,
83
- recentSyncDaysLimit: undefined,
84
- supportCallLogHistory: false,
85
- supportBotUserAgentChatHistory: true,
86
- supportCagReactionsAndPolls: true,
87
- supportBizHostedMsg: true,
88
- supportRecentSyncChunkMessageCountTuning: true,
89
- supportHostedGroupMsg: true,
90
- supportFbidBotChatHistory: true,
91
- supportAddOnHistorySyncMigration: undefined,
92
- supportMessageAssociation: true,
93
- supportGroupHistory: false,
94
- onDemandReady: undefined,
95
- supportGuestChat: undefined
96
- },
97
- version: {
98
- primary: 10,
99
- secondary: 15,
100
- tertiary: 7
101
- }
102
- };
103
- const companionProto = proto.DeviceProps.encode(companion).finish();
84
+ }
85
+ const companionProto = WAProto_1.proto.DeviceProps.encode(companion).finish()
104
86
  const registerPayload = {
105
87
  ...getClientPayload(config),
106
88
  passive: false,
@@ -108,63 +90,56 @@ export const generateRegistrationNode = ({ registrationId, signedPreKey, signedI
108
90
  devicePairingData: {
109
91
  buildHash: appVersionBuf,
110
92
  deviceProps: companionProto,
111
- eRegid: encodeBigEndian(registrationId),
112
- eKeytype: KEY_BUNDLE_TYPE,
93
+ eRegid: generics_1.encodeBigEndian(registrationId),
94
+ eKeytype: Defaults_1.KEY_BUNDLE_TYPE,
113
95
  eIdent: signedIdentityKey.public,
114
- eSkeyId: encodeBigEndian(signedPreKey.keyId, 3),
96
+ eSkeyId: generics_1.encodeBigEndian(signedPreKey.keyId, 3),
115
97
  eSkeyVal: signedPreKey.keyPair.public,
116
- eSkeySig: signedPreKey.signature
117
- }
118
- };
119
- return proto.ClientPayload.fromObject(registerPayload);
120
- };
121
- export const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentityKey, signalIdentities }) => {
122
- const msgId = stanza.attrs.id;
123
- const pairSuccessNode = getBinaryNodeChild(stanza, 'pair-success');
124
- const deviceIdentityNode = getBinaryNodeChild(pairSuccessNode, 'device-identity');
125
- const platformNode = getBinaryNodeChild(pairSuccessNode, 'platform');
126
- const deviceNode = getBinaryNodeChild(pairSuccessNode, 'device');
127
- const businessNode = getBinaryNodeChild(pairSuccessNode, 'biz');
128
- if (!deviceIdentityNode || !deviceNode) {
129
- throw new Boom('Missing device-identity or device in pair success node', { data: stanza });
98
+ eSkeySig: signedPreKey.signature,
99
+ },
130
100
  }
131
- const bizName = businessNode?.attrs.name;
132
- const jid = deviceNode.attrs.jid;
133
- const lid = deviceNode.attrs.lid;
134
- const { details, hmac, accountType } = proto.ADVSignedDeviceIdentityHMAC.decode(deviceIdentityNode.content);
135
- let hmacPrefix = Buffer.from([]);
136
- if (accountType !== undefined && accountType === proto.ADVEncryptionType.HOSTED) {
137
- hmacPrefix = WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX;
101
+ return WAProto_1.proto.ClientPayload.fromObject(registerPayload)
102
+ }
103
+
104
+ const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentityKey, signalIdentities }) => {
105
+ const msgId = stanza.attrs.id
106
+ const pairSuccessNode = WABinary_1.getBinaryNodeChild(stanza, 'pair-success')
107
+ const deviceIdentityNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'device-identity')
108
+ const platformNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'platform')
109
+ const deviceNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'device')
110
+ const businessNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'biz')
111
+ if (!deviceIdentityNode || !deviceNode) {
112
+ throw new boom_1.Boom('Missing device-identity or device in pair success node', { data: stanza })
138
113
  }
139
- const advSign = hmacSign(Buffer.concat([hmacPrefix, details]), Buffer.from(advSecretKey, 'base64'));
114
+ const bizName = businessNode?.attrs?.name
115
+ const jid = deviceNode.attrs.jid
116
+ const lid = deviceNode.attrs.lid
117
+ const { details, hmac, accountType } = WAProto_1.proto.ADVSignedDeviceIdentityHMAC.decode(deviceIdentityNode.content)
118
+ const isHostedAccount = accountType !== undefined && accountType === WAProto_1.proto.ADVEncryptionType.HOSTED
119
+ const hmacPrefix = isHostedAccount ? Buffer.from([6, 5]) : Buffer.alloc(0)
120
+ const advSign = crypto_2.hmacSign(Buffer.concat([hmacPrefix, details]), Buffer.from(advSecretKey, 'base64'))
140
121
  if (Buffer.compare(hmac, advSign) !== 0) {
141
- throw new Boom('Invalid account signature');
122
+ throw new boom_1.Boom('Invalid account signature')
142
123
  }
143
- const account = proto.ADVSignedDeviceIdentity.decode(details);
144
- const { accountSignatureKey, accountSignature, details: deviceDetails } = account;
145
- const deviceIdentity = proto.ADVDeviceIdentity.decode(deviceDetails);
146
- const accountSignaturePrefix = deviceIdentity.deviceType === proto.ADVEncryptionType.HOSTED
147
- ? WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX
148
- : WA_ADV_ACCOUNT_SIG_PREFIX;
149
- const accountMsg = Buffer.concat([accountSignaturePrefix, deviceDetails, signedIdentityKey.public]);
150
- if (!Curve.verify(accountSignatureKey, accountMsg, accountSignature)) {
151
- throw new Boom('Failed to verify account signature');
124
+ const account = WAProto_1.proto.ADVSignedDeviceIdentity.decode(details)
125
+ const { accountSignatureKey, accountSignature, details: deviceDetails } = account
126
+ const accountMsg = Buffer.concat([Buffer.from([6, 0]), deviceDetails, signedIdentityKey.public])
127
+ if (!crypto_2.Curve.verify(accountSignatureKey, accountMsg, accountSignature)) {
128
+ throw new boom_1.Boom('Failed to verify account signature')
152
129
  }
153
- const deviceMsg = Buffer.concat([
154
- WA_ADV_DEVICE_SIG_PREFIX,
155
- deviceDetails,
156
- signedIdentityKey.public,
157
- accountSignatureKey
158
- ]);
159
- account.deviceSignature = Curve.sign(signedIdentityKey.private, deviceMsg);
160
- const identity = createSignalIdentity(lid, accountSignatureKey);
161
- const accountEnc = encodeSignedDeviceIdentity(account, false);
130
+
131
+ const devicePrefix = isHostedAccount ? Buffer.from([6, 6]) : Buffer.from([6, 1])
132
+ const deviceMsg = Buffer.concat([devicePrefix, deviceDetails, signedIdentityKey.public, accountSignatureKey])
133
+ account.deviceSignature = crypto_2.Curve.sign(signedIdentityKey.private, deviceMsg)
134
+ const identity = signal_1.createSignalIdentity(lid, accountSignatureKey)
135
+ const accountEnc = encodeSignedDeviceIdentity(account, false)
136
+ const deviceIdentity = WAProto_1.proto.ADVDeviceIdentity.decode(account.details)
162
137
  const reply = {
163
138
  tag: 'iq',
164
139
  attrs: {
165
- to: S_WHATSAPP_NET,
140
+ to: WABinary_1.S_WHATSAPP_NET,
166
141
  type: 'result',
167
- id: msgId
142
+ id: msgId,
168
143
  },
169
144
  content: [
170
145
  {
@@ -179,25 +154,35 @@ export const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentit
179
154
  ]
180
155
  }
181
156
  ]
182
- };
157
+ }
183
158
  const authUpdate = {
184
159
  account,
185
160
  me: { id: jid, name: bizName, lid },
186
- signalIdentities: [...(signalIdentities || []), identity],
187
- platform: platformNode?.attrs.name
188
- };
161
+ signalIdentities: [
162
+ ...(signalIdentities || []),
163
+ identity
164
+ ],
165
+ platform: platformNode?.attrs?.name
166
+ }
189
167
  return {
190
168
  creds: authUpdate,
191
169
  reply
192
- };
193
- };
194
- export const encodeSignedDeviceIdentity = (account, includeSignatureKey) => {
195
- account = { ...account };
170
+ }
171
+ }
172
+
173
+ const encodeSignedDeviceIdentity = (account, includeSignatureKey) => {
174
+ account = { ...account }
196
175
  // set to null if we are not to include the signature key
197
176
  // or if we are including the signature key but it is empty
198
177
  if (!includeSignatureKey || !account.accountSignatureKey?.length) {
199
- account.accountSignatureKey = null;
178
+ account.accountSignatureKey = null
200
179
  }
201
- return proto.ADVSignedDeviceIdentity.encode(account).finish();
202
- };
203
- //# sourceMappingURL=validate-connection.js.map
180
+ return WAProto_1.proto.ADVSignedDeviceIdentity.encode(account).finish()
181
+ }
182
+
183
+ module.exports = {
184
+ generateLoginNode,
185
+ generateRegistrationNode,
186
+ configureSuccessfulPairing,
187
+ encodeSignedDeviceIdentity
188
+ }
@@ -1,28 +1,30 @@
1
1
  export declare const TAGS: {
2
- LIST_EMPTY: number;
3
- DICTIONARY_0: number;
4
- DICTIONARY_1: number;
5
- DICTIONARY_2: number;
6
- DICTIONARY_3: number;
7
- INTEROP_JID: number;
8
- FB_JID: number;
9
- AD_JID: number;
10
- LIST_8: number;
11
- LIST_16: number;
12
- JID_PAIR: number;
13
- HEX_8: number;
14
- BINARY_8: number;
15
- BINARY_20: number;
16
- BINARY_32: number;
17
- NIBBLE_8: number;
18
- PACKED_MAX: number;
19
- };
20
- export declare const DOUBLE_BYTE_TOKENS: readonly [readonly ["read-self", "active", "fbns", "protocol", "reaction", "screen_width", "heartbeat", "deviceid", "2:47DEQpj8", "uploadfieldstat", "voip_settings", "retry", "priority", "longitude", "conflict", "false", "ig_professional", "replaced", "preaccept", "cover_photo", "uncompressed", "encopt", "ppic", "04", "passive", "status-revoke-drop", "keygen", "540", "offer", "rate", "opus", "latitude", "w:gp2", "ver", "4", "business_profile", "medium", "sender", "prev_v_id", "email", "website", "invited", "sign_credential", "05", "transport", "skey", "reason", "peer_abtest_bucket", "America/Sao_Paulo", "appid", "refresh", "100", "06", "404", "101", "104", "107", "102", "109", "103", "member_add_mode", "105", "transaction-id", "110", "106", "outgoing", "108", "111", "tokens", "followers", "ig_handle", "self_pid", "tue", "dec", "thu", "joinable", "peer_pid", "mon", "features", "wed", "peer_device_presence", "pn", "delete", "07", "fri", "audio_duration", "admin", "connected", "delta", "rcat", "disable", "collection", "08", "480", "sat", "phash", "all", "invite", "accept", "critical_unblock_low", "group_update", "signed_credential", "blinded_credential", "eph_setting", "net", "09", "background_location", "refresh_id", "Asia/Kolkata", "privacy_mode_ts", "account_sync", "voip_payload_type", "service_areas", "acs_public_key", "v_id", "0a", "fallback_class", "relay", "actual_actors", "metadata", "w:biz", "5", "connected-limit", "notice", "0b", "host_storage", "fb_page", "subject", "privatestats", "invis", "groupadd", "010", "note.m4r", "uuid", "0c", "8000", "sun", "372", "1020", "stage", "1200", "720", "canonical", "fb", "011", "video_duration", "0d", "1140", "superadmin", "012", "Opening.m4r", "keystore_attestation", "dleq_proof", "013", "timestamp", "ab_key", "w:sync:app:state", "0e", "vertical", "600", "p_v_id", "6", "likes", "014", "500", "1260", "creator", "0f", "rte", "destination", "group", "group_info", "syncd_anti_tampering_fatal_exception_enabled", "015", "dl_bw", "Asia/Jakarta", "vp8/h.264", "online", "1320", "fb:multiway", "10", "timeout", "016", "nse_retry", "urn:xmpp:whatsapp:dirty", "017", "a_v_id", "web_shops_chat_header_button_enabled", "nse_call", "inactive-upgrade", "none", "web", "groups", "2250", "mms_hot_content_timespan_in_seconds", "contact_blacklist", "nse_read", "suspended_group_deletion_notification", "binary_version", "018", "https://www.whatsapp.com/otp/copy/", "reg_push", "shops_hide_catalog_attachment_entrypoint", "server_sync", ".", "ephemeral_messages_allowed_values", "019", "mms_vcache_aggregation_enabled", "iphone", "America/Argentina/Buenos_Aires", "01a", "mms_vcard_autodownload_size_kb", "nse_ver", "shops_header_dropdown_menu_item", "dhash", "catalog_status", "communities_mvp_new_iqs_serverprop", "blocklist", "default", "11", "ephemeral_messages_enabled", "01b", "original_dimensions", "8", "mms4_media_retry_notification_encryption_enabled", "mms4_server_error_receipt_encryption_enabled", "original_image_url", "sync", "multiway", "420", "companion_enc_static", "shops_profile_drawer_entrypoint", "01c", "vcard_as_document_size_kb", "status_video_max_duration", "request_image_url", "01d", "regular_high", "s_t", "abt", "share_ext_min_preliminary_image_quality", "01e", "32", "syncd_key_rotation_enabled", "data_namespace", "md_downgrade_read_receipts2", "patch", "polltype", "ephemeral_messages_setting", "userrate", "15", "partial_pjpeg_bw_threshold", "played-self", "catalog_exists", "01f", "mute_v2"], readonly ["reject", "dirty", "announcement", "020", "13", "9", "status_video_max_bitrate", "fb:thrift_iq", "offline_batch", "022", "full", "ctwa_first_business_reply_logging", "h.264", "smax_id", "group_description_length", "https://www.whatsapp.com/otp/code", "status_image_max_edge", "smb_upsell_business_profile_enabled", "021", "web_upgrade_to_md_modal", "14", "023", "s_o", "smaller_video_thumbs_status_enabled", "media_max_autodownload", "960", "blocking_status", "peer_msg", "joinable_group_call_client_version", "group_call_video_maximization_enabled", "return_snapshot", "high", "America/Mexico_City", "entry_point_block_logging_enabled", "pop", "024", "1050", "16", "1380", "one_tap_calling_in_group_chat_size", "regular_low", "inline_joinable_education_enabled", "hq_image_max_edge", "locked", "America/Bogota", "smb_biztools_deeplink_enabled", "status_image_quality", "1088", "025", "payments_upi_intent_transaction_limit", "voip", "w:g2", "027", "md_pin_chat_enabled", "026", "multi_scan_pjpeg_download_enabled", "shops_product_grid", "transaction_id", "ctwa_context_enabled", "20", "fna", "hq_image_quality", "alt_jpeg_doc_detection_quality", "group_call_max_participants", "pkey", "America/Belem", "image_max_kbytes", "web_cart_v1_1_order_message_changes_enabled", "ctwa_context_enterprise_enabled", "urn:xmpp:whatsapp:account", "840", "Asia/Kuala_Lumpur", "max_participants", "video_remux_after_repair_enabled", "stella_addressbook_restriction_type", "660", "900", "780", "context_menu_ios13_enabled", "mute-state", "ref", "payments_request_messages", "029", "frskmsg", "vcard_max_size_kb", "sample_buffer_gif_player_enabled", "match_last_seen", "510", "4983", "video_max_bitrate", "028", "w:comms:chat", "17", "frequently_forwarded_max", "groups_privacy_blacklist", "Asia/Karachi", "02a", "web_download_document_thumb_mms_enabled", "02b", "hist_sync", "biz_block_reasons_version", "1024", "18", "web_is_direct_connection_for_plm_transparent", "view_once_write", "file_max_size", "paid_convo_id", "online_privacy_setting", "video_max_edge", "view_once_read", "enhanced_storage_management", "multi_scan_pjpeg_encoding_enabled", "ctwa_context_forward_enabled", "video_transcode_downgrade_enable", "template_doc_mime_types", "hq_image_bw_threshold", "30", "body", "u_aud_limit_sil_restarts_ctrl", "other", "participating", "w:biz:directory", "1110", "vp8", "4018", "meta", "doc_detection_image_max_edge", "image_quality", "1170", "02c", "smb_upsell_chat_banner_enabled", "key_expiry_time_second", "pid", "stella_interop_enabled", "19", "linked_device_max_count", "md_device_sync_enabled", "02d", "02e", "360", "enhanced_block_enabled", "ephemeral_icon_in_forwarding", "paid_convo_status", "gif_provider", "project_name", "server-error", "canonical_url_validation_enabled", "wallpapers_v2", "syncd_clear_chat_delete_chat_enabled", "medianotify", "02f", "shops_required_tos_version", "vote", "reset_skey_on_id_change", "030", "image_max_edge", "multicast_limit_global", "ul_bw", "21", "25", "5000", "poll", "570", "22", "031", "1280", "WhatsApp", "032", "bloks_shops_enabled", "50", "upload_host_switching_enabled", "web_ctwa_context_compose_enabled", "ptt_forwarded_features_enabled", "unblocked", "partial_pjpeg_enabled", "fbid:devices", "height", "ephemeral_group_query_ts", "group_join_permissions", "order", "033", "alt_jpeg_status_quality", "migrate", "popular-bank", "win_uwp_deprecation_killswitch_enabled", "web_download_status_thumb_mms_enabled", "blocking", "url_text", "035", "web_forwarding_limit_to_groups", "1600", "val", "1000", "syncd_msg_date_enabled", "bank-ref-id", "max_subject", "payments_web_enabled", "web_upload_document_thumb_mms_enabled", "size", "request", "ephemeral", "24", "receipt_agg", "ptt_remember_play_position", "sampling_weight", "enc_rekey", "mute_always", "037", "034", "23", "036", "action", "click_to_chat_qr_enabled", "width", "disabled", "038", "md_blocklist_v2", "played_self_enabled", "web_buttons_message_enabled", "flow_id", "clear", "450", "fbid:thread", "bloks_session_state", "America/Lima", "attachment_picker_refresh", "download_host_switching_enabled", "1792", "u_aud_limit_sil_restarts_test2", "custom_urls", "device_fanout", "optimistic_upload", "2000", "key_cipher_suite", "web_smb_upsell_in_biz_profile_enabled", "e", "039", "siri_post_status_shortcut", "pair-device", "lg", "lc", "stream_attribution_url", "model", "mspjpeg_phash_gen", "catalog_send_all", "new_multi_vcards_ui", "share_biz_vcard_enabled", "-", "clean", "200", "md_blocklist_v2_server", "03b", "03a", "web_md_migration_experience", "ptt_conversation_waveform", "u_aud_limit_sil_restarts_test1"], readonly ["64", "ptt_playback_speed_enabled", "web_product_list_message_enabled", "paid_convo_ts", "27", "manufacturer", "psp-routing", "grp_uii_cleanup", "ptt_draft_enabled", "03c", "business_initiated", "web_catalog_products_onoff", "web_upload_link_thumb_mms_enabled", "03e", "mediaretry", "35", "hfm_string_changes", "28", "America/Fortaleza", "max_keys", "md_mhfs_days", "streaming_upload_chunk_size", "5541", "040", "03d", "2675", "03f", "...", "512", "mute", "48", "041", "alt_jpeg_quality", "60", "042", "md_smb_quick_reply", "5183", "c", "1343", "40", "1230", "043", "044", "mms_cat_v1_forward_hot_override_enabled", "user_notice", "ptt_waveform_send", "047", "Asia/Calcutta", "250", "md_privacy_v2", "31", "29", "128", "md_messaging_enabled", "046", "crypto", "690", "045", "enc_iv", "75", "failure", "ptt_oot_playback", "AIzaSyDR5yfaG7OG8sMTUj8kfQEb8T9pN8BM6Lk", "w", "048", "2201", "web_large_files_ui", "Asia/Makassar", "812", "status_collapse_muted", "1334", "257", "2HP4dm", "049", "patches", "1290", "43cY6T", "America/Caracas", "web_sticker_maker", "campaign", "ptt_pausable_enabled", "33", "42", "attestation", "biz", "04b", "query_linked", "s", "125", "04a", "810", "availability", "1411", "responsiveness_v2_m1", "catalog_not_created", "34", "America/Santiago", "1465", "enc_p", "04d", "status_info", "04f", "key_version", "..", "04c", "04e", "md_group_notification", "1598", "1215", "web_cart_enabled", "37", "630", "1920", "2394", "-1", "vcard", "38", "elapsed", "36", "828", "peer", "pricing_category", "1245", "invalid", "stella_ios_enabled", "2687", "45", "1528", "39", "u_is_redial_audio_1104_ctrl", "1025", "1455", "58", "2524", "2603", "054", "bsp_system_message_enabled", "web_pip_redesign", "051", "verify_apps", "1974", "1272", "1322", "1755", "052", "70", "050", "1063", "1135", "1361", "80", "1096", "1828", "1851", "1251", "1921", "key_config_id", "1254", "1566", "1252", "2525", "critical_block", "1669", "max_available", "w:auth:backup:token", "product", "2530", "870", "1022", "participant_uuid", "web_cart_on_off", "1255", "1432", "1867", "41", "1415", "1440", "240", "1204", "1608", "1690", "1846", "1483", "1687", "1749", "69", "url_number", "053", "1325", "1040", "365", "59", "Asia/Riyadh", "1177", "test_recommended", "057", "1612", "43", "1061", "1518", "1635", "055", "1034", "1375", "750", "1430", "event_code", "1682", "503", "55", "865", "78", "1309", "1365", "44", "America/Guayaquil", "535", "LIMITED", "1377", "1613", "1420", "1599", "1822", "05a", "1681", "password", "1111", "1214", "1376", "1478", "47", "1082", "4282", "Europe/Istanbul", "1307", "46", "058", "1124", "256", "rate-overlimit", "retail", "u_a_socket_err_fix_succ_test", "1292", "1370", "1388", "520", "861", "psa", "regular", "1181", "1766", "05b", "1183", "1213", "1304", "1537"], readonly ["1724", "profile_picture", "1071", "1314", "1605", "407", "990", "1710", "746", "pricing_model", "056", "059", "061", "1119", "6027", "65", "877", "1607", "05d", "917", "seen", "1516", "49", "470", "973", "1037", "1350", "1394", "1480", "1796", "keys", "794", "1536", "1594", "2378", "1333", "1524", "1825", "116", "309", "52", "808", "827", "909", "495", "1660", "361", "957", "google", "1357", "1565", "1967", "996", "1775", "586", "736", "1052", "1670", "bank", "177", "1416", "2194", "2222", "1454", "1839", "1275", "53", "997", "1629", "6028", "smba", "1378", "1410", "05c", "1849", "727", "create", "1559", "536", "1106", "1310", "1944", "670", "1297", "1316", "1762", "en", "1148", "1295", "1551", "1853", "1890", "1208", "1784", "7200", "05f", "178", "1283", "1332", "381", "643", "1056", "1238", "2024", "2387", "179", "981", "1547", "1705", "05e", "290", "903", "1069", "1285", "2436", "062", "251", "560", "582", "719", "56", "1700", "2321", "325", "448", "613", "777", "791", "51", "488", "902", "Asia/Almaty", "is_hidden", "1398", "1527", "1893", "1999", "2367", "2642", "237", "busy", "065", "067", "233", "590", "993", "1511", "54", "723", "860", "363", "487", "522", "605", "995", "1321", "1691", "1865", "2447", "2462", "NON_TRANSACTIONAL", "433", "871", "432", "1004", "1207", "2032", "2050", "2379", "2446", "279", "636", "703", "904", "248", "370", "691", "700", "1068", "1655", "2334", "060", "063", "364", "533", "534", "567", "1191", "1210", "1473", "1827", "069", "701", "2531", "514", "prev_dhash", "064", "496", "790", "1046", "1139", "1505", "1521", "1108", "207", "544", "637", "final", "1173", "1293", "1694", "1939", "1951", "1993", "2353", "2515", "504", "601", "857", "modify", "spam_request", "p_121_aa_1101_test4", "866", "1427", "1502", "1638", "1744", "2153", "068", "382", "725", "1704", "1864", "1990", "2003", "Asia/Dubai", "508", "531", "1387", "1474", "1632", "2307", "2386", "819", "2014", "066", "387", "1468", "1706", "2186", "2261", "471", "728", "1147", "1372", "1961"]];
21
- export declare const SINGLE_BYTE_TOKENS: string[];
2
+ LIST_EMPTY: number
3
+ DICTIONARY_0: number
4
+ DICTIONARY_1: number
5
+ DICTIONARY_2: number
6
+ DICTIONARY_3: number
7
+ INTEROP_JID: number
8
+ FB_JID: number
9
+ AD_JID: number
10
+ LIST_8: number
11
+ LIST_16: number
12
+ JID_PAIR: number
13
+ HEX_8: number
14
+ BINARY_8: number
15
+ BINARY_20: number
16
+ BINARY_32: number
17
+ NIBBLE_8: number
18
+ PACKED_MAX: number
19
+ }
20
+
21
+ export declare const DOUBLE_BYTE_TOKENS: string[][]
22
+
23
+ export declare const SINGLE_BYTE_TOKENS: (string | null)[]
24
+
22
25
  export declare const TOKEN_MAP: {
23
26
  [token: string]: {
24
- dict?: number;
25
- index: number;
26
- };
27
- };
28
- //# sourceMappingURL=constants.d.ts.map
27
+ dict?: number
28
+ index: number
29
+ }
30
+ }