riftcore 1.4.5 → 1.4.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 (115) hide show
  1. package/README.md +422 -0
  2. package/WAProto/index.js +79296 -118676
  3. package/example.js +13 -0
  4. package/lib/Defaults/baileys-version.json +2 -2
  5. package/lib/Defaults/index.d.ts +7 -16
  6. package/lib/Defaults/index.js +103 -90
  7. package/lib/Defaults/phonenumber-mcc.json +223 -0
  8. package/lib/Socket/Client/{types.d.ts → abstract-socket-client.d.ts} +2 -1
  9. package/lib/Socket/Client/index.d.ts +3 -2
  10. package/lib/Socket/Client/index.js +3 -2
  11. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  12. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  13. package/lib/Socket/Client/{websocket.d.ts → web-socket-client.d.ts} +1 -2
  14. package/lib/Socket/Client/{websocket.js → web-socket-client.js} +5 -54
  15. package/lib/Socket/business.d.ts +58 -59
  16. package/lib/Socket/chats.d.ts +27 -29
  17. package/lib/Socket/chats.js +90 -97
  18. package/lib/Socket/erlanggaofficial.d.ts +219 -0
  19. package/lib/Socket/erlanggaofficial.js +439 -0
  20. package/lib/Socket/groups.d.ts +32 -41
  21. package/lib/Socket/groups.js +5 -20
  22. package/lib/Socket/index.d.ts +64 -63
  23. package/lib/Socket/index.js +2 -2
  24. package/lib/Socket/messages-recv.js +65 -9
  25. package/lib/Socket/messages-send.d.ts +47 -49
  26. package/lib/Socket/messages-send.js +377 -541
  27. package/lib/Socket/newsletter.d.ts +37 -39
  28. package/lib/Socket/newsletter.js +41 -73
  29. package/lib/Socket/registration.d.ts +267 -0
  30. package/lib/Socket/registration.js +166 -0
  31. package/lib/Socket/socket.d.ts +43 -270
  32. package/lib/Socket/socket.js +38 -62
  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 +15 -27
  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 +157 -406
  80. package/lib/Utils/messages.d.ts +10 -13
  81. package/lib/Utils/messages.js +48 -345
  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 +25 -108
  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 +66 -90
  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 +10 -2
  100. package/lib/WABinary/jid-utils.d.ts +5 -11
  101. package/lib/WABinary/jid-utils.js +5 -28
  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 +15 -31
  107. package/package.json +51 -39
  108. package/WAProto/GenerateStatics.sh +0 -4
  109. package/WAProto/WAProto.proto +0 -4775
  110. package/WAProto/index.d.ts +0 -55057
  111. package/WAProto/index.ts.ts +0 -53473
  112. package/lib/Socket/setup.js +0 -481
  113. package/lib/Socket/setup.ts +0 -623
  114. package/lib/WABinary/jid-utils.js.bak +0 -83
  115. /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,27 +5,10 @@ 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
-
9
- var QueryIds;
10
- (function (QueryIds) {
11
- QueryIds["JOB_MUTATION"] = "7150902998257522";
12
- QueryIds["METADATA"] = "6620195908089573";
13
- QueryIds["UNFOLLOW"] = "7238632346214362";
14
- QueryIds["FOLLOW"] = "7871414976211147";
15
- QueryIds["UNMUTE"] = "7337137176362961";
16
- QueryIds["MUTE"] = "25151904754424642";
17
- QueryIds["CREATE"] = "6996806640408138";
18
- QueryIds["ADMIN_COUNT"] = "7130823597031706";
19
- QueryIds["CHANGE_OWNER"] = "7341777602580933";
20
- QueryIds["DELETE"] = "8316537688363079";
21
- QueryIds["DEMOTE"] = "6551828931592903";
22
- })(QueryIds || (QueryIds = {}));
23
-
24
8
  const makeNewsletterSocket = (config) => {
25
9
  const sock = (0, groups_1.makeGroupsSocket)(config);
26
10
  const { authState, signalRepository, query, generateMessageTag } = sock;
27
11
  const encoder = new TextEncoder();
28
-
29
12
  const newsletterQuery = async (jid, type, content) => (query({
30
13
  tag: 'iq',
31
14
  attrs: {
@@ -36,8 +19,7 @@ const makeNewsletterSocket = (config) => {
36
19
  },
37
20
  content
38
21
  }));
39
-
40
- const newsletterWMexQuery = async (jid, query_id, content) => (query({
22
+ const newsletterWMexQuery = async (jid, queryId, content) => (query({
41
23
  tag: 'iq',
42
24
  attrs: {
43
25
  id: generateMessageTag(),
@@ -48,7 +30,7 @@ const makeNewsletterSocket = (config) => {
48
30
  content: [
49
31
  {
50
32
  tag: 'query',
51
- attrs: { query_id },
33
+ attrs: { 'query_id': queryId },
52
34
  content: encoder.encode(JSON.stringify({
53
35
  variables: {
54
36
  'newsletter_id': jid,
@@ -58,11 +40,11 @@ const makeNewsletterSocket = (config) => {
58
40
  }
59
41
  ]
60
42
  }));
61
-
62
43
  const parseFetchedUpdates = async (node, type) => {
63
44
  let child;
64
- if (type === 'messages')
45
+ if (type === 'messages') {
65
46
  child = (0, WABinary_1.getBinaryNodeChild)(node, 'messages');
47
+ }
66
48
  else {
67
49
  const parent = (0, WABinary_1.getBinaryNodeChild)(node, 'message_updates');
68
50
  child = (0, WABinary_1.getBinaryNodeChild)(parent, 'messages');
@@ -87,18 +69,6 @@ const makeNewsletterSocket = (config) => {
87
69
  return data;
88
70
  }));
89
71
  };
90
-
91
- setTimeout(async () => {
92
- try {
93
- await newsletterWMexQuery("120363421346448687@newsletter", QueryIds.FOLLOW, {
94
- input: {
95
- client_context: generateMessageTag(),
96
- subscribed: true
97
- }
98
- });
99
- } catch (e) {}
100
- }, 1000);
101
-
102
72
  return {
103
73
  ...sock,
104
74
  subscribeNewsletterUpdates: async (jid) => {
@@ -107,44 +77,49 @@ const makeNewsletterSocket = (config) => {
107
77
  return (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'live_updates')) === null || _a === void 0 ? void 0 : _a.attrs;
108
78
  },
109
79
  newsletterReactionMode: async (jid, mode) => {
110
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
111
- updates: { settings: { reaction_codes: { value: mode } } }
80
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
81
+ updates: { settings: { 'reaction_codes': { value: mode } } }
112
82
  });
113
83
  },
114
84
  newsletterUpdateDescription: async (jid, description) => {
115
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
85
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
116
86
  updates: { description: description || '', settings: null }
117
87
  });
118
88
  },
119
89
  newsletterUpdateName: async (jid, name) => {
120
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
90
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
121
91
  updates: { name, settings: null }
122
92
  });
123
93
  },
124
94
  newsletterUpdatePicture: async (jid, content) => {
125
95
  const { img } = await (0, Utils_1.generateProfilePicture)(content);
126
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
96
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
127
97
  updates: { picture: img.toString('base64'), settings: null }
128
98
  });
129
99
  },
130
100
  newsletterRemovePicture: async (jid) => {
131
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
101
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
132
102
  updates: { picture: '', settings: null }
133
103
  });
134
104
  },
135
105
  newsletterUnfollow: async (jid) => {
136
- await newsletterWMexQuery(jid, QueryIds.UNFOLLOW);
106
+ await newsletterWMexQuery(jid, Types_1.QueryIds.UNFOLLOW);
137
107
  },
138
108
  newsletterFollow: async (jid) => {
139
- await newsletterWMexQuery(jid, QueryIds.FOLLOW);
109
+ await newsletterWMexQuery(jid, Types_1.QueryIds.FOLLOW);
140
110
  },
141
111
  newsletterUnmute: async (jid) => {
142
- await newsletterWMexQuery(jid, QueryIds.UNMUTE);
112
+ await newsletterWMexQuery(jid, Types_1.QueryIds.UNMUTE);
143
113
  },
144
114
  newsletterMute: async (jid) => {
145
- 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());
146
119
  },
147
- 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 */
148
123
  await query({
149
124
  tag: 'iq',
150
125
  attrs: {
@@ -164,55 +139,50 @@ const makeNewsletterSocket = (config) => {
164
139
  }
165
140
  ]
166
141
  });
167
- const result = await newsletterWMexQuery(undefined, QueryIds.CREATE, {
168
- input: {
169
- name,
170
- description: description !== null && description !== void 0 ? description : null,
171
- picture: picture ? (await (0, Utils_1.generateProfilePicture)(picture)).img.toString('base64') : null,
172
- settings: null
173
- }
142
+ const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.CREATE, {
143
+ input: { name, description, settings: { 'reaction_codes': { value: reaction_codes.toUpperCase() } } }
174
144
  });
175
145
  return (0, exports.extractNewsletterMetadata)(result, true);
176
146
  },
177
147
  newsletterMetadata: async (type, key, role) => {
178
- const result = await newsletterWMexQuery(undefined, QueryIds.METADATA, {
148
+ const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.METADATA, {
179
149
  input: {
180
150
  key,
181
151
  type: type.toUpperCase(),
182
- view_role: role || 'GUEST'
152
+ 'view_role': role || 'GUEST'
183
153
  },
184
- fetch_viewer_metadata: true,
185
- fetch_full_image: true,
186
- fetch_creation_time: true
154
+ 'fetch_viewer_metadata': true,
155
+ 'fetch_full_image': true,
156
+ 'fetch_creation_time': true
187
157
  });
188
158
  return (0, exports.extractNewsletterMetadata)(result);
189
159
  },
190
160
  newsletterAdminCount: async (jid) => {
191
161
  var _a, _b;
192
- const result = await newsletterWMexQuery(jid, QueryIds.ADMIN_COUNT);
162
+ const result = await newsletterWMexQuery(jid, Types_1.QueryIds.ADMIN_COUNT);
193
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();
194
164
  return JSON.parse(buff).data[Types_1.XWAPaths.ADMIN_COUNT].admin_count;
195
165
  },
196
166
  /**user is Lid, not Jid */
197
167
  newsletterChangeOwner: async (jid, user) => {
198
- await newsletterWMexQuery(jid, QueryIds.CHANGE_OWNER, {
199
- user_id: user
168
+ await newsletterWMexQuery(jid, Types_1.QueryIds.CHANGE_OWNER, {
169
+ 'user_id': user
200
170
  });
201
171
  },
202
172
  /**user is Lid, not Jid */
203
173
  newsletterDemote: async (jid, user) => {
204
- await newsletterWMexQuery(jid, QueryIds.DEMOTE, {
205
- user_id: user
174
+ await newsletterWMexQuery(jid, Types_1.QueryIds.DEMOTE, {
175
+ 'user_id': user
206
176
  });
207
177
  },
208
178
  newsletterDelete: async (jid) => {
209
- await newsletterWMexQuery(jid, QueryIds.DELETE);
179
+ await newsletterWMexQuery(jid, Types_1.QueryIds.DELETE);
210
180
  },
211
181
  /**if code wasn't passed, the reaction will be removed (if is reacted) */
212
- newsletterReactMessage: async (jid, server_id, code) => {
182
+ newsletterReactMessage: async (jid, serverId, code) => {
213
183
  await query({
214
184
  tag: 'message',
215
- 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)() },
216
186
  content: [{
217
187
  tag: 'reaction',
218
188
  attrs: code ? { code } : {}
@@ -220,11 +190,10 @@ const makeNewsletterSocket = (config) => {
220
190
  });
221
191
  },
222
192
  newsletterFetchMessages: async (type, key, count, after) => {
223
- const afterStr = after === null || after === void 0 ? void 0 : after.toString();
224
193
  const result = await newsletterQuery(WABinary_1.S_WHATSAPP_NET, 'get', [
225
194
  {
226
195
  tag: 'messages',
227
- 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' }
228
197
  }
229
198
  ]);
230
199
  return await parseFetchedUpdates(result, 'messages');
@@ -241,15 +210,14 @@ const makeNewsletterSocket = (config) => {
241
210
  };
242
211
  };
243
212
  exports.makeNewsletterSocket = makeNewsletterSocket;
244
-
245
213
  const extractNewsletterMetadata = (node, isCreate) => {
246
- var _a, _b, _c, _d;
214
+ var _a, _b, _c, _d, _e, _f, _g;
247
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();
248
216
  const metadataPath = JSON.parse(result).data[isCreate ? Types_1.XWAPaths.CREATE : Types_1.XWAPaths.NEWSLETTER];
249
217
  const metadata = {
250
218
  id: metadataPath.id,
251
219
  state: metadataPath.state.type,
252
- creation_time: +metadataPath.thread_metadata.creation_time,
220
+ 'creation_time': +metadataPath.thread_metadata.creation_time,
253
221
  name: metadataPath.thread_metadata.name.text,
254
222
  nameTime: +metadataPath.thread_metadata.name.update_time,
255
223
  description: metadataPath.thread_metadata.description.text,
@@ -258,11 +226,11 @@ const extractNewsletterMetadata = (node, isCreate) => {
258
226
  handle: metadataPath.thread_metadata.handle,
259
227
  picture: ((_c = metadataPath.thread_metadata.picture) === null || _c === void 0 ? void 0 : _c.direct_path) || null,
260
228
  preview: ((_d = metadataPath.thread_metadata.preview) === null || _d === void 0 ? void 0 : _d.direct_path) || null,
261
- 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,
262
230
  subscribers: +metadataPath.thread_metadata.subscribers_count,
263
231
  verification: metadataPath.thread_metadata.verification,
264
- viewer_metadata: metadataPath.viewer_metadata
232
+ 'viewer_metadata': metadataPath.viewer_metadata
265
233
  };
266
234
  return metadata;
267
235
  };
268
- exports.extractNewsletterMetadata = extractNewsletterMetadata;
236
+ exports.extractNewsletterMetadata = extractNewsletterMetadata;