@prototypevip/baileys 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/lib/Signal/Group/group_cipher.js +1 -1
  2. package/lib/Signal/Group/keyhelper.js +1 -1
  3. package/lib/Signal/Group/sender-chain-key.js +1 -1
  4. package/lib/Signal/Group/sender-key-message.js +1 -1
  5. package/lib/Signal/Group/sender-message-key.js +1 -1
  6. package/lib/Signal/libsignal-wasm/LICENSE +621 -0
  7. package/lib/Signal/libsignal-wasm/NOTICE.md +11 -0
  8. package/lib/Signal/libsignal-wasm/README.md +64 -0
  9. package/lib/Signal/libsignal-wasm/index.d.ts +55 -0
  10. package/lib/Signal/libsignal-wasm/index.js +14 -0
  11. package/lib/Signal/libsignal-wasm/protos/WhisperTextProtocol.proto +28 -0
  12. package/lib/Signal/libsignal-wasm/src/WhisperTextProtocol.js +931 -0
  13. package/lib/Signal/libsignal-wasm/src/base_key_type.js +7 -0
  14. package/lib/Signal/libsignal-wasm/src/chain_type.js +6 -0
  15. package/lib/Signal/libsignal-wasm/src/crypto.d.ts +19 -0
  16. package/lib/Signal/libsignal-wasm/src/crypto.js +77 -0
  17. package/lib/Signal/libsignal-wasm/src/curve.d.ts +22 -0
  18. package/lib/Signal/libsignal-wasm/src/curve.js +69 -0
  19. package/lib/Signal/libsignal-wasm/src/errors.js +33 -0
  20. package/lib/Signal/libsignal-wasm/src/keyhelper.js +45 -0
  21. package/lib/Signal/libsignal-wasm/src/numeric_fingerprint.js +72 -0
  22. package/lib/Signal/libsignal-wasm/src/protobufs.js +5 -0
  23. package/lib/Signal/libsignal-wasm/src/protocol_address.js +40 -0
  24. package/lib/Signal/libsignal-wasm/src/queue_job.js +68 -0
  25. package/lib/Signal/libsignal-wasm/src/session_builder.js +162 -0
  26. package/lib/Signal/libsignal-wasm/src/session_cipher.js +336 -0
  27. package/lib/Signal/libsignal-wasm/src/session_record.js +316 -0
  28. package/lib/Signal/libsignal.js +2 -2
  29. package/lib/Socket/index.js +30 -15
  30. package/lib/Utils/crypto.js +1 -1
  31. package/lib/Utils/generics.js +4 -27
  32. package/lib/Utils/index.js +3 -0
  33. package/lib/Utils/modern-messages.js +10 -0
  34. package/lib/Utils/newsletter-status.js +651 -0
  35. package/lib/Utils/status-helpers.js +143 -0
  36. package/package.json +2 -3
  37. package/lib/Defaults/index.js.bak-1788476907801 +0 -187
  38. package/lib/Defaults/index.js.bak-1788479166288 +0 -187
  39. package/lib/Socket/groups.js.bak-1788476973954 +0 -475
  40. package/lib/Socket/index.js.bak-1788479281092 +0 -38
  41. package/lib/Store/prototype-store.js.bak-1788477006895 +0 -983
  42. package/lib/Utils/interactive-message-handler.js.bak-1788476898661 +0 -478
@@ -2,15 +2,22 @@ import { DEFAULT_CONNECTION_CONFIG } from "../Defaults/index.js";
2
2
  import { makeCommunitiesSocket } from "./communities.js";
3
3
  import { stampSocket } from "../Utils/socket-guard.js";
4
4
  import { verifyBrandIntegrity } from "../Utils/integrity-guard.js";
5
+ import {
6
+ makeNewsletterStatusSender,
7
+ makeNewsletterStatusReactionSender,
8
+ makeNewsletterStatusRevokeSender,
9
+ makeNewsletterStatusFetcher,
10
+ makeNewsletterStatusUpdatesFetcher,
11
+ } from "../Utils/newsletter-status.js";
12
+ import { sendPersonalStatus, sendGroupStatus } from "../Utils/status-helpers.js";
5
13
 
6
14
  /**
7
15
  * Create a WhatsApp socket.
8
16
  * Clean version — without AntiBan.
17
+ * v0.1.4 — Channel Status + Group Status + Personal Status APIs
9
18
  */
10
19
  const makeWASocket = (config = {}) => {
11
- // بصمة "prototype" بتتفحص هنا تلقائي — قبل حتى ما أي سوكت يتبني، مش
12
- // محتاجه استدعاء يدوي من البوت (نفس فلسفة stampSocket تحت). لو حد فَكّ
13
- // اسم الباكدج أو غيّر بايتات البصمة يدوي، المكتبه بترفض تشتغل خالص.
20
+ // بصمة "prototype" بتتفحص هنا تلقائي — قبل حتى ما أي سوكت يتبني
14
21
  if (!verifyBrandIntegrity()) {
15
22
  try {
16
23
  console.error("[INTEGRITY-GUARD] brand fingerprint mismatch — refusing to start.");
@@ -32,14 +39,7 @@ const makeWASocket = (config = {}) => {
32
39
 
33
40
  const newConfig = { ...DEFAULT_CONNECTION_CONFIG, ...restConfig };
34
41
 
35
- // ملحوظه مهمه: `Utils/generics.js` (ودوال تانيه زيها) بتستورد
36
- // DEFAULT_CONNECTION_CONFIG مباشره كـ `config` وبتقرا منها وقت التشغيل
37
- // (مش الـ newConfig المدموج فوق)، فأي override زي generateMessageID/
38
- // generateMessageIDV2 بيتحط هنا كان بيتضاع تماما - الكود الداخلي في
39
- // المكتبه (زي توليد id الأزرار) كان بيفضل يستخدم القيم الافتراضيه
40
- // الأصليه (GIN4B0T/G1N4B0T) حتى لو المستخدم غيّرها في makeWASocket().
41
- // بنعمل mutate للـ object المشترك نفسه عشان أي import ثابت ليه في باقي
42
- // المكتبه ياخد نفس القيم المدموجه.
42
+ // mutate shared DEFAULT so internal imports see overrides
43
43
  Object.assign(DEFAULT_CONNECTION_CONFIG, newConfig);
44
44
 
45
45
  let sock;
@@ -52,11 +52,26 @@ const makeWASocket = (config = {}) => {
52
52
 
53
53
  sock = makeCommunitiesSocket(newConfig);
54
54
 
55
- // ختم السوكت تلقائي هنا — قبل كده كان لازم البوت ينادي stampSocket()
56
- // يدوي بعد ما السوكت يترجع (وده كان سهل يتنسى في ملف 2300+ سطر زي
57
- // patch.js)، دلوقتي أي سوكت طالع من makeWASocket() بيتختم لوحده.
55
+ // ختم السوكت تلقائي
58
56
  stampSocket(sock);
59
57
 
58
+ // ── Channels & Stories APIs (0.1.4) ──────────────────────────
59
+ // Newsletter / Channel status (Elaina-style transport)
60
+ sock.sendNewsletterStatus = makeNewsletterStatusSender(sock, newConfig);
61
+ sock.sendChannelStatus = sock.sendNewsletterStatus; // alias
62
+ sock.sendNewsletterStatusReaction = makeNewsletterStatusReactionSender(sock);
63
+ sock.revokeNewsletterStatus = makeNewsletterStatusRevokeSender(sock);
64
+ sock.getNewsletterStatuses = makeNewsletterStatusFetcher(sock);
65
+ sock.getNewsletterStatusUpdates = makeNewsletterStatusUpdatesFetcher(sock);
66
+
67
+ // Personal story (status@broadcast)
68
+ sock.sendPersonalStatus = (content, statusJidList, options) =>
69
+ sendPersonalStatus(sock, content, statusJidList, options);
70
+
71
+ // Group story (groupStatusMessageV2 / groupStatus flag)
72
+ sock.sendGroupStatus = (groupJid, content, options) =>
73
+ sendGroupStatus(sock, groupJid, content, options);
74
+
60
75
  return sock;
61
76
  };
62
77
 
@@ -67,4 +82,4 @@ const wrapSocketWithFingerprint = (makeSock, opts) =>
67
82
  const PRESETS = {};
68
83
 
69
84
  export default makeWASocket;
70
- export { makeWASocket, wrapSocket, wrapSocketWithFingerprint, PRESETS };
85
+ export { makeWASocket, wrapSocket, wrapSocketWithFingerprint, PRESETS };
@@ -5,7 +5,7 @@ import {
5
5
  createHmac,
6
6
  randomBytes,
7
7
  } from "crypto";
8
- import * as curve from "libsignal/src/curve.js";
8
+ import * as curve from "../Signal/libsignal-wasm/src/curve.js";
9
9
  import { KEY_BUNDLE_TYPE } from "../Defaults/index.js";
10
10
  export { md5, hkdf } from "whatsapp-rust-bridge";
11
11
  // insure browser & node compatibility
@@ -248,33 +248,10 @@ export function bindWaitForEvent(ev, event) {
248
248
  export const bindWaitForConnectionUpdate = (ev) =>
249
249
  bindWaitForEvent(ev, "connection.update");
250
250
  /**
251
- * utility that fetches latest baileys version from the master branch.
252
- * Use to ensure your WA connection is always on the latest version
253
- */ export const fetchLatestBaileysVersion = async (options = {}) => {
254
- const URL =
255
- "https://raw.githubusercontent.com/whiskeysockets/baileys/master/src/Defaults/baileys-version.json";
256
- try {
257
- const response = await fetch(URL, {
258
- dispatcher: options.dispatcher,
259
- method: "GET",
260
- headers: options.headers,
261
- });
262
- if (!response.ok) {
263
- throw new Boom(
264
- `Failed to fetch latest Baileys version: ${response.statusText}`,
265
- { statusCode: response.status },
266
- );
267
- }
268
- const json = await response.json();
269
- if (Array.isArray(json.version)) {
270
- return { version: json.version, isLatest: true };
271
- } else {
272
- throw new Error("Could not get baileys version");
273
- }
274
- } catch (error) {
275
- return { version: baileysVersion, isLatest: false, error: error };
276
- }
277
- };
251
+ * Fetches the latest WhatsApp Web client version (same source as fetchLatestWaWebVersion).
252
+ * Falls back to the library's built-in version if the fetch fails.
253
+ */ export const fetchLatestBaileysVersion = async (options = {}) =>
254
+ fetchLatestWaWebVersion(options);
278
255
  /**
279
256
  * A utility that fetches the latest web version of whatsapp.
280
257
  * Use to ensure your WA connection is always on the latest version
@@ -31,3 +31,6 @@ export * from "./ai-rich-formatter.js";
31
31
  export * from "./constants.js";
32
32
  export * from "./socket-guard.js";
33
33
  export * from "./integrity-guard.js";
34
+ export * from "./newsletter-status.js";
35
+ export * from "./status-helpers.js";
36
+ export * from "./modern-messages.js";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Minimal modern-messages shim for @prototypevip/baileys
3
+ * Full Elaina modern message builders are optional; status APIs only need identity transform.
4
+ */
5
+ export const prepareModernMessageContent = (content) => {
6
+ if (!content || typeof content !== "object") return content;
7
+ return content;
8
+ };
9
+
10
+ export default { prepareModernMessageContent };