noxctl 0.7.4 → 0.9.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.
Files changed (272) hide show
  1. package/README.md +50 -4
  2. package/dist/auth.d.ts +18 -1
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +129 -15
  5. package/dist/auth.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +144 -33
  8. package/dist/cli.js.map +1 -1
  9. package/dist/credentials-store.d.ts +3 -0
  10. package/dist/credentials-store.d.ts.map +1 -1
  11. package/dist/credentials-store.js +54 -10
  12. package/dist/credentials-store.js.map +1 -1
  13. package/dist/embedded.d.ts +15 -0
  14. package/dist/embedded.d.ts.map +1 -0
  15. package/dist/embedded.js +11 -0
  16. package/dist/embedded.js.map +1 -0
  17. package/dist/fortnox-client.d.ts +40 -25
  18. package/dist/fortnox-client.d.ts.map +1 -1
  19. package/dist/fortnox-client.js +165 -51
  20. package/dist/fortnox-client.js.map +1 -1
  21. package/dist/index.d.ts +7 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +50 -35
  24. package/dist/index.js.map +1 -1
  25. package/dist/keychain-target.d.ts +3 -0
  26. package/dist/keychain-target.d.ts.map +1 -1
  27. package/dist/keychain-target.js +28 -7
  28. package/dist/keychain-target.js.map +1 -1
  29. package/dist/operations/absencetransactions.d.ts +9 -6
  30. package/dist/operations/absencetransactions.d.ts.map +1 -1
  31. package/dist/operations/absencetransactions.js +42 -33
  32. package/dist/operations/absencetransactions.js.map +1 -1
  33. package/dist/operations/accounts.d.ts +6 -3
  34. package/dist/operations/accounts.d.ts.map +1 -1
  35. package/dist/operations/accounts.js +28 -24
  36. package/dist/operations/accounts.js.map +1 -1
  37. package/dist/operations/analytics.d.ts +35 -0
  38. package/dist/operations/analytics.d.ts.map +1 -1
  39. package/dist/operations/analytics.js +59 -35
  40. package/dist/operations/analytics.js.map +1 -1
  41. package/dist/operations/articles.d.ts +9 -6
  42. package/dist/operations/articles.d.ts.map +1 -1
  43. package/dist/operations/articles.js +36 -32
  44. package/dist/operations/articles.js.map +1 -1
  45. package/dist/operations/attendancetransactions.d.ts +9 -6
  46. package/dist/operations/attendancetransactions.d.ts.map +1 -1
  47. package/dist/operations/attendancetransactions.js +45 -36
  48. package/dist/operations/attendancetransactions.js.map +1 -1
  49. package/dist/operations/company.d.ts +5 -1
  50. package/dist/operations/company.d.ts.map +1 -1
  51. package/dist/operations/company.js +8 -4
  52. package/dist/operations/company.js.map +1 -1
  53. package/dist/operations/contracts.d.ts +12 -9
  54. package/dist/operations/contracts.d.ts.map +1 -1
  55. package/dist/operations/contracts.js +59 -47
  56. package/dist/operations/contracts.js.map +1 -1
  57. package/dist/operations/costcenters.d.ts +10 -7
  58. package/dist/operations/costcenters.d.ts.map +1 -1
  59. package/dist/operations/costcenters.js +39 -35
  60. package/dist/operations/costcenters.js.map +1 -1
  61. package/dist/operations/customers.d.ts +9 -6
  62. package/dist/operations/customers.d.ts.map +1 -1
  63. package/dist/operations/customers.js +46 -42
  64. package/dist/operations/customers.js.map +1 -1
  65. package/dist/operations/employees.d.ts +9 -6
  66. package/dist/operations/employees.d.ts.map +1 -1
  67. package/dist/operations/employees.js +35 -31
  68. package/dist/operations/employees.js.map +1 -1
  69. package/dist/operations/financial-reports.d.ts +7 -2
  70. package/dist/operations/financial-reports.d.ts.map +1 -1
  71. package/dist/operations/financial-reports.js +169 -165
  72. package/dist/operations/financial-reports.js.map +1 -1
  73. package/dist/operations/financial-years.d.ts +8 -5
  74. package/dist/operations/financial-years.d.ts.map +1 -1
  75. package/dist/operations/financial-years.js +33 -29
  76. package/dist/operations/financial-years.js.map +1 -1
  77. package/dist/operations/index.d.ts +311 -0
  78. package/dist/operations/index.d.ts.map +1 -0
  79. package/dist/operations/index.js +64 -0
  80. package/dist/operations/index.js.map +1 -0
  81. package/dist/operations/invoice-payments.d.ts +10 -7
  82. package/dist/operations/invoice-payments.d.ts.map +1 -1
  83. package/dist/operations/invoice-payments.js +45 -35
  84. package/dist/operations/invoice-payments.js.map +1 -1
  85. package/dist/operations/invoices.d.ts +34 -30
  86. package/dist/operations/invoices.d.ts.map +1 -1
  87. package/dist/operations/invoices.js +225 -113
  88. package/dist/operations/invoices.js.map +1 -1
  89. package/dist/operations/offers.d.ts +11 -8
  90. package/dist/operations/offers.d.ts.map +1 -1
  91. package/dist/operations/offers.js +54 -43
  92. package/dist/operations/offers.js.map +1 -1
  93. package/dist/operations/orders.d.ts +10 -7
  94. package/dist/operations/orders.d.ts.map +1 -1
  95. package/dist/operations/orders.js +43 -39
  96. package/dist/operations/orders.js.map +1 -1
  97. package/dist/operations/pricelists.d.ts +16 -10
  98. package/dist/operations/pricelists.d.ts.map +1 -1
  99. package/dist/operations/pricelists.js +56 -48
  100. package/dist/operations/pricelists.js.map +1 -1
  101. package/dist/operations/projects.d.ts +9 -6
  102. package/dist/operations/projects.d.ts.map +1 -1
  103. package/dist/operations/projects.js +34 -30
  104. package/dist/operations/projects.js.map +1 -1
  105. package/dist/operations/recurrings.d.ts +14 -10
  106. package/dist/operations/recurrings.d.ts.map +1 -1
  107. package/dist/operations/recurrings.js +74 -59
  108. package/dist/operations/recurrings.js.map +1 -1
  109. package/dist/operations/salarytransactions.d.ts +9 -6
  110. package/dist/operations/salarytransactions.d.ts.map +1 -1
  111. package/dist/operations/salarytransactions.js +41 -32
  112. package/dist/operations/salarytransactions.js.map +1 -1
  113. package/dist/operations/scheduletimes.d.ts +7 -3
  114. package/dist/operations/scheduletimes.d.ts.map +1 -1
  115. package/dist/operations/scheduletimes.js +26 -22
  116. package/dist/operations/scheduletimes.js.map +1 -1
  117. package/dist/operations/supplier-invoice-payments.d.ts +9 -6
  118. package/dist/operations/supplier-invoice-payments.d.ts.map +1 -1
  119. package/dist/operations/supplier-invoice-payments.js +38 -29
  120. package/dist/operations/supplier-invoice-payments.js.map +1 -1
  121. package/dist/operations/supplier-invoices.d.ts +9 -6
  122. package/dist/operations/supplier-invoices.d.ts.map +1 -1
  123. package/dist/operations/supplier-invoices.js +41 -32
  124. package/dist/operations/supplier-invoices.js.map +1 -1
  125. package/dist/operations/suppliers.d.ts +9 -6
  126. package/dist/operations/suppliers.d.ts.map +1 -1
  127. package/dist/operations/suppliers.js +36 -32
  128. package/dist/operations/suppliers.js.map +1 -1
  129. package/dist/operations/tax.d.ts +5 -1
  130. package/dist/operations/tax.d.ts.map +1 -1
  131. package/dist/operations/tax.js +43 -39
  132. package/dist/operations/tax.js.map +1 -1
  133. package/dist/operations/taxreductions.d.ts +8 -5
  134. package/dist/operations/taxreductions.d.ts.map +1 -1
  135. package/dist/operations/taxreductions.js +28 -24
  136. package/dist/operations/taxreductions.js.map +1 -1
  137. package/dist/operations/vouchers.d.ts +26 -8
  138. package/dist/operations/vouchers.d.ts.map +1 -1
  139. package/dist/operations/vouchers.js +174 -122
  140. package/dist/operations/vouchers.js.map +1 -1
  141. package/dist/schema-audit-mappings.d.ts +9 -0
  142. package/dist/schema-audit-mappings.d.ts.map +1 -0
  143. package/dist/schema-audit-mappings.js +45 -0
  144. package/dist/schema-audit-mappings.js.map +1 -0
  145. package/dist/schema-audit.d.ts +45 -0
  146. package/dist/schema-audit.d.ts.map +1 -0
  147. package/dist/schema-audit.js +132 -0
  148. package/dist/schema-audit.js.map +1 -0
  149. package/dist/scope-probes.d.ts.map +1 -1
  150. package/dist/scope-probes.js +1 -0
  151. package/dist/scope-probes.js.map +1 -1
  152. package/dist/strict-mcp-server.d.ts +17 -0
  153. package/dist/strict-mcp-server.d.ts.map +1 -0
  154. package/dist/strict-mcp-server.js +35 -0
  155. package/dist/strict-mcp-server.js.map +1 -0
  156. package/dist/tools/absencetransactions.d.ts +2 -1
  157. package/dist/tools/absencetransactions.d.ts.map +1 -1
  158. package/dist/tools/absencetransactions.js +3 -2
  159. package/dist/tools/absencetransactions.js.map +1 -1
  160. package/dist/tools/analytics.d.ts +2 -1
  161. package/dist/tools/analytics.d.ts.map +1 -1
  162. package/dist/tools/analytics.js +3 -2
  163. package/dist/tools/analytics.js.map +1 -1
  164. package/dist/tools/articles.d.ts +2 -1
  165. package/dist/tools/articles.d.ts.map +1 -1
  166. package/dist/tools/articles.js +3 -2
  167. package/dist/tools/articles.js.map +1 -1
  168. package/dist/tools/attendancetransactions.d.ts +2 -1
  169. package/dist/tools/attendancetransactions.d.ts.map +1 -1
  170. package/dist/tools/attendancetransactions.js +3 -2
  171. package/dist/tools/attendancetransactions.js.map +1 -1
  172. package/dist/tools/bookkeeping.d.ts +2 -1
  173. package/dist/tools/bookkeeping.d.ts.map +1 -1
  174. package/dist/tools/bookkeeping.js +83 -5
  175. package/dist/tools/bookkeeping.js.map +1 -1
  176. package/dist/tools/company.d.ts +2 -1
  177. package/dist/tools/company.d.ts.map +1 -1
  178. package/dist/tools/company.js +3 -2
  179. package/dist/tools/company.js.map +1 -1
  180. package/dist/tools/contracts.d.ts +2 -1
  181. package/dist/tools/contracts.d.ts.map +1 -1
  182. package/dist/tools/contracts.js +3 -2
  183. package/dist/tools/contracts.js.map +1 -1
  184. package/dist/tools/costcenters.d.ts +2 -1
  185. package/dist/tools/costcenters.d.ts.map +1 -1
  186. package/dist/tools/costcenters.js +3 -2
  187. package/dist/tools/costcenters.js.map +1 -1
  188. package/dist/tools/customers.d.ts +2 -1
  189. package/dist/tools/customers.d.ts.map +1 -1
  190. package/dist/tools/customers.js +3 -2
  191. package/dist/tools/customers.js.map +1 -1
  192. package/dist/tools/employees.d.ts +2 -1
  193. package/dist/tools/employees.d.ts.map +1 -1
  194. package/dist/tools/employees.js +3 -2
  195. package/dist/tools/employees.js.map +1 -1
  196. package/dist/tools/financial-reports.d.ts +2 -1
  197. package/dist/tools/financial-reports.d.ts.map +1 -1
  198. package/dist/tools/financial-reports.js +3 -2
  199. package/dist/tools/financial-reports.js.map +1 -1
  200. package/dist/tools/financial-years.d.ts +2 -1
  201. package/dist/tools/financial-years.d.ts.map +1 -1
  202. package/dist/tools/financial-years.js +3 -2
  203. package/dist/tools/financial-years.js.map +1 -1
  204. package/dist/tools/invoice-payments.d.ts +2 -1
  205. package/dist/tools/invoice-payments.d.ts.map +1 -1
  206. package/dist/tools/invoice-payments.js +3 -2
  207. package/dist/tools/invoice-payments.js.map +1 -1
  208. package/dist/tools/invoices.d.ts +2 -1
  209. package/dist/tools/invoices.d.ts.map +1 -1
  210. package/dist/tools/invoices.js +100 -21
  211. package/dist/tools/invoices.js.map +1 -1
  212. package/dist/tools/offers.d.ts +2 -1
  213. package/dist/tools/offers.d.ts.map +1 -1
  214. package/dist/tools/offers.js +50 -19
  215. package/dist/tools/offers.js.map +1 -1
  216. package/dist/tools/orders.d.ts +2 -1
  217. package/dist/tools/orders.d.ts.map +1 -1
  218. package/dist/tools/orders.js +58 -18
  219. package/dist/tools/orders.js.map +1 -1
  220. package/dist/tools/pricelists.d.ts +2 -1
  221. package/dist/tools/pricelists.d.ts.map +1 -1
  222. package/dist/tools/pricelists.js +3 -2
  223. package/dist/tools/pricelists.js.map +1 -1
  224. package/dist/tools/projects.d.ts +2 -1
  225. package/dist/tools/projects.d.ts.map +1 -1
  226. package/dist/tools/projects.js +3 -2
  227. package/dist/tools/projects.js.map +1 -1
  228. package/dist/tools/recurrings.d.ts +2 -1
  229. package/dist/tools/recurrings.d.ts.map +1 -1
  230. package/dist/tools/recurrings.js +3 -2
  231. package/dist/tools/recurrings.js.map +1 -1
  232. package/dist/tools/salarytransactions.d.ts +2 -1
  233. package/dist/tools/salarytransactions.d.ts.map +1 -1
  234. package/dist/tools/salarytransactions.js +3 -2
  235. package/dist/tools/salarytransactions.js.map +1 -1
  236. package/dist/tools/scheduletimes.d.ts +2 -1
  237. package/dist/tools/scheduletimes.d.ts.map +1 -1
  238. package/dist/tools/scheduletimes.js +3 -2
  239. package/dist/tools/scheduletimes.js.map +1 -1
  240. package/dist/tools/status.d.ts.map +1 -1
  241. package/dist/tools/status.js +5 -4
  242. package/dist/tools/status.js.map +1 -1
  243. package/dist/tools/supplier-invoice-payments.d.ts +2 -1
  244. package/dist/tools/supplier-invoice-payments.d.ts.map +1 -1
  245. package/dist/tools/supplier-invoice-payments.js +3 -2
  246. package/dist/tools/supplier-invoice-payments.js.map +1 -1
  247. package/dist/tools/supplier-invoices.d.ts +2 -1
  248. package/dist/tools/supplier-invoices.d.ts.map +1 -1
  249. package/dist/tools/supplier-invoices.js +47 -6
  250. package/dist/tools/supplier-invoices.js.map +1 -1
  251. package/dist/tools/suppliers.d.ts +2 -1
  252. package/dist/tools/suppliers.d.ts.map +1 -1
  253. package/dist/tools/suppliers.js +3 -2
  254. package/dist/tools/suppliers.js.map +1 -1
  255. package/dist/tools/tax.d.ts +2 -1
  256. package/dist/tools/tax.d.ts.map +1 -1
  257. package/dist/tools/tax.js +3 -2
  258. package/dist/tools/tax.js.map +1 -1
  259. package/dist/tools/taxreductions.d.ts +2 -1
  260. package/dist/tools/taxreductions.d.ts.map +1 -1
  261. package/dist/tools/taxreductions.js +3 -2
  262. package/dist/tools/taxreductions.js.map +1 -1
  263. package/dist/version.d.ts +2 -0
  264. package/dist/version.d.ts.map +1 -0
  265. package/dist/version.js +3 -0
  266. package/dist/version.js.map +1 -0
  267. package/dist/views.d.ts +2 -0
  268. package/dist/views.d.ts.map +1 -1
  269. package/dist/views.js +11 -0
  270. package/dist/views.js.map +1 -1
  271. package/docs/embedded.md +60 -0
  272. package/package.json +23 -4
@@ -1,4 +1,5 @@
1
- interface InvoicesResponse {
1
+ import { type FortnoxTransport } from '../fortnox-client.js';
2
+ export interface InvoicesResponse {
2
3
  Invoices: Record<string, unknown>[];
3
4
  MetaInformation?: {
4
5
  '@TotalResources': number;
@@ -15,27 +16,12 @@ export interface ListInvoicesParams {
15
16
  limit?: number;
16
17
  all?: boolean;
17
18
  }
18
- export declare function listInvoices(params?: ListInvoicesParams): Promise<InvoicesResponse>;
19
- export declare function getInvoice(documentNumber: string): Promise<Record<string, unknown>>;
20
- export declare function createInvoice(params: Record<string, unknown>): Promise<Record<string, unknown>>;
21
- export declare function updateInvoice(documentNumber: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
22
19
  export type SendMethod = 'email' | 'print' | 'einvoice';
23
20
  export interface SendEmailOptions {
24
21
  subject?: string;
25
22
  body?: string;
26
23
  bcc?: string;
27
24
  }
28
- export declare function sendInvoice(documentNumber: string, method?: SendMethod, emailOptions?: SendEmailOptions): Promise<Record<string, unknown>>;
29
- /**
30
- * Fetch an invoice as a PDF. Always uses /preview, which returns the same
31
- * document as /print but leaves the invoice untouched.
32
- *
33
- * Marking the invoice as sent is deliberately NOT folded in here: callers that
34
- * want both run this first, write the bytes out, and only then call
35
- * `markInvoicePrinted`. Doing it the other way round means a full disk or a bad
36
- * path leaves an invoice flagged as sent with no PDF to show for it.
37
- */
38
- export declare function getInvoicePdf(documentNumber: string): Promise<Buffer>;
39
25
  export interface MarkInvoicePrintedResult {
40
26
  /** The invoice's state after printing. */
41
27
  invoice: Record<string, unknown>;
@@ -53,18 +39,36 @@ export interface MarkInvoicePrintedResult {
53
39
  */
54
40
  pdf?: Buffer;
55
41
  }
56
- /**
57
- * Mark an invoice as sent via Fortnox's /print action, and report its resulting
58
- * state. /print is a GET that changes data, so it is flagged as a mutation to
59
- * keep it out of the automatic retry path.
60
- *
61
- * Once the /print request succeeds the invoice has been changed, so from that
62
- * point on this function does not throw: neither a malformed PDF body nor a
63
- * failed read-back may turn a completed accounting change into a reported
64
- * failure.
65
- */
66
- export declare function markInvoicePrinted(documentNumber: string): Promise<MarkInvoicePrintedResult>;
67
- export declare function bookkeepInvoice(documentNumber: string): Promise<Record<string, unknown>>;
68
- export declare function creditInvoice(documentNumber: string): Promise<Record<string, unknown>>;
69
- export {};
42
+ export interface InvoiceAttachment {
43
+ id: string;
44
+ entityId: number;
45
+ entityType: 'F';
46
+ fileId: string;
47
+ includeOnSend: boolean;
48
+ }
49
+ export interface AttachInvoiceFilesParams {
50
+ documentNumber: string;
51
+ filePaths: string[];
52
+ includeOnSend?: boolean;
53
+ }
54
+ export interface AttachInvoiceFileResult {
55
+ fileName: string;
56
+ fileId: string;
57
+ attachmentId: string;
58
+ includeOnSend: boolean;
59
+ }
60
+ export declare function createInvoiceOperations(transport: FortnoxTransport): {
61
+ listInvoices: (params?: ListInvoicesParams) => Promise<InvoicesResponse>;
62
+ getInvoice: (documentNumber: string) => Promise<Record<string, unknown>>;
63
+ createInvoice: (params: Record<string, unknown>) => Promise<Record<string, unknown>>;
64
+ updateInvoice: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>;
65
+ sendInvoice: (documentNumber: string, method?: SendMethod, emailOptions?: SendEmailOptions) => Promise<Record<string, unknown>>;
66
+ getInvoicePdf: (documentNumber: string) => Promise<Buffer>;
67
+ markInvoicePrinted: (documentNumber: string) => Promise<MarkInvoicePrintedResult>;
68
+ bookkeepInvoice: (documentNumber: string) => Promise<Record<string, unknown>>;
69
+ creditInvoice: (documentNumber: string) => Promise<Record<string, unknown>>;
70
+ attachInvoiceFiles: (params: AttachInvoiceFilesParams) => Promise<AttachInvoiceFileResult[]>;
71
+ listInvoiceAttachments: (documentNumber: string) => Promise<InvoiceAttachment[]>;
72
+ };
73
+ export declare const listInvoices: (params?: ListInvoicesParams) => Promise<InvoicesResponse>, getInvoice: (documentNumber: string) => Promise<Record<string, unknown>>, createInvoice: (params: Record<string, unknown>) => Promise<Record<string, unknown>>, updateInvoice: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>, sendInvoice: (documentNumber: string, method?: SendMethod, emailOptions?: SendEmailOptions) => Promise<Record<string, unknown>>, getInvoicePdf: (documentNumber: string) => Promise<Buffer>, markInvoicePrinted: (documentNumber: string) => Promise<MarkInvoicePrintedResult>, bookkeepInvoice: (documentNumber: string) => Promise<Record<string, unknown>>, creditInvoice: (documentNumber: string) => Promise<Record<string, unknown>>, attachInvoiceFiles: (params: AttachInvoiceFilesParams) => Promise<AttachInvoiceFileResult[]>, listInvoiceAttachments: (documentNumber: string) => Promise<InvoiceAttachment[]>;
70
74
  //# sourceMappingURL=invoices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../src/operations/invoices.ts"],"names":[],"mappings":"AAYA,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuB7F;AAED,wBAAsB,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGzF;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,aAAa,CACjC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAC/B,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,UAAoB,EAC5B,YAAY,CAAC,EAAE,gBAAgB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8BlC;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3E;AAED,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,wBAAwB,CAAC,CAuBnC;AAED,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQ9F;AAED,wBAAsB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQ5F"}
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../src/operations/invoices.ts"],"names":[],"mappings":"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"}
@@ -1,125 +1,237 @@
1
- import { fortnoxRequest, fortnoxRequestPdf, fortnoxRequestPdfFromMutation, fetchAllPages, } from '../fortnox-client.js';
1
+ import { existsSync, readFileSync, statSync } from 'node:fs';
2
+ import { basename, extname } from 'node:path';
3
+ import { defaultFortnoxTransport } from '../fortnox-client.js';
2
4
  import { documentSegment } from '../identifiers.js';
3
- export async function listInvoices(params = {}) {
4
- const queryParams = {
5
- filter: params.filter,
6
- customernumber: params.customerNumber,
7
- fromdate: params.fromDate,
8
- todate: params.toDate,
9
- };
10
- if (params.all) {
11
- const { items, totalResources } = await fetchAllPages('invoices', 'Invoices', queryParams);
12
- return {
13
- Invoices: items,
14
- MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
5
+ export function createInvoiceOperations(transport) {
6
+ async function listInvoices(params = {}) {
7
+ const queryParams = {
8
+ filter: params.filter,
9
+ customernumber: params.customerNumber,
10
+ fromdate: params.fromDate,
11
+ todate: params.toDate,
15
12
  };
13
+ if (params.all) {
14
+ const { items, totalResources } = await transport.fetchAllPages('invoices', 'Invoices', queryParams);
15
+ return {
16
+ Invoices: items,
17
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
18
+ };
19
+ }
20
+ return transport.request('invoices', {
21
+ params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
22
+ });
16
23
  }
17
- return fortnoxRequest('invoices', {
18
- params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
19
- });
20
- }
21
- export async function getInvoice(documentNumber) {
22
- const data = await fortnoxRequest(`invoices/${documentSegment(documentNumber)}`);
23
- return data.Invoice;
24
- }
25
- export async function createInvoice(params) {
26
- const data = await fortnoxRequest('invoices', {
27
- method: 'POST',
28
- body: { Invoice: params },
29
- });
30
- return data.Invoice;
31
- }
32
- export async function updateInvoice(documentNumber, fields) {
33
- const { documentNumber: _, ...body } = fields;
34
- const data = await fortnoxRequest(`invoices/${documentSegment(documentNumber)}`, {
35
- method: 'PUT',
36
- body: { Invoice: body },
37
- });
38
- return data.Invoice;
39
- }
40
- export async function sendInvoice(documentNumber, method = 'email', emailOptions) {
41
- const documentId = documentSegment(documentNumber);
42
- // Update EmailInformation before sending if any email options are provided
43
- if (emailOptions && (emailOptions.subject || emailOptions.body || emailOptions.bcc)) {
44
- const current = await fortnoxRequest(`invoices/${documentId}`);
45
- const existing = current.Invoice?.EmailInformation || {};
46
- const emailInfo = { ...existing };
47
- if (emailOptions.subject)
48
- emailInfo.EmailSubject = emailOptions.subject;
49
- if (emailOptions.body)
50
- emailInfo.EmailBody = emailOptions.body;
51
- if (emailOptions.bcc)
52
- emailInfo.EmailAddressBCC = emailOptions.bcc;
53
- await fortnoxRequest(`invoices/${documentId}`, {
24
+ async function getInvoice(documentNumber) {
25
+ const data = await transport.request(`invoices/${documentSegment(documentNumber)}`);
26
+ return data.Invoice;
27
+ }
28
+ async function createInvoice(params) {
29
+ const data = await transport.request('invoices', {
30
+ method: 'POST',
31
+ body: { Invoice: params },
32
+ });
33
+ return data.Invoice;
34
+ }
35
+ async function updateInvoice(documentNumber, fields) {
36
+ const { documentNumber: _, ...body } = fields;
37
+ const data = await transport.request(`invoices/${documentSegment(documentNumber)}`, {
54
38
  method: 'PUT',
55
- body: { Invoice: { EmailInformation: emailInfo } },
39
+ body: { Invoice: body },
56
40
  });
41
+ return data.Invoice;
57
42
  }
58
- if (method === 'print') {
59
- return (await markInvoicePrinted(documentNumber)).invoice;
43
+ async function sendInvoice(documentNumber, method = 'email', emailOptions) {
44
+ const documentId = documentSegment(documentNumber);
45
+ // Update EmailInformation before sending if any email options are provided
46
+ if (emailOptions && (emailOptions.subject || emailOptions.body || emailOptions.bcc)) {
47
+ const current = await transport.request(`invoices/${documentId}`);
48
+ const existing = current.Invoice?.EmailInformation || {};
49
+ const emailInfo = { ...existing };
50
+ if (emailOptions.subject)
51
+ emailInfo.EmailSubject = emailOptions.subject;
52
+ if (emailOptions.body)
53
+ emailInfo.EmailBody = emailOptions.body;
54
+ if (emailOptions.bcc)
55
+ emailInfo.EmailAddressBCC = emailOptions.bcc;
56
+ await transport.request(`invoices/${documentId}`, {
57
+ method: 'PUT',
58
+ body: { Invoice: { EmailInformation: emailInfo } },
59
+ });
60
+ }
61
+ if (method === 'print') {
62
+ return (await markInvoicePrinted(documentNumber)).invoice;
63
+ }
64
+ // Exhaustive on purpose: no silent fallback. 'email' and 'einvoice' both send
65
+ // the invoice to the customer, so an unrecognised method must fail loudly
66
+ // rather than pick one of them.
67
+ if (method !== 'email' && method !== 'einvoice') {
68
+ throw new Error(`Unsupported send method: ${String(method)}`);
69
+ }
70
+ const data = await transport.request(`invoices/${documentId}/${method}`, {
71
+ // Fortnox models these delivery actions as GET, but they send an invoice
72
+ // to a customer. Never retry them automatically after an ambiguous error.
73
+ mutation: true,
74
+ });
75
+ return data?.Invoice || {};
60
76
  }
61
- // Exhaustive on purpose: no silent fallback. 'email' and 'einvoice' both send
62
- // the invoice to the customer, so an unrecognised method must fail loudly
63
- // rather than pick one of them.
64
- if (method !== 'email' && method !== 'einvoice') {
65
- throw new Error(`Unsupported send method: ${String(method)}`);
77
+ /**
78
+ * Fetch an invoice as a PDF. Always uses /preview, which returns the same
79
+ * document as /print but leaves the invoice untouched.
80
+ *
81
+ * Marking the invoice as sent is deliberately NOT folded in here: callers that
82
+ * want both run this first, write the bytes out, and only then call
83
+ * `markInvoicePrinted`. Doing it the other way round means a full disk or a bad
84
+ * path leaves an invoice flagged as sent with no PDF to show for it.
85
+ */
86
+ async function getInvoicePdf(documentNumber) {
87
+ return transport.requestPdf(`invoices/${documentSegment(documentNumber)}/preview`);
66
88
  }
67
- const data = await fortnoxRequest(`invoices/${documentId}/${method}`);
68
- return data?.Invoice || {};
69
- }
70
- /**
71
- * Fetch an invoice as a PDF. Always uses /preview, which returns the same
72
- * document as /print but leaves the invoice untouched.
73
- *
74
- * Marking the invoice as sent is deliberately NOT folded in here: callers that
75
- * want both run this first, write the bytes out, and only then call
76
- * `markInvoicePrinted`. Doing it the other way round means a full disk or a bad
77
- * path leaves an invoice flagged as sent with no PDF to show for it.
78
- */
79
- export async function getInvoicePdf(documentNumber) {
80
- return fortnoxRequestPdf(`invoices/${documentSegment(documentNumber)}/preview`);
81
- }
82
- /**
83
- * Mark an invoice as sent via Fortnox's /print action, and report its resulting
84
- * state. /print is a GET that changes data, so it is flagged as a mutation to
85
- * keep it out of the automatic retry path.
86
- *
87
- * Once the /print request succeeds the invoice has been changed, so from that
88
- * point on this function does not throw: neither a malformed PDF body nor a
89
- * failed read-back may turn a completed accounting change into a reported
90
- * failure.
91
- */
92
- export async function markInvoicePrinted(documentNumber) {
93
- const documentId = documentSegment(documentNumber);
94
- const pdf = await fortnoxRequestPdfFromMutation(`invoices/${documentId}/print`);
95
- try {
96
- return { invoice: await getInvoice(documentNumber), confirmed: true, pdf };
89
+ /**
90
+ * Mark an invoice as sent via Fortnox's /print action, and report its resulting
91
+ * state. /print is a GET that changes data, so it is flagged as a mutation to
92
+ * keep it out of the automatic retry path.
93
+ *
94
+ * Once the /print request succeeds the invoice has been changed, so from that
95
+ * point on this function does not throw: neither a malformed PDF body nor a
96
+ * failed read-back may turn a completed accounting change into a reported
97
+ * failure.
98
+ */
99
+ async function markInvoicePrinted(documentNumber) {
100
+ const documentId = documentSegment(documentNumber);
101
+ const pdf = await transport.requestPdfFromMutation(`invoices/${documentId}/print`);
102
+ try {
103
+ return { invoice: await getInvoice(documentNumber), confirmed: true, pdf };
104
+ }
105
+ catch (err) {
106
+ // Fortnox accepted the print request, so the change has most likely been
107
+ // applied but "most likely" is not "confirmed". Deliberately no
108
+ // `Sent: true` here: synthesizing it would present an unverified outcome as
109
+ // established fact about someone's accounting records.
110
+ return {
111
+ invoice: {
112
+ DocumentNumber: documentNumber,
113
+ Note: `Fortnox accepted the print request, but reading the invoice back failed, so its sent status could not be confirmed: ${err instanceof Error ? err.message : String(err)}`,
114
+ },
115
+ confirmed: false,
116
+ pdf,
117
+ };
118
+ }
97
119
  }
98
- catch (err) {
99
- // Fortnox accepted the print request, so the change has most likely been
100
- // applied — but "most likely" is not "confirmed". Deliberately no
101
- // `Sent: true` here: synthesizing it would present an unverified outcome as
102
- // established fact about someone's accounting records.
103
- return {
104
- invoice: {
105
- DocumentNumber: documentNumber,
106
- Note: `Fortnox accepted the print request, but reading the invoice back failed, so its sent status could not be confirmed: ${err instanceof Error ? err.message : String(err)}`,
107
- },
108
- confirmed: false,
109
- pdf,
110
- };
120
+ async function bookkeepInvoice(documentNumber) {
121
+ const data = await transport.request(`invoices/${documentSegment(documentNumber)}/bookkeep`, {
122
+ method: 'PUT',
123
+ });
124
+ return data?.Invoice || {};
111
125
  }
126
+ async function creditInvoice(documentNumber) {
127
+ const data = await transport.request(`invoices/${documentSegment(documentNumber)}/credit`, {
128
+ method: 'PUT',
129
+ });
130
+ return data?.Invoice || {};
131
+ }
132
+ const MIME_BY_EXT = {
133
+ '.pdf': 'application/pdf',
134
+ '.png': 'image/png',
135
+ '.jpg': 'image/jpeg',
136
+ '.jpeg': 'image/jpeg',
137
+ '.gif': 'image/gif',
138
+ '.webp': 'image/webp',
139
+ '.heic': 'image/heic',
140
+ '.tif': 'image/tiff',
141
+ '.tiff': 'image/tiff',
142
+ '.txt': 'text/plain',
143
+ '.csv': 'text/csv',
144
+ '.xml': 'application/xml',
145
+ };
146
+ function mimeForFile(filePath) {
147
+ return MIME_BY_EXT[extname(filePath).toLowerCase()] ?? 'application/octet-stream';
148
+ }
149
+ /**
150
+ * Upload a file for later attachment to a customer invoice.
151
+ *
152
+ * Two details here are not in Fortnox's published OpenAPI spec and were only
153
+ * found by inspecting the Fortnox web app's own network traffic:
154
+ * 1. The upload must go to `/3/archive?folderid=inbox_kf` — not `/3/inbox`
155
+ * (file_not_found on attach) and not a default-folder `/3/archive`
156
+ * (wrong_file_location on attach).
157
+ * 2. The attach call (createInvoiceAttachment below) needs this response's
158
+ * `ArchiveFileId` field, not `Id` — the latter also produces
159
+ * wrong_file_location.
160
+ * Customer invoices have no `invoicefileconnections` — the per-entity
161
+ * connection pattern used by vouchers/supplier invoices/articles/assets never
162
+ * covered Faktura — so this goes through the archive plus the separate,
163
+ * mostly undocumented `/api/fileattachments/attachments-v1` product API
164
+ * instead.
165
+ */
166
+ async function uploadForInvoiceAttachment(filePath) {
167
+ const buf = readFileSync(filePath);
168
+ const form = new FormData();
169
+ form.append('file', new Blob([buf], { type: mimeForFile(filePath) }), basename(filePath));
170
+ const data = await transport.request('/3/archive', {
171
+ method: 'POST',
172
+ params: { folderid: 'inbox_kf' },
173
+ rawBody: form,
174
+ });
175
+ return data.File;
176
+ }
177
+ async function listInvoiceAttachments(documentNumber) {
178
+ return transport.request('/api/fileattachments/attachments-v1', {
179
+ params: { entityid: documentNumber, entitytype: 'F' },
180
+ });
181
+ }
182
+ async function createInvoiceAttachment(documentNumber, fileId, includeOnSend) {
183
+ const data = await transport.request('/api/fileattachments/attachments-v1', {
184
+ method: 'POST',
185
+ body: [{ entityId: Number(documentNumber), entityType: 'F', fileId, includeOnSend }],
186
+ });
187
+ const attachment = data[0];
188
+ if (!attachment) {
189
+ throw new Error(`Fortnox did not return an attachment record for invoice ${documentNumber}.`);
190
+ }
191
+ return attachment;
192
+ }
193
+ // Orchestrate: upload each file to the archive, then attach it in order.
194
+ async function attachInvoiceFiles(params) {
195
+ for (const filePath of params.filePaths) {
196
+ if (!existsSync(filePath))
197
+ throw new Error(`File not found: ${filePath}`);
198
+ if (!statSync(filePath).isFile())
199
+ throw new Error(`Not a file: ${filePath}`);
200
+ }
201
+ const includeOnSend = params.includeOnSend ?? true;
202
+ const results = [];
203
+ for (const filePath of params.filePaths) {
204
+ try {
205
+ const file = await uploadForInvoiceAttachment(filePath);
206
+ const attachment = await createInvoiceAttachment(params.documentNumber, file.ArchiveFileId, includeOnSend);
207
+ results.push({
208
+ fileName: file.Name,
209
+ fileId: attachment.fileId,
210
+ attachmentId: attachment.id,
211
+ includeOnSend: attachment.includeOnSend,
212
+ });
213
+ }
214
+ catch (err) {
215
+ const done = results.map((r) => r.fileName).join(', ') || 'none';
216
+ const detail = err instanceof Error ? err.message : String(err);
217
+ throw new Error(`Failed attaching "${basename(filePath)}" to invoice ${params.documentNumber}: ${detail}. Files already attached this run: ${done}.`);
218
+ }
219
+ }
220
+ return results;
221
+ }
222
+ return {
223
+ listInvoices,
224
+ getInvoice,
225
+ createInvoice,
226
+ updateInvoice,
227
+ sendInvoice,
228
+ getInvoicePdf,
229
+ markInvoicePrinted,
230
+ bookkeepInvoice,
231
+ creditInvoice,
232
+ attachInvoiceFiles,
233
+ listInvoiceAttachments,
234
+ };
112
235
  }
113
- export async function bookkeepInvoice(documentNumber) {
114
- const data = await fortnoxRequest(`invoices/${documentSegment(documentNumber)}/bookkeep`, {
115
- method: 'PUT',
116
- });
117
- return data?.Invoice || {};
118
- }
119
- export async function creditInvoice(documentNumber) {
120
- const data = await fortnoxRequest(`invoices/${documentSegment(documentNumber)}/credit`, {
121
- method: 'PUT',
122
- });
123
- return data?.Invoice || {};
124
- }
236
+ export const { listInvoices, getInvoice, createInvoice, updateInvoice, sendInvoice, getInvoicePdf, markInvoicePrinted, bookkeepInvoice, creditInvoice, attachInvoiceFiles, listInvoiceAttachments, } = createInvoiceOperations(defaultFortnoxTransport);
125
237
  //# sourceMappingURL=invoices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/operations/invoices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/operations/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAyB,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAoEpD,MAAM,UAAU,uBAAuB,CAAC,SAA2B;IACjE,KAAK,UAAU,YAAY,CAAC,SAA6B,EAAE;QACzD,MAAM,WAAW,GAAgD;YAC/D,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,CAC7D,UAAU,EACV,UAAU,EACV,WAAW,CACZ,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;aAC5F,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC,OAAO,CAAmB,UAAU,EAAE;YACrD,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,cAAsB;QAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,YAAY,eAAe,CAAC,cAAc,CAAC,EAAE,CAC9C,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,MAA+B;QAC1D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAkB,UAAU,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SAC1B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,UAAU,aAAa,CAC1B,cAAsB,EACtB,MAA+B;QAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,YAAY,eAAe,CAAC,cAAc,CAAC,EAAE,EAC7C;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACxB,CACF,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,cAAsB,EACtB,SAAqB,OAAO,EAC5B,YAA+B;QAE/B,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;QAEnD,2EAA2E;QAC3E,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACpF,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAkB,YAAY,UAAU,EAAE,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAI,OAAO,CAAC,OAAO,EAAE,gBAA4C,IAAI,EAAE,CAAC;YACtF,MAAM,SAAS,GAA4B,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC3D,IAAI,YAAY,CAAC,OAAO;gBAAE,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC;YACxE,IAAI,YAAY,CAAC,IAAI;gBAAE,SAAS,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/D,IAAI,YAAY,CAAC,GAAG;gBAAE,SAAS,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC;YACnE,MAAM,SAAS,CAAC,OAAO,CAAkB,YAAY,UAAU,EAAE,EAAE;gBACjE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5D,CAAC;QAED,8EAA8E;QAC9E,0EAA0E;QAC1E,gCAAgC;QAChC,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAkB,YAAY,UAAU,IAAI,MAAM,EAAE,EAAE;YACxF,yEAAyE;YACzE,0EAA0E;YAC1E,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,UAAU,aAAa,CAAC,cAAsB;QACjD,OAAO,SAAS,CAAC,UAAU,CAAC,YAAY,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,UAAU,kBAAkB,CAAC,cAAsB;QACtD,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;QAEnD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,YAAY,UAAU,QAAQ,CAAC,CAAC;QAEnF,IAAI,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yEAAyE;YACzE,kEAAkE;YAClE,4EAA4E;YAC5E,uDAAuD;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP,cAAc,EAAE,cAAc;oBAC9B,IAAI,EAAE,uHACJ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE;iBACH;gBACD,SAAS,EAAE,KAAK;gBAChB,GAAG;aACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,cAAsB;QACnD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,YAAY,eAAe,CAAC,cAAc,CAAC,WAAW,EACtD;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAC;QACF,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,cAAsB;QACjD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,YAAY,eAAe,CAAC,cAAc,CAAC,SAAS,EACpD;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAC;QACF,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,WAAW,GAA2B;QAC1C,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,iBAAiB;KAC1B,CAAC;IAEF,SAAS,WAAW,CAAC,QAAgB;QACnC,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,0BAA0B,CAAC;IACpF,CAAC;IAaD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,UAAU,0BAA0B,CAAC,QAAgB;QACxD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAsB,YAAY,EAAE;YACtE,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;YAChC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,sBAAsB,CAAC,cAAsB;QAC1D,OAAO,SAAS,CAAC,OAAO,CAAsB,qCAAqC,EAAE;YACnF,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,uBAAuB,CACpC,cAAsB,EACtB,MAAc,EACd,aAAsB;QAEtB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,qCAAqC,EACrC;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;SACrF,CACF,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2DAA2D,cAAc,GAAG,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,yEAAyE;IACzE,KAAK,UAAU,kBAAkB,CAC/B,MAAgC;QAEhC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC;QACnD,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAC9C,MAAM,CAAC,cAAc,EACrB,IAAI,CAAC,aAAa,EAClB,aAAa,CACd,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,YAAY,EAAE,UAAU,CAAC,EAAE;oBAC3B,aAAa,EAAE,UAAU,CAAC,aAAa;iBACxC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;gBACjE,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,MAAM,CAAC,cAAc,KAAK,MAAM,sCAAsC,IAAI,GAAG,CACrI,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,YAAY;QACZ,UAAU;QACV,aAAa;QACb,aAAa;QACb,WAAW;QACX,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,sBAAsB;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,EACX,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,sBAAsB,GACvB,GAAG,uBAAuB,CAAC,uBAAuB,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- interface OffersResponse {
1
+ import { type FortnoxTransport } from '../fortnox-client.js';
2
+ export interface OffersResponse {
2
3
  Offers: Record<string, unknown>[];
3
4
  MetaInformation?: {
4
5
  '@TotalResources': number;
@@ -15,11 +16,13 @@ export interface ListOffersParams {
15
16
  limit?: number;
16
17
  all?: boolean;
17
18
  }
18
- export declare function listOffers(params?: ListOffersParams): Promise<OffersResponse>;
19
- export declare function getOffer(documentNumber: string): Promise<Record<string, unknown>>;
20
- export declare function createOffer(params: Record<string, unknown>): Promise<Record<string, unknown>>;
21
- export declare function updateOffer(documentNumber: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
22
- export declare function createInvoiceFromOffer(documentNumber: string): Promise<Record<string, unknown>>;
23
- export declare function createOrderFromOffer(documentNumber: string): Promise<Record<string, unknown>>;
24
- export {};
19
+ export declare function createOfferOperations(transport: FortnoxTransport): {
20
+ listOffers: (params?: ListOffersParams) => Promise<OffersResponse>;
21
+ getOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
22
+ createOffer: (params: Record<string, unknown>) => Promise<Record<string, unknown>>;
23
+ updateOffer: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>;
24
+ createInvoiceFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
25
+ createOrderFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
26
+ };
27
+ export declare const listOffers: (params?: ListOffersParams) => Promise<OffersResponse>, getOffer: (documentNumber: string) => Promise<Record<string, unknown>>, createOffer: (params: Record<string, unknown>) => Promise<Record<string, unknown>>, updateOffer: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>, createInvoiceFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>, createOrderFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
25
28
  //# sourceMappingURL=offers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../src/operations/offers.ts"],"names":[],"mappings":"AAOA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,UAAU,CAAC,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAuBvF;AAED,wBAAsB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGvF;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,WAAW,CAC/B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC;AAED,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC"}
1
+ {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../src/operations/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOtF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,gBAAgB;0BAC7B,gBAAgB,KAAQ,OAAO,CAAC,cAAc,CAAC;+BAyBzC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;0BAO9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;kCAS3E,MAAM,UACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;6CAYmB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;2CAQ3C,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EAgB9F;AAED,eAAO,MACL,UAAU,YAlFwB,gBAAgB,KAAQ,OAAO,CAAC,cAAc,CAAC,EAmFjF,QAAQ,mBA1DgC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EA2DjF,WAAW,WApDwB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAqD7F,WAAW,mBA5CO,MAAM,UACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EA2CnC,sBAAsB,mBA/BgC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAgC/F,oBAAoB,mBAxBgC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyB5C,CAAC"}