noxctl 0.1.0 → 0.3.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 (155) hide show
  1. package/README.md +279 -29
  2. package/dist/auth.d.ts +15 -7
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +128 -22
  5. package/dist/auth.js.map +1 -1
  6. package/dist/cli.d.ts +2 -1
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +1640 -70
  9. package/dist/cli.js.map +1 -1
  10. package/dist/completions.d.ts +13 -0
  11. package/dist/completions.d.ts.map +1 -0
  12. package/dist/completions.js +150 -0
  13. package/dist/completions.js.map +1 -0
  14. package/dist/config-paths.d.ts +2 -0
  15. package/dist/config-paths.d.ts.map +1 -0
  16. package/dist/config-paths.js +7 -0
  17. package/dist/config-paths.js.map +1 -0
  18. package/dist/credentials-store.d.ts +13 -3
  19. package/dist/credentials-store.d.ts.map +1 -1
  20. package/dist/credentials-store.js +197 -62
  21. package/dist/credentials-store.js.map +1 -1
  22. package/dist/date-periods.d.ts +14 -0
  23. package/dist/date-periods.d.ts.map +1 -0
  24. package/dist/date-periods.js +103 -0
  25. package/dist/date-periods.js.map +1 -0
  26. package/dist/formatter.d.ts +11 -2
  27. package/dist/formatter.d.ts.map +1 -1
  28. package/dist/formatter.js +27 -4
  29. package/dist/formatter.js.map +1 -1
  30. package/dist/fortnox-client.d.ts +1 -0
  31. package/dist/fortnox-client.d.ts.map +1 -1
  32. package/dist/fortnox-client.js +28 -5
  33. package/dist/fortnox-client.js.map +1 -1
  34. package/dist/index.d.ts +15 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +92 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/keychain-target.d.ts +32 -0
  39. package/dist/keychain-target.d.ts.map +1 -0
  40. package/dist/keychain-target.js +349 -0
  41. package/dist/keychain-target.js.map +1 -0
  42. package/dist/operations/analytics.d.ts +84 -0
  43. package/dist/operations/analytics.d.ts.map +1 -0
  44. package/dist/operations/analytics.js +154 -0
  45. package/dist/operations/analytics.js.map +1 -0
  46. package/dist/operations/contracts.d.ts +23 -0
  47. package/dist/operations/contracts.d.ts.map +1 -0
  48. package/dist/operations/contracts.js +52 -0
  49. package/dist/operations/contracts.js.map +1 -0
  50. package/dist/operations/costcenters.d.ts +20 -0
  51. package/dist/operations/costcenters.d.ts.map +1 -0
  52. package/dist/operations/costcenters.js +38 -0
  53. package/dist/operations/costcenters.js.map +1 -0
  54. package/dist/operations/customers.d.ts.map +1 -1
  55. package/dist/operations/customers.js +12 -2
  56. package/dist/operations/customers.js.map +1 -1
  57. package/dist/operations/financial-years.d.ts +16 -0
  58. package/dist/operations/financial-years.d.ts.map +1 -0
  59. package/dist/operations/financial-years.js +32 -0
  60. package/dist/operations/financial-years.js.map +1 -0
  61. package/dist/operations/invoice-payments.d.ts +21 -0
  62. package/dist/operations/invoice-payments.d.ts.map +1 -0
  63. package/dist/operations/invoice-payments.js +40 -0
  64. package/dist/operations/invoice-payments.js.map +1 -0
  65. package/dist/operations/offers.d.ts +25 -0
  66. package/dist/operations/offers.d.ts.map +1 -0
  67. package/dist/operations/offers.js +48 -0
  68. package/dist/operations/offers.js.map +1 -0
  69. package/dist/operations/orders.d.ts +24 -0
  70. package/dist/operations/orders.d.ts.map +1 -0
  71. package/dist/operations/orders.js +44 -0
  72. package/dist/operations/orders.js.map +1 -0
  73. package/dist/operations/pricelists.d.ts +36 -0
  74. package/dist/operations/pricelists.d.ts.map +1 -0
  75. package/dist/operations/pricelists.js +52 -0
  76. package/dist/operations/pricelists.js.map +1 -0
  77. package/dist/operations/projects.d.ts +19 -0
  78. package/dist/operations/projects.d.ts.map +1 -0
  79. package/dist/operations/projects.js +33 -0
  80. package/dist/operations/projects.js.map +1 -0
  81. package/dist/operations/supplier-invoice-payments.d.ts +20 -0
  82. package/dist/operations/supplier-invoice-payments.d.ts.map +1 -0
  83. package/dist/operations/supplier-invoice-payments.js +34 -0
  84. package/dist/operations/supplier-invoice-payments.js.map +1 -0
  85. package/dist/operations/taxreductions.d.ts +19 -0
  86. package/dist/operations/taxreductions.d.ts.map +1 -0
  87. package/dist/operations/taxreductions.js +28 -0
  88. package/dist/operations/taxreductions.js.map +1 -0
  89. package/dist/operations/vouchers.d.ts +15 -0
  90. package/dist/operations/vouchers.d.ts.map +1 -1
  91. package/dist/operations/vouchers.js +97 -0
  92. package/dist/operations/vouchers.js.map +1 -1
  93. package/dist/profile-name.d.ts +9 -0
  94. package/dist/profile-name.d.ts.map +1 -0
  95. package/dist/profile-name.js +58 -0
  96. package/dist/profile-name.js.map +1 -0
  97. package/dist/profiles.d.ts +55 -0
  98. package/dist/profiles.d.ts.map +1 -0
  99. package/dist/profiles.js +210 -0
  100. package/dist/profiles.js.map +1 -0
  101. package/dist/tools/analytics.d.ts +3 -0
  102. package/dist/tools/analytics.d.ts.map +1 -0
  103. package/dist/tools/analytics.js +52 -0
  104. package/dist/tools/analytics.js.map +1 -0
  105. package/dist/tools/bookkeeping.d.ts.map +1 -1
  106. package/dist/tools/bookkeeping.js +38 -2
  107. package/dist/tools/bookkeeping.js.map +1 -1
  108. package/dist/tools/contracts.d.ts +3 -0
  109. package/dist/tools/contracts.d.ts.map +1 -0
  110. package/dist/tools/contracts.js +136 -0
  111. package/dist/tools/contracts.js.map +1 -0
  112. package/dist/tools/costcenters.d.ts +3 -0
  113. package/dist/tools/costcenters.d.ts.map +1 -0
  114. package/dist/tools/costcenters.js +79 -0
  115. package/dist/tools/costcenters.js.map +1 -0
  116. package/dist/tools/financial-years.d.ts +3 -0
  117. package/dist/tools/financial-years.d.ts.map +1 -0
  118. package/dist/tools/financial-years.js +33 -0
  119. package/dist/tools/financial-years.js.map +1 -0
  120. package/dist/tools/invoice-payments.d.ts +3 -0
  121. package/dist/tools/invoice-payments.d.ts.map +1 -0
  122. package/dist/tools/invoice-payments.js +60 -0
  123. package/dist/tools/invoice-payments.js.map +1 -0
  124. package/dist/tools/offers.d.ts +3 -0
  125. package/dist/tools/offers.d.ts.map +1 -0
  126. package/dist/tools/offers.js +130 -0
  127. package/dist/tools/offers.js.map +1 -0
  128. package/dist/tools/orders.d.ts +3 -0
  129. package/dist/tools/orders.d.ts.map +1 -0
  130. package/dist/tools/orders.js +114 -0
  131. package/dist/tools/orders.js.map +1 -0
  132. package/dist/tools/pricelists.d.ts +3 -0
  133. package/dist/tools/pricelists.d.ts.map +1 -0
  134. package/dist/tools/pricelists.js +104 -0
  135. package/dist/tools/pricelists.js.map +1 -0
  136. package/dist/tools/projects.d.ts +3 -0
  137. package/dist/tools/projects.d.ts.map +1 -0
  138. package/dist/tools/projects.js +80 -0
  139. package/dist/tools/projects.js.map +1 -0
  140. package/dist/tools/status.d.ts.map +1 -1
  141. package/dist/tools/status.js +6 -1
  142. package/dist/tools/status.js.map +1 -1
  143. package/dist/tools/supplier-invoice-payments.d.ts +3 -0
  144. package/dist/tools/supplier-invoice-payments.d.ts.map +1 -0
  145. package/dist/tools/supplier-invoice-payments.js +60 -0
  146. package/dist/tools/supplier-invoice-payments.js.map +1 -0
  147. package/dist/tools/taxreductions.d.ts +3 -0
  148. package/dist/tools/taxreductions.d.ts.map +1 -0
  149. package/dist/tools/taxreductions.js +51 -0
  150. package/dist/tools/taxreductions.js.map +1 -0
  151. package/dist/views.d.ts +28 -0
  152. package/dist/views.d.ts.map +1 -1
  153. package/dist/views.js +234 -0
  154. package/dist/views.js.map +1 -1
  155. package/package.json +1 -1
@@ -0,0 +1,52 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ import { documentSegment } from '../identifiers.js';
3
+ export async function listContracts(params = {}) {
4
+ const queryParams = {
5
+ filter: params.filter,
6
+ };
7
+ if (params.all) {
8
+ const { items, totalResources } = await fetchAllPages('contracts', 'Contracts', queryParams);
9
+ return {
10
+ Contracts: items,
11
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
12
+ };
13
+ }
14
+ return fortnoxRequest('contracts', {
15
+ params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
16
+ });
17
+ }
18
+ export async function getContract(documentNumber) {
19
+ const data = await fortnoxRequest(`contracts/${documentSegment(documentNumber)}`);
20
+ return data.Contract;
21
+ }
22
+ export async function createContract(params) {
23
+ const data = await fortnoxRequest('contracts', {
24
+ method: 'POST',
25
+ body: { Contract: params },
26
+ });
27
+ return data.Contract;
28
+ }
29
+ export async function updateContract(documentNumber, fields) {
30
+ const { documentNumber: _, ...body } = fields;
31
+ const data = await fortnoxRequest(`contracts/${documentSegment(documentNumber)}`, {
32
+ method: 'PUT',
33
+ body: { Contract: body },
34
+ });
35
+ return data.Contract;
36
+ }
37
+ // Mark the contract as finished — no further invoices will be created.
38
+ export async function finishContract(documentNumber) {
39
+ const data = await fortnoxRequest(`contracts/${documentSegment(documentNumber)}/finish`, { method: 'PUT' });
40
+ return data?.Contract || {};
41
+ }
42
+ // Create the next invoice from the contract immediately. Returns the Invoice.
43
+ export async function createInvoiceFromContract(documentNumber) {
44
+ const data = await fortnoxRequest(`contracts/${documentSegment(documentNumber)}/createinvoice`, { method: 'PUT' });
45
+ return data?.Invoice || {};
46
+ }
47
+ // Extend a non-continuous contract by one invoice.
48
+ export async function increaseInvoiceCount(documentNumber) {
49
+ const data = await fortnoxRequest(`contracts/${documentSegment(documentNumber)}/increaseinvoicecount`, { method: 'PUT' });
50
+ return data?.Contract || {};
51
+ }
52
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/operations/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAsBpD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA8B,EAAE;IAClE,MAAM,WAAW,GAAgD;QAC/D,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;QACF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAoB,WAAW,EAAE;QACpD,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,WAAW,CAAC,cAAsB;IACtD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,EAAE,CAC/C,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAmB,WAAW,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,cAAsB,EACtB,MAA+B;IAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,EAAE,EAC9C;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzB,CACF,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,cAAsB;IACzD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,SAAS,EACrD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,cAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,gBAAgB,EAC5D,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,cAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,uBAAuB,EACnE,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,20 @@
1
+ interface CostCentersResponse {
2
+ CostCenters: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListCostCentersParams {
10
+ page?: number;
11
+ limit?: number;
12
+ all?: boolean;
13
+ }
14
+ export declare function listCostCenters(params?: ListCostCentersParams): Promise<CostCentersResponse>;
15
+ export declare function getCostCenter(code: string): Promise<Record<string, unknown>>;
16
+ export declare function createCostCenter(params: Record<string, unknown>): Promise<Record<string, unknown>>;
17
+ export declare function updateCostCenter(code: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
18
+ export declare function deleteCostCenter(code: string): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=costcenters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"costcenters.d.ts","sourceRoot":"","sources":["../../src/operations/costcenters.ts"],"names":[],"mappings":"AAMA,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,eAAe,CACnC,MAAM,GAAE,qBAA0B,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAe9B;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGlF;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlE"}
@@ -0,0 +1,38 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ export async function listCostCenters(params = {}) {
3
+ if (params.all) {
4
+ const { items, totalResources } = await fetchAllPages('costcenters', 'CostCenters');
5
+ return {
6
+ CostCenters: items,
7
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
8
+ };
9
+ }
10
+ return fortnoxRequest('costcenters', {
11
+ params: { page: params.page || 1, limit: params.limit || 100 },
12
+ });
13
+ }
14
+ export async function getCostCenter(code) {
15
+ const data = await fortnoxRequest(`costcenters/${encodeURIComponent(code)}`);
16
+ return data.CostCenter;
17
+ }
18
+ export async function createCostCenter(params) {
19
+ const data = await fortnoxRequest('costcenters', {
20
+ method: 'POST',
21
+ body: { CostCenter: params },
22
+ });
23
+ return data.CostCenter;
24
+ }
25
+ export async function updateCostCenter(code, fields) {
26
+ const { Code: _, ...body } = fields;
27
+ const data = await fortnoxRequest(`costcenters/${encodeURIComponent(code)}`, {
28
+ method: 'PUT',
29
+ body: { CostCenter: body },
30
+ });
31
+ return data.CostCenter;
32
+ }
33
+ export async function deleteCostCenter(code) {
34
+ await fortnoxRequest(`costcenters/${encodeURIComponent(code)}`, {
35
+ method: 'DELETE',
36
+ });
37
+ }
38
+ //# sourceMappingURL=costcenters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"costcenters.js","sourceRoot":"","sources":["../../src/operations/costcenters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAgC,EAAE;IAElC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,aAAa,EACb,aAAa,CACd,CAAC;QACF,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAsB,aAAa,EAAE;QACxD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;KAC/D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAqB,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjG,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAqB,aAAa,EAAE;QACnE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;KAC7B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,MAA+B;IAE/B,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAqB,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;QAC/F,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;KAC3B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,cAAc,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;QAC9D,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../src/operations/customers.ts"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,mBAAmB;IAClC,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,aAAa,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoBhG;AAED,wBAAsB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK1F;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,cAAc,CAClC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC"}
1
+ {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../src/operations/customers.ts"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,mBAAmB;IAClC,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,aAAa,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoBhG;AAED,wBAAsB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK1F;AAaD,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,cAAc,CAClC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC"}
@@ -19,10 +19,20 @@ export async function getCustomer(customerNumber) {
19
19
  const data = await fortnoxRequest(`customers/${customerSegment(customerNumber)}`);
20
20
  return data.Customer;
21
21
  }
22
+ // Server-derived display fields Fortnox rejects on write ("Fältet Country är
23
+ // endast läsbart"). Stripping them lets a `get` response be fed back into
24
+ // create/update unchanged; the *CountryCode fields remain the writable source.
25
+ const READ_ONLY_CUSTOMER_FIELDS = ['Country', 'DeliveryCountry', 'VisitingCountry'];
26
+ function stripReadOnlyFields(params) {
27
+ const writable = { ...params };
28
+ for (const field of READ_ONLY_CUSTOMER_FIELDS)
29
+ delete writable[field];
30
+ return writable;
31
+ }
22
32
  export async function createCustomer(params) {
23
33
  const data = await fortnoxRequest('customers', {
24
34
  method: 'POST',
25
- body: { Customer: params },
35
+ body: { Customer: stripReadOnlyFields(params) },
26
36
  });
27
37
  return data.Customer;
28
38
  }
@@ -30,7 +40,7 @@ export async function updateCustomer(customerNumber, fields) {
30
40
  const { customerNumber: _, ...body } = fields;
31
41
  const data = await fortnoxRequest(`customers/${customerSegment(customerNumber)}`, {
32
42
  method: 'PUT',
33
- body: { Customer: body },
43
+ body: { Customer: stripReadOnlyFields(body) },
34
44
  });
35
45
  return data.Customer;
36
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/operations/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkBpD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA8B,EAAE;IAClE,MAAM,WAAW,GAAgD;QAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;IAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;QACF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAoB,WAAW,EAAE;QACpD,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,WAAW,CAAC,cAAsB;IACtD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,EAAE,CAC/C,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAmB,WAAW,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,cAAsB,EACtB,MAA+B;IAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,EAAE,EAC9C;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzB,CACF,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/operations/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkBpD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA8B,EAAE;IAClE,MAAM,WAAW,GAAgD;QAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;IAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;QACF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAoB,WAAW,EAAE;QACpD,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,WAAW,CAAC,cAAsB;IACtD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,EAAE,CAC/C,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,6EAA6E;AAC7E,0EAA0E;AAC1E,+EAA+E;AAC/E,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,CAAU,CAAC;AAE7F,SAAS,mBAAmB,CAAC,MAA+B;IAC1D,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,yBAAyB;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAmB,WAAW,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;KAChD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,cAAsB,EACtB,MAA+B;IAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,eAAe,CAAC,cAAc,CAAC,EAAE,EAC9C;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE;KAC9C,CACF,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC"}
@@ -0,0 +1,16 @@
1
+ interface FinancialYearsResponse {
2
+ FinancialYears: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListFinancialYearsParams {
10
+ date?: string;
11
+ }
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 {};
16
+ //# sourceMappingURL=financial-years.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,32 @@
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}`);
21
+ }
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 ?? {};
31
+ }
32
+ //# sourceMappingURL=financial-years.js.map
@@ -0,0 +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"}
@@ -0,0 +1,21 @@
1
+ interface InvoicePaymentsResponse {
2
+ InvoicePayments: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListInvoicePaymentsParams {
10
+ invoiceNumber?: string;
11
+ page?: number;
12
+ limit?: number;
13
+ all?: boolean;
14
+ }
15
+ export declare function listInvoicePayments(params?: ListInvoicePaymentsParams): Promise<InvoicePaymentsResponse>;
16
+ export declare function getInvoicePayment(paymentNumber: string): Promise<Record<string, unknown>>;
17
+ export declare function createInvoicePayment(params: Record<string, unknown>): Promise<Record<string, unknown>>;
18
+ export declare function deleteInvoicePayment(paymentNumber: string): Promise<void>;
19
+ export declare function bookkeepInvoicePayment(paymentNumber: string): Promise<Record<string, unknown>>;
20
+ export {};
21
+ //# sourceMappingURL=invoice-payments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-payments.d.ts","sourceRoot":"","sources":["../../src/operations/invoice-payments.ts"],"names":[],"mappings":"AAOA,UAAU,uBAAuB;IAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,mBAAmB,CACvC,MAAM,GAAE,yBAA8B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAoBlC;AAED,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK/F;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/E;AAED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQlC"}
@@ -0,0 +1,40 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ import { documentSegment } from '../identifiers.js';
3
+ export async function listInvoicePayments(params = {}) {
4
+ const queryParams = {
5
+ invoicenumber: params.invoiceNumber,
6
+ };
7
+ if (params.all) {
8
+ const { items, totalResources } = await fetchAllPages('invoicepayments', 'InvoicePayments', queryParams);
9
+ return {
10
+ InvoicePayments: items,
11
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
12
+ };
13
+ }
14
+ return fortnoxRequest('invoicepayments', {
15
+ params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
16
+ });
17
+ }
18
+ export async function getInvoicePayment(paymentNumber) {
19
+ const data = await fortnoxRequest(`invoicepayments/${documentSegment(paymentNumber)}`);
20
+ return data.InvoicePayment;
21
+ }
22
+ export async function createInvoicePayment(params) {
23
+ const data = await fortnoxRequest('invoicepayments', {
24
+ method: 'POST',
25
+ body: { InvoicePayment: params },
26
+ });
27
+ return data.InvoicePayment;
28
+ }
29
+ export async function deleteInvoicePayment(paymentNumber) {
30
+ await fortnoxRequest(`invoicepayments/${documentSegment(paymentNumber)}`, {
31
+ method: 'DELETE',
32
+ });
33
+ }
34
+ export async function bookkeepInvoicePayment(paymentNumber) {
35
+ const data = await fortnoxRequest(`invoicepayments/${documentSegment(paymentNumber)}/bookkeep`, {
36
+ method: 'PUT',
37
+ });
38
+ return data?.InvoicePayment || {};
39
+ }
40
+ //# sourceMappingURL=invoice-payments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-payments.js","sourceRoot":"","sources":["../../src/operations/invoice-payments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkBpD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAoC,EAAE;IAEtC,MAAM,WAAW,GAAgD;QAC/D,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC;IAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,CACZ,CAAC;QACF,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAA0B,iBAAiB,EAAE;QAChE,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,iBAAiB,CAAC,aAAqB;IAC3D,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,mBAAmB,eAAe,CAAC,aAAa,CAAC,EAAE,CACpD,CAAC;IACF,OAAO,IAAI,CAAC,cAAc,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAyB,iBAAiB,EAAE;QAC3E,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;KACjC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,cAAc,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,aAAqB;IAC9D,MAAM,cAAc,CAAC,mBAAmB,eAAe,CAAC,aAAa,CAAC,EAAE,EAAE;QACxE,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,aAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,mBAAmB,eAAe,CAAC,aAAa,CAAC,WAAW,EAC5D;QACE,MAAM,EAAE,KAAK;KACd,CACF,CAAC;IACF,OAAO,IAAI,EAAE,cAAc,IAAI,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,25 @@
1
+ interface OffersResponse {
2
+ Offers: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListOffersParams {
10
+ filter?: string;
11
+ customerNumber?: string;
12
+ fromDate?: string;
13
+ toDate?: string;
14
+ page?: number;
15
+ limit?: number;
16
+ all?: boolean;
17
+ }
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 {};
25
+ //# sourceMappingURL=offers.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,48 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ import { documentSegment } from '../identifiers.js';
3
+ export async function listOffers(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('offers', 'Offers', queryParams);
12
+ return {
13
+ Offers: items,
14
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
15
+ };
16
+ }
17
+ return fortnoxRequest('offers', {
18
+ params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
19
+ });
20
+ }
21
+ export async function getOffer(documentNumber) {
22
+ const data = await fortnoxRequest(`offers/${documentSegment(documentNumber)}`);
23
+ return data.Offer;
24
+ }
25
+ export async function createOffer(params) {
26
+ const data = await fortnoxRequest('offers', {
27
+ method: 'POST',
28
+ body: { Offer: params },
29
+ });
30
+ return data.Offer;
31
+ }
32
+ export async function updateOffer(documentNumber, fields) {
33
+ const { documentNumber: _, ...body } = fields;
34
+ const data = await fortnoxRequest(`offers/${documentSegment(documentNumber)}`, {
35
+ method: 'PUT',
36
+ body: { Offer: body },
37
+ });
38
+ return data.Offer;
39
+ }
40
+ export async function createInvoiceFromOffer(documentNumber) {
41
+ const data = await fortnoxRequest(`offers/${documentSegment(documentNumber)}/createinvoice`, { method: 'PUT' });
42
+ return data.Invoice;
43
+ }
44
+ export async function createOrderFromOffer(documentNumber) {
45
+ const data = await fortnoxRequest(`offers/${documentSegment(documentNumber)}/createorder`, { method: 'PUT' });
46
+ return data.Order;
47
+ }
48
+ //# sourceMappingURL=offers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offers.js","sourceRoot":"","sources":["../../src/operations/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAA2B,EAAE;IAC5D,MAAM,WAAW,GAAgD;QAC/D,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,QAAQ,EACR,QAAQ,EACR,WAAW,CACZ,CAAC;QACF,OAAO;YACL,MAAM,EAAE,KAAK;YACb,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAiB,QAAQ,EAAE;QAC9C,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,QAAQ,CAAC,cAAsB;IACnD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgB,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC9F,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgB,QAAQ,EAAE;QACzD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;KACxB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,cAAsB,EACtB,MAA+B;IAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgB,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,EAAE;QAC5F,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACtB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,cAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,UAAU,eAAe,CAAC,cAAc,CAAC,gBAAgB,EACzD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,cAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,UAAU,eAAe,CAAC,cAAc,CAAC,cAAc,EACvD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC"}
@@ -0,0 +1,24 @@
1
+ interface OrdersResponse {
2
+ Orders: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListOrdersParams {
10
+ filter?: string;
11
+ customerNumber?: string;
12
+ fromDate?: string;
13
+ toDate?: string;
14
+ page?: number;
15
+ limit?: number;
16
+ all?: boolean;
17
+ }
18
+ export declare function listOrders(params?: ListOrdersParams): Promise<OrdersResponse>;
19
+ export declare function getOrder(documentNumber: string): Promise<Record<string, unknown>>;
20
+ export declare function createOrder(params: Record<string, unknown>): Promise<Record<string, unknown>>;
21
+ export declare function updateOrder(documentNumber: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
22
+ export declare function createInvoiceFromOrder(documentNumber: string): Promise<Record<string, unknown>>;
23
+ export {};
24
+ //# sourceMappingURL=orders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/operations/orders.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"}
@@ -0,0 +1,44 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ import { documentSegment } from '../identifiers.js';
3
+ export async function listOrders(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('orders', 'Orders', queryParams);
12
+ return {
13
+ Orders: items,
14
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
15
+ };
16
+ }
17
+ return fortnoxRequest('orders', {
18
+ params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
19
+ });
20
+ }
21
+ export async function getOrder(documentNumber) {
22
+ const data = await fortnoxRequest(`orders/${documentSegment(documentNumber)}`);
23
+ return data.Order;
24
+ }
25
+ export async function createOrder(params) {
26
+ const data = await fortnoxRequest('orders', {
27
+ method: 'POST',
28
+ body: { Order: params },
29
+ });
30
+ return data.Order;
31
+ }
32
+ export async function updateOrder(documentNumber, fields) {
33
+ const { documentNumber: _, ...body } = fields;
34
+ const data = await fortnoxRequest(`orders/${documentSegment(documentNumber)}`, {
35
+ method: 'PUT',
36
+ body: { Order: body },
37
+ });
38
+ return data.Order;
39
+ }
40
+ export async function createInvoiceFromOrder(documentNumber) {
41
+ const data = await fortnoxRequest(`orders/${documentSegment(documentNumber)}/createinvoice`, { method: 'PUT' });
42
+ return data.Invoice;
43
+ }
44
+ //# sourceMappingURL=orders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/operations/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAA2B,EAAE;IAC5D,MAAM,WAAW,GAAgD;QAC/D,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,QAAQ,EACR,QAAQ,EACR,WAAW,CACZ,CAAC;QACF,OAAO;YACL,MAAM,EAAE,KAAK;YACb,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAiB,QAAQ,EAAE;QAC9C,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,QAAQ,CAAC,cAAsB;IACnD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgB,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC9F,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgB,QAAQ,EAAE;QACzD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;KACxB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,cAAsB,EACtB,MAA+B;IAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgB,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,EAAE;QAC5F,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACtB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,cAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,UAAU,eAAe,CAAC,cAAc,CAAC,gBAAgB,EACzD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC"}
@@ -0,0 +1,36 @@
1
+ interface PriceListsResponse {
2
+ PriceLists: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListPriceListsParams {
10
+ page?: number;
11
+ limit?: number;
12
+ all?: boolean;
13
+ }
14
+ export declare function listPriceLists(params?: ListPriceListsParams): Promise<PriceListsResponse>;
15
+ export declare function getPriceList(code: string): Promise<Record<string, unknown>>;
16
+ export declare function createPriceList(params: Record<string, unknown>): Promise<Record<string, unknown>>;
17
+ export declare function updatePriceList(code: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
18
+ interface PricesResponse {
19
+ Prices: Record<string, unknown>[];
20
+ MetaInformation?: {
21
+ '@TotalResources': number;
22
+ '@TotalPages': number;
23
+ '@CurrentPage': number;
24
+ };
25
+ }
26
+ export interface ListPricesParams {
27
+ priceListCode: string;
28
+ articleNumber?: string;
29
+ page?: number;
30
+ limit?: number;
31
+ }
32
+ export declare function listPrices(params: ListPricesParams): Promise<PricesResponse>;
33
+ export declare function getPrice(priceListCode: string, articleNumber: string, fromQuantity?: number): Promise<Record<string, unknown>>;
34
+ export declare function updatePrice(priceListCode: string, articleNumber: string, fields: Record<string, unknown>, fromQuantity?: number): Promise<Record<string, unknown>>;
35
+ export {};
36
+ //# sourceMappingURL=pricelists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricelists.d.ts","sourceRoot":"","sources":["../../src/operations/pricelists.ts"],"names":[],"mappings":"AAQA,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,cAAc,CAClC,MAAM,GAAE,oBAAyB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGjF;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC;AAQD,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,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAQlF;AAED,wBAAsB,QAAQ,CAC5B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,YAAY,SAAI,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKlC;AAED,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,YAAY,SAAI,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASlC"}
@@ -0,0 +1,52 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ export async function listPriceLists(params = {}) {
3
+ if (params.all) {
4
+ const { items, totalResources } = await fetchAllPages('pricelists', 'PriceLists');
5
+ return {
6
+ PriceLists: items,
7
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
8
+ };
9
+ }
10
+ return fortnoxRequest('pricelists', {
11
+ params: { page: params.page || 1, limit: params.limit || 100 },
12
+ });
13
+ }
14
+ export async function getPriceList(code) {
15
+ const data = await fortnoxRequest(`pricelists/${encodeURIComponent(code)}`);
16
+ return data.PriceList;
17
+ }
18
+ export async function createPriceList(params) {
19
+ const data = await fortnoxRequest('pricelists', {
20
+ method: 'POST',
21
+ body: { PriceList: params },
22
+ });
23
+ return data.PriceList;
24
+ }
25
+ export async function updatePriceList(code, fields) {
26
+ const { Code: _, ...body } = fields;
27
+ const data = await fortnoxRequest(`pricelists/${encodeURIComponent(code)}`, {
28
+ method: 'PUT',
29
+ body: { PriceList: body },
30
+ });
31
+ return data.PriceList;
32
+ }
33
+ export async function listPrices(params) {
34
+ const endpoint = params.articleNumber
35
+ ? `prices/sublist/${encodeURIComponent(params.priceListCode)}/${encodeURIComponent(params.articleNumber)}`
36
+ : `prices/sublist/${encodeURIComponent(params.priceListCode)}`;
37
+ return fortnoxRequest(endpoint, {
38
+ params: { page: params.page || 1, limit: params.limit || 100 },
39
+ });
40
+ }
41
+ export async function getPrice(priceListCode, articleNumber, fromQuantity = 0) {
42
+ const data = await fortnoxRequest(`prices/${encodeURIComponent(priceListCode)}/${encodeURIComponent(articleNumber)}/${fromQuantity}`);
43
+ return data.Price;
44
+ }
45
+ export async function updatePrice(priceListCode, articleNumber, fields, fromQuantity = 0) {
46
+ const data = await fortnoxRequest(`prices/${encodeURIComponent(priceListCode)}/${encodeURIComponent(articleNumber)}/${fromQuantity}`, {
47
+ method: 'PUT',
48
+ body: { Price: fields },
49
+ });
50
+ return data.Price;
51
+ }
52
+ //# sourceMappingURL=pricelists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricelists.js","sourceRoot":"","sources":["../../src/operations/pricelists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAmBrE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAA+B,EAAE;IAEjC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,YAAY,EACZ,YAAY,CACb,CAAC;QACF,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAqB,YAAY,EAAE;QACtD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;KAC/D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAoB,cAAc,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC,SAAS,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAoB,YAAY,EAAE;QACjE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;KAC5B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,SAAS,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,MAA+B;IAE/B,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAoB,cAAc,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;QAC7F,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;KAC1B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,SAAS,CAAC;AACxB,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAwB;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa;QACnC,CAAC,CAAC,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC1G,CAAC,CAAC,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAEjE,OAAO,cAAc,CAAiB,QAAQ,EAAE;QAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;KAC/D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,aAAqB,EACrB,aAAqB,EACrB,YAAY,GAAG,CAAC;IAEhB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,UAAU,kBAAkB,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,IAAI,YAAY,EAAE,CACnG,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAAqB,EACrB,aAAqB,EACrB,MAA+B,EAC/B,YAAY,GAAG,CAAC;IAEhB,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,UAAU,kBAAkB,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,IAAI,YAAY,EAAE,EAClG;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;KACxB,CACF,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC"}
@@ -0,0 +1,19 @@
1
+ interface ProjectsResponse {
2
+ Projects: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListProjectsParams {
10
+ page?: number;
11
+ limit?: number;
12
+ all?: boolean;
13
+ }
14
+ export declare function listProjects(params?: ListProjectsParams): Promise<ProjectsResponse>;
15
+ export declare function getProject(projectNumber: string): Promise<Record<string, unknown>>;
16
+ export declare function createProject(params: Record<string, unknown>): Promise<Record<string, unknown>>;
17
+ export declare function updateProject(projectNumber: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
18
+ export {};
19
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/operations/projects.ts"],"names":[],"mappings":"AAMA,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,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,CAe7F;AAED,wBAAsB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKxF;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,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC"}