digital-tools 2.1.3 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +2 -0
  3. package/dist/client.d.ts +109 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +69 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/define.d.ts +2 -2
  8. package/dist/define.d.ts.map +1 -1
  9. package/dist/define.js +21 -11
  10. package/dist/define.js.map +1 -1
  11. package/dist/function-ref.d.ts +229 -0
  12. package/dist/function-ref.d.ts.map +1 -0
  13. package/dist/function-ref.js +28 -0
  14. package/dist/function-ref.js.map +1 -0
  15. package/dist/function-sugar.d.ts +57 -0
  16. package/dist/function-sugar.d.ts.map +1 -0
  17. package/dist/function-sugar.js +79 -0
  18. package/dist/function-sugar.js.map +1 -0
  19. package/dist/index.d.ts +10 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +24 -4
  22. package/dist/index.js.map +1 -1
  23. package/dist/providers/analytics/mixpanel.d.ts.map +1 -1
  24. package/dist/providers/analytics/mixpanel.js +21 -18
  25. package/dist/providers/analytics/mixpanel.js.map +1 -1
  26. package/dist/providers/calendar/cal-com.d.ts.map +1 -1
  27. package/dist/providers/calendar/cal-com.js +10 -10
  28. package/dist/providers/calendar/cal-com.js.map +1 -1
  29. package/dist/providers/calendar/google-calendar.d.ts.map +1 -1
  30. package/dist/providers/calendar/google-calendar.js +4 -4
  31. package/dist/providers/calendar/google-calendar.js.map +1 -1
  32. package/dist/providers/crm/hubspot.d.ts.map +1 -1
  33. package/dist/providers/crm/hubspot.js +107 -85
  34. package/dist/providers/crm/hubspot.js.map +1 -1
  35. package/dist/providers/development/github.d.ts.map +1 -1
  36. package/dist/providers/development/github.js +40 -43
  37. package/dist/providers/development/github.js.map +1 -1
  38. package/dist/providers/ecommerce/shopify.d.ts.map +1 -1
  39. package/dist/providers/ecommerce/shopify.js +79 -62
  40. package/dist/providers/ecommerce/shopify.js.map +1 -1
  41. package/dist/providers/email/resend.d.ts.map +1 -1
  42. package/dist/providers/email/resend.js +20 -16
  43. package/dist/providers/email/resend.js.map +1 -1
  44. package/dist/providers/email/sendgrid.d.ts.map +1 -1
  45. package/dist/providers/email/sendgrid.js +12 -9
  46. package/dist/providers/email/sendgrid.js.map +1 -1
  47. package/dist/providers/finance/stripe.d.ts.map +1 -1
  48. package/dist/providers/finance/stripe.js +44 -42
  49. package/dist/providers/finance/stripe.js.map +1 -1
  50. package/dist/providers/forms/typeform.d.ts.map +1 -1
  51. package/dist/providers/forms/typeform.js +68 -58
  52. package/dist/providers/forms/typeform.js.map +1 -1
  53. package/dist/providers/knowledge/notion.d.ts.map +1 -1
  54. package/dist/providers/knowledge/notion.js +75 -41
  55. package/dist/providers/knowledge/notion.js.map +1 -1
  56. package/dist/providers/marketing/mailchimp.d.ts.map +1 -1
  57. package/dist/providers/marketing/mailchimp.js +74 -61
  58. package/dist/providers/marketing/mailchimp.js.map +1 -1
  59. package/dist/providers/media/cloudinary.d.ts.map +1 -1
  60. package/dist/providers/media/cloudinary.js +30 -28
  61. package/dist/providers/media/cloudinary.js.map +1 -1
  62. package/dist/providers/messaging/slack.d.ts.map +1 -1
  63. package/dist/providers/messaging/slack.js +75 -58
  64. package/dist/providers/messaging/slack.js.map +1 -1
  65. package/dist/providers/messaging/twilio-sms.d.ts.map +1 -1
  66. package/dist/providers/messaging/twilio-sms.js +33 -15
  67. package/dist/providers/messaging/twilio-sms.js.map +1 -1
  68. package/dist/providers/project-management/linear.d.ts.map +1 -1
  69. package/dist/providers/project-management/linear.js +31 -27
  70. package/dist/providers/project-management/linear.js.map +1 -1
  71. package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -1
  72. package/dist/providers/spreadsheet/google-sheets.js +21 -18
  73. package/dist/providers/spreadsheet/google-sheets.js.map +1 -1
  74. package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -1
  75. package/dist/providers/spreadsheet/xlsx.js +4 -4
  76. package/dist/providers/spreadsheet/xlsx.js.map +1 -1
  77. package/dist/providers/storage/index.js +1 -0
  78. package/dist/providers/storage/index.js.map +1 -1
  79. package/dist/providers/storage/s3.d.ts.map +1 -1
  80. package/dist/providers/storage/s3.js +36 -27
  81. package/dist/providers/storage/s3.js.map +1 -1
  82. package/dist/providers/support/zendesk.d.ts.map +1 -1
  83. package/dist/providers/support/zendesk.js +24 -25
  84. package/dist/providers/support/zendesk.js.map +1 -1
  85. package/dist/providers/tasks/todoist.d.ts.map +1 -1
  86. package/dist/providers/tasks/todoist.js +18 -18
  87. package/dist/providers/tasks/todoist.js.map +1 -1
  88. package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -1
  89. package/dist/providers/video-conferencing/google-meet.js +11 -11
  90. package/dist/providers/video-conferencing/google-meet.js.map +1 -1
  91. package/dist/providers/video-conferencing/jitsi.js +14 -14
  92. package/dist/providers/video-conferencing/jitsi.js.map +1 -1
  93. package/dist/providers/video-conferencing/teams.d.ts.map +1 -1
  94. package/dist/providers/video-conferencing/teams.js +9 -7
  95. package/dist/providers/video-conferencing/teams.js.map +1 -1
  96. package/dist/providers/video-conferencing/zoom.d.ts.map +1 -1
  97. package/dist/providers/video-conferencing/zoom.js +26 -24
  98. package/dist/providers/video-conferencing/zoom.js.map +1 -1
  99. package/dist/tools/data.d.ts.map +1 -1
  100. package/dist/tools/data.js +5 -12
  101. package/dist/tools/data.js.map +1 -1
  102. package/dist/tools/index.d.ts +1 -0
  103. package/dist/tools/index.d.ts.map +1 -1
  104. package/dist/tools/index.js +1 -0
  105. package/dist/tools/index.js.map +1 -1
  106. package/dist/tools/system.d.ts +289 -0
  107. package/dist/tools/system.d.ts.map +1 -0
  108. package/dist/tools/system.js +752 -0
  109. package/dist/tools/system.js.map +1 -0
  110. package/dist/tools/web.d.ts.map +1 -1
  111. package/dist/tools/web.js +22 -10
  112. package/dist/tools/web.js.map +1 -1
  113. package/dist/track-record.d.ts +101 -0
  114. package/dist/track-record.d.ts.map +1 -0
  115. package/dist/track-record.js +17 -0
  116. package/dist/track-record.js.map +1 -0
  117. package/dist/types.d.ts +210 -9
  118. package/dist/types.d.ts.map +1 -1
  119. package/dist/verb-registration.d.ts +122 -0
  120. package/dist/verb-registration.d.ts.map +1 -0
  121. package/dist/verb-registration.js +176 -0
  122. package/dist/verb-registration.js.map +1 -0
  123. package/dist/worker.d.ts +93 -0
  124. package/dist/worker.d.ts.map +1 -0
  125. package/dist/worker.js +315 -0
  126. package/dist/worker.js.map +1 -0
  127. package/dist/wrap.d.ts +89 -0
  128. package/dist/wrap.d.ts.map +1 -0
  129. package/dist/wrap.js +225 -0
  130. package/dist/wrap.js.map +1 -0
  131. package/package.json +31 -14
  132. package/src/client.ts +136 -0
  133. package/src/define.ts +30 -24
  134. package/src/function-ref.ts +264 -0
  135. package/src/function-sugar.ts +134 -0
  136. package/src/index.ts +132 -10
  137. package/src/providers/analytics/mixpanel.ts +19 -18
  138. package/src/providers/calendar/cal-com.ts +29 -18
  139. package/src/providers/calendar/google-calendar.ts +20 -14
  140. package/src/providers/crm/hubspot.ts +225 -99
  141. package/src/providers/development/github.ts +206 -135
  142. package/src/providers/ecommerce/shopify.ts +250 -89
  143. package/src/providers/email/resend.ts +101 -28
  144. package/src/providers/email/sendgrid.ts +12 -9
  145. package/src/providers/finance/stripe.ts +128 -49
  146. package/src/providers/forms/typeform.ts +74 -58
  147. package/src/providers/knowledge/notion.ts +340 -88
  148. package/src/providers/marketing/mailchimp.ts +86 -70
  149. package/src/providers/media/cloudinary.ts +99 -41
  150. package/src/providers/messaging/slack.ts +283 -85
  151. package/src/providers/messaging/twilio-sms.ts +35 -15
  152. package/src/providers/project-management/linear.ts +143 -55
  153. package/src/providers/spreadsheet/google-sheets.ts +222 -56
  154. package/src/providers/spreadsheet/xlsx.ts +47 -16
  155. package/src/providers/storage/s3.ts +119 -47
  156. package/src/providers/support/zendesk.ts +196 -46
  157. package/src/providers/tasks/todoist.ts +20 -26
  158. package/src/providers/video-conferencing/google-meet.ts +17 -20
  159. package/src/providers/video-conferencing/jitsi.ts +14 -14
  160. package/src/providers/video-conferencing/teams.ts +14 -13
  161. package/src/providers/video-conferencing/zoom.ts +54 -49
  162. package/src/tools/data.ts +6 -16
  163. package/src/tools/index.ts +1 -0
  164. package/src/tools/system.ts +887 -0
  165. package/src/tools/web.ts +22 -10
  166. package/src/track-record.ts +106 -0
  167. package/src/types.ts +241 -13
  168. package/src/verb-registration.ts +197 -0
  169. package/src/worker.ts +370 -0
  170. package/src/wrap.ts +260 -0
  171. package/test/client.test.ts +146 -0
  172. package/test/communication-tools-extended.test.ts +734 -0
  173. package/test/data-tools-extended.test.ts +743 -0
  174. package/test/define-extended.test.ts +819 -0
  175. package/test/define.test.ts +150 -41
  176. package/test/entities.test.ts +623 -0
  177. package/test/extended-entities.test.ts +1228 -0
  178. package/test/provider-implementations.test.ts +725 -0
  179. package/test/provider-registry-extended.test.ts +583 -0
  180. package/test/providers/google-sheets.test.ts +851 -0
  181. package/test/providers/helpers.ts +554 -0
  182. package/test/providers/hubspot.test.ts +576 -0
  183. package/test/providers/slack.test.ts +932 -0
  184. package/test/providers/stripe.test.ts +701 -0
  185. package/test/providers.test.ts +578 -0
  186. package/test/system-tools-extended.test.ts +632 -0
  187. package/test/system.test.ts +673 -0
  188. package/test/tools.test.ts +15 -11
  189. package/test/types.test.ts +402 -0
  190. package/test/verb-registration.test.ts +395 -0
  191. package/test/web-tools.test.ts +553 -0
  192. package/test/worker-extended.test.ts +699 -0
  193. package/test/worker.test.ts +576 -0
  194. package/test/wrap.test.ts +366 -0
  195. package/tsconfig.json +3 -13
  196. package/vitest.config.ts +37 -0
  197. package/wrangler.jsonc +9 -0
  198. package/.turbo/turbo-build.log +0 -4
  199. package/LICENSE +0 -21
  200. package/dist/providers/voice/vapi.d.ts +0 -27
  201. package/dist/providers/voice/vapi.d.ts.map +0 -1
  202. package/dist/providers/voice/vapi.js +0 -440
  203. package/dist/providers/voice/vapi.js.map +0 -1
  204. package/src/define.js +0 -259
  205. package/src/entities/advertising.js +0 -999
  206. package/src/entities/ai.js +0 -756
  207. package/src/entities/analytics.js +0 -1588
  208. package/src/entities/automation.js +0 -601
  209. package/src/entities/communication.js +0 -1150
  210. package/src/entities/crm.js +0 -1386
  211. package/src/entities/design.js +0 -546
  212. package/src/entities/development.js +0 -2212
  213. package/src/entities/document.js +0 -874
  214. package/src/entities/ecommerce.js +0 -1429
  215. package/src/entities/experiment.js +0 -1039
  216. package/src/entities/finance.js +0 -3478
  217. package/src/entities/forms.js +0 -1892
  218. package/src/entities/hr.js +0 -661
  219. package/src/entities/identity.js +0 -997
  220. package/src/entities/index.js +0 -282
  221. package/src/entities/infrastructure.js +0 -1153
  222. package/src/entities/knowledge.js +0 -1438
  223. package/src/entities/marketing.js +0 -1610
  224. package/src/entities/media.js +0 -1634
  225. package/src/entities/notification.js +0 -1199
  226. package/src/entities/presentation.js +0 -1274
  227. package/src/entities/productivity.js +0 -1317
  228. package/src/entities/project-management.js +0 -1136
  229. package/src/entities/recruiting.js +0 -736
  230. package/src/entities/shipping.js +0 -509
  231. package/src/entities/signature.js +0 -1102
  232. package/src/entities/site.js +0 -222
  233. package/src/entities/spreadsheet.js +0 -1341
  234. package/src/entities/storage.js +0 -1198
  235. package/src/entities/support.js +0 -1166
  236. package/src/entities/video-conferencing.js +0 -1750
  237. package/src/entities/video.js +0 -950
  238. package/src/entities.js +0 -1663
  239. package/src/index.js +0 -74
  240. package/src/providers/analytics/index.js +0 -17
  241. package/src/providers/analytics/mixpanel.js +0 -255
  242. package/src/providers/calendar/cal-com.js +0 -303
  243. package/src/providers/calendar/google-calendar.js +0 -335
  244. package/src/providers/calendar/index.js +0 -20
  245. package/src/providers/crm/hubspot.js +0 -566
  246. package/src/providers/crm/index.js +0 -17
  247. package/src/providers/development/github.js +0 -472
  248. package/src/providers/development/index.js +0 -17
  249. package/src/providers/ecommerce/index.js +0 -17
  250. package/src/providers/ecommerce/shopify.js +0 -378
  251. package/src/providers/email/index.js +0 -20
  252. package/src/providers/email/resend.js +0 -258
  253. package/src/providers/email/sendgrid.js +0 -161
  254. package/src/providers/finance/index.js +0 -17
  255. package/src/providers/finance/stripe.js +0 -549
  256. package/src/providers/forms/index.js +0 -17
  257. package/src/providers/forms/typeform.js +0 -500
  258. package/src/providers/index.js +0 -123
  259. package/src/providers/knowledge/index.js +0 -17
  260. package/src/providers/knowledge/notion.js +0 -389
  261. package/src/providers/marketing/index.js +0 -17
  262. package/src/providers/marketing/mailchimp.js +0 -443
  263. package/src/providers/media/cloudinary.js +0 -318
  264. package/src/providers/media/index.js +0 -17
  265. package/src/providers/messaging/index.js +0 -20
  266. package/src/providers/messaging/slack.js +0 -393
  267. package/src/providers/messaging/twilio-sms.js +0 -249
  268. package/src/providers/project-management/index.js +0 -17
  269. package/src/providers/project-management/linear.js +0 -575
  270. package/src/providers/registry.js +0 -86
  271. package/src/providers/spreadsheet/google-sheets.js +0 -375
  272. package/src/providers/spreadsheet/index.js +0 -20
  273. package/src/providers/spreadsheet/xlsx.js +0 -423
  274. package/src/providers/storage/index.js +0 -24
  275. package/src/providers/storage/s3.js +0 -419
  276. package/src/providers/support/index.js +0 -17
  277. package/src/providers/support/zendesk.js +0 -373
  278. package/src/providers/tasks/index.js +0 -17
  279. package/src/providers/tasks/todoist.js +0 -286
  280. package/src/providers/types.js +0 -9
  281. package/src/providers/video-conferencing/google-meet.js +0 -286
  282. package/src/providers/video-conferencing/index.js +0 -31
  283. package/src/providers/video-conferencing/jitsi.js +0 -254
  284. package/src/providers/video-conferencing/teams.js +0 -270
  285. package/src/providers/video-conferencing/zoom.js +0 -332
  286. package/src/registry.js +0 -128
  287. package/src/tools/communication.js +0 -184
  288. package/src/tools/data.js +0 -205
  289. package/src/tools/index.js +0 -11
  290. package/src/tools/web.js +0 -137
  291. package/src/types.js +0 -10
  292. package/test/define.test.js +0 -306
  293. package/test/registry.test.js +0 -357
  294. package/test/tools.test.js +0 -363
@@ -1,661 +0,0 @@
1
- /**
2
- * HR Entity Types (Nouns)
3
- *
4
- * Human Resources entities for employee management, teams, time off,
5
- * performance reviews, and organizational structure.
6
- *
7
- * @packageDocumentation
8
- */
9
- // =============================================================================
10
- // Employee
11
- // =============================================================================
12
- /**
13
- * Employee entity
14
- *
15
- * Represents an employee in the organization.
16
- */
17
- export const Employee = {
18
- singular: 'employee',
19
- plural: 'employees',
20
- description: 'An employee in the organization',
21
- properties: {
22
- // Identity
23
- firstName: {
24
- type: 'string',
25
- description: 'First name',
26
- },
27
- lastName: {
28
- type: 'string',
29
- description: 'Last name',
30
- },
31
- displayName: {
32
- type: 'string',
33
- optional: true,
34
- description: 'Preferred display name',
35
- },
36
- email: {
37
- type: 'string',
38
- description: 'Work email address',
39
- },
40
- personalEmail: {
41
- type: 'string',
42
- optional: true,
43
- description: 'Personal email address',
44
- },
45
- phone: {
46
- type: 'string',
47
- optional: true,
48
- description: 'Work phone number',
49
- },
50
- employeeId: {
51
- type: 'string',
52
- optional: true,
53
- description: 'Internal employee ID',
54
- },
55
- // Employment
56
- status: {
57
- type: 'string',
58
- description: 'Employment status',
59
- examples: ['active', 'onboarding', 'on-leave', 'offboarding', 'terminated'],
60
- },
61
- type: {
62
- type: 'string',
63
- description: 'Employment type',
64
- examples: ['full-time', 'part-time', 'contractor', 'intern', 'temporary'],
65
- },
66
- title: {
67
- type: 'string',
68
- description: 'Job title',
69
- },
70
- department: {
71
- type: 'string',
72
- optional: true,
73
- description: 'Department name',
74
- },
75
- location: {
76
- type: 'string',
77
- optional: true,
78
- description: 'Work location',
79
- },
80
- workType: {
81
- type: 'string',
82
- optional: true,
83
- description: 'Work arrangement',
84
- examples: ['remote', 'hybrid', 'onsite'],
85
- },
86
- // Dates
87
- startDate: {
88
- type: 'datetime',
89
- description: 'Start date',
90
- },
91
- endDate: {
92
- type: 'datetime',
93
- optional: true,
94
- description: 'End date (if terminated)',
95
- },
96
- // Compensation
97
- salary: {
98
- type: 'number',
99
- optional: true,
100
- description: 'Annual salary',
101
- },
102
- currency: {
103
- type: 'string',
104
- optional: true,
105
- description: 'Currency for salary',
106
- },
107
- payFrequency: {
108
- type: 'string',
109
- optional: true,
110
- description: 'Pay frequency',
111
- examples: ['weekly', 'biweekly', 'semimonthly', 'monthly'],
112
- },
113
- // Profile
114
- avatarUrl: {
115
- type: 'url',
116
- optional: true,
117
- description: 'Profile photo URL',
118
- },
119
- bio: {
120
- type: 'string',
121
- optional: true,
122
- description: 'Short bio',
123
- },
124
- timezone: {
125
- type: 'string',
126
- optional: true,
127
- description: 'Preferred timezone',
128
- },
129
- },
130
- relationships: {
131
- manager: {
132
- type: 'Employee',
133
- required: false,
134
- description: 'Direct manager',
135
- },
136
- directReports: {
137
- type: 'Employee[]',
138
- description: 'Direct reports',
139
- },
140
- team: {
141
- type: 'Team',
142
- required: false,
143
- description: 'Primary team',
144
- },
145
- teams: {
146
- type: 'Team[]',
147
- description: 'All teams',
148
- },
149
- },
150
- actions: [
151
- 'create',
152
- 'update',
153
- 'onboard',
154
- 'offboard',
155
- 'terminate',
156
- 'promote',
157
- 'transfer',
158
- 'updateCompensation',
159
- ],
160
- events: [
161
- 'created',
162
- 'updated',
163
- 'onboarded',
164
- 'offboarded',
165
- 'terminated',
166
- 'promoted',
167
- 'transferred',
168
- 'compensationUpdated',
169
- ],
170
- };
171
- // =============================================================================
172
- // Team
173
- // =============================================================================
174
- /**
175
- * Team entity
176
- *
177
- * Represents a team or group within the organization.
178
- */
179
- export const Team = {
180
- singular: 'team',
181
- plural: 'teams',
182
- description: 'A team or group within the organization',
183
- properties: {
184
- // Identity
185
- name: {
186
- type: 'string',
187
- description: 'Team name',
188
- },
189
- slug: {
190
- type: 'string',
191
- optional: true,
192
- description: 'URL-friendly identifier',
193
- },
194
- description: {
195
- type: 'string',
196
- optional: true,
197
- description: 'Team description',
198
- },
199
- type: {
200
- type: 'string',
201
- optional: true,
202
- description: 'Team type',
203
- examples: ['department', 'project', 'squad', 'working-group', 'committee'],
204
- },
205
- // Status
206
- status: {
207
- type: 'string',
208
- description: 'Team status',
209
- examples: ['active', 'inactive', 'archived'],
210
- },
211
- // Settings
212
- isPrivate: {
213
- type: 'boolean',
214
- optional: true,
215
- description: 'Whether team is private',
216
- },
217
- iconUrl: {
218
- type: 'url',
219
- optional: true,
220
- description: 'Team icon URL',
221
- },
222
- },
223
- relationships: {
224
- lead: {
225
- type: 'Employee',
226
- required: false,
227
- description: 'Team lead',
228
- },
229
- members: {
230
- type: 'Employee[]',
231
- description: 'Team members',
232
- },
233
- parentTeam: {
234
- type: 'Team',
235
- required: false,
236
- description: 'Parent team (for hierarchy)',
237
- },
238
- subteams: {
239
- type: 'Team[]',
240
- description: 'Sub-teams',
241
- },
242
- },
243
- actions: [
244
- 'create',
245
- 'update',
246
- 'archive',
247
- 'addMember',
248
- 'removeMember',
249
- 'setLead',
250
- ],
251
- events: [
252
- 'created',
253
- 'updated',
254
- 'archived',
255
- 'memberAdded',
256
- 'memberRemoved',
257
- 'leadChanged',
258
- ],
259
- };
260
- // =============================================================================
261
- // TimeOff
262
- // =============================================================================
263
- /**
264
- * TimeOff entity
265
- *
266
- * Represents a time off request or record.
267
- */
268
- export const TimeOff = {
269
- singular: 'time-off',
270
- plural: 'time-off-requests',
271
- description: 'A time off request or record',
272
- properties: {
273
- // Type
274
- type: {
275
- type: 'string',
276
- description: 'Time off type',
277
- examples: ['vacation', 'sick', 'personal', 'bereavement', 'parental', 'jury-duty', 'unpaid'],
278
- },
279
- // Status
280
- status: {
281
- type: 'string',
282
- description: 'Request status',
283
- examples: ['pending', 'approved', 'denied', 'cancelled', 'taken'],
284
- },
285
- // Dates
286
- startDate: {
287
- type: 'datetime',
288
- description: 'Start date',
289
- },
290
- endDate: {
291
- type: 'datetime',
292
- description: 'End date',
293
- },
294
- hours: {
295
- type: 'number',
296
- optional: true,
297
- description: 'Total hours requested',
298
- },
299
- // Details
300
- reason: {
301
- type: 'string',
302
- optional: true,
303
- description: 'Reason for time off',
304
- },
305
- notes: {
306
- type: 'string',
307
- optional: true,
308
- description: 'Additional notes',
309
- },
310
- denialReason: {
311
- type: 'string',
312
- optional: true,
313
- description: 'Reason for denial',
314
- },
315
- // Dates
316
- requestedAt: {
317
- type: 'datetime',
318
- description: 'When request was submitted',
319
- },
320
- respondedAt: {
321
- type: 'datetime',
322
- optional: true,
323
- description: 'When request was responded to',
324
- },
325
- },
326
- relationships: {
327
- employee: {
328
- type: 'Employee',
329
- description: 'Employee requesting time off',
330
- },
331
- approver: {
332
- type: 'Employee',
333
- required: false,
334
- description: 'Manager who approved/denied',
335
- },
336
- },
337
- actions: [
338
- 'request',
339
- 'approve',
340
- 'deny',
341
- 'cancel',
342
- 'modify',
343
- ],
344
- events: [
345
- 'requested',
346
- 'approved',
347
- 'denied',
348
- 'cancelled',
349
- 'modified',
350
- ],
351
- };
352
- // =============================================================================
353
- // PerformanceReview
354
- // =============================================================================
355
- /**
356
- * PerformanceReview entity
357
- *
358
- * Represents a performance review or evaluation.
359
- */
360
- export const PerformanceReview = {
361
- singular: 'performance-review',
362
- plural: 'performance-reviews',
363
- description: 'A performance review or evaluation',
364
- properties: {
365
- // Type
366
- type: {
367
- type: 'string',
368
- description: 'Review type',
369
- examples: ['annual', 'semi-annual', 'quarterly', 'probation', '360', 'self'],
370
- },
371
- // Period
372
- periodStart: {
373
- type: 'datetime',
374
- description: 'Review period start',
375
- },
376
- periodEnd: {
377
- type: 'datetime',
378
- description: 'Review period end',
379
- },
380
- // Status
381
- status: {
382
- type: 'string',
383
- description: 'Review status',
384
- examples: ['draft', 'pending-self', 'pending-manager', 'completed', 'acknowledged'],
385
- },
386
- // Ratings
387
- overallRating: {
388
- type: 'number',
389
- optional: true,
390
- description: 'Overall rating (1-5 scale)',
391
- },
392
- ratings: {
393
- type: 'json',
394
- optional: true,
395
- description: 'Detailed ratings by category',
396
- },
397
- // Content
398
- accomplishments: {
399
- type: 'string',
400
- optional: true,
401
- description: 'Key accomplishments',
402
- },
403
- areasForImprovement: {
404
- type: 'string',
405
- optional: true,
406
- description: 'Areas for improvement',
407
- },
408
- goals: {
409
- type: 'json',
410
- optional: true,
411
- description: 'Goals for next period',
412
- },
413
- managerFeedback: {
414
- type: 'string',
415
- optional: true,
416
- description: 'Manager feedback',
417
- },
418
- selfAssessment: {
419
- type: 'string',
420
- optional: true,
421
- description: 'Self assessment',
422
- },
423
- // Dates
424
- dueDate: {
425
- type: 'datetime',
426
- optional: true,
427
- description: 'Due date',
428
- },
429
- completedAt: {
430
- type: 'datetime',
431
- optional: true,
432
- description: 'Completion date',
433
- },
434
- acknowledgedAt: {
435
- type: 'datetime',
436
- optional: true,
437
- description: 'When employee acknowledged',
438
- },
439
- },
440
- relationships: {
441
- employee: {
442
- type: 'Employee',
443
- description: 'Employee being reviewed',
444
- },
445
- reviewer: {
446
- type: 'Employee',
447
- description: 'Manager conducting review',
448
- },
449
- peerReviewers: {
450
- type: 'Employee[]',
451
- description: 'Peer reviewers (for 360)',
452
- },
453
- },
454
- actions: [
455
- 'create',
456
- 'submitSelfAssessment',
457
- 'submitManagerReview',
458
- 'complete',
459
- 'acknowledge',
460
- 'reopen',
461
- ],
462
- events: [
463
- 'created',
464
- 'selfAssessmentSubmitted',
465
- 'managerReviewSubmitted',
466
- 'completed',
467
- 'acknowledged',
468
- 'reopened',
469
- ],
470
- };
471
- // =============================================================================
472
- // Benefit
473
- // =============================================================================
474
- /**
475
- * Benefit entity
476
- *
477
- * Represents an employee benefit enrollment.
478
- */
479
- export const Benefit = {
480
- singular: 'benefit',
481
- plural: 'benefits',
482
- description: 'An employee benefit enrollment',
483
- properties: {
484
- // Type
485
- type: {
486
- type: 'string',
487
- description: 'Benefit type',
488
- examples: ['health', 'dental', 'vision', '401k', 'hsa', 'fsa', 'life', 'disability', 'pto'],
489
- },
490
- plan: {
491
- type: 'string',
492
- optional: true,
493
- description: 'Specific plan name',
494
- },
495
- // Status
496
- status: {
497
- type: 'string',
498
- description: 'Enrollment status',
499
- examples: ['pending', 'active', 'cancelled', 'expired'],
500
- },
501
- // Coverage
502
- coverageLevel: {
503
- type: 'string',
504
- optional: true,
505
- description: 'Coverage level',
506
- examples: ['individual', 'individual-plus-spouse', 'family'],
507
- },
508
- dependents: {
509
- type: 'json',
510
- optional: true,
511
- description: 'Covered dependents',
512
- },
513
- // Cost
514
- employeeContribution: {
515
- type: 'number',
516
- optional: true,
517
- description: 'Employee contribution per pay period',
518
- },
519
- employerContribution: {
520
- type: 'number',
521
- optional: true,
522
- description: 'Employer contribution per pay period',
523
- },
524
- // Dates
525
- effectiveDate: {
526
- type: 'datetime',
527
- description: 'Coverage effective date',
528
- },
529
- endDate: {
530
- type: 'datetime',
531
- optional: true,
532
- description: 'Coverage end date',
533
- },
534
- },
535
- relationships: {
536
- employee: {
537
- type: 'Employee',
538
- description: 'Employee enrolled',
539
- },
540
- },
541
- actions: [
542
- 'enroll',
543
- 'update',
544
- 'cancel',
545
- 'renew',
546
- ],
547
- events: [
548
- 'enrolled',
549
- 'updated',
550
- 'cancelled',
551
- 'renewed',
552
- 'expired',
553
- ],
554
- };
555
- // =============================================================================
556
- // Payroll
557
- // =============================================================================
558
- /**
559
- * Payroll entity
560
- *
561
- * Represents a payroll record or pay stub.
562
- */
563
- export const Payroll = {
564
- singular: 'payroll',
565
- plural: 'payrolls',
566
- description: 'A payroll record or pay stub',
567
- properties: {
568
- // Period
569
- payPeriodStart: {
570
- type: 'datetime',
571
- description: 'Pay period start',
572
- },
573
- payPeriodEnd: {
574
- type: 'datetime',
575
- description: 'Pay period end',
576
- },
577
- payDate: {
578
- type: 'datetime',
579
- description: 'Pay date',
580
- },
581
- // Status
582
- status: {
583
- type: 'string',
584
- description: 'Payroll status',
585
- examples: ['pending', 'processed', 'paid', 'cancelled'],
586
- },
587
- // Earnings
588
- grossPay: {
589
- type: 'number',
590
- description: 'Gross pay',
591
- },
592
- netPay: {
593
- type: 'number',
594
- description: 'Net pay',
595
- },
596
- regularHours: {
597
- type: 'number',
598
- optional: true,
599
- description: 'Regular hours worked',
600
- },
601
- overtimeHours: {
602
- type: 'number',
603
- optional: true,
604
- description: 'Overtime hours worked',
605
- },
606
- // Deductions
607
- deductions: {
608
- type: 'json',
609
- optional: true,
610
- description: 'Itemized deductions',
611
- },
612
- taxes: {
613
- type: 'json',
614
- optional: true,
615
- description: 'Itemized taxes',
616
- },
617
- // Currency
618
- currency: {
619
- type: 'string',
620
- description: 'Currency',
621
- },
622
- },
623
- relationships: {
624
- employee: {
625
- type: 'Employee',
626
- description: 'Employee paid',
627
- },
628
- },
629
- actions: [
630
- 'create',
631
- 'process',
632
- 'approve',
633
- 'cancel',
634
- ],
635
- events: [
636
- 'created',
637
- 'processed',
638
- 'approved',
639
- 'paid',
640
- 'cancelled',
641
- ],
642
- };
643
- // =============================================================================
644
- // Exports
645
- // =============================================================================
646
- export const HREntities = {
647
- Employee,
648
- Team,
649
- TimeOff,
650
- PerformanceReview,
651
- Benefit,
652
- Payroll,
653
- };
654
- export const HRCategories = {
655
- employees: ['Employee'],
656
- teams: ['Team'],
657
- timeOff: ['TimeOff'],
658
- performance: ['PerformanceReview'],
659
- benefits: ['Benefit'],
660
- payroll: ['Payroll'],
661
- };