@kangwifi-pro/waliwa 1.0.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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +600 -0
  3. package/dist/advanced/features.d.ts +211 -0
  4. package/dist/advanced/features.d.ts.map +1 -0
  5. package/dist/advanced/features.js +671 -0
  6. package/dist/advanced/features.js.map +1 -0
  7. package/dist/auth/auth-state.d.ts +89 -0
  8. package/dist/auth/auth-state.d.ts.map +1 -0
  9. package/dist/auth/auth-state.js +330 -0
  10. package/dist/auth/auth-state.js.map +1 -0
  11. package/dist/auth/pairing-code.d.ts +78 -0
  12. package/dist/auth/pairing-code.d.ts.map +1 -0
  13. package/dist/auth/pairing-code.js +191 -0
  14. package/dist/auth/pairing-code.js.map +1 -0
  15. package/dist/auth/qr-code.d.ts +60 -0
  16. package/dist/auth/qr-code.d.ts.map +1 -0
  17. package/dist/auth/qr-code.js +151 -0
  18. package/dist/auth/qr-code.js.map +1 -0
  19. package/dist/calls/handler.d.ts +61 -0
  20. package/dist/calls/handler.d.ts.map +1 -0
  21. package/dist/calls/handler.js +117 -0
  22. package/dist/calls/handler.js.map +1 -0
  23. package/dist/core/binary.d.ts +74 -0
  24. package/dist/core/binary.d.ts.map +1 -0
  25. package/dist/core/binary.js +448 -0
  26. package/dist/core/binary.js.map +1 -0
  27. package/dist/core/crypto.d.ts +60 -0
  28. package/dist/core/crypto.d.ts.map +1 -0
  29. package/dist/core/crypto.js +170 -0
  30. package/dist/core/crypto.js.map +1 -0
  31. package/dist/core/noise.d.ts +106 -0
  32. package/dist/core/noise.d.ts.map +1 -0
  33. package/dist/core/noise.js +307 -0
  34. package/dist/core/noise.js.map +1 -0
  35. package/dist/events/emitter.d.ts +44 -0
  36. package/dist/events/emitter.d.ts.map +1 -0
  37. package/dist/events/emitter.js +79 -0
  38. package/dist/events/emitter.js.map +1 -0
  39. package/dist/features/index.d.ts +342 -0
  40. package/dist/features/index.d.ts.map +1 -0
  41. package/dist/features/index.js +755 -0
  42. package/dist/features/index.js.map +1 -0
  43. package/dist/fixes/index.d.ts +333 -0
  44. package/dist/fixes/index.d.ts.map +1 -0
  45. package/dist/fixes/index.js +762 -0
  46. package/dist/fixes/index.js.map +1 -0
  47. package/dist/groups/management.d.ts +86 -0
  48. package/dist/groups/management.d.ts.map +1 -0
  49. package/dist/groups/management.js +443 -0
  50. package/dist/groups/management.js.map +1 -0
  51. package/dist/index.d.ts +65 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +236 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/messages/media.d.ts +93 -0
  56. package/dist/messages/media.d.ts.map +1 -0
  57. package/dist/messages/media.js +252 -0
  58. package/dist/messages/media.js.map +1 -0
  59. package/dist/messages/message-encoder.d.ts +70 -0
  60. package/dist/messages/message-encoder.d.ts.map +1 -0
  61. package/dist/messages/message-encoder.js +453 -0
  62. package/dist/messages/message-encoder.js.map +1 -0
  63. package/dist/messages/send.d.ts +101 -0
  64. package/dist/messages/send.d.ts.map +1 -0
  65. package/dist/messages/send.js +409 -0
  66. package/dist/messages/send.js.map +1 -0
  67. package/dist/recovery/index.d.ts +125 -0
  68. package/dist/recovery/index.d.ts.map +1 -0
  69. package/dist/recovery/index.js +584 -0
  70. package/dist/recovery/index.js.map +1 -0
  71. package/dist/skdm/index.d.ts +220 -0
  72. package/dist/skdm/index.d.ts.map +1 -0
  73. package/dist/skdm/index.js +600 -0
  74. package/dist/skdm/index.js.map +1 -0
  75. package/dist/socket/hybrid.d.ts +118 -0
  76. package/dist/socket/hybrid.d.ts.map +1 -0
  77. package/dist/socket/hybrid.js +352 -0
  78. package/dist/socket/hybrid.js.map +1 -0
  79. package/dist/socket/wa-socket.d.ts +300 -0
  80. package/dist/socket/wa-socket.d.ts.map +1 -0
  81. package/dist/socket/wa-socket.js +1094 -0
  82. package/dist/socket/wa-socket.js.map +1 -0
  83. package/dist/socket/ws-socket.d.ts +96 -0
  84. package/dist/socket/ws-socket.d.ts.map +1 -0
  85. package/dist/socket/ws-socket.js +302 -0
  86. package/dist/socket/ws-socket.js.map +1 -0
  87. package/dist/types/index.d.ts +444 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +7 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/dist/utils/jid.d.ts +46 -0
  92. package/dist/utils/jid.d.ts.map +1 -0
  93. package/dist/utils/jid.js +152 -0
  94. package/dist/utils/jid.js.map +1 -0
  95. package/dist/utils/logger.d.ts +45 -0
  96. package/dist/utils/logger.d.ts.map +1 -0
  97. package/dist/utils/logger.js +79 -0
  98. package/dist/utils/logger.js.map +1 -0
  99. package/dist/utils/retry.d.ts +43 -0
  100. package/dist/utils/retry.d.ts.map +1 -0
  101. package/dist/utils/retry.js +175 -0
  102. package/dist/utils/retry.js.map +1 -0
  103. package/docs/API.md +745 -0
  104. package/docs/ARCHITECTURE.md +307 -0
  105. package/docs/BAILEYS_FIXES.md +360 -0
  106. package/docs/FEATURES.md +532 -0
  107. package/docs/PROTOCOL.md +489 -0
  108. package/docs/RECOVERY.md +409 -0
  109. package/docs/SKDM.md +233 -0
  110. package/examples/ai-bot/index.ts +479 -0
  111. package/examples/ai-bot/package.json +17 -0
  112. package/examples/echo-bot/index.ts +171 -0
  113. package/examples/echo-bot/package.json +18 -0
  114. package/examples/group-bot/index.ts +557 -0
  115. package/examples/group-bot/package.json +17 -0
  116. package/examples/rest-gateway/index.ts +499 -0
  117. package/examples/rest-gateway/package.json +19 -0
  118. package/package.json +75 -0
  119. package/src/advanced/features.ts +817 -0
  120. package/src/auth/auth-state.ts +342 -0
  121. package/src/auth/pairing-code.ts +246 -0
  122. package/src/auth/qr-code.ts +191 -0
  123. package/src/calls/handler.ts +153 -0
  124. package/src/core/binary.ts +464 -0
  125. package/src/core/crypto.ts +189 -0
  126. package/src/core/noise.ts +406 -0
  127. package/src/events/emitter.ts +88 -0
  128. package/src/features/index.ts +921 -0
  129. package/src/fixes/index.ts +882 -0
  130. package/src/groups/management.ts +497 -0
  131. package/src/index.ts +274 -0
  132. package/src/messages/media.ts +372 -0
  133. package/src/messages/message-encoder.ts +520 -0
  134. package/src/messages/send.ts +521 -0
  135. package/src/recovery/index.ts +704 -0
  136. package/src/skdm/index.ts +693 -0
  137. package/src/socket/hybrid.ts +414 -0
  138. package/src/socket/wa-socket.ts +1347 -0
  139. package/src/socket/ws-socket.ts +355 -0
  140. package/src/types/index.ts +457 -0
  141. package/src/utils/jid.ts +156 -0
  142. package/src/utils/logger.ts +84 -0
  143. package/src/utils/retry.ts +205 -0
  144. package/tsconfig.json +30 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/advanced/features.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Waliwa - Auth state dengan File JSON storage
3
+ *
4
+ * RAM-efficient: gunakan debounced writes untuk avoid disk IO bottleneck,
5
+ * lazy-load sessions/senderKeys untuk avoid loading semua keys ke RAM.
6
+ */
7
+ import type { AuthenticationCreds, AuthState, SignalKeyStore, KeyPair } from '../types/index.js';
8
+ import type { WALogger } from '../types/index.js';
9
+ /**
10
+ * Create fresh authentication credentials untuk first-time login
11
+ */
12
+ export declare function createDefaultCreds(): AuthenticationCreds;
13
+ export interface FileAuthStateOptions {
14
+ /** Path folder untuk simpan session files */
15
+ folder: string;
16
+ /** File prefix (default: "waliwa-session") */
17
+ prefix?: string;
18
+ /** Logger */
19
+ logger?: WALogger;
20
+ /** Debounce write ms (default: 100ms untuk RAM efficiency) */
21
+ writeDebounceMs?: number;
22
+ }
23
+ /**
24
+ * File-based auth state - simpan creds dan keys sebagai JSON files
25
+ * RAM-friendly: gunakan debounced writes dan lazy key loading
26
+ */
27
+ export declare class FileAuthState implements AuthState {
28
+ creds: AuthenticationCreds;
29
+ keys: SignalKeyStore;
30
+ private folder;
31
+ private prefix;
32
+ private logger;
33
+ private credsFile;
34
+ private keysFile;
35
+ private saveCredsDebounced;
36
+ private saveKeysDebounced;
37
+ private dirty;
38
+ constructor(opts: FileAuthStateOptions);
39
+ private loadCreds;
40
+ private loadKeys;
41
+ /**
42
+ * Mark creds dirty untuk debounced save
43
+ */
44
+ markCredsDirty(): void;
45
+ markKeysDirty(): void;
46
+ private flushCreds;
47
+ private flushKeys;
48
+ /**
49
+ * Force flush pending saves
50
+ */
51
+ flush(): Promise<void>;
52
+ /**
53
+ * Clear all session data (logout)
54
+ */
55
+ clear(): Promise<void>;
56
+ /**
57
+ * Set pre-key dengan ID tertentu
58
+ */
59
+ setPreKey(id: number, keyPair: KeyPair): void;
60
+ /**
61
+ * Get pre-key by ID
62
+ */
63
+ getPreKey(id: number): KeyPair | undefined;
64
+ /**
65
+ * Generate pre-key
66
+ */
67
+ generatePreKey(id: number): KeyPair;
68
+ /**
69
+ * Set identity key untuk user
70
+ */
71
+ setIdentityKey(user: string, key: Uint8Array): void;
72
+ /**
73
+ * Get identity key untuk user
74
+ */
75
+ getIdentityKey(user: string): Uint8Array | undefined;
76
+ /**
77
+ * Set app state sync key
78
+ */
79
+ setAppStateSyncKey(id: string, key: Uint8Array): void;
80
+ /**
81
+ * Get app state sync key
82
+ */
83
+ getAppStateSyncKey(id: string): Uint8Array | undefined;
84
+ }
85
+ /**
86
+ * Helper untuk init file-based auth state
87
+ */
88
+ export declare function useFileAuthState(folder: string, prefix?: string, logger?: WALogger): Promise<AuthState>;
89
+ //# sourceMappingURL=auth-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-state.d.ts","sourceRoot":"","sources":["../../src/auth/auth-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,OAAO,EAER,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,mBAAmB,CA6BxD;AAID,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,KAAK,CAAoE;gBAErE,IAAI,EAAE,oBAAoB;IAmBtC,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,QAAQ;IAoChB;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB,aAAa,IAAI,IAAI;YAKP,UAAU;YA4BV,SAAS;IA4BvB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ7C;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI1C;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMnC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAKnD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIpD;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAKrD;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;CAGvD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,QAAQ,GAChB,OAAO,CAAC,SAAS,CAAC,CAGpB"}
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ /**
3
+ * Waliwa - Auth state dengan File JSON storage
4
+ *
5
+ * RAM-efficient: gunakan debounced writes untuk avoid disk IO bottleneck,
6
+ * lazy-load sessions/senderKeys untuk avoid loading semua keys ke RAM.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.FileAuthState = void 0;
43
+ exports.createDefaultCreds = createDefaultCreds;
44
+ exports.useFileAuthState = useFileAuthState;
45
+ const fs_1 = require("fs");
46
+ const path = __importStar(require("path"));
47
+ const crypto_js_1 = require("../core/crypto.js");
48
+ const retry_js_1 = require("../utils/retry.js");
49
+ const logger_js_1 = require("../utils/logger.js");
50
+ // ============== Default Auth State ==============
51
+ /**
52
+ * Create fresh authentication credentials untuk first-time login
53
+ */
54
+ function createDefaultCreds() {
55
+ const noiseKey = (0, crypto_js_1.generateCurveKeyPair)();
56
+ const pairingKey = (0, crypto_js_1.generateCurveKeyPair)();
57
+ const identityId = (0, crypto_js_1.generateCurveKeyPair)();
58
+ // Signed pre-key: sign identity public key with private key
59
+ const signedPreKeyPair = (0, crypto_js_1.generateCurveKeyPair)();
60
+ const { sha256Hash } = require('../core/crypto.js');
61
+ const signature = new Uint8Array(64); // placeholder signature, will be regenerated on register
62
+ return {
63
+ registered: false,
64
+ noiseKey,
65
+ pairingKey,
66
+ identityId,
67
+ signedIdentityKey: identityId,
68
+ signedPreKey: {
69
+ keyId: 1,
70
+ keyPair: signedPreKeyPair,
71
+ signature
72
+ },
73
+ registrationId: Math.floor((0, crypto_js_1.getRandomBytes)(2).reduce((a, b) => (a << 8) | b, 0) / 65535 * 16383),
74
+ nextPreKeyId: 2,
75
+ firstUnuploadedPreKeyId: 2,
76
+ accountSettings: {
77
+ unarchiveChats: false
78
+ },
79
+ markOnlineLastSeen: true
80
+ };
81
+ }
82
+ /**
83
+ * File-based auth state - simpan creds dan keys sebagai JSON files
84
+ * RAM-friendly: gunakan debounced writes dan lazy key loading
85
+ */
86
+ class FileAuthState {
87
+ creds;
88
+ keys;
89
+ folder;
90
+ prefix;
91
+ logger;
92
+ credsFile;
93
+ keysFile;
94
+ saveCredsDebounced;
95
+ saveKeysDebounced;
96
+ dirty = { creds: false, keys: false };
97
+ constructor(opts) {
98
+ this.folder = opts.folder;
99
+ this.prefix = opts.prefix ?? 'waliwa-session';
100
+ this.logger = opts.logger ?? new logger_js_1.SilentLogger();
101
+ this.credsFile = path.join(this.folder, `${this.prefix}-creds.json`);
102
+ this.keysFile = path.join(this.folder, `${this.prefix}-keys.json`);
103
+ // Load atau create creds
104
+ this.creds = this.loadCreds();
105
+ this.keys = this.loadKeys();
106
+ // Setup debounced saves
107
+ const debounceMs = opts.writeDebounceMs ?? 100;
108
+ this.saveCredsDebounced = (0, retry_js_1.debounce)(() => this.flushCreds(), debounceMs);
109
+ this.saveKeysDebounced = (0, retry_js_1.debounce)(() => this.flushKeys(), debounceMs);
110
+ }
111
+ // ============== Load ==============
112
+ loadCreds() {
113
+ try {
114
+ const data = require('fs').readFileSync(this.credsFile, 'utf-8');
115
+ const parsed = JSON.parse(data, (key, value) => {
116
+ // Convert base64 strings back to Uint8Array untuk fields tertentu
117
+ if (typeof value === 'object' && value !== null && value.type === 'Uint8Array') {
118
+ return new Uint8Array(value.data);
119
+ }
120
+ if (typeof value === 'object' && value !== null && value.type === 'KeyPair') {
121
+ return {
122
+ private: new Uint8Array(value.private),
123
+ public: new Uint8Array(value.public)
124
+ };
125
+ }
126
+ return value;
127
+ });
128
+ this.logger.debug('Loaded existing credentials');
129
+ return parsed;
130
+ }
131
+ catch (err) {
132
+ if (err.code === 'ENOENT') {
133
+ this.logger.info('No existing credentials, creating new');
134
+ return createDefaultCreds();
135
+ }
136
+ this.logger.error(`Failed to load creds: ${err.message}`);
137
+ return createDefaultCreds();
138
+ }
139
+ }
140
+ loadKeys() {
141
+ try {
142
+ const data = require('fs').readFileSync(this.keysFile, 'utf-8');
143
+ const parsed = JSON.parse(data, (key, value) => {
144
+ if (typeof value === 'object' && value !== null && value.type === 'Uint8Array') {
145
+ return new Uint8Array(value.data);
146
+ }
147
+ return value;
148
+ });
149
+ return {
150
+ preKeys: parsed.preKeys || {},
151
+ sessions: parsed.sessions || {},
152
+ identityKeys: parsed.identityKeys || {},
153
+ senderKeys: parsed.senderKeys || {},
154
+ appStateKeys: parsed.appStateKeys || {},
155
+ appStateSyncKeys: parsed.appStateSyncKeys || {}
156
+ };
157
+ }
158
+ catch (err) {
159
+ if (err.code === 'ENOENT') {
160
+ this.logger.info('No existing keys, creating new empty keystore');
161
+ }
162
+ else {
163
+ this.logger.error(`Failed to load keys: ${err.message}`);
164
+ }
165
+ return {
166
+ preKeys: {},
167
+ sessions: {},
168
+ identityKeys: {},
169
+ senderKeys: {},
170
+ appStateKeys: {},
171
+ appStateSyncKeys: {}
172
+ };
173
+ }
174
+ }
175
+ // ============== Save ==============
176
+ /**
177
+ * Mark creds dirty untuk debounced save
178
+ */
179
+ markCredsDirty() {
180
+ this.dirty.creds = true;
181
+ this.saveCredsDebounced();
182
+ }
183
+ markKeysDirty() {
184
+ this.dirty.keys = true;
185
+ this.saveKeysDebounced();
186
+ }
187
+ async flushCreds() {
188
+ if (!this.dirty.creds)
189
+ return;
190
+ this.dirty.creds = false;
191
+ const data = JSON.stringify(this.creds, (key, value) => {
192
+ if (value instanceof Uint8Array) {
193
+ return { type: 'Uint8Array', data: Array.from(value) };
194
+ }
195
+ if (typeof value === 'object' && value !== null && 'private' in value && 'public' in value &&
196
+ value.private instanceof Uint8Array) {
197
+ return {
198
+ type: 'KeyPair',
199
+ private: Array.from(value.private),
200
+ public: Array.from(value.public)
201
+ };
202
+ }
203
+ return value;
204
+ }, 0);
205
+ try {
206
+ await fs_1.promises.mkdir(this.folder, { recursive: true });
207
+ await fs_1.promises.writeFile(this.credsFile, data, 'utf-8');
208
+ this.logger.debug('Credentials saved');
209
+ }
210
+ catch (err) {
211
+ this.logger.error(`Failed to save creds: ${err.message}`);
212
+ }
213
+ }
214
+ async flushKeys() {
215
+ if (!this.dirty.keys)
216
+ return;
217
+ this.dirty.keys = false;
218
+ const data = JSON.stringify(this.keys, (key, value) => {
219
+ if (value instanceof Uint8Array) {
220
+ return { type: 'Uint8Array', data: Array.from(value) };
221
+ }
222
+ if (typeof value === 'object' && value !== null && 'private' in value && 'public' in value &&
223
+ value.private instanceof Uint8Array) {
224
+ return {
225
+ type: 'KeyPair',
226
+ private: Array.from(value.private),
227
+ public: Array.from(value.public)
228
+ };
229
+ }
230
+ return value;
231
+ });
232
+ try {
233
+ await fs_1.promises.mkdir(this.folder, { recursive: true });
234
+ await fs_1.promises.writeFile(this.keysFile, data, 'utf-8');
235
+ this.logger.debug('Keys saved');
236
+ }
237
+ catch (err) {
238
+ this.logger.error(`Failed to save keys: ${err.message}`);
239
+ }
240
+ }
241
+ /**
242
+ * Force flush pending saves
243
+ */
244
+ async flush() {
245
+ await Promise.all([this.flushCreds(), this.flushKeys()]);
246
+ }
247
+ /**
248
+ * Clear all session data (logout)
249
+ */
250
+ async clear() {
251
+ try {
252
+ await fs_1.promises.unlink(this.credsFile);
253
+ await fs_1.promises.unlink(this.keysFile);
254
+ }
255
+ catch (err) {
256
+ if (err.code !== 'ENOENT') {
257
+ this.logger.error(`Failed to clear session: ${err.message}`);
258
+ }
259
+ }
260
+ this.creds = createDefaultCreds();
261
+ this.keys = {
262
+ preKeys: {},
263
+ sessions: {},
264
+ identityKeys: {},
265
+ senderKeys: {},
266
+ appStateKeys: {},
267
+ appStateSyncKeys: {}
268
+ };
269
+ }
270
+ // ============== Key Management ==============
271
+ /**
272
+ * Set pre-key dengan ID tertentu
273
+ */
274
+ setPreKey(id, keyPair) {
275
+ this.keys.preKeys[id] = keyPair;
276
+ if (id >= this.creds.nextPreKeyId) {
277
+ this.creds.nextPreKeyId = id + 1;
278
+ }
279
+ this.markKeysDirty();
280
+ }
281
+ /**
282
+ * Get pre-key by ID
283
+ */
284
+ getPreKey(id) {
285
+ return this.keys.preKeys[id];
286
+ }
287
+ /**
288
+ * Generate pre-key
289
+ */
290
+ generatePreKey(id) {
291
+ const kp = (0, crypto_js_1.generateCurveKeyPair)();
292
+ this.setPreKey(id, kp);
293
+ return kp;
294
+ }
295
+ /**
296
+ * Set identity key untuk user
297
+ */
298
+ setIdentityKey(user, key) {
299
+ this.keys.identityKeys[user] = { private: new Uint8Array(0), public: key };
300
+ this.markKeysDirty();
301
+ }
302
+ /**
303
+ * Get identity key untuk user
304
+ */
305
+ getIdentityKey(user) {
306
+ return this.keys.identityKeys[user]?.public;
307
+ }
308
+ /**
309
+ * Set app state sync key
310
+ */
311
+ setAppStateSyncKey(id, key) {
312
+ this.keys.appStateSyncKeys[id] = key;
313
+ this.markKeysDirty();
314
+ }
315
+ /**
316
+ * Get app state sync key
317
+ */
318
+ getAppStateSyncKey(id) {
319
+ return this.keys.appStateSyncKeys[id];
320
+ }
321
+ }
322
+ exports.FileAuthState = FileAuthState;
323
+ /**
324
+ * Helper untuk init file-based auth state
325
+ */
326
+ async function useFileAuthState(folder, prefix, logger) {
327
+ const state = new FileAuthState({ folder, prefix, logger });
328
+ return state;
329
+ }
330
+ //# sourceMappingURL=auth-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-state.js","sourceRoot":"","sources":["../../src/auth/auth-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Waliwa - Pairing code implementation (Mobile API style)
3
+ *
4
+ * Alternatif login tanpa scan QR - user input 8-character pairing code
5
+ * di WhatsApp mobile app. Mengikuti companion device registration flow.
6
+ *
7
+ * Format pairing code: "AB12-CD34" (8 alphanumeric, dash di tengah)
8
+ */
9
+ import type { AuthenticationCreds, PairingCodeResult, WALogger } from '../types/index.js';
10
+ /**
11
+ * Generate pairing code dari phone number + secret key
12
+ *
13
+ * Pairing code adalah 8 character alphanumeric yang derived dari:
14
+ * 1. Phone number user (target)
15
+ * 2. Server-side secret (sebagai HMAC key)
16
+ * 3. Random challenge untuk anti-replay
17
+ *
18
+ * User input code di WA mobile app, server verify dan pair device.
19
+ */
20
+ export declare function generatePairingCode(phoneNumber: string, creds: AuthenticationCreds, logger?: WALogger): PairingCodeResult;
21
+ /**
22
+ * Validate pairing code format
23
+ */
24
+ export declare function isValidPairingCodeFormat(code: string): boolean;
25
+ /**
26
+ * Normalize user input pairing code
27
+ * "ab12cd34" -> "AB12-CD34"
28
+ * "AB12 CD34" -> "AB12-CD34"
29
+ */
30
+ export declare function normalizePairingCode(input: string): string;
31
+ /**
32
+ * Build pairing request binary node untuk kirim ke server
33
+ *
34
+ * <iq type="get" to="s.whatsapp.net">
35
+ * <pair code="AB12-CD34" phone="6281234567890" />
36
+ * </iq>
37
+ */
38
+ export declare function buildPairingRequestNode(code: string, phoneNumber: string, publicKey: Uint8Array): any;
39
+ /**
40
+ * Process pairing result dari server
41
+ * Jika success, extract identity keys dan update creds
42
+ */
43
+ export interface PairingResult {
44
+ success: boolean;
45
+ /** JID dari paired account (e.g. "6281234567890@s.whatsapp.net") */
46
+ jid?: string;
47
+ /** Platform dari device yang paired */
48
+ platform?: string;
49
+ /** Business name jika business account */
50
+ businessName?: string;
51
+ /** Server-side identity key */
52
+ identityKey?: Uint8Array;
53
+ /** Error message jika gagal */
54
+ error?: string;
55
+ }
56
+ /**
57
+ * Parse pairing result dari binary node response
58
+ */
59
+ export declare function parsePairingResult(node: any): PairingResult;
60
+ /**
61
+ * Normalize phone number - hapus karakter non-digit
62
+ */
63
+ export declare function normalizePhoneNumber(phone: string): string;
64
+ /**
65
+ * Check apakah phone number valid (Indonesia: 10-15 digit)
66
+ */
67
+ export declare function isValidPhoneNumber(phone: string): boolean;
68
+ export declare class PairingCodeExpiry {
69
+ private expiresAt;
70
+ private onExpiry;
71
+ private timer;
72
+ constructor(expiresAt: number, onExpiry: () => void);
73
+ start(): void;
74
+ cancel(): void;
75
+ getRemainingMs(): number;
76
+ isExpired(): boolean;
77
+ }
78
+ //# sourceMappingURL=pairing-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing-code.d.ts","sourceRoot":"","sources":["../../src/auth/pairing-code.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EAET,MAAM,mBAAmB,CAAC;AAM3B;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,CAAC,EAAE,QAAQ,GAChB,iBAAiB,CA6CnB;AAID;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAID;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,UAAU,GACpB,GAAG,CAoBL;AAID;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,aAAa,CA4B3D;AAID;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGzD;AAID,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,KAAK,CAA+B;gBAEhC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI;IAKnD,KAAK,IAAI,IAAI;IAWb,MAAM,IAAI,IAAI;IAOd,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,OAAO;CAGrB"}