@diegoaltoworks/chatter 0.37.0 → 0.38.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.
- package/dist/bin/wa-pair.js +45 -8
- package/dist/channels/whatsapp/pairing.d.ts.map +1 -1
- package/dist/channels/whatsapp/qr.d.ts +25 -0
- package/dist/channels/whatsapp/qr.d.ts.map +1 -0
- package/dist/channels/whatsapp/qr.test.d.ts +2 -0
- package/dist/channels/whatsapp/qr.test.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/bin/wa-pair.js
CHANGED
|
@@ -237,7 +237,11 @@ function runPairing(deps) {
|
|
|
237
237
|
}
|
|
238
238
|
attempts = action.attempt;
|
|
239
239
|
generation += 1;
|
|
240
|
-
|
|
240
|
+
try {
|
|
241
|
+
sock.end?.();
|
|
242
|
+
} catch (error) {
|
|
243
|
+
status(`Failed to close the previous socket: ${describeError(error)}`);
|
|
244
|
+
}
|
|
241
245
|
status(
|
|
242
246
|
statusCode === RESTART_REQUIRED_STATUS ? `Registered \u2014 WhatsApp asked for a restart (515). Reconnecting to finish the link (${action.attempt}/${maxAttempts})...` : `Connection closed (${statusCode ?? "?"}) \u2014 reconnecting with the stored session (${action.attempt}/${maxAttempts})...`
|
|
243
247
|
);
|
|
@@ -257,7 +261,11 @@ function runPairing(deps) {
|
|
|
257
261
|
}
|
|
258
262
|
sock.ev.on("connection.update", (update) => {
|
|
259
263
|
if (mine !== generation || settled) return;
|
|
260
|
-
|
|
264
|
+
handleUpdate(update, sock).catch((error) => {
|
|
265
|
+
const message = `connection.update handler error: ${describeError(error)}`;
|
|
266
|
+
status(message);
|
|
267
|
+
settle({ ok: false, reason: "error", message });
|
|
268
|
+
});
|
|
261
269
|
});
|
|
262
270
|
if (deps.phoneNumber && !codeRequested) {
|
|
263
271
|
schedule(() => {
|
|
@@ -270,6 +278,16 @@ function runPairing(deps) {
|
|
|
270
278
|
});
|
|
271
279
|
}
|
|
272
280
|
|
|
281
|
+
// src/channels/whatsapp/qr.ts
|
|
282
|
+
function resolveQrGenerate(mod) {
|
|
283
|
+
if (!mod) return void 0;
|
|
284
|
+
if (mod.default && typeof mod.default.generate === "function") {
|
|
285
|
+
return mod.default.generate.bind(mod.default);
|
|
286
|
+
}
|
|
287
|
+
if (typeof mod.generate === "function") return mod.generate.bind(mod);
|
|
288
|
+
return void 0;
|
|
289
|
+
}
|
|
290
|
+
|
|
273
291
|
// bin/wa-pair.ts
|
|
274
292
|
var args = process.argv.slice(2);
|
|
275
293
|
function flagValue(name) {
|
|
@@ -319,16 +337,35 @@ var db = (0, import_client.createClient)({
|
|
|
319
337
|
url: process.env.TURSO_URL,
|
|
320
338
|
authToken: process.env.TURSO_AUTH_TOKEN || ""
|
|
321
339
|
});
|
|
340
|
+
var printedQrFallbackHelp = false;
|
|
341
|
+
function printQrFallback(qr) {
|
|
342
|
+
if (!printedQrFallbackHelp) {
|
|
343
|
+
printedQrFallbackHelp = true;
|
|
344
|
+
console.log(
|
|
345
|
+
"\nCouldn't render a QR image here. Raw code below (rarely scannable as text\ndirectly, but confirms pairing is alive) \u2014 re-run with --code <phoneNumber>\nfor pairing-code mode instead:\n"
|
|
346
|
+
);
|
|
347
|
+
}
|
|
348
|
+
console.log(qr);
|
|
349
|
+
}
|
|
322
350
|
async function renderQr(qr) {
|
|
323
351
|
const qrcodeTerminal = await import("qrcode-terminal").catch(() => void 0);
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
352
|
+
const generate = resolveQrGenerate(qrcodeTerminal);
|
|
353
|
+
if (!generate) {
|
|
354
|
+
if (!printedQrFallbackHelp) {
|
|
355
|
+
console.error(
|
|
356
|
+
"\u274C QR mode requires the optional peer dependency 'qrcode-terminal' (not installed, or its exports weren't recognized). Install it with `bun add qrcode-terminal`, or re-run with --code <phoneNumber> for pairing-code mode instead."
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
printQrFallback(qr);
|
|
360
|
+
return;
|
|
329
361
|
}
|
|
330
362
|
console.log("\nScan this QR code: WhatsApp -> Settings -> Linked Devices -> Link a Device.\n");
|
|
331
|
-
|
|
363
|
+
try {
|
|
364
|
+
generate(qr, { small: true });
|
|
365
|
+
} catch (error) {
|
|
366
|
+
console.error(`\u274C QR render failed: ${error.message}`);
|
|
367
|
+
printQrFallback(qr);
|
|
368
|
+
}
|
|
332
369
|
}
|
|
333
370
|
async function start() {
|
|
334
371
|
const baileys = await loadBaileys().catch((error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../../../src/channels/whatsapp/pairing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../../../src/channels/whatsapp/pairing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `qrcode-terminal` is a plain CJS module (`module.exports = { generate, ... }`).
|
|
3
|
+
* Loading it via dynamic `import()` gets interop-wrapped differently depending
|
|
4
|
+
* on the runtime and how the caller itself is bundled: some expose the
|
|
5
|
+
* function only under `.default`, others expose it as a named export too (or
|
|
6
|
+
* only). Resolve every shape here so `wa-pair` never depends on one bundler's
|
|
7
|
+
* interop guess.
|
|
8
|
+
*/
|
|
9
|
+
export type QrGenerateFn = (qr: string, options?: {
|
|
10
|
+
small?: boolean;
|
|
11
|
+
}, callback?: (output: string) => void) => void;
|
|
12
|
+
export interface QrTerminalModule {
|
|
13
|
+
default?: {
|
|
14
|
+
generate?: QrGenerateFn;
|
|
15
|
+
};
|
|
16
|
+
generate?: QrGenerateFn;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* `generate` reads `this.error` internally (the module's configured error
|
|
20
|
+
* correction level), so it must stay bound to the object it came from —
|
|
21
|
+
* returning it detached, as a bare function reference, throws the moment it
|
|
22
|
+
* runs (`this.error` is `undefined` instead of the module's setting).
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveQrGenerate(mod: QrTerminalModule | undefined): QrGenerateFn | undefined;
|
|
25
|
+
//# sourceMappingURL=qr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../../../src/channels/whatsapp/qr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,CACzB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,KAChC,IAAI,CAAC;AAEV,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAO7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr.test.d.ts","sourceRoot":"","sources":["../../../src/channels/whatsapp/qr.test.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED