@energio/holded-mcp 1.0.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.
- package/LICENSE +21 -0
- package/README.md +1040 -0
- package/dist/constants.d.ts +60 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +72 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/accounting/account-balances.d.ts +19 -0
- package/dist/schemas/accounting/account-balances.d.ts.map +1 -0
- package/dist/schemas/accounting/account-balances.js +28 -0
- package/dist/schemas/accounting/account-balances.js.map +1 -0
- package/dist/schemas/accounting/accounts.d.ts +49 -0
- package/dist/schemas/accounting/accounts.d.ts.map +1 -0
- package/dist/schemas/accounting/accounts.js +50 -0
- package/dist/schemas/accounting/accounts.js.map +1 -0
- package/dist/schemas/accounting/daily-ledger.d.ts +45 -0
- package/dist/schemas/accounting/daily-ledger.d.ts.map +1 -0
- package/dist/schemas/accounting/daily-ledger.js +57 -0
- package/dist/schemas/accounting/daily-ledger.js.map +1 -0
- package/dist/schemas/common.d.ts +118 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +126 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/crm/bookings.d.ts +108 -0
- package/dist/schemas/crm/bookings.d.ts.map +1 -0
- package/dist/schemas/crm/bookings.js +96 -0
- package/dist/schemas/crm/bookings.js.map +1 -0
- package/dist/schemas/crm/events.d.ts +57 -0
- package/dist/schemas/crm/events.d.ts.map +1 -0
- package/dist/schemas/crm/events.js +53 -0
- package/dist/schemas/crm/events.js.map +1 -0
- package/dist/schemas/crm/funnels.d.ts +60 -0
- package/dist/schemas/crm/funnels.d.ts.map +1 -0
- package/dist/schemas/crm/funnels.js +48 -0
- package/dist/schemas/crm/funnels.js.map +1 -0
- package/dist/schemas/crm/leads.d.ts +146 -0
- package/dist/schemas/crm/leads.d.ts.map +1 -0
- package/dist/schemas/crm/leads.js +129 -0
- package/dist/schemas/crm/leads.js.map +1 -0
- package/dist/schemas/invoicing/contacts.d.ts +352 -0
- package/dist/schemas/invoicing/contacts.d.ts.map +1 -0
- package/dist/schemas/invoicing/contacts.js +187 -0
- package/dist/schemas/invoicing/contacts.js.map +1 -0
- package/dist/schemas/invoicing/documents.d.ts +424 -0
- package/dist/schemas/invoicing/documents.d.ts.map +1 -0
- package/dist/schemas/invoicing/documents.js +217 -0
- package/dist/schemas/invoicing/documents.js.map +1 -0
- package/dist/schemas/invoicing/expenses-accounts.d.ts +47 -0
- package/dist/schemas/invoicing/expenses-accounts.d.ts.map +1 -0
- package/dist/schemas/invoicing/expenses-accounts.js +43 -0
- package/dist/schemas/invoicing/expenses-accounts.js.map +1 -0
- package/dist/schemas/invoicing/numbering-series.d.ts +94 -0
- package/dist/schemas/invoicing/numbering-series.d.ts.map +1 -0
- package/dist/schemas/invoicing/numbering-series.js +43 -0
- package/dist/schemas/invoicing/numbering-series.js.map +1 -0
- package/dist/schemas/invoicing/payments.d.ts +50 -0
- package/dist/schemas/invoicing/payments.d.ts.map +1 -0
- package/dist/schemas/invoicing/payments.js +46 -0
- package/dist/schemas/invoicing/payments.js.map +1 -0
- package/dist/schemas/invoicing/products.d.ts +176 -0
- package/dist/schemas/invoicing/products.d.ts.map +1 -0
- package/dist/schemas/invoicing/products.js +149 -0
- package/dist/schemas/invoicing/products.js.map +1 -0
- package/dist/schemas/invoicing/remittances.d.ts +21 -0
- package/dist/schemas/invoicing/remittances.d.ts.map +1 -0
- package/dist/schemas/invoicing/remittances.js +20 -0
- package/dist/schemas/invoicing/remittances.js.map +1 -0
- package/dist/schemas/invoicing/sales-channels.d.ts +45 -0
- package/dist/schemas/invoicing/sales-channels.d.ts.map +1 -0
- package/dist/schemas/invoicing/sales-channels.js +41 -0
- package/dist/schemas/invoicing/sales-channels.js.map +1 -0
- package/dist/schemas/invoicing/services.d.ts +55 -0
- package/dist/schemas/invoicing/services.d.ts.map +1 -0
- package/dist/schemas/invoicing/services.js +51 -0
- package/dist/schemas/invoicing/services.js.map +1 -0
- package/dist/schemas/invoicing/taxes.d.ts +12 -0
- package/dist/schemas/invoicing/taxes.d.ts.map +1 -0
- package/dist/schemas/invoicing/taxes.js +12 -0
- package/dist/schemas/invoicing/taxes.js.map +1 -0
- package/dist/schemas/invoicing/treasury.d.ts +42 -0
- package/dist/schemas/invoicing/treasury.d.ts.map +1 -0
- package/dist/schemas/invoicing/treasury.js +39 -0
- package/dist/schemas/invoicing/treasury.js.map +1 -0
- package/dist/schemas/invoicing/warehouses.d.ts +61 -0
- package/dist/schemas/invoicing/warehouses.d.ts.map +1 -0
- package/dist/schemas/invoicing/warehouses.js +43 -0
- package/dist/schemas/invoicing/warehouses.js.map +1 -0
- package/dist/schemas/projects/projects.d.ts +60 -0
- package/dist/schemas/projects/projects.d.ts.map +1 -0
- package/dist/schemas/projects/projects.js +55 -0
- package/dist/schemas/projects/projects.js.map +1 -0
- package/dist/schemas/projects/tasks.d.ts +68 -0
- package/dist/schemas/projects/tasks.d.ts.map +1 -0
- package/dist/schemas/projects/tasks.js +64 -0
- package/dist/schemas/projects/tasks.js.map +1 -0
- package/dist/schemas/projects/time-tracking.d.ts +80 -0
- package/dist/schemas/projects/time-tracking.d.ts.map +1 -0
- package/dist/schemas/projects/time-tracking.js +75 -0
- package/dist/schemas/projects/time-tracking.js.map +1 -0
- package/dist/schemas/team/employees.d.ts +135 -0
- package/dist/schemas/team/employees.d.ts.map +1 -0
- package/dist/schemas/team/employees.js +144 -0
- package/dist/schemas/team/employees.js.map +1 -0
- package/dist/schemas/team/time-tracking.d.ts +98 -0
- package/dist/schemas/team/time-tracking.d.ts.map +1 -0
- package/dist/schemas/team/time-tracking.js +89 -0
- package/dist/schemas/team/time-tracking.js.map +1 -0
- package/dist/services/api.d.ts +118 -0
- package/dist/services/api.d.ts.map +1 -0
- package/dist/services/api.js +441 -0
- package/dist/services/api.js.map +1 -0
- package/dist/tools/accounting/account-balances.d.ts +44 -0
- package/dist/tools/accounting/account-balances.d.ts.map +1 -0
- package/dist/tools/accounting/account-balances.js +240 -0
- package/dist/tools/accounting/account-balances.js.map +1 -0
- package/dist/tools/accounting/accounts.d.ts +18 -0
- package/dist/tools/accounting/accounts.d.ts.map +1 -0
- package/dist/tools/accounting/accounts.js +131 -0
- package/dist/tools/accounting/accounts.js.map +1 -0
- package/dist/tools/accounting/daily-ledger.d.ts +9 -0
- package/dist/tools/accounting/daily-ledger.d.ts.map +1 -0
- package/dist/tools/accounting/daily-ledger.js +117 -0
- package/dist/tools/accounting/daily-ledger.js.map +1 -0
- package/dist/tools/accounting/index.d.ts +9 -0
- package/dist/tools/accounting/index.d.ts.map +1 -0
- package/dist/tools/accounting/index.js +15 -0
- package/dist/tools/accounting/index.js.map +1 -0
- package/dist/tools/crm/bookings.d.ts +18 -0
- package/dist/tools/crm/bookings.d.ts.map +1 -0
- package/dist/tools/crm/bookings.js +272 -0
- package/dist/tools/crm/bookings.js.map +1 -0
- package/dist/tools/crm/events.d.ts +18 -0
- package/dist/tools/crm/events.d.ts.map +1 -0
- package/dist/tools/crm/events.js +134 -0
- package/dist/tools/crm/events.js.map +1 -0
- package/dist/tools/crm/funnels.d.ts +18 -0
- package/dist/tools/crm/funnels.d.ts.map +1 -0
- package/dist/tools/crm/funnels.js +113 -0
- package/dist/tools/crm/funnels.js.map +1 -0
- package/dist/tools/crm/index.d.ts +9 -0
- package/dist/tools/crm/index.d.ts.map +1 -0
- package/dist/tools/crm/index.js +17 -0
- package/dist/tools/crm/index.js.map +1 -0
- package/dist/tools/crm/leads.d.ts +18 -0
- package/dist/tools/crm/leads.d.ts.map +1 -0
- package/dist/tools/crm/leads.js +519 -0
- package/dist/tools/crm/leads.js.map +1 -0
- package/dist/tools/factory.d.ts +55 -0
- package/dist/tools/factory.d.ts.map +1 -0
- package/dist/tools/factory.js +145 -0
- package/dist/tools/factory.js.map +1 -0
- package/dist/tools/invoicing/contacts.d.ts +26 -0
- package/dist/tools/invoicing/contacts.d.ts.map +1 -0
- package/dist/tools/invoicing/contacts.js +358 -0
- package/dist/tools/invoicing/contacts.js.map +1 -0
- package/dist/tools/invoicing/documents.d.ts +18 -0
- package/dist/tools/invoicing/documents.d.ts.map +1 -0
- package/dist/tools/invoicing/documents.js +578 -0
- package/dist/tools/invoicing/documents.js.map +1 -0
- package/dist/tools/invoicing/expenses-accounts.d.ts +25 -0
- package/dist/tools/invoicing/expenses-accounts.d.ts.map +1 -0
- package/dist/tools/invoicing/expenses-accounts.js +111 -0
- package/dist/tools/invoicing/expenses-accounts.js.map +1 -0
- package/dist/tools/invoicing/index.d.ts +9 -0
- package/dist/tools/invoicing/index.d.ts.map +1 -0
- package/dist/tools/invoicing/index.js +33 -0
- package/dist/tools/invoicing/index.js.map +1 -0
- package/dist/tools/invoicing/numbering-series.d.ts +9 -0
- package/dist/tools/invoicing/numbering-series.d.ts.map +1 -0
- package/dist/tools/invoicing/numbering-series.js +161 -0
- package/dist/tools/invoicing/numbering-series.js.map +1 -0
- package/dist/tools/invoicing/payments.d.ts +18 -0
- package/dist/tools/invoicing/payments.d.ts.map +1 -0
- package/dist/tools/invoicing/payments.js +175 -0
- package/dist/tools/invoicing/payments.js.map +1 -0
- package/dist/tools/invoicing/products.d.ts +18 -0
- package/dist/tools/invoicing/products.d.ts.map +1 -0
- package/dist/tools/invoicing/products.js +389 -0
- package/dist/tools/invoicing/products.js.map +1 -0
- package/dist/tools/invoicing/remittances.d.ts +17 -0
- package/dist/tools/invoicing/remittances.d.ts.map +1 -0
- package/dist/tools/invoicing/remittances.js +76 -0
- package/dist/tools/invoicing/remittances.js.map +1 -0
- package/dist/tools/invoicing/sales-channels.d.ts +24 -0
- package/dist/tools/invoicing/sales-channels.d.ts.map +1 -0
- package/dist/tools/invoicing/sales-channels.js +105 -0
- package/dist/tools/invoicing/sales-channels.js.map +1 -0
- package/dist/tools/invoicing/services.d.ts +29 -0
- package/dist/tools/invoicing/services.d.ts.map +1 -0
- package/dist/tools/invoicing/services.js +124 -0
- package/dist/tools/invoicing/services.js.map +1 -0
- package/dist/tools/invoicing/taxes.d.ts +18 -0
- package/dist/tools/invoicing/taxes.d.ts.map +1 -0
- package/dist/tools/invoicing/taxes.js +58 -0
- package/dist/tools/invoicing/taxes.js.map +1 -0
- package/dist/tools/invoicing/treasury.d.ts +9 -0
- package/dist/tools/invoicing/treasury.d.ts.map +1 -0
- package/dist/tools/invoicing/treasury.js +196 -0
- package/dist/tools/invoicing/treasury.js.map +1 -0
- package/dist/tools/invoicing/warehouses.d.ts +18 -0
- package/dist/tools/invoicing/warehouses.d.ts.map +1 -0
- package/dist/tools/invoicing/warehouses.js +133 -0
- package/dist/tools/invoicing/warehouses.js.map +1 -0
- package/dist/tools/projects/index.d.ts +9 -0
- package/dist/tools/projects/index.d.ts.map +1 -0
- package/dist/tools/projects/index.js +15 -0
- package/dist/tools/projects/index.js.map +1 -0
- package/dist/tools/projects/projects.d.ts +18 -0
- package/dist/tools/projects/projects.d.ts.map +1 -0
- package/dist/tools/projects/projects.js +203 -0
- package/dist/tools/projects/projects.js.map +1 -0
- package/dist/tools/projects/tasks.d.ts +18 -0
- package/dist/tools/projects/tasks.d.ts.map +1 -0
- package/dist/tools/projects/tasks.js +154 -0
- package/dist/tools/projects/tasks.js.map +1 -0
- package/dist/tools/projects/time-tracking.d.ts +14 -0
- package/dist/tools/projects/time-tracking.d.ts.map +1 -0
- package/dist/tools/projects/time-tracking.js +291 -0
- package/dist/tools/projects/time-tracking.js.map +1 -0
- package/dist/tools/team/employees.d.ts +18 -0
- package/dist/tools/team/employees.d.ts.map +1 -0
- package/dist/tools/team/employees.js +149 -0
- package/dist/tools/team/employees.js.map +1 -0
- package/dist/tools/team/index.d.ts +9 -0
- package/dist/tools/team/index.d.ts.map +1 -0
- package/dist/tools/team/index.js +13 -0
- package/dist/tools/team/index.js.map +1 -0
- package/dist/tools/team/time-tracking.d.ts +18 -0
- package/dist/tools/team/time-tracking.d.ts.map +1 -0
- package/dist/tools/team/time-tracking.js +398 -0
- package/dist/tools/team/time-tracking.js.map +1 -0
- package/dist/tools/utilities.d.ts +45 -0
- package/dist/tools/utilities.d.ts.map +1 -0
- package/dist/tools/utilities.js +55 -0
- package/dist/tools/utilities.js.map +1 -0
- package/dist/types.d.ts +640 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +29 -0
- package/dist/types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for Employee-related operations
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
/**
|
|
6
|
+
* List employees input schema
|
|
7
|
+
*/
|
|
8
|
+
export declare const ListEmployeesInputSchema: z.ZodObject<{
|
|
9
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
10
|
+
response_format: z.ZodDefault<z.ZodEnum<typeof import("../../constants.js").ResponseFormat>>;
|
|
11
|
+
}, z.core.$strict>;
|
|
12
|
+
export type ListEmployeesInput = z.infer<typeof ListEmployeesInputSchema>;
|
|
13
|
+
/**
|
|
14
|
+
* Get employee input schema
|
|
15
|
+
*/
|
|
16
|
+
export declare const GetEmployeeInputSchema: z.ZodObject<{
|
|
17
|
+
employee_id: z.ZodString;
|
|
18
|
+
response_format: z.ZodDefault<z.ZodEnum<typeof import("../../constants.js").ResponseFormat>>;
|
|
19
|
+
}, z.core.$strict>;
|
|
20
|
+
export type GetEmployeeInput = z.infer<typeof GetEmployeeInputSchema>;
|
|
21
|
+
/**
|
|
22
|
+
* Create employee input schema
|
|
23
|
+
*
|
|
24
|
+
* According to the official Holded Team API v1.0.1 documentation,
|
|
25
|
+
* employee creation supports only these fields: name, lastName, email, sendInvite.
|
|
26
|
+
* All other fields should be set via the Update Employee endpoint.
|
|
27
|
+
*
|
|
28
|
+
* @see https://developers.holded.com/reference
|
|
29
|
+
* @apiVersion Team API v1.0.1
|
|
30
|
+
* @required name, lastName, email
|
|
31
|
+
* @optional sendInvite
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const input = {
|
|
36
|
+
* name: "John",
|
|
37
|
+
* lastName: "Doe",
|
|
38
|
+
* email: "john.doe@company.com",
|
|
39
|
+
* sendInvite: true
|
|
40
|
+
* };
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare const CreateEmployeeInputSchema: z.ZodObject<{
|
|
44
|
+
name: z.ZodString;
|
|
45
|
+
lastName: z.ZodString;
|
|
46
|
+
email: z.ZodString;
|
|
47
|
+
sendInvite: z.ZodOptional<z.ZodBoolean>;
|
|
48
|
+
}, z.core.$strict>;
|
|
49
|
+
export type CreateEmployeeInput = z.infer<typeof CreateEmployeeInputSchema>;
|
|
50
|
+
/**
|
|
51
|
+
* Update employee input schema
|
|
52
|
+
*/
|
|
53
|
+
export declare const UpdateEmployeeInputSchema: z.ZodObject<{
|
|
54
|
+
employee_id: z.ZodString;
|
|
55
|
+
name: z.ZodOptional<z.ZodString>;
|
|
56
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
57
|
+
mainEmail: z.ZodOptional<z.ZodString>;
|
|
58
|
+
email: z.ZodOptional<z.ZodString>;
|
|
59
|
+
nationality: z.ZodOptional<z.ZodString>;
|
|
60
|
+
phone: z.ZodOptional<z.ZodString>;
|
|
61
|
+
mobile: z.ZodOptional<z.ZodString>;
|
|
62
|
+
dateOfBirth: z.ZodOptional<z.ZodString>;
|
|
63
|
+
gender: z.ZodOptional<z.ZodEnum<{
|
|
64
|
+
male: "male";
|
|
65
|
+
female: "female";
|
|
66
|
+
}>>;
|
|
67
|
+
mainLanguage: z.ZodOptional<z.ZodEnum<{
|
|
68
|
+
English: "English";
|
|
69
|
+
"English(UK)": "English(UK)";
|
|
70
|
+
"English(US)": "English(US)";
|
|
71
|
+
"English(Canada)": "English(Canada)";
|
|
72
|
+
Spanish: "Spanish";
|
|
73
|
+
"Spanish(Spain)": "Spanish(Spain)";
|
|
74
|
+
"Spanish(Mexico)": "Spanish(Mexico)";
|
|
75
|
+
"Spanish(Argentina)": "Spanish(Argentina)";
|
|
76
|
+
"Spanish(Colombia)": "Spanish(Colombia)";
|
|
77
|
+
Portuguese: "Portuguese";
|
|
78
|
+
"Portuguese(Portugal)": "Portuguese(Portugal)";
|
|
79
|
+
"Portuguese(Brazil)": "Portuguese(Brazil)";
|
|
80
|
+
Catalan: "Catalan";
|
|
81
|
+
Galician: "Galician";
|
|
82
|
+
Euskera: "Euskera";
|
|
83
|
+
French: "French";
|
|
84
|
+
"German(Deutsch)": "German(Deutsch)";
|
|
85
|
+
Italian: "Italian";
|
|
86
|
+
Greek: "Greek";
|
|
87
|
+
Swedish: "Swedish";
|
|
88
|
+
Dutch: "Dutch";
|
|
89
|
+
Finnish: "Finnish";
|
|
90
|
+
Irish: "Irish";
|
|
91
|
+
Norwegian: "Norwegian";
|
|
92
|
+
Danish: "Danish";
|
|
93
|
+
Czech: "Czech";
|
|
94
|
+
Croatian: "Croatian";
|
|
95
|
+
Russian: "Russian";
|
|
96
|
+
Polish: "Polish";
|
|
97
|
+
}>>;
|
|
98
|
+
iban: z.ZodOptional<z.ZodString>;
|
|
99
|
+
timeOffPolicyId: z.ZodOptional<z.ZodString>;
|
|
100
|
+
timeOffSupervisors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
101
|
+
reportingTo: z.ZodOptional<z.ZodString>;
|
|
102
|
+
code: z.ZodOptional<z.ZodString>;
|
|
103
|
+
socialSecurityNum: z.ZodOptional<z.ZodString>;
|
|
104
|
+
address: z.ZodOptional<z.ZodObject<{
|
|
105
|
+
address: z.ZodOptional<z.ZodString>;
|
|
106
|
+
city: z.ZodOptional<z.ZodString>;
|
|
107
|
+
postalCode: z.ZodOptional<z.ZodString>;
|
|
108
|
+
province: z.ZodOptional<z.ZodString>;
|
|
109
|
+
country: z.ZodOptional<z.ZodString>;
|
|
110
|
+
}, z.core.$strict>>;
|
|
111
|
+
fiscalResidence: z.ZodOptional<z.ZodBoolean>;
|
|
112
|
+
fiscalAddress: z.ZodOptional<z.ZodObject<{
|
|
113
|
+
idNum: z.ZodOptional<z.ZodString>;
|
|
114
|
+
address: z.ZodOptional<z.ZodString>;
|
|
115
|
+
city: z.ZodOptional<z.ZodString>;
|
|
116
|
+
cityOfBirth: z.ZodOptional<z.ZodString>;
|
|
117
|
+
postalCode: z.ZodOptional<z.ZodString>;
|
|
118
|
+
province: z.ZodOptional<z.ZodString>;
|
|
119
|
+
country: z.ZodOptional<z.ZodString>;
|
|
120
|
+
countryOfBirth: z.ZodOptional<z.ZodString>;
|
|
121
|
+
endSituationDate: z.ZodOptional<z.ZodString>;
|
|
122
|
+
}, z.core.$strict>>;
|
|
123
|
+
workplace: z.ZodOptional<z.ZodString>;
|
|
124
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
125
|
+
holdedUserId: z.ZodOptional<z.ZodString>;
|
|
126
|
+
}, z.core.$strict>;
|
|
127
|
+
export type UpdateEmployeeInput = z.infer<typeof UpdateEmployeeInputSchema>;
|
|
128
|
+
/**
|
|
129
|
+
* Delete employee input schema
|
|
130
|
+
*/
|
|
131
|
+
export declare const DeleteEmployeeInputSchema: z.ZodObject<{
|
|
132
|
+
employee_id: z.ZodString;
|
|
133
|
+
}, z.core.$strict>;
|
|
134
|
+
export type DeleteEmployeeInput = z.infer<typeof DeleteEmployeeInputSchema>;
|
|
135
|
+
//# sourceMappingURL=employees.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.d.ts","sourceRoot":"","sources":["../../../src/schemas/team/employees.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;kBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;kBAGjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,yBAAyB;;;;;kBAKpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAgE5E;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,yBAAyB;;kBAEpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for Employee-related operations
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { IdSchema, PaginationSchema, ResponseFormatSchema, OptionalStringSchema, } from "../common.js";
|
|
6
|
+
/**
|
|
7
|
+
* List employees input schema
|
|
8
|
+
*/
|
|
9
|
+
export const ListEmployeesInputSchema = z.strictObject({
|
|
10
|
+
page: PaginationSchema.shape.page,
|
|
11
|
+
response_format: ResponseFormatSchema,
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* Get employee input schema
|
|
15
|
+
*/
|
|
16
|
+
export const GetEmployeeInputSchema = z.strictObject({
|
|
17
|
+
employee_id: IdSchema.describe("The employee ID to retrieve"),
|
|
18
|
+
response_format: ResponseFormatSchema,
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Create employee input schema
|
|
22
|
+
*
|
|
23
|
+
* According to the official Holded Team API v1.0.1 documentation,
|
|
24
|
+
* employee creation supports only these fields: name, lastName, email, sendInvite.
|
|
25
|
+
* All other fields should be set via the Update Employee endpoint.
|
|
26
|
+
*
|
|
27
|
+
* @see https://developers.holded.com/reference
|
|
28
|
+
* @apiVersion Team API v1.0.1
|
|
29
|
+
* @required name, lastName, email
|
|
30
|
+
* @optional sendInvite
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const input = {
|
|
35
|
+
* name: "John",
|
|
36
|
+
* lastName: "Doe",
|
|
37
|
+
* email: "john.doe@company.com",
|
|
38
|
+
* sendInvite: true
|
|
39
|
+
* };
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export const CreateEmployeeInputSchema = z.strictObject({
|
|
43
|
+
name: z.string().min(1, { message: "Name is required" }).describe("Employee name (required)"),
|
|
44
|
+
lastName: z.string().min(1, { message: "Last name is required" }).describe("Employee last name (required)"),
|
|
45
|
+
email: z.string().email({ message: "Valid email is required" }).describe("Email address (required)"),
|
|
46
|
+
sendInvite: z.boolean().optional().describe("Whether to send invitation email to the employee"),
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* Address schema for employee
|
|
50
|
+
*/
|
|
51
|
+
const EmployeeAddressSchema = z.strictObject({
|
|
52
|
+
address: z.string().optional().describe("Street address"),
|
|
53
|
+
city: z.string().optional().describe("City name"),
|
|
54
|
+
postalCode: z.string().optional().describe("Postal/ZIP code"),
|
|
55
|
+
province: z.string().optional().describe("Province/State"),
|
|
56
|
+
country: z.string().optional().describe("Country name"),
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Fiscal address schema for employee
|
|
60
|
+
*/
|
|
61
|
+
const EmployeeFiscalAddressSchema = z.strictObject({
|
|
62
|
+
idNum: z.string().optional().describe("ID number"),
|
|
63
|
+
address: z.string().optional().describe("Street address"),
|
|
64
|
+
city: z.string().optional().describe("City name"),
|
|
65
|
+
cityOfBirth: z.string().optional().describe("City of birth"),
|
|
66
|
+
postalCode: z.string().optional().describe("Postal/ZIP code"),
|
|
67
|
+
province: z.string().optional().describe("Province/State"),
|
|
68
|
+
country: z.string().optional().describe("Country name"),
|
|
69
|
+
countryOfBirth: z.string().optional().describe("Country of birth"),
|
|
70
|
+
endSituationDate: z.string().optional().describe("End situation date"),
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* Supported languages for employee main language
|
|
74
|
+
* Per Holded Team API v1.0.1 documentation
|
|
75
|
+
*/
|
|
76
|
+
const EmployeeLanguageEnum = z.enum([
|
|
77
|
+
"English",
|
|
78
|
+
"English(UK)",
|
|
79
|
+
"English(US)",
|
|
80
|
+
"English(Canada)",
|
|
81
|
+
"Spanish",
|
|
82
|
+
"Spanish(Spain)",
|
|
83
|
+
"Spanish(Mexico)",
|
|
84
|
+
"Spanish(Argentina)",
|
|
85
|
+
"Spanish(Colombia)",
|
|
86
|
+
"Portuguese",
|
|
87
|
+
"Portuguese(Portugal)",
|
|
88
|
+
"Portuguese(Brazil)",
|
|
89
|
+
"Catalan",
|
|
90
|
+
"Galician",
|
|
91
|
+
"Euskera",
|
|
92
|
+
"French",
|
|
93
|
+
"German(Deutsch)",
|
|
94
|
+
"Italian",
|
|
95
|
+
"Greek",
|
|
96
|
+
"Swedish",
|
|
97
|
+
"Dutch",
|
|
98
|
+
"Finnish",
|
|
99
|
+
"Irish",
|
|
100
|
+
"Norwegian",
|
|
101
|
+
"Danish",
|
|
102
|
+
"Czech",
|
|
103
|
+
"Croatian",
|
|
104
|
+
"Russian",
|
|
105
|
+
"Polish",
|
|
106
|
+
]);
|
|
107
|
+
/**
|
|
108
|
+
* Update employee input schema
|
|
109
|
+
*/
|
|
110
|
+
export const UpdateEmployeeInputSchema = z.strictObject({
|
|
111
|
+
employee_id: IdSchema.describe("The employee ID to update"),
|
|
112
|
+
name: z.string().min(1).optional().describe("Employee name"),
|
|
113
|
+
lastName: z.string().min(1).optional().describe("Employee last name"),
|
|
114
|
+
mainEmail: z.string().email().optional().describe("Main email address"),
|
|
115
|
+
email: z.string().email().optional().describe("Email address"),
|
|
116
|
+
nationality: OptionalStringSchema.describe("Nationality"),
|
|
117
|
+
phone: OptionalStringSchema.describe("Phone number"),
|
|
118
|
+
mobile: OptionalStringSchema.describe("Mobile phone number"),
|
|
119
|
+
dateOfBirth: z.string()
|
|
120
|
+
.regex(/^\d{2}\/\d{2}\/\d{4}$/, { message: "Date must be in dd/mm/yyyy format" })
|
|
121
|
+
.optional()
|
|
122
|
+
.describe("Date of birth (dd/mm/yyyy)"),
|
|
123
|
+
gender: z.enum(["male", "female"]).optional().describe("Gender"),
|
|
124
|
+
mainLanguage: EmployeeLanguageEnum.optional().describe("Main language"),
|
|
125
|
+
iban: OptionalStringSchema.describe("Bank IBAN"),
|
|
126
|
+
timeOffPolicyId: OptionalStringSchema.describe("Time off policy ID"),
|
|
127
|
+
timeOffSupervisors: z.array(z.string()).optional().describe("Array of supervisor employee IDs"),
|
|
128
|
+
reportingTo: OptionalStringSchema.describe("Reporting manager employee ID"),
|
|
129
|
+
code: OptionalStringSchema.describe("NIF/tax identification number"),
|
|
130
|
+
socialSecurityNum: OptionalStringSchema.describe("Social security number"),
|
|
131
|
+
address: EmployeeAddressSchema.optional().describe("Address"),
|
|
132
|
+
fiscalResidence: z.boolean().optional().describe("Fiscal residence (set to false to use fiscalAddress)"),
|
|
133
|
+
fiscalAddress: EmployeeFiscalAddressSchema.optional().describe("Fiscal address (requires fiscalResidence to be false)"),
|
|
134
|
+
workplace: OptionalStringSchema.describe("Workplace ID"),
|
|
135
|
+
teams: z.array(z.string()).optional().describe("Array of team IDs"),
|
|
136
|
+
holdedUserId: OptionalStringSchema.describe("Holded user ID"),
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* Delete employee input schema
|
|
140
|
+
*/
|
|
141
|
+
export const DeleteEmployeeInputSchema = z.strictObject({
|
|
142
|
+
employee_id: IdSchema.describe("The employee ID to delete"),
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=employees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../../src/schemas/team/employees.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for Time Tracking operations
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
/**
|
|
6
|
+
* List all time-trackings input schema
|
|
7
|
+
*/
|
|
8
|
+
export declare const ListAllTimeTrackingsInputSchema: z.ZodObject<{
|
|
9
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
10
|
+
response_format: z.ZodDefault<z.ZodEnum<typeof import("../../constants.js").ResponseFormat>>;
|
|
11
|
+
}, z.core.$strict>;
|
|
12
|
+
export type ListAllTimeTrackingsInput = z.infer<typeof ListAllTimeTrackingsInputSchema>;
|
|
13
|
+
/**
|
|
14
|
+
* List employee time-trackings input schema
|
|
15
|
+
*/
|
|
16
|
+
export declare const ListEmployeeTimeTrackingsInputSchema: z.ZodObject<{
|
|
17
|
+
employee_id: z.ZodString;
|
|
18
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
19
|
+
response_format: z.ZodDefault<z.ZodEnum<typeof import("../../constants.js").ResponseFormat>>;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
export type ListEmployeeTimeTrackingsInput = z.infer<typeof ListEmployeeTimeTrackingsInputSchema>;
|
|
22
|
+
/**
|
|
23
|
+
* Get time-tracking input schema
|
|
24
|
+
*/
|
|
25
|
+
export declare const GetTimeTrackingInputSchema: z.ZodObject<{
|
|
26
|
+
time_id: z.ZodString;
|
|
27
|
+
response_format: z.ZodDefault<z.ZodEnum<typeof import("../../constants.js").ResponseFormat>>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
export type GetTimeTrackingInput = z.infer<typeof GetTimeTrackingInputSchema>;
|
|
30
|
+
/**
|
|
31
|
+
* Create employee time-tracking input schema
|
|
32
|
+
*
|
|
33
|
+
* According to Holded API documentation, the required parameters are:
|
|
34
|
+
* - startTmp (string): Start timestamp as Unix timestamp string
|
|
35
|
+
* - endTmp (string): End timestamp as Unix timestamp string
|
|
36
|
+
*/
|
|
37
|
+
export declare const CreateEmployeeTimeTrackingInputSchema: z.ZodObject<{
|
|
38
|
+
employee_id: z.ZodString;
|
|
39
|
+
startTmp: z.ZodString;
|
|
40
|
+
endTmp: z.ZodString;
|
|
41
|
+
}, z.core.$strict>;
|
|
42
|
+
export type CreateEmployeeTimeTrackingInput = z.infer<typeof CreateEmployeeTimeTrackingInputSchema>;
|
|
43
|
+
/**
|
|
44
|
+
* Update time-tracking input schema
|
|
45
|
+
*
|
|
46
|
+
* According to Holded API documentation, the required parameters are:
|
|
47
|
+
* - startTmp (string): Start timestamp as Unix timestamp string
|
|
48
|
+
* - endTmp (string): End timestamp as Unix timestamp string
|
|
49
|
+
*/
|
|
50
|
+
export declare const UpdateTimeTrackingInputSchema: z.ZodObject<{
|
|
51
|
+
time_id: z.ZodString;
|
|
52
|
+
startTmp: z.ZodString;
|
|
53
|
+
endTmp: z.ZodString;
|
|
54
|
+
}, z.core.$strict>;
|
|
55
|
+
export type UpdateTimeTrackingInput = z.infer<typeof UpdateTimeTrackingInputSchema>;
|
|
56
|
+
/**
|
|
57
|
+
* Delete time-tracking input schema
|
|
58
|
+
*/
|
|
59
|
+
export declare const DeleteTimeTrackingInputSchema: z.ZodObject<{
|
|
60
|
+
time_id: z.ZodString;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
export type DeleteTimeTrackingInput = z.infer<typeof DeleteTimeTrackingInputSchema>;
|
|
63
|
+
/**
|
|
64
|
+
* Employee clock-in input schema
|
|
65
|
+
*/
|
|
66
|
+
export declare const EmployeeClockInInputSchema: z.ZodObject<{
|
|
67
|
+
employee_id: z.ZodString;
|
|
68
|
+
location: z.ZodOptional<z.ZodString>;
|
|
69
|
+
}, z.core.$strict>;
|
|
70
|
+
export type EmployeeClockInInput = z.infer<typeof EmployeeClockInInputSchema>;
|
|
71
|
+
/**
|
|
72
|
+
* Employee clock-out input schema
|
|
73
|
+
*/
|
|
74
|
+
export declare const EmployeeClockOutInputSchema: z.ZodObject<{
|
|
75
|
+
employee_id: z.ZodString;
|
|
76
|
+
latitude: z.ZodOptional<z.ZodString>;
|
|
77
|
+
longitude: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, z.core.$strict>;
|
|
79
|
+
export type EmployeeClockOutInput = z.infer<typeof EmployeeClockOutInputSchema>;
|
|
80
|
+
/**
|
|
81
|
+
* Employee pause input schema
|
|
82
|
+
*/
|
|
83
|
+
export declare const EmployeePauseInputSchema: z.ZodObject<{
|
|
84
|
+
employee_id: z.ZodString;
|
|
85
|
+
latitude: z.ZodOptional<z.ZodString>;
|
|
86
|
+
longitude: z.ZodOptional<z.ZodString>;
|
|
87
|
+
}, z.core.$strict>;
|
|
88
|
+
export type EmployeePauseInput = z.infer<typeof EmployeePauseInputSchema>;
|
|
89
|
+
/**
|
|
90
|
+
* Employee unpause input schema
|
|
91
|
+
*/
|
|
92
|
+
export declare const EmployeeUnpauseInputSchema: z.ZodObject<{
|
|
93
|
+
employee_id: z.ZodString;
|
|
94
|
+
latitude: z.ZodOptional<z.ZodString>;
|
|
95
|
+
longitude: z.ZodOptional<z.ZodString>;
|
|
96
|
+
}, z.core.$strict>;
|
|
97
|
+
export type EmployeeUnpauseInput = z.infer<typeof EmployeeUnpauseInputSchema>;
|
|
98
|
+
//# sourceMappingURL=time-tracking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-tracking.d.ts","sourceRoot":"","sources":["../../../src/schemas/team/time-tracking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;kBAG1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,oCAAoC;;;;kBAI/C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;kBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC;;;;kBAIhD,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;;;kBAIxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,6BAA6B;;kBAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;kBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;kBAItC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;kBAInC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;kBAIrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for Time Tracking operations
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { IdSchema, PaginationSchema, ResponseFormatSchema, OptionalStringSchema, } from "../common.js";
|
|
6
|
+
/**
|
|
7
|
+
* List all time-trackings input schema
|
|
8
|
+
*/
|
|
9
|
+
export const ListAllTimeTrackingsInputSchema = z.strictObject({
|
|
10
|
+
page: PaginationSchema.shape.page,
|
|
11
|
+
response_format: ResponseFormatSchema,
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* List employee time-trackings input schema
|
|
15
|
+
*/
|
|
16
|
+
export const ListEmployeeTimeTrackingsInputSchema = z.strictObject({
|
|
17
|
+
employee_id: IdSchema.describe("The employee ID"),
|
|
18
|
+
page: PaginationSchema.shape.page,
|
|
19
|
+
response_format: ResponseFormatSchema,
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Get time-tracking input schema
|
|
23
|
+
*/
|
|
24
|
+
export const GetTimeTrackingInputSchema = z.strictObject({
|
|
25
|
+
time_id: IdSchema.describe("The time-tracking ID to retrieve"),
|
|
26
|
+
response_format: ResponseFormatSchema,
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Create employee time-tracking input schema
|
|
30
|
+
*
|
|
31
|
+
* According to Holded API documentation, the required parameters are:
|
|
32
|
+
* - startTmp (string): Start timestamp as Unix timestamp string
|
|
33
|
+
* - endTmp (string): End timestamp as Unix timestamp string
|
|
34
|
+
*/
|
|
35
|
+
export const CreateEmployeeTimeTrackingInputSchema = z.strictObject({
|
|
36
|
+
employee_id: IdSchema.describe("The employee ID (required)"),
|
|
37
|
+
startTmp: z.string().min(1, { message: "Start timestamp is required" }).describe("Start time as Unix timestamp string (required)"),
|
|
38
|
+
endTmp: z.string().min(1, { message: "End timestamp is required" }).describe("End time as Unix timestamp string (required)"),
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Update time-tracking input schema
|
|
42
|
+
*
|
|
43
|
+
* According to Holded API documentation, the required parameters are:
|
|
44
|
+
* - startTmp (string): Start timestamp as Unix timestamp string
|
|
45
|
+
* - endTmp (string): End timestamp as Unix timestamp string
|
|
46
|
+
*/
|
|
47
|
+
export const UpdateTimeTrackingInputSchema = z.strictObject({
|
|
48
|
+
time_id: IdSchema.describe("The time-tracking ID to update"),
|
|
49
|
+
startTmp: z.string().min(1, { message: "Start timestamp is required" }).describe("Start time as Unix timestamp string (required)"),
|
|
50
|
+
endTmp: z.string().min(1, { message: "End timestamp is required" }).describe("End time as Unix timestamp string (required)"),
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Delete time-tracking input schema
|
|
54
|
+
*/
|
|
55
|
+
export const DeleteTimeTrackingInputSchema = z.strictObject({
|
|
56
|
+
time_id: IdSchema.describe("The time-tracking ID to delete"),
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Employee clock-in input schema
|
|
60
|
+
*/
|
|
61
|
+
export const EmployeeClockInInputSchema = z.strictObject({
|
|
62
|
+
employee_id: IdSchema.describe("The employee ID to clock in"),
|
|
63
|
+
location: OptionalStringSchema.describe("Location name"),
|
|
64
|
+
});
|
|
65
|
+
/**
|
|
66
|
+
* Employee clock-out input schema
|
|
67
|
+
*/
|
|
68
|
+
export const EmployeeClockOutInputSchema = z.strictObject({
|
|
69
|
+
employee_id: IdSchema.describe("The employee ID to clock out"),
|
|
70
|
+
latitude: OptionalStringSchema.describe("Latitude (e.g., -7.45556)"),
|
|
71
|
+
longitude: OptionalStringSchema.describe("Longitude (e.g., 55.55765)"),
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* Employee pause input schema
|
|
75
|
+
*/
|
|
76
|
+
export const EmployeePauseInputSchema = z.strictObject({
|
|
77
|
+
employee_id: IdSchema.describe("The employee ID to pause"),
|
|
78
|
+
latitude: OptionalStringSchema.describe("Latitude (e.g., -7.45556)"),
|
|
79
|
+
longitude: OptionalStringSchema.describe("Longitude (e.g., 55.55765)"),
|
|
80
|
+
});
|
|
81
|
+
/**
|
|
82
|
+
* Employee unpause input schema
|
|
83
|
+
*/
|
|
84
|
+
export const EmployeeUnpauseInputSchema = z.strictObject({
|
|
85
|
+
employee_id: IdSchema.describe("The employee ID to unpause"),
|
|
86
|
+
latitude: OptionalStringSchema.describe("Latitude (e.g., -7.45556)"),
|
|
87
|
+
longitude: OptionalStringSchema.describe("Longitude (e.g., 55.55765)"),
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=time-tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-tracking.js","sourceRoot":"","sources":["../../../src/schemas/team/time-tracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Holded API client with authentication, error handling, and retry logic
|
|
3
|
+
*/
|
|
4
|
+
import { AxiosError } from "axios";
|
|
5
|
+
/**
|
|
6
|
+
* Token bucket for rate limiting
|
|
7
|
+
* Exported for testing purposes
|
|
8
|
+
*/
|
|
9
|
+
export declare class TokenBucket {
|
|
10
|
+
private tokens;
|
|
11
|
+
private lastRefill;
|
|
12
|
+
private readonly capacity;
|
|
13
|
+
private readonly refillRate;
|
|
14
|
+
constructor(requestsPerSecond: number);
|
|
15
|
+
/**
|
|
16
|
+
* Refill tokens based on time elapsed
|
|
17
|
+
*/
|
|
18
|
+
private refill;
|
|
19
|
+
/**
|
|
20
|
+
* Try to consume a token, wait if not available
|
|
21
|
+
*/
|
|
22
|
+
consume(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Get current token count (for testing)
|
|
25
|
+
*/
|
|
26
|
+
getTokens(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Get capacity (for testing)
|
|
29
|
+
*/
|
|
30
|
+
getCapacity(): number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sleep for a specified number of milliseconds
|
|
34
|
+
* Exported for testing purposes
|
|
35
|
+
*/
|
|
36
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Calculate delay for retry with exponential backoff and jitter
|
|
39
|
+
* Exported for testing purposes
|
|
40
|
+
*/
|
|
41
|
+
export declare function calculateRetryDelay(attempt: number, retryAfterHeader?: string): number;
|
|
42
|
+
/**
|
|
43
|
+
* Check if an error is retryable based on status code
|
|
44
|
+
* Exported for testing purposes
|
|
45
|
+
*/
|
|
46
|
+
export declare function isRetryableError(error: unknown): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Get Retry-After header value if present
|
|
49
|
+
* Exported for testing purposes
|
|
50
|
+
*/
|
|
51
|
+
export declare function getRetryAfterHeader(error: AxiosError): string | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Initialize the API client with the Holded API key
|
|
54
|
+
*/
|
|
55
|
+
export declare function initializeApi(key: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get the API key from environment or throw error
|
|
58
|
+
*/
|
|
59
|
+
export declare function getApiKey(): string;
|
|
60
|
+
/**
|
|
61
|
+
* API module types
|
|
62
|
+
*/
|
|
63
|
+
export type ApiModule = "invoicing" | "crm" | "projects" | "accounting" | "team";
|
|
64
|
+
/**
|
|
65
|
+
* Make an API request to the Holded API with automatic retry for transient errors
|
|
66
|
+
*
|
|
67
|
+
* Retries automatically on:
|
|
68
|
+
* - 429 (Rate limit exceeded)
|
|
69
|
+
* - 500, 502, 503, 504 (Server errors)
|
|
70
|
+
* - Network timeout errors
|
|
71
|
+
*
|
|
72
|
+
* Uses exponential backoff with jitter between retries.
|
|
73
|
+
* Includes proactive rate limiting to prevent hitting API limits.
|
|
74
|
+
*/
|
|
75
|
+
export declare function makeApiRequest<T>(module: ApiModule, endpoint: string, method?: "GET" | "POST" | "PUT" | "DELETE", data?: unknown, params?: Record<string, unknown>): Promise<T>;
|
|
76
|
+
/**
|
|
77
|
+
* Make a multipart/form-data API request for file uploads with automatic retry
|
|
78
|
+
*
|
|
79
|
+
* Retries automatically on transient errors (rate limit, server errors).
|
|
80
|
+
* Includes proactive rate limiting to prevent hitting API limits.
|
|
81
|
+
*/
|
|
82
|
+
export declare function makeMultipartApiRequest<T>(module: ApiModule, endpoint: string, fileBuffer: Buffer, fileName: string, setMain?: boolean): Promise<T>;
|
|
83
|
+
/**
|
|
84
|
+
* Handle API errors and return user-friendly messages with actionable remediation hints
|
|
85
|
+
*
|
|
86
|
+
* Error codes per Holded API documentation:
|
|
87
|
+
* - 400: Bad request
|
|
88
|
+
* - 401: Unauthorized (invalid API key)
|
|
89
|
+
* - 403: Forbidden
|
|
90
|
+
* - 404: Resource not found
|
|
91
|
+
* - 409: Conflict
|
|
92
|
+
* - 410: Gone (e.g., booking slot no longer available)
|
|
93
|
+
* - 422: Validation failed
|
|
94
|
+
* - 429: Rate limit exceeded
|
|
95
|
+
* - 500: Server error
|
|
96
|
+
*/
|
|
97
|
+
export declare function handleApiError(error: unknown): string;
|
|
98
|
+
/**
|
|
99
|
+
* Format a successful response with optional truncation
|
|
100
|
+
*/
|
|
101
|
+
export declare function formatResponse<T>(data: T, characterLimit?: number): {
|
|
102
|
+
text: string;
|
|
103
|
+
truncated: boolean;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Build pagination query parameters
|
|
107
|
+
*/
|
|
108
|
+
export declare function buildPaginationParams(page?: number): Record<string, unknown>;
|
|
109
|
+
/**
|
|
110
|
+
* Safely convert API response to Record<string, unknown> for structuredContent
|
|
111
|
+
* Handles cases where API might return string, object, array, or other types
|
|
112
|
+
*/
|
|
113
|
+
export declare function toStructuredContent(response: unknown): Record<string, unknown>;
|
|
114
|
+
/**
|
|
115
|
+
* Reset internal state for testing purposes only
|
|
116
|
+
*/
|
|
117
|
+
export declare function _resetForTesting(): void;
|
|
118
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/services/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAc,EAAE,UAAU,EAAqC,MAAM,OAAO,CAAC;AAuC7E;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,iBAAiB,EAAE,MAAM;IAOrC;;OAEG;IACH,OAAO,CAAC,MAAM;IASd;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB;AAsBD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAetF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAU/C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAYlC;AAYD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAoBjF;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAgB,EACjD,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC,CAoDZ;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,CAAC,CAAC,CAuDZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwDrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,CAAC,EACP,cAAc,GAAE,MAAc,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CA2BtC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
|