@invoicer/cli 1.2.3 → 1.2.5

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/README.md CHANGED
@@ -54,6 +54,7 @@ invoicer
54
54
 
55
55
  Interactive prompts will guide you through:
56
56
  - Client selection
57
+ - Invoice number (auto-generated or custom)
57
58
  - Hours worked
58
59
  - Hourly rate
59
60
  - Line item details
@@ -97,7 +98,9 @@ This automatically fills the current month (YYYY-MM).
97
98
 
98
99
  ## Features
99
100
 
100
- ### Invoice Number Auto-Generation
101
+ ### Invoice Numbering
102
+
103
+ #### Auto-Generated Numbers
101
104
 
102
105
  Format: `{prefix}-{YYYYMM}-{sequence}`
103
106
 
@@ -105,6 +108,34 @@ Example: `INV-202602-001`, `INV-202602-002`
105
108
 
106
109
  Sequence numbers are tracked per month and per client, stored in `data/last.json`.
107
110
 
111
+ #### Interactive Prompt
112
+
113
+ When generating an invoice, you'll see:
114
+ ```
115
+ ? Use auto-generated invoice number (INV-202602-007)? (Y/n)
116
+ ```
117
+
118
+ - Press **Enter** or **Y** to use the auto-generated number
119
+ - Press **N** to enter a custom number:
120
+ ```
121
+ ? Enter custom invoice number: INV-CUSTOM-001
122
+ ```
123
+
124
+ **Custom Number Validation:**
125
+ - Must be 3-30 characters
126
+ - Can contain: letters, numbers, hyphens, underscores
127
+ - Cannot be empty
128
+
129
+ #### CLI Argument Override
130
+
131
+ Skip the prompt entirely:
132
+ ```bash
133
+ invoicer --invoice=INV-202602-007
134
+ invoicer --invoice=CUSTOM-INV-001
135
+ ```
136
+
137
+ The CLI argument takes precedence and bypasses the interactive prompt.
138
+
108
139
  ### Multiple Line Items
109
140
 
110
141
  Add as many services as needed:
package/dist/cli.js CHANGED
@@ -10,6 +10,7 @@ import { registerGenerateCommand } from "./commands/generate.js";
10
10
  import { registerClientsCommand } from "./commands/clients.js";
11
11
  import { registerTimesheetCommand } from "./commands/timesheet.js";
12
12
  import { registerSenderCommand } from "./commands/sender.js";
13
+ import { registerDraftsCommand } from "./commands/drafts.js";
13
14
  function getPackageVersion() {
14
15
  try {
15
16
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -31,6 +32,7 @@ export function createProgram(paths = createProjectPaths()) {
31
32
  registerClientsCommand(program, paths);
32
33
  registerTimesheetCommand(program, paths);
33
34
  registerSenderCommand(program, paths);
35
+ registerDraftsCommand(program, paths);
34
36
  return program;
35
37
  }
36
38
  export async function runCli(argv = process.argv, paths = createProjectPaths()) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAsB,kBAAkB,EAAE;IACtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,2DAA2D,CAAC;SACxE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEhC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvC,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,QAAsB,kBAAkB,EAAE;IAC1F,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,IAAI,YAAY,EAAE,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,11 @@ export function registerClientsCommand(program, paths) {
29
29
  console.log(` Address: ${client.address}`);
30
30
  if (client.payPeriodType)
31
31
  console.log(` Terms: ${client.payPeriodType}`);
32
+ if (client.paymentTerms)
33
+ console.log(` Payment Terms: ${client.paymentTerms}`);
34
+ if (client.billingCycle) {
35
+ console.log(` Billing Cycle: ${client.billingCycle.type} (from ${client.billingCycle.anchorDate})`);
36
+ }
32
37
  console.log();
33
38
  });
34
39
  process.exit(0);
@@ -74,6 +79,32 @@ export function registerClientsCommand(program, paths) {
74
79
  message: "Payment terms (e.g., Net 30, Due on Receipt):",
75
80
  default: "Due on Receipt",
76
81
  },
82
+ {
83
+ type: "confirm",
84
+ name: "setupBillingCycle",
85
+ message: "Set up automatic billing cycle?",
86
+ default: false,
87
+ },
88
+ {
89
+ type: "list",
90
+ name: "billingCycleType",
91
+ message: "Billing cycle:",
92
+ choices: [
93
+ { name: "Weekly (7 days)", value: "weekly" },
94
+ { name: "Biweekly (14 days)", value: "biweekly" },
95
+ { name: "Monthly", value: "monthly" },
96
+ ],
97
+ default: "monthly",
98
+ when: (a) => a.setupBillingCycle,
99
+ },
100
+ {
101
+ type: "input",
102
+ name: "anchorDate",
103
+ message: "Billing cycle start date (YYYY-MM-DD):",
104
+ default: new Date().toISOString().slice(0, 10),
105
+ validate: (v) => /^\d{4}-\d{2}-\d{2}$/.test(v) || "Use YYYY-MM-DD format",
106
+ when: (a) => a.setupBillingCycle,
107
+ },
77
108
  ]);
78
109
  const newClient = {
79
110
  name: answers.name.trim(),
@@ -82,6 +113,10 @@ export function registerClientsCommand(program, paths) {
82
113
  currency: answers.currency,
83
114
  defaultRate: Number(answers.defaultRate),
84
115
  payPeriodType: answers.payPeriodType.trim(),
116
+ paymentTerms: answers.payPeriodType.trim(),
117
+ billingCycle: answers.setupBillingCycle
118
+ ? { type: answers.billingCycleType, anchorDate: answers.anchorDate }
119
+ : undefined,
85
120
  };
86
121
  if (cfg.client.some((client) => client.name === newClient.name)) {
87
122
  console.error(`❌ Client "${newClient.name}" already exists`);
@@ -139,7 +174,33 @@ export function registerClientsCommand(program, paths) {
139
174
  type: "input",
140
175
  name: "payPeriodType",
141
176
  message: "Payment terms:",
142
- default: current.payPeriodType || "Due on Receipt",
177
+ default: current.paymentTerms || current.payPeriodType || "Due on Receipt",
178
+ },
179
+ {
180
+ type: "confirm",
181
+ name: "setupBillingCycle",
182
+ message: "Set up automatic billing cycle?",
183
+ default: !!current.billingCycle,
184
+ },
185
+ {
186
+ type: "list",
187
+ name: "billingCycleType",
188
+ message: "Billing cycle:",
189
+ choices: [
190
+ { name: "Weekly (7 days)", value: "weekly" },
191
+ { name: "Biweekly (14 days)", value: "biweekly" },
192
+ { name: "Monthly", value: "monthly" },
193
+ ],
194
+ default: current.billingCycle?.type || "monthly",
195
+ when: (a) => a.setupBillingCycle,
196
+ },
197
+ {
198
+ type: "input",
199
+ name: "anchorDate",
200
+ message: "Billing cycle start date (YYYY-MM-DD):",
201
+ default: current.billingCycle?.anchorDate || new Date().toISOString().slice(0, 10),
202
+ validate: (v) => /^\d{4}-\d{2}-\d{2}$/.test(v) || "Use YYYY-MM-DD format",
203
+ when: (a) => a.setupBillingCycle,
143
204
  },
144
205
  ]);
145
206
  cfg.client[clientIndex] = {
@@ -149,6 +210,10 @@ export function registerClientsCommand(program, paths) {
149
210
  currency: answers.currency,
150
211
  defaultRate: Number(answers.defaultRate),
151
212
  payPeriodType: answers.payPeriodType.trim(),
213
+ paymentTerms: answers.payPeriodType.trim(),
214
+ billingCycle: answers.setupBillingCycle
215
+ ? { type: answers.billingCycleType, anchorDate: answers.anchorDate }
216
+ : undefined,
152
217
  };
153
218
  writeJsonFile(paths.configPath, cfg);
154
219
  console.log(`✅ Client "${answers.name}" updated successfully`);
@@ -1 +1 @@
1
- {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/commands/clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/commands/clients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ import inquirer from "inquirer";
2
+ import { loadJsonFile } from "../core/json-store.js";
3
+ import { validateConfig } from "../core/validators.js";
4
+ import { checkAndGenerateDueDrafts, confirmDraft, deleteDraft, getDraftById, getDueScheduledDrafts, loadDrafts, markDraftSent, markDraftFailed, scheduleDraft, } from "../services/draft-service.js";
5
+ import { renderInvoicePdf } from "../services/pdf-render.js";
6
+ import { sendInvoiceEmail } from "../services/email.js";
7
+ function loadConfig(paths) {
8
+ return loadJsonFile(paths.configPath, { client: [], from: {} }, validateConfig);
9
+ }
10
+ function formatCurrency(amount, currency) {
11
+ return `${currency} ${amount.toFixed(2)}`;
12
+ }
13
+ function formatStatus(status) {
14
+ const icons = {
15
+ draft: "📝",
16
+ confirmed: "✅",
17
+ scheduled: "📅",
18
+ sent: "✉️ ",
19
+ failed: "❌",
20
+ };
21
+ return `${icons[status] || "❓"} ${status}`;
22
+ }
23
+ function printDraft(draft) {
24
+ console.log(`\n ID: ${draft.id}`);
25
+ console.log(` Client: ${draft.client}`);
26
+ console.log(` Status: ${formatStatus(draft.status)}`);
27
+ console.log(` Invoice: ${draft.invoiceNumber}`);
28
+ console.log(` Period: ${draft.periodFrom} → ${draft.periodTo}`);
29
+ console.log(` Total: ${formatCurrency(draft.total, draft.currency)}`);
30
+ if (draft.scheduledSendDate) {
31
+ console.log(` Send on: ${draft.scheduledSendDate}`);
32
+ }
33
+ if (draft.sentAt) {
34
+ console.log(` Sent at: ${draft.sentAt}`);
35
+ }
36
+ console.log(` Items: ${draft.lineItems.length} line item(s)`);
37
+ for (const item of draft.lineItems) {
38
+ console.log(` - ${item.description}: ${item.hours}h × ${formatCurrency(item.rate, draft.currency)} = ${formatCurrency(item.amount, draft.currency)}`);
39
+ }
40
+ }
41
+ export function registerDraftsCommand(program, paths) {
42
+ program
43
+ .command("drafts")
44
+ .description("Manage invoice drafts (auto-generate, review, schedule, send)")
45
+ .option("--list", "List all drafts", false)
46
+ .option("--generate", "Auto-generate drafts for completed billing cycles", false)
47
+ .option("--review <id>", "Review and confirm a draft")
48
+ .option("--schedule <id>", "Schedule a confirmed draft for sending")
49
+ .option("--send <id>", "Send a draft immediately")
50
+ .option("--delete <id>", "Delete a draft")
51
+ .option("--date <YYYY-MM-DD>", "Send date for --schedule")
52
+ .option("--process-due", "Process and send all due scheduled drafts", false)
53
+ .action(async (options) => {
54
+ // ── List ─────────────────────────────────────────────
55
+ if (options.list) {
56
+ const data = loadDrafts(paths);
57
+ if (data.drafts.length === 0) {
58
+ console.log("📭 No invoice drafts found.");
59
+ return;
60
+ }
61
+ console.log(`\n📋 Invoice Drafts (${data.drafts.length} total)\n${"─".repeat(48)}`);
62
+ const grouped = new Map();
63
+ for (const d of data.drafts) {
64
+ if (!grouped.has(d.status))
65
+ grouped.set(d.status, []);
66
+ grouped.get(d.status).push(d);
67
+ }
68
+ for (const [status, drafts] of grouped) {
69
+ console.log(`\n${formatStatus(status).toUpperCase()} (${drafts.length})`);
70
+ for (const d of drafts) {
71
+ printDraft(d);
72
+ }
73
+ }
74
+ return;
75
+ }
76
+ // ── Generate ─────────────────────────────────────────
77
+ if (options.generate) {
78
+ console.log("🔄 Checking billing cycles for due drafts...");
79
+ const newDrafts = checkAndGenerateDueDrafts(paths);
80
+ if (newDrafts.length === 0) {
81
+ console.log("✅ No new drafts needed. All billing cycles are current.");
82
+ return;
83
+ }
84
+ console.log(`\n📝 Generated ${newDrafts.length} new draft(s):\n`);
85
+ for (const d of newDrafts) {
86
+ printDraft(d);
87
+ }
88
+ return;
89
+ }
90
+ // ── Review (confirm) ─────────────────────────────────
91
+ if (options.review) {
92
+ const draft = getDraftById(paths, options.review);
93
+ if (!draft) {
94
+ console.error(`❌ Draft not found: ${options.review}`);
95
+ process.exit(1);
96
+ }
97
+ console.log("\n📄 Draft for review:");
98
+ printDraft(draft);
99
+ if (draft.status !== "draft") {
100
+ console.log(`\n⚠️ This draft is already "${draft.status}". Only "draft" status can be confirmed.`);
101
+ return;
102
+ }
103
+ const { confirm } = await inquirer.prompt([
104
+ { type: "confirm", name: "confirm", message: "Confirm this draft and generate PDF?", default: true },
105
+ ]);
106
+ if (!confirm) {
107
+ console.log("⏭️ Skipped.");
108
+ return;
109
+ }
110
+ // Generate PDF
111
+ const cfg = loadConfig(paths);
112
+ const client = cfg.client.find((c) => c.name === draft.client);
113
+ if (!client) {
114
+ console.error(`❌ Client "${draft.client}" not found in config.`);
115
+ process.exit(1);
116
+ }
117
+ const invoicePayload = {
118
+ from: cfg.from,
119
+ client,
120
+ currency: draft.currency,
121
+ invoiceNumber: draft.invoiceNumber,
122
+ invoiceDate: draft.invoiceDate,
123
+ periodFrom: draft.periodFrom,
124
+ periodTo: draft.periodTo,
125
+ lineItems: draft.lineItems.map((item) => ({
126
+ description: item.description,
127
+ hours: item.hours,
128
+ rate: item.rate,
129
+ amount: item.amount,
130
+ })),
131
+ paymentTerms: draft.paymentTerms,
132
+ note: cfg.note,
133
+ };
134
+ try {
135
+ const month = draft.periodFrom.slice(0, 7);
136
+ const outPath = await renderInvoicePdf(paths, invoicePayload, month);
137
+ const updated = confirmDraft(paths, draft.id);
138
+ const withPdf = { ...updated, pdfPath: outPath };
139
+ // Save the PDF path
140
+ const data = loadDrafts(paths);
141
+ const idx = data.drafts.findIndex((d) => d.id === draft.id);
142
+ if (idx !== -1) {
143
+ data.drafts[idx] = withPdf;
144
+ const { saveDrafts } = await import("../services/draft-service.js");
145
+ saveDrafts(paths, data);
146
+ }
147
+ console.log(`\n✅ Draft confirmed! PDF saved: ${outPath}`);
148
+ // Ask about scheduling
149
+ const { wantSchedule } = await inquirer.prompt([
150
+ { type: "confirm", name: "wantSchedule", message: "Schedule this invoice for sending?", default: true },
151
+ ]);
152
+ if (wantSchedule) {
153
+ const { sendDate } = await inquirer.prompt([
154
+ { type: "input", name: "sendDate", message: "Send date (YYYY-MM-DD):", validate: (v) => /^\d{4}-\d{2}-\d{2}$/.test(v) || "Use YYYY-MM-DD format" },
155
+ ]);
156
+ scheduleDraft(paths, draft.id, sendDate);
157
+ console.log(`📅 Scheduled to send on ${sendDate}`);
158
+ }
159
+ }
160
+ catch (e) {
161
+ console.error(`❌ Failed to generate PDF: ${e instanceof Error ? e.message : String(e)}`);
162
+ process.exit(1);
163
+ }
164
+ return;
165
+ }
166
+ // ── Schedule ─────────────────────────────────────────
167
+ if (options.schedule) {
168
+ if (!options.date) {
169
+ console.error("❌ --date is required with --schedule. Usage: invoicer drafts --schedule <id> --date 2026-03-01");
170
+ process.exit(1);
171
+ }
172
+ const draft = getDraftById(paths, options.schedule);
173
+ if (!draft) {
174
+ console.error(`❌ Draft not found: ${options.schedule}`);
175
+ process.exit(1);
176
+ }
177
+ if (draft.status !== "confirmed" && draft.status !== "draft") {
178
+ console.error(`❌ Draft must be "confirmed" or "draft" to schedule. Current status: ${draft.status}`);
179
+ process.exit(1);
180
+ }
181
+ scheduleDraft(paths, options.schedule, options.date);
182
+ console.log(`📅 Draft ${draft.invoiceNumber} scheduled to send on ${options.date}`);
183
+ return;
184
+ }
185
+ // ── Send ─────────────────────────────────────────────
186
+ if (options.send) {
187
+ const draft = getDraftById(paths, options.send);
188
+ if (!draft) {
189
+ console.error(`❌ Draft not found: ${options.send}`);
190
+ process.exit(1);
191
+ }
192
+ if (!draft.pdfPath) {
193
+ console.error("❌ No PDF generated for this draft. Use --review first to generate the PDF.");
194
+ process.exit(1);
195
+ }
196
+ const cfg = loadConfig(paths);
197
+ const client = cfg.client.find((c) => c.name === draft.client);
198
+ if (!client) {
199
+ console.error(`❌ Client "${draft.client}" not found in config.`);
200
+ process.exit(1);
201
+ }
202
+ try {
203
+ await sendInvoiceEmail({
204
+ outPath: draft.pdfPath,
205
+ invoiceNumber: draft.invoiceNumber,
206
+ clientName: client.name,
207
+ clientEmail: client.email || "",
208
+ currency: draft.currency,
209
+ total: draft.total,
210
+ periodFrom: draft.periodFrom,
211
+ periodTo: draft.periodTo,
212
+ senderProfile: cfg.from,
213
+ });
214
+ markDraftSent(paths, draft.id);
215
+ console.log(`✉️ Invoice ${draft.invoiceNumber} sent to ${client.email}`);
216
+ }
217
+ catch (e) {
218
+ markDraftFailed(paths, draft.id);
219
+ console.error(`❌ Failed to send: ${e instanceof Error ? e.message : String(e)}`);
220
+ process.exit(1);
221
+ }
222
+ return;
223
+ }
224
+ // ── Delete ───────────────────────────────────────────
225
+ if (options.delete) {
226
+ const draft = getDraftById(paths, options.delete);
227
+ if (!draft) {
228
+ console.error(`❌ Draft not found: ${options.delete}`);
229
+ process.exit(1);
230
+ }
231
+ const { confirm } = await inquirer.prompt([
232
+ { type: "confirm", name: "confirm", message: `Delete draft ${draft.invoiceNumber} (${draft.client})?`, default: false },
233
+ ]);
234
+ if (confirm) {
235
+ deleteDraft(paths, options.delete);
236
+ console.log(`🗑️ Draft deleted.`);
237
+ }
238
+ return;
239
+ }
240
+ // ── Process Due ──────────────────────────────────────
241
+ if (options.processDue) {
242
+ const dueDrafts = getDueScheduledDrafts(paths);
243
+ if (dueDrafts.length === 0) {
244
+ console.log("✅ No scheduled drafts are due for sending.");
245
+ return;
246
+ }
247
+ console.log(`📬 ${dueDrafts.length} draft(s) due for sending...\n`);
248
+ const cfg = loadConfig(paths);
249
+ for (const draft of dueDrafts) {
250
+ const client = cfg.client.find((c) => c.name === draft.client);
251
+ if (!client || !client.email) {
252
+ console.error(`⚠️ Skipping ${draft.invoiceNumber}: client "${draft.client}" has no email`);
253
+ markDraftFailed(paths, draft.id);
254
+ continue;
255
+ }
256
+ if (!draft.pdfPath) {
257
+ console.error(`⚠️ Skipping ${draft.invoiceNumber}: no PDF generated`);
258
+ markDraftFailed(paths, draft.id);
259
+ continue;
260
+ }
261
+ try {
262
+ await sendInvoiceEmail({
263
+ outPath: draft.pdfPath,
264
+ invoiceNumber: draft.invoiceNumber,
265
+ clientName: client.name,
266
+ clientEmail: client.email,
267
+ currency: draft.currency,
268
+ total: draft.total,
269
+ periodFrom: draft.periodFrom,
270
+ periodTo: draft.periodTo,
271
+ senderProfile: cfg.from,
272
+ });
273
+ markDraftSent(paths, draft.id);
274
+ console.log(` ✉️ ${draft.invoiceNumber} → ${client.email}`);
275
+ }
276
+ catch (e) {
277
+ markDraftFailed(paths, draft.id);
278
+ console.error(` ❌ ${draft.invoiceNumber}: ${e instanceof Error ? e.message : String(e)}`);
279
+ }
280
+ }
281
+ return;
282
+ }
283
+ console.log("Usage: invoicer drafts [--list | --generate | --review <id> | --schedule <id> --date <YYYY-MM-DD> | --send <id> | --delete <id> | --process-due]");
284
+ });
285
+ }
286
+ //# sourceMappingURL=drafts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../src/commands/drafts.ts"],"names":[],"mappings":"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"}
@@ -181,10 +181,50 @@ export async function handleGenerateCommand(options, paths) {
181
181
  });
182
182
  }
183
183
  const seqByMonth = { ...(clientHistory.seqByMonth || {}) };
184
+ // Prompt for invoice number if not provided via CLI
185
+ let invoiceNumberInput = options.invoice;
186
+ if (!invoiceNumberInput) {
187
+ // Preview the auto-generated number
188
+ const nextSeq = (seqByMonth[month] || 0) + 1;
189
+ const yyyymm = month.replace("-", "");
190
+ const prefix = cfg.invoicePrefix?.trim() || "INV";
191
+ const autoGenerated = `${prefix}-${yyyymm}-${String(nextSeq).padStart(3, "0")}`;
192
+ const answer = await inquirer.prompt([
193
+ {
194
+ type: "confirm",
195
+ name: "useAuto",
196
+ message: `Use auto-generated invoice number (${autoGenerated})?`,
197
+ default: true,
198
+ },
199
+ {
200
+ type: "input",
201
+ name: "customNumber",
202
+ message: "Enter custom invoice number:",
203
+ when: (answers) => !answers.useAuto,
204
+ validate: (value) => {
205
+ const trimmed = value.trim();
206
+ if (!trimmed) {
207
+ return "Invoice number cannot be empty";
208
+ }
209
+ if (trimmed.length < 3 || trimmed.length > 30) {
210
+ return "Invoice number must be between 3 and 30 characters";
211
+ }
212
+ if (!/^[A-Z0-9\-_]+$/i.test(trimmed)) {
213
+ return "Invoice number can only contain letters, numbers, hyphens, and underscores";
214
+ }
215
+ return true;
216
+ },
217
+ },
218
+ ]);
219
+ if (!answer.useAuto && answer.customNumber) {
220
+ invoiceNumberInput = answer.customNumber.trim();
221
+ console.log(`📝 Using custom invoice number: ${invoiceNumberInput}`);
222
+ }
223
+ }
184
224
  const invoiceNumber = resolveInvoiceNumber({
185
225
  month,
186
226
  invoicePrefix: cfg.invoicePrefix,
187
- overrideInvoice: options.invoice,
227
+ overrideInvoice: invoiceNumberInput,
188
228
  seqByMonth,
189
229
  });
190
230
  const invoiceDate = getInvoiceDate();
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAmB;IACrC,OAAO,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB;IACxC,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,WAAoB;IACvC,OAAO,WAAW,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,mBAA4B;IACnE,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,aAAa,mBAAmB,4BAA4B,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,WAAW,MAAM;QACjF,KAAK,EAAE,KAAK;KACb,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA0B;QAC5D;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,aAAa;SACvB;KACF,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAOrC;IACC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,OAAO,WAAW,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAIjC;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,qBAAqB,SAAS,IAAI;gBAC3C,OAAO,EACL,SAAS,KAAK,CAAC;oBACb,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,CAAC;oBACtE,CAAC,CAAC,EAAE;aACT;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,QAAQ;gBACjB,OAAO,EACL,SAAS,KAAK,CAAC;oBACb,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;oBACzF,CAAC,CAAC,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EACL,SAAS,KAAK,CAAC;oBACb,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;oBACrG,CAAC,CAAC,MAAM,CAAC,WAAW;aACzB;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,aAAa,CAAC,wCAAwC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;QAE5B,KAAK,CAAC,IAAI,CAAC;YACT,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK;YACL,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CACT,QAAQ,MAAM,CAAC,WAAW,KAAK,KAAK,OAAO,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC7G,CAAC;QAEF,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA0B;YACtE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC;QAC1C,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAwB,EAAE,KAAmB;IACvF,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,aAAa,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;QAC/C,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,cAAc,CAAC,WAAW,IAAI,CAAC;QACzC,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;IAEjD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,aAAa,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,SAAS,GAAe,EAAE,CAAC;IAC/B,IAAI,iBAAiB,GAAa,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,cAAc,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEpF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,sBAAsB,CAAC,CAAC;YAE9D,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAE1D,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5E,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CACT,6BAA6B,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,8BAA8B,CAC3F,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,UAAU,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,QAAQ,CAAC,MAAM,sBAAsB,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA0B;gBAC5D;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,kCAAkC;oBAC3C,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrC,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAC,CAAC;gBACJ,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,SAAS,GAAG,MAAM,sBAAsB,CAAC;YACvC,OAAO;YACP,GAAG;YACH,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC9C,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3D,MAAM,aAAa,GAAG,oBAAoB,CAAC;QACzC,KAAK;QACL,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,eAAe,EAAE,OAAO,CAAC,OAAO;QAChC,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEpE,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,KAAK,EACL;QACE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;QACpB,MAAM,EAAE,cAAc;QACtB,QAAQ;QACR,aAAa;QACb,WAAW;QACX,UAAU;QACV,QAAQ;QACR,SAAS;QACT,YAAY,EAAE,cAAc,CAAC,aAAa;QAC1C,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,EACD,KAAK,CACN,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG;QACxB,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,aAAa,CAAC,SAAS;QAC1D,QAAQ,EAAE,aAAa,EAAE,IAAI,IAAI,aAAa,CAAC,QAAQ;QACvD,UAAU;KACX,CAAC;IAEF,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA8B;YAChE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,WAAW,iBAAiB,CAAC,MAAM,0CAA0C;gBACtF,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC9F,OAAO,CAAC,GAAG,CAAC,cAAc,aAAa,+BAA+B,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAyB;YAC3D;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA0B;gBACjE;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,cAAc,CAAC,KAAK,IAAI,EAAE;oBACnC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAC1B,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,mBAAmB;iBAClE;aACF,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBAErC,MAAM,gBAAgB,CAAC;oBACrB,OAAO;oBACP,aAAa;oBACb,UAAU,EAAE,cAAc,CAAC,IAAI;oBAC/B,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,QAAQ;oBACR,KAAK;oBACL,UAAU;oBACV,QAAQ;oBACR,aAAa,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;iBAC9B,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,gCAAgC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,KAAmB;IAC3E,OAAO;SACJ,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACxC,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,EAAE,KAAK,CAAC;SACzE,MAAM,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;SAC3E,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;SACvD,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,iCAAiC,CAAC;SAC1D,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE;QACzC,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ export function createProjectPaths(startDir = process.cwd()) {
35
35
  lastPath: path.join(projectRoot, "data", "last.json"),
36
36
  timesheetPath: path.join(projectRoot, "data", "timesheet.json"),
37
37
  archivePath: path.join(projectRoot, "data", "archive.json"),
38
+ draftsPath: path.join(projectRoot, "data", "drafts.json"),
38
39
  outDir: path.join(projectRoot, "out"),
39
40
  indexHtmlPath: path.join(moduleRoot, "index.html"),
40
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAYlC,MAAM,UAAU,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;IACtD,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAEzC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5E,yDAAyD;IACzD,iEAAiE;IACjE,iDAAiD;IACjD,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEpG,qFAAqF;IACrF,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;QACjD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;QACrD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,CAAC;QAC/D,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC;QAC3D,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;QACrC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;KACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAalC,MAAM,UAAU,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;IACtD,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAEzC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5E,yDAAyD;IACzD,iEAAiE;IACjE,iDAAiD;IACjD,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEpG,qFAAqF;IACrF,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;QACjD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;QACrD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,CAAC;QAC/D,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC;QAC3D,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC;QACzD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;QACrC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;KACnD,CAAC;AACJ,CAAC"}
@@ -32,8 +32,28 @@ function ensureOptionalNumber(value, label, fallback) {
32
32
  }
33
33
  return ensureNumber(value, label);
34
34
  }
35
+ const VALID_BILLING_CYCLE_TYPES = new Set(["weekly", "biweekly", "monthly", "custom"]);
36
+ const VALID_DRAFT_STATUSES = new Set(["draft", "confirmed", "scheduled", "sent", "failed"]);
37
+ function validateBillingCycle(value, label) {
38
+ if (value === undefined || value === null) {
39
+ return undefined;
40
+ }
41
+ const obj = ensureObject(value, label);
42
+ const cycleType = ensureString(obj.type, `${label}.type`, "").trim();
43
+ if (!VALID_BILLING_CYCLE_TYPES.has(cycleType)) {
44
+ throw new Error(`${label}.type must be one of: weekly, biweekly, monthly, custom`);
45
+ }
46
+ const anchorDate = ensureString(obj.anchorDate, `${label}.anchorDate`, "").trim();
47
+ if (!anchorDate || !/^\d{4}-\d{2}-\d{2}$/.test(anchorDate)) {
48
+ throw new Error(`${label}.anchorDate must be a valid YYYY-MM-DD date`);
49
+ }
50
+ return { type: cycleType, anchorDate };
51
+ }
35
52
  export function validateClientConfig(value, indexLabel = "client") {
36
53
  const client = ensureObject(value, indexLabel);
54
+ const billingCycle = client.billingCycle !== undefined
55
+ ? validateBillingCycle(client.billingCycle, `${indexLabel}.billingCycle`)
56
+ : undefined;
37
57
  return {
38
58
  name: ensureString(client.name, `${indexLabel}.name`).trim(),
39
59
  email: ensureString(client.email, `${indexLabel}.email`, "").trim(),
@@ -41,6 +61,8 @@ export function validateClientConfig(value, indexLabel = "client") {
41
61
  currency: ensureString(client.currency, `${indexLabel}.currency`, "USD") || "USD",
42
62
  defaultRate: ensureOptionalNumber(client.defaultRate, `${indexLabel}.defaultRate`, 0),
43
63
  payPeriodType: ensureString(client.payPeriodType, `${indexLabel}.payPeriodType`, "").trim(),
64
+ billingCycle,
65
+ paymentTerms: ensureString(client.paymentTerms, `${indexLabel}.paymentTerms`, "").trim() || undefined,
44
66
  };
45
67
  }
46
68
  export function validateConfig(value) {
@@ -133,4 +155,52 @@ export function validateArchiveData(value) {
133
155
  archivedEntries: archivedRaw.map((entry, index) => validateArchivedEntry(entry, `archive.archivedEntries[${index}]`)),
134
156
  };
135
157
  }
158
+ // ── Invoice Drafts ──────────────────────────────────────────────
159
+ function validateDraftLineItem(value, label) {
160
+ const obj = ensureObject(value, label);
161
+ return {
162
+ description: ensureString(obj.description, `${label}.description`, ""),
163
+ hours: ensureOptionalNumber(obj.hours, `${label}.hours`, 0),
164
+ rate: ensureOptionalNumber(obj.rate, `${label}.rate`, 0),
165
+ amount: ensureOptionalNumber(obj.amount, `${label}.amount`, 0),
166
+ };
167
+ }
168
+ function validateInvoiceDraft(value, label) {
169
+ const obj = ensureObject(value, label);
170
+ const status = ensureString(obj.status, `${label}.status`, "draft");
171
+ if (!VALID_DRAFT_STATUSES.has(status)) {
172
+ throw new Error(`${label}.status must be one of: draft, confirmed, scheduled, sent, failed`);
173
+ }
174
+ const lineItemsRaw = obj.lineItems ?? [];
175
+ if (!Array.isArray(lineItemsRaw)) {
176
+ throw new Error(`${label}.lineItems must be an array`);
177
+ }
178
+ return {
179
+ id: ensureString(obj.id, `${label}.id`),
180
+ client: ensureString(obj.client, `${label}.client`),
181
+ status: status,
182
+ invoiceNumber: ensureString(obj.invoiceNumber, `${label}.invoiceNumber`, ""),
183
+ periodFrom: ensureString(obj.periodFrom, `${label}.periodFrom`, ""),
184
+ periodTo: ensureString(obj.periodTo, `${label}.periodTo`, ""),
185
+ invoiceDate: ensureString(obj.invoiceDate, `${label}.invoiceDate`, ""),
186
+ lineItems: lineItemsRaw.map((item, i) => validateDraftLineItem(item, `${label}.lineItems[${i}]`)),
187
+ total: ensureOptionalNumber(obj.total, `${label}.total`, 0),
188
+ currency: ensureString(obj.currency, `${label}.currency`, "USD"),
189
+ paymentTerms: ensureString(obj.paymentTerms, `${label}.paymentTerms`, ""),
190
+ pdfPath: obj.pdfPath === null || obj.pdfPath === undefined ? null : ensureString(obj.pdfPath, `${label}.pdfPath`),
191
+ scheduledSendDate: obj.scheduledSendDate === null || obj.scheduledSendDate === undefined ? null : ensureString(obj.scheduledSendDate, `${label}.scheduledSendDate`),
192
+ sentAt: obj.sentAt === null || obj.sentAt === undefined ? null : ensureString(obj.sentAt, `${label}.sentAt`),
193
+ createdAt: ensureString(obj.createdAt, `${label}.createdAt`, new Date().toISOString()),
194
+ };
195
+ }
196
+ export function validateDraftsData(value) {
197
+ const obj = ensureObject(value, "drafts");
198
+ const draftsRaw = obj.drafts ?? [];
199
+ if (!Array.isArray(draftsRaw)) {
200
+ throw new Error("drafts.drafts must be an array");
201
+ }
202
+ return {
203
+ drafts: draftsRaw.map((draft, index) => validateInvoiceDraft(draft, `drafts[${index}]`)),
204
+ };
205
+ }
136
206
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/core/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/core/validators.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ // ── Billing Cycle ────────────────────────────────────────────────
1
2
  export {};
2
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"AAAA,oEAAoE"}
@@ -0,0 +1,211 @@
1
+ import { loadJsonFile, writeJsonFile } from "../core/json-store.js";
2
+ import { validateConfig, validateDraftsData, validateLastState } from "../core/validators.js";
3
+ import { resolveInvoiceNumber, getInvoiceDate } from "./invoice-number.js";
4
+ import { readTimesheetEntries, aggregateEntriesByDescription } from "./timesheet.js";
5
+ // ── Helpers ──────────────────────────────────────────────────────
6
+ function addDays(date, days) {
7
+ const result = new Date(date);
8
+ result.setDate(result.getDate() + days);
9
+ return result;
10
+ }
11
+ function toISO(date) {
12
+ return date.toISOString().slice(0, 10);
13
+ }
14
+ function parseDate(dateStr) {
15
+ const [y, m, d] = dateStr.split("-").map(Number);
16
+ return new Date(y, m - 1, d);
17
+ }
18
+ function round2(value) {
19
+ return Math.round(value * 100) / 100;
20
+ }
21
+ // ── Billing Cycle Logic ──────────────────────────────────────────
22
+ function getCycleLengthDays(type) {
23
+ switch (type) {
24
+ case "weekly": return 7;
25
+ case "biweekly": return 14;
26
+ case "monthly": return 0; // special: month boundaries
27
+ case "custom": return 0; // user-defined, needs anchorDate logic
28
+ default: return 0;
29
+ }
30
+ }
31
+ function addOneMonth(date) {
32
+ const result = new Date(date);
33
+ result.setMonth(result.getMonth() + 1);
34
+ return result;
35
+ }
36
+ /**
37
+ * Compute all completed billing periods between anchorDate and today.
38
+ * Returns only periods that have already ended (periodTo < today).
39
+ */
40
+ export function getCompletedPeriods(cycle, today = new Date()) {
41
+ const anchor = parseDate(cycle.anchorDate);
42
+ const todayDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
43
+ const periods = [];
44
+ if (cycle.type === "monthly") {
45
+ let periodStart = anchor;
46
+ while (periodStart < todayDate) {
47
+ const periodEnd = addDays(addOneMonth(periodStart), -1);
48
+ if (periodEnd < todayDate) {
49
+ periods.push({ periodFrom: toISO(periodStart), periodTo: toISO(periodEnd) });
50
+ }
51
+ periodStart = addOneMonth(periodStart);
52
+ }
53
+ return periods;
54
+ }
55
+ const days = getCycleLengthDays(cycle.type);
56
+ if (days <= 0)
57
+ return periods;
58
+ let periodStart = anchor;
59
+ while (periodStart < todayDate) {
60
+ const periodEnd = addDays(periodStart, days - 1);
61
+ if (periodEnd < todayDate) {
62
+ periods.push({ periodFrom: toISO(periodStart), periodTo: toISO(periodEnd) });
63
+ }
64
+ periodStart = addDays(periodStart, days);
65
+ }
66
+ return periods;
67
+ }
68
+ // ── Drafts CRUD ──────────────────────────────────────────────────
69
+ export function loadDrafts(paths) {
70
+ return loadJsonFile(paths.draftsPath, { drafts: [] }, validateDraftsData);
71
+ }
72
+ export function saveDrafts(paths, data) {
73
+ writeJsonFile(paths.draftsPath, data);
74
+ }
75
+ function loadConfig(paths) {
76
+ return loadJsonFile(paths.configPath, { client: [], from: {} }, validateConfig);
77
+ }
78
+ function loadLastState(paths) {
79
+ return loadJsonFile(paths.lastPath, { clients: {} }, validateLastState);
80
+ }
81
+ // ── Auto-Generate Drafts ─────────────────────────────────────────
82
+ /**
83
+ * Check all clients with billingCycle configured.
84
+ * For each completed period that doesn't already have a draft, create one.
85
+ * Returns the newly created drafts.
86
+ */
87
+ export function checkAndGenerateDueDrafts(paths) {
88
+ const cfg = loadConfig(paths);
89
+ const last = loadLastState(paths);
90
+ const draftsData = loadDrafts(paths);
91
+ const newDrafts = [];
92
+ for (const client of cfg.client) {
93
+ if (!client.billingCycle)
94
+ continue;
95
+ const completedPeriods = getCompletedPeriods(client.billingCycle);
96
+ for (const period of completedPeriods) {
97
+ // Skip if a draft already exists for this client + period
98
+ const exists = draftsData.drafts.some((d) => d.client === client.name && d.periodFrom === period.periodFrom && d.periodTo === period.periodTo);
99
+ if (exists)
100
+ continue;
101
+ // Get timesheet entries within this period
102
+ const entries = readTimesheetEntries(paths, { client: client.name });
103
+ const periodEntries = entries.filter((e) => e.date >= period.periodFrom && e.date <= period.periodTo);
104
+ if (periodEntries.length === 0)
105
+ continue;
106
+ const draft = createDraftFromEntries({
107
+ client,
108
+ entries: periodEntries,
109
+ period,
110
+ cfg,
111
+ last,
112
+ });
113
+ newDrafts.push(draft);
114
+ draftsData.drafts.push(draft);
115
+ }
116
+ }
117
+ if (newDrafts.length > 0) {
118
+ saveDrafts(paths, draftsData);
119
+ writeJsonFile(paths.lastPath, last);
120
+ }
121
+ return newDrafts;
122
+ }
123
+ export function createDraftFromEntries(params) {
124
+ const { client, entries, period, cfg, last } = params;
125
+ // Aggregate entries by description
126
+ const groups = aggregateEntriesByDescription(entries);
127
+ const lineItems = groups.map((g) => ({
128
+ description: g.description,
129
+ hours: round2(g.hours),
130
+ rate: round2(g.rate),
131
+ amount: round2(g.amount),
132
+ }));
133
+ const total = round2(lineItems.reduce((sum, item) => sum + item.amount, 0));
134
+ const currency = client.currency?.trim() || "USD";
135
+ // Resolve the month from the period for invoice numbering
136
+ const month = period.periodFrom.slice(0, 7);
137
+ // Get client history for sequencing
138
+ if (!last.clients[client.name]) {
139
+ last.clients[client.name] = { lastHours: 0, lastRate: 0, seqByMonth: {} };
140
+ }
141
+ const clientHistory = last.clients[client.name];
142
+ const invoiceNumber = resolveInvoiceNumber({
143
+ month,
144
+ invoicePrefix: cfg.invoicePrefix,
145
+ seqByMonth: clientHistory.seqByMonth,
146
+ });
147
+ return {
148
+ id: `draft-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
149
+ client: client.name,
150
+ status: "draft",
151
+ invoiceNumber,
152
+ periodFrom: period.periodFrom,
153
+ periodTo: period.periodTo,
154
+ invoiceDate: getInvoiceDate(),
155
+ lineItems,
156
+ total,
157
+ currency,
158
+ paymentTerms: client.paymentTerms || client.payPeriodType || "",
159
+ pdfPath: null,
160
+ scheduledSendDate: null,
161
+ sentAt: null,
162
+ createdAt: new Date().toISOString(),
163
+ };
164
+ }
165
+ // ── Draft Actions ────────────────────────────────────────────────
166
+ export function getDraftById(paths, draftId) {
167
+ const data = loadDrafts(paths);
168
+ return data.drafts.find((d) => d.id === draftId);
169
+ }
170
+ export function updateDraft(paths, draftId, updates) {
171
+ const data = loadDrafts(paths);
172
+ const index = data.drafts.findIndex((d) => d.id === draftId);
173
+ if (index === -1)
174
+ throw new Error(`Draft not found: ${draftId}`);
175
+ const draft = { ...data.drafts[index], ...updates };
176
+ data.drafts[index] = draft;
177
+ saveDrafts(paths, data);
178
+ return draft;
179
+ }
180
+ export function deleteDraft(paths, draftId) {
181
+ const data = loadDrafts(paths);
182
+ const index = data.drafts.findIndex((d) => d.id === draftId);
183
+ if (index === -1)
184
+ throw new Error(`Draft not found: ${draftId}`);
185
+ data.drafts.splice(index, 1);
186
+ saveDrafts(paths, data);
187
+ }
188
+ export function confirmDraft(paths, draftId) {
189
+ return updateDraft(paths, draftId, { status: "confirmed" });
190
+ }
191
+ export function scheduleDraft(paths, draftId, sendDate) {
192
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(sendDate)) {
193
+ throw new Error("Send date must be YYYY-MM-DD format");
194
+ }
195
+ return updateDraft(paths, draftId, { status: "scheduled", scheduledSendDate: sendDate });
196
+ }
197
+ export function markDraftSent(paths, draftId) {
198
+ return updateDraft(paths, draftId, { status: "sent", sentAt: new Date().toISOString() });
199
+ }
200
+ export function markDraftFailed(paths, draftId) {
201
+ return updateDraft(paths, draftId, { status: "failed" });
202
+ }
203
+ /**
204
+ * Find drafts that are scheduled and due for sending (scheduledSendDate <= today).
205
+ */
206
+ export function getDueScheduledDrafts(paths, today = new Date()) {
207
+ const data = loadDrafts(paths);
208
+ const todayStr = toISO(today);
209
+ return data.drafts.filter((d) => d.status === "scheduled" && d.scheduledSendDate && d.scheduledSendDate <= todayStr);
210
+ }
211
+ //# sourceMappingURL=draft-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-service.js","sourceRoot":"","sources":["../../src/services/draft-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicer/cli",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "Professional invoice generator with timesheet integration and CLI support",
5
5
  "homepage": "https://invoicer.inbrief.sh/",
6
6
  "repository": {