@moxxy/plugin-channel-whatsapp 0.28.1 → 0.30.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.
@@ -1 +1 @@
1
- {"version":3,"file":"baileys-socket.d.ts","sourceRoot":"","sources":["../src/baileys-socket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAMV,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,qBAyC/B,CAAC"}
1
+ {"version":3,"file":"baileys-socket.d.ts","sourceRoot":"","sources":["../src/baileys-socket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAMV,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,qBA2C/B,CAAC"}
@@ -13,12 +13,14 @@ export const openBaileysSocket = async ({ storage, logger }) => {
13
13
  throw new Error('@whiskeysockets/baileys: could not resolve makeWASocket export');
14
14
  }
15
15
  const proto = baileys.proto ?? baileys.default?.proto;
16
+ const protoMessage = proto?.Message;
17
+ const appStateSyncKeyData = protoMessage?.AppStateSyncKeyData;
16
18
  const bridge = {
17
19
  initAuthCreds: baileys.initAuthCreds,
18
20
  BufferJSON: baileys.BufferJSON,
19
- ...(proto?.Message?.AppStateSyncKeyData
21
+ ...(appStateSyncKeyData
20
22
  ? {
21
- reviveAppStateSyncKey: (value) => proto.Message.AppStateSyncKeyData.fromObject(value),
23
+ reviveAppStateSyncKey: (value) => appStateSyncKeyData.fromObject(value),
22
24
  }
23
25
  : {}),
24
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"baileys-socket.js","sourceRoot":"","sources":["../src/baileys-socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baileys-socket.js","sourceRoot":"","sources":["../src/baileys-socket.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { newTurnId } from '@moxxy/core';
2
- import type { ClientSession as Session } from '@moxxy/sdk';
2
+ import { type ClientSession as Session } from '@moxxy/sdk';
3
3
  import type { WaMessageKey, WhatsAppSocket } from '../socket.js';
4
4
  /**
5
5
  * Streaming strategy (justified against the Baileys API):
@@ -1 +1 @@
1
- {"version":3,"file":"turn-runner.d.ts","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAmC,GAC1C,MAAM,EAAE,CAcV;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwEf"}
1
+ {"version":3,"file":"turn-runner.d.ts","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAiB,KAAK,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAmC,GAC1C,MAAM,EAAE,CAcV;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
@@ -1,4 +1,5 @@
1
1
  import { FramePump, PlainTurnRenderer, driveTurn, subscribeTurn } from '@moxxy/channel-kit';
2
+ import { assertDefined } from '@moxxy/sdk';
2
3
  /**
3
4
  * Streaming strategy (justified against the Baileys API):
4
5
  *
@@ -86,8 +87,10 @@ export async function runWhatsAppTurn(deps, opts) {
86
87
  send: async (t) => sendChunks(splitWhatsAppText(t)),
87
88
  edit: async (key, t, final) => {
88
89
  const chunks = splitWhatsAppText(t);
90
+ const head = chunks[0];
91
+ assertDefined(head, 'whatsapp: splitWhatsAppText always yields at least one chunk');
89
92
  try {
90
- await socket.editText(jid, key, chunks[0]);
93
+ await socket.editText(jid, key, head);
91
94
  }
92
95
  catch (err) {
93
96
  logger?.warn?.('whatsapp edit failed', { err: String(err), final });
@@ -1 +1 @@
1
- {"version":3,"file":"turn-runner.js","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-runner.js","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"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"}
package/dist/keys.js CHANGED
@@ -35,7 +35,7 @@ export function normalizeJid(raw) {
35
35
  if (!/^[a-z0-9.-]+$/.test(server))
36
36
  return null;
37
37
  // Strip the device (`:NN`) and legacy agent (`_N`) suffixes off the user part.
38
- const user = trimmed.slice(0, at).split(':')[0].split('_')[0];
38
+ const user = (trimmed.slice(0, at).split(':')[0] ?? '').split('_')[0] ?? '';
39
39
  if (user.length === 0)
40
40
  return null;
41
41
  return `${user}@${server}`;
package/dist/keys.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAChE,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,iFAAiF;AACjF,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AACjE,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAC7D,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,GAA8B;IACzD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAA8B;IAC7D,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAc,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,MAAM,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,GAAG;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAA8B;IAC3D,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,yEAAyE;IACzE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChE,yDAAyD;IACzD,UAAU,IAAI,OAAO,CAAC;IACtB,yEAAyE;IACzE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAMD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAY5E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAapE;AAED,wBAAgB,kCAAkC,IAAI,4BAA4B,CAgDjF"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,yEAAyE;IACzE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChE,yDAAyD;IACzD,UAAU,IAAI,OAAO,CAAC;IACtB,yEAAyE;IACzE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAMD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAY5E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAapE;AAED,wBAAgB,kCAAkC,IAAI,4BAA4B,CAiDjF"}
@@ -1,4 +1,4 @@
1
- import { createDeferredPermissionResolver, } from '@moxxy/sdk';
1
+ import { assertDefined, createDeferredPermissionResolver, } from '@moxxy/sdk';
2
2
  export function parsePermissionReply(text) {
3
3
  const v = text.trim().toLowerCase();
4
4
  if (v === '1' || v === 'yes' || v === 'y' || v === 'allow') {
@@ -62,6 +62,7 @@ export function createWhatsAppPermissionController() {
62
62
  if (!decision)
63
63
  return false;
64
64
  const prompt = pending.shift();
65
+ assertDefined(prompt, 'pending is non-empty past the length guard above');
65
66
  prompt.resolve(decision);
66
67
  return true;
67
68
  },
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moxxy/plugin-channel-whatsapp",
3
- "version": "0.28.1",
3
+ "version": "0.30.0",
4
4
  "description": "WhatsApp channel for moxxy via Baileys (UNOFFICIAL WhatsApp Web protocol — violates WhatsApp's Terms of Service; the linked number can be banned, use a secondary number). QR device-link pairing, JID allow-list, voice-note transcription, dedicated isolated runner.",
5
5
  "keywords": [
6
6
  "moxxy",
@@ -75,19 +75,19 @@
75
75
  "@whiskeysockets/baileys": "^6.7.21",
76
76
  "qrcode": "^1.5.4",
77
77
  "zod": "^3.24.0",
78
- "@moxxy/channel-kit": "0.28.1",
79
- "@moxxy/sdk": "0.28.1",
80
- "@moxxy/core": "0.28.1",
81
- "@moxxy/plugin-vault": "0.28.1"
78
+ "@moxxy/channel-kit": "0.30.0",
79
+ "@moxxy/sdk": "0.30.0",
80
+ "@moxxy/plugin-vault": "0.30.0",
81
+ "@moxxy/core": "0.30.0"
82
82
  },
83
83
  "devDependencies": {
84
84
  "@types/node": "^22.10.0",
85
85
  "@types/qrcode": "^1.5.5",
86
86
  "typescript": "^5.7.3",
87
87
  "vitest": "^2.1.8",
88
- "@moxxy/mode-default": "0.28.1",
89
- "@moxxy/testing": "0.0.47",
88
+ "@moxxy/mode-default": "0.30.0",
90
89
  "@moxxy/tsconfig": "0.0.0",
90
+ "@moxxy/testing": "0.0.49",
91
91
  "@moxxy/vitest-preset": "0.0.0"
92
92
  },
93
93
  "scripts": {
@@ -23,13 +23,15 @@ export const openBaileysSocket: WhatsAppSocketFactory = async ({ storage, logger
23
23
  throw new Error('@whiskeysockets/baileys: could not resolve makeWASocket export');
24
24
  }
25
25
  const proto = baileys.proto ?? baileys.default?.proto;
26
+ const protoMessage = proto?.Message;
27
+ const appStateSyncKeyData = protoMessage?.AppStateSyncKeyData;
26
28
  const bridge: BaileysAuthBridge = {
27
29
  initAuthCreds: baileys.initAuthCreds,
28
30
  BufferJSON: baileys.BufferJSON,
29
- ...(proto?.Message?.AppStateSyncKeyData
31
+ ...(appStateSyncKeyData
30
32
  ? {
31
33
  reviveAppStateSyncKey: (value: unknown) =>
32
- proto.Message!.AppStateSyncKeyData!.fromObject(value as Record<string, unknown>),
34
+ appStateSyncKeyData.fromObject(value as Record<string, unknown>),
33
35
  }
34
36
  : {}),
35
37
  };
@@ -1,6 +1,6 @@
1
1
  import type { newTurnId } from '@moxxy/core';
2
2
  import { FramePump, PlainTurnRenderer, driveTurn, subscribeTurn } from '@moxxy/channel-kit';
3
- import type { ClientSession as Session } from '@moxxy/sdk';
3
+ import { assertDefined, type ClientSession as Session } from '@moxxy/sdk';
4
4
  import type { WaMessageKey, WhatsAppSocket } from '../socket.js';
5
5
 
6
6
  /**
@@ -116,8 +116,10 @@ export async function runWhatsAppTurn(
116
116
  send: async (t) => sendChunks(splitWhatsAppText(t)),
117
117
  edit: async (key, t, final) => {
118
118
  const chunks = splitWhatsAppText(t);
119
+ const head = chunks[0];
120
+ assertDefined(head, 'whatsapp: splitWhatsAppText always yields at least one chunk');
119
121
  try {
120
- await socket.editText(jid, key, chunks[0]!);
122
+ await socket.editText(jid, key, head);
121
123
  } catch (err) {
122
124
  logger?.warn?.('whatsapp edit failed', { err: String(err), final });
123
125
  if (final) {
@@ -4,7 +4,7 @@ import * as path from 'node:path';
4
4
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
5
  import { Session, autoAllowResolver, silentLogger } from '@moxxy/core';
6
6
  import { FakeProvider, streamingTextReply } from '@moxxy/testing';
7
- import { definePlugin, defineProvider, defineTranscriber } from '@moxxy/sdk';
7
+ import { assertDefined, definePlugin, defineProvider, defineTranscriber } from '@moxxy/sdk';
8
8
  import { defaultModePlugin } from '@moxxy/mode-default';
9
9
  import { VaultStore, createStaticKeySource, deriveKey, generateSalt } from '@moxxy/plugin-vault';
10
10
  import { WhatsAppChannel } from './channel.js';
@@ -218,7 +218,8 @@ describe('WhatsAppChannel.start', () => {
218
218
  const turnsBefore = provider.received.length;
219
219
 
220
220
  // Feed the channel's own last send back as an inbound (fromMe echo).
221
- const lastOut = fake.sent[fake.sent.length - 1]!;
221
+ const lastOut = fake.sent[fake.sent.length - 1];
222
+ assertDefined(lastOut, 'the channel sent at least one message');
222
223
  // Reconstruct the outbound key id: the fake numbers them out-N; grab it via
223
224
  // a fresh send to learn the id shape isn't needed — echo by a known own id.
224
225
  fake.inbound({ key: { remoteJid: OWNER, fromMe: true, id: 'out-1' }, message: { conversation: lastOut.text } });
package/src/keys.ts CHANGED
@@ -33,7 +33,7 @@ export function normalizeJid(raw: string | null | undefined): string | null {
33
33
  const server = trimmed.slice(at + 1).toLowerCase();
34
34
  if (!/^[a-z0-9.-]+$/.test(server)) return null;
35
35
  // Strip the device (`:NN`) and legacy agent (`_N`) suffixes off the user part.
36
- const user = trimmed.slice(0, at).split(':')[0]!.split('_')[0]!;
36
+ const user = (trimmed.slice(0, at).split(':')[0] ?? '').split('_')[0] ?? '';
37
37
  if (user.length === 0) return null;
38
38
  return `${user}@${server}`;
39
39
  }
package/src/permission.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import {
2
+ assertDefined,
2
3
  createDeferredPermissionResolver,
3
4
  type DeferredPermissionResolver,
4
5
  type PendingToolCall,
@@ -98,7 +99,8 @@ export function createWhatsAppPermissionController(): WhatsAppPermissionControll
98
99
  if (pending.length === 0) return false;
99
100
  const decision = parsePermissionReply(text);
100
101
  if (!decision) return false;
101
- const prompt = pending.shift()!;
102
+ const prompt = pending.shift();
103
+ assertDefined(prompt, 'pending is non-empty past the length guard above');
102
104
  prompt.resolve(decision);
103
105
  return true;
104
106
  },
@@ -30,7 +30,7 @@ beforeEach(async () => {
30
30
  filePath: path.join(tmp, 'vault.json'),
31
31
  keySource: createStaticKeySource(deriveKey('test', generateSalt())),
32
32
  });
33
- def = buildWhatsAppPlugin({ vault }).channels![0]!;
33
+ def = (buildWhatsAppPlugin({ vault }).channels ?? [])[0] as ChannelDef;
34
34
  writeOut = [];
35
35
  writeErr = [];
36
36
  origOut = process.stdout.write.bind(process.stdout);
@@ -74,7 +74,7 @@ describe('whatsapp channel def', () => {
74
74
  });
75
75
 
76
76
  it('exposes setup, pair, status, unpair subcommands', () => {
77
- expect(Object.keys(def.subcommands!)).toEqual(
77
+ expect(Object.keys(def.subcommands ?? {})).toEqual(
78
78
  expect.arrayContaining(['setup', 'pair', 'status', 'unpair']),
79
79
  );
80
80
  });
@@ -87,22 +87,22 @@ describe('whatsapp channel def', () => {
87
87
 
88
88
  describe('isAvailable (consent gate + link state)', () => {
89
89
  it('is unavailable without consent, naming the ToS risk', async () => {
90
- const avail = await def.isAvailable!({ cwd: tmp, vault });
91
- expect(avail.ok).toBe(false);
92
- expect(avail.reason).toMatch(/ToS|acknowledg|ban/i);
90
+ const avail = await def.isAvailable?.({ cwd: tmp, vault });
91
+ expect(avail?.ok).toBe(false);
92
+ expect(avail?.reason).toMatch(/ToS|acknowledg|ban/i);
93
93
  });
94
94
 
95
95
  it('is unavailable-but-needs-pairing once consent is given', async () => {
96
96
  process.env[WHATSAPP_CONSENT_ENV] = 'yes';
97
- const avail = await def.isAvailable!({ cwd: tmp, vault });
98
- expect(avail.ok).toBe(false);
99
- expect(avail.reason).toMatch(/pair/i);
97
+ const avail = await def.isAvailable?.({ cwd: tmp, vault });
98
+ expect(avail?.ok).toBe(false);
99
+ expect(avail?.reason).toMatch(/pair/i);
100
100
  });
101
101
  });
102
102
 
103
103
  describe('status subcommand', () => {
104
104
  it('reports needs-consent when nothing configured', async () => {
105
- const code = await def.subcommands!.status!.run(ctx());
105
+ const code = await def.subcommands?.status?.run(ctx());
106
106
  expect(code).toBe(0);
107
107
  const parsed = JSON.parse(writeOut.join(''));
108
108
  expect(parsed.state).toBe('needs-consent');
@@ -112,7 +112,7 @@ describe('status subcommand', () => {
112
112
 
113
113
  it('reports needs-pairing after consent but before linking', async () => {
114
114
  await vault.set(WHATSAPP_CONSENT_KEY, 'acknowledged@2026-01-01T00:00:00.000Z');
115
- const code = await def.subcommands!.status!.run(ctx());
115
+ const code = await def.subcommands?.status?.run(ctx());
116
116
  expect(code).toBe(0);
117
117
  const parsed = JSON.parse(writeOut.join(''));
118
118
  expect(parsed.state).toBe('needs-pairing');
@@ -123,7 +123,7 @@ describe('status subcommand', () => {
123
123
  await vault.set(WHATSAPP_CONSENT_KEY, 'yes');
124
124
  await vault.set(WHATSAPP_OWNER_JID_KEY, '15550000000@s.whatsapp.net');
125
125
  await vault.set(WHATSAPP_ALLOWED_JIDS_KEY, JSON.stringify(['15551111111@s.whatsapp.net']));
126
- const code = await def.subcommands!.status!.run(ctx());
126
+ const code = await def.subcommands?.status?.run(ctx());
127
127
  expect(code).toBe(0);
128
128
  const parsed = JSON.parse(writeOut.join(''));
129
129
  expect(parsed.ownerJid).toBe('15550000000@s.whatsapp.net');
@@ -137,7 +137,7 @@ describe('status subcommand', () => {
137
137
  startChannel: async () => 0,
138
138
  session: { setPermissionResolver: () => {} },
139
139
  } as never;
140
- const code = await def.subcommands!.status!.run(badCtx);
140
+ const code = await def.subcommands?.status?.run(badCtx);
141
141
  expect(code).toBe(1);
142
142
  expect(writeErr.join('')).toContain('vault unavailable');
143
143
  });
@@ -145,7 +145,7 @@ describe('status subcommand', () => {
145
145
 
146
146
  describe('unpair subcommand', () => {
147
147
  it('is a no-op when nothing is linked', async () => {
148
- const code = await def.subcommands!.unpair!.run(ctx());
148
+ const code = await def.subcommands?.unpair?.run(ctx());
149
149
  expect(code).toBe(0);
150
150
  expect(writeOut.join('')).toContain('no linked account');
151
151
  });
@@ -157,7 +157,7 @@ describe('pair subcommand', () => {
157
157
  Object.defineProperty(process.stdin, 'isTTY', { value: false, configurable: true });
158
158
  try {
159
159
  const startChannel = vi.fn(async () => 0);
160
- const code = await def.subcommands!.pair!.run(ctx({ startChannel }));
160
+ const code = await def.subcommands?.pair?.run(ctx({ startChannel }));
161
161
  expect(code).toBe(1);
162
162
  expect(startChannel).not.toHaveBeenCalled();
163
163
  expect(writeErr.join('')).toMatch(/TTY/);
@@ -173,7 +173,7 @@ describe('setup subcommand (headless)', () => {
173
173
  Object.defineProperty(process.stdin, 'isTTY', { value: false, configurable: true });
174
174
  try {
175
175
  const startChannel = vi.fn(async () => 0);
176
- const code = await def.subcommands!.setup!.run(ctx({ startChannel }));
176
+ const code = await def.subcommands?.setup?.run(ctx({ startChannel }));
177
177
  expect(code).toBe(1);
178
178
  expect(startChannel).not.toHaveBeenCalled();
179
179
  expect(writeErr.join('')).toMatch(/acknowledg|ToS|ban/i);
@@ -188,7 +188,7 @@ describe('setup subcommand (headless)', () => {
188
188
  Object.defineProperty(process.stdin, 'isTTY', { value: false, configurable: true });
189
189
  try {
190
190
  const startChannel = vi.fn(async () => 0);
191
- const code = await def.subcommands!.setup!.run(ctx({ startChannel }));
191
+ const code = await def.subcommands?.setup?.run(ctx({ startChannel }));
192
192
  expect(code).toBe(0);
193
193
  expect(startChannel).toHaveBeenCalledTimes(1);
194
194
  } finally {