@t4dhg/mcp-factorial 9.0.0 → 10.1.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 (82) hide show
  1. package/README.md +84 -14
  2. package/dist/api/attendance.d.ts +37 -13
  3. package/dist/api/attendance.d.ts.map +1 -1
  4. package/dist/api/attendance.js +161 -31
  5. package/dist/api/attendance.js.map +1 -1
  6. package/dist/api/documents.d.ts +4 -3
  7. package/dist/api/documents.d.ts.map +1 -1
  8. package/dist/api/documents.js +4 -3
  9. package/dist/api/documents.js.map +1 -1
  10. package/dist/api/employees.d.ts +5 -3
  11. package/dist/api/employees.d.ts.map +1 -1
  12. package/dist/api/employees.js +5 -3
  13. package/dist/api/employees.js.map +1 -1
  14. package/dist/api/index.d.ts +1 -1
  15. package/dist/api/index.d.ts.map +1 -1
  16. package/dist/api/index.js +1 -1
  17. package/dist/api/index.js.map +1 -1
  18. package/dist/api/time-off.d.ts +6 -1
  19. package/dist/api/time-off.d.ts.map +1 -1
  20. package/dist/api/time-off.js +20 -16
  21. package/dist/api/time-off.js.map +1 -1
  22. package/dist/attendance/backfill.d.ts +38 -0
  23. package/dist/attendance/backfill.d.ts.map +1 -0
  24. package/dist/attendance/backfill.js +109 -0
  25. package/dist/attendance/backfill.js.map +1 -0
  26. package/dist/attendance/gate.d.ts +40 -0
  27. package/dist/attendance/gate.d.ts.map +1 -0
  28. package/dist/attendance/gate.js +63 -0
  29. package/dist/attendance/gate.js.map +1 -0
  30. package/dist/attendance/identity.d.ts +27 -0
  31. package/dist/attendance/identity.d.ts.map +1 -0
  32. package/dist/attendance/identity.js +73 -0
  33. package/dist/attendance/identity.js.map +1 -0
  34. package/dist/attendance/planner.d.ts +189 -0
  35. package/dist/attendance/planner.d.ts.map +1 -0
  36. package/dist/attendance/planner.js +427 -0
  37. package/dist/attendance/planner.js.map +1 -0
  38. package/dist/endpoints.d.ts +5 -0
  39. package/dist/endpoints.d.ts.map +1 -1
  40. package/dist/endpoints.js +5 -0
  41. package/dist/endpoints.js.map +1 -1
  42. package/dist/http-client.d.ts +14 -1
  43. package/dist/http-client.d.ts.map +1 -1
  44. package/dist/http-client.js +36 -7
  45. package/dist/http-client.js.map +1 -1
  46. package/dist/schemas/ats.d.ts +4 -4
  47. package/dist/schemas/attendance.d.ts +367 -0
  48. package/dist/schemas/attendance.d.ts.map +1 -0
  49. package/dist/schemas/attendance.js +159 -0
  50. package/dist/schemas/attendance.js.map +1 -0
  51. package/dist/schemas/documents.d.ts +2 -2
  52. package/dist/schemas/index.d.ts +2 -1
  53. package/dist/schemas/index.d.ts.map +1 -1
  54. package/dist/schemas/index.js +3 -1
  55. package/dist/schemas/index.js.map +1 -1
  56. package/dist/schemas/projects.d.ts +4 -4
  57. package/dist/schemas/time-off.d.ts +59 -148
  58. package/dist/schemas/time-off.d.ts.map +1 -1
  59. package/dist/schemas/time-off.js +22 -53
  60. package/dist/schemas/time-off.js.map +1 -1
  61. package/dist/schemas/training.d.ts +2 -2
  62. package/dist/tools/attendance.d.ts +9 -1
  63. package/dist/tools/attendance.d.ts.map +1 -1
  64. package/dist/tools/attendance.js +364 -24
  65. package/dist/tools/attendance.js.map +1 -1
  66. package/dist/tools/index.js +1 -1
  67. package/dist/tools/index.js.map +1 -1
  68. package/dist/tools/shared.d.ts +2 -2
  69. package/dist/tools/shared.d.ts.map +1 -1
  70. package/dist/tools/shared.js +15 -2
  71. package/dist/tools/shared.js.map +1 -1
  72. package/dist/tools/time-off.d.ts.map +1 -1
  73. package/dist/tools/time-off.js +15 -6
  74. package/dist/tools/time-off.js.map +1 -1
  75. package/dist/types.d.ts +28 -13
  76. package/dist/types.d.ts.map +1 -1
  77. package/dist/write-safety.d.ts +18 -0
  78. package/dist/write-safety.d.ts.map +1 -1
  79. package/dist/write-safety.js +19 -0
  80. package/dist/write-safety.js.map +1 -1
  81. package/llms.txt +7 -4
  82. package/package.json +1 -1
package/dist/endpoints.js CHANGED
@@ -23,6 +23,11 @@ export const ENDPOINTS = {
23
23
  allowances: '/timeoff/allowances',
24
24
  // Attendance endpoints
25
25
  shifts: '/attendance/shifts',
26
+ openShifts: '/attendance/open_shifts',
27
+ estimatedTimes: '/attendance/estimated_times',
28
+ workedTimes: '/attendance/worked_times',
29
+ clockIn: '/attendance/shifts/clock_in',
30
+ clockOut: '/attendance/shifts/clock_out',
26
31
  // Document endpoints
27
32
  folders: '/documents/folders',
28
33
  documents: '/documents/documents',
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,qBAAqB;IACrB,SAAS,EAAE,sBAAsB;IAEjC,iBAAiB;IACjB,KAAK,EAAE,cAAc;IAErB,qBAAqB;IACrB,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,uBAAuB;IAElC,qBAAqB;IACrB,SAAS,EAAE,8BAA8B;IAEzC,qBAAqB;IACrB,MAAM,EAAE,iBAAiB;IACzB,UAAU,EAAE,sBAAsB;IAClC,UAAU,EAAE,qBAAqB;IAEjC,uBAAuB;IACvB,MAAM,EAAE,oBAAoB;IAE5B,qBAAqB;IACrB,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,sBAAsB;IAEjC,wBAAwB;IACxB,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,qBAAqB;IAEhC,+BAA+B;IAC/B,QAAQ,EAAE,8BAA8B;IACxC,YAAY,EAAE,mCAAmC;IACjD,cAAc,EAAE,qCAAqC;IACrD,WAAW,EAAE,kCAAkC;IAE/C,qBAAqB;IACrB,SAAS,EAAE,sBAAsB;IACjC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAE7C,6BAA6B;IAC7B,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,iBAAiB;IAC7B,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,oBAAoB;IAElC,oBAAoB;IACpB,kBAAkB,EAAE,sBAAsB;IAC1C,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EAAE,4BAA4B;CACtC,CAAC;AAOX;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,EAAU;IACzD,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,EAAU,EAAE,MAAc;IAC7E,OAAO,GAAG,QAAQ,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,qBAAqB;IACrB,SAAS,EAAE,sBAAsB;IAEjC,iBAAiB;IACjB,KAAK,EAAE,cAAc;IAErB,qBAAqB;IACrB,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,uBAAuB;IAElC,qBAAqB;IACrB,SAAS,EAAE,8BAA8B;IAEzC,qBAAqB;IACrB,MAAM,EAAE,iBAAiB;IACzB,UAAU,EAAE,sBAAsB;IAClC,UAAU,EAAE,qBAAqB;IAEjC,uBAAuB;IACvB,MAAM,EAAE,oBAAoB;IAC5B,UAAU,EAAE,yBAAyB;IACrC,cAAc,EAAE,6BAA6B;IAC7C,WAAW,EAAE,0BAA0B;IACvC,OAAO,EAAE,6BAA6B;IACtC,QAAQ,EAAE,8BAA8B;IAExC,qBAAqB;IACrB,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,sBAAsB;IAEjC,wBAAwB;IACxB,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,qBAAqB;IAEhC,+BAA+B;IAC/B,QAAQ,EAAE,8BAA8B;IACxC,YAAY,EAAE,mCAAmC;IACjD,cAAc,EAAE,qCAAqC;IACrD,WAAW,EAAE,kCAAkC;IAE/C,qBAAqB;IACrB,SAAS,EAAE,sBAAsB;IACjC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAE7C,6BAA6B;IAC7B,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,iBAAiB;IAC7B,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,oBAAoB;IAElC,oBAAoB;IACpB,kBAAkB,EAAE,sBAAsB;IAC1C,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EAAE,4BAA4B;CACtC,CAAC;AAOX;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,EAAU;IACzD,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,EAAU,EAAE,MAAc;IAC7E,OAAO,GAAG,QAAQ,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;AACvC,CAAC"}
@@ -10,9 +10,11 @@ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
10
10
  /**
11
11
  * Request options for the HTTP client
12
12
  */
13
+ /** A query parameter value; arrays are sent as repeated `key[]=value` pairs */
14
+ export type QueryParamValue = string | number | boolean | undefined | Array<string | number | boolean>;
13
15
  export interface RequestOptions {
14
16
  /** Query parameters */
15
- params?: Record<string, string | number | boolean | undefined>;
17
+ params?: Record<string, QueryParamValue>;
16
18
  /** Request timeout in milliseconds (overrides default) */
17
19
  timeout?: number;
18
20
  /** Maximum retry attempts (overrides default) */
@@ -60,6 +62,17 @@ export interface ApiResponse<T> {
60
62
  export interface ApiListResponse<T> {
61
63
  data: T[];
62
64
  }
65
+ /**
66
+ * Extract a single record from a response.
67
+ *
68
+ * Factorial returns single records at the top level: `GET /{resource}/{id}`
69
+ * and every `POST`, `PUT` and `PATCH` respond with the record itself, and only
70
+ * list endpoints wrap their payload as `{ data: [...], meta: {...} }`. This was
71
+ * verified live on 2026-09-06 on API 2026-07-01 and the reference agrees. The
72
+ * `{ data: record }` envelope is still accepted so that a tenant or version
73
+ * that does wrap single records keeps working.
74
+ */
75
+ export declare function unwrapRecord<T>(response: unknown): T;
63
76
  /**
64
77
  * Make a request expecting a single item response
65
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
@@ -33,9 +33,16 @@ function buildUrl(endpoint, params) {
33
33
  const url = new URL(`${config.baseUrl}${endpoint}`);
34
34
  if (params) {
35
35
  Object.entries(params).forEach(([key, value]) => {
36
- if (value !== undefined && value !== null) {
37
- url.searchParams.append(key, String(value));
36
+ if (value === undefined || value === null)
37
+ return;
38
+ if (Array.isArray(value)) {
39
+ // Factorial expects Rails-style arrays: employee_ids[]=1&employee_ids[]=2
40
+ const name = key.endsWith('[]') ? key : `${key}[]`;
41
+ for (const item of value)
42
+ url.searchParams.append(name, String(item));
43
+ return;
38
44
  }
45
+ url.searchParams.append(key, String(value));
39
46
  });
40
47
  }
41
48
  return url.toString();
@@ -200,12 +207,34 @@ export async function factorialRequest(endpoint, options = {}) {
200
207
  }
201
208
  throw lastError ?? new NetworkError('Request failed after all retries');
202
209
  }
210
+ /**
211
+ * Extract a single record from a response.
212
+ *
213
+ * Factorial returns single records at the top level: `GET /{resource}/{id}`
214
+ * and every `POST`, `PUT` and `PATCH` respond with the record itself, and only
215
+ * list endpoints wrap their payload as `{ data: [...], meta: {...} }`. This was
216
+ * verified live on 2026-09-06 on API 2026-07-01 and the reference agrees. The
217
+ * `{ data: record }` envelope is still accepted so that a tenant or version
218
+ * that does wrap single records keeps working.
219
+ */
220
+ export function unwrapRecord(response) {
221
+ if (response !== null &&
222
+ typeof response === 'object' &&
223
+ !Array.isArray(response) &&
224
+ 'data' in response) {
225
+ const inner = response.data;
226
+ if (inner !== null && typeof inner === 'object' && !Array.isArray(inner)) {
227
+ return inner;
228
+ }
229
+ }
230
+ return response;
231
+ }
203
232
  /**
204
233
  * Make a request expecting a single item response
205
234
  */
206
235
  export async function fetchOne(endpoint, options) {
207
236
  const response = await factorialRequest(endpoint, options);
208
- return response.data;
237
+ return unwrapRecord(response);
209
238
  }
210
239
  /**
211
240
  * Make a request expecting a list response
@@ -226,7 +255,7 @@ export async function postOne(endpoint, body, options) {
226
255
  method: 'POST',
227
256
  body,
228
257
  });
229
- return response.data;
258
+ return unwrapRecord(response);
230
259
  }
231
260
  /**
232
261
  * Update a resource (PUT request expecting single item response)
@@ -237,7 +266,7 @@ export async function putOne(endpoint, body, options) {
237
266
  method: 'PUT',
238
267
  body,
239
268
  });
240
- return response.data;
269
+ return unwrapRecord(response);
241
270
  }
242
271
  /**
243
272
  * Partially update a resource (PATCH request expecting single item response)
@@ -248,7 +277,7 @@ export async function patchOne(endpoint, body, options) {
248
277
  method: 'PATCH',
249
278
  body,
250
279
  });
251
- return response.data;
280
+ return unwrapRecord(response);
252
281
  }
253
282
  /**
254
283
  * Delete a resource (DELETE request, typically returns 204 No Content)
@@ -269,6 +298,6 @@ export async function postAction(endpoint, body, options) {
269
298
  method: 'POST',
270
299
  body: body || {},
271
300
  });
272
- return response.data;
301
+ return unwrapRecord(response);
273
302
  }
274
303
  //# sourceMappingURL=http-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAiCrB;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAAe,EAAE,SAAS,GAAG,IAAI;IACxD,MAAM,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,oBAAoB;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACnD,oBAAoB;IACpB,MAAM,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,QAAgB,EAChB,MAA8D;IAE9D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC;IAEpD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,SAAiB;IAEjB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAA4D,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,QAAkB,EAClB,QAAgB,EAChB,SAAqB,KAAK;IAE1B,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,uDAAuD;QACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,SAAc,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QAC1C,KAAK,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhF,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,GAAG;YACN,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,sBAAsB,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7F,KAAK,GAAG;YACN,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC1C,KAAK,GAAG;YACN,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,GAAG;YACN,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpC,KAAK,GAAG;YACN,MAAM,IAAI,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,IAAI,mBAAmB,CAAC,CAAC;QAC/E,KAAK,GAAG;YACN,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,SAAS,CAAC,EAAE;gBAC9E,GAAG,EAAE,SAAS;aACf,CAAC,CAAC;QACL,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxF,CAAC;QACD;YACE,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC3B,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,cAAc,GAAG,yBAAyB,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,GAAY;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/D,CAAC;YACD,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,6EAA6E;IAC7E,MAAM,iBAAiB,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAC;IAEnF,KAAK,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;IAE1B,IAAI,SAA4B,CAAC;IAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,gBAAgB;YAChB,MAAM,OAAO,GAA2B;gBACtC,WAAW,EAAE,SAAS,EAAE;gBACxB,MAAM,EAAE,kBAAkB;aAC3B,CAAC;YAEF,0CAA0C;YAC1C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC/C,CAAC;YAED,kDAAkD;YAClD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;YACtD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM;gBACN,OAAO;gBACP,IAAI;gBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,MAAM,cAAc,CAAI,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,iCAAiC;YACjC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,SAAS,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAClC,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,IAAI,YAAY,CAAC,sCAAsC,CAAC,CAAC;YACvE,CAAC;YAED,gDAAgD;YAChD,MAAM,aAAa,GAAG,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC;YACjE,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;YAEzF,IAAI,WAAW,EAAE,CAAC;gBAChB,4CAA4C;gBAC5C,IAAI,KAAa,CAAC;gBAClB,IAAI,SAAS,YAAY,cAAc,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;oBAChE,KAAK,GAAG,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;gBAED,KAAK,CAAC,iBAAiB,OAAO,IAAI,UAAU,UAAU,KAAK,IAAI,EAAE;oBAC/D,KAAK,EAAE,SAAS,CAAC,OAAO;iBACzB,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,IAAI,IAAI,YAAY,CAAC,kCAAkC,CAAC,CAAC;AAC1E,CAAC;AAgBD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,QAAgB,EAAE,OAAwB;IAC1E,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAiB,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,QAAgB,EAAE,OAAwB;IAC3E,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAqB,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/E,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,QAAgB,EAChB,IAA6B,EAC7B,OAAsD;IAEtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAiB,QAAQ,EAAE;QAChE,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QACd,IAAI;KACL,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,QAAgB,EAChB,IAA6B,EAC7B,OAAsD;IAEtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAiB,QAAQ,EAAE;QAChE,GAAG,OAAO;QACV,MAAM,EAAE,KAAK;QACb,IAAI;KACL,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,IAA6B,EAC7B,OAAsD;IAEtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAiB,QAAQ,EAAE;QAChE,GAAG,OAAO;QACV,MAAM,EAAE,OAAO;QACf,IAAI;KACL,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,OAAsD;IAEtD,MAAM,gBAAgB,CAAO,QAAQ,EAAE;QACrC,GAAG,OAAO;QACV,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,IAA8B,EAC9B,OAAsD;IAEtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAiB,QAAQ,EAAE;QAChE,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,IAAI,EAAE;KACjB,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
@@ -241,15 +241,15 @@ export declare const CreateCandidateInputSchema: z.ZodObject<{
241
241
  first_name: string;
242
242
  last_name: string;
243
243
  email?: string | undefined;
244
- phone?: string | undefined;
245
244
  source?: string | undefined;
245
+ phone?: string | undefined;
246
246
  linkedin_url?: string | undefined;
247
247
  }, {
248
248
  first_name: string;
249
249
  last_name: string;
250
250
  email?: string | undefined;
251
- phone?: string | undefined;
252
251
  source?: string | undefined;
252
+ phone?: string | undefined;
253
253
  linkedin_url?: string | undefined;
254
254
  }>;
255
255
  export type CreateCandidateInput = z.infer<typeof CreateCandidateInputSchema>;
@@ -267,15 +267,15 @@ export declare const UpdateCandidateInputSchema: z.ZodObject<{
267
267
  first_name?: string | undefined;
268
268
  last_name?: string | undefined;
269
269
  email?: string | undefined;
270
- phone?: string | undefined;
271
270
  source?: string | undefined;
271
+ phone?: string | undefined;
272
272
  linkedin_url?: string | undefined;
273
273
  }, {
274
274
  first_name?: string | undefined;
275
275
  last_name?: string | undefined;
276
276
  email?: string | undefined;
277
- phone?: string | undefined;
278
277
  source?: string | undefined;
278
+ phone?: string | undefined;
279
279
  linkedin_url?: string | undefined;
280
280
  }>;
281
281
  export type UpdateCandidateInput = z.infer<typeof UpdateCandidateInputSchema>;
@@ -0,0 +1,367 @@
1
+ /**
2
+ * Attendance schemas: Shift, OpenShift, EstimatedTime, WorkedTime, and the
3
+ * write inputs for shifts, clocking and bulk time entry.
4
+ *
5
+ * Response shapes were captured from the live API on version 2026-07-01 on
6
+ * 2026-09-06 with read-only requests. All response schemas are declared with
7
+ * passthrough so a field Factorial adds later does not break parsing.
8
+ */
9
+ import { z } from 'zod';
10
+ /** "HH:MM", 24-hour, company local wall-clock time */
11
+ export declare const hhmm: z.ZodString;
12
+ /** ISO 8601 date-time with an explicit offset, e.g. 2026-09-05T09:12:00+02:00 */
13
+ export declare const isoWithOffset: z.ZodString;
14
+ export declare const LOCATION_TYPES: readonly ["office", "business_trip", "work_from_home"];
15
+ export declare const HALF_DAY_VALUES: readonly ["beggining_of_day", "end_of_day"];
16
+ /**
17
+ * Shift record as /attendance/shifts returns it. Times are HH:MM strings, not
18
+ * ISO 8601; `date` carries the day. `minutes` is the worked duration.
19
+ */
20
+ export declare const ShiftSchema: z.ZodObject<{
21
+ id: z.ZodString;
22
+ employee_id: z.ZodString;
23
+ date: z.ZodString;
24
+ reference_date: z.ZodNullable<z.ZodString>;
25
+ clock_in: z.ZodNullable<z.ZodString>;
26
+ clock_out: z.ZodNullable<z.ZodString>;
27
+ clock_in_with_seconds: z.ZodOptional<z.ZodNullable<z.ZodString>>;
28
+ in_source: z.ZodNullable<z.ZodString>;
29
+ out_source: z.ZodNullable<z.ZodString>;
30
+ observations: z.ZodNullable<z.ZodString>;
31
+ location_type: z.ZodNullable<z.ZodString>;
32
+ half_day: z.ZodNullable<z.ZodString>;
33
+ workable: z.ZodNullable<z.ZodBoolean>;
34
+ minutes: z.ZodNullable<z.ZodNumber>;
35
+ workplace_id: z.ZodNullable<z.ZodString>;
36
+ time_settings_break_configuration_id: z.ZodNullable<z.ZodString>;
37
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
38
+ in_location_latitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
39
+ in_location_longitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
40
+ in_location_accuracy: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
41
+ out_location_latitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
42
+ out_location_longitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
43
+ out_location_accuracy: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
44
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
45
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
47
+ id: z.ZodString;
48
+ employee_id: z.ZodString;
49
+ date: z.ZodString;
50
+ reference_date: z.ZodNullable<z.ZodString>;
51
+ clock_in: z.ZodNullable<z.ZodString>;
52
+ clock_out: z.ZodNullable<z.ZodString>;
53
+ clock_in_with_seconds: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ in_source: z.ZodNullable<z.ZodString>;
55
+ out_source: z.ZodNullable<z.ZodString>;
56
+ observations: z.ZodNullable<z.ZodString>;
57
+ location_type: z.ZodNullable<z.ZodString>;
58
+ half_day: z.ZodNullable<z.ZodString>;
59
+ workable: z.ZodNullable<z.ZodBoolean>;
60
+ minutes: z.ZodNullable<z.ZodNumber>;
61
+ workplace_id: z.ZodNullable<z.ZodString>;
62
+ time_settings_break_configuration_id: z.ZodNullable<z.ZodString>;
63
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
64
+ in_location_latitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
65
+ in_location_longitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
66
+ in_location_accuracy: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
67
+ out_location_latitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
68
+ out_location_longitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
69
+ out_location_accuracy: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
70
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
71
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
72
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
73
+ id: z.ZodString;
74
+ employee_id: z.ZodString;
75
+ date: z.ZodString;
76
+ reference_date: z.ZodNullable<z.ZodString>;
77
+ clock_in: z.ZodNullable<z.ZodString>;
78
+ clock_out: z.ZodNullable<z.ZodString>;
79
+ clock_in_with_seconds: z.ZodOptional<z.ZodNullable<z.ZodString>>;
80
+ in_source: z.ZodNullable<z.ZodString>;
81
+ out_source: z.ZodNullable<z.ZodString>;
82
+ observations: z.ZodNullable<z.ZodString>;
83
+ location_type: z.ZodNullable<z.ZodString>;
84
+ half_day: z.ZodNullable<z.ZodString>;
85
+ workable: z.ZodNullable<z.ZodBoolean>;
86
+ minutes: z.ZodNullable<z.ZodNumber>;
87
+ workplace_id: z.ZodNullable<z.ZodString>;
88
+ time_settings_break_configuration_id: z.ZodNullable<z.ZodString>;
89
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
90
+ in_location_latitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
91
+ in_location_longitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
92
+ in_location_accuracy: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
93
+ out_location_latitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
94
+ out_location_longitude: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
95
+ out_location_accuracy: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
96
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
98
+ }, z.ZodTypeAny, "passthrough">>;
99
+ export type Shift = z.infer<typeof ShiftSchema>;
100
+ /**
101
+ * Currently open shift as /attendance/open_shifts returns it. This is a
102
+ * different object from Shift: clock_in is a date-time on the placeholder
103
+ * date 2000-01-01 and there is a `status` field.
104
+ */
105
+ export declare const OpenShiftSchema: z.ZodObject<{
106
+ id: z.ZodString;
107
+ employee_id: z.ZodString;
108
+ date: z.ZodString;
109
+ reference_date: z.ZodNullable<z.ZodString>;
110
+ clock_in: z.ZodString;
111
+ clock_out: z.ZodNullable<z.ZodString>;
112
+ status: z.ZodString;
113
+ workable: z.ZodNullable<z.ZodBoolean>;
114
+ automatic_clock_in: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
115
+ location_type: z.ZodNullable<z.ZodString>;
116
+ workplace_id: z.ZodNullable<z.ZodString>;
117
+ time_settings_break_configuration_id: z.ZodNullable<z.ZodString>;
118
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
119
+ id: z.ZodString;
120
+ employee_id: z.ZodString;
121
+ date: z.ZodString;
122
+ reference_date: z.ZodNullable<z.ZodString>;
123
+ clock_in: z.ZodString;
124
+ clock_out: z.ZodNullable<z.ZodString>;
125
+ status: z.ZodString;
126
+ workable: z.ZodNullable<z.ZodBoolean>;
127
+ automatic_clock_in: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
128
+ location_type: z.ZodNullable<z.ZodString>;
129
+ workplace_id: z.ZodNullable<z.ZodString>;
130
+ time_settings_break_configuration_id: z.ZodNullable<z.ZodString>;
131
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
132
+ id: z.ZodString;
133
+ employee_id: z.ZodString;
134
+ date: z.ZodString;
135
+ reference_date: z.ZodNullable<z.ZodString>;
136
+ clock_in: z.ZodString;
137
+ clock_out: z.ZodNullable<z.ZodString>;
138
+ status: z.ZodString;
139
+ workable: z.ZodNullable<z.ZodBoolean>;
140
+ automatic_clock_in: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
141
+ location_type: z.ZodNullable<z.ZodString>;
142
+ workplace_id: z.ZodNullable<z.ZodString>;
143
+ time_settings_break_configuration_id: z.ZodNullable<z.ZodString>;
144
+ }, z.ZodTypeAny, "passthrough">>;
145
+ export type OpenShift = z.infer<typeof OpenShiftSchema>;
146
+ /**
147
+ * Expected minutes per day from the weekly contract pattern
148
+ * (/attendance/estimated_times). Knows nothing about bank holidays or leave.
149
+ */
150
+ export declare const EstimatedTimeSchema: z.ZodObject<{
151
+ id: z.ZodString;
152
+ employee_id: z.ZodString;
153
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
154
+ date: z.ZodString;
155
+ expected_minutes: z.ZodNumber;
156
+ regular_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
157
+ overtime_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
158
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
159
+ estimated_half_days: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
160
+ source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
161
+ time_unit: z.ZodOptional<z.ZodNullable<z.ZodString>>;
162
+ breaks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
163
+ shifts: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
164
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
165
+ id: z.ZodString;
166
+ employee_id: z.ZodString;
167
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
168
+ date: z.ZodString;
169
+ expected_minutes: z.ZodNumber;
170
+ regular_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
171
+ overtime_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
172
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
173
+ estimated_half_days: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
174
+ source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
175
+ time_unit: z.ZodOptional<z.ZodNullable<z.ZodString>>;
176
+ breaks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
177
+ shifts: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
178
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
179
+ id: z.ZodString;
180
+ employee_id: z.ZodString;
181
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
182
+ date: z.ZodString;
183
+ expected_minutes: z.ZodNumber;
184
+ regular_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
185
+ overtime_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
186
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
187
+ estimated_half_days: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
188
+ source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
189
+ time_unit: z.ZodOptional<z.ZodNullable<z.ZodString>>;
190
+ breaks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
191
+ shifts: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
192
+ }, z.ZodTypeAny, "passthrough">>;
193
+ export type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;
194
+ /**
195
+ * Tracked minutes per day plus the day type (/attendance/worked_times). The
196
+ * company's holiday calendar surfaces here as day_type "bank_holiday".
197
+ */
198
+ export declare const WorkedTimeSchema: z.ZodObject<{
199
+ id: z.ZodString;
200
+ employee_id: z.ZodString;
201
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
202
+ date: z.ZodString;
203
+ day_type: z.ZodString;
204
+ tracked_minutes: z.ZodNumber;
205
+ multiplied_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
206
+ pending_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
207
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
208
+ time_unit: z.ZodOptional<z.ZodNullable<z.ZodString>>;
209
+ worked_time_blocks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
210
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
211
+ id: z.ZodString;
212
+ employee_id: z.ZodString;
213
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
214
+ date: z.ZodString;
215
+ day_type: z.ZodString;
216
+ tracked_minutes: z.ZodNumber;
217
+ multiplied_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
218
+ pending_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
219
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
220
+ time_unit: z.ZodOptional<z.ZodNullable<z.ZodString>>;
221
+ worked_time_blocks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
222
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
223
+ id: z.ZodString;
224
+ employee_id: z.ZodString;
225
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
226
+ date: z.ZodString;
227
+ day_type: z.ZodString;
228
+ tracked_minutes: z.ZodNumber;
229
+ multiplied_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
230
+ pending_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
231
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
232
+ time_unit: z.ZodOptional<z.ZodNullable<z.ZodString>>;
233
+ worked_time_blocks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
234
+ }, z.ZodTypeAny, "passthrough">>;
235
+ export type WorkedTime = z.infer<typeof WorkedTimeSchema>;
236
+ /**
237
+ * Shift create input. `date` is the only field the API requires, but with a
238
+ * company-scoped key a missing employee_id is answered with a misleading 404,
239
+ * so it is required here too.
240
+ */
241
+ export declare const CreateShiftInputSchema: z.ZodObject<{
242
+ employee_id: z.ZodNumber;
243
+ date: z.ZodString;
244
+ clock_in: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>;
245
+ clock_out: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>;
246
+ reference_date: z.ZodOptional<z.ZodString>;
247
+ observations: z.ZodOptional<z.ZodString>;
248
+ location_type: z.ZodOptional<z.ZodEnum<["office", "business_trip", "work_from_home"]>>;
249
+ workplace_id: z.ZodOptional<z.ZodNumber>;
250
+ half_day: z.ZodOptional<z.ZodEnum<["beggining_of_day", "end_of_day"]>>;
251
+ workable: z.ZodOptional<z.ZodBoolean>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ date: string;
254
+ employee_id: number;
255
+ workable?: boolean | undefined;
256
+ half_day?: "beggining_of_day" | "end_of_day" | undefined;
257
+ reference_date?: string | undefined;
258
+ clock_in?: string | undefined;
259
+ clock_out?: string | undefined;
260
+ observations?: string | undefined;
261
+ location_type?: "office" | "business_trip" | "work_from_home" | undefined;
262
+ workplace_id?: number | undefined;
263
+ }, {
264
+ date: string;
265
+ employee_id: number;
266
+ workable?: boolean | undefined;
267
+ half_day?: "beggining_of_day" | "end_of_day" | undefined;
268
+ reference_date?: string | undefined;
269
+ clock_in?: string | undefined;
270
+ clock_out?: string | undefined;
271
+ observations?: string | undefined;
272
+ location_type?: "office" | "business_trip" | "work_from_home" | undefined;
273
+ workplace_id?: number | undefined;
274
+ }>;
275
+ export type CreateShiftInput = z.infer<typeof CreateShiftInputSchema>;
276
+ /** Shift update input: any subset of the create fields except the employee */
277
+ export declare const UpdateShiftInputSchema: z.ZodObject<Omit<{
278
+ employee_id: z.ZodOptional<z.ZodNumber>;
279
+ date: z.ZodOptional<z.ZodString>;
280
+ clock_in: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>>;
281
+ clock_out: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>>;
282
+ reference_date: z.ZodOptional<z.ZodOptional<z.ZodString>>;
283
+ observations: z.ZodOptional<z.ZodOptional<z.ZodString>>;
284
+ location_type: z.ZodOptional<z.ZodOptional<z.ZodEnum<["office", "business_trip", "work_from_home"]>>>;
285
+ workplace_id: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
286
+ half_day: z.ZodOptional<z.ZodOptional<z.ZodEnum<["beggining_of_day", "end_of_day"]>>>;
287
+ workable: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
288
+ }, "employee_id">, "strip", z.ZodTypeAny, {
289
+ date?: string | undefined;
290
+ workable?: boolean | undefined;
291
+ half_day?: "beggining_of_day" | "end_of_day" | undefined;
292
+ reference_date?: string | undefined;
293
+ clock_in?: string | undefined;
294
+ clock_out?: string | undefined;
295
+ observations?: string | undefined;
296
+ location_type?: "office" | "business_trip" | "work_from_home" | undefined;
297
+ workplace_id?: number | undefined;
298
+ }, {
299
+ date?: string | undefined;
300
+ workable?: boolean | undefined;
301
+ half_day?: "beggining_of_day" | "end_of_day" | undefined;
302
+ reference_date?: string | undefined;
303
+ clock_in?: string | undefined;
304
+ clock_out?: string | undefined;
305
+ observations?: string | undefined;
306
+ location_type?: "office" | "business_trip" | "work_from_home" | undefined;
307
+ workplace_id?: number | undefined;
308
+ }>;
309
+ export type UpdateShiftInput = z.infer<typeof UpdateShiftInputSchema>;
310
+ /** Clock in / clock out input; `now` is supplied by the server */
311
+ export declare const ClockInputSchema: z.ZodObject<{
312
+ employee_id: z.ZodNumber;
313
+ location_type: z.ZodOptional<z.ZodEnum<["office", "business_trip", "work_from_home"]>>;
314
+ workplace_id: z.ZodOptional<z.ZodNumber>;
315
+ observations: z.ZodOptional<z.ZodString>;
316
+ }, "strip", z.ZodTypeAny, {
317
+ employee_id: number;
318
+ observations?: string | undefined;
319
+ location_type?: "office" | "business_trip" | "work_from_home" | undefined;
320
+ workplace_id?: number | undefined;
321
+ }, {
322
+ employee_id: number;
323
+ observations?: string | undefined;
324
+ location_type?: "office" | "business_trip" | "work_from_home" | undefined;
325
+ workplace_id?: number | undefined;
326
+ }>;
327
+ export type ClockInput = z.infer<typeof ClockInputSchema>;
328
+ /** One working segment of a day for the bulk actions; HH:MM only */
329
+ export declare const SegmentInputSchema: z.ZodObject<{
330
+ clock_in: z.ZodString;
331
+ clock_out: z.ZodString;
332
+ }, "strip", z.ZodTypeAny, {
333
+ clock_in: string;
334
+ clock_out: string;
335
+ }, {
336
+ clock_in: string;
337
+ clock_out: string;
338
+ }>;
339
+ export type SegmentInput = z.infer<typeof SegmentInputSchema>;
340
+ /** One explicit day for log_days */
341
+ export declare const DayInputSchema: z.ZodObject<{
342
+ date: z.ZodString;
343
+ segments: z.ZodArray<z.ZodObject<{
344
+ clock_in: z.ZodString;
345
+ clock_out: z.ZodString;
346
+ }, "strip", z.ZodTypeAny, {
347
+ clock_in: string;
348
+ clock_out: string;
349
+ }, {
350
+ clock_in: string;
351
+ clock_out: string;
352
+ }>, "many">;
353
+ }, "strip", z.ZodTypeAny, {
354
+ date: string;
355
+ segments: {
356
+ clock_in: string;
357
+ clock_out: string;
358
+ }[];
359
+ }, {
360
+ date: string;
361
+ segments: {
362
+ clock_in: string;
363
+ clock_out: string;
364
+ }[];
365
+ }>;
366
+ export type DayInput = z.infer<typeof DayInputSchema>;
367
+ //# sourceMappingURL=attendance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attendance.d.ts","sourceRoot":"","sources":["../../src/schemas/attendance.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sDAAsD;AACtD,eAAO,MAAM,IAAI,aAEwE,CAAC;AAE1F,iFAAiF;AACjF,eAAO,MAAM,aAAa,aAKvB,CAAC;AAKJ,eAAO,MAAM,cAAc,wDAAyD,CAAC;AAErF,eAAO,MAAM,eAAe,6CAA8C,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA4BR,CAAC;AAEjB,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAeZ,CAAC;AAEjB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgBhB,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAIhE;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAcb,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAS1D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+D,CAAC;AAEnG,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,kEAAkE;AAClE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,oEAAoE;AACpE,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,oCAAoC;AACpC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAGzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}