@t4dhg/mcp-factorial 7.0.1 → 8.2.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 (201) hide show
  1. package/README.md +321 -49
  2. package/dist/api/ats.d.ts +78 -0
  3. package/dist/api/ats.d.ts.map +1 -0
  4. package/dist/api/ats.js +173 -0
  5. package/dist/api/ats.js.map +1 -0
  6. package/dist/api/attendance.d.ts +27 -0
  7. package/dist/api/attendance.d.ts.map +1 -0
  8. package/dist/api/attendance.js +62 -0
  9. package/dist/api/attendance.js.map +1 -0
  10. package/dist/api/contracts.d.ts +40 -0
  11. package/dist/api/contracts.d.ts.map +1 -0
  12. package/dist/api/contracts.js +146 -0
  13. package/dist/api/contracts.js.map +1 -0
  14. package/dist/api/documents.d.ts +95 -0
  15. package/dist/api/documents.d.ts.map +1 -0
  16. package/dist/api/documents.js +265 -0
  17. package/dist/api/documents.js.map +1 -0
  18. package/dist/api/employees.d.ts +35 -0
  19. package/dist/api/employees.d.ts.map +1 -0
  20. package/dist/api/employees.js +116 -0
  21. package/dist/api/employees.js.map +1 -0
  22. package/dist/api/index.d.ts +22 -0
  23. package/dist/api/index.d.ts.map +1 -0
  24. package/dist/api/index.js +36 -0
  25. package/dist/api/index.js.map +1 -0
  26. package/dist/api/job-catalog.d.ts +21 -0
  27. package/dist/api/job-catalog.d.ts.map +1 -0
  28. package/dist/api/job-catalog.js +34 -0
  29. package/dist/api/job-catalog.js.map +1 -0
  30. package/dist/api/locations.d.ts +26 -0
  31. package/dist/api/locations.d.ts.map +1 -0
  32. package/dist/api/locations.js +59 -0
  33. package/dist/api/locations.js.map +1 -0
  34. package/dist/api/payroll.d.ts +30 -0
  35. package/dist/api/payroll.d.ts.map +1 -0
  36. package/dist/api/payroll.js +68 -0
  37. package/dist/api/payroll.js.map +1 -0
  38. package/dist/api/projects.d.ts +82 -0
  39. package/dist/api/projects.d.ts.map +1 -0
  40. package/dist/api/projects.js +193 -0
  41. package/dist/api/projects.js.map +1 -0
  42. package/dist/api/shared.d.ts +12 -0
  43. package/dist/api/shared.d.ts.map +1 -0
  44. package/dist/api/shared.js +17 -0
  45. package/dist/api/shared.js.map +1 -0
  46. package/dist/api/teams.d.ts +26 -0
  47. package/dist/api/teams.d.ts.map +1 -0
  48. package/dist/api/teams.js +59 -0
  49. package/dist/api/teams.js.map +1 -0
  50. package/dist/api/time-off.d.ts +47 -0
  51. package/dist/api/time-off.d.ts.map +1 -0
  52. package/dist/api/time-off.js +112 -0
  53. package/dist/api/time-off.js.map +1 -0
  54. package/dist/api/training.d.ts +62 -0
  55. package/dist/api/training.d.ts.map +1 -0
  56. package/dist/api/training.js +147 -0
  57. package/dist/api/training.js.map +1 -0
  58. package/dist/api/work-areas.d.ts +30 -0
  59. package/dist/api/work-areas.d.ts.map +1 -0
  60. package/dist/api/work-areas.js +71 -0
  61. package/dist/api/work-areas.js.map +1 -0
  62. package/dist/api.d.ts +3 -434
  63. package/dist/api.d.ts.map +1 -1
  64. package/dist/api.js +3 -1154
  65. package/dist/api.js.map +1 -1
  66. package/dist/audit.d.ts +8 -3
  67. package/dist/audit.d.ts.map +1 -1
  68. package/dist/audit.js +8 -3
  69. package/dist/audit.js.map +1 -1
  70. package/dist/index.d.ts +6 -13
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +6 -3701
  73. package/dist/index.js.map +1 -1
  74. package/dist/oauth.d.ts +63 -0
  75. package/dist/oauth.d.ts.map +1 -0
  76. package/dist/oauth.js +143 -0
  77. package/dist/oauth.js.map +1 -0
  78. package/dist/schemas/ats.d.ts +326 -0
  79. package/dist/schemas/ats.d.ts.map +1 -0
  80. package/dist/schemas/ats.js +121 -0
  81. package/dist/schemas/ats.js.map +1 -0
  82. package/dist/schemas/documents.d.ts +78 -0
  83. package/dist/schemas/documents.d.ts.map +1 -0
  84. package/dist/schemas/documents.js +34 -0
  85. package/dist/schemas/documents.js.map +1 -0
  86. package/dist/schemas/employees.d.ts +528 -0
  87. package/dist/schemas/employees.d.ts.map +1 -0
  88. package/dist/schemas/employees.js +206 -0
  89. package/dist/schemas/employees.js.map +1 -0
  90. package/dist/schemas/index.d.ts +18 -0
  91. package/dist/schemas/index.d.ts.map +1 -0
  92. package/dist/schemas/index.js +28 -0
  93. package/dist/schemas/index.js.map +1 -0
  94. package/dist/schemas/job-catalog.d.ts +57 -0
  95. package/dist/schemas/job-catalog.d.ts.map +1 -0
  96. package/dist/schemas/job-catalog.js +27 -0
  97. package/dist/schemas/job-catalog.js.map +1 -0
  98. package/dist/schemas/payroll.d.ts +98 -0
  99. package/dist/schemas/payroll.d.ts.map +1 -0
  100. package/dist/schemas/payroll.js +43 -0
  101. package/dist/schemas/payroll.js.map +1 -0
  102. package/dist/schemas/projects.d.ts +277 -0
  103. package/dist/schemas/projects.d.ts.map +1 -0
  104. package/dist/schemas/projects.js +114 -0
  105. package/dist/schemas/projects.js.map +1 -0
  106. package/dist/schemas/shared.d.ts +42 -0
  107. package/dist/schemas/shared.d.ts.map +1 -0
  108. package/dist/schemas/shared.js +65 -0
  109. package/dist/schemas/shared.js.map +1 -0
  110. package/dist/schemas/time-off.d.ts +286 -0
  111. package/dist/schemas/time-off.d.ts.map +1 -0
  112. package/dist/schemas/time-off.js +111 -0
  113. package/dist/schemas/time-off.js.map +1 -0
  114. package/dist/schemas/training.d.ts +223 -0
  115. package/dist/schemas/training.d.ts.map +1 -0
  116. package/dist/schemas/training.js +88 -0
  117. package/dist/schemas/training.js.map +1 -0
  118. package/dist/schemas/work-areas.d.ts +71 -0
  119. package/dist/schemas/work-areas.d.ts.map +1 -0
  120. package/dist/schemas/work-areas.js +30 -0
  121. package/dist/schemas/work-areas.js.map +1 -0
  122. package/dist/schemas.d.ts +4 -1879
  123. package/dist/schemas.d.ts.map +1 -1
  124. package/dist/schemas.js +4 -755
  125. package/dist/schemas.js.map +1 -1
  126. package/dist/tool-utils.d.ts +0 -14
  127. package/dist/tool-utils.d.ts.map +1 -1
  128. package/dist/tool-utils.js +5 -18
  129. package/dist/tool-utils.js.map +1 -1
  130. package/dist/tools/ats.d.ts +6 -0
  131. package/dist/tools/ats.d.ts.map +1 -0
  132. package/dist/tools/ats.js +206 -0
  133. package/dist/tools/ats.js.map +1 -0
  134. package/dist/tools/attendance.d.ts +6 -0
  135. package/dist/tools/attendance.d.ts.map +1 -0
  136. package/dist/tools/attendance.js +86 -0
  137. package/dist/tools/attendance.js.map +1 -0
  138. package/dist/tools/contracts.d.ts +6 -0
  139. package/dist/tools/contracts.d.ts.map +1 -0
  140. package/dist/tools/contracts.js +63 -0
  141. package/dist/tools/contracts.js.map +1 -0
  142. package/dist/tools/documents.d.ts +6 -0
  143. package/dist/tools/documents.d.ts.map +1 -0
  144. package/dist/tools/documents.js +135 -0
  145. package/dist/tools/documents.js.map +1 -0
  146. package/dist/tools/employees.d.ts +6 -0
  147. package/dist/tools/employees.d.ts.map +1 -0
  148. package/dist/tools/employees.js +125 -0
  149. package/dist/tools/employees.js.map +1 -0
  150. package/dist/tools/index.d.ts +17 -0
  151. package/dist/tools/index.d.ts.map +1 -0
  152. package/dist/tools/index.js +221 -0
  153. package/dist/tools/index.js.map +1 -0
  154. package/dist/tools/job-catalog.d.ts +6 -0
  155. package/dist/tools/job-catalog.d.ts.map +1 -0
  156. package/dist/tools/job-catalog.js +39 -0
  157. package/dist/tools/job-catalog.js.map +1 -0
  158. package/dist/tools/locations.d.ts +6 -0
  159. package/dist/tools/locations.d.ts.map +1 -0
  160. package/dist/tools/locations.js +93 -0
  161. package/dist/tools/locations.js.map +1 -0
  162. package/dist/tools/payroll.d.ts +6 -0
  163. package/dist/tools/payroll.d.ts.map +1 -0
  164. package/dist/tools/payroll.js +76 -0
  165. package/dist/tools/payroll.js.map +1 -0
  166. package/dist/tools/projects.d.ts +6 -0
  167. package/dist/tools/projects.d.ts.map +1 -0
  168. package/dist/tools/projects.js +203 -0
  169. package/dist/tools/projects.js.map +1 -0
  170. package/dist/tools/shared.d.ts +84 -0
  171. package/dist/tools/shared.d.ts.map +1 -0
  172. package/dist/tools/shared.js +164 -0
  173. package/dist/tools/shared.js.map +1 -0
  174. package/dist/tools/teams.d.ts +6 -0
  175. package/dist/tools/teams.d.ts.map +1 -0
  176. package/dist/tools/teams.js +81 -0
  177. package/dist/tools/teams.js.map +1 -0
  178. package/dist/tools/time-off.d.ts +6 -0
  179. package/dist/tools/time-off.d.ts.map +1 -0
  180. package/dist/tools/time-off.js +144 -0
  181. package/dist/tools/time-off.js.map +1 -0
  182. package/dist/tools/training.d.ts +6 -0
  183. package/dist/tools/training.d.ts.map +1 -0
  184. package/dist/tools/training.js +160 -0
  185. package/dist/tools/training.js.map +1 -0
  186. package/dist/tools/work-areas.d.ts +6 -0
  187. package/dist/tools/work-areas.d.ts.map +1 -0
  188. package/dist/tools/work-areas.js +85 -0
  189. package/dist/tools/work-areas.js.map +1 -0
  190. package/dist/types.d.ts +1 -1
  191. package/dist/types.d.ts.map +1 -1
  192. package/dist/utils.d.ts +35 -0
  193. package/dist/utils.d.ts.map +1 -1
  194. package/dist/utils.js +97 -0
  195. package/dist/utils.js.map +1 -1
  196. package/dist/write-safety.d.ts +229 -2
  197. package/dist/write-safety.d.ts.map +1 -1
  198. package/dist/write-safety.js +42 -3
  199. package/dist/write-safety.js.map +1 -1
  200. package/llms.txt +2 -2
  201. package/package.json +2 -2
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Location API endpoints
3
+ */
4
+ import { fetchList, fetchOne, postOne, patchOne, deleteOne } from '../http-client.js';
5
+ import { cache, cached, CACHE_TTL, CacheManager } from '../cache.js';
6
+ import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
7
+ import { AuditAction, auditedOperation } from '../audit.js';
8
+ import { validateId } from '../utils.js';
9
+ import { ENDPOINTS, endpointWithId } from '../endpoints.js';
10
+ /**
11
+ * List all locations
12
+ */
13
+ export async function listLocations(options) {
14
+ const params = buildPaginationParams(options);
15
+ const cacheKey = CacheManager.key('locations', options);
16
+ const locations = await cached(cacheKey, () => fetchList(ENDPOINTS.locations), CACHE_TTL.locations);
17
+ return sliceForPagination(locations, params);
18
+ }
19
+ /**
20
+ * Get a specific location by ID
21
+ */
22
+ export async function getLocation(id) {
23
+ validateId(id, 'location');
24
+ return cached(`location:${id}`, () => fetchOne(endpointWithId(ENDPOINTS.locations, id)), CACHE_TTL.locations);
25
+ }
26
+ /**
27
+ * Create a new location
28
+ */
29
+ export async function createLocation(input) {
30
+ return auditedOperation(AuditAction.CREATE, 'location', undefined, async () => {
31
+ const location = await postOne(ENDPOINTS.locations, input);
32
+ cache.invalidatePrefix('locations');
33
+ return location;
34
+ });
35
+ }
36
+ /**
37
+ * Update an existing location
38
+ */
39
+ export async function updateLocation(id, input) {
40
+ validateId(id, 'location');
41
+ return auditedOperation(AuditAction.UPDATE, 'location', id, async () => {
42
+ const location = await patchOne(endpointWithId(ENDPOINTS.locations, id), input);
43
+ cache.invalidate(`location:${id}`);
44
+ cache.invalidatePrefix('locations');
45
+ return location;
46
+ });
47
+ }
48
+ /**
49
+ * Delete a location
50
+ */
51
+ export async function deleteLocation(id) {
52
+ validateId(id, 'location');
53
+ return auditedOperation(AuditAction.DELETE, 'location', id, async () => {
54
+ await deleteOne(endpointWithId(ENDPOINTS.locations, id));
55
+ cache.invalidate(`location:${id}`);
56
+ cache.invalidatePrefix('locations');
57
+ });
58
+ }
59
+ //# sourceMappingURL=locations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locations.js","sourceRoot":"","sources":["../../src/api/locations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Payroll API endpoints (Read-only)
3
+ */
4
+ import { type PaginatedResponse, type PaginationInput } from '../pagination.js';
5
+ import type { PayrollSupplement, TaxIdentifier, FamilySituation } from '../schemas.js';
6
+ /**
7
+ * List payroll supplements for an employee
8
+ */
9
+ export declare function listPayrollSupplements(employeeId?: number, options?: PaginationInput): Promise<PaginatedResponse<PayrollSupplement>>;
10
+ /**
11
+ * Get a specific payroll supplement by ID
12
+ */
13
+ export declare function getPayrollSupplement(id: number): Promise<PayrollSupplement>;
14
+ /**
15
+ * List tax identifiers
16
+ */
17
+ export declare function listTaxIdentifiers(employeeId?: number, options?: PaginationInput): Promise<PaginatedResponse<TaxIdentifier>>;
18
+ /**
19
+ * Get a specific tax identifier by ID
20
+ */
21
+ export declare function getTaxIdentifier(id: number): Promise<TaxIdentifier>;
22
+ /**
23
+ * List family situations
24
+ */
25
+ export declare function listFamilySituations(employeeId?: number, options?: PaginationInput): Promise<PaginatedResponse<FamilySituation>>;
26
+ /**
27
+ * Get a specific family situation by ID
28
+ */
29
+ export declare function getFamilySituation(id: number): Promise<FamilySituation>;
30
+ //# sourceMappingURL=payroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payroll.d.ts","sourceRoot":"","sources":["../../src/api/payroll.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIvF;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAS/C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAGjF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAS3C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAS7C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAG7E"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Payroll API endpoints (Read-only)
3
+ */
4
+ import { fetchList, fetchOne } from '../http-client.js';
5
+ import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
6
+ import { validateId } from '../utils.js';
7
+ import { ENDPOINTS, endpointWithId } from '../endpoints.js';
8
+ /**
9
+ * List payroll supplements for an employee
10
+ */
11
+ export async function listPayrollSupplements(employeeId, options) {
12
+ const params = buildPaginationParams(options);
13
+ const queryParams = {};
14
+ if (employeeId)
15
+ queryParams.employee_id = employeeId;
16
+ const supplements = await fetchList(ENDPOINTS.payrollSupplements, {
17
+ params: queryParams,
18
+ });
19
+ return sliceForPagination(supplements, params);
20
+ }
21
+ /**
22
+ * Get a specific payroll supplement by ID
23
+ */
24
+ export async function getPayrollSupplement(id) {
25
+ validateId(id, 'supplement');
26
+ return fetchOne(endpointWithId(ENDPOINTS.payrollSupplements, id));
27
+ }
28
+ /**
29
+ * List tax identifiers
30
+ */
31
+ export async function listTaxIdentifiers(employeeId, options) {
32
+ const params = buildPaginationParams(options);
33
+ const queryParams = {};
34
+ if (employeeId)
35
+ queryParams.employee_id = employeeId;
36
+ const identifiers = await fetchList(ENDPOINTS.taxIdentifiers, {
37
+ params: queryParams,
38
+ });
39
+ return sliceForPagination(identifiers, params);
40
+ }
41
+ /**
42
+ * Get a specific tax identifier by ID
43
+ */
44
+ export async function getTaxIdentifier(id) {
45
+ validateId(id, 'tax identifier');
46
+ return fetchOne(endpointWithId(ENDPOINTS.taxIdentifiers, id));
47
+ }
48
+ /**
49
+ * List family situations
50
+ */
51
+ export async function listFamilySituations(employeeId, options) {
52
+ const params = buildPaginationParams(options);
53
+ const queryParams = {};
54
+ if (employeeId)
55
+ queryParams.employee_id = employeeId;
56
+ const situations = await fetchList(ENDPOINTS.familySituations, {
57
+ params: queryParams,
58
+ });
59
+ return sliceForPagination(situations, params);
60
+ }
61
+ /**
62
+ * Get a specific family situation by ID
63
+ */
64
+ export async function getFamilySituation(id) {
65
+ validateId(id, 'family situation');
66
+ return fetchOne(endpointWithId(ENDPOINTS.familySituations, id));
67
+ }
68
+ //# sourceMappingURL=payroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payroll.js","sourceRoot":"","sources":["../../src/api/payroll.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAmB,EACnB,OAAyB;IAEzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,IAAI,UAAU;QAAE,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAErD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAoB,SAAS,CAAC,kBAAkB,EAAE;QACnF,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAU;IACnD,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAoB,cAAc,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAmB,EACnB,OAAyB;IAEzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,IAAI,UAAU;QAAE,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAErD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAgB,SAAS,CAAC,cAAc,EAAE;QAC3E,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC/C,UAAU,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAgB,cAAc,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAmB,EACnB,OAAyB;IAEzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,IAAI,UAAU;QAAE,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAErD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAkB,SAAS,CAAC,gBAAgB,EAAE;QAC9E,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU;IACjD,UAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAkB,cAAc,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Project Management API endpoints: Projects, Tasks, Workers, Time Records
3
+ */
4
+ import { type PaginatedResponse, type PaginationInput } from '../pagination.js';
5
+ import type { Project, ProjectTask, ProjectWorker, TimeRecord, CreateProjectInput, UpdateProjectInput, CreateProjectTaskInput, UpdateProjectTaskInput, AssignProjectWorkerInput, CreateTimeRecordInput, UpdateTimeRecordInput } from '../schemas.js';
6
+ /**
7
+ * List all projects
8
+ */
9
+ export declare function listProjects(options?: PaginationInput): Promise<PaginatedResponse<Project>>;
10
+ /**
11
+ * Get a specific project by ID
12
+ */
13
+ export declare function getProject(id: number): Promise<Project>;
14
+ /**
15
+ * List project tasks
16
+ */
17
+ export declare function listProjectTasks(projectId?: number, options?: PaginationInput): Promise<PaginatedResponse<ProjectTask>>;
18
+ /**
19
+ * Get a specific project task by ID
20
+ */
21
+ export declare function getProjectTask(id: number): Promise<ProjectTask>;
22
+ /**
23
+ * List project workers
24
+ */
25
+ export declare function listProjectWorkers(projectId?: number, options?: PaginationInput): Promise<PaginatedResponse<ProjectWorker>>;
26
+ /**
27
+ * Get a specific project worker by ID
28
+ */
29
+ export declare function getProjectWorker(id: number): Promise<ProjectWorker>;
30
+ /**
31
+ * List time records
32
+ */
33
+ export declare function listTimeRecords(projectWorkerId?: number, options?: PaginationInput): Promise<PaginatedResponse<TimeRecord>>;
34
+ /**
35
+ * Get a specific time record by ID
36
+ */
37
+ export declare function getTimeRecord(id: number): Promise<TimeRecord>;
38
+ /**
39
+ * Create a new project
40
+ */
41
+ export declare function createProject(input: CreateProjectInput): Promise<Project>;
42
+ /**
43
+ * Update a project
44
+ */
45
+ export declare function updateProject(id: number, input: UpdateProjectInput): Promise<Project>;
46
+ /**
47
+ * Delete a project
48
+ */
49
+ export declare function deleteProject(id: number): Promise<void>;
50
+ /**
51
+ * Create a project task
52
+ */
53
+ export declare function createProjectTask(input: CreateProjectTaskInput): Promise<ProjectTask>;
54
+ /**
55
+ * Update a project task
56
+ */
57
+ export declare function updateProjectTask(id: number, input: UpdateProjectTaskInput): Promise<ProjectTask>;
58
+ /**
59
+ * Delete a project task
60
+ */
61
+ export declare function deleteProjectTask(id: number): Promise<void>;
62
+ /**
63
+ * Assign a worker to a project
64
+ */
65
+ export declare function assignProjectWorker(input: AssignProjectWorkerInput): Promise<ProjectWorker>;
66
+ /**
67
+ * Remove a worker from a project
68
+ */
69
+ export declare function removeProjectWorker(id: number): Promise<void>;
70
+ /**
71
+ * Create a time record
72
+ */
73
+ export declare function createTimeRecord(input: CreateTimeRecordInput): Promise<TimeRecord>;
74
+ /**
75
+ * Update a time record
76
+ */
77
+ export declare function updateTimeRecord(id: number, input: UpdateTimeRecordInput): Promise<TimeRecord>;
78
+ /**
79
+ * Delete a time record
80
+ */
81
+ export declare function deleteTimeRecord(id: number): Promise<void>;
82
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Project Management API endpoints: Projects, Tasks, Workers, Time Records
3
+ */
4
+ import { fetchList, fetchOne, postOne, patchOne, deleteOne } from '../http-client.js';
5
+ import { cache, cached, CACHE_TTL, CacheManager } from '../cache.js';
6
+ import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
7
+ import { AuditAction, auditedOperation } from '../audit.js';
8
+ import { validateId } from '../utils.js';
9
+ import { ENDPOINTS, endpointWithId } from '../endpoints.js';
10
+ // ============================================================================
11
+ // Projects - READ endpoints
12
+ // ============================================================================
13
+ /**
14
+ * List all projects
15
+ */
16
+ export async function listProjects(options) {
17
+ const params = buildPaginationParams(options);
18
+ const projects = await cached(CacheManager.key('projects', options), () => fetchList(ENDPOINTS.projects), CACHE_TTL.default);
19
+ return sliceForPagination(projects, params);
20
+ }
21
+ /**
22
+ * Get a specific project by ID
23
+ */
24
+ export async function getProject(id) {
25
+ validateId(id, 'project');
26
+ return cached(`project:${id}`, () => fetchOne(endpointWithId(ENDPOINTS.projects, id)), CACHE_TTL.default);
27
+ }
28
+ /**
29
+ * List project tasks
30
+ */
31
+ export async function listProjectTasks(projectId, options) {
32
+ const params = buildPaginationParams(options);
33
+ const queryParams = {};
34
+ if (projectId)
35
+ queryParams.project_ids = projectId;
36
+ const tasks = await fetchList(ENDPOINTS.projectTasks, {
37
+ params: queryParams,
38
+ });
39
+ return sliceForPagination(tasks, params);
40
+ }
41
+ /**
42
+ * Get a specific project task by ID
43
+ */
44
+ export async function getProjectTask(id) {
45
+ validateId(id, 'task');
46
+ return fetchOne(endpointWithId(ENDPOINTS.projectTasks, id));
47
+ }
48
+ /**
49
+ * List project workers
50
+ */
51
+ export async function listProjectWorkers(projectId, options) {
52
+ const params = buildPaginationParams(options);
53
+ const queryParams = {};
54
+ if (projectId)
55
+ queryParams.project_ids = projectId;
56
+ const workers = await fetchList(ENDPOINTS.projectWorkers, {
57
+ params: queryParams,
58
+ });
59
+ return sliceForPagination(workers, params);
60
+ }
61
+ /**
62
+ * Get a specific project worker by ID
63
+ */
64
+ export async function getProjectWorker(id) {
65
+ validateId(id, 'project worker');
66
+ return fetchOne(endpointWithId(ENDPOINTS.projectWorkers, id));
67
+ }
68
+ /**
69
+ * List time records
70
+ */
71
+ export async function listTimeRecords(projectWorkerId, options) {
72
+ const params = buildPaginationParams(options);
73
+ const queryParams = {};
74
+ if (projectWorkerId)
75
+ queryParams.project_workers_ids = projectWorkerId;
76
+ const records = await fetchList(ENDPOINTS.timeRecords, {
77
+ params: queryParams,
78
+ });
79
+ return sliceForPagination(records, params);
80
+ }
81
+ /**
82
+ * Get a specific time record by ID
83
+ */
84
+ export async function getTimeRecord(id) {
85
+ validateId(id, 'time record');
86
+ return fetchOne(endpointWithId(ENDPOINTS.timeRecords, id));
87
+ }
88
+ // ============================================================================
89
+ // Projects - WRITE endpoints
90
+ // ============================================================================
91
+ /**
92
+ * Create a new project
93
+ */
94
+ export async function createProject(input) {
95
+ return auditedOperation(AuditAction.CREATE, 'project', undefined, async () => {
96
+ const project = await postOne(ENDPOINTS.projects, input);
97
+ cache.invalidatePrefix('projects');
98
+ return project;
99
+ });
100
+ }
101
+ /**
102
+ * Update a project
103
+ */
104
+ export async function updateProject(id, input) {
105
+ validateId(id, 'project');
106
+ return auditedOperation(AuditAction.UPDATE, 'project', id, async () => {
107
+ const project = await patchOne(endpointWithId(ENDPOINTS.projects, id), input);
108
+ cache.invalidate(`project:${id}`);
109
+ cache.invalidatePrefix('projects');
110
+ return project;
111
+ });
112
+ }
113
+ /**
114
+ * Delete a project
115
+ */
116
+ export async function deleteProject(id) {
117
+ validateId(id, 'project');
118
+ return auditedOperation(AuditAction.DELETE, 'project', id, async () => {
119
+ await deleteOne(endpointWithId(ENDPOINTS.projects, id));
120
+ cache.invalidate(`project:${id}`);
121
+ cache.invalidatePrefix('projects');
122
+ });
123
+ }
124
+ /**
125
+ * Create a project task
126
+ */
127
+ export async function createProjectTask(input) {
128
+ return auditedOperation(AuditAction.CREATE, 'project_task', undefined, async () => {
129
+ return postOne(ENDPOINTS.projectTasks, input);
130
+ });
131
+ }
132
+ /**
133
+ * Update a project task
134
+ */
135
+ export async function updateProjectTask(id, input) {
136
+ validateId(id, 'task');
137
+ return auditedOperation(AuditAction.UPDATE, 'project_task', id, async () => {
138
+ return patchOne(endpointWithId(ENDPOINTS.projectTasks, id), input);
139
+ });
140
+ }
141
+ /**
142
+ * Delete a project task
143
+ */
144
+ export async function deleteProjectTask(id) {
145
+ validateId(id, 'task');
146
+ return auditedOperation(AuditAction.DELETE, 'project_task', id, async () => {
147
+ await deleteOne(endpointWithId(ENDPOINTS.projectTasks, id));
148
+ });
149
+ }
150
+ /**
151
+ * Assign a worker to a project
152
+ */
153
+ export async function assignProjectWorker(input) {
154
+ return auditedOperation(AuditAction.ASSIGN, 'project_worker', undefined, async () => {
155
+ return postOne(ENDPOINTS.projectWorkers, input);
156
+ });
157
+ }
158
+ /**
159
+ * Remove a worker from a project
160
+ */
161
+ export async function removeProjectWorker(id) {
162
+ validateId(id, 'project worker');
163
+ return auditedOperation(AuditAction.UNASSIGN, 'project_worker', id, async () => {
164
+ await deleteOne(endpointWithId(ENDPOINTS.projectWorkers, id));
165
+ });
166
+ }
167
+ /**
168
+ * Create a time record
169
+ */
170
+ export async function createTimeRecord(input) {
171
+ return auditedOperation(AuditAction.CREATE, 'time_record', undefined, async () => {
172
+ return postOne(ENDPOINTS.timeRecords, input);
173
+ });
174
+ }
175
+ /**
176
+ * Update a time record
177
+ */
178
+ export async function updateTimeRecord(id, input) {
179
+ validateId(id, 'time record');
180
+ return auditedOperation(AuditAction.UPDATE, 'time_record', id, async () => {
181
+ return patchOne(endpointWithId(ENDPOINTS.timeRecords, id), input);
182
+ });
183
+ }
184
+ /**
185
+ * Delete a time record
186
+ */
187
+ export async function deleteTimeRecord(id) {
188
+ validateId(id, 'time record');
189
+ return auditedOperation(AuditAction.DELETE, 'time_record', id, async () => {
190
+ await deleteOne(endpointWithId(ENDPOINTS.timeRecords, id));
191
+ });
192
+ }
193
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared API utilities
3
+ */
4
+ /**
5
+ * Invalidate all cached data
6
+ */
7
+ export declare function clearCache(): void;
8
+ /**
9
+ * Invalidate cached data for a specific resource type
10
+ */
11
+ export declare function invalidateCache(resourceType: string): void;
12
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/api/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAE1D"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shared API utilities
3
+ */
4
+ import { cache } from '../cache.js';
5
+ /**
6
+ * Invalidate all cached data
7
+ */
8
+ export function clearCache() {
9
+ cache.clear();
10
+ }
11
+ /**
12
+ * Invalidate cached data for a specific resource type
13
+ */
14
+ export function invalidateCache(resourceType) {
15
+ cache.invalidatePrefix(resourceType);
16
+ }
17
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/api/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Team API endpoints
3
+ */
4
+ import { type PaginatedResponse, type PaginationInput } from '../pagination.js';
5
+ import type { Team, CreateTeamInput, UpdateTeamInput } from '../schemas.js';
6
+ /**
7
+ * List all teams
8
+ */
9
+ export declare function listTeams(options?: PaginationInput): Promise<PaginatedResponse<Team>>;
10
+ /**
11
+ * Get a specific team by ID
12
+ */
13
+ export declare function getTeam(id: number): Promise<Team>;
14
+ /**
15
+ * Create a new team
16
+ */
17
+ export declare function createTeam(input: CreateTeamInput): Promise<Team>;
18
+ /**
19
+ * Update an existing team
20
+ */
21
+ export declare function updateTeam(id: number, input: UpdateTeamInput): Promise<Team>;
22
+ /**
23
+ * Delete a team
24
+ */
25
+ export declare function deleteTeam(id: number): Promise<void>;
26
+ //# sourceMappingURL=teams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/api/teams.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK5E;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAO3F;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CASlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1D"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Team API endpoints
3
+ */
4
+ import { fetchList, fetchOne, postOne, patchOne, deleteOne } from '../http-client.js';
5
+ import { cache, cached, CACHE_TTL, CacheManager } from '../cache.js';
6
+ import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
7
+ import { AuditAction, auditedOperation } from '../audit.js';
8
+ import { validateId } from '../utils.js';
9
+ import { ENDPOINTS, endpointWithId } from '../endpoints.js';
10
+ /**
11
+ * List all teams
12
+ */
13
+ export async function listTeams(options) {
14
+ const params = buildPaginationParams(options);
15
+ const cacheKey = CacheManager.key('teams', options);
16
+ const teams = await cached(cacheKey, () => fetchList(ENDPOINTS.teams), CACHE_TTL.teams);
17
+ return sliceForPagination(teams, params);
18
+ }
19
+ /**
20
+ * Get a specific team by ID
21
+ */
22
+ export async function getTeam(id) {
23
+ validateId(id, 'team');
24
+ return cached(`team:${id}`, () => fetchOne(endpointWithId(ENDPOINTS.teams, id)), CACHE_TTL.teams);
25
+ }
26
+ /**
27
+ * Create a new team
28
+ */
29
+ export async function createTeam(input) {
30
+ return auditedOperation(AuditAction.CREATE, 'team', undefined, async () => {
31
+ const team = await postOne(ENDPOINTS.teams, input);
32
+ cache.invalidatePrefix('teams');
33
+ return team;
34
+ });
35
+ }
36
+ /**
37
+ * Update an existing team
38
+ */
39
+ export async function updateTeam(id, input) {
40
+ validateId(id, 'team');
41
+ return auditedOperation(AuditAction.UPDATE, 'team', id, async () => {
42
+ const team = await patchOne(endpointWithId(ENDPOINTS.teams, id), input);
43
+ cache.invalidate(`team:${id}`);
44
+ cache.invalidatePrefix('teams');
45
+ return team;
46
+ });
47
+ }
48
+ /**
49
+ * Delete a team
50
+ */
51
+ export async function deleteTeam(id) {
52
+ validateId(id, 'team');
53
+ return auditedOperation(AuditAction.DELETE, 'team', id, async () => {
54
+ await deleteOne(endpointWithId(ENDPOINTS.teams, id));
55
+ cache.invalidate(`team:${id}`);
56
+ cache.invalidatePrefix('teams');
57
+ });
58
+ }
59
+ //# sourceMappingURL=teams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/api/teams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Time Off API endpoints: Leaves, Leave Types, Allowances
3
+ */
4
+ import { type PaginatedResponse } from '../pagination.js';
5
+ import type { Leave, LeaveType, Allowance, CreateLeaveInput, UpdateLeaveInput, LeaveDecisionInput } from '../schemas.js';
6
+ import type { ListLeavesOptions, ListAllowancesOptions } from '../types.js';
7
+ /**
8
+ * List leaves with optional filtering
9
+ */
10
+ export declare function listLeaves(options?: ListLeavesOptions): Promise<PaginatedResponse<Leave>>;
11
+ /**
12
+ * Get a specific leave by ID
13
+ */
14
+ export declare function getLeave(id: number): Promise<Leave>;
15
+ /**
16
+ * List all leave types
17
+ */
18
+ export declare function listLeaveTypes(): Promise<LeaveType[]>;
19
+ /**
20
+ * Get a specific leave type by ID
21
+ */
22
+ export declare function getLeaveType(id: number): Promise<LeaveType>;
23
+ /**
24
+ * List allowances with optional filtering by employee
25
+ */
26
+ export declare function listAllowances(options?: ListAllowancesOptions): Promise<PaginatedResponse<Allowance>>;
27
+ /**
28
+ * Create a new leave request
29
+ */
30
+ export declare function createLeave(input: CreateLeaveInput): Promise<Leave>;
31
+ /**
32
+ * Update a leave request
33
+ */
34
+ export declare function updateLeave(id: number, input: UpdateLeaveInput): Promise<Leave>;
35
+ /**
36
+ * Cancel a leave request
37
+ */
38
+ export declare function cancelLeave(id: number): Promise<void>;
39
+ /**
40
+ * Approve a leave request
41
+ */
42
+ export declare function approveLeave(id: number, input?: LeaveDecisionInput): Promise<Leave>;
43
+ /**
44
+ * Reject a leave request
45
+ */
46
+ export declare function rejectLeave(id: number, input?: LeaveDecisionInput): Promise<Leave>;
47
+ //# sourceMappingURL=time-off.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-off.d.ts","sourceRoot":"","sources":["../../src/api/time-off.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAA2C,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAgB/F;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAIzD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAM3D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAIjE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAavC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,CAOrF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAUzF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAUxF"}