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,4 @@
1
- import { fortnoxRequest } from '../fortnox-client.js';
1
+ import { defaultFortnoxTransport } from '../fortnox-client.js';
2
2
  const VOUCHER_DETAIL_CONCURRENCY = 5;
3
3
  // BAS account plan groupings
4
4
  const INCOME_STATEMENT_GROUPS = [
@@ -35,180 +35,184 @@ const BALANCE_SHEET_LIABILITY_GROUPS = [
35
35
  { range: [2900, 2999], label: 'Upplupna kostnader (Accrued expenses)' },
36
36
  ];
37
37
  /** Fetch all pages of accounts for a financial year. */
38
- async function fetchAllAccounts(financialYear) {
39
- const all = [];
40
- let page = 1;
41
- let totalPages = 1;
42
- do {
43
- const data = await fortnoxRequest('accounts', {
44
- params: { financialyear: financialYear, page },
45
- });
46
- all.push(...data.Accounts);
47
- totalPages = data.MetaInformation?.['@TotalPages'] ?? 1;
48
- page++;
49
- } while (page <= totalPages);
50
- return all;
51
- }
52
- /** Fetch all vouchers (list + individual details) and sum debit/credit per account. */
53
- async function fetchVoucherSums(financialYear, fromDate, toDate) {
54
- const sums = new Map();
55
- // Step 1: List all vouchers to get series/number identifiers
56
- const vouchers = [];
57
- let page = 1;
58
- let totalPages = 1;
59
- do {
60
- const data = await fortnoxRequest('vouchers', {
61
- params: {
62
- financialyear: financialYear,
63
- fromdate: fromDate,
64
- todate: toDate,
65
- page,
66
- limit: 100,
67
- },
68
- });
69
- for (const v of data.Vouchers ?? []) {
70
- vouchers.push({
71
- series: v.VoucherSeries,
72
- number: v.VoucherNumber,
38
+ export function createFinancialReportOperations(transport) {
39
+ async function fetchAllAccounts(financialYear) {
40
+ const all = [];
41
+ let page = 1;
42
+ let totalPages = 1;
43
+ do {
44
+ const data = await transport.request('accounts', {
45
+ params: { financialyear: financialYear, page },
73
46
  });
74
- }
75
- totalPages = data.MetaInformation?.['@TotalPages'] ?? 1;
76
- page++;
77
- } while (page <= totalPages);
78
- // Step 2: Fetch voucher details concurrently. The shared client still owns
79
- // rate limiting; this pool only keeps network latency from serialising reads.
80
- const yearParam = financialYear ? `?financialyear=${financialYear}` : '';
81
- let nextVoucherIndex = 0;
82
- let failure;
83
- async function worker() {
84
- while (failure === undefined) {
85
- const voucherIndex = nextVoucherIndex++;
86
- if (voucherIndex >= vouchers.length)
87
- return;
88
- const voucher = vouchers[voucherIndex];
89
- try {
90
- const detail = await fortnoxRequest(`vouchers/${encodeURIComponent(voucher.series)}/${voucher.number}${yearParam}`);
91
- for (const row of detail.Voucher.VoucherRows ?? []) {
92
- if (row.Removed === true)
93
- continue;
94
- const existing = sums.get(row.Account) ?? { debit: 0, credit: 0 };
95
- existing.debit += row.Debit || 0;
96
- existing.credit += row.Credit || 0;
97
- sums.set(row.Account, existing);
98
- }
47
+ all.push(...data.Accounts);
48
+ totalPages = data.MetaInformation?.['@TotalPages'] ?? 1;
49
+ page++;
50
+ } while (page <= totalPages);
51
+ return all;
52
+ }
53
+ /** Fetch all vouchers (list + individual details) and sum debit/credit per account. */
54
+ async function fetchVoucherSums(financialYear, fromDate, toDate) {
55
+ const sums = new Map();
56
+ // Step 1: List all vouchers to get series/number identifiers
57
+ const vouchers = [];
58
+ let page = 1;
59
+ let totalPages = 1;
60
+ do {
61
+ const data = await transport.request('vouchers', {
62
+ params: {
63
+ financialyear: financialYear,
64
+ fromdate: fromDate,
65
+ todate: toDate,
66
+ page,
67
+ limit: 100,
68
+ },
69
+ });
70
+ for (const v of data.Vouchers ?? []) {
71
+ vouchers.push({
72
+ series: v.VoucherSeries,
73
+ number: v.VoucherNumber,
74
+ });
99
75
  }
100
- catch (error) {
101
- failure = error;
76
+ totalPages = data.MetaInformation?.['@TotalPages'] ?? 1;
77
+ page++;
78
+ } while (page <= totalPages);
79
+ // Step 2: Fetch voucher details concurrently. The shared client still owns
80
+ // rate limiting; this pool only keeps network latency from serialising reads.
81
+ const yearParam = financialYear ? `?financialyear=${financialYear}` : '';
82
+ let nextVoucherIndex = 0;
83
+ let failure;
84
+ async function worker() {
85
+ while (failure === undefined) {
86
+ const voucherIndex = nextVoucherIndex++;
87
+ if (voucherIndex >= vouchers.length)
88
+ return;
89
+ const voucher = vouchers[voucherIndex];
90
+ try {
91
+ const detail = await transport.request(`vouchers/${encodeURIComponent(voucher.series)}/${voucher.number}${yearParam}`);
92
+ for (const row of detail.Voucher.VoucherRows ?? []) {
93
+ if (row.Removed === true)
94
+ continue;
95
+ const existing = sums.get(row.Account) ?? { debit: 0, credit: 0 };
96
+ existing.debit += row.Debit || 0;
97
+ existing.credit += row.Credit || 0;
98
+ sums.set(row.Account, existing);
99
+ }
100
+ }
101
+ catch (error) {
102
+ failure = error;
103
+ }
102
104
  }
103
105
  }
106
+ const workerCount = Math.min(VOUCHER_DETAIL_CONCURRENCY, vouchers.length);
107
+ await Promise.all(Array.from({ length: workerCount }, () => worker()));
108
+ if (failure !== undefined)
109
+ throw failure;
110
+ return sums;
104
111
  }
105
- const workerCount = Math.min(VOUCHER_DETAIL_CONCURRENCY, vouchers.length);
106
- await Promise.all(Array.from({ length: workerCount }, () => worker()));
107
- if (failure !== undefined)
108
- throw failure;
109
- return sums;
110
- }
111
- /** Compute closing balances: BalanceBroughtForward + debit - credit for each account. */
112
- async function computeBalances(financialYear, fromDate, toDate) {
113
- const [accounts, voucherSums] = await Promise.all([
114
- fetchAllAccounts(financialYear),
115
- fetchVoucherSums(financialYear, fromDate, toDate),
116
- ]);
117
- return accounts
118
- .map((a) => {
119
- const movement = voucherSums.get(a.Number);
120
- const debit = movement?.debit ?? 0;
121
- const credit = movement?.credit ?? 0;
122
- // For period-scoped income statements (fromDate set), skip BBF
123
- // since we only want the period's movements for P&L accounts.
124
- // For balance sheets, always include BBF.
125
- const bbf = fromDate ? 0 : a.BalanceBroughtForward;
126
- const closingBalance = bbf + debit - credit;
112
+ /** Compute closing balances: BalanceBroughtForward + debit - credit for each account. */
113
+ async function computeBalances(financialYear, fromDate, toDate) {
114
+ const [accounts, voucherSums] = await Promise.all([
115
+ fetchAllAccounts(financialYear),
116
+ fetchVoucherSums(financialYear, fromDate, toDate),
117
+ ]);
118
+ return accounts
119
+ .map((a) => {
120
+ const movement = voucherSums.get(a.Number);
121
+ const debit = movement?.debit ?? 0;
122
+ const credit = movement?.credit ?? 0;
123
+ // For period-scoped income statements (fromDate set), skip BBF
124
+ // since we only want the period's movements for P&L accounts.
125
+ // For balance sheets, always include BBF.
126
+ const bbf = fromDate ? 0 : a.BalanceBroughtForward;
127
+ const closingBalance = bbf + debit - credit;
128
+ return {
129
+ number: a.Number,
130
+ description: a.Description,
131
+ closingBalance,
132
+ };
133
+ })
134
+ .filter((a) => a.closingBalance !== 0);
135
+ }
136
+ /** Compute balance sheet balances: always includes BBF + movements up to toDate. */
137
+ async function computeBalanceSheetBalances(financialYear, toDate) {
138
+ const [accounts, voucherSums] = await Promise.all([
139
+ fetchAllAccounts(financialYear),
140
+ fetchVoucherSums(financialYear, undefined, toDate),
141
+ ]);
142
+ return accounts
143
+ .map((a) => {
144
+ const movement = voucherSums.get(a.Number);
145
+ const debit = movement?.debit ?? 0;
146
+ const credit = movement?.credit ?? 0;
147
+ const closingBalance = a.BalanceBroughtForward + debit - credit;
148
+ return {
149
+ number: a.Number,
150
+ description: a.Description,
151
+ closingBalance,
152
+ };
153
+ })
154
+ .filter((a) => a.closingBalance !== 0);
155
+ }
156
+ function buildSection(balances, range, label) {
157
+ const lines = balances
158
+ .filter((a) => a.number >= range[0] && a.number <= range[1])
159
+ .map((a) => ({
160
+ account: a.number,
161
+ description: a.description,
162
+ balance: a.closingBalance,
163
+ }));
164
+ if (lines.length === 0)
165
+ return null;
127
166
  return {
128
- number: a.Number,
129
- description: a.Description,
130
- closingBalance,
167
+ label,
168
+ lines,
169
+ total: lines.reduce((sum, l) => sum + l.balance, 0),
131
170
  };
132
- })
133
- .filter((a) => a.closingBalance !== 0);
134
- }
135
- /** Compute balance sheet balances: always includes BBF + movements up to toDate. */
136
- async function computeBalanceSheetBalances(financialYear, toDate) {
137
- const [accounts, voucherSums] = await Promise.all([
138
- fetchAllAccounts(financialYear),
139
- fetchVoucherSums(financialYear, undefined, toDate),
140
- ]);
141
- return accounts
142
- .map((a) => {
143
- const movement = voucherSums.get(a.Number);
144
- const debit = movement?.debit ?? 0;
145
- const credit = movement?.credit ?? 0;
146
- const closingBalance = a.BalanceBroughtForward + debit - credit;
171
+ }
172
+ async function getIncomeStatement(params = {}) {
173
+ const balances = await computeBalances(params.financialYear, params.fromDate, params.toDate);
174
+ const sections = [];
175
+ for (const group of INCOME_STATEMENT_GROUPS) {
176
+ const section = buildSection(balances, group.range, group.label);
177
+ if (section)
178
+ sections.push(section);
179
+ }
180
+ const netResult = sections.reduce((sum, s) => sum + s.total, 0);
147
181
  return {
148
- number: a.Number,
149
- description: a.Description,
150
- closingBalance,
182
+ type: 'income-statement',
183
+ financialYear: params.financialYear,
184
+ period: params.fromDate || params.toDate
185
+ ? { from: params.fromDate ?? '', to: params.toDate ?? '' }
186
+ : undefined,
187
+ sections,
188
+ netResult,
151
189
  };
152
- })
153
- .filter((a) => a.closingBalance !== 0);
154
- }
155
- function buildSection(balances, range, label) {
156
- const lines = balances
157
- .filter((a) => a.number >= range[0] && a.number <= range[1])
158
- .map((a) => ({
159
- account: a.number,
160
- description: a.description,
161
- balance: a.closingBalance,
162
- }));
163
- if (lines.length === 0)
164
- return null;
165
- return {
166
- label,
167
- lines,
168
- total: lines.reduce((sum, l) => sum + l.balance, 0),
169
- };
170
- }
171
- export async function getIncomeStatement(params = {}) {
172
- const balances = await computeBalances(params.financialYear, params.fromDate, params.toDate);
173
- const sections = [];
174
- for (const group of INCOME_STATEMENT_GROUPS) {
175
- const section = buildSection(balances, group.range, group.label);
176
- if (section)
177
- sections.push(section);
178
- }
179
- const netResult = sections.reduce((sum, s) => sum + s.total, 0);
180
- return {
181
- type: 'income-statement',
182
- financialYear: params.financialYear,
183
- period: params.fromDate || params.toDate
184
- ? { from: params.fromDate ?? '', to: params.toDate ?? '' }
185
- : undefined,
186
- sections,
187
- netResult,
188
- };
189
- }
190
- export async function getBalanceSheet(params = {}) {
191
- const balances = await computeBalanceSheetBalances(params.financialYear, params.toDate);
192
- const assets = [];
193
- for (const group of BALANCE_SHEET_ASSET_GROUPS) {
194
- const section = buildSection(balances, group.range, group.label);
195
- if (section)
196
- assets.push(section);
197
190
  }
198
- const liabilitiesAndEquity = [];
199
- for (const group of BALANCE_SHEET_LIABILITY_GROUPS) {
200
- const section = buildSection(balances, group.range, group.label);
201
- if (section)
202
- liabilitiesAndEquity.push(section);
191
+ async function getBalanceSheet(params = {}) {
192
+ const balances = await computeBalanceSheetBalances(params.financialYear, params.toDate);
193
+ const assets = [];
194
+ for (const group of BALANCE_SHEET_ASSET_GROUPS) {
195
+ const section = buildSection(balances, group.range, group.label);
196
+ if (section)
197
+ assets.push(section);
198
+ }
199
+ const liabilitiesAndEquity = [];
200
+ for (const group of BALANCE_SHEET_LIABILITY_GROUPS) {
201
+ const section = buildSection(balances, group.range, group.label);
202
+ if (section)
203
+ liabilitiesAndEquity.push(section);
204
+ }
205
+ return {
206
+ type: 'balance-sheet',
207
+ financialYear: params.financialYear,
208
+ asOfDate: params.toDate,
209
+ assets,
210
+ totalAssets: assets.reduce((sum, s) => sum + s.total, 0),
211
+ liabilitiesAndEquity,
212
+ totalLiabilitiesAndEquity: liabilitiesAndEquity.reduce((sum, s) => sum + s.total, 0),
213
+ };
203
214
  }
204
- return {
205
- type: 'balance-sheet',
206
- financialYear: params.financialYear,
207
- asOfDate: params.toDate,
208
- assets,
209
- totalAssets: assets.reduce((sum, s) => sum + s.total, 0),
210
- liabilitiesAndEquity,
211
- totalLiabilitiesAndEquity: liabilitiesAndEquity.reduce((sum, s) => sum + s.total, 0),
212
- };
215
+ return { getIncomeStatement, getBalanceSheet };
213
216
  }
217
+ export const { getIncomeStatement, getBalanceSheet } = createFinancialReportOperations(defaultFortnoxTransport);
214
218
  //# sourceMappingURL=financial-reports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"financial-reports.js","sourceRoot":"","sources":["../../src/operations/financial-reports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"financial-reports.js","sourceRoot":"","sources":["../../src/operations/financial-reports.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- interface FinancialYearsResponse {
1
+ import { type FortnoxTransport } from '../fortnox-client.js';
2
+ export interface FinancialYearsResponse {
2
3
  FinancialYears: Record<string, unknown>[];
3
4
  MetaInformation?: {
4
5
  '@TotalResources': number;
@@ -9,8 +10,10 @@ interface FinancialYearsResponse {
9
10
  export interface ListFinancialYearsParams {
10
11
  date?: string;
11
12
  }
12
- export declare function listFinancialYears(params?: ListFinancialYearsParams): Promise<FinancialYearsResponse>;
13
- export declare function getFinancialYear(id: number): Promise<Record<string, unknown>>;
14
- export declare function getLockedPeriod(): Promise<Record<string, unknown>>;
15
- export {};
13
+ export declare function createFinancialYearOperations(transport: FortnoxTransport): {
14
+ listFinancialYears: (params?: ListFinancialYearsParams) => Promise<FinancialYearsResponse>;
15
+ getFinancialYear: (id: number) => Promise<Record<string, unknown>>;
16
+ getLockedPeriod: () => Promise<Record<string, unknown>>;
17
+ };
18
+ export declare const listFinancialYears: (params?: ListFinancialYearsParams) => Promise<FinancialYearsResponse>, getFinancialYear: (id: number) => Promise<Record<string, unknown>>, getLockedPeriod: () => Promise<Record<string, unknown>>;
16
19
  //# sourceMappingURL=financial-years.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"financial-years.d.ts","sourceRoot":"","sources":["../../src/operations/financial-years.ts"],"names":[],"mappings":"AAMA,UAAU,sBAAsB;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAMD,MAAM,WAAW,wBAAwB;IAEvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,GAAE,wBAA6B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAcjC;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMnF;AAKD,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGxE"}
1
+ {"version":3,"file":"financial-years.d.ts","sourceRoot":"","sources":["../../src/operations/financial-years.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMtF,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAMD,MAAM,WAAW,wBAAwB;IAEvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,gBAAgB;kCAE7D,wBAAwB,KAC/B,OAAO,CAAC,sBAAsB,CAAC;2BAgBE,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;2BAW3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EAMnE;AAED,eAAO,MAAQ,kBAAkB,YApCrB,wBAAwB,KAC/B,OAAO,CAAC,sBAAsB,CAAC,EAmCD,gBAAgB,OAnBb,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAmB1B,eAAe,QARhC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASX,CAAC"}
@@ -1,32 +1,36 @@
1
- import { fortnoxRequest } from '../fortnox-client.js';
2
- export async function listFinancialYears(params = {}) {
3
- // Fortnox's /3/financialyears does NOT support a date query filter — passing
4
- // ?Date=... returns 400 "Ogiltig parameter" (error 2000588). So fetch all
5
- // years and, when a date is given, filter locally to the year whose
6
- // From/To-date range brackets it (YYYY-MM-DD compares lexicographically).
7
- const data = await fortnoxRequest('financialyears');
8
- if (!params.date)
9
- return data;
10
- const d = params.date;
11
- const matching = (data.FinancialYears ?? []).filter((fy) => {
12
- const from = String(fy.FromDate ?? '');
13
- const to = String(fy.ToDate ?? '');
14
- return from !== '' && to !== '' && from <= d && d <= to;
15
- });
16
- return { ...data, FinancialYears: matching };
17
- }
18
- export async function getFinancialYear(id) {
19
- if (!Number.isInteger(id) || id < 0) {
20
- throw new Error(`Invalid financial year id: ${id}`);
1
+ import { defaultFortnoxTransport } from '../fortnox-client.js';
2
+ export function createFinancialYearOperations(transport) {
3
+ async function listFinancialYears(params = {}) {
4
+ // Fortnox's /3/financialyears does NOT support a date query filter — passing
5
+ // ?Date=... returns 400 "Ogiltig parameter" (error 2000588). So fetch all
6
+ // years and, when a date is given, filter locally to the year whose
7
+ // From/To-date range brackets it (YYYY-MM-DD compares lexicographically).
8
+ const data = await transport.request('financialyears');
9
+ if (!params.date)
10
+ return data;
11
+ const d = params.date;
12
+ const matching = (data.FinancialYears ?? []).filter((fy) => {
13
+ const from = String(fy.FromDate ?? '');
14
+ const to = String(fy.ToDate ?? '');
15
+ return from !== '' && to !== '' && from <= d && d <= to;
16
+ });
17
+ return { ...data, FinancialYears: matching };
21
18
  }
22
- const data = await fortnoxRequest(`financialyears/${id}`);
23
- return data.FinancialYear;
24
- }
25
- // The locked period (bokföring låst t.o.m.). An empty object means no period
26
- // is locked. Useful as context before voucher/invoice writes to avoid
27
- // "period is locked" API errors.
28
- export async function getLockedPeriod() {
29
- const data = await fortnoxRequest('settings/lockedperiod');
30
- return data.LockedPeriod ?? {};
19
+ async function getFinancialYear(id) {
20
+ if (!Number.isInteger(id) || id < 0) {
21
+ throw new Error(`Invalid financial year id: ${id}`);
22
+ }
23
+ const data = await transport.request(`financialyears/${id}`);
24
+ return data.FinancialYear;
25
+ }
26
+ // The locked period (bokföring låst t.o.m.). An empty object means no period
27
+ // is locked. Useful as context before voucher/invoice writes to avoid
28
+ // "period is locked" API errors.
29
+ async function getLockedPeriod() {
30
+ const data = await transport.request('settings/lockedperiod');
31
+ return data.LockedPeriod ?? {};
32
+ }
33
+ return { listFinancialYears, getFinancialYear, getLockedPeriod };
31
34
  }
35
+ export const { listFinancialYears, getFinancialYear, getLockedPeriod } = createFinancialYearOperations(defaultFortnoxTransport);
32
36
  //# sourceMappingURL=financial-years.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"financial-years.js","sourceRoot":"","sources":["../../src/operations/financial-years.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoBtD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAmC,EAAE;IAErC,6EAA6E;IAC7E,0EAA0E;IAC1E,oEAAoE;IACpE,0EAA0E;IAC1E,MAAM,IAAI,GAAG,MAAM,cAAc,CAAyB,gBAAgB,CAAC,CAAC;IAC5E,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACtB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAwB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,aAAa,CAAC;AAC5B,CAAC;AAED,6EAA6E;AAC7E,sEAAsE;AACtE,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAuB,uBAAuB,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"financial-years.js","sourceRoot":"","sources":["../../src/operations/financial-years.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAyB,MAAM,sBAAsB,CAAC;AAoBtF,MAAM,UAAU,6BAA6B,CAAC,SAA2B;IACvE,KAAK,UAAU,kBAAkB,CAC/B,SAAmC,EAAE;QAErC,6EAA6E;QAC7E,0EAA0E;QAC1E,oEAAoE;QACpE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAyB,gBAAgB,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QACtB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YACzD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACnC,OAAO,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,UAAU,gBAAgB,CAAC,EAAU;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAwB,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,6EAA6E;IAC7E,sEAAsE;IACtE,iCAAiC;IACjC,KAAK,UAAU,eAAe;QAC5B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAuB,uBAAuB,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,GACpE,6BAA6B,CAAC,uBAAuB,CAAC,CAAC"}