@kangwifi-pro/waliwa 1.0.2 → 1.1.0

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 (76) hide show
  1. package/dist/community/audio-transcription.d.ts +46 -0
  2. package/dist/community/audio-transcription.d.ts.map +1 -0
  3. package/dist/community/audio-transcription.js +108 -0
  4. package/dist/community/audio-transcription.js.map +1 -0
  5. package/dist/community/bulk-operations.d.ts +87 -0
  6. package/dist/community/bulk-operations.d.ts.map +1 -0
  7. package/dist/community/bulk-operations.js +223 -0
  8. package/dist/community/bulk-operations.js.map +1 -0
  9. package/dist/community/community-fixes.d.ts +306 -0
  10. package/dist/community/community-fixes.d.ts.map +1 -0
  11. package/dist/community/community-fixes.js +630 -0
  12. package/dist/community/community-fixes.js.map +1 -0
  13. package/dist/community/contacts-manager.d.ts +89 -0
  14. package/dist/community/contacts-manager.d.ts.map +1 -0
  15. package/dist/community/contacts-manager.js +241 -0
  16. package/dist/community/contacts-manager.js.map +1 -0
  17. package/dist/community/disappearing.d.ts +63 -0
  18. package/dist/community/disappearing.d.ts.map +1 -0
  19. package/dist/community/disappearing.js +195 -0
  20. package/dist/community/disappearing.js.map +1 -0
  21. package/dist/community/index.d.ts +101 -0
  22. package/dist/community/index.d.ts.map +1 -0
  23. package/dist/community/index.js +113 -0
  24. package/dist/community/index.js.map +1 -0
  25. package/dist/community/live-location.d.ts +85 -0
  26. package/dist/community/live-location.d.ts.map +1 -0
  27. package/dist/community/live-location.js +238 -0
  28. package/dist/community/live-location.js.map +1 -0
  29. package/dist/community/message-extras.d.ts +110 -0
  30. package/dist/community/message-extras.d.ts.map +1 -0
  31. package/dist/community/message-extras.js +472 -0
  32. package/dist/community/message-extras.js.map +1 -0
  33. package/dist/community/newsletter-extended.d.ts +142 -0
  34. package/dist/community/newsletter-extended.d.ts.map +1 -0
  35. package/dist/community/newsletter-extended.js +543 -0
  36. package/dist/community/newsletter-extended.js.map +1 -0
  37. package/dist/community/privacy-manager.d.ts +98 -0
  38. package/dist/community/privacy-manager.d.ts.map +1 -0
  39. package/dist/community/privacy-manager.js +273 -0
  40. package/dist/community/privacy-manager.js.map +1 -0
  41. package/dist/community/profile-manager.d.ts +94 -0
  42. package/dist/community/profile-manager.d.ts.map +1 -0
  43. package/dist/community/profile-manager.js +363 -0
  44. package/dist/community/profile-manager.js.map +1 -0
  45. package/dist/community/status-extended.d.ts +119 -0
  46. package/dist/community/status-extended.d.ts.map +1 -0
  47. package/dist/community/status-extended.js +444 -0
  48. package/dist/community/status-extended.js.map +1 -0
  49. package/dist/community/sticker-manager.d.ts +73 -0
  50. package/dist/community/sticker-manager.d.ts.map +1 -0
  51. package/dist/community/sticker-manager.js +251 -0
  52. package/dist/community/sticker-manager.js.map +1 -0
  53. package/dist/index.d.ts +4 -2
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +33 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/socket/wa-socket.d.ts +77 -0
  58. package/dist/socket/wa-socket.d.ts.map +1 -1
  59. package/dist/socket/wa-socket.js +149 -3
  60. package/dist/socket/wa-socket.js.map +1 -1
  61. package/package.json +2 -2
  62. package/src/community/audio-transcription.ts +121 -0
  63. package/src/community/bulk-operations.ts +329 -0
  64. package/src/community/community-fixes.ts +771 -0
  65. package/src/community/contacts-manager.ts +282 -0
  66. package/src/community/disappearing.ts +218 -0
  67. package/src/community/index.ts +169 -0
  68. package/src/community/live-location.ts +287 -0
  69. package/src/community/message-extras.ts +523 -0
  70. package/src/community/newsletter-extended.ts +614 -0
  71. package/src/community/privacy-manager.ts +310 -0
  72. package/src/community/profile-manager.ts +402 -0
  73. package/src/community/status-extended.ts +518 -0
  74. package/src/community/sticker-manager.ts +305 -0
  75. package/src/index.ts +67 -2
  76. package/src/socket/wa-socket.ts +183 -4
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Waliwa - Community Module Entry Point
3
+ *
4
+ * Semua fitur yang diminta komunitas Baileys + fix untuk issue-issue.
5
+ *
6
+ * FITUR BARU:
7
+ * - ProfileManager: update PP, about, name; get profile info
8
+ * - PrivacyManager: block/unblock, privacy settings
9
+ * - NewsletterManagerExtended: post, mute, metadata, subscribers, verification
10
+ * - StatusExtended: reply, views tracking, privacy, album
11
+ * - ContactsManager: sync contacts, check registered
12
+ * - BulkOperations: bulk send, broadcast, album send
13
+ * - MessageExtras: edit, star, pin, view-once download, message info
14
+ * - DisappearingManager: timer control per chat
15
+ * - LiveLocationManager: live location sharing
16
+ * - AudioTranscriptionManager: Whisper integration
17
+ * - StickerManager: sticker packs, custom stickers
18
+ *
19
+ * FIXES:
20
+ * - TypingIndicatorTracker: reliable typing indicator
21
+ * - LastSeenTracker: last seen tracking
22
+ * - MessageStatusTracker: real-time status
23
+ * - SelfMessageFilter: skip self messages
24
+ * - ChatStateManager: reliable archive/pin/mute
25
+ * - DeviceInfoTracker: battery, phone info
26
+ * - GroupEventsTracker: group changes detection
27
+ */
28
+ export { ProfileManager } from './profile-manager.js';
29
+ export type { ProfileInfo, ProfileManagerOptions } from './profile-manager.js';
30
+ export { PrivacyManager } from './privacy-manager.js';
31
+ export type { PrivacyValue, PrivacyCategory, PrivacySettings, PrivacyManagerOptions } from './privacy-manager.js';
32
+ export { NewsletterManager as NewsletterManagerExtended } from './newsletter-extended.js';
33
+ export type { NewsletterMetadata, NewsletterPost, NewsletterManagerOptions as NewsletterExtOptions } from './newsletter-extended.js';
34
+ export { StatusExtended } from './status-extended.js';
35
+ export type { StatusView, StatusInfo, StatusPrivacyValue, StatusPrivacy, StatusExtendedOptions } from './status-extended.js';
36
+ export { ContactsManager } from './contacts-manager.js';
37
+ export type { ContactInfo, ContactsManagerOptions } from './contacts-manager.js';
38
+ export { BulkOperations } from './bulk-operations.js';
39
+ export type { BulkSendItem, BulkSendResult, BulkSendOptions, AlbumItem, BulkOperationsOptions } from './bulk-operations.js';
40
+ export { MessageExtras } from './message-extras.js';
41
+ export type { MessageInfo, MessageExtrasOptions } from './message-extras.js';
42
+ export { DisappearingManager } from './disappearing.js';
43
+ export type { DisappearingTimer, DisappearingManagerOptions } from './disappearing.js';
44
+ export { TIMER_TO_SECONDS, SECONDS_TO_TIMER } from './disappearing.js';
45
+ export { LiveLocationManager } from './live-location.js';
46
+ export type { LiveLocation, LiveLocationManagerOptions } from './live-location.js';
47
+ export { AudioTranscriptionManager, detectLanguageFromText } from './audio-transcription.js';
48
+ export type { TranscriptionResult, TranscriptionProvider } from './audio-transcription.js';
49
+ export { StickerManager } from './sticker-manager.js';
50
+ export type { StickerMetadata, StickerPack, StickerManagerOptions } from './sticker-manager.js';
51
+ export { TypingIndicatorTracker, LastSeenTracker, MessageStatusTracker, SelfMessageFilter, ChatStateManager, DeviceInfoTracker, GroupEventsTracker, parseGroupInviteInfo } from './community-fixes.js';
52
+ export type { ChatState, GroupInviteInfo } from './community-fixes.js';
53
+ import { ProfileManager } from './profile-manager.js';
54
+ import { PrivacyManager } from './privacy-manager.js';
55
+ import { NewsletterManager as NewsletterManagerExtended } from './newsletter-extended.js';
56
+ import { StatusExtended } from './status-extended.js';
57
+ import { ContactsManager } from './contacts-manager.js';
58
+ import { BulkOperations } from './bulk-operations.js';
59
+ import { MessageExtras } from './message-extras.js';
60
+ import { DisappearingManager } from './disappearing.js';
61
+ import { LiveLocationManager } from './live-location.js';
62
+ import { StickerManager } from './sticker-manager.js';
63
+ import { TypingIndicatorTracker, LastSeenTracker, MessageStatusTracker, SelfMessageFilter, ChatStateManager, DeviceInfoTracker, GroupEventsTracker } from './community-fixes.js';
64
+ import type { WALogger } from '../types/index.js';
65
+ export interface CommunityManagers {
66
+ profile: ProfileManager;
67
+ privacy: PrivacyManager;
68
+ newsletter: NewsletterManagerExtended;
69
+ status: StatusExtended;
70
+ contacts: ContactsManager;
71
+ bulk: BulkOperations;
72
+ messageExtras: MessageExtras;
73
+ disappearing: DisappearingManager;
74
+ liveLocation: LiveLocationManager;
75
+ sticker: StickerManager;
76
+ }
77
+ export interface CommunityTrackers {
78
+ typing: TypingIndicatorTracker;
79
+ lastSeen: LastSeenTracker;
80
+ messageStatus: MessageStatusTracker;
81
+ selfFilter: SelfMessageFilter;
82
+ chatState: ChatStateManager;
83
+ deviceInfo: DeviceInfoTracker;
84
+ groupEvents: GroupEventsTracker;
85
+ }
86
+ /**
87
+ * Create semua community managers
88
+ */
89
+ export declare function createCommunityManagers(opts: {
90
+ send: (data: Uint8Array) => void;
91
+ registerIqHandler: (id: string, handler: (node: any) => void) => void;
92
+ sendMessage: (jid: any, content: any) => Promise<any>;
93
+ uploadMedia: (data: Buffer | Uint8Array, type: string, mimetype: string, fileName?: string) => Promise<any>;
94
+ downloadMedia?: (url: string, mediaKey: Uint8Array, type: string, mimetype: string) => Promise<Buffer>;
95
+ ownJid?: string;
96
+ logger?: WALogger;
97
+ }): {
98
+ managers: CommunityManagers;
99
+ trackers: CommunityTrackers;
100
+ };
101
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/community/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /**
3
+ * Waliwa - Community Module Entry Point
4
+ *
5
+ * Semua fitur yang diminta komunitas Baileys + fix untuk issue-issue.
6
+ *
7
+ * FITUR BARU:
8
+ * - ProfileManager: update PP, about, name; get profile info
9
+ * - PrivacyManager: block/unblock, privacy settings
10
+ * - NewsletterManagerExtended: post, mute, metadata, subscribers, verification
11
+ * - StatusExtended: reply, views tracking, privacy, album
12
+ * - ContactsManager: sync contacts, check registered
13
+ * - BulkOperations: bulk send, broadcast, album send
14
+ * - MessageExtras: edit, star, pin, view-once download, message info
15
+ * - DisappearingManager: timer control per chat
16
+ * - LiveLocationManager: live location sharing
17
+ * - AudioTranscriptionManager: Whisper integration
18
+ * - StickerManager: sticker packs, custom stickers
19
+ *
20
+ * FIXES:
21
+ * - TypingIndicatorTracker: reliable typing indicator
22
+ * - LastSeenTracker: last seen tracking
23
+ * - MessageStatusTracker: real-time status
24
+ * - SelfMessageFilter: skip self messages
25
+ * - ChatStateManager: reliable archive/pin/mute
26
+ * - DeviceInfoTracker: battery, phone info
27
+ * - GroupEventsTracker: group changes detection
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.parseGroupInviteInfo = exports.GroupEventsTracker = exports.DeviceInfoTracker = exports.ChatStateManager = exports.SelfMessageFilter = exports.MessageStatusTracker = exports.LastSeenTracker = exports.TypingIndicatorTracker = exports.StickerManager = exports.detectLanguageFromText = exports.AudioTranscriptionManager = exports.LiveLocationManager = exports.SECONDS_TO_TIMER = exports.TIMER_TO_SECONDS = exports.DisappearingManager = exports.MessageExtras = exports.BulkOperations = exports.ContactsManager = exports.StatusExtended = exports.NewsletterManagerExtended = exports.PrivacyManager = exports.ProfileManager = void 0;
31
+ exports.createCommunityManagers = createCommunityManagers;
32
+ // Managers (with IQ integration)
33
+ var profile_manager_js_1 = require("./profile-manager.js");
34
+ Object.defineProperty(exports, "ProfileManager", { enumerable: true, get: function () { return profile_manager_js_1.ProfileManager; } });
35
+ var privacy_manager_js_1 = require("./privacy-manager.js");
36
+ Object.defineProperty(exports, "PrivacyManager", { enumerable: true, get: function () { return privacy_manager_js_1.PrivacyManager; } });
37
+ var newsletter_extended_js_1 = require("./newsletter-extended.js");
38
+ Object.defineProperty(exports, "NewsletterManagerExtended", { enumerable: true, get: function () { return newsletter_extended_js_1.NewsletterManager; } });
39
+ var status_extended_js_1 = require("./status-extended.js");
40
+ Object.defineProperty(exports, "StatusExtended", { enumerable: true, get: function () { return status_extended_js_1.StatusExtended; } });
41
+ var contacts_manager_js_1 = require("./contacts-manager.js");
42
+ Object.defineProperty(exports, "ContactsManager", { enumerable: true, get: function () { return contacts_manager_js_1.ContactsManager; } });
43
+ var bulk_operations_js_1 = require("./bulk-operations.js");
44
+ Object.defineProperty(exports, "BulkOperations", { enumerable: true, get: function () { return bulk_operations_js_1.BulkOperations; } });
45
+ var message_extras_js_1 = require("./message-extras.js");
46
+ Object.defineProperty(exports, "MessageExtras", { enumerable: true, get: function () { return message_extras_js_1.MessageExtras; } });
47
+ var disappearing_js_1 = require("./disappearing.js");
48
+ Object.defineProperty(exports, "DisappearingManager", { enumerable: true, get: function () { return disappearing_js_1.DisappearingManager; } });
49
+ var disappearing_js_2 = require("./disappearing.js");
50
+ Object.defineProperty(exports, "TIMER_TO_SECONDS", { enumerable: true, get: function () { return disappearing_js_2.TIMER_TO_SECONDS; } });
51
+ Object.defineProperty(exports, "SECONDS_TO_TIMER", { enumerable: true, get: function () { return disappearing_js_2.SECONDS_TO_TIMER; } });
52
+ var live_location_js_1 = require("./live-location.js");
53
+ Object.defineProperty(exports, "LiveLocationManager", { enumerable: true, get: function () { return live_location_js_1.LiveLocationManager; } });
54
+ var audio_transcription_js_1 = require("./audio-transcription.js");
55
+ Object.defineProperty(exports, "AudioTranscriptionManager", { enumerable: true, get: function () { return audio_transcription_js_1.AudioTranscriptionManager; } });
56
+ Object.defineProperty(exports, "detectLanguageFromText", { enumerable: true, get: function () { return audio_transcription_js_1.detectLanguageFromText; } });
57
+ var sticker_manager_js_1 = require("./sticker-manager.js");
58
+ Object.defineProperty(exports, "StickerManager", { enumerable: true, get: function () { return sticker_manager_js_1.StickerManager; } });
59
+ // Fixes (no IQ needed, pure logic)
60
+ var community_fixes_js_1 = require("./community-fixes.js");
61
+ Object.defineProperty(exports, "TypingIndicatorTracker", { enumerable: true, get: function () { return community_fixes_js_1.TypingIndicatorTracker; } });
62
+ Object.defineProperty(exports, "LastSeenTracker", { enumerable: true, get: function () { return community_fixes_js_1.LastSeenTracker; } });
63
+ Object.defineProperty(exports, "MessageStatusTracker", { enumerable: true, get: function () { return community_fixes_js_1.MessageStatusTracker; } });
64
+ Object.defineProperty(exports, "SelfMessageFilter", { enumerable: true, get: function () { return community_fixes_js_1.SelfMessageFilter; } });
65
+ Object.defineProperty(exports, "ChatStateManager", { enumerable: true, get: function () { return community_fixes_js_1.ChatStateManager; } });
66
+ Object.defineProperty(exports, "DeviceInfoTracker", { enumerable: true, get: function () { return community_fixes_js_1.DeviceInfoTracker; } });
67
+ Object.defineProperty(exports, "GroupEventsTracker", { enumerable: true, get: function () { return community_fixes_js_1.GroupEventsTracker; } });
68
+ Object.defineProperty(exports, "parseGroupInviteInfo", { enumerable: true, get: function () { return community_fixes_js_1.parseGroupInviteInfo; } });
69
+ // ============== Main Community Manager (Aggregator) ==============
70
+ const profile_manager_js_2 = require("./profile-manager.js");
71
+ const privacy_manager_js_2 = require("./privacy-manager.js");
72
+ const newsletter_extended_js_2 = require("./newsletter-extended.js");
73
+ const status_extended_js_2 = require("./status-extended.js");
74
+ const contacts_manager_js_2 = require("./contacts-manager.js");
75
+ const bulk_operations_js_2 = require("./bulk-operations.js");
76
+ const message_extras_js_2 = require("./message-extras.js");
77
+ const disappearing_js_3 = require("./disappearing.js");
78
+ const live_location_js_2 = require("./live-location.js");
79
+ const sticker_manager_js_2 = require("./sticker-manager.js");
80
+ const community_fixes_js_2 = require("./community-fixes.js");
81
+ const logger_js_1 = require("../utils/logger.js");
82
+ /**
83
+ * Create semua community managers
84
+ */
85
+ function createCommunityManagers(opts) {
86
+ const logger = opts.logger ?? new logger_js_1.SilentLogger();
87
+ const managers = {
88
+ profile: new profile_manager_js_2.ProfileManager({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger }),
89
+ privacy: new privacy_manager_js_2.PrivacyManager({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger }),
90
+ newsletter: new newsletter_extended_js_2.NewsletterManager({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger }),
91
+ status: new status_extended_js_2.StatusExtended({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger }),
92
+ contacts: new contacts_manager_js_2.ContactsManager({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger, ownJid: opts.ownJid }),
93
+ bulk: new bulk_operations_js_2.BulkOperations({ sendMessage: opts.sendMessage, uploadMedia: opts.uploadMedia, logger }),
94
+ messageExtras: new message_extras_js_2.MessageExtras({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger, downloadMedia: opts.downloadMedia }),
95
+ disappearing: new disappearing_js_3.DisappearingManager({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger }),
96
+ liveLocation: new live_location_js_2.LiveLocationManager({ send: opts.send, registerIqHandler: opts.registerIqHandler, logger }),
97
+ sticker: new sticker_manager_js_2.StickerManager({ send: opts.send, uploadMedia: opts.uploadMedia, registerIqHandler: opts.registerIqHandler, logger })
98
+ };
99
+ const trackers = {
100
+ typing: new community_fixes_js_2.TypingIndicatorTracker(logger),
101
+ lastSeen: new community_fixes_js_2.LastSeenTracker(logger),
102
+ messageStatus: new community_fixes_js_2.MessageStatusTracker(logger),
103
+ selfFilter: new community_fixes_js_2.SelfMessageFilter(),
104
+ chatState: new community_fixes_js_2.ChatStateManager(logger),
105
+ deviceInfo: new community_fixes_js_2.DeviceInfoTracker(logger),
106
+ groupEvents: new community_fixes_js_2.GroupEventsTracker(logger)
107
+ };
108
+ if (opts.ownJid) {
109
+ trackers.selfFilter.setOwnJid(opts.ownJid);
110
+ }
111
+ return { managers, trackers };
112
+ }
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/community/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AAuGH,0DAuCC;AA5ID,iCAAiC;AACjC,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAGvB,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAGvB,mEAA0F;AAAjF,mIAAA,iBAAiB,OAA6B;AAGvD,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAGvB,6DAAwD;AAA/C,sHAAA,eAAe,OAAA;AAGxB,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAGvB,yDAAoD;AAA3C,kHAAA,aAAa,OAAA;AAGtB,qDAAwD;AAA/C,sHAAA,mBAAmB,OAAA;AAE5B,qDAAuE;AAA9D,mHAAA,gBAAgB,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AAE3C,uDAAyD;AAAhD,uHAAA,mBAAmB,OAAA;AAG5B,mEAA6F;AAApF,mIAAA,yBAAyB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAG1D,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAGvB,mCAAmC;AACnC,2DAS8B;AAR5B,4HAAA,sBAAsB,OAAA;AACtB,qHAAA,eAAe,OAAA;AACf,0HAAA,oBAAoB,OAAA;AACpB,uHAAA,iBAAiB,OAAA;AACjB,sHAAA,gBAAgB,OAAA;AAChB,uHAAA,iBAAiB,OAAA;AACjB,wHAAA,kBAAkB,OAAA;AAClB,0HAAA,oBAAoB,OAAA;AAOtB,oEAAoE;AAEpE,6DAAsD;AACtD,6DAAsD;AACtD,qEAA0F;AAC1F,6DAAsD;AACtD,+DAAwD;AACxD,6DAAsD;AACtD,2DAAoD;AACpD,uDAAwD;AACxD,yDAAyD;AACzD,6DAAsD;AACtD,6DAQ8B;AAE9B,kDAAkD;AAyBlD;;GAEG;AACH,SAAgB,uBAAuB,CAAC,IAQvC;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,wBAAY,EAAE,CAAC;IAEjD,MAAM,QAAQ,GAAsB;QAClC,OAAO,EAAE,IAAI,mCAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QACnG,OAAO,EAAE,IAAI,mCAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QACnG,UAAU,EAAE,IAAI,0CAAyB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QACjH,MAAM,EAAE,IAAI,mCAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAClG,QAAQ,EAAE,IAAI,qCAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1H,IAAI,EAAE,IAAI,mCAAc,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAClG,aAAa,EAAE,IAAI,iCAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3I,YAAY,EAAE,IAAI,qCAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC7G,YAAY,EAAE,IAAI,sCAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC7G,OAAO,EAAE,IAAI,mCAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;KACnI,CAAC;IAEF,MAAM,QAAQ,GAAsB;QAClC,MAAM,EAAE,IAAI,2CAAsB,CAAC,MAAM,CAAC;QAC1C,QAAQ,EAAE,IAAI,oCAAe,CAAC,MAAM,CAAC;QACrC,aAAa,EAAE,IAAI,yCAAoB,CAAC,MAAM,CAAC;QAC/C,UAAU,EAAE,IAAI,sCAAiB,EAAE;QACnC,SAAS,EAAE,IAAI,qCAAgB,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,IAAI,sCAAiB,CAAC,MAAM,CAAC;QACzC,WAAW,EAAE,IAAI,uCAAkB,CAAC,MAAM,CAAC;KAC5C,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Waliwa - Live Location (Community Request)
3
+ *
4
+ * Fitur yang sering diminta komunitas Baileys:
5
+ * - Share live location (real-time)
6
+ * - Stop live location sharing
7
+ * - Get live location dari incoming messages
8
+ * - Update live location coordinates
9
+ * - Set live location expiration
10
+ *
11
+ * Fix Baileys issues:
12
+ * - Live location tidak support
13
+ * - Tidak bisa stop live location
14
+ */
15
+ import type { JIDLike, WALogger } from '../types/index.js';
16
+ import { BinaryNode } from '../core/binary.js';
17
+ export interface LiveLocation {
18
+ latitude: number;
19
+ longitude: number;
20
+ accuracy: number;
21
+ speed?: number;
22
+ heading?: number;
23
+ altitude?: number;
24
+ expiration: number;
25
+ caption?: string;
26
+ sequenceNumber: number;
27
+ }
28
+ export interface LiveLocationManagerOptions {
29
+ send: (data: Uint8Array) => void;
30
+ registerIqHandler: (id: string, handler: (node: BinaryNode) => void) => void;
31
+ logger?: WALogger;
32
+ }
33
+ export declare class LiveLocationManager {
34
+ private send;
35
+ private registerIqHandler;
36
+ private logger;
37
+ private activeShares;
38
+ private sequenceCounters;
39
+ constructor(opts: LiveLocationManagerOptions);
40
+ /**
41
+ * Start sharing live location
42
+ * Fix Baileys issue: live location tidak support
43
+ */
44
+ startSharing(jid: JIDLike, location: Omit<LiveLocation, 'sequenceNumber'>, durationMs?: number): Promise<string>;
45
+ /**
46
+ * Update live location coordinates
47
+ */
48
+ updateLocation(jid: JIDLike, location: Partial<LiveLocation>): Promise<string>;
49
+ /**
50
+ * Stop sharing live location
51
+ * Fix Baileys issue: tidak bisa stop live location
52
+ */
53
+ stopSharing(jid: JIDLike): Promise<void>;
54
+ /**
55
+ * Stop all active live location sharing
56
+ */
57
+ stopAllSharing(): Promise<void>;
58
+ /**
59
+ * Get all active live location sharing
60
+ */
61
+ getActiveShares(): Array<{
62
+ jid: string;
63
+ location: LiveLocation;
64
+ }>;
65
+ /**
66
+ * Check if currently sharing live location with a chat
67
+ */
68
+ isSharing(jid: JIDLike): boolean;
69
+ /**
70
+ * Get sequence number untuk a chat
71
+ */
72
+ getSequenceNumber(jid: JIDLike): number;
73
+ /**
74
+ * Send static location message (non-live)
75
+ */
76
+ sendStaticLocation(jid: JIDLike, latitude: number, longitude: number, options?: {
77
+ name?: string;
78
+ address?: string;
79
+ }): Promise<string>;
80
+ /**
81
+ * Parse incoming live location message
82
+ */
83
+ parseLiveLocationMessage(message: any): LiveLocation | null;
84
+ }
85
+ //# sourceMappingURL=live-location.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-location.d.ts","sourceRoot":"","sources":["../../src/community/live-location.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAoB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKjE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC;IAC7E,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,gBAAgB,CAAkC;gBAE9C,IAAI,EAAE,0BAA0B;IAM5C;;;OAGG;IACG,YAAY,CAChB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAC9C,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IAiDlB;;OAEG;IACG,cAAc,CAClB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;IAyClB;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC9C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrC;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAQjE;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIhC;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAIvC;;OAEG;IACG,kBAAkB,CACtB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC,MAAM,CAAC;IAyBlB;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,GAAG,GAAG,YAAY,GAAG,IAAI;CAgB5D"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ /**
3
+ * Waliwa - Live Location (Community Request)
4
+ *
5
+ * Fitur yang sering diminta komunitas Baileys:
6
+ * - Share live location (real-time)
7
+ * - Stop live location sharing
8
+ * - Get live location dari incoming messages
9
+ * - Update live location coordinates
10
+ * - Set live location expiration
11
+ *
12
+ * Fix Baileys issues:
13
+ * - Live location tidak support
14
+ * - Tidak bisa stop live location
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.LiveLocationManager = void 0;
18
+ const binary_js_1 = require("../core/binary.js");
19
+ const jid_js_1 = require("../utils/jid.js");
20
+ const message_encoder_js_1 = require("../messages/message-encoder.js");
21
+ const logger_js_1 = require("../utils/logger.js");
22
+ class LiveLocationManager {
23
+ send;
24
+ registerIqHandler;
25
+ logger;
26
+ activeShares = new Map(); // chatJid -> live location
27
+ sequenceCounters = new Map();
28
+ constructor(opts) {
29
+ this.send = opts.send;
30
+ this.registerIqHandler = opts.registerIqHandler;
31
+ this.logger = opts.logger ?? new logger_js_1.SilentLogger();
32
+ }
33
+ /**
34
+ * Start sharing live location
35
+ * Fix Baileys issue: live location tidak support
36
+ */
37
+ async startSharing(jid, location, durationMs) {
38
+ const jidStr = (0, jid_js_1.jidToString)(jid);
39
+ const seq = (this.sequenceCounters.get(jidStr) ?? 0) + 1;
40
+ this.sequenceCounters.set(jidStr, seq);
41
+ const liveLocation = { ...location, sequenceNumber: seq };
42
+ this.activeShares.set(jidStr, liveLocation);
43
+ const messageId = (0, message_encoder_js_1.generateMessageId)();
44
+ const node = {
45
+ tag: 'message',
46
+ attrs: {
47
+ to: jidStr,
48
+ type: 'location',
49
+ id: messageId
50
+ },
51
+ content: [
52
+ {
53
+ tag: 'live_location_message',
54
+ attrs: {
55
+ degrees_latitude: location.latitude.toString(),
56
+ degrees_longitude: location.longitude.toString(),
57
+ accuracy: location.accuracy.toString(),
58
+ speed: (location.speed ?? 0).toString(),
59
+ heading: (location.heading ?? 0).toString(),
60
+ altitude: (location.altitude ?? 0).toString(),
61
+ expiration: location.expiration.toString(),
62
+ sequence_number: seq.toString(),
63
+ caption: location.caption ?? ''
64
+ }
65
+ }
66
+ ]
67
+ };
68
+ this.send((0, binary_js_1.encodeBinaryNode)(node));
69
+ this.logger.info(`Started live location sharing with ${jidStr} (expiration: ${location.expiration}s)`);
70
+ // Auto-stop after expiration
71
+ if (durationMs && durationMs > 0) {
72
+ const expirationMs = Math.min(durationMs, location.expiration * 1000);
73
+ setTimeout(() => {
74
+ this.stopSharing(jid).catch(err => {
75
+ this.logger.warn(`Failed to auto-stop live location: ${err.message}`);
76
+ });
77
+ }, expirationMs);
78
+ }
79
+ return messageId;
80
+ }
81
+ /**
82
+ * Update live location coordinates
83
+ */
84
+ async updateLocation(jid, location) {
85
+ const jidStr = (0, jid_js_1.jidToString)(jid);
86
+ const existing = this.activeShares.get(jidStr);
87
+ if (!existing) {
88
+ throw new Error(`No active live location sharing with ${jidStr}`);
89
+ }
90
+ const seq = (this.sequenceCounters.get(jidStr) ?? 0) + 1;
91
+ this.sequenceCounters.set(jidStr, seq);
92
+ const updated = { ...existing, ...location, sequenceNumber: seq };
93
+ this.activeShares.set(jidStr, updated);
94
+ const messageId = (0, message_encoder_js_1.generateMessageId)();
95
+ const node = {
96
+ tag: 'message',
97
+ attrs: {
98
+ to: jidStr,
99
+ type: 'location',
100
+ id: messageId
101
+ },
102
+ content: [
103
+ {
104
+ tag: 'live_location_update',
105
+ attrs: {
106
+ degrees_latitude: updated.latitude.toString(),
107
+ degrees_longitude: updated.longitude.toString(),
108
+ accuracy: updated.accuracy.toString(),
109
+ speed: (updated.speed ?? 0).toString(),
110
+ heading: (updated.heading ?? 0).toString(),
111
+ altitude: (updated.altitude ?? 0).toString(),
112
+ sequence_number: seq.toString()
113
+ }
114
+ }
115
+ ]
116
+ };
117
+ this.send((0, binary_js_1.encodeBinaryNode)(node));
118
+ this.logger.debug(`Updated live location #${seq} for ${jidStr}`);
119
+ return messageId;
120
+ }
121
+ /**
122
+ * Stop sharing live location
123
+ * Fix Baileys issue: tidak bisa stop live location
124
+ */
125
+ async stopSharing(jid) {
126
+ const jidStr = (0, jid_js_1.jidToString)(jid);
127
+ if (!this.activeShares.has(jidStr)) {
128
+ this.logger.debug(`No active live location sharing with ${jidStr}`);
129
+ return;
130
+ }
131
+ const seq = (this.sequenceCounters.get(jidStr) ?? 0) + 1;
132
+ this.sequenceCounters.set(jidStr, seq);
133
+ const messageId = (0, message_encoder_js_1.generateMessageId)();
134
+ const node = {
135
+ tag: 'message',
136
+ attrs: {
137
+ to: jidStr,
138
+ type: 'location',
139
+ id: messageId
140
+ },
141
+ content: [
142
+ {
143
+ tag: 'live_location_end',
144
+ attrs: {
145
+ sequence_number: seq.toString()
146
+ }
147
+ }
148
+ ]
149
+ };
150
+ this.send((0, binary_js_1.encodeBinaryNode)(node));
151
+ this.activeShares.delete(jidStr);
152
+ this.logger.info(`Stopped live location sharing with ${jidStr}`);
153
+ }
154
+ /**
155
+ * Stop all active live location sharing
156
+ */
157
+ async stopAllSharing() {
158
+ const jids = Array.from(this.activeShares.keys());
159
+ for (const jid of jids) {
160
+ try {
161
+ await this.stopSharing(jid);
162
+ }
163
+ catch (err) {
164
+ this.logger.warn(`Failed to stop sharing with ${jid}: ${err.message}`);
165
+ }
166
+ }
167
+ }
168
+ /**
169
+ * Get all active live location sharing
170
+ */
171
+ getActiveShares() {
172
+ const result = [];
173
+ for (const [jid, location] of this.activeShares.entries()) {
174
+ result.push({ jid, location });
175
+ }
176
+ return result;
177
+ }
178
+ /**
179
+ * Check if currently sharing live location with a chat
180
+ */
181
+ isSharing(jid) {
182
+ return this.activeShares.has((0, jid_js_1.jidToString)(jid));
183
+ }
184
+ /**
185
+ * Get sequence number untuk a chat
186
+ */
187
+ getSequenceNumber(jid) {
188
+ return this.sequenceCounters.get((0, jid_js_1.jidToString)(jid)) ?? 0;
189
+ }
190
+ /**
191
+ * Send static location message (non-live)
192
+ */
193
+ async sendStaticLocation(jid, latitude, longitude, options = {}) {
194
+ const messageId = (0, message_encoder_js_1.generateMessageId)();
195
+ const node = {
196
+ tag: 'message',
197
+ attrs: {
198
+ to: (0, jid_js_1.jidToString)(jid),
199
+ type: 'location',
200
+ id: messageId
201
+ },
202
+ content: [
203
+ {
204
+ tag: 'location_message',
205
+ attrs: {
206
+ degrees_latitude: latitude.toString(),
207
+ degrees_longitude: longitude.toString(),
208
+ name: options.name ?? '',
209
+ address: options.address ?? ''
210
+ }
211
+ }
212
+ ]
213
+ };
214
+ this.send((0, binary_js_1.encodeBinaryNode)(node));
215
+ return messageId;
216
+ }
217
+ /**
218
+ * Parse incoming live location message
219
+ */
220
+ parseLiveLocationMessage(message) {
221
+ const liveLocation = message?.live_location_message ?? message?.liveLocationMessage;
222
+ if (!liveLocation)
223
+ return null;
224
+ return {
225
+ latitude: parseFloat(liveLocation.degreesLatitude ?? liveLocation.degrees_latitude ?? '0'),
226
+ longitude: parseFloat(liveLocation.degreesLongitude ?? liveLocation.degrees_longitude ?? '0'),
227
+ accuracy: parseFloat(liveLocation.accuracy ?? '0'),
228
+ speed: parseFloat(liveLocation.speed ?? '0'),
229
+ heading: parseFloat(liveLocation.heading ?? '0'),
230
+ altitude: parseFloat(liveLocation.altitude ?? '0'),
231
+ expiration: parseInt(liveLocation.expiration ?? '0', 10),
232
+ caption: liveLocation.caption,
233
+ sequenceNumber: parseInt(liveLocation.sequenceNumber ?? liveLocation.sequence_number ?? '0', 10)
234
+ };
235
+ }
236
+ }
237
+ exports.LiveLocationManager = LiveLocationManager;
238
+ //# sourceMappingURL=live-location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-location.js","sourceRoot":"","sources":["../../src/community/live-location.ts"],"names":[],"mappings":"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"}