rotacloud 1.5.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/README.md +23 -13
  2. package/dist/client-builder.d.ts +34 -0
  3. package/dist/client-builder.js +70 -0
  4. package/dist/client-builder.test.js +163 -0
  5. package/dist/endpoint.d.ts +51 -0
  6. package/dist/interfaces/launch-terminal.interface.d.ts +6 -0
  7. package/dist/{mjs/interfaces → interfaces}/leave-request.interface.d.ts +1 -1
  8. package/dist/{cjs/interfaces → interfaces}/leave.interface.d.ts +1 -1
  9. package/dist/{mjs/interfaces → interfaces}/query-params/toil-allowance-query-params.interface.d.ts +1 -0
  10. package/dist/{cjs/interfaces → interfaces}/sdk-config.interface.d.ts +8 -11
  11. package/dist/{mjs/interfaces → interfaces}/shift.interface.d.ts +11 -0
  12. package/dist/interfaces/user-clock-in.interface.d.ts +18 -0
  13. package/dist/interfaces/user-clock-in.interface.js +1 -0
  14. package/dist/{cjs/interfaces → interfaces}/user.interface.d.ts +1 -1
  15. package/dist/interfaces/user.interface.js +1 -0
  16. package/dist/interfaces/users-clocked-in.interface.js +1 -0
  17. package/dist/interfaces/users-clocked-out.interface.js +1 -0
  18. package/dist/main.d.ts +203 -0
  19. package/dist/main.js +6 -0
  20. package/dist/models/SDKError.model.d.ts +15 -0
  21. package/dist/{mjs/models → models}/SDKError.model.js +10 -3
  22. package/dist/ops.d.ts +195 -0
  23. package/dist/ops.js +304 -0
  24. package/dist/ops.test.d.ts +1 -0
  25. package/dist/ops.test.js +101 -0
  26. package/dist/service.d.ts +233 -0
  27. package/dist/service.js +317 -0
  28. package/dist/utils.d.ts +41 -0
  29. package/dist/utils.js +149 -0
  30. package/package.json +19 -20
  31. package/src/client-builder.test.ts +188 -0
  32. package/src/client-builder.ts +118 -0
  33. package/src/endpoint.ts +99 -0
  34. package/src/interfaces/launch-terminal.interface.ts +7 -0
  35. package/src/interfaces/leave-request.interface.ts +1 -1
  36. package/src/interfaces/leave.interface.ts +1 -1
  37. package/src/interfaces/query-params/toil-allowance-query-params.interface.ts +1 -0
  38. package/src/interfaces/sdk-config.interface.ts +11 -14
  39. package/src/interfaces/shift.interface.ts +12 -0
  40. package/src/interfaces/time-zone.interface.ts +6 -6
  41. package/src/interfaces/user-clock-in.interface.ts +20 -0
  42. package/src/interfaces/user.interface.ts +1 -1
  43. package/src/main.ts +7 -0
  44. package/src/models/SDKError.model.ts +8 -8
  45. package/src/ops.test.ts +121 -0
  46. package/src/ops.ts +533 -0
  47. package/src/service.ts +395 -0
  48. package/src/utils.ts +193 -0
  49. package/.eslintignore +0 -5
  50. package/.eslintrc.json +0 -27
  51. package/.gitattributes +0 -1
  52. package/.github/workflows/check.yml +0 -36
  53. package/.github/workflows/publish.yml +0 -44
  54. package/.prettierrc.json +0 -7
  55. package/.vscode/settings.json +0 -4
  56. package/dist/cjs/interfaces/account-service.interface.js +0 -2
  57. package/dist/cjs/interfaces/account-services.interface.js +0 -2
  58. package/dist/cjs/interfaces/account.interface.js +0 -2
  59. package/dist/cjs/interfaces/attendance.interface.js +0 -2
  60. package/dist/cjs/interfaces/auth.interface.js +0 -2
  61. package/dist/cjs/interfaces/availability-pattern.interface.js +0 -2
  62. package/dist/cjs/interfaces/availability.interface.js +0 -2
  63. package/dist/cjs/interfaces/daily-budgets.interface.js +0 -2
  64. package/dist/cjs/interfaces/daily-revenue.interface.js +0 -2
  65. package/dist/cjs/interfaces/day-note.interface.js +0 -2
  66. package/dist/cjs/interfaces/days-off-pattern.interface.js +0 -2
  67. package/dist/cjs/interfaces/days-off.interface.js +0 -2
  68. package/dist/cjs/interfaces/document.interface.js +0 -2
  69. package/dist/cjs/interfaces/drop-request.interface.js +0 -2
  70. package/dist/cjs/interfaces/group.interface.js +0 -2
  71. package/dist/cjs/interfaces/holiday_allowance.interface.js +0 -2
  72. package/dist/cjs/interfaces/index.js +0 -55
  73. package/dist/cjs/interfaces/leave-date.interface.js +0 -2
  74. package/dist/cjs/interfaces/leave-embargo.interface.js +0 -2
  75. package/dist/cjs/interfaces/leave-rate.interface.js +0 -2
  76. package/dist/cjs/interfaces/leave-request.interface.d.ts +0 -23
  77. package/dist/cjs/interfaces/leave-request.interface.js +0 -2
  78. package/dist/cjs/interfaces/leave-type.interface.js +0 -2
  79. package/dist/cjs/interfaces/leave.interface.js +0 -2
  80. package/dist/cjs/interfaces/location-coordinate.interface.js +0 -2
  81. package/dist/cjs/interfaces/location.interface.js +0 -2
  82. package/dist/cjs/interfaces/logbook-category.interface.js +0 -2
  83. package/dist/cjs/interfaces/logbook-event.interface.js +0 -2
  84. package/dist/cjs/interfaces/pay-period.interface.js +0 -2
  85. package/dist/cjs/interfaces/pin.interface.js +0 -2
  86. package/dist/cjs/interfaces/query-params/attendance-query-params.interface.js +0 -2
  87. package/dist/cjs/interfaces/query-params/availability-patterns-query-params.interface.js +0 -2
  88. package/dist/cjs/interfaces/query-params/availability-query-params.interface.js +0 -2
  89. package/dist/cjs/interfaces/query-params/common-shift-times-query-params.interface.js +0 -2
  90. package/dist/cjs/interfaces/query-params/daily-budgets-query-params.interface.js +0 -2
  91. package/dist/cjs/interfaces/query-params/daily-revenue-query-params.interface.js +0 -2
  92. package/dist/cjs/interfaces/query-params/day-notes-query-params.interface.js +0 -2
  93. package/dist/cjs/interfaces/query-params/days-off-patterns-query-params.interface.js +0 -2
  94. package/dist/cjs/interfaces/query-params/days-off-query-params.interface.js +0 -2
  95. package/dist/cjs/interfaces/query-params/documents-query-params.interface.js +0 -2
  96. package/dist/cjs/interfaces/query-params/groups-query-params.interface.js +0 -2
  97. package/dist/cjs/interfaces/query-params/index.js +0 -42
  98. package/dist/cjs/interfaces/query-params/leave-embargoes-query-params.interface.js +0 -2
  99. package/dist/cjs/interfaces/query-params/leave-query-params.interface.js +0 -2
  100. package/dist/cjs/interfaces/query-params/leave-requests-query-params.interface.js +0 -2
  101. package/dist/cjs/interfaces/query-params/locations-query-params.interface.js +0 -2
  102. package/dist/cjs/interfaces/query-params/logbook-events-query-params.interface.js +0 -2
  103. package/dist/cjs/interfaces/query-params/pay-periods-query-params.interface.js +0 -2
  104. package/dist/cjs/interfaces/query-params/roles-query-params.interface.js +0 -2
  105. package/dist/cjs/interfaces/query-params/settings-query-params.interface.js +0 -2
  106. package/dist/cjs/interfaces/query-params/shifts-query-params.interface.js +0 -2
  107. package/dist/cjs/interfaces/query-params/swap-requests-query-params.interface.js +0 -2
  108. package/dist/cjs/interfaces/query-params/terminals-query-params.interface.js +0 -2
  109. package/dist/cjs/interfaces/query-params/toil-accruals-query-params.interface.js +0 -2
  110. package/dist/cjs/interfaces/query-params/toil-allowance-query-params.interface.d.ts +0 -3
  111. package/dist/cjs/interfaces/query-params/toil-allowance-query-params.interface.js +0 -2
  112. package/dist/cjs/interfaces/query-params/unavailability-requests-query-params.interface.js +0 -2
  113. package/dist/cjs/interfaces/query-params/users-query-params.interface.js +0 -2
  114. package/dist/cjs/interfaces/role-rate.interface.js +0 -2
  115. package/dist/cjs/interfaces/role.interface.js +0 -2
  116. package/dist/cjs/interfaces/sdk-config.interface.js +0 -8
  117. package/dist/cjs/interfaces/settings.interface.js +0 -2
  118. package/dist/cjs/interfaces/shift.interface.d.ts +0 -25
  119. package/dist/cjs/interfaces/shift.interface.js +0 -2
  120. package/dist/cjs/interfaces/swap-request.interface.js +0 -2
  121. package/dist/cjs/interfaces/terminal.interface.js +0 -2
  122. package/dist/cjs/interfaces/time-zone.interface.js +0 -2
  123. package/dist/cjs/interfaces/toil-accrual.interface.js +0 -2
  124. package/dist/cjs/interfaces/toil-allowance.interface.js +0 -2
  125. package/dist/cjs/interfaces/user.interface.js +0 -2
  126. package/dist/cjs/interfaces/users-clocked-in.interface.js +0 -2
  127. package/dist/cjs/interfaces/users-clocked-out.interface.js +0 -2
  128. package/dist/cjs/models/SDKError.model.d.ts +0 -11
  129. package/dist/cjs/models/SDKError.model.js +0 -15
  130. package/dist/cjs/models/index.js +0 -17
  131. package/dist/cjs/package.json +0 -3
  132. package/dist/cjs/rotacloud.d.ts +0 -47
  133. package/dist/cjs/rotacloud.js +0 -166
  134. package/dist/cjs/services/accounts.service.d.ts +0 -33
  135. package/dist/cjs/services/accounts.service.js +0 -83
  136. package/dist/cjs/services/attendance.service.d.ts +0 -51
  137. package/dist/cjs/services/attendance.service.js +0 -102
  138. package/dist/cjs/services/auth.service.d.ts +0 -10
  139. package/dist/cjs/services/auth.service.js +0 -14
  140. package/dist/cjs/services/availability.service.d.ts +0 -25
  141. package/dist/cjs/services/availability.service.js +0 -69
  142. package/dist/cjs/services/daily-budgets.service.d.ts +0 -27
  143. package/dist/cjs/services/daily-budgets.service.js +0 -87
  144. package/dist/cjs/services/daily-revenue.service.d.ts +0 -27
  145. package/dist/cjs/services/daily-revenue.service.js +0 -87
  146. package/dist/cjs/services/day-notes.service.d.ts +0 -49
  147. package/dist/cjs/services/day-notes.service.js +0 -102
  148. package/dist/cjs/services/days-off.service.d.ts +0 -32
  149. package/dist/cjs/services/days-off.service.js +0 -102
  150. package/dist/cjs/services/documents.service.d.ts +0 -73
  151. package/dist/cjs/services/documents.service.js +0 -125
  152. package/dist/cjs/services/groups.service.d.ts +0 -51
  153. package/dist/cjs/services/groups.service.js +0 -102
  154. package/dist/cjs/services/index.d.ts +0 -25
  155. package/dist/cjs/services/index.js +0 -41
  156. package/dist/cjs/services/leave-embargoes.service.d.ts +0 -51
  157. package/dist/cjs/services/leave-embargoes.service.js +0 -102
  158. package/dist/cjs/services/leave-request.service.d.ts +0 -51
  159. package/dist/cjs/services/leave-request.service.js +0 -106
  160. package/dist/cjs/services/leave-types.service.d.ts +0 -11
  161. package/dist/cjs/services/leave-types.service.js +0 -16
  162. package/dist/cjs/services/leave.service.d.ts +0 -51
  163. package/dist/cjs/services/leave.service.js +0 -102
  164. package/dist/cjs/services/locations.service.d.ts +0 -51
  165. package/dist/cjs/services/locations.service.js +0 -102
  166. package/dist/cjs/services/pins.service.d.ts +0 -18
  167. package/dist/cjs/services/pins.service.js +0 -16
  168. package/dist/cjs/services/roles.service.d.ts +0 -51
  169. package/dist/cjs/services/roles.service.js +0 -102
  170. package/dist/cjs/services/service.d.ts +0 -47
  171. package/dist/cjs/services/service.js +0 -149
  172. package/dist/cjs/services/settings.service.d.ts +0 -12
  173. package/dist/cjs/services/settings.service.js +0 -16
  174. package/dist/cjs/services/shifts.service.d.ts +0 -120
  175. package/dist/cjs/services/shifts.service.js +0 -154
  176. package/dist/cjs/services/terminals-active.service.d.ts +0 -46
  177. package/dist/cjs/services/terminals-active.service.js +0 -97
  178. package/dist/cjs/services/terminals.service.d.ts +0 -50
  179. package/dist/cjs/services/terminals.service.js +0 -102
  180. package/dist/cjs/services/time-zone.service.d.ts +0 -14
  181. package/dist/cjs/services/time-zone.service.js +0 -83
  182. package/dist/cjs/services/toil-accruals.service.d.ts +0 -27
  183. package/dist/cjs/services/toil-accruals.service.js +0 -93
  184. package/dist/cjs/services/toil-allowance.service.d.ts +0 -9
  185. package/dist/cjs/services/toil-allowance.service.js +0 -78
  186. package/dist/cjs/services/users-clock-in.service.d.ts +0 -66
  187. package/dist/cjs/services/users-clock-in.service.js +0 -113
  188. package/dist/cjs/services/users.service.d.ts +0 -51
  189. package/dist/cjs/services/users.service.js +0 -102
  190. package/dist/cjs/version.d.ts +0 -3
  191. package/dist/cjs/version.js +0 -4
  192. package/dist/mjs/interfaces/account-service.interface.d.ts +0 -6
  193. package/dist/mjs/interfaces/account-services.interface.d.ts +0 -6
  194. package/dist/mjs/interfaces/account.interface.d.ts +0 -40
  195. package/dist/mjs/interfaces/attendance.interface.d.ts +0 -31
  196. package/dist/mjs/interfaces/auth.interface.d.ts +0 -8
  197. package/dist/mjs/interfaces/availability-pattern.interface.d.ts +0 -20
  198. package/dist/mjs/interfaces/availability.interface.d.ts +0 -13
  199. package/dist/mjs/interfaces/daily-budgets.interface.d.ts +0 -6
  200. package/dist/mjs/interfaces/daily-revenue.interface.d.ts +0 -7
  201. package/dist/mjs/interfaces/day-note.interface.d.ts +0 -9
  202. package/dist/mjs/interfaces/days-off-pattern.interface.d.ts +0 -13
  203. package/dist/mjs/interfaces/days-off.interface.d.ts +0 -8
  204. package/dist/mjs/interfaces/document.interface.d.ts +0 -36
  205. package/dist/mjs/interfaces/drop-request.interface.d.ts +0 -13
  206. package/dist/mjs/interfaces/group.interface.d.ts +0 -7
  207. package/dist/mjs/interfaces/holiday_allowance.interface.d.ts +0 -11
  208. package/dist/mjs/interfaces/index.d.ts +0 -39
  209. package/dist/mjs/interfaces/leave-date.interface.d.ts +0 -8
  210. package/dist/mjs/interfaces/leave-embargo.interface.d.ts +0 -10
  211. package/dist/mjs/interfaces/leave-rate.interface.d.ts +0 -3
  212. package/dist/mjs/interfaces/leave-type.interface.d.ts +0 -8
  213. package/dist/mjs/interfaces/leave.interface.d.ts +0 -8
  214. package/dist/mjs/interfaces/location-coordinate.interface.d.ts +0 -5
  215. package/dist/mjs/interfaces/location.interface.d.ts +0 -13
  216. package/dist/mjs/interfaces/logbook-category.interface.d.ts +0 -5
  217. package/dist/mjs/interfaces/logbook-event.interface.d.ts +0 -16
  218. package/dist/mjs/interfaces/pay-period.interface.d.ts +0 -16
  219. package/dist/mjs/interfaces/pin.interface.d.ts +0 -3
  220. package/dist/mjs/interfaces/query-params/attendance-query-params.interface.d.ts +0 -9
  221. package/dist/mjs/interfaces/query-params/availability-patterns-query-params.interface.d.ts +0 -5
  222. package/dist/mjs/interfaces/query-params/availability-query-params.interface.d.ts +0 -12
  223. package/dist/mjs/interfaces/query-params/common-shift-times-query-params.interface.d.ts +0 -3
  224. package/dist/mjs/interfaces/query-params/daily-budgets-query-params.interface.d.ts +0 -5
  225. package/dist/mjs/interfaces/query-params/daily-revenue-query-params.interface.d.ts +0 -5
  226. package/dist/mjs/interfaces/query-params/day-notes-query-params.interface.d.ts +0 -5
  227. package/dist/mjs/interfaces/query-params/days-off-patterns-query-params.interface.d.ts +0 -5
  228. package/dist/mjs/interfaces/query-params/days-off-query-params.interface.d.ts +0 -5
  229. package/dist/mjs/interfaces/query-params/documents-query-params.interface.d.ts +0 -4
  230. package/dist/mjs/interfaces/query-params/groups-query-params.interface.d.ts +0 -3
  231. package/dist/mjs/interfaces/query-params/index.d.ts +0 -26
  232. package/dist/mjs/interfaces/query-params/leave-embargoes-query-params.interface.d.ts +0 -5
  233. package/dist/mjs/interfaces/query-params/leave-query-params.interface.d.ts +0 -13
  234. package/dist/mjs/interfaces/query-params/leave-requests-query-params.interface.d.ts +0 -4
  235. package/dist/mjs/interfaces/query-params/locations-query-params.interface.d.ts +0 -7
  236. package/dist/mjs/interfaces/query-params/logbook-events-query-params.interface.d.ts +0 -3
  237. package/dist/mjs/interfaces/query-params/pay-periods-query-params.interface.d.ts +0 -4
  238. package/dist/mjs/interfaces/query-params/roles-query-params.interface.d.ts +0 -5
  239. package/dist/mjs/interfaces/query-params/settings-query-params.interface.d.ts +0 -3
  240. package/dist/mjs/interfaces/query-params/shifts-query-params.interface.d.ts +0 -14
  241. package/dist/mjs/interfaces/query-params/swap-requests-query-params.interface.d.ts +0 -8
  242. package/dist/mjs/interfaces/query-params/terminals-query-params.interface.d.ts +0 -3
  243. package/dist/mjs/interfaces/query-params/toil-accruals-query-params.interface.d.ts +0 -4
  244. package/dist/mjs/interfaces/query-params/unavailability-requests-query-params.interface.d.ts +0 -8
  245. package/dist/mjs/interfaces/query-params/users-query-params.interface.d.ts +0 -24
  246. package/dist/mjs/interfaces/role-rate.interface.d.ts +0 -6
  247. package/dist/mjs/interfaces/role.interface.d.ts +0 -9
  248. package/dist/mjs/interfaces/sdk-config.interface.d.ts +0 -47
  249. package/dist/mjs/interfaces/settings.interface.d.ts +0 -64
  250. package/dist/mjs/interfaces/swap-request.interface.d.ts +0 -16
  251. package/dist/mjs/interfaces/terminal.interface.d.ts +0 -23
  252. package/dist/mjs/interfaces/time-zone.interface.d.ts +0 -7
  253. package/dist/mjs/interfaces/toil-accrual.interface.d.ts +0 -14
  254. package/dist/mjs/interfaces/toil-allowance.interface.d.ts +0 -7
  255. package/dist/mjs/interfaces/user.interface.d.ts +0 -48
  256. package/dist/mjs/interfaces/users-clocked-in.interface.d.ts +0 -14
  257. package/dist/mjs/interfaces/users-clocked-out.interface.d.ts +0 -26
  258. package/dist/mjs/models/SDKError.model.d.ts +0 -11
  259. package/dist/mjs/models/index.d.ts +0 -1
  260. package/dist/mjs/package.json +0 -3
  261. package/dist/mjs/rotacloud.d.ts +0 -47
  262. package/dist/mjs/rotacloud.js +0 -133
  263. package/dist/mjs/services/accounts.service.d.ts +0 -33
  264. package/dist/mjs/services/accounts.service.js +0 -25
  265. package/dist/mjs/services/attendance.service.d.ts +0 -51
  266. package/dist/mjs/services/attendance.service.js +0 -44
  267. package/dist/mjs/services/auth.service.d.ts +0 -10
  268. package/dist/mjs/services/auth.service.js +0 -10
  269. package/dist/mjs/services/availability.service.d.ts +0 -25
  270. package/dist/mjs/services/availability.service.js +0 -35
  271. package/dist/mjs/services/daily-budgets.service.d.ts +0 -27
  272. package/dist/mjs/services/daily-budgets.service.js +0 -29
  273. package/dist/mjs/services/daily-revenue.service.d.ts +0 -27
  274. package/dist/mjs/services/daily-revenue.service.js +0 -29
  275. package/dist/mjs/services/day-notes.service.d.ts +0 -49
  276. package/dist/mjs/services/day-notes.service.js +0 -44
  277. package/dist/mjs/services/days-off.service.d.ts +0 -32
  278. package/dist/mjs/services/days-off.service.js +0 -44
  279. package/dist/mjs/services/documents.service.d.ts +0 -73
  280. package/dist/mjs/services/documents.service.js +0 -67
  281. package/dist/mjs/services/groups.service.d.ts +0 -51
  282. package/dist/mjs/services/groups.service.js +0 -44
  283. package/dist/mjs/services/index.d.ts +0 -25
  284. package/dist/mjs/services/index.js +0 -25
  285. package/dist/mjs/services/leave-embargoes.service.d.ts +0 -51
  286. package/dist/mjs/services/leave-embargoes.service.js +0 -44
  287. package/dist/mjs/services/leave-request.service.d.ts +0 -51
  288. package/dist/mjs/services/leave-request.service.js +0 -48
  289. package/dist/mjs/services/leave-types.service.d.ts +0 -11
  290. package/dist/mjs/services/leave-types.service.js +0 -12
  291. package/dist/mjs/services/leave.service.d.ts +0 -51
  292. package/dist/mjs/services/leave.service.js +0 -44
  293. package/dist/mjs/services/locations.service.d.ts +0 -51
  294. package/dist/mjs/services/locations.service.js +0 -44
  295. package/dist/mjs/services/pins.service.d.ts +0 -18
  296. package/dist/mjs/services/pins.service.js +0 -12
  297. package/dist/mjs/services/roles.service.d.ts +0 -51
  298. package/dist/mjs/services/roles.service.js +0 -44
  299. package/dist/mjs/services/service.d.ts +0 -47
  300. package/dist/mjs/services/service.js +0 -101
  301. package/dist/mjs/services/settings.service.d.ts +0 -12
  302. package/dist/mjs/services/settings.service.js +0 -12
  303. package/dist/mjs/services/shifts.service.d.ts +0 -120
  304. package/dist/mjs/services/shifts.service.js +0 -96
  305. package/dist/mjs/services/terminals-active.service.d.ts +0 -46
  306. package/dist/mjs/services/terminals-active.service.js +0 -39
  307. package/dist/mjs/services/terminals.service.d.ts +0 -50
  308. package/dist/mjs/services/terminals.service.js +0 -44
  309. package/dist/mjs/services/time-zone.service.d.ts +0 -14
  310. package/dist/mjs/services/time-zone.service.js +0 -25
  311. package/dist/mjs/services/toil-accruals.service.d.ts +0 -27
  312. package/dist/mjs/services/toil-accruals.service.js +0 -35
  313. package/dist/mjs/services/toil-allowance.service.d.ts +0 -9
  314. package/dist/mjs/services/toil-allowance.service.js +0 -20
  315. package/dist/mjs/services/users-clock-in.service.d.ts +0 -66
  316. package/dist/mjs/services/users-clock-in.service.js +0 -47
  317. package/dist/mjs/services/users.service.d.ts +0 -51
  318. package/dist/mjs/services/users.service.js +0 -44
  319. package/dist/mjs/version.d.ts +0 -3
  320. package/dist/mjs/version.js +0 -1
  321. package/fixup +0 -12
  322. package/src/rotacloud.ts +0 -207
  323. package/src/services/accounts.service.ts +0 -52
  324. package/src/services/attendance.service.ts +0 -106
  325. package/src/services/auth.service.ts +0 -13
  326. package/src/services/availability.service.ts +0 -58
  327. package/src/services/daily-budgets.service.ts +0 -65
  328. package/src/services/daily-revenue.service.ts +0 -62
  329. package/src/services/day-notes.service.ts +0 -98
  330. package/src/services/days-off.service.ts +0 -85
  331. package/src/services/documents.service.ts +0 -142
  332. package/src/services/groups.service.ts +0 -97
  333. package/src/services/index.ts +0 -25
  334. package/src/services/leave-embargoes.service.ts +0 -106
  335. package/src/services/leave-request.service.ts +0 -113
  336. package/src/services/leave-types.service.ts +0 -16
  337. package/src/services/leave.service.ts +0 -100
  338. package/src/services/locations.service.ts +0 -106
  339. package/src/services/pins.service.ts +0 -21
  340. package/src/services/roles.service.ts +0 -96
  341. package/src/services/service.ts +0 -168
  342. package/src/services/settings.service.ts +0 -19
  343. package/src/services/shifts.service.ts +0 -200
  344. package/src/services/terminals-active.service.ts +0 -85
  345. package/src/services/terminals.service.ts +0 -93
  346. package/src/services/time-zone.service.ts +0 -34
  347. package/src/services/toil-accruals.service.ts +0 -56
  348. package/src/services/toil-allowance.service.ts +0 -23
  349. package/src/services/users-clock-in.service.ts +0 -130
  350. package/src/services/users.service.ts +0 -96
  351. package/src/version.ts +0 -1
  352. package/tsconfig-base.json +0 -98
  353. package/tsconfig-cjs.json +0 -8
  354. package/tsconfig.json +0 -8
  355. /package/dist/{mjs/interfaces/account-service.interface.js → client-builder.test.d.ts} +0 -0
  356. /package/dist/{mjs/interfaces/account-services.interface.js → endpoint.js} +0 -0
  357. /package/dist/{cjs/interfaces → interfaces}/account-service.interface.d.ts +0 -0
  358. /package/dist/{mjs/interfaces/account.interface.js → interfaces/account-service.interface.js} +0 -0
  359. /package/dist/{cjs/interfaces → interfaces}/account-services.interface.d.ts +0 -0
  360. /package/dist/{mjs/interfaces/attendance.interface.js → interfaces/account-services.interface.js} +0 -0
  361. /package/dist/{cjs/interfaces → interfaces}/account.interface.d.ts +0 -0
  362. /package/dist/{mjs/interfaces/auth.interface.js → interfaces/account.interface.js} +0 -0
  363. /package/dist/{cjs/interfaces → interfaces}/attendance.interface.d.ts +0 -0
  364. /package/dist/{mjs/interfaces/availability-pattern.interface.js → interfaces/attendance.interface.js} +0 -0
  365. /package/dist/{cjs/interfaces → interfaces}/auth.interface.d.ts +0 -0
  366. /package/dist/{mjs/interfaces/availability.interface.js → interfaces/auth.interface.js} +0 -0
  367. /package/dist/{cjs/interfaces → interfaces}/availability-pattern.interface.d.ts +0 -0
  368. /package/dist/{mjs/interfaces/daily-budgets.interface.js → interfaces/availability-pattern.interface.js} +0 -0
  369. /package/dist/{cjs/interfaces → interfaces}/availability.interface.d.ts +0 -0
  370. /package/dist/{mjs/interfaces/daily-revenue.interface.js → interfaces/availability.interface.js} +0 -0
  371. /package/dist/{cjs/interfaces → interfaces}/daily-budgets.interface.d.ts +0 -0
  372. /package/dist/{mjs/interfaces/day-note.interface.js → interfaces/daily-budgets.interface.js} +0 -0
  373. /package/dist/{cjs/interfaces → interfaces}/daily-revenue.interface.d.ts +0 -0
  374. /package/dist/{mjs/interfaces/days-off-pattern.interface.js → interfaces/daily-revenue.interface.js} +0 -0
  375. /package/dist/{cjs/interfaces → interfaces}/day-note.interface.d.ts +0 -0
  376. /package/dist/{mjs/interfaces/days-off.interface.js → interfaces/day-note.interface.js} +0 -0
  377. /package/dist/{cjs/interfaces → interfaces}/days-off-pattern.interface.d.ts +0 -0
  378. /package/dist/{mjs/interfaces/document.interface.js → interfaces/days-off-pattern.interface.js} +0 -0
  379. /package/dist/{cjs/interfaces → interfaces}/days-off.interface.d.ts +0 -0
  380. /package/dist/{mjs/interfaces/drop-request.interface.js → interfaces/days-off.interface.js} +0 -0
  381. /package/dist/{cjs/interfaces → interfaces}/document.interface.d.ts +0 -0
  382. /package/dist/{mjs/interfaces/group.interface.js → interfaces/document.interface.js} +0 -0
  383. /package/dist/{cjs/interfaces → interfaces}/drop-request.interface.d.ts +0 -0
  384. /package/dist/{mjs/interfaces/holiday_allowance.interface.js → interfaces/drop-request.interface.js} +0 -0
  385. /package/dist/{cjs/interfaces → interfaces}/group.interface.d.ts +0 -0
  386. /package/dist/{mjs/interfaces/leave-date.interface.js → interfaces/group.interface.js} +0 -0
  387. /package/dist/{cjs/interfaces → interfaces}/holiday_allowance.interface.d.ts +0 -0
  388. /package/dist/{mjs/interfaces/leave-embargo.interface.js → interfaces/holiday_allowance.interface.js} +0 -0
  389. /package/dist/{cjs/interfaces → interfaces}/index.d.ts +0 -0
  390. /package/dist/{mjs/interfaces → interfaces}/index.js +0 -0
  391. /package/dist/{mjs/interfaces/leave-rate.interface.js → interfaces/launch-terminal.interface.js} +0 -0
  392. /package/dist/{cjs/interfaces → interfaces}/leave-date.interface.d.ts +0 -0
  393. /package/dist/{mjs/interfaces/leave-request.interface.js → interfaces/leave-date.interface.js} +0 -0
  394. /package/dist/{cjs/interfaces → interfaces}/leave-embargo.interface.d.ts +0 -0
  395. /package/dist/{mjs/interfaces/leave-type.interface.js → interfaces/leave-embargo.interface.js} +0 -0
  396. /package/dist/{cjs/interfaces → interfaces}/leave-rate.interface.d.ts +0 -0
  397. /package/dist/{mjs/interfaces/leave.interface.js → interfaces/leave-rate.interface.js} +0 -0
  398. /package/dist/{mjs/interfaces/location-coordinate.interface.js → interfaces/leave-request.interface.js} +0 -0
  399. /package/dist/{cjs/interfaces → interfaces}/leave-type.interface.d.ts +0 -0
  400. /package/dist/{mjs/interfaces/location.interface.js → interfaces/leave-type.interface.js} +0 -0
  401. /package/dist/{mjs/interfaces/logbook-category.interface.js → interfaces/leave.interface.js} +0 -0
  402. /package/dist/{cjs/interfaces → interfaces}/location-coordinate.interface.d.ts +0 -0
  403. /package/dist/{mjs/interfaces/logbook-event.interface.js → interfaces/location-coordinate.interface.js} +0 -0
  404. /package/dist/{cjs/interfaces → interfaces}/location.interface.d.ts +0 -0
  405. /package/dist/{mjs/interfaces/pay-period.interface.js → interfaces/location.interface.js} +0 -0
  406. /package/dist/{cjs/interfaces → interfaces}/logbook-category.interface.d.ts +0 -0
  407. /package/dist/{mjs/interfaces/pin.interface.js → interfaces/logbook-category.interface.js} +0 -0
  408. /package/dist/{cjs/interfaces → interfaces}/logbook-event.interface.d.ts +0 -0
  409. /package/dist/{mjs/interfaces/query-params/attendance-query-params.interface.js → interfaces/logbook-event.interface.js} +0 -0
  410. /package/dist/{cjs/interfaces → interfaces}/pay-period.interface.d.ts +0 -0
  411. /package/dist/{mjs/interfaces/query-params/availability-patterns-query-params.interface.js → interfaces/pay-period.interface.js} +0 -0
  412. /package/dist/{cjs/interfaces → interfaces}/pin.interface.d.ts +0 -0
  413. /package/dist/{mjs/interfaces/query-params/availability-query-params.interface.js → interfaces/pin.interface.js} +0 -0
  414. /package/dist/{cjs/interfaces → interfaces}/query-params/attendance-query-params.interface.d.ts +0 -0
  415. /package/dist/{mjs/interfaces/query-params/common-shift-times-query-params.interface.js → interfaces/query-params/attendance-query-params.interface.js} +0 -0
  416. /package/dist/{cjs/interfaces → interfaces}/query-params/availability-patterns-query-params.interface.d.ts +0 -0
  417. /package/dist/{mjs/interfaces/query-params/daily-budgets-query-params.interface.js → interfaces/query-params/availability-patterns-query-params.interface.js} +0 -0
  418. /package/dist/{cjs/interfaces → interfaces}/query-params/availability-query-params.interface.d.ts +0 -0
  419. /package/dist/{mjs/interfaces/query-params/daily-revenue-query-params.interface.js → interfaces/query-params/availability-query-params.interface.js} +0 -0
  420. /package/dist/{cjs/interfaces → interfaces}/query-params/common-shift-times-query-params.interface.d.ts +0 -0
  421. /package/dist/{mjs/interfaces/query-params/day-notes-query-params.interface.js → interfaces/query-params/common-shift-times-query-params.interface.js} +0 -0
  422. /package/dist/{cjs/interfaces → interfaces}/query-params/daily-budgets-query-params.interface.d.ts +0 -0
  423. /package/dist/{mjs/interfaces/query-params/days-off-patterns-query-params.interface.js → interfaces/query-params/daily-budgets-query-params.interface.js} +0 -0
  424. /package/dist/{cjs/interfaces → interfaces}/query-params/daily-revenue-query-params.interface.d.ts +0 -0
  425. /package/dist/{mjs/interfaces/query-params/days-off-query-params.interface.js → interfaces/query-params/daily-revenue-query-params.interface.js} +0 -0
  426. /package/dist/{cjs/interfaces → interfaces}/query-params/day-notes-query-params.interface.d.ts +0 -0
  427. /package/dist/{mjs/interfaces/query-params/documents-query-params.interface.js → interfaces/query-params/day-notes-query-params.interface.js} +0 -0
  428. /package/dist/{cjs/interfaces → interfaces}/query-params/days-off-patterns-query-params.interface.d.ts +0 -0
  429. /package/dist/{mjs/interfaces/query-params/groups-query-params.interface.js → interfaces/query-params/days-off-patterns-query-params.interface.js} +0 -0
  430. /package/dist/{cjs/interfaces → interfaces}/query-params/days-off-query-params.interface.d.ts +0 -0
  431. /package/dist/{mjs/interfaces/query-params/leave-embargoes-query-params.interface.js → interfaces/query-params/days-off-query-params.interface.js} +0 -0
  432. /package/dist/{cjs/interfaces → interfaces}/query-params/documents-query-params.interface.d.ts +0 -0
  433. /package/dist/{mjs/interfaces/query-params/leave-query-params.interface.js → interfaces/query-params/documents-query-params.interface.js} +0 -0
  434. /package/dist/{cjs/interfaces → interfaces}/query-params/groups-query-params.interface.d.ts +0 -0
  435. /package/dist/{mjs/interfaces/query-params/leave-requests-query-params.interface.js → interfaces/query-params/groups-query-params.interface.js} +0 -0
  436. /package/dist/{cjs/interfaces → interfaces}/query-params/index.d.ts +0 -0
  437. /package/dist/{mjs/interfaces → interfaces}/query-params/index.js +0 -0
  438. /package/dist/{cjs/interfaces → interfaces}/query-params/leave-embargoes-query-params.interface.d.ts +0 -0
  439. /package/dist/{mjs/interfaces/query-params/locations-query-params.interface.js → interfaces/query-params/leave-embargoes-query-params.interface.js} +0 -0
  440. /package/dist/{cjs/interfaces → interfaces}/query-params/leave-query-params.interface.d.ts +0 -0
  441. /package/dist/{mjs/interfaces/query-params/logbook-events-query-params.interface.js → interfaces/query-params/leave-query-params.interface.js} +0 -0
  442. /package/dist/{cjs/interfaces → interfaces}/query-params/leave-requests-query-params.interface.d.ts +0 -0
  443. /package/dist/{mjs/interfaces/query-params/pay-periods-query-params.interface.js → interfaces/query-params/leave-requests-query-params.interface.js} +0 -0
  444. /package/dist/{cjs/interfaces → interfaces}/query-params/locations-query-params.interface.d.ts +0 -0
  445. /package/dist/{mjs/interfaces/query-params/roles-query-params.interface.js → interfaces/query-params/locations-query-params.interface.js} +0 -0
  446. /package/dist/{cjs/interfaces → interfaces}/query-params/logbook-events-query-params.interface.d.ts +0 -0
  447. /package/dist/{mjs/interfaces/query-params/settings-query-params.interface.js → interfaces/query-params/logbook-events-query-params.interface.js} +0 -0
  448. /package/dist/{cjs/interfaces → interfaces}/query-params/pay-periods-query-params.interface.d.ts +0 -0
  449. /package/dist/{mjs/interfaces/query-params/shifts-query-params.interface.js → interfaces/query-params/pay-periods-query-params.interface.js} +0 -0
  450. /package/dist/{cjs/interfaces → interfaces}/query-params/roles-query-params.interface.d.ts +0 -0
  451. /package/dist/{mjs/interfaces/query-params/swap-requests-query-params.interface.js → interfaces/query-params/roles-query-params.interface.js} +0 -0
  452. /package/dist/{cjs/interfaces → interfaces}/query-params/settings-query-params.interface.d.ts +0 -0
  453. /package/dist/{mjs/interfaces/query-params/terminals-query-params.interface.js → interfaces/query-params/settings-query-params.interface.js} +0 -0
  454. /package/dist/{cjs/interfaces → interfaces}/query-params/shifts-query-params.interface.d.ts +0 -0
  455. /package/dist/{mjs/interfaces/query-params/toil-accruals-query-params.interface.js → interfaces/query-params/shifts-query-params.interface.js} +0 -0
  456. /package/dist/{cjs/interfaces → interfaces}/query-params/swap-requests-query-params.interface.d.ts +0 -0
  457. /package/dist/{mjs/interfaces/query-params/toil-allowance-query-params.interface.js → interfaces/query-params/swap-requests-query-params.interface.js} +0 -0
  458. /package/dist/{cjs/interfaces → interfaces}/query-params/terminals-query-params.interface.d.ts +0 -0
  459. /package/dist/{mjs/interfaces/query-params/unavailability-requests-query-params.interface.js → interfaces/query-params/terminals-query-params.interface.js} +0 -0
  460. /package/dist/{cjs/interfaces → interfaces}/query-params/toil-accruals-query-params.interface.d.ts +0 -0
  461. /package/dist/{mjs/interfaces/query-params/users-query-params.interface.js → interfaces/query-params/toil-accruals-query-params.interface.js} +0 -0
  462. /package/dist/{mjs/interfaces/role-rate.interface.js → interfaces/query-params/toil-allowance-query-params.interface.js} +0 -0
  463. /package/dist/{cjs/interfaces → interfaces}/query-params/unavailability-requests-query-params.interface.d.ts +0 -0
  464. /package/dist/{mjs/interfaces/role.interface.js → interfaces/query-params/unavailability-requests-query-params.interface.js} +0 -0
  465. /package/dist/{cjs/interfaces → interfaces}/query-params/users-query-params.interface.d.ts +0 -0
  466. /package/dist/{mjs/interfaces/settings.interface.js → interfaces/query-params/users-query-params.interface.js} +0 -0
  467. /package/dist/{cjs/interfaces → interfaces}/role-rate.interface.d.ts +0 -0
  468. /package/dist/{mjs/interfaces/shift.interface.js → interfaces/role-rate.interface.js} +0 -0
  469. /package/dist/{cjs/interfaces → interfaces}/role.interface.d.ts +0 -0
  470. /package/dist/{mjs/interfaces/swap-request.interface.js → interfaces/role.interface.js} +0 -0
  471. /package/dist/{mjs/interfaces → interfaces}/sdk-config.interface.js +0 -0
  472. /package/dist/{cjs/interfaces → interfaces}/settings.interface.d.ts +0 -0
  473. /package/dist/{mjs/interfaces/terminal.interface.js → interfaces/settings.interface.js} +0 -0
  474. /package/dist/{mjs/interfaces/time-zone.interface.js → interfaces/shift.interface.js} +0 -0
  475. /package/dist/{cjs/interfaces → interfaces}/swap-request.interface.d.ts +0 -0
  476. /package/dist/{mjs/interfaces/toil-accrual.interface.js → interfaces/swap-request.interface.js} +0 -0
  477. /package/dist/{cjs/interfaces → interfaces}/terminal.interface.d.ts +0 -0
  478. /package/dist/{mjs/interfaces/toil-allowance.interface.js → interfaces/terminal.interface.js} +0 -0
  479. /package/dist/{cjs/interfaces → interfaces}/time-zone.interface.d.ts +0 -0
  480. /package/dist/{mjs/interfaces/user.interface.js → interfaces/time-zone.interface.js} +0 -0
  481. /package/dist/{cjs/interfaces → interfaces}/toil-accrual.interface.d.ts +0 -0
  482. /package/dist/{mjs/interfaces/users-clocked-in.interface.js → interfaces/toil-accrual.interface.js} +0 -0
  483. /package/dist/{cjs/interfaces → interfaces}/toil-allowance.interface.d.ts +0 -0
  484. /package/dist/{mjs/interfaces/users-clocked-out.interface.js → interfaces/toil-allowance.interface.js} +0 -0
  485. /package/dist/{cjs/interfaces → interfaces}/users-clocked-in.interface.d.ts +0 -0
  486. /package/dist/{cjs/interfaces → interfaces}/users-clocked-out.interface.d.ts +0 -0
  487. /package/dist/{cjs/models → models}/index.d.ts +0 -0
  488. /package/dist/{mjs/models → models}/index.js +0 -0
@@ -0,0 +1,317 @@
1
+ import { listAllOp, listOp, paramsFromOptions } from './ops.js';
2
+ /**
3
+ * Map of all officially supported service specifications used to generate the
4
+ * SDK client where each key is the service name and each value is the service
5
+ * definition conforming to the {@see ServiceSpecification} type
6
+ */
7
+ export const SERVICES = {
8
+ account: {
9
+ endpoint: 'accounts',
10
+ endpointVersion: 'v1',
11
+ operations: ['get', 'list', 'listAll'],
12
+ },
13
+ attendance: {
14
+ endpoint: 'attendance',
15
+ endpointVersion: 'v1',
16
+ operations: ['get', 'list', 'listAll', 'delete', 'create', 'update'],
17
+ },
18
+ auth: {
19
+ endpoint: 'auth',
20
+ endpointVersion: 'v1',
21
+ operations: [],
22
+ customOperations: {
23
+ get: ({ request, service }) => ({
24
+ ...request,
25
+ url: `${service.endpointVersion}/${service.endpoint}`,
26
+ method: 'GET',
27
+ }),
28
+ },
29
+ },
30
+ availability: {
31
+ endpoint: 'availability',
32
+ endpointVersion: 'v1',
33
+ operations: ['update', 'create', 'delete', 'list', 'listAll'],
34
+ customOperations: {
35
+ update: ({ request, service }, entity) => ({
36
+ ...request,
37
+ method: 'POST',
38
+ url: `${service.endpointVersion}/${service.endpoint}`,
39
+ data: entity,
40
+ }),
41
+ delete: ({ request, service }, entity) => ({
42
+ ...request,
43
+ method: 'POST',
44
+ url: `${service.endpointVersion}/${service.endpoint}`,
45
+ data: {
46
+ ...entity,
47
+ dates: entity.dates.map((date) => ({
48
+ date,
49
+ available: [],
50
+ unavailable: [],
51
+ })),
52
+ },
53
+ }),
54
+ },
55
+ },
56
+ dailyBudget: {
57
+ endpoint: 'daily_budgets',
58
+ endpointVersion: 'v1',
59
+ operations: ['list', 'listAll', 'updateBatch'],
60
+ customOperations: {
61
+ updateBatch: ({ request, service }, entities) => ({
62
+ ...request,
63
+ method: 'POST',
64
+ url: `${service.endpointVersion}/${service.endpoint}`,
65
+ data: entities,
66
+ }),
67
+ },
68
+ },
69
+ dailyRevenue: {
70
+ endpoint: 'daily_revenue',
71
+ endpointVersion: 'v1',
72
+ operations: ['list', 'listAll', 'updateBatch'],
73
+ customOperations: {
74
+ updateBatch: ({ request, service }, entities) => ({
75
+ ...request,
76
+ method: 'POST',
77
+ url: `${service.endpointVersion}/${service.endpoint}`,
78
+ data: entities,
79
+ }),
80
+ },
81
+ },
82
+ dayNote: {
83
+ endpoint: 'day_notes',
84
+ endpointVersion: 'v1',
85
+ operations: ['get', 'create', 'list', 'listAll', 'update', 'delete'],
86
+ },
87
+ dayOff: {
88
+ endpoint: 'days_off',
89
+ endpointVersion: 'v1',
90
+ operations: ['create', 'list', 'listAll', 'delete'],
91
+ },
92
+ document: {
93
+ endpoint: 'documents',
94
+ endpointVersion: 'v1',
95
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'delete'],
96
+ },
97
+ group: {
98
+ endpoint: 'groups',
99
+ endpointVersion: 'v1',
100
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'delete'],
101
+ },
102
+ leaveEmbargo: {
103
+ endpoint: 'leave_embargoes',
104
+ endpointVersion: 'v1',
105
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'delete'],
106
+ },
107
+ leaveRequest: {
108
+ endpoint: 'leave_requests',
109
+ endpointVersion: 'v1',
110
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'delete'],
111
+ },
112
+ leave: {
113
+ endpoint: 'leave',
114
+ endpointVersion: 'v1',
115
+ operations: ['get', 'list', 'listAll', 'delete', 'create', 'update'],
116
+ customOperations: {
117
+ create: ({ request, service, sdkConfig }, entity, opts) => ({
118
+ ...request,
119
+ method: 'POST',
120
+ url: `${service.endpointVersion}/${service.endpoint}`,
121
+ data: entity,
122
+ headers: {
123
+ ...request.headers,
124
+ Account: sdkConfig.accountId,
125
+ User: entity.user,
126
+ },
127
+ params: {
128
+ ...request.params,
129
+ ...paramsFromOptions(opts ?? {}),
130
+ },
131
+ }),
132
+ types: ({ request }) => ({
133
+ ...request,
134
+ method: 'GET',
135
+ url: 'v1/leave_types',
136
+ }),
137
+ },
138
+ },
139
+ location: {
140
+ endpoint: 'locations',
141
+ endpointVersion: 'v1',
142
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'delete'],
143
+ },
144
+ pin: {
145
+ endpoint: 'pins',
146
+ endpointVersion: 'v1',
147
+ operations: ['get'],
148
+ },
149
+ role: {
150
+ endpoint: 'roles',
151
+ endpointVersion: 'v1',
152
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'delete'],
153
+ },
154
+ settings: {
155
+ endpoint: 'settings',
156
+ endpointVersion: 'v1',
157
+ operations: ['list', 'listAll'],
158
+ },
159
+ shift: {
160
+ endpoint: 'shifts',
161
+ endpointVersion: 'v1',
162
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'updateBatch', 'delete', 'deleteBatch'],
163
+ customOperations: {
164
+ acknowledge: ({ request }, shiftIds) => ({
165
+ ...request,
166
+ method: 'POST',
167
+ url: 'v1/shifts_acknowledged',
168
+ data: { shifts: shiftIds },
169
+ }),
170
+ history: ({ request, service }, id) => ({
171
+ ...request,
172
+ method: 'GET',
173
+ url: `v1/${service.endpoint}/${id}/history`,
174
+ }),
175
+ publish: ({ request }, shiftIds) => ({
176
+ ...request,
177
+ method: 'POST',
178
+ url: 'v1/shifts_published',
179
+ data: { shifts: shiftIds },
180
+ }),
181
+ unpublish: ({ request }, shiftIds) => ({
182
+ ...request,
183
+ method: 'DELETE',
184
+ url: 'v1/shifts_published',
185
+ data: { shifts: shiftIds },
186
+ }),
187
+ updateSwap: ({ request }, swapRequest) => {
188
+ let payload;
189
+ if (swapRequest.admin_approved !== null && swapRequest.admin_approved !== undefined) {
190
+ payload = { admin_approved: swapRequest.admin_approved };
191
+ }
192
+ else if (swapRequest.user_approved !== null && swapRequest.user_approved !== undefined) {
193
+ payload = { user_approved: swapRequest.user_approved };
194
+ }
195
+ return {
196
+ ...request,
197
+ method: 'POST',
198
+ url: `v1/swap_requests/${swapRequest.id}`,
199
+ data: payload,
200
+ };
201
+ },
202
+ updateDrop: ({ request }, dropRequest) => ({
203
+ ...request,
204
+ method: 'POST',
205
+ url: `v1/unavailability_requests/${dropRequest.request.id}/${dropRequest.approved ? 'approve' : 'deny'}`,
206
+ data: { message: dropRequest.request.user_message },
207
+ }),
208
+ },
209
+ },
210
+ terminal: {
211
+ endpoint: 'terminals',
212
+ endpointVersion: 'v1',
213
+ operations: ['create', 'get', 'update', 'list', 'listAll'],
214
+ customOperations: {
215
+ close: ({ request, service }, id) => ({
216
+ ...request,
217
+ method: 'DELETE',
218
+ url: `${service.endpointVersion}/${service.endpoint}/${id}`,
219
+ }),
220
+ },
221
+ },
222
+ terminalActive: {
223
+ endpoint: 'terminals',
224
+ endpointVersion: 'v1',
225
+ operations: ['list', 'listAll'],
226
+ customOperations: {
227
+ launch: ({ request, service }, id) => ({
228
+ ...request,
229
+ method: 'DELETE',
230
+ url: `${service.endpointVersion}/${service.endpoint}/${id}`,
231
+ }),
232
+ ping: ({ request, service }, id) => ({
233
+ ...request,
234
+ method: 'DELETE',
235
+ url: `${service.endpointVersion}/${service.endpoint}/${id}`,
236
+ }),
237
+ close: ({ request, service }, id) => ({
238
+ ...request,
239
+ method: 'DELETE',
240
+ url: `${service.endpointVersion}/${service.endpoint}/${id}`,
241
+ }),
242
+ },
243
+ },
244
+ timeZone: {
245
+ endpoint: 'timezones',
246
+ endpointVersion: 'v1',
247
+ operations: ['get', 'list', 'listAll'],
248
+ },
249
+ toilAccrual: {
250
+ endpoint: 'toil_accruals',
251
+ endpointVersion: 'v1',
252
+ operations: ['create', 'get', 'list', 'listAll', 'listByPage', 'delete'],
253
+ },
254
+ toilAllowance: {
255
+ endpoint: 'toil_allowance',
256
+ endpointVersion: 'v1',
257
+ operations: ['list', 'listAll'],
258
+ customOperations: {
259
+ list: (ctx, query, opts) =>
260
+ // Maps the "year" query parameter into the endpoint URL
261
+ listOp({
262
+ ...ctx,
263
+ service: {
264
+ ...ctx.service,
265
+ endpoint: `${ctx.service.endpoint}/${query.year}`,
266
+ endpointVersion: 'v1',
267
+ },
268
+ }, { users: query.users }, opts),
269
+ listAll: (ctx, query, opts) =>
270
+ // Maps the "year" query parameter into the endpoint URL
271
+ listAllOp({
272
+ ...ctx,
273
+ service: {
274
+ ...ctx.service,
275
+ endpoint: `${ctx.service.endpoint}/${query.year}`,
276
+ endpointVersion: 'v1',
277
+ },
278
+ }, { users: query.users }, opts),
279
+ },
280
+ },
281
+ userClockIn: {
282
+ endpoint: 'users_clocked_in',
283
+ endpointVersion: 'v1',
284
+ operations: ['get', 'list', 'listAll'],
285
+ customOperations: {
286
+ clockIn: ({ request, service }, entity) => ({
287
+ ...request,
288
+ url: `${service.endpointVersion}/${service.endpoint}/${entity.id}`,
289
+ method: 'POST',
290
+ data: entity,
291
+ }),
292
+ clockOut: ({ request, service }, entity) => ({
293
+ ...request,
294
+ url: `${service.endpointVersion}/${service.endpoint}/${entity.id}`,
295
+ method: 'POST',
296
+ data: entity,
297
+ }),
298
+ startBreak: ({ request, service }, entity) => ({
299
+ ...request,
300
+ url: `${service.endpointVersion}/${service.endpoint}/${entity.id}`,
301
+ method: 'POST',
302
+ data: entity,
303
+ }),
304
+ endBreak: ({ request, service }, entity) => ({
305
+ ...request,
306
+ url: `${service.endpointVersion}/${service.endpoint}/${entity.id}`,
307
+ method: 'POST',
308
+ data: entity,
309
+ }),
310
+ },
311
+ },
312
+ user: {
313
+ endpoint: 'users',
314
+ endpointVersion: 'v1',
315
+ operations: ['create', 'get', 'list', 'listAll', 'update', 'delete'],
316
+ },
317
+ };
@@ -0,0 +1,41 @@
1
+ import { Axios, AxiosRequestConfig } from 'axios';
2
+ import { SDKConfig } from './interfaces/index.js';
3
+ /** Creates a `Partial<T>` where all properties specified by `K` are required
4
+ *
5
+ * e.g.
6
+ * `RequirementsOf<{id: number, user: number, location: number}, "id" | "user">` is
7
+ * equivalent to `{id: number, user: number, location?: number}`
8
+ * */
9
+ export type RequirementsOf<T, K extends keyof T> = Required<Pick<T, K>> & Partial<T>;
10
+ /** Supported primitive/atomic types for query parameters */
11
+ type QueryParameterPrimitive = string | boolean | number | null | symbol;
12
+ /** Supported types for query parameters */
13
+ export type QueryParameterValue = QueryParameterPrimitive | QueryParameterPrimitive[] | undefined;
14
+ /** SDK specific options for configuring a request */
15
+ export interface RequestOptions<T> {
16
+ /** Client side option to determine whether to return the entire response
17
+ * including metadata such as status code and headers */
18
+ rawResponse?: boolean;
19
+ /** The maximum number of entities to return
20
+ *
21
+ * Once the limit is reached, paginated requests will stop automatically */
22
+ maxResults?: number;
23
+ dryRun?: boolean;
24
+ fields?: T extends Object ? (keyof T)[] : never;
25
+ }
26
+ export declare function assert(value: unknown, message?: string | Error): asserts value;
27
+ /** Creates and configures an Axios client for use in all calls to API endpoints
28
+ * according to the provided {@see SDKConfig}
29
+ */
30
+ export declare function createCustomAxiosClient(config: Readonly<SDKConfig>): Axios;
31
+ /** Utility for getting a basic {@see AxiosRequestConfig} for a given request ready
32
+ * for an {@see OpFunction} to adapt/use
33
+ */
34
+ export declare function getBaseRequestConfig(opts: SDKConfig): AxiosRequestConfig<unknown>;
35
+ /** Defaults all undefined properties in a given object with the value specified
36
+ * in the provided {@see defaultObj} parameter
37
+ *
38
+ * This returns a new object and does not modify {@see obj}
39
+ */
40
+ export declare function defaultObject<T extends object>(obj: Readonly<T>, defaultObj: Readonly<Partial<T>>): T;
41
+ export {};
package/dist/utils.js ADDED
@@ -0,0 +1,149 @@
1
+ import axios, { isAxiosError } from 'axios';
2
+ import axiosRetry, { isNetworkOrIdempotentRequestError } from 'axios-retry';
3
+ import { RetryStrategy } from './interfaces/index.js';
4
+ import { SDKError } from './models/index.js';
5
+ import pkg from '../package.json' with { type: 'json' };
6
+ const DEFAULT_RETRIES = 3;
7
+ const DEFAULT_RETRY_DELAY = 2000;
8
+ const DEFAULT_RETRY_STRATEGY_OPTIONS = {
9
+ [RetryStrategy.Exponential]: {
10
+ exponential: true,
11
+ maxRetries: DEFAULT_RETRIES,
12
+ },
13
+ [RetryStrategy.Static]: {
14
+ exponential: false,
15
+ maxRetries: DEFAULT_RETRIES,
16
+ delay: DEFAULT_RETRY_DELAY,
17
+ },
18
+ };
19
+ class AssertionError extends Error {
20
+ name = AssertionError.prototype.name;
21
+ }
22
+ export function assert(value, message) {
23
+ if (value)
24
+ return;
25
+ if (!message || typeof message === 'string')
26
+ throw new AssertionError(message ?? `Assertion failed - value = ${value}`);
27
+ throw message;
28
+ }
29
+ /** Converts a map of query parameter key/values into API compatible {@see URLSearchParams} */
30
+ function toSearchParams(parameters) {
31
+ const queryParams = { ...parameters };
32
+ const reducedParams = Object.entries(queryParams ?? {}).reduce((params, [key, val]) => {
33
+ if (val !== undefined && val !== '') {
34
+ if (Array.isArray(val))
35
+ params.push(...val.map((item) => [`${key}[]`, String(item)]));
36
+ else
37
+ params.push([key, String(val)]);
38
+ }
39
+ return params;
40
+ }, []);
41
+ return new URLSearchParams(reducedParams);
42
+ }
43
+ function parseClientError(error) {
44
+ const axiosErrorLocation = error.response || error.request;
45
+ const apiErrorMessage = axiosErrorLocation.data?.error;
46
+ let url;
47
+ try {
48
+ url = new URL(error.config?.url ?? '', error.config?.baseURL);
49
+ for (const [key, value] of toSearchParams(error.config?.params)) {
50
+ url.searchParams.set(key, value);
51
+ }
52
+ }
53
+ catch (err) {
54
+ url = undefined;
55
+ }
56
+ return new SDKError({
57
+ url: url?.toString(),
58
+ code: axiosErrorLocation.status,
59
+ message: apiErrorMessage || error.message,
60
+ data: axiosErrorLocation.data,
61
+ });
62
+ }
63
+ /** Creates and configures an Axios client for use in all calls to API endpoints
64
+ * according to the provided {@see SDKConfig}
65
+ */
66
+ export function createCustomAxiosClient(config) {
67
+ let baseURL;
68
+ try {
69
+ baseURL = new URL(config?.baseUri ?? '').toString();
70
+ }
71
+ catch {
72
+ baseURL = undefined;
73
+ }
74
+ assert(baseURL !== undefined, `Must have a valid base URL. Got: ${config.baseUri}`);
75
+ const axiosClient = axios.create({
76
+ baseURL,
77
+ paramsSerializer: (params) => toSearchParams({ ...params, exclude_link_header: true }).toString(),
78
+ });
79
+ // NOTE: Retry interceptor - must be setup first
80
+ if (config?.retry) {
81
+ const retryConfig = typeof config.retry === 'string' ? DEFAULT_RETRY_STRATEGY_OPTIONS[config.retry] : config.retry;
82
+ axiosRetry(axiosClient, {
83
+ retries: retryConfig.maxRetries,
84
+ shouldResetTimeout: true,
85
+ retryCondition: (err) => isNetworkOrIdempotentRequestError(err) || err.response?.status === 429,
86
+ retryDelay: (retryCount) => {
87
+ if (retryConfig.exponential) {
88
+ return axiosRetry.exponentialDelay(retryCount);
89
+ }
90
+ return retryConfig.delay;
91
+ },
92
+ });
93
+ }
94
+ // NOTE: Error interceptor - must be setup after retry but before custom
95
+ axiosClient.interceptors.response.use((response) => response, (error) => {
96
+ let parsedError = error;
97
+ if (isAxiosError(error)) {
98
+ parsedError = parseClientError(error);
99
+ }
100
+ return Promise.reject(parsedError);
101
+ });
102
+ // NOTE: Custom interceptors - must be setup last
103
+ for (const requestInterceptor of config?.interceptors?.request ?? []) {
104
+ const callbacks = typeof requestInterceptor === 'function'
105
+ ? [requestInterceptor]
106
+ : [requestInterceptor?.success, requestInterceptor?.error];
107
+ axiosClient.interceptors.request.use(...callbacks);
108
+ }
109
+ for (const responseInterceptor of config?.interceptors?.response ?? []) {
110
+ const callbacks = typeof responseInterceptor === 'function'
111
+ ? [responseInterceptor]
112
+ : [responseInterceptor?.success, responseInterceptor?.error];
113
+ axiosClient.interceptors.response.use(...callbacks);
114
+ }
115
+ return axiosClient;
116
+ }
117
+ /** Utility for getting a basic {@see AxiosRequestConfig} for a given request ready
118
+ * for an {@see OpFunction} to adapt/use
119
+ */
120
+ export function getBaseRequestConfig(opts) {
121
+ const headers = {};
122
+ const extraHeaders = opts.headers;
123
+ if (extraHeaders && typeof extraHeaders === 'object') {
124
+ for (const [key, val] of Object.entries(extraHeaders)) {
125
+ headers[key] = String(val);
126
+ }
127
+ }
128
+ if (opts.accountId) {
129
+ headers.Account = String(opts.accountId);
130
+ }
131
+ // Set last to prevent being overridden
132
+ headers.Authorization = opts.apiKey ? `Bearer ${opts.apiKey}` : `Basic ${opts.basicAuth}`;
133
+ headers['SDK-Version'] = pkg.version;
134
+ return {
135
+ headers,
136
+ };
137
+ }
138
+ /** Defaults all undefined properties in a given object with the value specified
139
+ * in the provided {@see defaultObj} parameter
140
+ *
141
+ * This returns a new object and does not modify {@see obj}
142
+ */
143
+ export function defaultObject(obj, defaultObj) {
144
+ const defaulted = { ...obj };
145
+ for (const [key, value] of Object.entries(defaultObj)) {
146
+ defaulted[key] ??= value;
147
+ }
148
+ return defaulted;
149
+ }
package/package.json CHANGED
@@ -1,24 +1,23 @@
1
1
  {
2
2
  "name": "rotacloud",
3
- "version": "1.5.2",
3
+ "version": "2.0.1",
4
4
  "description": "The RotaCloud SDK for the RotaCloud API",
5
+ "type": "module",
5
6
  "engines": {
6
- "node": ">=16.10.0"
7
- },
8
- "main": "./dist/cjs/rotacloud.js",
9
- "module": "./dist/mjs/rotacloud.js",
10
- "exports": {
11
- ".": {
12
- "require": "./dist/cjs/rotacloud.js",
13
- "import": "./dist/mjs/rotacloud.js"
14
- }
7
+ "node": ">=18.18.0"
15
8
  },
9
+ "exports": "./dist/main.js",
10
+ "files": [
11
+ "src",
12
+ "dist",
13
+ "*.md"
14
+ ],
16
15
  "scripts": {
17
16
  "version:bump": "npm --no-git-tag-version version patch",
18
- "watch": "rm -rf dist/* && concurrently \"tsc -p tsconfig.json --watch\" \"tsc -p tsconfig-cjs.json --watch\" && ./fixup",
19
- "build": "rm -rf dist/* && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && ./fixup",
17
+ "watch": "rm -rf dist/* && tsc -p tsconfig.json --watch",
18
+ "build": "rm -rf dist/* && tsc -p tsconfig.json",
20
19
  "lint": "eslint src --ext .ts",
21
- "test": "echo \"Error: no test specified\" && exit 1",
20
+ "test": "vitest",
22
21
  "prepublishOnly": "npm run build"
23
22
  },
24
23
  "repository": {
@@ -32,21 +31,21 @@
32
31
  },
33
32
  "homepage": "https://github.com/rotacloud/rotacloud-node#readme",
34
33
  "devDependencies": {
34
+ "@types/node": "^18.19.64",
35
35
  "@typescript-eslint/eslint-plugin": "^6.2.1",
36
36
  "@typescript-eslint/parser": "^6.3.0",
37
- "concurrently": "^8.2.0",
38
37
  "eslint": "^8.46.0",
39
38
  "eslint-config-airbnb": "^19.0.0",
40
39
  "eslint-config-airbnb-base": "^15.0.0",
41
40
  "eslint-config-airbnb-typescript": "^17.1.0",
42
41
  "eslint-config-prettier": "^9.0.0",
43
- "eslint-plugin-import": "^2.28.0",
44
- "prettier": "~3.2.2",
45
- "typescript": "^5.3.3"
42
+ "eslint-plugin-import": "^2.31.0",
43
+ "prettier": "~3.4.1",
44
+ "typescript": "^5.6.3",
45
+ "vitest": "^2.1.6"
46
46
  },
47
47
  "dependencies": {
48
- "@types/node": "^16.11.7",
49
- "axios": "^1.6.5",
50
- "axios-retry": "^4.0.0"
48
+ "axios": "^1.7.7",
49
+ "axios-retry": "^4.5.0"
51
50
  }
52
51
  }