cuki-bailx 1.1.1 → 1.2.2

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 (116) hide show
  1. package/WAProto/index.js +79296 -118676
  2. package/engine-requirements.js +1 -1
  3. package/lib/Defaults/baileys-version.json +1 -1
  4. package/lib/Defaults/index.d.ts +6 -4
  5. package/lib/Defaults/index.js +102 -78
  6. package/lib/Defaults/phonenumber-mcc.json +223 -0
  7. package/lib/Socket/Client/{types.d.ts → abstract-socket-client.d.ts} +2 -1
  8. package/lib/Socket/Client/index.d.ts +3 -2
  9. package/lib/Socket/Client/index.js +3 -2
  10. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  11. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  12. package/lib/Socket/Client/{websocket.d.ts → web-socket-client.d.ts} +1 -2
  13. package/lib/Socket/Client/{websocket.js → web-socket-client.js} +2 -12
  14. package/lib/Socket/business.d.ts +58 -59
  15. package/lib/Socket/chats.d.ts +27 -29
  16. package/lib/Socket/chats.js +90 -97
  17. package/lib/Socket/dugong.d.ts +219 -0
  18. package/lib/Socket/dugong.js +441 -0
  19. package/lib/Socket/groups.d.ts +32 -41
  20. package/lib/Socket/groups.js +5 -20
  21. package/lib/Socket/index.d.ts +64 -63
  22. package/lib/Socket/index.js +2 -2
  23. package/lib/Socket/messages-recv.js +65 -9
  24. package/lib/Socket/messages-send.d.ts +47 -49
  25. package/lib/Socket/messages-send.js +312 -379
  26. package/lib/Socket/newsletter.d.ts +37 -39
  27. package/lib/Socket/newsletter.js +40 -54
  28. package/lib/Socket/registration.d.ts +267 -0
  29. package/lib/Socket/registration.js +166 -0
  30. package/lib/Socket/socket.d.ts +10 -10
  31. package/lib/Socket/socket.js +628 -0
  32. package/lib/Socket/socket.js.bak +38 -43
  33. package/lib/Socket/usync.d.ts +3 -3
  34. package/lib/Store/index.d.ts +2 -1
  35. package/lib/Store/index.js +3 -1
  36. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  37. package/lib/Store/make-cache-manager-store.js +83 -0
  38. package/lib/Store/make-in-memory-store.d.ts +24 -24
  39. package/lib/Store/make-in-memory-store.js +11 -13
  40. package/lib/Store/make-ordered-dictionary.d.ts +1 -1
  41. package/lib/Store/make-ordered-dictionary.js +2 -2
  42. package/lib/Types/Auth.d.ts +7 -0
  43. package/lib/Types/Call.d.ts +1 -1
  44. package/lib/Types/Chat.d.ts +7 -14
  45. package/lib/Types/Contact.d.ts +1 -5
  46. package/lib/Types/Events.d.ts +2 -44
  47. package/lib/Types/GroupMetadata.d.ts +2 -11
  48. package/lib/Types/Label.js +1 -1
  49. package/lib/Types/LabelAssociation.js +1 -1
  50. package/lib/Types/Message.d.ts +21 -148
  51. package/lib/Types/Message.js +2 -0
  52. package/lib/Types/Newsletter.d.ts +13 -0
  53. package/lib/Types/Newsletter.js +17 -3
  54. package/lib/Types/Socket.d.ts +9 -17
  55. package/lib/Types/index.d.ts +1 -8
  56. package/lib/Types/index.js +2 -2
  57. package/lib/Utils/auth-utils.d.ts +3 -3
  58. package/lib/Utils/auth-utils.js +13 -6
  59. package/lib/Utils/business.js +2 -2
  60. package/lib/Utils/chat-utils.d.ts +16 -15
  61. package/lib/Utils/chat-utils.js +35 -36
  62. package/lib/Utils/crypto.d.ts +16 -15
  63. package/lib/Utils/crypto.js +29 -71
  64. package/lib/Utils/decode-wa-message.d.ts +6 -22
  65. package/lib/Utils/decode-wa-message.js +56 -65
  66. package/lib/Utils/event-buffer.d.ts +2 -2
  67. package/lib/Utils/event-buffer.js +7 -11
  68. package/lib/Utils/generics.d.ts +20 -17
  69. package/lib/Utils/generics.js +23 -73
  70. package/lib/Utils/history.d.ts +0 -4
  71. package/lib/Utils/history.js +6 -4
  72. package/lib/Utils/link-preview.d.ts +2 -2
  73. package/lib/Utils/link-preview.js +1 -34
  74. package/lib/Utils/logger.d.ts +3 -10
  75. package/lib/Utils/lt-hash.d.ts +2 -2
  76. package/lib/Utils/lt-hash.js +6 -6
  77. package/lib/Utils/make-mutex.d.ts +2 -2
  78. package/lib/Utils/messages-media.d.ts +24 -28
  79. package/lib/Utils/messages-media.js +115 -263
  80. package/lib/Utils/messages.d.ts +10 -8
  81. package/lib/Utils/messages.js +72 -298
  82. package/lib/Utils/noise-handler.d.ts +12 -10
  83. package/lib/Utils/noise-handler.js +23 -18
  84. package/lib/Utils/process-message.d.ts +4 -5
  85. package/lib/Utils/process-message.js +23 -74
  86. package/lib/Utils/signal.d.ts +1 -2
  87. package/lib/Utils/signal.js +35 -37
  88. package/lib/Utils/use-multi-file-auth-state.d.ts +1 -0
  89. package/lib/Utils/use-multi-file-auth-state.js +6 -51
  90. package/lib/Utils/validate-connection.d.ts +4 -3
  91. package/lib/Utils/validate-connection.js +52 -20
  92. package/lib/WABinary/constants.d.ts +4 -4
  93. package/lib/WABinary/constants.js +13 -1276
  94. package/lib/WABinary/decode.d.ts +4 -3
  95. package/lib/WABinary/decode.js +13 -26
  96. package/lib/WABinary/encode.d.ts +2 -1
  97. package/lib/WABinary/encode.js +17 -39
  98. package/lib/WABinary/generic-utils.d.ts +3 -1
  99. package/lib/WABinary/generic-utils.js +85 -2
  100. package/lib/WABinary/jid-utils.d.ts +5 -10
  101. package/lib/WABinary/jid-utils.js +5 -26
  102. package/lib/WAM/BinaryInfo.d.ts +11 -2
  103. package/lib/WAM/encode.d.ts +2 -1
  104. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -1
  105. package/lib/index.d.ts +2 -6
  106. package/lib/index.js +7 -22
  107. package/lib/index.js.bak +37 -0
  108. package/package.json +103 -111
  109. package/LICENSE +0 -21
  110. package/WAProto/GenerateStatics.sh +0 -4
  111. package/WAProto/WAProto.proto +0 -4775
  112. package/WAProto/index.d.ts +0 -55057
  113. package/WAProto/index.ts.ts +0 -53473
  114. package/WAProto/p.html +0 -1
  115. package/lib/WABinary/jid-utils.js.bak +0 -83
  116. /package/lib/Socket/Client/{types.js → abstract-socket-client.js} +0 -0
@@ -1,4 +1,5 @@
1
- import { SocketConfig, WAMediaUpload, NewsletterMetadata, NewsletterReactionMode, NewsletterViewRole, NewsletterFetchedUpdate } from '../Types';
1
+ /// <reference types="node" />
2
+ import { NewsletterFetchedUpdate, NewsletterMetadata, NewsletterReactionMode, NewsletterViewRole, SocketConfig, WAMediaUpload } from '../Types';
2
3
  import { BinaryNode } from '../WABinary';
3
4
  export declare const makeNewsletterSocket: (config: SocketConfig) => {
4
5
  subscribeNewsletterUpdates: (jid: string) => Promise<{
@@ -13,8 +14,9 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
13
14
  newsletterFollow: (jid: string) => Promise<void>;
14
15
  newsletterUnmute: (jid: string) => Promise<void>;
15
16
  newsletterMute: (jid: string) => Promise<void>;
16
- newsletterCreate: (name: string, description?: string, picture?: WAMediaUpload) => Promise<NewsletterMetadata>;
17
- newsletterMetadata: (type: "invite" | "jid", key: string, role?: NewsletterViewRole) => Promise<NewsletterMetadata>;
17
+ newsletterAction: (jid: string, type: 'follow' | 'unfollow' | 'mute' | 'unmute') => Promise<void>;
18
+ newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<NewsletterMetadata>;
19
+ newsletterMetadata: (type: 'invite' | 'jid', key: string, role?: NewsletterViewRole) => Promise<NewsletterMetadata>;
18
20
  newsletterAdminCount: (jid: string) => Promise<number>;
19
21
  /**user is Lid, not Jid */
20
22
  newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
@@ -22,10 +24,9 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
22
24
  newsletterDemote: (jid: string, user: string) => Promise<void>;
23
25
  newsletterDelete: (jid: string) => Promise<void>;
24
26
  /**if code wasn't passed, the reaction will be removed (if is reacted) */
25
- newsletterReactMessage: (jid: string, server_id: string, code?: string) => Promise<void>;
26
- newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number) => Promise<NewsletterFetchedUpdate[]>;
27
+ newsletterReactMessage: (jid: string, serverId: string, code?: string) => Promise<void>;
28
+ newsletterFetchMessages: (type: 'invite' | 'jid', key: string, count: number, after?: number) => Promise<NewsletterFetchedUpdate[]>;
27
29
  newsletterFetchUpdates: (jid: string, count: number, after?: number, since?: number) => Promise<NewsletterFetchedUpdate[]>;
28
- groupQuery: (jid: string, type: "get" | "set", content: BinaryNode[]) => Promise<any>;
29
30
  groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
30
31
  groupCreate: (subject: string, participants: string[]) => Promise<import("../Types").GroupMetadata>;
31
32
  groupLeave: (id: string) => Promise<void>;
@@ -33,7 +34,7 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
33
34
  groupRequestParticipantsList: (jid: string) => Promise<{
34
35
  [key: string]: string;
35
36
  }[]>;
36
- groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "approve" | "reject") => Promise<{
37
+ groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "reject" | "approve") => Promise<{
37
38
  status: string;
38
39
  jid: string;
39
40
  }[]>;
@@ -42,74 +43,71 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
42
43
  jid: string;
43
44
  content: BinaryNode;
44
45
  }[]>;
45
- groupUpdateDescription: (jid: string, description?: string) => Promise<void>;
46
+ groupUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
46
47
  groupInviteCode: (jid: string) => Promise<string | undefined>;
47
48
  groupRevokeInvite: (jid: string) => Promise<string | undefined>;
48
49
  groupAcceptInvite: (code: string) => Promise<string | undefined>;
49
- groupRevokeInviteV4: (groupJid: string, invitedJid: string) => Promise<boolean>;
50
- groupAcceptInviteV4: (key: string | import("../Types").WAMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<any>;
50
+ groupAcceptInviteV4: (key: string | import("../Types").WAProto.IMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
51
51
  groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
52
52
  groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
53
- groupSettingUpdate: (jid: string, setting: "announcement" | "not_announcement" | "locked" | "unlocked") => Promise<void>;
54
- groupMemberAddMode: (jid: string, mode: "admin_add" | "all_member_add") => Promise<void>;
53
+ groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
54
+ groupMemberAddMode: (jid: string, mode: "all_member_add" | "admin_add") => Promise<void>;
55
55
  groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
56
56
  groupFetchAllParticipating: () => Promise<{
57
57
  [_: string]: import("../Types").GroupMetadata;
58
58
  }>;
59
- getBotListV2: () => Promise<import("../Types").BotListInfo[]>;
60
59
  processingMutex: {
61
- mutex<T>(code: () => Promise<T> | T): Promise<T>;
60
+ mutex<T>(code: () => T | Promise<T>): Promise<T>;
62
61
  };
63
62
  fetchPrivacySettings: (force?: boolean) => Promise<{
64
63
  [_: string]: string;
65
64
  }>;
66
- upsertMessage: (msg: import("../Types").WAMessage, type: import("../Types").MessageUpsertType) => Promise<void>;
65
+ upsertMessage: (msg: import("../Types").WAProto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise<void>;
67
66
  appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise<void>;
68
- sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string) => Promise<void>;
69
- presenceSubscribe: (toJid: string, tcToken?: Buffer) => Promise<void>;
70
- profilePictureUrl: (jid: string, type?: "preview" | "image", timeoutMs?: number) => Promise<string | undefined>;
67
+ sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string | undefined) => Promise<void>;
68
+ presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
69
+ profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
71
70
  onWhatsApp: (...jids: string[]) => Promise<{
72
71
  jid: string;
73
72
  exists: unknown;
74
73
  lid: unknown;
75
74
  }[] | undefined>;
76
75
  fetchBlocklist: () => Promise<string[]>;
77
- fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
78
- fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
76
+ fetchStatus: (jid: string) => Promise<{
77
+ status: string | undefined;
78
+ setAt: Date;
79
+ } | undefined>;
79
80
  updateProfilePicture: (jid: string, content: WAMediaUpload) => Promise<void>;
80
81
  removeProfilePicture: (jid: string) => Promise<void>;
81
82
  updateProfileStatus: (status: string) => Promise<void>;
82
83
  updateProfileName: (name: string) => Promise<void>;
83
84
  updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
84
- updateCallPrivacy: (value: import("../Types").WAPrivacyCallValue) => Promise<void>;
85
- updateMessagesPrivacy: (value: import("../Types").WAPrivacyMessagesValue) => Promise<void>;
86
85
  updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
87
86
  updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
88
87
  updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
89
88
  updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
90
89
  updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
91
- updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
90
+ updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
92
91
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
93
- getBusinessProfile: (jid: string) => Promise<import("../Types").WABusinessProfile | void>;
94
- resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
92
+ getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
93
+ resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
95
94
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
96
- cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
95
+ cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
97
96
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
98
97
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
99
98
  addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
100
99
  removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
101
100
  star: (jid: string, messages: {
102
101
  id: string;
103
- fromMe?: boolean;
102
+ fromMe?: boolean | undefined;
104
103
  }[], star: boolean) => Promise<void>;
105
- executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
106
104
  type: "md";
107
- ws: import("./Client").WebSocketClient;
105
+ ws: any;
108
106
  ev: import("../Types").BaileysEventEmitter & {
109
- process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): (() => void);
107
+ process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
110
108
  buffer(): void;
111
- createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): ((...args: A) => Promise<T>);
112
- flush(force?: boolean): boolean;
109
+ createBufferedFunction<A extends any[], T_1>(work: (...args: A) => Promise<T_1>): (...args: A) => Promise<T_1>;
110
+ flush(force?: boolean | undefined): boolean;
113
111
  isBuffering(): boolean;
114
112
  };
115
113
  authState: {
@@ -119,18 +117,18 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
119
117
  signalRepository: import("../Types").SignalRepository;
120
118
  user: import("../Types").Contact | undefined;
121
119
  generateMessageTag: () => string;
122
- query: (node: BinaryNode, timeoutMs?: number) => Promise<any>;
123
- waitForMessage: <T>(msgId: string, timeoutMs?: number | undefined) => Promise<any>;
120
+ query: (node: BinaryNode, timeoutMs?: number | undefined) => Promise<BinaryNode>;
121
+ waitForMessage: <T_2>(msgId: string, timeoutMs?: number | undefined) => Promise<T_2>;
124
122
  waitForSocketOpen: () => Promise<void>;
125
123
  sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
126
124
  sendNode: (frame: BinaryNode) => Promise<void>;
127
- logout: (msg?: string) => Promise<void>;
125
+ logout: (msg?: string | undefined) => Promise<void>;
128
126
  end: (error: Error | undefined) => void;
129
- onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
127
+ onUnexpectedError: (err: Error | import("@hapi/boom").Boom<any>, msg: string) => void;
130
128
  uploadPreKeys: (count?: number) => Promise<void>;
131
129
  uploadPreKeysToServerIfRequired: () => Promise<void>;
132
- requestPairingCode: (phoneNumber: any, pairKey?: string) => Promise<string>;
133
- waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
134
- sendWAMBuffer: (wamBuffer: Buffer) => Promise<any>;
130
+ requestPairingCode: (phoneNumber: string) => Promise<string>;
131
+ waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined, timeoutMs?: number | undefined) => Promise<void>;
132
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<BinaryNode>;
135
133
  };
136
134
  export declare const extractNewsletterMetadata: (node: BinaryNode, isCreate?: boolean) => NewsletterMetadata;
@@ -5,20 +5,6 @@ const Types_1 = require("../Types");
5
5
  const Utils_1 = require("../Utils");
6
6
  const WABinary_1 = require("../WABinary");
7
7
  const groups_1 = require("./groups");
8
- var QueryIds;
9
- (function (QueryIds) {
10
- QueryIds["JOB_MUTATION"] = "7150902998257522";
11
- QueryIds["METADATA"] = "6620195908089573";
12
- QueryIds["UNFOLLOW"] = "7238632346214362";
13
- QueryIds["FOLLOW"] = "7871414976211147";
14
- QueryIds["UNMUTE"] = "7337137176362961";
15
- QueryIds["MUTE"] = "25151904754424642";
16
- QueryIds["CREATE"] = "6996806640408138";
17
- QueryIds["ADMIN_COUNT"] = "7130823597031706";
18
- QueryIds["CHANGE_OWNER"] = "7341777602580933";
19
- QueryIds["DELETE"] = "8316537688363079";
20
- QueryIds["DEMOTE"] = "6551828931592903";
21
- })(QueryIds || (QueryIds = {}));
22
8
  const makeNewsletterSocket = (config) => {
23
9
  const sock = (0, groups_1.makeGroupsSocket)(config);
24
10
  const { authState, signalRepository, query, generateMessageTag } = sock;
@@ -33,7 +19,7 @@ const makeNewsletterSocket = (config) => {
33
19
  },
34
20
  content
35
21
  }));
36
- const newsletterWMexQuery = async (jid, query_id, content) => (query({
22
+ const newsletterWMexQuery = async (jid, queryId, content) => (query({
37
23
  tag: 'iq',
38
24
  attrs: {
39
25
  id: generateMessageTag(),
@@ -44,7 +30,7 @@ const makeNewsletterSocket = (config) => {
44
30
  content: [
45
31
  {
46
32
  tag: 'query',
47
- attrs: { query_id },
33
+ attrs: { 'query_id': queryId },
48
34
  content: encoder.encode(JSON.stringify({
49
35
  variables: {
50
36
  'newsletter_id': jid,
@@ -56,8 +42,9 @@ const makeNewsletterSocket = (config) => {
56
42
  }));
57
43
  const parseFetchedUpdates = async (node, type) => {
58
44
  let child;
59
- if (type === 'messages')
45
+ if (type === 'messages') {
60
46
  child = (0, WABinary_1.getBinaryNodeChild)(node, 'messages');
47
+ }
61
48
  else {
62
49
  const parent = (0, WABinary_1.getBinaryNodeChild)(node, 'message_updates');
63
50
  child = (0, WABinary_1.getBinaryNodeChild)(parent, 'messages');
@@ -90,44 +77,49 @@ const makeNewsletterSocket = (config) => {
90
77
  return (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'live_updates')) === null || _a === void 0 ? void 0 : _a.attrs;
91
78
  },
92
79
  newsletterReactionMode: async (jid, mode) => {
93
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
94
- updates: { settings: { reaction_codes: { value: mode } } }
80
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
81
+ updates: { settings: { 'reaction_codes': { value: mode } } }
95
82
  });
96
83
  },
97
84
  newsletterUpdateDescription: async (jid, description) => {
98
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
85
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
99
86
  updates: { description: description || '', settings: null }
100
87
  });
101
88
  },
102
89
  newsletterUpdateName: async (jid, name) => {
103
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
90
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
104
91
  updates: { name, settings: null }
105
92
  });
106
93
  },
107
94
  newsletterUpdatePicture: async (jid, content) => {
108
95
  const { img } = await (0, Utils_1.generateProfilePicture)(content);
109
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
96
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
110
97
  updates: { picture: img.toString('base64'), settings: null }
111
98
  });
112
99
  },
113
100
  newsletterRemovePicture: async (jid) => {
114
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
101
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
115
102
  updates: { picture: '', settings: null }
116
103
  });
117
104
  },
118
105
  newsletterUnfollow: async (jid) => {
119
- await newsletterWMexQuery(jid, QueryIds.UNFOLLOW);
106
+ await newsletterWMexQuery(jid, Types_1.QueryIds.UNFOLLOW);
120
107
  },
121
108
  newsletterFollow: async (jid) => {
122
- await newsletterWMexQuery(jid, QueryIds.FOLLOW);
109
+ await newsletterWMexQuery(jid, Types_1.QueryIds.FOLLOW);
123
110
  },
124
111
  newsletterUnmute: async (jid) => {
125
- await newsletterWMexQuery(jid, QueryIds.UNMUTE);
112
+ await newsletterWMexQuery(jid, Types_1.QueryIds.UNMUTE);
126
113
  },
127
114
  newsletterMute: async (jid) => {
128
- await newsletterWMexQuery(jid, QueryIds.MUTE);
115
+ await newsletterWMexQuery(jid, Types_1.QueryIds.MUTE);
116
+ },
117
+ newsletterAction: async (jid, type) => {
118
+ await newsletterWMexQuery(jid, type.toUpperCase());
129
119
  },
130
- newsletterCreate: async (name, description, picture) => {
120
+ newsletterCreate: async (name, description, reaction_codes) => {
121
+ //TODO: Implement TOS system wide for Meta AI, communities, and here etc.
122
+ /**tos query */
131
123
  await query({
132
124
  tag: 'iq',
133
125
  attrs: {
@@ -147,55 +139,50 @@ const makeNewsletterSocket = (config) => {
147
139
  }
148
140
  ]
149
141
  });
150
- const result = await newsletterWMexQuery(undefined, QueryIds.CREATE, {
151
- input: {
152
- name,
153
- description: description !== null && description !== void 0 ? description : null,
154
- picture: picture ? (await (0, Utils_1.generateProfilePicture)(picture)).img.toString('base64') : null,
155
- settings: null
156
- }
142
+ const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.CREATE, {
143
+ input: { name, description, settings: { 'reaction_codes': { value: reaction_codes.toUpperCase() } } }
157
144
  });
158
145
  return (0, exports.extractNewsletterMetadata)(result, true);
159
146
  },
160
147
  newsletterMetadata: async (type, key, role) => {
161
- const result = await newsletterWMexQuery(undefined, QueryIds.METADATA, {
148
+ const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.METADATA, {
162
149
  input: {
163
150
  key,
164
151
  type: type.toUpperCase(),
165
- view_role: role || 'GUEST'
152
+ 'view_role': role || 'GUEST'
166
153
  },
167
- fetch_viewer_metadata: true,
168
- fetch_full_image: true,
169
- fetch_creation_time: true
154
+ 'fetch_viewer_metadata': true,
155
+ 'fetch_full_image': true,
156
+ 'fetch_creation_time': true
170
157
  });
171
158
  return (0, exports.extractNewsletterMetadata)(result);
172
159
  },
173
160
  newsletterAdminCount: async (jid) => {
174
161
  var _a, _b;
175
- const result = await newsletterWMexQuery(jid, QueryIds.ADMIN_COUNT);
162
+ const result = await newsletterWMexQuery(jid, Types_1.QueryIds.ADMIN_COUNT);
176
163
  const buff = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'result')) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.toString();
177
164
  return JSON.parse(buff).data[Types_1.XWAPaths.ADMIN_COUNT].admin_count;
178
165
  },
179
166
  /**user is Lid, not Jid */
180
167
  newsletterChangeOwner: async (jid, user) => {
181
- await newsletterWMexQuery(jid, QueryIds.CHANGE_OWNER, {
182
- user_id: user
168
+ await newsletterWMexQuery(jid, Types_1.QueryIds.CHANGE_OWNER, {
169
+ 'user_id': user
183
170
  });
184
171
  },
185
172
  /**user is Lid, not Jid */
186
173
  newsletterDemote: async (jid, user) => {
187
- await newsletterWMexQuery(jid, QueryIds.DEMOTE, {
188
- user_id: user
174
+ await newsletterWMexQuery(jid, Types_1.QueryIds.DEMOTE, {
175
+ 'user_id': user
189
176
  });
190
177
  },
191
178
  newsletterDelete: async (jid) => {
192
- await newsletterWMexQuery(jid, QueryIds.DELETE);
179
+ await newsletterWMexQuery(jid, Types_1.QueryIds.DELETE);
193
180
  },
194
181
  /**if code wasn't passed, the reaction will be removed (if is reacted) */
195
- newsletterReactMessage: async (jid, server_id, code) => {
182
+ newsletterReactMessage: async (jid, serverId, code) => {
196
183
  await query({
197
184
  tag: 'message',
198
- attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction', server_id, id: (0, Utils_1.generateMessageID)() },
185
+ attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction', 'server_id': serverId, id: (0, Utils_1.generateMessageID)() },
199
186
  content: [{
200
187
  tag: 'reaction',
201
188
  attrs: code ? { code } : {}
@@ -203,11 +190,10 @@ const makeNewsletterSocket = (config) => {
203
190
  });
204
191
  },
205
192
  newsletterFetchMessages: async (type, key, count, after) => {
206
- const afterStr = after === null || after === void 0 ? void 0 : after.toString();
207
193
  const result = await newsletterQuery(WABinary_1.S_WHATSAPP_NET, 'get', [
208
194
  {
209
195
  tag: 'messages',
210
- attrs: { type, ...(type === 'invite' ? { key } : { jid: key }), count: count.toString(), after: afterStr || '100' }
196
+ attrs: { type, ...(type === 'invite' ? { key } : { jid: key }), count: count.toString(), after: (after === null || after === void 0 ? void 0 : after.toString()) || '100' }
211
197
  }
212
198
  ]);
213
199
  return await parseFetchedUpdates(result, 'messages');
@@ -225,13 +211,13 @@ const makeNewsletterSocket = (config) => {
225
211
  };
226
212
  exports.makeNewsletterSocket = makeNewsletterSocket;
227
213
  const extractNewsletterMetadata = (node, isCreate) => {
228
- var _a, _b, _c, _d;
214
+ var _a, _b, _c, _d, _e, _f, _g;
229
215
  const result = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(node, 'result')) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.toString();
230
216
  const metadataPath = JSON.parse(result).data[isCreate ? Types_1.XWAPaths.CREATE : Types_1.XWAPaths.NEWSLETTER];
231
217
  const metadata = {
232
218
  id: metadataPath.id,
233
219
  state: metadataPath.state.type,
234
- creation_time: +metadataPath.thread_metadata.creation_time,
220
+ 'creation_time': +metadataPath.thread_metadata.creation_time,
235
221
  name: metadataPath.thread_metadata.name.text,
236
222
  nameTime: +metadataPath.thread_metadata.name.update_time,
237
223
  description: metadataPath.thread_metadata.description.text,
@@ -240,10 +226,10 @@ const extractNewsletterMetadata = (node, isCreate) => {
240
226
  handle: metadataPath.thread_metadata.handle,
241
227
  picture: ((_c = metadataPath.thread_metadata.picture) === null || _c === void 0 ? void 0 : _c.direct_path) || null,
242
228
  preview: ((_d = metadataPath.thread_metadata.preview) === null || _d === void 0 ? void 0 : _d.direct_path) || null,
243
- reaction_codes: metadataPath.thread_metadata.settings.reaction_codes.value,
229
+ 'reaction_codes': (_g = (_f = (_e = metadataPath.thread_metadata) === null || _e === void 0 ? void 0 : _e.settings) === null || _f === void 0 ? void 0 : _f.reaction_codes) === null || _g === void 0 ? void 0 : _g.value,
244
230
  subscribers: +metadataPath.thread_metadata.subscribers_count,
245
231
  verification: metadataPath.thread_metadata.verification,
246
- viewer_metadata: metadataPath.viewer_metadata
232
+ 'viewer_metadata': metadataPath.viewer_metadata
247
233
  };
248
234
  return metadata;
249
235
  };