storno-cli 1.0.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.
Files changed (188) hide show
  1. package/LICENSE +53 -0
  2. package/README.md +257 -0
  3. package/TOOLS.md +3309 -0
  4. package/dist/client.d.ts +42 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +162 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/config.d.ts +22 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +30 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/index.d.ts +37 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +172 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/tools/accounting-export.d.ts +14 -0
  17. package/dist/tools/accounting-export.d.ts.map +1 -0
  18. package/dist/tools/accounting-export.js +97 -0
  19. package/dist/tools/accounting-export.js.map +1 -0
  20. package/dist/tools/admin.d.ts +8 -0
  21. package/dist/tools/admin.d.ts.map +1 -0
  22. package/dist/tools/admin.js +98 -0
  23. package/dist/tools/admin.js.map +1 -0
  24. package/dist/tools/anaf.d.ts +8 -0
  25. package/dist/tools/anaf.d.ts.map +1 -0
  26. package/dist/tools/anaf.js +115 -0
  27. package/dist/tools/anaf.js.map +1 -0
  28. package/dist/tools/api-keys.d.ts +8 -0
  29. package/dist/tools/api-keys.d.ts.map +1 -0
  30. package/dist/tools/api-keys.js +29 -0
  31. package/dist/tools/api-keys.js.map +1 -0
  32. package/dist/tools/auth.d.ts +8 -0
  33. package/dist/tools/auth.d.ts.map +1 -0
  34. package/dist/tools/auth.js +187 -0
  35. package/dist/tools/auth.js.map +1 -0
  36. package/dist/tools/backup.d.ts +62 -0
  37. package/dist/tools/backup.d.ts.map +1 -0
  38. package/dist/tools/backup.js +167 -0
  39. package/dist/tools/backup.js.map +1 -0
  40. package/dist/tools/bank-accounts.d.ts +14 -0
  41. package/dist/tools/bank-accounts.d.ts.map +1 -0
  42. package/dist/tools/bank-accounts.js +140 -0
  43. package/dist/tools/bank-accounts.js.map +1 -0
  44. package/dist/tools/borderou.d.ts +14 -0
  45. package/dist/tools/borderou.d.ts.map +1 -0
  46. package/dist/tools/borderou.js +233 -0
  47. package/dist/tools/borderou.js.map +1 -0
  48. package/dist/tools/clients.d.ts +14 -0
  49. package/dist/tools/clients.d.ts.map +1 -0
  50. package/dist/tools/clients.js +353 -0
  51. package/dist/tools/clients.js.map +1 -0
  52. package/dist/tools/companies.d.ts +8 -0
  53. package/dist/tools/companies.d.ts.map +1 -0
  54. package/dist/tools/companies.js +211 -0
  55. package/dist/tools/companies.js.map +1 -0
  56. package/dist/tools/company-registry.d.ts +31 -0
  57. package/dist/tools/company-registry.d.ts.map +1 -0
  58. package/dist/tools/company-registry.js +51 -0
  59. package/dist/tools/company-registry.js.map +1 -0
  60. package/dist/tools/cpv-codes.d.ts +17 -0
  61. package/dist/tools/cpv-codes.d.ts.map +1 -0
  62. package/dist/tools/cpv-codes.js +28 -0
  63. package/dist/tools/cpv-codes.js.map +1 -0
  64. package/dist/tools/dashboard.d.ts +23 -0
  65. package/dist/tools/dashboard.d.ts.map +1 -0
  66. package/dist/tools/dashboard.js +37 -0
  67. package/dist/tools/dashboard.js.map +1 -0
  68. package/dist/tools/defaults.d.ts +14 -0
  69. package/dist/tools/defaults.d.ts.map +1 -0
  70. package/dist/tools/defaults.js +29 -0
  71. package/dist/tools/defaults.js.map +1 -0
  72. package/dist/tools/delivery-notes.d.ts +185 -0
  73. package/dist/tools/delivery-notes.d.ts.map +1 -0
  74. package/dist/tools/delivery-notes.js +525 -0
  75. package/dist/tools/delivery-notes.js.map +1 -0
  76. package/dist/tools/document-series.d.ts +54 -0
  77. package/dist/tools/document-series.d.ts.map +1 -0
  78. package/dist/tools/document-series.js +171 -0
  79. package/dist/tools/document-series.js.map +1 -0
  80. package/dist/tools/efactura-messages.d.ts +34 -0
  81. package/dist/tools/efactura-messages.d.ts.map +1 -0
  82. package/dist/tools/efactura-messages.js +51 -0
  83. package/dist/tools/efactura-messages.js.map +1 -0
  84. package/dist/tools/einvoice.d.ts +8 -0
  85. package/dist/tools/einvoice.d.ts.map +1 -0
  86. package/dist/tools/einvoice.js +170 -0
  87. package/dist/tools/einvoice.js.map +1 -0
  88. package/dist/tools/email-templates.d.ts +14 -0
  89. package/dist/tools/email-templates.d.ts.map +1 -0
  90. package/dist/tools/email-templates.js +104 -0
  91. package/dist/tools/email-templates.js.map +1 -0
  92. package/dist/tools/exchange-rates.d.ts +14 -0
  93. package/dist/tools/exchange-rates.d.ts.map +1 -0
  94. package/dist/tools/exchange-rates.js +55 -0
  95. package/dist/tools/exchange-rates.js.map +1 -0
  96. package/dist/tools/exports.d.ts +14 -0
  97. package/dist/tools/exports.d.ts.map +1 -0
  98. package/dist/tools/exports.js +25 -0
  99. package/dist/tools/exports.js.map +1 -0
  100. package/dist/tools/import.d.ts +14 -0
  101. package/dist/tools/import.d.ts.map +1 -0
  102. package/dist/tools/import.js +221 -0
  103. package/dist/tools/import.js.map +1 -0
  104. package/dist/tools/invitations.d.ts +8 -0
  105. package/dist/tools/invitations.d.ts.map +1 -0
  106. package/dist/tools/invitations.js +70 -0
  107. package/dist/tools/invitations.js.map +1 -0
  108. package/dist/tools/invoices.d.ts +14 -0
  109. package/dist/tools/invoices.d.ts.map +1 -0
  110. package/dist/tools/invoices.js +1191 -0
  111. package/dist/tools/invoices.js.map +1 -0
  112. package/dist/tools/licensing.d.ts +8 -0
  113. package/dist/tools/licensing.d.ts.map +1 -0
  114. package/dist/tools/licensing.js +90 -0
  115. package/dist/tools/licensing.js.map +1 -0
  116. package/dist/tools/members.d.ts +8 -0
  117. package/dist/tools/members.d.ts.map +1 -0
  118. package/dist/tools/members.js +79 -0
  119. package/dist/tools/members.js.map +1 -0
  120. package/dist/tools/nc-codes.d.ts +17 -0
  121. package/dist/tools/nc-codes.d.ts.map +1 -0
  122. package/dist/tools/nc-codes.js +28 -0
  123. package/dist/tools/nc-codes.js.map +1 -0
  124. package/dist/tools/notifications.d.ts +8 -0
  125. package/dist/tools/notifications.d.ts.map +1 -0
  126. package/dist/tools/notifications.js +111 -0
  127. package/dist/tools/notifications.js.map +1 -0
  128. package/dist/tools/oauth2-clients.d.ts +8 -0
  129. package/dist/tools/oauth2-clients.d.ts.map +1 -0
  130. package/dist/tools/oauth2-clients.js +147 -0
  131. package/dist/tools/oauth2-clients.js.map +1 -0
  132. package/dist/tools/payments.d.ts +17 -0
  133. package/dist/tools/payments.d.ts.map +1 -0
  134. package/dist/tools/payments.js +109 -0
  135. package/dist/tools/payments.js.map +1 -0
  136. package/dist/tools/pdf-template-config.d.ts +14 -0
  137. package/dist/tools/pdf-template-config.d.ts.map +1 -0
  138. package/dist/tools/pdf-template-config.js +131 -0
  139. package/dist/tools/pdf-template-config.js.map +1 -0
  140. package/dist/tools/products.d.ts +40 -0
  141. package/dist/tools/products.d.ts.map +1 -0
  142. package/dist/tools/products.js +73 -0
  143. package/dist/tools/products.js.map +1 -0
  144. package/dist/tools/proforma-invoices.d.ts +198 -0
  145. package/dist/tools/proforma-invoices.d.ts.map +1 -0
  146. package/dist/tools/proforma-invoices.js +378 -0
  147. package/dist/tools/proforma-invoices.js.map +1 -0
  148. package/dist/tools/receipts.d.ts +166 -0
  149. package/dist/tools/receipts.d.ts.map +1 -0
  150. package/dist/tools/receipts.js +397 -0
  151. package/dist/tools/receipts.js.map +1 -0
  152. package/dist/tools/recurring-invoices.d.ts +187 -0
  153. package/dist/tools/recurring-invoices.d.ts.map +1 -0
  154. package/dist/tools/recurring-invoices.js +305 -0
  155. package/dist/tools/recurring-invoices.js.map +1 -0
  156. package/dist/tools/reports.d.ts +48 -0
  157. package/dist/tools/reports.d.ts.map +1 -0
  158. package/dist/tools/reports.js +200 -0
  159. package/dist/tools/reports.js.map +1 -0
  160. package/dist/tools/storage-config.d.ts +8 -0
  161. package/dist/tools/storage-config.d.ts.map +1 -0
  162. package/dist/tools/storage-config.js +117 -0
  163. package/dist/tools/storage-config.js.map +1 -0
  164. package/dist/tools/suppliers.d.ts +14 -0
  165. package/dist/tools/suppliers.d.ts.map +1 -0
  166. package/dist/tools/suppliers.js +205 -0
  167. package/dist/tools/suppliers.js.map +1 -0
  168. package/dist/tools/system.d.ts +8 -0
  169. package/dist/tools/system.d.ts.map +1 -0
  170. package/dist/tools/system.js +24 -0
  171. package/dist/tools/system.js.map +1 -0
  172. package/dist/tools/vat-rates.d.ts +14 -0
  173. package/dist/tools/vat-rates.d.ts.map +1 -0
  174. package/dist/tools/vat-rates.js +145 -0
  175. package/dist/tools/vat-rates.js.map +1 -0
  176. package/dist/tools/webhooks.d.ts +8 -0
  177. package/dist/tools/webhooks.d.ts.map +1 -0
  178. package/dist/tools/webhooks.js +305 -0
  179. package/dist/tools/webhooks.js.map +1 -0
  180. package/dist/utils/errors.d.ts +18 -0
  181. package/dist/utils/errors.d.ts.map +1 -0
  182. package/dist/utils/errors.js +45 -0
  183. package/dist/utils/errors.js.map +1 -0
  184. package/dist/utils/pagination.d.ts +9 -0
  185. package/dist/utils/pagination.d.ts.map +1 -0
  186. package/dist/utils/pagination.js +10 -0
  187. package/dist/utils/pagination.js.map +1 -0
  188. package/package.json +52 -0
@@ -0,0 +1,378 @@
1
+ import { z } from 'zod';
2
+ import { apiRequest } from '../client.js';
3
+ import { formatResponse, notAuthenticated, noCompanySelected } from '../utils/errors.js';
4
+ import { getConfig } from '../config.js';
5
+ const lineItemSchema = z.object({
6
+ uuid: z.string().optional().describe('UUID of existing line item (omit to create new)'),
7
+ description: z.string().describe('Item description'),
8
+ quantity: z.number().describe('Quantity (must be > 0)'),
9
+ unitPrice: z.number().describe('Price per unit'),
10
+ vatRateId: z.string().describe('UUID of the VAT rate'),
11
+ unitOfMeasure: z.string().optional().describe('Unit of measure (e.g., hour, piece, kg)'),
12
+ productId: z.string().optional().describe('UUID of related product'),
13
+ discount: z.number().optional().describe('Absolute discount amount'),
14
+ discountPercent: z.number().optional().describe('Discount percentage (0-100)'),
15
+ vatIncluded: z.boolean().optional().describe('Whether unit price includes VAT (default: false)'),
16
+ });
17
+ export const tools = [
18
+ {
19
+ name: 'proforma_invoices_list',
20
+ description: 'List proforma invoices for the selected company with optional filtering by status, date range, client, and search term. Returns paginated results.',
21
+ inputSchema: z.object({
22
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
23
+ page: z.number().optional().describe('Page number (default: 1)'),
24
+ limit: z.number().optional().describe('Items per page (default: 20, max: 100)'),
25
+ search: z.string().optional().describe('Search term for invoice number or client name'),
26
+ status: z
27
+ .enum(['draft', 'sent', 'accepted', 'rejected', 'converted', 'cancelled'])
28
+ .optional()
29
+ .describe('Filter by status'),
30
+ from: z.string().optional().describe('Start date filter (YYYY-MM-DD)'),
31
+ to: z.string().optional().describe('End date filter (YYYY-MM-DD)'),
32
+ clientId: z.string().optional().describe('Filter by client UUID'),
33
+ sort: z.string().optional().describe('Sort field'),
34
+ order: z.enum(['asc', 'desc']).optional().describe('Sort order'),
35
+ }),
36
+ handler: async (params) => {
37
+ const config = getConfig();
38
+ if (!config.token)
39
+ return notAuthenticated();
40
+ const companyId = params.companyId || config.companyId;
41
+ if (!companyId)
42
+ return noCompanySelected();
43
+ const res = await apiRequest('/api/v1/proforma-invoices', {
44
+ companyId,
45
+ query: {
46
+ page: params.page,
47
+ limit: params.limit,
48
+ search: params.search,
49
+ status: params.status,
50
+ from: params.from,
51
+ to: params.to,
52
+ clientId: params.clientId,
53
+ sort: params.sort,
54
+ order: params.order,
55
+ },
56
+ });
57
+ return formatResponse(res);
58
+ },
59
+ },
60
+ {
61
+ name: 'proforma_invoices_get',
62
+ description: 'Get complete details for a specific proforma invoice including all line items, client information, and calculated totals.',
63
+ inputSchema: z.object({
64
+ uuid: z.string().describe('UUID of the proforma invoice to retrieve'),
65
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
66
+ }),
67
+ handler: async (params) => {
68
+ const config = getConfig();
69
+ if (!config.token)
70
+ return notAuthenticated();
71
+ const companyId = params.companyId || config.companyId;
72
+ if (!companyId)
73
+ return noCompanySelected();
74
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}`, { companyId });
75
+ return formatResponse(res);
76
+ },
77
+ },
78
+ {
79
+ name: 'proforma_invoices_create',
80
+ description: 'Create a new proforma invoice in draft status with line items. Supports multiple currencies, discounts, and optional references.',
81
+ inputSchema: z.object({
82
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
83
+ clientId: z.string().describe('UUID of the client'),
84
+ seriesId: z.string().describe('UUID of the invoice series configured for proforma invoices'),
85
+ issueDate: z.string().describe('Date of issue (YYYY-MM-DD)'),
86
+ dueDate: z.string().describe('Payment due date (YYYY-MM-DD)'),
87
+ validUntil: z.string().describe('Valid until date (YYYY-MM-DD)'),
88
+ currency: z.string().describe('Currency code (e.g., RON, EUR, USD)'),
89
+ exchangeRate: z.number().optional().describe('Exchange rate to base currency (default: 1.0 for RON)'),
90
+ invoiceTypeCode: z.string().optional().describe('Invoice type code (default: "380" - Commercial Invoice)'),
91
+ notes: z.string().optional().describe('Public notes visible to client'),
92
+ paymentTerms: z.string().optional().describe('Payment terms description (e.g., "Net 30")'),
93
+ deliveryLocation: z.string().optional().describe('Delivery address or location'),
94
+ projectReference: z.string().optional().describe('Related project reference'),
95
+ orderNumber: z.string().optional().describe('Client purchase order number'),
96
+ contractNumber: z.string().optional().describe('Related contract number'),
97
+ issuerName: z.string().optional().describe('Name of person issuing the proforma'),
98
+ issuerId: z.string().optional().describe('UUID of the issuer user'),
99
+ mentions: z.string().optional().describe('Additional mentions or notes'),
100
+ internalNote: z.string().optional().describe('Internal note (not visible to client)'),
101
+ salesAgent: z.string().optional().describe('Sales agent name'),
102
+ language: z
103
+ .enum(['ro', 'en', 'de', 'fr'])
104
+ .optional()
105
+ .describe('Document language for PDF generation (default: ro)'),
106
+ lines: z.array(lineItemSchema).describe('Array of line items (minimum 1 required)'),
107
+ }),
108
+ handler: async (params) => {
109
+ const config = getConfig();
110
+ if (!config.token)
111
+ return notAuthenticated();
112
+ const companyId = params.companyId || config.companyId;
113
+ if (!companyId)
114
+ return noCompanySelected();
115
+ const { companyId: _cid, ...body } = params;
116
+ const res = await apiRequest('/api/v1/proforma-invoices', {
117
+ method: 'POST',
118
+ companyId,
119
+ body: body,
120
+ });
121
+ return formatResponse(res);
122
+ },
123
+ },
124
+ {
125
+ name: 'proforma_invoices_update',
126
+ description: 'Update an existing proforma invoice. Only invoices in draft status can be updated. Replaces all line items with the provided array.',
127
+ inputSchema: z.object({
128
+ uuid: z.string().describe('UUID of the proforma invoice to update'),
129
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
130
+ clientId: z.string().describe('UUID of the client'),
131
+ seriesId: z.string().describe('UUID of the invoice series'),
132
+ issueDate: z.string().describe('Date of issue (YYYY-MM-DD)'),
133
+ dueDate: z.string().describe('Payment due date (YYYY-MM-DD)'),
134
+ validUntil: z.string().describe('Valid until date (YYYY-MM-DD)'),
135
+ currency: z.string().describe('Currency code (e.g., RON, EUR, USD)'),
136
+ exchangeRate: z.number().optional().describe('Exchange rate to base currency'),
137
+ invoiceTypeCode: z.string().optional().describe('Invoice type code'),
138
+ notes: z.string().optional().describe('Public notes visible to client'),
139
+ paymentTerms: z.string().optional().describe('Payment terms description'),
140
+ deliveryLocation: z.string().optional().describe('Delivery address or location'),
141
+ projectReference: z.string().optional().describe('Related project reference'),
142
+ orderNumber: z.string().optional().describe('Client purchase order number'),
143
+ contractNumber: z.string().optional().describe('Related contract number'),
144
+ issuerName: z.string().optional().describe('Name of person issuing the proforma'),
145
+ issuerId: z.string().optional().describe('UUID of the issuer user'),
146
+ mentions: z.string().optional().describe('Additional mentions or notes'),
147
+ internalNote: z.string().optional().describe('Internal note (not visible to client)'),
148
+ salesAgent: z.string().optional().describe('Sales agent name'),
149
+ language: z
150
+ .enum(['ro', 'en', 'de', 'fr'])
151
+ .optional()
152
+ .describe('Document language for PDF generation (default: ro)'),
153
+ lines: z.array(lineItemSchema).describe('Array of line items (replaces all existing lines)'),
154
+ }),
155
+ handler: async (params) => {
156
+ const config = getConfig();
157
+ if (!config.token)
158
+ return notAuthenticated();
159
+ const companyId = params.companyId || config.companyId;
160
+ if (!companyId)
161
+ return noCompanySelected();
162
+ const { uuid, companyId: _cid, ...body } = params;
163
+ const res = await apiRequest(`/api/v1/proforma-invoices/${uuid}`, {
164
+ method: 'PUT',
165
+ companyId,
166
+ body: body,
167
+ });
168
+ return formatResponse(res);
169
+ },
170
+ },
171
+ {
172
+ name: 'proforma_invoices_delete',
173
+ description: 'Permanently delete a proforma invoice. Only draft proforma invoices can be deleted. Use cancel for sent/accepted/rejected proformas to preserve audit trail.',
174
+ inputSchema: z.object({
175
+ uuid: z.string().describe('UUID of the proforma invoice to delete'),
176
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
177
+ }),
178
+ handler: async (params) => {
179
+ const config = getConfig();
180
+ if (!config.token)
181
+ return notAuthenticated();
182
+ const companyId = params.companyId || config.companyId;
183
+ if (!companyId)
184
+ return noCompanySelected();
185
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}`, {
186
+ method: 'DELETE',
187
+ companyId,
188
+ });
189
+ return formatResponse(res);
190
+ },
191
+ },
192
+ {
193
+ name: 'proforma_invoices_send',
194
+ description: 'Mark a proforma invoice as sent to the client. Transitions status from draft to sent. Once sent, the proforma becomes read-only.',
195
+ inputSchema: z.object({
196
+ uuid: z.string().describe('UUID of the proforma invoice to mark as sent'),
197
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
198
+ }),
199
+ handler: async (params) => {
200
+ const config = getConfig();
201
+ if (!config.token)
202
+ return notAuthenticated();
203
+ const companyId = params.companyId || config.companyId;
204
+ if (!companyId)
205
+ return noCompanySelected();
206
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}/send`, {
207
+ method: 'POST',
208
+ companyId,
209
+ });
210
+ return formatResponse(res);
211
+ },
212
+ },
213
+ {
214
+ name: 'proforma_invoices_accept',
215
+ description: 'Mark a proforma invoice as accepted by the client. Transitions status to accepted. Once accepted, the proforma is ready to be converted to a final invoice.',
216
+ inputSchema: z.object({
217
+ uuid: z.string().describe('UUID of the proforma invoice to mark as accepted'),
218
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
219
+ }),
220
+ handler: async (params) => {
221
+ const config = getConfig();
222
+ if (!config.token)
223
+ return notAuthenticated();
224
+ const companyId = params.companyId || config.companyId;
225
+ if (!companyId)
226
+ return noCompanySelected();
227
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}/accept`, {
228
+ method: 'POST',
229
+ companyId,
230
+ });
231
+ return formatResponse(res);
232
+ },
233
+ },
234
+ {
235
+ name: 'proforma_invoices_reject',
236
+ description: 'Mark a proforma invoice as rejected by the client. Optionally provide a rejection reason and notes. Once rejected, the proforma cannot be converted to an invoice.',
237
+ inputSchema: z.object({
238
+ uuid: z.string().describe('UUID of the proforma invoice to mark as rejected'),
239
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
240
+ rejectionReason: z.string().optional().describe('Reason for rejection provided by the client'),
241
+ rejectionNotes: z.string().optional().describe('Internal notes about the rejection'),
242
+ }),
243
+ handler: async (params) => {
244
+ const config = getConfig();
245
+ if (!config.token)
246
+ return notAuthenticated();
247
+ const companyId = params.companyId || config.companyId;
248
+ if (!companyId)
249
+ return noCompanySelected();
250
+ const body = {};
251
+ if (params.rejectionReason)
252
+ body.rejectionReason = params.rejectionReason;
253
+ if (params.rejectionNotes)
254
+ body.rejectionNotes = params.rejectionNotes;
255
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}/reject`, {
256
+ method: 'POST',
257
+ companyId,
258
+ body: Object.keys(body).length > 0 ? body : undefined,
259
+ });
260
+ return formatResponse(res);
261
+ },
262
+ },
263
+ {
264
+ name: 'proforma_invoices_cancel',
265
+ description: 'Cancel a proforma invoice. Can be cancelled from any status except converted or already cancelled. Preserves historical record unlike deletion.',
266
+ inputSchema: z.object({
267
+ uuid: z.string().describe('UUID of the proforma invoice to cancel'),
268
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
269
+ cancellationReason: z.string().optional().describe('Reason for cancellation'),
270
+ cancellationNotes: z.string().optional().describe('Internal notes about the cancellation'),
271
+ }),
272
+ handler: async (params) => {
273
+ const config = getConfig();
274
+ if (!config.token)
275
+ return notAuthenticated();
276
+ const companyId = params.companyId || config.companyId;
277
+ if (!companyId)
278
+ return noCompanySelected();
279
+ const body = {};
280
+ if (params.cancellationReason)
281
+ body.cancellationReason = params.cancellationReason;
282
+ if (params.cancellationNotes)
283
+ body.cancellationNotes = params.cancellationNotes;
284
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}/cancel`, {
285
+ method: 'POST',
286
+ companyId,
287
+ body: Object.keys(body).length > 0 ? body : undefined,
288
+ });
289
+ return formatResponse(res);
290
+ },
291
+ },
292
+ {
293
+ name: 'proforma_invoices_convert',
294
+ description: 'Convert a proforma invoice into a final invoice. Creates a new invoice with all proforma data, marks proforma as converted, and links the two documents. Returns both the new invoice and updated proforma.',
295
+ inputSchema: z.object({
296
+ uuid: z.string().describe('UUID of the proforma invoice to convert'),
297
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
298
+ invoiceSeriesId: z
299
+ .string()
300
+ .optional()
301
+ .describe('UUID of invoice series to use (if different from proforma series)'),
302
+ issueDate: z.string().optional().describe('Override issue date for the new invoice (default: today, YYYY-MM-DD)'),
303
+ dueDate: z
304
+ .string()
305
+ .optional()
306
+ .describe('Override due date for the new invoice (default: proforma due date, YYYY-MM-DD)'),
307
+ }),
308
+ handler: async (params) => {
309
+ const config = getConfig();
310
+ if (!config.token)
311
+ return notAuthenticated();
312
+ const companyId = params.companyId || config.companyId;
313
+ if (!companyId)
314
+ return noCompanySelected();
315
+ const body = {};
316
+ if (params.invoiceSeriesId)
317
+ body.invoiceSeriesId = params.invoiceSeriesId;
318
+ if (params.issueDate)
319
+ body.issueDate = params.issueDate;
320
+ if (params.dueDate)
321
+ body.dueDate = params.dueDate;
322
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}/convert`, {
323
+ method: 'POST',
324
+ companyId,
325
+ body: Object.keys(body).length > 0 ? body : undefined,
326
+ });
327
+ return formatResponse(res);
328
+ },
329
+ },
330
+ {
331
+ name: 'proforma_invoices_pdf',
332
+ description: 'Download the PDF of a proforma invoice. Returns base64-encoded binary data. Requires Pro plan.',
333
+ inputSchema: z.object({
334
+ uuid: z.string().describe('UUID of the proforma invoice'),
335
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
336
+ }),
337
+ handler: async (params) => {
338
+ const config = getConfig();
339
+ if (!config.token)
340
+ return notAuthenticated();
341
+ const companyId = params.companyId || config.companyId;
342
+ if (!companyId)
343
+ return noCompanySelected();
344
+ const res = await apiRequest(`/api/v1/proforma-invoices/${params.uuid}/pdf`, {
345
+ companyId,
346
+ binary: true,
347
+ });
348
+ return formatResponse(res);
349
+ },
350
+ },
351
+ {
352
+ name: 'proforma_invoices_bulk_delete',
353
+ description: 'Delete multiple proforma invoices in batch. Only draft proformas can be deleted. Returns count of deleted and any errors.',
354
+ inputSchema: z.object({
355
+ ids: z
356
+ .array(z.string())
357
+ .min(1)
358
+ .max(100)
359
+ .describe('Array of proforma invoice UUIDs to delete (1-100)'),
360
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
361
+ }),
362
+ handler: async (params) => {
363
+ const config = getConfig();
364
+ if (!config.token)
365
+ return notAuthenticated();
366
+ const companyId = params.companyId || config.companyId;
367
+ if (!companyId)
368
+ return noCompanySelected();
369
+ const res = await apiRequest('/api/v1/proforma-invoices/bulk-delete', {
370
+ method: 'POST',
371
+ companyId,
372
+ body: { ids: params.ids },
373
+ });
374
+ return formatResponse(res);
375
+ },
376
+ },
377
+ ];
378
+ //# sourceMappingURL=proforma-invoices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proforma-invoices.js","sourceRoot":"","sources":["../../src/tools/proforma-invoices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import { z } from 'zod';
2
+ export declare const tools: ({
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ companyId: z.ZodOptional<z.ZodString>;
7
+ page: z.ZodOptional<z.ZodNumber>;
8
+ limit: z.ZodOptional<z.ZodNumber>;
9
+ search: z.ZodOptional<z.ZodString>;
10
+ status: z.ZodOptional<z.ZodEnum<["draft", "issued", "invoiced", "cancelled"]>>;
11
+ from: z.ZodOptional<z.ZodString>;
12
+ to: z.ZodOptional<z.ZodString>;
13
+ clientId: z.ZodOptional<z.ZodString>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ companyId?: string | undefined;
16
+ status?: "draft" | "issued" | "cancelled" | "invoiced" | undefined;
17
+ page?: number | undefined;
18
+ limit?: number | undefined;
19
+ search?: string | undefined;
20
+ from?: string | undefined;
21
+ to?: string | undefined;
22
+ clientId?: string | undefined;
23
+ }, {
24
+ companyId?: string | undefined;
25
+ status?: "draft" | "issued" | "cancelled" | "invoiced" | undefined;
26
+ page?: number | undefined;
27
+ limit?: number | undefined;
28
+ search?: string | undefined;
29
+ from?: string | undefined;
30
+ to?: string | undefined;
31
+ clientId?: string | undefined;
32
+ }>;
33
+ handler: (params: Record<string, unknown>) => Promise<string>;
34
+ } | {
35
+ name: string;
36
+ description: string;
37
+ inputSchema: z.ZodObject<{
38
+ uuid: z.ZodString;
39
+ companyId: z.ZodOptional<z.ZodString>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ uuid: string;
42
+ companyId?: string | undefined;
43
+ }, {
44
+ uuid: string;
45
+ companyId?: string | undefined;
46
+ }>;
47
+ handler: (params: Record<string, unknown>) => Promise<string>;
48
+ } | {
49
+ name: string;
50
+ description: string;
51
+ inputSchema: z.ZodObject<{
52
+ companyId: z.ZodOptional<z.ZodString>;
53
+ clientId: z.ZodOptional<z.ZodString>;
54
+ seriesId: z.ZodOptional<z.ZodString>;
55
+ documentSeriesId: z.ZodOptional<z.ZodString>;
56
+ issueDate: z.ZodString;
57
+ currency: z.ZodString;
58
+ exchangeRate: z.ZodOptional<z.ZodNumber>;
59
+ paymentMethod: z.ZodOptional<z.ZodEnum<["cash", "card", "meal_ticket", "mixed"]>>;
60
+ cashPayment: z.ZodOptional<z.ZodNumber>;
61
+ cardPayment: z.ZodOptional<z.ZodNumber>;
62
+ otherPayment: z.ZodOptional<z.ZodNumber>;
63
+ cashRegisterName: z.ZodOptional<z.ZodString>;
64
+ fiscalNumber: z.ZodOptional<z.ZodString>;
65
+ customerName: z.ZodOptional<z.ZodString>;
66
+ customerCif: z.ZodOptional<z.ZodString>;
67
+ projectReference: z.ZodOptional<z.ZodString>;
68
+ issuerName: z.ZodOptional<z.ZodString>;
69
+ issuerId: z.ZodOptional<z.ZodString>;
70
+ salesAgent: z.ZodOptional<z.ZodString>;
71
+ notes: z.ZodOptional<z.ZodString>;
72
+ mentions: z.ZodOptional<z.ZodString>;
73
+ internalNote: z.ZodOptional<z.ZodString>;
74
+ lines: z.ZodArray<z.ZodObject<{
75
+ uuid: z.ZodOptional<z.ZodString>;
76
+ description: z.ZodString;
77
+ quantity: z.ZodNumber;
78
+ unitPrice: z.ZodNumber;
79
+ vatRateId: z.ZodString;
80
+ unitOfMeasure: z.ZodOptional<z.ZodString>;
81
+ productId: z.ZodOptional<z.ZodString>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ description: string;
84
+ quantity: number;
85
+ unitPrice: number;
86
+ vatRateId: string;
87
+ uuid?: string | undefined;
88
+ unitOfMeasure?: string | undefined;
89
+ productId?: string | undefined;
90
+ }, {
91
+ description: string;
92
+ quantity: number;
93
+ unitPrice: number;
94
+ vatRateId: string;
95
+ uuid?: string | undefined;
96
+ unitOfMeasure?: string | undefined;
97
+ productId?: string | undefined;
98
+ }>, "many">;
99
+ }, "strip", z.ZodTypeAny, {
100
+ issueDate: string;
101
+ currency: string;
102
+ lines: {
103
+ description: string;
104
+ quantity: number;
105
+ unitPrice: number;
106
+ vatRateId: string;
107
+ uuid?: string | undefined;
108
+ unitOfMeasure?: string | undefined;
109
+ productId?: string | undefined;
110
+ }[];
111
+ companyId?: string | undefined;
112
+ clientId?: string | undefined;
113
+ seriesId?: string | undefined;
114
+ exchangeRate?: number | undefined;
115
+ notes?: string | undefined;
116
+ projectReference?: string | undefined;
117
+ issuerName?: string | undefined;
118
+ issuerId?: string | undefined;
119
+ mentions?: string | undefined;
120
+ internalNote?: string | undefined;
121
+ salesAgent?: string | undefined;
122
+ paymentMethod?: "cash" | "card" | "meal_ticket" | "mixed" | undefined;
123
+ documentSeriesId?: string | undefined;
124
+ cashPayment?: number | undefined;
125
+ cardPayment?: number | undefined;
126
+ otherPayment?: number | undefined;
127
+ cashRegisterName?: string | undefined;
128
+ fiscalNumber?: string | undefined;
129
+ customerName?: string | undefined;
130
+ customerCif?: string | undefined;
131
+ }, {
132
+ issueDate: string;
133
+ currency: string;
134
+ lines: {
135
+ description: string;
136
+ quantity: number;
137
+ unitPrice: number;
138
+ vatRateId: string;
139
+ uuid?: string | undefined;
140
+ unitOfMeasure?: string | undefined;
141
+ productId?: string | undefined;
142
+ }[];
143
+ companyId?: string | undefined;
144
+ clientId?: string | undefined;
145
+ seriesId?: string | undefined;
146
+ exchangeRate?: number | undefined;
147
+ notes?: string | undefined;
148
+ projectReference?: string | undefined;
149
+ issuerName?: string | undefined;
150
+ issuerId?: string | undefined;
151
+ mentions?: string | undefined;
152
+ internalNote?: string | undefined;
153
+ salesAgent?: string | undefined;
154
+ paymentMethod?: "cash" | "card" | "meal_ticket" | "mixed" | undefined;
155
+ documentSeriesId?: string | undefined;
156
+ cashPayment?: number | undefined;
157
+ cardPayment?: number | undefined;
158
+ otherPayment?: number | undefined;
159
+ cashRegisterName?: string | undefined;
160
+ fiscalNumber?: string | undefined;
161
+ customerName?: string | undefined;
162
+ customerCif?: string | undefined;
163
+ }>;
164
+ handler: (params: Record<string, unknown>) => Promise<string>;
165
+ })[];
166
+ //# sourceMappingURL=receipts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../../src/tools/receipts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAkBU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;sBA8BzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2CzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;IAySpE,CAAC"}