@badgie/crm-cli 0.3.1 → 0.4.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,6 +1,8 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { basename, resolve as resolvePath } from 'node:path';
1
3
  import { getAuthedClient } from '../core/supabase.js';
2
4
  import { commonListOptions, output, parseColumns, parseLimit } from '../core/format.js';
3
- import { callAppApi } from '../core/http.js';
5
+ import { callAppApi, postAppApiMultipart } from '../core/http.js';
4
6
  import { maybeResolve } from '../core/resolve.js';
5
7
  // Invoices
6
8
  async function listInvoices(_a, opts) {
@@ -45,15 +47,98 @@ async function getInvoice(args, opts) {
45
47
  throw error;
46
48
  output(data, { pretty: !!opts.pretty });
47
49
  }
50
+ function mimeFromName(name) {
51
+ const n = name.toLowerCase();
52
+ if (n.endsWith('.pdf'))
53
+ return 'application/pdf';
54
+ if (n.endsWith('.jpg') || n.endsWith('.jpeg'))
55
+ return 'image/jpeg';
56
+ if (n.endsWith('.png'))
57
+ return 'image/png';
58
+ if (n.endsWith('.webp'))
59
+ return 'image/webp';
60
+ if (n.endsWith('.heic') || n.endsWith('.heif'))
61
+ return 'image/heic';
62
+ return 'application/octet-stream';
63
+ }
48
64
  async function extractInvoice(args, opts) {
49
- // Calls the Next.js app. Requires the app running and the endpoint to accept
50
- // bearer tokens (the CLI forwards the users access token).
65
+ // Acepta URL posicional o --file. Si el usuario pasa --file, subimos el PDF
66
+ // vía multipart; si pasa URL, mandamos JSON { url } y el endpoint descarga.
67
+ const filePath = typeof opts.file === 'string' ? opts.file : null;
68
+ if (filePath) {
69
+ const abs = resolvePath(filePath);
70
+ const buf = await readFile(abs);
71
+ const name = basename(abs);
72
+ const form = new FormData();
73
+ form.append('file', new File([buf], name, { type: mimeFromName(name) }));
74
+ const res = await postAppApiMultipart('/api/finance/extract-invoice-ai', form);
75
+ output(res, { pretty: !!opts.pretty });
76
+ return;
77
+ }
78
+ if (!args.url) {
79
+ throw new Error('Debes pasar una URL pública del PDF o usar --file <ruta>');
80
+ }
51
81
  const res = await callAppApi('/api/finance/extract-invoice-ai', {
52
82
  method: 'POST',
53
83
  body: JSON.stringify({ url: args.url }),
54
84
  });
55
85
  output(res, { pretty: !!opts.pretty });
56
86
  }
87
+ async function ingestInvoice(_args, opts) {
88
+ const filePath = typeof opts.file === 'string' ? opts.file : null;
89
+ const fileUrl = typeof opts.url === 'string' ? opts.url : null;
90
+ if (!filePath && !fileUrl) {
91
+ throw new Error('Debes pasar --file <ruta> o --url <publicUrl>');
92
+ }
93
+ const commit = !!opts.commit;
94
+ const type = opts.type === 'emitida' ? 'emitida' : 'recibida';
95
+ if (filePath) {
96
+ const abs = resolvePath(filePath);
97
+ const buf = await readFile(abs);
98
+ const name = basename(abs);
99
+ const form = new FormData();
100
+ form.append('file', new File([buf], name, { type: mimeFromName(name) }));
101
+ form.append('type', type);
102
+ form.append('commit', commit ? 'true' : 'false');
103
+ const res = await postAppApiMultipart('/api/finance/ingest-invoice', form);
104
+ output(res, { pretty: !!opts.pretty });
105
+ return;
106
+ }
107
+ const res = await callAppApi('/api/finance/ingest-invoice', {
108
+ method: 'POST',
109
+ body: JSON.stringify({ fileUrl, type, commit }),
110
+ });
111
+ output(res, { pretty: !!opts.pretty });
112
+ }
113
+ async function findDuplicateInvoice(_args, opts) {
114
+ const payload = {
115
+ invoice_number: typeof opts.number === 'string' ? opts.number : '',
116
+ counterparty_name: typeof opts.supplier === 'string' ? opts.supplier : '',
117
+ counterparty_tax_id: typeof opts.taxId === 'string' ? opts.taxId : null,
118
+ total_amount: typeof opts.total === 'string' ? Number(opts.total) : 0,
119
+ invoice_date: typeof opts.date === 'string' ? opts.date : '',
120
+ };
121
+ const res = await callAppApi('/api/finance/find-duplicate-invoice', {
122
+ method: 'POST',
123
+ body: JSON.stringify(payload),
124
+ });
125
+ output(res, { pretty: !!opts.pretty });
126
+ }
127
+ async function reconcileInvoice(args, opts) {
128
+ const invoiceId = args.id;
129
+ if (!invoiceId)
130
+ throw new Error('Falta el id de la factura');
131
+ const payload = { invoiceId };
132
+ if (typeof opts.windowDays === 'string')
133
+ payload.windowDays = Number(opts.windowDays);
134
+ if (typeof opts.max === 'string')
135
+ payload.max = Number(opts.max);
136
+ const res = await callAppApi('/api/finance/reconcile-invoice', {
137
+ method: 'POST',
138
+ body: JSON.stringify(payload),
139
+ });
140
+ output(res, { pretty: !!opts.pretty });
141
+ }
57
142
  // Bank movements
58
143
  async function listBankMovements(_a, opts) {
59
144
  const { client } = await getAuthedClient();
@@ -212,12 +297,64 @@ export const financeModule = {
212
297
  },
213
298
  {
214
299
  path: ['finance', 'invoices', 'extract'],
215
- summary: 'AI-extract an invoice from a PDF URL (calls the Next app)',
300
+ summary: 'AI-extract an invoice from a PDF URL or local file',
216
301
  tags: ['write', 'http'],
217
- args: [{ name: 'url', required: true, description: 'public URL of the PDF' }],
218
- options: [{ flag: '--pretty', description: 'human output' }],
302
+ args: [{ name: 'url', required: false, description: 'public URL of the PDF (optional if --file)' }],
303
+ options: [
304
+ { flag: '--file <path>', description: 'local path to a PDF/image (uploaded as multipart)' },
305
+ { flag: '--pretty', description: 'human output' },
306
+ ],
307
+ examples: [
308
+ 'badgie-crm finance invoices extract --file ./MO26040486.pdf --pretty',
309
+ 'badgie-crm finance invoices extract https://example.com/invoice.pdf --pretty',
310
+ ],
219
311
  handler: extractInvoice,
220
312
  },
313
+ {
314
+ path: ['finance', 'invoices', 'ingest'],
315
+ summary: 'Upload invoice, extract, check duplicates, propose bank matches',
316
+ description: 'Por defecto actúa como dry-run: sube el PDF, extrae y devuelve propuesta. Pasa --commit para persistir la factura si no hay duplicado exacto.',
317
+ tags: ['write', 'http'],
318
+ options: [
319
+ { flag: '--file <path>', description: 'local PDF/image path' },
320
+ { flag: '--url <publicUrl>', description: 'public URL (alternativa a --file)' },
321
+ { flag: '--type <t>', description: 'recibida (default) | emitida' },
322
+ { flag: '--commit', description: 'persistir factura si no hay duplicado exacto' },
323
+ { flag: '--pretty', description: 'human output' },
324
+ ],
325
+ examples: [
326
+ 'badgie-crm finance invoices ingest --file ./MO26040486.pdf',
327
+ 'badgie-crm finance invoices ingest --file ./MO26040486.pdf --commit --pretty',
328
+ ],
329
+ handler: ingestInvoice,
330
+ },
331
+ {
332
+ path: ['finance', 'invoices', 'find-duplicate'],
333
+ summary: 'Check if an invoice already exists (by number/supplier/date/total)',
334
+ tags: ['read', 'http'],
335
+ options: [
336
+ { flag: '--number <n>', description: 'invoice_number' },
337
+ { flag: '--supplier <name>', description: 'counterparty_name' },
338
+ { flag: '--tax-id <cif>', description: 'counterparty_tax_id (opcional, mejora match)' },
339
+ { flag: '--date <yyyy-mm-dd>', description: 'invoice_date' },
340
+ { flag: '--total <n>', description: 'total_amount' },
341
+ { flag: '--pretty', description: 'human output' },
342
+ ],
343
+ handler: findDuplicateInvoice,
344
+ },
345
+ {
346
+ path: ['finance', 'invoices', 'reconcile'],
347
+ summary: 'Propose bank movements that could match an invoice',
348
+ tags: ['read', 'http'],
349
+ args: [{ name: 'id', required: true, description: 'invoice uuid' }],
350
+ options: [
351
+ { flag: '--match-bank', description: '(siempre activo) busca candidatos en bank_movements' },
352
+ { flag: '--window-days <n>', description: 'ventana ± días alrededor de invoice_date (default 7)' },
353
+ { flag: '--max <n>', description: 'máximo de candidatos (default 25)' },
354
+ { flag: '--pretty', description: 'human output' },
355
+ ],
356
+ handler: reconcileInvoice,
357
+ },
221
358
  {
222
359
  path: ['finance', 'bank', 'list'],
223
360
  summary: 'List bank movements',
@@ -1 +1 @@
1
- {"version":3,"file":"finance.js","sourceRoot":"","sources":["../../src/commands/finance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finance.js","sourceRoot":"","sources":["../../src/commands/finance.ts"],"names":[],"mappings":"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"}
package/dist/core/http.js CHANGED
@@ -10,11 +10,9 @@ import { getAuthedClient } from './supabase.js';
10
10
  * auth, or (b) has been extended to accept a bearer token. We still forward
11
11
  * the token so it just works once the app is updated.
12
12
  */
13
- export async function callAppApi(path, init = {}) {
14
- const env = await resolveEnv();
13
+ async function buildAuthHeaders() {
14
+ const headers = new Headers();
15
15
  const { client, mode } = await getAuthedClient();
16
- const headers = new Headers(init.headers);
17
- headers.set('content-type', headers.get('content-type') ?? 'application/json');
18
16
  if (mode === 'user') {
19
17
  const { data } = await client.auth.getSession();
20
18
  const token = data.session?.access_token;
@@ -26,6 +24,15 @@ export async function callAppApi(path, init = {}) {
26
24
  if (env2.serviceKey)
27
25
  headers.set('x-badgie-service-key', env2.serviceKey);
28
26
  }
27
+ return headers;
28
+ }
29
+ export async function callAppApi(path, init = {}) {
30
+ const env = await resolveEnv();
31
+ const authHeaders = await buildAuthHeaders();
32
+ const headers = new Headers(init.headers);
33
+ for (const [k, v] of authHeaders)
34
+ headers.set(k, v);
35
+ headers.set('content-type', headers.get('content-type') ?? 'application/json');
29
36
  const url = new URL(path, env.appUrl).toString();
30
37
  const res = await fetch(url, { ...init, headers });
31
38
  const text = await res.text();
@@ -39,4 +46,24 @@ export async function callAppApi(path, init = {}) {
39
46
  return text;
40
47
  }
41
48
  }
49
+ /**
50
+ * POST multipart a una ruta de la app. No fijes `content-type` — fetch lo
51
+ * genera con el boundary correcto a partir del FormData.
52
+ */
53
+ export async function postAppApiMultipart(path, form) {
54
+ const env = await resolveEnv();
55
+ const headers = await buildAuthHeaders();
56
+ const url = new URL(path, env.appUrl).toString();
57
+ const res = await fetch(url, { method: 'POST', body: form, headers });
58
+ const text = await res.text();
59
+ if (!res.ok) {
60
+ throw new Error(`${res.status} ${res.statusText} — ${text.slice(0, 300)}`);
61
+ }
62
+ try {
63
+ return JSON.parse(text);
64
+ }
65
+ catch {
66
+ return text;
67
+ }
68
+ }
42
69
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,OAAoB,EAAE;IAEtB,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,EAAE,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC,CAAA;IAC9E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAA;QACxC,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAA;IAC5D,CAAC;SAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAA;QAC/B,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IAChD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAoB,CAAA;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@badgie/crm-cli",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Badgie CRM CLI — terminal operations for the Badgie CRM (leads, clients, invoices, webhooks) plus MCP server for AI agents.",
5
5
  "type": "module",
6
6
  "bin": {