@firela/billclaw-cli 0.4.0 → 0.5.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.
@@ -10,6 +10,7 @@ export { statusCommand } from "./status.js";
10
10
  export { configCommand } from "./config.js";
11
11
  export { exportCommand } from "./export.js";
12
12
  export { webhookTestCommand } from "./webhook.js";
13
+ export { webhookReceiverConfigCommand, webhookReceiverStatusCommand, webhookReceiverEnableCommand, webhookReceiverDisableCommand, } from "./webhook-receiver.js";
13
14
  /**
14
15
  * All commands to register
15
16
  */
@@ -20,6 +21,10 @@ export declare const allCommands: ({
20
21
  config?: undefined;
21
22
  export?: undefined;
22
23
  webhook?: undefined;
24
+ "webhook-receiver-config"?: undefined;
25
+ "webhook-receiver-status"?: undefined;
26
+ "webhook-receiver-enable"?: undefined;
27
+ "webhook-receiver-disable"?: undefined;
23
28
  } | {
24
29
  sync: () => Promise<import("./registry.js").CliCommand>;
25
30
  setup?: undefined;
@@ -27,6 +32,10 @@ export declare const allCommands: ({
27
32
  config?: undefined;
28
33
  export?: undefined;
29
34
  webhook?: undefined;
35
+ "webhook-receiver-config"?: undefined;
36
+ "webhook-receiver-status"?: undefined;
37
+ "webhook-receiver-enable"?: undefined;
38
+ "webhook-receiver-disable"?: undefined;
30
39
  } | {
31
40
  status: () => Promise<import("./registry.js").CliCommand>;
32
41
  setup?: undefined;
@@ -34,6 +43,10 @@ export declare const allCommands: ({
34
43
  config?: undefined;
35
44
  export?: undefined;
36
45
  webhook?: undefined;
46
+ "webhook-receiver-config"?: undefined;
47
+ "webhook-receiver-status"?: undefined;
48
+ "webhook-receiver-enable"?: undefined;
49
+ "webhook-receiver-disable"?: undefined;
37
50
  } | {
38
51
  config: () => Promise<import("./registry.js").CliCommand>;
39
52
  setup?: undefined;
@@ -41,6 +54,10 @@ export declare const allCommands: ({
41
54
  status?: undefined;
42
55
  export?: undefined;
43
56
  webhook?: undefined;
57
+ "webhook-receiver-config"?: undefined;
58
+ "webhook-receiver-status"?: undefined;
59
+ "webhook-receiver-enable"?: undefined;
60
+ "webhook-receiver-disable"?: undefined;
44
61
  } | {
45
62
  export: () => Promise<import("./registry.js").CliCommand>;
46
63
  setup?: undefined;
@@ -48,6 +65,10 @@ export declare const allCommands: ({
48
65
  status?: undefined;
49
66
  config?: undefined;
50
67
  webhook?: undefined;
68
+ "webhook-receiver-config"?: undefined;
69
+ "webhook-receiver-status"?: undefined;
70
+ "webhook-receiver-enable"?: undefined;
71
+ "webhook-receiver-disable"?: undefined;
51
72
  } | {
52
73
  webhook: () => Promise<import("./registry.js").CliCommand>;
53
74
  setup?: undefined;
@@ -55,5 +76,53 @@ export declare const allCommands: ({
55
76
  status?: undefined;
56
77
  config?: undefined;
57
78
  export?: undefined;
79
+ "webhook-receiver-config"?: undefined;
80
+ "webhook-receiver-status"?: undefined;
81
+ "webhook-receiver-enable"?: undefined;
82
+ "webhook-receiver-disable"?: undefined;
83
+ } | {
84
+ "webhook-receiver-config": () => Promise<import("./registry.js").CliCommand>;
85
+ setup?: undefined;
86
+ sync?: undefined;
87
+ status?: undefined;
88
+ config?: undefined;
89
+ export?: undefined;
90
+ webhook?: undefined;
91
+ "webhook-receiver-status"?: undefined;
92
+ "webhook-receiver-enable"?: undefined;
93
+ "webhook-receiver-disable"?: undefined;
94
+ } | {
95
+ "webhook-receiver-status": () => Promise<import("./registry.js").CliCommand>;
96
+ setup?: undefined;
97
+ sync?: undefined;
98
+ status?: undefined;
99
+ config?: undefined;
100
+ export?: undefined;
101
+ webhook?: undefined;
102
+ "webhook-receiver-config"?: undefined;
103
+ "webhook-receiver-enable"?: undefined;
104
+ "webhook-receiver-disable"?: undefined;
105
+ } | {
106
+ "webhook-receiver-enable": () => Promise<import("./registry.js").CliCommand>;
107
+ setup?: undefined;
108
+ sync?: undefined;
109
+ status?: undefined;
110
+ config?: undefined;
111
+ export?: undefined;
112
+ webhook?: undefined;
113
+ "webhook-receiver-config"?: undefined;
114
+ "webhook-receiver-status"?: undefined;
115
+ "webhook-receiver-disable"?: undefined;
116
+ } | {
117
+ "webhook-receiver-disable": () => Promise<import("./registry.js").CliCommand>;
118
+ setup?: undefined;
119
+ sync?: undefined;
120
+ status?: undefined;
121
+ config?: undefined;
122
+ export?: undefined;
123
+ webhook?: undefined;
124
+ "webhook-receiver-config"?: undefined;
125
+ "webhook-receiver-status"?: undefined;
126
+ "webhook-receiver-enable"?: undefined;
58
127
  })[];
59
128
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOvB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAA;AAC9B;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWvB,CAAA"}
@@ -10,6 +10,7 @@ export { statusCommand } from "./status.js";
10
10
  export { configCommand } from "./config.js";
11
11
  export { exportCommand } from "./export.js";
12
12
  export { webhookTestCommand } from "./webhook.js";
13
+ export { webhookReceiverConfigCommand, webhookReceiverStatusCommand, webhookReceiverEnableCommand, webhookReceiverDisableCommand, } from "./webhook-receiver.js";
13
14
  /**
14
15
  * All commands to register
15
16
  */
@@ -20,5 +21,9 @@ export const allCommands = [
20
21
  { config: () => import("./config.js").then((m) => m.configCommand) },
21
22
  { export: () => import("./export.js").then((m) => m.exportCommand) },
22
23
  { webhook: () => import("./webhook.js").then((m) => m.webhookTestCommand) },
24
+ { "webhook-receiver-config": () => import("./webhook-receiver.js").then((m) => m.webhookReceiverConfigCommand) },
25
+ { "webhook-receiver-status": () => import("./webhook-receiver.js").then((m) => m.webhookReceiverStatusCommand) },
26
+ { "webhook-receiver-enable": () => import("./webhook-receiver.js").then((m) => m.webhookReceiverEnableCommand) },
27
+ { "webhook-receiver-disable": () => import("./webhook-receiver.js").then((m) => m.webhookReceiverDisableCommand) },
23
28
  ];
24
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,GAIhB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;IAC9D,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;IACpE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;IACpE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;IACpE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE;CAC5E,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,GAIhB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAA;AAC9B;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;IAC9D,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;IACpE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;IACpE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;IACpE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE;IAC3E,EAAE,yBAAyB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE;IAChH,EAAE,yBAAyB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE;IAChH,EAAE,yBAAyB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE;IAChH,EAAE,0BAA0B,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE;CACnH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,eAAe,CAAA;AAqS3D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAK1B,CAAA"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,eAAe,CAAA;AA0e3D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAK1B,CAAA"}
@@ -6,6 +6,7 @@
6
6
  import inquirer from "inquirer";
7
7
  import { success, error } from "../utils/format.js";
8
8
  import { readAccountRegistry, writeAccountRegistry, getStorageDir, } from "@firela/billclaw-core";
9
+ import { parseWebhookError, logError, formatError, } from "@firela/billclaw-core/errors";
9
10
  import * as fs from "node:fs/promises";
10
11
  import * as path from "node:path";
11
12
  /**
@@ -26,6 +27,7 @@ async function runSetup(context) {
26
27
  name: "GoCardless (Bank accounts via open banking)",
27
28
  value: "gocardless",
28
29
  },
30
+ { name: "Webhook Receiver (Real-time notifications)", value: "webhook" },
29
31
  ],
30
32
  },
31
33
  ]);
@@ -40,11 +42,14 @@ async function runSetup(context) {
40
42
  case "gocardless":
41
43
  await setupGoCardless(context);
42
44
  break;
45
+ case "webhook":
46
+ await setupWebhook(context);
47
+ break;
43
48
  }
44
- success("Account added successfully!");
49
+ success("Configuration completed successfully!");
45
50
  }
46
51
  catch (err) {
47
- error("Failed to add account: " + err.message);
52
+ error("Failed to complete setup: " + err.message);
48
53
  throw err;
49
54
  }
50
55
  }
@@ -202,6 +207,163 @@ async function setupGoCardless(context) {
202
207
  }, null, 2));
203
208
  context.runtime.logger.info("GoCardless account configured:", accountId);
204
209
  }
210
+ /**
211
+ * Setup webhook receiver
212
+ */
213
+ async function setupWebhook(context) {
214
+ console.log("");
215
+ console.log("Webhook Receiver Configuration");
216
+ console.log("==============================");
217
+ console.log("");
218
+ console.log("The webhook receiver enables real-time transaction updates from");
219
+ console.log("external services (Plaid, GoCardless, Gmail).");
220
+ console.log("");
221
+ console.log("Available modes:");
222
+ console.log(" • Auto - Automatically detects the best mode");
223
+ console.log(" • Direct - Receives webhooks directly (requires public URL)");
224
+ console.log(" • Relay - Uses Firela Relay service (no public URL needed)");
225
+ console.log(" • Polling - Falls back to API polling");
226
+ console.log("");
227
+ const answers = await inquirer.prompt([
228
+ {
229
+ type: "confirm",
230
+ name: "enableWebhook",
231
+ message: "Enable webhook receiver for real-time updates?",
232
+ default: true,
233
+ },
234
+ {
235
+ type: "list",
236
+ name: "mode",
237
+ message: (answers) => answers.enableWebhook
238
+ ? "Select webhook receiver mode:"
239
+ : "Webhook receiver will be disabled. Press Enter to continue...",
240
+ choices: [
241
+ { name: "Auto (recommended) - Automatic mode selection", value: "auto" },
242
+ {
243
+ name: "Direct - For servers with public IP",
244
+ value: "direct",
245
+ },
246
+ {
247
+ name: "Relay - For home/office without public IP",
248
+ value: "relay",
249
+ },
250
+ {
251
+ name: "Polling - Fallback API polling mode",
252
+ value: "polling",
253
+ },
254
+ ],
255
+ default: "auto",
256
+ when: (answers) => answers.enableWebhook,
257
+ },
258
+ {
259
+ type: "input",
260
+ name: "publicUrl",
261
+ message: "Public URL for Direct mode (e.g., https://yourdomain.com):",
262
+ default: async () => {
263
+ try {
264
+ const config = await context.runtime.config.getConfig();
265
+ return config.connect?.publicUrl || "";
266
+ }
267
+ catch {
268
+ return "";
269
+ }
270
+ },
271
+ when: (answers) => answers.enableWebhook && answers.mode === "direct",
272
+ validate: (input) => {
273
+ if (!input)
274
+ return "Public URL is required for Direct mode";
275
+ try {
276
+ new URL(input);
277
+ return true;
278
+ }
279
+ catch {
280
+ return "Please enter a valid URL (e.g., https://yourdomain.com)";
281
+ }
282
+ },
283
+ },
284
+ ]);
285
+ if (!answers.enableWebhook) {
286
+ console.log("");
287
+ console.log("Webhook receiver will remain disabled.");
288
+ console.log("You can enable it later by running: bills setup");
289
+ return;
290
+ }
291
+ // Prepare configuration update
292
+ const configUpdate = {
293
+ connect: {
294
+ receiver: {
295
+ mode: answers.mode,
296
+ },
297
+ },
298
+ };
299
+ // Add public URL for direct mode
300
+ if (answers.mode === "direct" && answers.publicUrl) {
301
+ configUpdate.connect.publicUrl = answers.publicUrl;
302
+ }
303
+ // Configure mode-specific settings using unified helper
304
+ const { setupWebhookReceiver } = await import("@firela/billclaw-core/webhook");
305
+ const setupResult = await setupWebhookReceiver(answers.mode, context.runtime, {
306
+ publicUrl: answers.publicUrl,
307
+ oauthTimeout: 300000,
308
+ });
309
+ if (!setupResult.success) {
310
+ const userError = setupResult.userError ??
311
+ parseWebhookError(new Error(setupResult.error || "Setup failed"), { mode: answers.mode });
312
+ logError(context.runtime.logger, userError, {
313
+ command: "setup",
314
+ mode: answers.mode,
315
+ });
316
+ error(formatError(userError));
317
+ // Fallback to polling mode on error
318
+ console.log("");
319
+ console.log("Falling back to polling mode...");
320
+ configUpdate.connect.receiver.mode = "polling";
321
+ configUpdate.connect.receiver.polling = { enabled: true, interval: 300000 };
322
+ }
323
+ else {
324
+ // Merge the setup result into config update
325
+ Object.assign(configUpdate.connect.receiver, setupResult.config);
326
+ if (answers.mode === "relay") {
327
+ success("OAuth authorization completed successfully!");
328
+ }
329
+ }
330
+ // Save configuration
331
+ try {
332
+ const { updateConfig } = await import("@firela/billclaw-core");
333
+ await updateConfig(configUpdate);
334
+ console.log("");
335
+ success(`Webhook receiver configured in ${answers.mode} mode`);
336
+ console.log("");
337
+ console.log("Next steps:");
338
+ switch (answers.mode) {
339
+ case "direct":
340
+ console.log(" 1. Ensure Connect service is running");
341
+ console.log(` 2. Configure webhooks to: ${answers.publicUrl}/webhook/plaid`);
342
+ break;
343
+ case "relay":
344
+ console.log(" 1. Webhook receiver is active via Firela Relay");
345
+ console.log(" 2. Use 'bills webhook-receiver status' to verify connection");
346
+ break;
347
+ case "polling":
348
+ console.log(" 1. Webhooks will be fetched via API polling");
349
+ console.log(` 2. Polling interval: 5 minutes`);
350
+ break;
351
+ case "auto":
352
+ console.log(" 1. Webhook receiver will auto-detect optimal mode");
353
+ console.log(" 2. Use 'bills webhook-receiver status' to check current mode");
354
+ break;
355
+ }
356
+ context.runtime.logger.info("Webhook receiver configured");
357
+ }
358
+ catch (err) {
359
+ const userError = err instanceof Error && err.type === "UserError"
360
+ ? err
361
+ : parseWebhookError(err, { mode: answers.mode });
362
+ logError(context.runtime.logger, userError, { command: "setup", mode: answers.mode });
363
+ error(formatError(userError));
364
+ throw err;
365
+ }
366
+ }
205
367
  /**
206
368
  * Setup command definition
207
369
  */
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Webhook receiver commands
3
+ *
4
+ * Manage inbound webhook receiver configuration (Direct/Relay/Polling modes).
5
+ */
6
+ import type { CliCommand } from "./registry.js";
7
+ /**
8
+ * Webhook receiver config command
9
+ */
10
+ export declare const webhookReceiverConfigCommand: CliCommand;
11
+ /**
12
+ * Webhook receiver status command
13
+ */
14
+ export declare const webhookReceiverStatusCommand: CliCommand;
15
+ /**
16
+ * Webhook receiver enable command
17
+ */
18
+ export declare const webhookReceiverEnableCommand: CliCommand;
19
+ /**
20
+ * Webhook receiver disable command
21
+ */
22
+ export declare const webhookReceiverDisableCommand: CliCommand;
23
+ //# sourceMappingURL=webhook-receiver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-receiver.d.ts","sourceRoot":"","sources":["../../src/commands/webhook-receiver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,eAAe,CAAA;AAqO3D;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,UAK1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,UAK1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,UAY1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,UAK3C,CAAA"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Webhook receiver commands
3
+ *
4
+ * Manage inbound webhook receiver configuration (Direct/Relay/Polling modes).
5
+ */
6
+ import { success, error } from "../utils/format.js";
7
+ import { parseWebhookError, logError, formatError, } from "@firela/billclaw-core/errors";
8
+ /**
9
+ * Run webhook receiver config command
10
+ */
11
+ async function runConfig(context, args) {
12
+ const { runtime } = context;
13
+ const config = await runtime.config.getConfig();
14
+ const receiver = config.connect?.receiver;
15
+ if (!receiver) {
16
+ console.log("Webhook receiver is not configured.");
17
+ console.log("\nTo enable webhook receiver, run:");
18
+ console.log(" billclaw webhook-receiver-enable");
19
+ return;
20
+ }
21
+ console.log("Webhook Receiver Configuration:");
22
+ console.log(` Mode: ${receiver.mode}`);
23
+ console.log(` Direct: ${receiver.direct?.enabled ? "enabled" : "disabled"}`);
24
+ console.log(` Relay: ${receiver.relay?.enabled ? "enabled" : "disabled"}`);
25
+ console.log(` Polling: ${receiver.polling?.enabled ? "enabled" : "disabled"}`);
26
+ if (receiver.healthCheck) {
27
+ console.log(` Health Check: ${receiver.healthCheck.enabled ? "enabled" : "disabled"}`);
28
+ if (receiver.healthCheck.enabled) {
29
+ console.log(` Interval: ${receiver.healthCheck.interval}ms`);
30
+ console.log(` On Startup: ${receiver.healthCheck.onStartup ? "yes" : "no"}`);
31
+ }
32
+ }
33
+ if (receiver.eventHandling) {
34
+ console.log(` Event Handling:`);
35
+ console.log(` Immediate: ${receiver.eventHandling.immediate ? "yes" : "no"}`);
36
+ console.log(` Max Concurrent Syncs: ${receiver.eventHandling.maxConcurrentSyncs}`);
37
+ }
38
+ if (receiver.mode === "relay" && receiver.relay) {
39
+ console.log("\nRelay Configuration:");
40
+ console.log(` WebSocket URL: ${receiver.relay.wsUrl}`);
41
+ console.log(` API URL: ${receiver.relay.apiUrl}`);
42
+ console.log(` Webhook ID: ${receiver.relay.webhookId ?? "Not configured"}`);
43
+ console.log(` Auto Fallback: ${receiver.relay.autoFallbackToPolling ? "yes" : "no"}`);
44
+ }
45
+ if (receiver.mode === "direct" && receiver.direct?.enabled) {
46
+ console.log("\nDirect Mode:");
47
+ console.log(` Public URL: ${config.connect?.publicUrl ?? "Not configured"}`);
48
+ console.log(` Webhook URL: ${config.connect?.publicUrl}/webhook/plaid`);
49
+ }
50
+ }
51
+ /**
52
+ * Run webhook receiver status command
53
+ */
54
+ async function runStatus(context, args) {
55
+ const { runtime } = context;
56
+ const config = await runtime.config.getConfig();
57
+ const receiver = config.connect?.receiver;
58
+ if (!receiver) {
59
+ console.log("Webhook receiver is not configured.");
60
+ return;
61
+ }
62
+ console.log("Webhook Receiver Status:");
63
+ console.log(` Mode: ${receiver.mode}`);
64
+ console.log(` Status: ${getStatusText(receiver.mode, receiver)}`);
65
+ // Check availability for each mode
66
+ if (receiver.mode === "auto" || receiver.mode === "direct") {
67
+ console.log("\nDirect Mode:");
68
+ console.log(` Status: Checking...`);
69
+ // TODO: Implement actual status check via mode selector
70
+ }
71
+ if (receiver.mode === "auto" || receiver.mode === "relay") {
72
+ console.log("\nRelay Mode:");
73
+ if (receiver.relay?.enabled && receiver.relay.webhookId) {
74
+ console.log(` Status: Configured`);
75
+ console.log(` Webhook ID: ${receiver.relay.webhookId}`);
76
+ // TODO: Check actual connection status
77
+ }
78
+ else {
79
+ console.log(` Status: Not configured`);
80
+ }
81
+ }
82
+ console.log("\nPolling Mode:");
83
+ console.log(` Status: Always available (fallback)`);
84
+ if (receiver.polling) {
85
+ console.log(` Interval: ${receiver.polling.interval}ms`);
86
+ }
87
+ }
88
+ /**
89
+ * Run webhook receiver enable command
90
+ */
91
+ async function runEnable(context, args) {
92
+ const { runtime } = context;
93
+ const mode = args?.mode ?? "auto";
94
+ console.log(`Enabling webhook receiver in ${mode} mode...`);
95
+ try {
96
+ // Use unified helper for webhook receiver setup
97
+ const { setupWebhookReceiver } = await import("@firela/billclaw-core/webhook");
98
+ const setupResult = await setupWebhookReceiver(mode, runtime, {
99
+ oauthTimeout: 300000,
100
+ });
101
+ if (!setupResult.success) {
102
+ error(`OAuth failed: ${setupResult.error}`);
103
+ return;
104
+ }
105
+ if (mode === "relay") {
106
+ success("Relay credentials obtained successfully!");
107
+ }
108
+ // Build complete configuration update
109
+ const config = await runtime.config.getConfig();
110
+ const existingReceiver = config.connect?.receiver;
111
+ await runtime.config.updateConfig({
112
+ connect: {
113
+ port: config.connect?.port ?? 4456,
114
+ host: config.connect?.host ?? "localhost",
115
+ publicUrl: config.connect?.publicUrl,
116
+ tls: config.connect?.tls,
117
+ receiver: {
118
+ mode,
119
+ ...setupResult.config,
120
+ // Preserve existing non-mode-specific settings
121
+ healthCheck: existingReceiver?.healthCheck,
122
+ eventHandling: existingReceiver?.eventHandling,
123
+ },
124
+ },
125
+ });
126
+ success(`Webhook receiver enabled in ${mode} mode`);
127
+ console.log("\nNext steps:");
128
+ if (mode === "direct") {
129
+ console.log(" - Ensure your Connect service is running");
130
+ console.log(" - Configure Plaid webhooks to point to your public URL");
131
+ console.log(` ${config.connect?.publicUrl}/webhook/plaid`);
132
+ }
133
+ else if (mode === "relay") {
134
+ console.log(" - Your webhook receiver is now active");
135
+ console.log(" - Configure Plaid webhooks to use relay URL:");
136
+ console.log(" https://relay.firela.io/api/webhook-relay/webhook/{webhookId}");
137
+ }
138
+ else {
139
+ console.log(" - Webhook receiver will auto-detect optimal mode");
140
+ }
141
+ }
142
+ catch (err) {
143
+ const userError = err instanceof Error && err.type === "UserError"
144
+ ? err
145
+ : parseWebhookError(err, { mode });
146
+ logError(runtime.logger, userError, { command: "webhook-receiver-enable", mode });
147
+ error(formatError(userError));
148
+ throw err;
149
+ }
150
+ }
151
+ /**
152
+ * Run webhook receiver disable command
153
+ */
154
+ async function runDisable(context, args) {
155
+ const { runtime } = context;
156
+ const config = await runtime.config.getConfig();
157
+ if (!config.connect?.receiver) {
158
+ console.log("Webhook receiver is not enabled.");
159
+ return;
160
+ }
161
+ console.log("Disabling webhook receiver...");
162
+ await runtime.config.updateConfig({
163
+ connect: {
164
+ port: config.connect.port,
165
+ host: config.connect.host,
166
+ publicUrl: config.connect.publicUrl,
167
+ tls: config.connect.tls,
168
+ receiver: undefined,
169
+ },
170
+ });
171
+ success("Webhook receiver disabled");
172
+ console.log("\nNote: Polling mode is still available for syncing");
173
+ }
174
+ /**
175
+ * Get status text for mode
176
+ */
177
+ function getStatusText(mode, receiver) {
178
+ if (mode === "direct" && receiver.direct?.enabled) {
179
+ return "Active (Direct mode)";
180
+ }
181
+ if (mode === "relay" && receiver.relay?.enabled) {
182
+ return receiver.relay.webhookId ? "Active (Relay mode)" : "Not configured";
183
+ }
184
+ if (mode === "polling" || mode === "auto") {
185
+ return "Active (Polling fallback)";
186
+ }
187
+ return "Unknown";
188
+ }
189
+ /**
190
+ * Webhook receiver config command
191
+ */
192
+ export const webhookReceiverConfigCommand = {
193
+ name: "webhook-receiver-config",
194
+ description: "Show webhook receiver configuration",
195
+ aliases: ["wh-rcv-cfg"],
196
+ handler: runConfig,
197
+ };
198
+ /**
199
+ * Webhook receiver status command
200
+ */
201
+ export const webhookReceiverStatusCommand = {
202
+ name: "webhook-receiver-status",
203
+ description: "Show webhook receiver status",
204
+ aliases: ["wh-rcv-stat"],
205
+ handler: runStatus,
206
+ };
207
+ /**
208
+ * Webhook receiver enable command
209
+ */
210
+ export const webhookReceiverEnableCommand = {
211
+ name: "webhook-receiver-enable",
212
+ description: "Enable webhook receiver with mode selection",
213
+ aliases: ["wh-rcv-on"],
214
+ options: [
215
+ {
216
+ flags: "--mode <type>",
217
+ description: "Receiver mode (auto, direct, relay, polling)",
218
+ default: "auto",
219
+ },
220
+ ],
221
+ handler: runEnable,
222
+ };
223
+ /**
224
+ * Webhook receiver disable command
225
+ */
226
+ export const webhookReceiverDisableCommand = {
227
+ name: "webhook-receiver-disable",
228
+ description: "Disable webhook receiver",
229
+ aliases: ["wh-rcv-off"],
230
+ handler: runDisable,
231
+ };
232
+ //# sourceMappingURL=webhook-receiver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-receiver.js","sourceRoot":"","sources":["../../src/commands/webhook-receiver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firela/billclaw-cli",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "BillClaw CLI - Standalone command-line interface for financial data management",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -54,7 +54,7 @@
54
54
  "commander": "^13.1.0",
55
55
  "inquirer": "^12.0.0",
56
56
  "ora": "^8.1.0",
57
- "@firela/billclaw-core": "0.4.0"
57
+ "@firela/billclaw-core": "0.5.0"
58
58
  },
59
59
  "engines": {
60
60
  "node": ">=20.0.0"