noxctl 0.7.4 → 0.8.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 (265) hide show
  1. package/README.md +39 -2
  2. package/dist/auth.d.ts +17 -1
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +122 -15
  5. package/dist/auth.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +45 -28
  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 +34 -25
  18. package/dist/fortnox-client.d.ts.map +1 -1
  19. package/dist/fortnox-client.js +130 -50
  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 +301 -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 +14 -30
  86. package/dist/operations/invoices.d.ts.map +1 -1
  87. package/dist/operations/invoices.js +131 -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 +11 -8
  138. package/dist/operations/vouchers.d.ts.map +1 -1
  139. package/dist/operations/vouchers.js +137 -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/strict-mcp-server.d.ts +17 -0
  150. package/dist/strict-mcp-server.d.ts.map +1 -0
  151. package/dist/strict-mcp-server.js +35 -0
  152. package/dist/strict-mcp-server.js.map +1 -0
  153. package/dist/tools/absencetransactions.d.ts +2 -1
  154. package/dist/tools/absencetransactions.d.ts.map +1 -1
  155. package/dist/tools/absencetransactions.js +3 -2
  156. package/dist/tools/absencetransactions.js.map +1 -1
  157. package/dist/tools/analytics.d.ts +2 -1
  158. package/dist/tools/analytics.d.ts.map +1 -1
  159. package/dist/tools/analytics.js +3 -2
  160. package/dist/tools/analytics.js.map +1 -1
  161. package/dist/tools/articles.d.ts +2 -1
  162. package/dist/tools/articles.d.ts.map +1 -1
  163. package/dist/tools/articles.js +3 -2
  164. package/dist/tools/articles.js.map +1 -1
  165. package/dist/tools/attendancetransactions.d.ts +2 -1
  166. package/dist/tools/attendancetransactions.d.ts.map +1 -1
  167. package/dist/tools/attendancetransactions.js +3 -2
  168. package/dist/tools/attendancetransactions.js.map +1 -1
  169. package/dist/tools/bookkeeping.d.ts +2 -1
  170. package/dist/tools/bookkeeping.d.ts.map +1 -1
  171. package/dist/tools/bookkeeping.js +4 -4
  172. package/dist/tools/bookkeeping.js.map +1 -1
  173. package/dist/tools/company.d.ts +2 -1
  174. package/dist/tools/company.d.ts.map +1 -1
  175. package/dist/tools/company.js +3 -2
  176. package/dist/tools/company.js.map +1 -1
  177. package/dist/tools/contracts.d.ts +2 -1
  178. package/dist/tools/contracts.d.ts.map +1 -1
  179. package/dist/tools/contracts.js +3 -2
  180. package/dist/tools/contracts.js.map +1 -1
  181. package/dist/tools/costcenters.d.ts +2 -1
  182. package/dist/tools/costcenters.d.ts.map +1 -1
  183. package/dist/tools/costcenters.js +3 -2
  184. package/dist/tools/costcenters.js.map +1 -1
  185. package/dist/tools/customers.d.ts +2 -1
  186. package/dist/tools/customers.d.ts.map +1 -1
  187. package/dist/tools/customers.js +3 -2
  188. package/dist/tools/customers.js.map +1 -1
  189. package/dist/tools/employees.d.ts +2 -1
  190. package/dist/tools/employees.d.ts.map +1 -1
  191. package/dist/tools/employees.js +3 -2
  192. package/dist/tools/employees.js.map +1 -1
  193. package/dist/tools/financial-reports.d.ts +2 -1
  194. package/dist/tools/financial-reports.d.ts.map +1 -1
  195. package/dist/tools/financial-reports.js +3 -2
  196. package/dist/tools/financial-reports.js.map +1 -1
  197. package/dist/tools/financial-years.d.ts +2 -1
  198. package/dist/tools/financial-years.d.ts.map +1 -1
  199. package/dist/tools/financial-years.js +3 -2
  200. package/dist/tools/financial-years.js.map +1 -1
  201. package/dist/tools/invoice-payments.d.ts +2 -1
  202. package/dist/tools/invoice-payments.d.ts.map +1 -1
  203. package/dist/tools/invoice-payments.js +3 -2
  204. package/dist/tools/invoice-payments.js.map +1 -1
  205. package/dist/tools/invoices.d.ts +2 -1
  206. package/dist/tools/invoices.d.ts.map +1 -1
  207. package/dist/tools/invoices.js +58 -19
  208. package/dist/tools/invoices.js.map +1 -1
  209. package/dist/tools/offers.d.ts +2 -1
  210. package/dist/tools/offers.d.ts.map +1 -1
  211. package/dist/tools/offers.js +50 -19
  212. package/dist/tools/offers.js.map +1 -1
  213. package/dist/tools/orders.d.ts +2 -1
  214. package/dist/tools/orders.d.ts.map +1 -1
  215. package/dist/tools/orders.js +58 -18
  216. package/dist/tools/orders.js.map +1 -1
  217. package/dist/tools/pricelists.d.ts +2 -1
  218. package/dist/tools/pricelists.d.ts.map +1 -1
  219. package/dist/tools/pricelists.js +3 -2
  220. package/dist/tools/pricelists.js.map +1 -1
  221. package/dist/tools/projects.d.ts +2 -1
  222. package/dist/tools/projects.d.ts.map +1 -1
  223. package/dist/tools/projects.js +3 -2
  224. package/dist/tools/projects.js.map +1 -1
  225. package/dist/tools/recurrings.d.ts +2 -1
  226. package/dist/tools/recurrings.d.ts.map +1 -1
  227. package/dist/tools/recurrings.js +3 -2
  228. package/dist/tools/recurrings.js.map +1 -1
  229. package/dist/tools/salarytransactions.d.ts +2 -1
  230. package/dist/tools/salarytransactions.d.ts.map +1 -1
  231. package/dist/tools/salarytransactions.js +3 -2
  232. package/dist/tools/salarytransactions.js.map +1 -1
  233. package/dist/tools/scheduletimes.d.ts +2 -1
  234. package/dist/tools/scheduletimes.d.ts.map +1 -1
  235. package/dist/tools/scheduletimes.js +3 -2
  236. package/dist/tools/scheduletimes.js.map +1 -1
  237. package/dist/tools/status.d.ts.map +1 -1
  238. package/dist/tools/status.js +5 -4
  239. package/dist/tools/status.js.map +1 -1
  240. package/dist/tools/supplier-invoice-payments.d.ts +2 -1
  241. package/dist/tools/supplier-invoice-payments.d.ts.map +1 -1
  242. package/dist/tools/supplier-invoice-payments.js +3 -2
  243. package/dist/tools/supplier-invoice-payments.js.map +1 -1
  244. package/dist/tools/supplier-invoices.d.ts +2 -1
  245. package/dist/tools/supplier-invoices.d.ts.map +1 -1
  246. package/dist/tools/supplier-invoices.js +47 -6
  247. package/dist/tools/supplier-invoices.js.map +1 -1
  248. package/dist/tools/suppliers.d.ts +2 -1
  249. package/dist/tools/suppliers.d.ts.map +1 -1
  250. package/dist/tools/suppliers.js +3 -2
  251. package/dist/tools/suppliers.js.map +1 -1
  252. package/dist/tools/tax.d.ts +2 -1
  253. package/dist/tools/tax.d.ts.map +1 -1
  254. package/dist/tools/tax.js +3 -2
  255. package/dist/tools/tax.js.map +1 -1
  256. package/dist/tools/taxreductions.d.ts +2 -1
  257. package/dist/tools/taxreductions.d.ts.map +1 -1
  258. package/dist/tools/taxreductions.js +3 -2
  259. package/dist/tools/taxreductions.js.map +1 -1
  260. package/dist/version.d.ts +2 -0
  261. package/dist/version.d.ts.map +1 -0
  262. package/dist/version.js +3 -0
  263. package/dist/version.js.map +1 -0
  264. package/docs/embedded.md +60 -0
  265. package/package.json +23 -4
@@ -1,47 +1,51 @@
1
- import { fortnoxRequest } from '../fortnox-client.js';
1
+ import { defaultFortnoxTransport } from '../fortnox-client.js';
2
2
  const VAT_ACCOUNT_NUMBERS = [2610, 2620, 2630, 2640, 2641, 2645, 2650];
3
- export async function generateTaxReport(params) {
4
- const data = await fortnoxRequest('accounts', {
5
- params: {
6
- financialyear: params.financialYear,
7
- },
8
- });
9
- const vatAccounts = data.Accounts.filter((a) => VAT_ACCOUNT_NUMBERS.includes(a.Number));
10
- const voucherData = await fortnoxRequest('vouchers', {
11
- params: {
12
- fromdate: params.fromDate,
13
- todate: params.toDate,
14
- financialyear: params.financialYear,
15
- },
16
- });
17
- const vatSummary = {};
18
- for (const voucher of voucherData.Vouchers || []) {
19
- for (const row of voucher.VoucherRows || []) {
20
- if (VAT_ACCOUNT_NUMBERS.includes(row.Account)) {
21
- if (!vatSummary[row.Account]) {
22
- vatSummary[row.Account] = { debit: 0, credit: 0, description: '' };
3
+ export function createTaxOperations(transport) {
4
+ async function generateTaxReport(params) {
5
+ const data = await transport.request('accounts', {
6
+ params: {
7
+ financialyear: params.financialYear,
8
+ },
9
+ });
10
+ const vatAccounts = data.Accounts.filter((a) => VAT_ACCOUNT_NUMBERS.includes(a.Number));
11
+ const voucherData = await transport.request('vouchers', {
12
+ params: {
13
+ fromdate: params.fromDate,
14
+ todate: params.toDate,
15
+ financialyear: params.financialYear,
16
+ },
17
+ });
18
+ const vatSummary = {};
19
+ for (const voucher of voucherData.Vouchers || []) {
20
+ for (const row of voucher.VoucherRows || []) {
21
+ if (VAT_ACCOUNT_NUMBERS.includes(row.Account)) {
22
+ if (!vatSummary[row.Account]) {
23
+ vatSummary[row.Account] = { debit: 0, credit: 0, description: '' };
24
+ }
25
+ vatSummary[row.Account].debit += row.Debit || 0;
26
+ vatSummary[row.Account].credit += row.Credit || 0;
23
27
  }
24
- vatSummary[row.Account].debit += row.Debit || 0;
25
- vatSummary[row.Account].credit += row.Credit || 0;
26
28
  }
27
29
  }
28
- }
29
- for (const account of vatAccounts) {
30
- if (vatSummary[account.Number]) {
31
- vatSummary[account.Number].description = account.Description;
30
+ for (const account of vatAccounts) {
31
+ if (vatSummary[account.Number]) {
32
+ vatSummary[account.Number].description = account.Description;
33
+ }
32
34
  }
35
+ return {
36
+ period: { from: params.fromDate, to: params.toDate },
37
+ vatAccounts: vatSummary,
38
+ accountBalances: vatAccounts.map((a) => ({
39
+ account: a.Number,
40
+ description: a.Description,
41
+ balance: a.BalanceCarriedForward,
42
+ })),
43
+ summary: {
44
+ note: 'Informativ sammanstallning. Kontrollera beloppen mot Fortnox momsrapport och bokforingen innan deklaration.',
45
+ },
46
+ };
33
47
  }
34
- return {
35
- period: { from: params.fromDate, to: params.toDate },
36
- vatAccounts: vatSummary,
37
- accountBalances: vatAccounts.map((a) => ({
38
- account: a.Number,
39
- description: a.Description,
40
- balance: a.BalanceCarriedForward,
41
- })),
42
- summary: {
43
- note: 'Informativ sammanstallning. Kontrollera beloppen mot Fortnox momsrapport och bokforingen innan deklaration.',
44
- },
45
- };
48
+ return { generateTaxReport };
46
49
  }
50
+ export const { generateTaxReport } = createTaxOperations(defaultFortnoxTransport);
47
51
  //# sourceMappingURL=tax.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tax.js","sourceRoot":"","sources":["../../src/operations/tax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAyBtD,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAevE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAA+B;IACrE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAmB,UAAU,EAAE;QAC9D,MAAM,EAAE;YACN,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAExF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAmB,UAAU,EAAE;QACrE,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAA2E,EAAE,CAAC;IAC9F,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;gBACrE,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;gBAChD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;QACpD,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC,CAAC,MAAM;YACjB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,OAAO,EAAE,CAAC,CAAC,qBAAqB;SACjC,CAAC,CAAC;QACH,OAAO,EAAE;YACP,IAAI,EAAE,6GAA6G;SACpH;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tax.js","sourceRoot":"","sources":["../../src/operations/tax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAyB,MAAM,sBAAsB,CAAC;AAyBtF,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAevE,MAAM,UAAU,mBAAmB,CAAC,SAA2B;IAC7D,KAAK,UAAU,iBAAiB,CAAC,MAA+B;QAC9D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAmB,UAAU,EAAE;YACjE,MAAM,EAAE;gBACN,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAExF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAmB,UAAU,EAAE;YACxE,MAAM,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC;SACF,CAAC,CAAC;QAEH,MAAM,UAAU,GAA2E,EAAE,CAAC;QAC9F,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACjD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;gBAC5C,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC7B,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;oBACrE,CAAC;oBACD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;oBAChD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;YACpD,WAAW,EAAE,UAAU;YACvB,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC,CAAC,MAAM;gBACjB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,OAAO,EAAE,CAAC,CAAC,qBAAqB;aACjC,CAAC,CAAC;YACH,OAAO,EAAE;gBACP,IAAI,EAAE,6GAA6G;aACpH;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- interface TaxReductionsResponse {
1
+ import { type FortnoxTransport } from '../fortnox-client.js';
2
+ export interface TaxReductionsResponse {
2
3
  TaxReductions: Record<string, unknown>[];
3
4
  MetaInformation?: {
4
5
  '@TotalResources': number;
@@ -12,8 +13,10 @@ export interface ListTaxReductionsParams {
12
13
  limit?: number;
13
14
  all?: boolean;
14
15
  }
15
- export declare function listTaxReductions(params?: ListTaxReductionsParams): Promise<TaxReductionsResponse>;
16
- export declare function getTaxReduction(id: number): Promise<Record<string, unknown>>;
17
- export declare function createTaxReduction(params: Record<string, unknown>): Promise<Record<string, unknown>>;
18
- export {};
16
+ export declare function createTaxReductionOperations(transport: FortnoxTransport): {
17
+ listTaxReductions: (params?: ListTaxReductionsParams) => Promise<TaxReductionsResponse>;
18
+ getTaxReduction: (id: number) => Promise<Record<string, unknown>>;
19
+ createTaxReduction: (params: Record<string, unknown>) => Promise<Record<string, unknown>>;
20
+ };
21
+ export declare const listTaxReductions: (params?: ListTaxReductionsParams) => Promise<TaxReductionsResponse>, getTaxReduction: (id: number) => Promise<Record<string, unknown>>, createTaxReduction: (params: Record<string, unknown>) => Promise<Record<string, unknown>>;
19
22
  //# sourceMappingURL=taxreductions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"taxreductions.d.ts","sourceRoot":"","sources":["../../src/operations/taxreductions.ts"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,uBAAuB;IACtC,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,iBAAiB,CACrC,MAAM,GAAE,uBAA4B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAoBhC;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGlF;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC"}
1
+ {"version":3,"file":"taxreductions.d.ts","sourceRoot":"","sources":["../../src/operations/taxreductions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMtF,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,uBAAuB;IACtC,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,4BAA4B,CAAC,SAAS,EAAE,gBAAgB;iCAE5D,uBAAuB,KAC9B,OAAO,CAAC,qBAAqB,CAAC;0BAsBE,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iCAMlE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EASpC;AAED,eAAO,MAAQ,iBAAiB,YAzCpB,uBAAuB,KAC9B,OAAO,CAAC,qBAAqB,CAAC,EAwCD,eAAe,OAlBZ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAkB3B,kBAAkB,WAZzD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYmB,CAAC"}
@@ -1,28 +1,32 @@
1
- import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
- export async function listTaxReductions(params = {}) {
3
- const queryParams = {
4
- ...(params.filter ? { filter: params.filter } : {}),
5
- };
6
- if (params.all) {
7
- const { items, totalResources } = await fetchAllPages('taxreductions', 'TaxReductions', queryParams);
8
- return {
9
- TaxReductions: items,
10
- MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
1
+ import { defaultFortnoxTransport } from '../fortnox-client.js';
2
+ export function createTaxReductionOperations(transport) {
3
+ async function listTaxReductions(params = {}) {
4
+ const queryParams = {
5
+ ...(params.filter ? { filter: params.filter } : {}),
11
6
  };
7
+ if (params.all) {
8
+ const { items, totalResources } = await transport.fetchAllPages('taxreductions', 'TaxReductions', queryParams);
9
+ return {
10
+ TaxReductions: items,
11
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
12
+ };
13
+ }
14
+ return transport.request('taxreductions', {
15
+ params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
16
+ });
12
17
  }
13
- return fortnoxRequest('taxreductions', {
14
- params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
15
- });
16
- }
17
- export async function getTaxReduction(id) {
18
- const data = await fortnoxRequest(`taxreductions/${id}`);
19
- return data.TaxReduction;
20
- }
21
- export async function createTaxReduction(params) {
22
- const data = await fortnoxRequest('taxreductions', {
23
- method: 'POST',
24
- body: { TaxReduction: params },
25
- });
26
- return data.TaxReduction;
18
+ async function getTaxReduction(id) {
19
+ const data = await transport.request(`taxreductions/${id}`);
20
+ return data.TaxReduction;
21
+ }
22
+ async function createTaxReduction(params) {
23
+ const data = await transport.request('taxreductions', {
24
+ method: 'POST',
25
+ body: { TaxReduction: params },
26
+ });
27
+ return data.TaxReduction;
28
+ }
29
+ return { listTaxReductions, getTaxReduction, createTaxReduction };
27
30
  }
31
+ export const { listTaxReductions, getTaxReduction, createTaxReduction } = createTaxReductionOperations(defaultFortnoxTransport);
28
32
  //# sourceMappingURL=taxreductions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taxreductions.js","sourceRoot":"","sources":["../../src/operations/taxreductions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBrE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAkC,EAAE;IAEpC,MAAM,WAAW,GAAgD;QAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;IAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,eAAe,EACf,eAAe,EACf,WAAW,CACZ,CAAC;QACF,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAwB,eAAe,EAAE;QAC5D,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;KAC/E,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAuB,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAuB,eAAe,EAAE;QACvE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"taxreductions.js","sourceRoot":"","sources":["../../src/operations/taxreductions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAyB,MAAM,sBAAsB,CAAC;AAkBtF,MAAM,UAAU,4BAA4B,CAAC,SAA2B;IACtE,KAAK,UAAU,iBAAiB,CAC9B,SAAkC,EAAE;QAEpC,MAAM,WAAW,GAAgD;YAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC;QAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,CAC7D,eAAe,EACf,eAAe,EACf,WAAW,CACZ,CAAC;YACF,OAAO;gBACL,aAAa,EAAE,KAAK;gBACpB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;aAC5F,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC,OAAO,CAAwB,eAAe,EAAE;YAC/D,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,eAAe,CAAC,EAAU;QACvC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAuB,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,UAAU,kBAAkB,CAC/B,MAA+B;QAE/B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAuB,eAAe,EAAE;YAC1E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;SAC/B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,GACrE,4BAA4B,CAAC,uBAAuB,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- interface VouchersResponse {
1
+ import { type FortnoxTransport } from '../fortnox-client.js';
2
+ export interface VouchersResponse {
2
3
  Vouchers: Record<string, unknown>[];
3
4
  MetaInformation?: {
4
5
  '@TotalResources': number;
@@ -15,11 +16,6 @@ export interface ListVouchersParams {
15
16
  limit?: number;
16
17
  all?: boolean;
17
18
  }
18
- export declare function listVouchers(params?: ListVouchersParams): Promise<VouchersResponse>;
19
- export declare function getVoucher(series: string, voucherNumber: string, financialYear?: number): Promise<Record<string, unknown>>;
20
- export declare function createVoucher(params: Record<string, unknown>): Promise<Record<string, unknown>>;
21
- export declare function uploadInboxFile(filePath: string): Promise<Record<string, unknown>>;
22
- export declare function createVoucherFileConnection(series: string, voucherNumber: string, fileId: string, financialYear?: number): Promise<Record<string, unknown>>;
23
19
  export interface AttachVoucherFilesParams {
24
20
  series: string;
25
21
  voucherNumber: string;
@@ -32,6 +28,13 @@ export interface VoucherFileAttachment {
32
28
  voucherYear: number;
33
29
  connection: Record<string, unknown>;
34
30
  }
35
- export declare function attachVoucherFiles(params: AttachVoucherFilesParams): Promise<VoucherFileAttachment[]>;
36
- export {};
31
+ export declare function createVoucherOperations(transport: FortnoxTransport): {
32
+ listVouchers: (params?: ListVouchersParams) => Promise<VouchersResponse>;
33
+ getVoucher: (series: string, voucherNumber: string, financialYear?: number) => Promise<Record<string, unknown>>;
34
+ createVoucher: (params: Record<string, unknown>) => Promise<Record<string, unknown>>;
35
+ uploadInboxFile: (filePath: string) => Promise<Record<string, unknown>>;
36
+ createVoucherFileConnection: (series: string, voucherNumber: string, fileId: string, financialYear?: number) => Promise<Record<string, unknown>>;
37
+ attachVoucherFiles: (params: AttachVoucherFilesParams) => Promise<VoucherFileAttachment[]>;
38
+ };
39
+ export declare const listVouchers: (params?: ListVouchersParams) => Promise<VouchersResponse>, getVoucher: (series: string, voucherNumber: string, financialYear?: number) => Promise<Record<string, unknown>>, createVoucher: (params: Record<string, unknown>) => Promise<Record<string, unknown>>, uploadInboxFile: (filePath: string) => Promise<Record<string, unknown>>, createVoucherFileConnection: (series: string, voucherNumber: string, fileId: string, financialYear?: number) => Promise<Record<string, unknown>>, attachVoucherFiles: (params: AttachVoucherFilesParams) => Promise<VoucherFileAttachment[]>;
37
40
  //# sourceMappingURL=vouchers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vouchers.d.ts","sourceRoot":"","sources":["../../src/operations/vouchers.ts"],"names":[],"mappings":"AAUA,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,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,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,CAwB7F;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQlC;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC;AA6BD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMxF;AAMD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAalC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAuBD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAyClC"}
1
+ {"version":3,"file":"vouchers.d.ts","sourceRoot":"","sources":["../../src/operations/vouchers.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAQtF,MAAM,WAAW,gBAAgB;IAC/B,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,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,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,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,gBAAgB;4BAG7B,kBAAkB,KAAQ,OAAO,CAAC,gBAAgB,CAAC;yBA2B7E,MAAM,iBACC,MAAM,kBACL,MAAM,KACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;4BAUE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCAwCtD,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;0CAgBxE,MAAM,iBACC,MAAM,UACb,MAAM,kBACE,MAAM,KACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iCAwCzB,wBAAwB,KAC/B,OAAO,CAAC,qBAAqB,EAAE,CAAC;EAmDpC;AAED,eAAO,MACL,YAAY,YAnMwB,kBAAkB,KAAQ,OAAO,CAAC,gBAAgB,CAAC,EAoMvF,UAAU,WAzKA,MAAM,iBACC,MAAM,kBACL,MAAM,KACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAuKnC,aAAa,WA7JwB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EA8J/F,eAAe,aAtH0B,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAuHlF,2BAA2B,WAvGjB,MAAM,iBACC,MAAM,UACb,MAAM,kBACE,MAAM,KACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAoGnC,kBAAkB,WA5DR,wBAAwB,KAC/B,OAAO,CAAC,qBAAqB,EAAE,CA4DgB,CAAC"}
@@ -1,138 +1,153 @@
1
1
  import { readFileSync, existsSync, statSync } from 'node:fs';
2
2
  import { basename, extname } from 'node:path';
3
- import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
3
+ import { defaultFortnoxTransport } from '../fortnox-client.js';
4
4
  import { voucherSeriesSegment } from '../identifiers.js';
5
- import { listFinancialYears } from './financial-years.js';
6
- export async function listVouchers(params = {}) {
7
- const subpath = params.series ? `sublist/${voucherSeriesSegment(params.series)}` : '';
8
- const endpoint = `vouchers/${subpath}`;
9
- const queryParams = {
10
- financialyear: params.financialYear,
11
- fromdate: params.fromDate,
12
- todate: params.toDate,
13
- };
14
- if (params.all) {
15
- const { items, totalResources } = await fetchAllPages(endpoint, 'Vouchers', queryParams);
16
- return {
17
- Vouchers: items,
18
- MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
5
+ import { createFinancialYearOperations } from './financial-years.js';
6
+ export function createVoucherOperations(transport) {
7
+ const { listFinancialYears } = createFinancialYearOperations(transport);
8
+ async function listVouchers(params = {}) {
9
+ const subpath = params.series ? `sublist/${voucherSeriesSegment(params.series)}` : '';
10
+ const endpoint = `vouchers/${subpath}`;
11
+ const queryParams = {
12
+ financialyear: params.financialYear,
13
+ fromdate: params.fromDate,
14
+ todate: params.toDate,
19
15
  };
16
+ if (params.all) {
17
+ const { items, totalResources } = await transport.fetchAllPages(endpoint, 'Vouchers', queryParams);
18
+ return {
19
+ Vouchers: items,
20
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
21
+ };
22
+ }
23
+ return transport.request(endpoint, {
24
+ params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
25
+ });
20
26
  }
21
- return fortnoxRequest(endpoint, {
22
- params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
23
- });
24
- }
25
- export async function getVoucher(series, voucherNumber, financialYear) {
26
- const params = {};
27
- if (financialYear)
28
- params.financialyear = financialYear;
29
- const data = await fortnoxRequest(`vouchers/${voucherSeriesSegment(series)}/${encodeURIComponent(voucherNumber)}`, { params });
30
- return data.Voucher;
31
- }
32
- export async function createVoucher(params) {
33
- const data = await fortnoxRequest('vouchers', {
34
- method: 'POST',
35
- body: {
36
- Voucher: {
37
- ...params,
38
- VoucherSeries: params.VoucherSeries || 'A',
39
- },
40
- },
41
- });
42
- return data.Voucher;
43
- }
44
- const MIME_BY_EXT = {
45
- '.pdf': 'application/pdf',
46
- '.png': 'image/png',
47
- '.jpg': 'image/jpeg',
48
- '.jpeg': 'image/jpeg',
49
- '.gif': 'image/gif',
50
- '.webp': 'image/webp',
51
- '.heic': 'image/heic',
52
- '.tif': 'image/tiff',
53
- '.tiff': 'image/tiff',
54
- '.txt': 'text/plain',
55
- '.csv': 'text/csv',
56
- '.xml': 'application/xml',
57
- };
58
- function mimeForFile(filePath) {
59
- return MIME_BY_EXT[extname(filePath).toLowerCase()] ?? 'application/octet-stream';
60
- }
61
- // Upload a single file to the Fortnox inbox; returns the archived File object (has .Id).
62
- export async function uploadInboxFile(filePath) {
63
- const buf = readFileSync(filePath);
64
- const form = new FormData();
65
- form.append('file', new Blob([buf], { type: mimeForFile(filePath) }), basename(filePath));
66
- const data = await fortnoxRequest('inbox', { method: 'POST', rawBody: form });
67
- return data.File;
68
- }
69
- // Link an already-uploaded file (by id) to a voucher. The financial year goes in
70
- // the `financialyear` query param, NOT the body: Fortnox treats VoucherYear in
71
- // the body as read-only (rejects it with error 2000321) and derives it from the
72
- // voucher itself.
73
- export async function createVoucherFileConnection(series, voucherNumber, fileId, financialYear) {
74
- const data = await fortnoxRequest('voucherfileconnections', {
75
- method: 'POST',
76
- body: {
77
- VoucherFileConnection: {
78
- FileId: fileId,
79
- VoucherSeries: series,
80
- VoucherNumber: voucherNumber,
27
+ async function getVoucher(series, voucherNumber, financialYear) {
28
+ const params = {};
29
+ if (financialYear)
30
+ params.financialyear = financialYear;
31
+ const data = await transport.request(`vouchers/${voucherSeriesSegment(series)}/${encodeURIComponent(voucherNumber)}`, { params });
32
+ return data.Voucher;
33
+ }
34
+ async function createVoucher(params) {
35
+ const data = await transport.request('vouchers', {
36
+ method: 'POST',
37
+ body: {
38
+ Voucher: {
39
+ ...params,
40
+ VoucherSeries: params.VoucherSeries || 'A',
41
+ },
81
42
  },
82
- },
83
- params: financialYear !== undefined ? { financialyear: financialYear } : undefined,
84
- });
85
- return data.VoucherFileConnection;
86
- }
87
- // Resolve the financial year from the voucher's transaction date when not given.
88
- // Throws (rather than silently leaving the year undefined) when it can't be
89
- // determined, so the user knows to pass --year explicitly — e.g. for a voucher
90
- // in a past financial year, which getVoucher can't fetch without the year.
91
- async function resolveVoucherFinancialYear(series, voucherNumber) {
92
- const voucher = await getVoucher(series, voucherNumber);
93
- const date = voucher.TransactionDate;
94
- if (!date) {
95
- throw new Error(`Could not determine the financial year: voucher ${series}/${voucherNumber} has no TransactionDate. Pass --year explicitly.`);
43
+ });
44
+ return data.Voucher;
96
45
  }
97
- const fy = await listFinancialYears({ date });
98
- const list = (fy.FinancialYears ?? []);
99
- if (!list.length) {
100
- throw new Error(`No financial year found for voucher date ${date}. Pass --year explicitly.`);
46
+ const MIME_BY_EXT = {
47
+ '.pdf': 'application/pdf',
48
+ '.png': 'image/png',
49
+ '.jpg': 'image/jpeg',
50
+ '.jpeg': 'image/jpeg',
51
+ '.gif': 'image/gif',
52
+ '.webp': 'image/webp',
53
+ '.heic': 'image/heic',
54
+ '.tif': 'image/tiff',
55
+ '.tiff': 'image/tiff',
56
+ '.txt': 'text/plain',
57
+ '.csv': 'text/csv',
58
+ '.xml': 'application/xml',
59
+ };
60
+ function mimeForFile(filePath) {
61
+ return MIME_BY_EXT[extname(filePath).toLowerCase()] ?? 'application/octet-stream';
101
62
  }
102
- return Number(list[0].Id);
103
- }
104
- // Orchestrate: resolve year if omitted, then upload+connect each file in order.
105
- export async function attachVoucherFiles(params) {
106
- // Pre-flight: confirm every file exists before uploading any of them, so a
107
- // typo in a later path can't leave earlier files orphaned in the inbox.
108
- for (const filePath of params.filePaths) {
109
- if (!existsSync(filePath)) {
110
- throw new Error(`File not found: ${filePath}`);
63
+ // Upload a single file to the Fortnox inbox; returns the archived File object (has .Id).
64
+ async function uploadInboxFile(filePath) {
65
+ const buf = readFileSync(filePath);
66
+ const form = new FormData();
67
+ form.append('file', new Blob([buf], { type: mimeForFile(filePath) }), basename(filePath));
68
+ const data = await transport.request('inbox', {
69
+ method: 'POST',
70
+ rawBody: form,
71
+ });
72
+ return data.File;
73
+ }
74
+ // Link an already-uploaded file (by id) to a voucher. The financial year goes in
75
+ // the `financialyear` query param, NOT the body: Fortnox treats VoucherYear in
76
+ // the body as read-only (rejects it with error 2000321) and derives it from the
77
+ // voucher itself.
78
+ async function createVoucherFileConnection(series, voucherNumber, fileId, financialYear) {
79
+ const data = await transport.request('voucherfileconnections', {
80
+ method: 'POST',
81
+ body: {
82
+ VoucherFileConnection: {
83
+ FileId: fileId,
84
+ VoucherSeries: series,
85
+ VoucherNumber: voucherNumber,
86
+ },
87
+ },
88
+ params: financialYear !== undefined ? { financialyear: financialYear } : undefined,
89
+ });
90
+ return data.VoucherFileConnection;
91
+ }
92
+ // Resolve the financial year from the voucher's transaction date when not given.
93
+ // Throws (rather than silently leaving the year undefined) when it can't be
94
+ // determined, so the user knows to pass --year explicitly — e.g. for a voucher
95
+ // in a past financial year, which getVoucher can't fetch without the year.
96
+ async function resolveVoucherFinancialYear(series, voucherNumber) {
97
+ const voucher = await getVoucher(series, voucherNumber);
98
+ const date = voucher.TransactionDate;
99
+ if (!date) {
100
+ throw new Error(`Could not determine the financial year: voucher ${series}/${voucherNumber} has no TransactionDate. Pass --year explicitly.`);
111
101
  }
112
- if (!statSync(filePath).isFile()) {
113
- throw new Error(`Not a file: ${filePath}`);
102
+ const fy = await listFinancialYears({ date });
103
+ const list = (fy.FinancialYears ?? []);
104
+ if (!list.length) {
105
+ throw new Error(`No financial year found for voucher date ${date}. Pass --year explicitly.`);
114
106
  }
107
+ return Number(list[0].Id);
115
108
  }
116
- const year = params.financialYear ??
117
- (await resolveVoucherFinancialYear(params.series, params.voucherNumber));
118
- const results = [];
119
- for (const filePath of params.filePaths) {
120
- try {
121
- const file = await uploadInboxFile(filePath);
122
- // Per Fortnox docs (best-practices/vouchers): use the uploaded file's
123
- // `Id` as the VoucherFileConnection FileId — NOT ArchiveFileId.
124
- const fileId = String(file.Id);
125
- const connection = await createVoucherFileConnection(params.series, params.voucherNumber, fileId, year);
126
- results.push({ fileName: basename(filePath), fileId, voucherYear: year, connection });
109
+ // Orchestrate: resolve year if omitted, then upload+connect each file in order.
110
+ async function attachVoucherFiles(params) {
111
+ // Pre-flight: confirm every file exists before uploading any of them, so a
112
+ // typo in a later path can't leave earlier files orphaned in the inbox.
113
+ for (const filePath of params.filePaths) {
114
+ if (!existsSync(filePath)) {
115
+ throw new Error(`File not found: ${filePath}`);
116
+ }
117
+ if (!statSync(filePath).isFile()) {
118
+ throw new Error(`Not a file: ${filePath}`);
119
+ }
127
120
  }
128
- catch (err) {
129
- // Surface what already succeeded so the user can locate/clean up any files
130
- // uploaded to the inbox before this failure.
131
- const done = results.map((r) => r.fileName).join(', ') || 'none';
132
- const detail = err instanceof Error ? err.message : String(err);
133
- throw new Error(`Failed attaching "${basename(filePath)}" to voucher ${params.series}/${params.voucherNumber}: ${detail}. Files already attached this run: ${done}.`);
121
+ const year = params.financialYear ??
122
+ (await resolveVoucherFinancialYear(params.series, params.voucherNumber));
123
+ const results = [];
124
+ for (const filePath of params.filePaths) {
125
+ try {
126
+ const file = await uploadInboxFile(filePath);
127
+ // Per Fortnox docs (best-practices/vouchers): use the uploaded file's
128
+ // `Id` as the VoucherFileConnection FileId — NOT ArchiveFileId.
129
+ const fileId = String(file.Id);
130
+ const connection = await createVoucherFileConnection(params.series, params.voucherNumber, fileId, year);
131
+ results.push({ fileName: basename(filePath), fileId, voucherYear: year, connection });
132
+ }
133
+ catch (err) {
134
+ // Surface what already succeeded so the user can locate/clean up any files
135
+ // uploaded to the inbox before this failure.
136
+ const done = results.map((r) => r.fileName).join(', ') || 'none';
137
+ const detail = err instanceof Error ? err.message : String(err);
138
+ throw new Error(`Failed attaching "${basename(filePath)}" to voucher ${params.series}/${params.voucherNumber}: ${detail}. Files already attached this run: ${done}.`);
139
+ }
134
140
  }
141
+ return results;
135
142
  }
136
- return results;
143
+ return {
144
+ listVouchers,
145
+ getVoucher,
146
+ createVoucher,
147
+ uploadInboxFile,
148
+ createVoucherFileConnection,
149
+ attachVoucherFiles,
150
+ };
137
151
  }
152
+ export const { listVouchers, getVoucher, createVoucher, uploadInboxFile, createVoucherFileConnection, attachVoucherFiles, } = createVoucherOperations(defaultFortnoxTransport);
138
153
  //# sourceMappingURL=vouchers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vouchers.js","sourceRoot":"","sources":["../../src/operations/vouchers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vouchers.js","sourceRoot":"","sources":["../../src/operations/vouchers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { SchemaAuditMapping } from './schema-audit.js';
2
+ /**
3
+ * First-wave write-schema coverage mappings.
4
+ *
5
+ * Component names are already part of the committed opaque API fingerprint. The
6
+ * OpenAPI document and its property names remain in the git-ignored local cache.
7
+ */
8
+ export declare const SCHEMA_AUDIT_MAPPINGS: readonly SchemaAuditMapping[];
9
+ //# sourceMappingURL=schema-audit-mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-audit-mappings.d.ts","sourceRoot":"","sources":["../src/schema-audit-mappings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAqC9D,CAAC"}