noxctl 0.3.0 → 0.4.1

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 (67) hide show
  1. package/README.md +56 -6
  2. package/dist/auth.d.ts +6 -2
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +61 -21
  5. package/dist/auth.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +391 -6
  8. package/dist/cli.js.map +1 -1
  9. package/dist/credentials-store.d.ts +1 -1
  10. package/dist/credentials-store.d.ts.map +1 -1
  11. package/dist/credentials-store.js +12 -11
  12. package/dist/credentials-store.js.map +1 -1
  13. package/dist/fortnox-client.d.ts +6 -1
  14. package/dist/fortnox-client.d.ts.map +1 -1
  15. package/dist/fortnox-client.js +150 -62
  16. package/dist/fortnox-client.js.map +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +11 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/operations/absencetransactions.d.ts +21 -0
  21. package/dist/operations/absencetransactions.d.ts.map +1 -0
  22. package/dist/operations/absencetransactions.js +36 -0
  23. package/dist/operations/absencetransactions.js.map +1 -0
  24. package/dist/operations/attendancetransactions.d.ts +21 -0
  25. package/dist/operations/attendancetransactions.d.ts.map +1 -0
  26. package/dist/operations/attendancetransactions.js +40 -0
  27. package/dist/operations/attendancetransactions.js.map +1 -0
  28. package/dist/operations/employees.d.ts +19 -0
  29. package/dist/operations/employees.d.ts.map +1 -0
  30. package/dist/operations/employees.js +34 -0
  31. package/dist/operations/employees.js.map +1 -0
  32. package/dist/operations/salarytransactions.d.ts +21 -0
  33. package/dist/operations/salarytransactions.d.ts.map +1 -0
  34. package/dist/operations/salarytransactions.js +35 -0
  35. package/dist/operations/salarytransactions.js.map +1 -0
  36. package/dist/operations/scheduletimes.d.ts +4 -0
  37. package/dist/operations/scheduletimes.d.ts.map +1 -0
  38. package/dist/operations/scheduletimes.js +24 -0
  39. package/dist/operations/scheduletimes.js.map +1 -0
  40. package/dist/tools/absencetransactions.d.ts +3 -0
  41. package/dist/tools/absencetransactions.d.ts.map +1 -0
  42. package/dist/tools/absencetransactions.js +66 -0
  43. package/dist/tools/absencetransactions.js.map +1 -0
  44. package/dist/tools/attendancetransactions.d.ts +3 -0
  45. package/dist/tools/attendancetransactions.d.ts.map +1 -0
  46. package/dist/tools/attendancetransactions.js +63 -0
  47. package/dist/tools/attendancetransactions.js.map +1 -0
  48. package/dist/tools/employees.d.ts +3 -0
  49. package/dist/tools/employees.d.ts.map +1 -0
  50. package/dist/tools/employees.js +119 -0
  51. package/dist/tools/employees.js.map +1 -0
  52. package/dist/tools/salarytransactions.d.ts +3 -0
  53. package/dist/tools/salarytransactions.d.ts.map +1 -0
  54. package/dist/tools/salarytransactions.js +70 -0
  55. package/dist/tools/salarytransactions.js.map +1 -0
  56. package/dist/tools/scheduletimes.d.ts +3 -0
  57. package/dist/tools/scheduletimes.d.ts.map +1 -0
  58. package/dist/tools/scheduletimes.js +62 -0
  59. package/dist/tools/scheduletimes.js.map +1 -0
  60. package/dist/tools/status.d.ts.map +1 -1
  61. package/dist/tools/status.js +4 -2
  62. package/dist/tools/status.js.map +1 -1
  63. package/dist/views.d.ts +9 -0
  64. package/dist/views.d.ts.map +1 -1
  65. package/dist/views.js +115 -0
  66. package/dist/views.js.map +1 -1
  67. package/package.json +6 -2
@@ -7,8 +7,13 @@ export declare class FortnoxApiError extends Error {
7
7
  readonly statusCode: number;
8
8
  readonly fortnoxMessage: string;
9
9
  readonly details?: string | undefined;
10
+ readonly retryAfterMs?: number | undefined;
10
11
  readonly hint?: string;
11
- constructor(statusCode: number, fortnoxMessage: string, details?: string | undefined, endpoint?: string);
12
+ constructor(statusCode: number, fortnoxMessage: string, details?: string | undefined, endpoint?: string, retryAfterMs?: number | undefined);
13
+ }
14
+ export declare class FortnoxRequestTimeoutError extends Error {
15
+ readonly outcomeUnknown: boolean;
16
+ constructor(method: string, endpoint: string, timeoutMs: number);
12
17
  }
13
18
  export interface RequestOptions {
14
19
  method?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"fortnox-client.d.ts","sourceRoot":"","sources":["../src/fortnox-client.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAItB,UAAU,EAAE,MAAM;aAClB,cAAc,EAAE,MAAM;aACtB,OAAO,CAAC,EAAE,MAAM;IALlC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGZ,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,YAAA,EAChC,QAAQ,CAAC,EAAE,MAAM;CAWpB;AAwFD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACtD;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAiEZ;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAM,GACvD,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBjD"}
1
+ {"version":3,"file":"fortnox-client.d.ts","sourceRoot":"","sources":["../src/fortnox-client.ts"],"names":[],"mappings":"AA4CA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAItB,UAAU,EAAE,MAAM;aAClB,cAAc,EAAE,MAAM;aACtB,OAAO,CAAC,EAAE,MAAM;aAEhB,YAAY,CAAC,EAAE,MAAM;IAPvC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGZ,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,YAAA,EAChC,QAAQ,CAAC,EAAE,MAAM,EACD,YAAY,CAAC,EAAE,MAAM,YAAA;CAWxC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAE5B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAShE;AA2ID,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACtD;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAiFZ;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAM,GACvD,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBjD"}
@@ -1,29 +1,48 @@
1
1
  import { getResolvedProfile, getValidToken } from './auth.js';
2
2
  import { DEFAULT_PROFILE } from './profile-name.js';
3
3
  const BASE_URL = 'https://api.fortnox.se/3';
4
+ const REQUEST_TIMEOUT_MS = 30_000;
5
+ const UPLOAD_TIMEOUT_MS = 120_000;
6
+ const MAX_RETRIES = 3;
7
+ const MAX_RETRY_DELAY_MS = 30_000;
4
8
  // Rate limiter: max 25 requests per 5 seconds
5
9
  const RATE_WINDOW_MS = 5000;
6
10
  const RATE_LIMIT = 25;
7
11
  const requestTimestamps = [];
12
+ let rateLimitTail = Promise.resolve();
8
13
  async function waitForRateLimit() {
9
- const now = Date.now();
10
- // Remove timestamps older than the window
11
- while (requestTimestamps.length > 0 && requestTimestamps[0] < now - RATE_WINDOW_MS) {
12
- requestTimestamps.shift();
14
+ let release;
15
+ const previous = rateLimitTail;
16
+ rateLimitTail = new Promise((resolve) => {
17
+ release = resolve;
18
+ });
19
+ await previous;
20
+ try {
21
+ while (true) {
22
+ const now = Date.now();
23
+ while (requestTimestamps.length > 0 && requestTimestamps[0] <= now - RATE_WINDOW_MS) {
24
+ requestTimestamps.shift();
25
+ }
26
+ if (requestTimestamps.length < RATE_LIMIT) {
27
+ requestTimestamps.push(now);
28
+ return;
29
+ }
30
+ const oldestInWindow = requestTimestamps[0];
31
+ const waitMs = Math.max(1, oldestInWindow + RATE_WINDOW_MS - now + 50);
32
+ await new Promise((resolve) => setTimeout(resolve, waitMs));
33
+ }
13
34
  }
14
- if (requestTimestamps.length >= RATE_LIMIT) {
15
- const oldestInWindow = requestTimestamps[0];
16
- const waitMs = oldestInWindow + RATE_WINDOW_MS - now + 50; // 50ms buffer
17
- await new Promise((resolve) => setTimeout(resolve, waitMs));
35
+ finally {
36
+ release();
18
37
  }
19
- requestTimestamps.push(Date.now());
20
38
  }
21
39
  export class FortnoxApiError extends Error {
22
40
  statusCode;
23
41
  fortnoxMessage;
24
42
  details;
43
+ retryAfterMs;
25
44
  hint;
26
- constructor(statusCode, fortnoxMessage, details, endpoint) {
45
+ constructor(statusCode, fortnoxMessage, details, endpoint, retryAfterMs) {
27
46
  const hint = getErrorHint(statusCode, fortnoxMessage, endpoint);
28
47
  const profile = getResolvedProfile();
29
48
  const profileTag = profile.toLowerCase() !== DEFAULT_PROFILE ? `[profile: ${profile}] ` : '';
@@ -34,11 +53,31 @@ export class FortnoxApiError extends Error {
34
53
  this.statusCode = statusCode;
35
54
  this.fortnoxMessage = fortnoxMessage;
36
55
  this.details = details;
56
+ this.retryAfterMs = retryAfterMs;
37
57
  this.name = 'FortnoxApiError';
38
58
  this.hint = hint;
39
59
  }
40
60
  }
61
+ export class FortnoxRequestTimeoutError extends Error {
62
+ outcomeUnknown;
63
+ constructor(method, endpoint, timeoutMs) {
64
+ const mutation = !['GET', 'HEAD', 'OPTIONS'].includes(method);
65
+ const suffix = mutation
66
+ ? ' The outcome is unknown; verify the result in Fortnox before retrying to avoid duplicate side effects.'
67
+ : ' It is safe to retry the read request.';
68
+ super(`Fortnox ${method} ${endpoint} timed out after ${timeoutMs} ms.${suffix}`);
69
+ this.name = 'FortnoxRequestTimeoutError';
70
+ this.outcomeUnknown = mutation;
71
+ }
72
+ }
41
73
  function getErrorHint(statusCode, message, endpoint) {
74
+ // Payroll: creating an employee fails with a null "ftgavtalid" when Fortnox
75
+ // can't assign a company/employment agreement — which happens when
76
+ // EmploymentForm / PersonelType / SalaryForm are omitted. Message-based (the
77
+ // status is a generic 400), so check it before the status switch.
78
+ if (/ftgavtal/i.test(message)) {
79
+ return 'Fortnox could not assign an employment agreement (företagsavtal). On employee create, also set EmploymentForm, PersonelType and SalaryForm — or configure a default agreement in Fortnox Lön.';
80
+ }
42
81
  switch (statusCode) {
43
82
  case 401:
44
83
  return 'Authentication failed. Try `noxctl init` to re-authenticate.';
@@ -53,7 +92,7 @@ function getErrorHint(statusCode, message, endpoint) {
53
92
  case 404:
54
93
  return 'Resource not found. Verify the ID/number exists in Fortnox.';
55
94
  case 429:
56
- return 'Rate limited by Fortnox. The request will be retried automatically.';
95
+ return 'Rate limited by Fortnox. Read requests are retried automatically; mutations are not retried to avoid duplicate side effects.';
57
96
  default:
58
97
  if (statusCode >= 500) {
59
98
  return 'Fortnox server error. Try again in a moment.';
@@ -85,6 +124,11 @@ function endpointToScope(endpoint) {
85
124
  inbox: 'inbox',
86
125
  archive: 'archive',
87
126
  voucherfileconnections: 'connectfile',
127
+ employees: 'salary',
128
+ salarytransactions: 'salary',
129
+ attendancetransactions: 'salary',
130
+ absencetransactions: 'salary',
131
+ scheduletimes: 'salary',
88
132
  };
89
133
  for (const [prefix, scope] of Object.entries(mapping)) {
90
134
  if (path.startsWith(prefix))
@@ -92,7 +136,41 @@ function endpointToScope(endpoint) {
92
136
  }
93
137
  return undefined;
94
138
  }
95
- async function retryWithBackoff(fn, retryable, maxRetries = 3) {
139
+ function errorCode(err) {
140
+ let current = err;
141
+ for (let depth = 0; depth < 4 && current && typeof current === 'object'; depth++) {
142
+ const value = current;
143
+ if (typeof value.code === 'string')
144
+ return value.code;
145
+ current = value.cause;
146
+ }
147
+ return undefined;
148
+ }
149
+ function isTimeoutError(err) {
150
+ return (err instanceof Error &&
151
+ (err.name === 'TimeoutError' || err.name === 'AbortError' || errorCode(err) === 'ABORT_ERR'));
152
+ }
153
+ function isTransientNetworkError(err) {
154
+ if (isTimeoutError(err))
155
+ return true;
156
+ const code = errorCode(err);
157
+ if (code &&
158
+ ['ECONNRESET', 'ETIMEDOUT', 'EAI_AGAIN', 'ENETUNREACH', 'ECONNREFUSED'].includes(code)) {
159
+ return true;
160
+ }
161
+ return err instanceof TypeError && /fetch failed/i.test(err.message);
162
+ }
163
+ function retryAfterDelay(response) {
164
+ const raw = response.headers?.get?.('retry-after');
165
+ if (!raw)
166
+ return undefined;
167
+ const seconds = Number(raw);
168
+ const delay = Number.isFinite(seconds) ? seconds * 1000 : new Date(raw).getTime() - Date.now();
169
+ if (!Number.isFinite(delay))
170
+ return undefined;
171
+ return Math.min(Math.max(0, delay), MAX_RETRY_DELAY_MS);
172
+ }
173
+ async function retryWithBackoff(fn, retryable, maxRetries = MAX_RETRIES) {
96
174
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
97
175
  try {
98
176
  return await fn();
@@ -108,12 +186,12 @@ async function retryWithBackoff(fn, retryable, maxRetries = 3) {
108
186
  if (!retryable.includes(err.statusCode))
109
187
  throw err;
110
188
  }
111
- else if (err instanceof Error &&
112
- !err.message.includes('ECONNRESET') &&
113
- !err.message.includes('ETIMEDOUT')) {
189
+ else if (!isTransientNetworkError(err)) {
114
190
  throw err;
115
191
  }
116
- const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
192
+ const delay = err instanceof FortnoxApiError && err.retryAfterMs !== undefined
193
+ ? err.retryAfterMs
194
+ : Math.min(1000 * Math.pow(2, attempt), MAX_RETRY_DELAY_MS);
117
195
  await new Promise((resolve) => setTimeout(resolve, delay));
118
196
  }
119
197
  }
@@ -122,59 +200,69 @@ async function retryWithBackoff(fn, retryable, maxRetries = 3) {
122
200
  export async function fortnoxRequest(endpoint, options = {}) {
123
201
  const method = (options.method || 'GET').toUpperCase();
124
202
  const retryable = method === 'GET' || method === 'HEAD' || method === 'OPTIONS';
125
- return retryWithBackoff(async () => {
126
- await waitForRateLimit();
127
- const token = await getValidToken();
128
- const url = new URL(`${BASE_URL}/${endpoint}`);
129
- if (options.params) {
130
- for (const [key, value] of Object.entries(options.params)) {
131
- if (value !== undefined) {
132
- url.searchParams.set(key, String(value));
203
+ const timeoutMs = options.rawBody === undefined ? REQUEST_TIMEOUT_MS : UPLOAD_TIMEOUT_MS;
204
+ try {
205
+ return await retryWithBackoff(async () => {
206
+ await waitForRateLimit();
207
+ const token = await getValidToken();
208
+ const url = new URL(`${BASE_URL}/${endpoint}`);
209
+ if (options.params) {
210
+ for (const [key, value] of Object.entries(options.params)) {
211
+ if (value !== undefined) {
212
+ url.searchParams.set(key, String(value));
213
+ }
133
214
  }
134
215
  }
135
- }
136
- const headers = {
137
- Authorization: `Bearer ${token}`,
138
- Accept: 'application/json',
139
- };
140
- const fetchOptions = {
141
- method,
142
- headers,
143
- };
144
- if (options.rawBody !== undefined) {
145
- // A raw body (e.g. FormData for a multipart file upload): do NOT set
146
- // Content-Type — fetch/undici derives it (and the multipart boundary)
147
- // from the body itself.
148
- fetchOptions.body = options.rawBody;
149
- }
150
- else {
151
- headers['Content-Type'] = 'application/json';
152
- if (options.body) {
153
- fetchOptions.body = JSON.stringify(options.body);
216
+ const headers = {
217
+ Authorization: `Bearer ${token}`,
218
+ Accept: 'application/json',
219
+ };
220
+ const fetchOptions = {
221
+ method,
222
+ headers,
223
+ signal: AbortSignal.timeout(timeoutMs),
224
+ };
225
+ if (options.rawBody !== undefined) {
226
+ // A raw body (e.g. FormData for a multipart file upload): do NOT set
227
+ // Content-Type — fetch/undici derives it (and the multipart boundary)
228
+ // from the body itself.
229
+ fetchOptions.body = options.rawBody;
154
230
  }
155
- }
156
- const response = await fetch(url.toString(), fetchOptions);
157
- if (!response.ok) {
158
- let errorMessage = `HTTP ${response.status}`;
159
- let details;
160
- try {
161
- const errorBody = (await response.json());
162
- if (errorBody?.ErrorInformation) {
163
- errorMessage = errorBody.ErrorInformation.message || errorMessage;
164
- details = `Error code: ${errorBody.ErrorInformation.code}`;
231
+ else {
232
+ headers['Content-Type'] = 'application/json';
233
+ if (options.body) {
234
+ fetchOptions.body = JSON.stringify(options.body);
165
235
  }
166
236
  }
167
- catch {
168
- // ignore parse errors
237
+ const response = await fetch(url.toString(), fetchOptions);
238
+ if (!response.ok) {
239
+ let errorMessage = `HTTP ${response.status}`;
240
+ let details;
241
+ try {
242
+ const errorBody = (await response.json());
243
+ if (errorBody?.ErrorInformation) {
244
+ errorMessage = errorBody.ErrorInformation.message || errorMessage;
245
+ details = `Error code: ${errorBody.ErrorInformation.code}`;
246
+ }
247
+ }
248
+ catch {
249
+ // ignore parse errors
250
+ }
251
+ throw new FortnoxApiError(response.status, errorMessage, details, endpoint, retryAfterDelay(response));
169
252
  }
170
- throw new FortnoxApiError(response.status, errorMessage, details, endpoint);
253
+ // Some endpoints return empty responses (e.g., DELETE)
254
+ const text = await response.text();
255
+ if (!text)
256
+ return undefined;
257
+ return JSON.parse(text);
258
+ }, retryable);
259
+ }
260
+ catch (err) {
261
+ if (isTimeoutError(err)) {
262
+ throw new FortnoxRequestTimeoutError(method, endpoint, timeoutMs);
171
263
  }
172
- // Some endpoints return empty responses (e.g., DELETE)
173
- const text = await response.text();
174
- if (!text)
175
- return undefined;
176
- return JSON.parse(text);
177
- }, retryable);
264
+ throw err;
265
+ }
178
266
  }
179
267
  /**
180
268
  * Fetch all pages of a paginated Fortnox list endpoint.
@@ -1 +1 @@
1
- {"version":3,"file":"fortnox-client.js","sourceRoot":"","sources":["../src/fortnox-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fortnox-client.js","sourceRoot":"","sources":["../src/fortnox-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2BpE,wBAAgB,YAAY,IAAI,SAAS,CA6BxC;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,IAAI,EAChB,yBAAyB,GACzB,oBAAoB,GACpB,iBAAiB,GACjB,aAAa;gBAJD,IAAI,EAChB,yBAAyB,GACzB,oBAAoB,GACpB,iBAAiB,GACjB,aAAa,EACjB,OAAO,EAAE,MAAM;CAKlB;AAMD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAmC7D;AAID,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAO7F;AAED,wBAAsB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAavF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgCpE,wBAAgB,YAAY,IAAI,SAAS,CAkCxC;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,IAAI,EAChB,yBAAyB,GACzB,oBAAoB,GACpB,iBAAiB,GACjB,aAAa;gBAJD,IAAI,EAChB,yBAAyB,GACzB,oBAAoB,GACpB,iBAAiB,GACjB,aAAa,EACjB,OAAO,EAAE,MAAM;CAKlB;AAMD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAmC7D;AAID,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAO7F;AAED,wBAAsB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAavF"}
package/dist/index.js CHANGED
@@ -24,10 +24,15 @@ import { registerPriceListTools } from './tools/pricelists.js';
24
24
  import { registerFinancialYearTools } from './tools/financial-years.js';
25
25
  import { registerContractTools } from './tools/contracts.js';
26
26
  import { registerAnalyticsTools } from './tools/analytics.js';
27
+ import { registerEmployeeTools } from './tools/employees.js';
28
+ import { registerSalaryTransactionTools } from './tools/salarytransactions.js';
29
+ import { registerAttendanceTransactionTools } from './tools/attendancetransactions.js';
30
+ import { registerAbsenceTransactionTools } from './tools/absencetransactions.js';
31
+ import { registerScheduleTimeTools } from './tools/scheduletimes.js';
27
32
  export function createServer() {
28
33
  const server = new McpServer({
29
34
  name: 'fortnox-mcp',
30
- version: '0.3.0',
35
+ version: '0.4.1',
31
36
  });
32
37
  registerCustomerTools(server);
33
38
  registerInvoiceTools(server);
@@ -50,6 +55,11 @@ export function createServer() {
50
55
  registerFinancialYearTools(server);
51
56
  registerContractTools(server);
52
57
  registerAnalyticsTools(server);
58
+ registerEmployeeTools(server);
59
+ registerSalaryTransactionTools(server);
60
+ registerAttendanceTransactionTools(server);
61
+ registerAbsenceTransactionTools(server);
62
+ registerScheduleTimeTools(server);
53
63
  return server;
54
64
  }
55
65
  // Thrown by resolveStartupProfile when the profile cannot be resolved
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ interface AbsenceTransactionsResponse {
2
+ AbsenceTransactions: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListAbsenceTransactionsParams {
10
+ employeeId?: string;
11
+ date?: string;
12
+ page?: number;
13
+ limit?: number;
14
+ all?: boolean;
15
+ }
16
+ export declare function listAbsenceTransactions(params?: ListAbsenceTransactionsParams): Promise<AbsenceTransactionsResponse>;
17
+ export declare function getAbsenceTransaction(id: string): Promise<Record<string, unknown>>;
18
+ export declare function createAbsenceTransaction(params: Record<string, unknown>): Promise<Record<string, unknown>>;
19
+ export declare function deleteAbsenceTransaction(id: string): Promise<void>;
20
+ export {};
21
+ //# sourceMappingURL=absencetransactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"absencetransactions.d.ts","sourceRoot":"","sources":["../../src/operations/absencetransactions.ts"],"names":[],"mappings":"AAMA,UAAU,2BAA2B;IACnC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/C,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,GAAE,6BAAkC,GACzC,OAAO,CAAC,2BAA2B,CAAC,CAsBtC;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKxF;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxE"}
@@ -0,0 +1,36 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ export async function listAbsenceTransactions(params = {}) {
3
+ // Note the lowercase query keys: Fortnox expects "employeeid" and "date".
4
+ if (params.all) {
5
+ const { items, totalResources } = await fetchAllPages('absencetransactions', 'AbsenceTransactions', { employeeid: params.employeeId, date: params.date });
6
+ return {
7
+ AbsenceTransactions: items,
8
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
9
+ };
10
+ }
11
+ return fortnoxRequest('absencetransactions', {
12
+ params: {
13
+ employeeid: params.employeeId,
14
+ date: params.date,
15
+ page: params.page || 1,
16
+ limit: params.limit || 100,
17
+ },
18
+ });
19
+ }
20
+ export async function getAbsenceTransaction(id) {
21
+ const data = await fortnoxRequest(`absencetransactions/${encodeURIComponent(id)}`);
22
+ return data.AbsenceTransaction;
23
+ }
24
+ export async function createAbsenceTransaction(params) {
25
+ const data = await fortnoxRequest('absencetransactions', {
26
+ method: 'POST',
27
+ body: { AbsenceTransaction: params },
28
+ });
29
+ return data.AbsenceTransaction;
30
+ }
31
+ export async function deleteAbsenceTransaction(id) {
32
+ await fortnoxRequest(`absencetransactions/${encodeURIComponent(id)}`, {
33
+ method: 'DELETE',
34
+ });
35
+ }
36
+ //# sourceMappingURL=absencetransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"absencetransactions.js","sourceRoot":"","sources":["../../src/operations/absencetransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAmBrE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAwC,EAAE;IAE1C,0EAA0E;IAC1E,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,qBAAqB,EACrB,qBAAqB,EACrB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CACrD,CAAC;QACF,OAAO;YACL,mBAAmB,EAAE,KAAK;YAC1B,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAA8B,qBAAqB,EAAE;QACxE,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;SAC3B;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAU;IACpD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAChD,CAAC;IACF,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAA6B,qBAAqB,EAAE;QACnF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE;KACrC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAU;IACvD,MAAM,cAAc,CAAC,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;QACpE,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,21 @@
1
+ interface AttendanceTransactionsResponse {
2
+ AttendanceTransactions: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListAttendanceTransactionsParams {
10
+ employeeId?: string;
11
+ date?: string;
12
+ page?: number;
13
+ limit?: number;
14
+ all?: boolean;
15
+ }
16
+ export declare function listAttendanceTransactions(params?: ListAttendanceTransactionsParams): Promise<AttendanceTransactionsResponse>;
17
+ export declare function getAttendanceTransaction(id: string): Promise<Record<string, unknown>>;
18
+ export declare function createAttendanceTransaction(params: Record<string, unknown>): Promise<Record<string, unknown>>;
19
+ export declare function deleteAttendanceTransaction(id: string): Promise<void>;
20
+ export {};
21
+ //# sourceMappingURL=attendancetransactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attendancetransactions.d.ts","sourceRoot":"","sources":["../../src/operations/attendancetransactions.ts"],"names":[],"mappings":"AAMA,UAAU,8BAA8B;IACtC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClD,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,gCAAgC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,GAAE,gCAAqC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CA0BzC;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK3F;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E"}
@@ -0,0 +1,40 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ export async function listAttendanceTransactions(params = {}) {
3
+ if (params.all) {
4
+ // The Fortnox attendance list endpoint names its filter params "employeeid"
5
+ // (all lowercase) and "date" — the filters must survive pagination, so pass
6
+ // them through to fetchAllPages too (not just the single-page branch below).
7
+ const { items, totalResources } = await fetchAllPages('attendancetransactions', 'AttendanceTransactions', { employeeid: params.employeeId, date: params.date });
8
+ return {
9
+ AttendanceTransactions: items,
10
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
11
+ };
12
+ }
13
+ // The Fortnox attendance list endpoint names its filter params "employeeid"
14
+ // (all lowercase) and "date" — map employeeId onto the lowercase key.
15
+ return fortnoxRequest('attendancetransactions', {
16
+ params: {
17
+ employeeid: params.employeeId,
18
+ date: params.date,
19
+ page: params.page || 1,
20
+ limit: params.limit || 100,
21
+ },
22
+ });
23
+ }
24
+ export async function getAttendanceTransaction(id) {
25
+ const data = await fortnoxRequest(`attendancetransactions/${encodeURIComponent(id)}`);
26
+ return data.AttendanceTransaction;
27
+ }
28
+ export async function createAttendanceTransaction(params) {
29
+ const data = await fortnoxRequest('attendancetransactions', {
30
+ method: 'POST',
31
+ body: { AttendanceTransaction: params },
32
+ });
33
+ return data.AttendanceTransaction;
34
+ }
35
+ export async function deleteAttendanceTransaction(id) {
36
+ await fortnoxRequest(`attendancetransactions/${encodeURIComponent(id)}`, {
37
+ method: 'DELETE',
38
+ });
39
+ }
40
+ //# sourceMappingURL=attendancetransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attendancetransactions.js","sourceRoot":"","sources":["../../src/operations/attendancetransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAmBrE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAA2C,EAAE;IAE7C,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,wBAAwB,EACxB,wBAAwB,EACxB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CACrD,CAAC;QACF,OAAO;YACL,sBAAsB,EAAE,KAAK;YAC7B,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,sEAAsE;IACtE,OAAO,cAAc,CAAiC,wBAAwB,EAAE;QAC9E,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;SAC3B;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAU;IACvD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CACnD,CAAC;IACF,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgC,wBAAwB,EAAE;QACzF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE;KACxC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,EAAU;IAC1D,MAAM,cAAc,CAAC,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;QACvE,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,19 @@
1
+ interface EmployeesResponse {
2
+ Employees: Record<string, unknown>[];
3
+ MetaInformation?: {
4
+ '@TotalResources': number;
5
+ '@TotalPages': number;
6
+ '@CurrentPage': number;
7
+ };
8
+ }
9
+ export interface ListEmployeesParams {
10
+ page?: number;
11
+ limit?: number;
12
+ all?: boolean;
13
+ }
14
+ export declare function listEmployees(params?: ListEmployeesParams): Promise<EmployeesResponse>;
15
+ export declare function getEmployee(employeeId: string): Promise<Record<string, unknown>>;
16
+ export declare function createEmployee(params: Record<string, unknown>): Promise<Record<string, unknown>>;
17
+ export declare function updateEmployee(employeeId: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
18
+ export {};
19
+ //# sourceMappingURL=employees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"employees.d.ts","sourceRoot":"","sources":["../../src/operations/employees.ts"],"names":[],"mappings":"AAMA,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,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,CAehG;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKtF;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,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC"}
@@ -0,0 +1,34 @@
1
+ import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
2
+ export async function listEmployees(params = {}) {
3
+ if (params.all) {
4
+ const { items, totalResources } = await fetchAllPages('employees', 'Employees');
5
+ return {
6
+ Employees: items,
7
+ MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
8
+ };
9
+ }
10
+ return fortnoxRequest('employees', {
11
+ params: { page: params.page || 1, limit: params.limit || 100 },
12
+ });
13
+ }
14
+ export async function getEmployee(employeeId) {
15
+ const data = await fortnoxRequest(`employees/${encodeURIComponent(employeeId)}`);
16
+ return data.Employee;
17
+ }
18
+ export async function createEmployee(params) {
19
+ const data = await fortnoxRequest('employees', {
20
+ method: 'POST',
21
+ body: { Employee: params },
22
+ });
23
+ return data.Employee;
24
+ }
25
+ export async function updateEmployee(employeeId, fields) {
26
+ // EmployeeId is the path key — never send it in the PUT body.
27
+ const { EmployeeId: _, ...body } = fields;
28
+ const data = await fortnoxRequest(`employees/${encodeURIComponent(employeeId)}`, {
29
+ method: 'PUT',
30
+ body: { Employee: body },
31
+ });
32
+ return data.Employee;
33
+ }
34
+ //# sourceMappingURL=employees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"employees.js","sourceRoot":"","sources":["../../src/operations/employees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA8B,EAAE;IAClE,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,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,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,WAAW,CAAC,UAAkB;IAClD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAC9C,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,UAAkB,EAClB,MAA+B;IAE/B,8DAA8D;IAC9D,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAC7C;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzB,CACF,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC"}