warp-hr 0.0.2

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 (399) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +201 -0
  3. package/README.md +356 -0
  4. package/api-promise.d.mts +2 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +2 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +6 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +2 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +180 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +180 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +451 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +447 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/resource.d.mts +6 -0
  37. package/core/resource.d.mts.map +1 -0
  38. package/core/resource.d.ts +6 -0
  39. package/core/resource.d.ts.map +1 -0
  40. package/core/resource.js +11 -0
  41. package/core/resource.js.map +1 -0
  42. package/core/resource.mjs +7 -0
  43. package/core/resource.mjs.map +1 -0
  44. package/core/uploads.d.mts +3 -0
  45. package/core/uploads.d.mts.map +1 -0
  46. package/core/uploads.d.ts +3 -0
  47. package/core/uploads.d.ts.map +1 -0
  48. package/core/uploads.js +6 -0
  49. package/core/uploads.js.map +1 -0
  50. package/core/uploads.mjs +2 -0
  51. package/core/uploads.mjs.map +1 -0
  52. package/error.d.mts +2 -0
  53. package/error.d.mts.map +1 -0
  54. package/error.d.ts +2 -0
  55. package/error.d.ts.map +1 -0
  56. package/error.js +6 -0
  57. package/error.js.map +1 -0
  58. package/error.mjs +2 -0
  59. package/error.mjs.map +1 -0
  60. package/index.d.mts +6 -0
  61. package/index.d.mts.map +1 -0
  62. package/index.d.ts +6 -0
  63. package/index.d.ts.map +1 -0
  64. package/index.js +30 -0
  65. package/index.js.map +1 -0
  66. package/index.mjs +7 -0
  67. package/index.mjs.map +1 -0
  68. package/internal/builtin-types.d.mts +73 -0
  69. package/internal/builtin-types.d.mts.map +1 -0
  70. package/internal/builtin-types.d.ts +73 -0
  71. package/internal/builtin-types.d.ts.map +1 -0
  72. package/internal/builtin-types.js +4 -0
  73. package/internal/builtin-types.js.map +1 -0
  74. package/internal/builtin-types.mjs +3 -0
  75. package/internal/builtin-types.mjs.map +1 -0
  76. package/internal/detect-platform.d.mts +15 -0
  77. package/internal/detect-platform.d.mts.map +1 -0
  78. package/internal/detect-platform.d.ts +15 -0
  79. package/internal/detect-platform.d.ts.map +1 -0
  80. package/internal/detect-platform.js +162 -0
  81. package/internal/detect-platform.js.map +1 -0
  82. package/internal/detect-platform.mjs +157 -0
  83. package/internal/detect-platform.mjs.map +1 -0
  84. package/internal/errors.d.mts +3 -0
  85. package/internal/errors.d.mts.map +1 -0
  86. package/internal/errors.d.ts +3 -0
  87. package/internal/errors.d.ts.map +1 -0
  88. package/internal/errors.js +41 -0
  89. package/internal/errors.js.map +1 -0
  90. package/internal/errors.mjs +36 -0
  91. package/internal/errors.mjs.map +1 -0
  92. package/internal/headers.d.mts +20 -0
  93. package/internal/headers.d.mts.map +1 -0
  94. package/internal/headers.d.ts +20 -0
  95. package/internal/headers.d.ts.map +1 -0
  96. package/internal/headers.js +79 -0
  97. package/internal/headers.js.map +1 -0
  98. package/internal/headers.mjs +74 -0
  99. package/internal/headers.mjs.map +1 -0
  100. package/internal/parse.d.mts +12 -0
  101. package/internal/parse.d.mts.map +1 -0
  102. package/internal/parse.d.ts +12 -0
  103. package/internal/parse.d.ts.map +1 -0
  104. package/internal/parse.js +35 -0
  105. package/internal/parse.js.map +1 -0
  106. package/internal/parse.mjs +32 -0
  107. package/internal/parse.mjs.map +1 -0
  108. package/internal/qs/formats.d.mts +7 -0
  109. package/internal/qs/formats.d.mts.map +1 -0
  110. package/internal/qs/formats.d.ts +7 -0
  111. package/internal/qs/formats.d.ts.map +1 -0
  112. package/internal/qs/formats.js +13 -0
  113. package/internal/qs/formats.js.map +1 -0
  114. package/internal/qs/formats.mjs +9 -0
  115. package/internal/qs/formats.mjs.map +1 -0
  116. package/internal/qs/index.d.mts +10 -0
  117. package/internal/qs/index.d.mts.map +1 -0
  118. package/internal/qs/index.d.ts +10 -0
  119. package/internal/qs/index.d.ts.map +1 -0
  120. package/internal/qs/index.js +14 -0
  121. package/internal/qs/index.js.map +1 -0
  122. package/internal/qs/index.mjs +10 -0
  123. package/internal/qs/index.mjs.map +1 -0
  124. package/internal/qs/stringify.d.mts +3 -0
  125. package/internal/qs/stringify.d.mts.map +1 -0
  126. package/internal/qs/stringify.d.ts +3 -0
  127. package/internal/qs/stringify.d.ts.map +1 -0
  128. package/internal/qs/stringify.js +277 -0
  129. package/internal/qs/stringify.js.map +1 -0
  130. package/internal/qs/stringify.mjs +274 -0
  131. package/internal/qs/stringify.mjs.map +1 -0
  132. package/internal/qs/types.d.mts +57 -0
  133. package/internal/qs/types.d.mts.map +1 -0
  134. package/internal/qs/types.d.ts +57 -0
  135. package/internal/qs/types.d.ts.map +1 -0
  136. package/internal/qs/types.js +3 -0
  137. package/internal/qs/types.js.map +1 -0
  138. package/internal/qs/types.mjs +2 -0
  139. package/internal/qs/types.mjs.map +1 -0
  140. package/internal/qs/utils.d.mts +15 -0
  141. package/internal/qs/utils.d.mts.map +1 -0
  142. package/internal/qs/utils.d.ts +15 -0
  143. package/internal/qs/utils.d.ts.map +1 -0
  144. package/internal/qs/utils.js +230 -0
  145. package/internal/qs/utils.js.map +1 -0
  146. package/internal/qs/utils.mjs +217 -0
  147. package/internal/qs/utils.mjs.map +1 -0
  148. package/internal/request-options.d.mts +75 -0
  149. package/internal/request-options.d.mts.map +1 -0
  150. package/internal/request-options.d.ts +75 -0
  151. package/internal/request-options.d.ts.map +1 -0
  152. package/internal/request-options.js +14 -0
  153. package/internal/request-options.js.map +1 -0
  154. package/internal/request-options.mjs +10 -0
  155. package/internal/request-options.mjs.map +1 -0
  156. package/internal/shim-types.d.mts +17 -0
  157. package/internal/shim-types.d.mts.map +1 -0
  158. package/internal/shim-types.d.ts +17 -0
  159. package/internal/shim-types.d.ts.map +1 -0
  160. package/internal/shim-types.js +4 -0
  161. package/internal/shim-types.js.map +1 -0
  162. package/internal/shim-types.mjs +3 -0
  163. package/internal/shim-types.mjs.map +1 -0
  164. package/internal/shims.d.mts +20 -0
  165. package/internal/shims.d.mts.map +1 -0
  166. package/internal/shims.d.ts +20 -0
  167. package/internal/shims.d.ts.map +1 -0
  168. package/internal/shims.js +92 -0
  169. package/internal/shims.js.map +1 -0
  170. package/internal/shims.mjs +85 -0
  171. package/internal/shims.mjs.map +1 -0
  172. package/internal/to-file.d.mts +45 -0
  173. package/internal/to-file.d.mts.map +1 -0
  174. package/internal/to-file.d.ts +45 -0
  175. package/internal/to-file.d.ts.map +1 -0
  176. package/internal/to-file.js +91 -0
  177. package/internal/to-file.js.map +1 -0
  178. package/internal/to-file.mjs +88 -0
  179. package/internal/to-file.mjs.map +1 -0
  180. package/internal/tslib.js +81 -0
  181. package/internal/tslib.mjs +17 -0
  182. package/internal/types.d.mts +69 -0
  183. package/internal/types.d.mts.map +1 -0
  184. package/internal/types.d.ts +69 -0
  185. package/internal/types.d.ts.map +1 -0
  186. package/internal/types.js +4 -0
  187. package/internal/types.js.map +1 -0
  188. package/internal/types.mjs +3 -0
  189. package/internal/types.mjs.map +1 -0
  190. package/internal/uploads.d.mts +42 -0
  191. package/internal/uploads.d.mts.map +1 -0
  192. package/internal/uploads.d.ts +42 -0
  193. package/internal/uploads.d.ts.map +1 -0
  194. package/internal/uploads.js +141 -0
  195. package/internal/uploads.js.map +1 -0
  196. package/internal/uploads.mjs +131 -0
  197. package/internal/uploads.mjs.map +1 -0
  198. package/internal/utils/base64.d.mts +3 -0
  199. package/internal/utils/base64.d.mts.map +1 -0
  200. package/internal/utils/base64.d.ts +3 -0
  201. package/internal/utils/base64.d.ts.map +1 -0
  202. package/internal/utils/base64.js +38 -0
  203. package/internal/utils/base64.js.map +1 -0
  204. package/internal/utils/base64.mjs +33 -0
  205. package/internal/utils/base64.mjs.map +1 -0
  206. package/internal/utils/bytes.d.mts +4 -0
  207. package/internal/utils/bytes.d.mts.map +1 -0
  208. package/internal/utils/bytes.d.ts +4 -0
  209. package/internal/utils/bytes.d.ts.map +1 -0
  210. package/internal/utils/bytes.js +31 -0
  211. package/internal/utils/bytes.js.map +1 -0
  212. package/internal/utils/bytes.mjs +26 -0
  213. package/internal/utils/bytes.mjs.map +1 -0
  214. package/internal/utils/env.d.mts +9 -0
  215. package/internal/utils/env.d.mts.map +1 -0
  216. package/internal/utils/env.d.ts +9 -0
  217. package/internal/utils/env.d.ts.map +1 -0
  218. package/internal/utils/env.js +22 -0
  219. package/internal/utils/env.js.map +1 -0
  220. package/internal/utils/env.mjs +18 -0
  221. package/internal/utils/env.mjs.map +1 -0
  222. package/internal/utils/log.d.mts +37 -0
  223. package/internal/utils/log.d.mts.map +1 -0
  224. package/internal/utils/log.d.ts +37 -0
  225. package/internal/utils/log.d.ts.map +1 -0
  226. package/internal/utils/log.js +86 -0
  227. package/internal/utils/log.js.map +1 -0
  228. package/internal/utils/log.mjs +80 -0
  229. package/internal/utils/log.mjs.map +1 -0
  230. package/internal/utils/path.d.mts +15 -0
  231. package/internal/utils/path.d.mts.map +1 -0
  232. package/internal/utils/path.d.ts +15 -0
  233. package/internal/utils/path.d.ts.map +1 -0
  234. package/internal/utils/path.js +79 -0
  235. package/internal/utils/path.js.map +1 -0
  236. package/internal/utils/path.mjs +74 -0
  237. package/internal/utils/path.mjs.map +1 -0
  238. package/internal/utils/sleep.d.mts +2 -0
  239. package/internal/utils/sleep.d.mts.map +1 -0
  240. package/internal/utils/sleep.d.ts +2 -0
  241. package/internal/utils/sleep.d.ts.map +1 -0
  242. package/internal/utils/sleep.js +7 -0
  243. package/internal/utils/sleep.js.map +1 -0
  244. package/internal/utils/sleep.mjs +3 -0
  245. package/internal/utils/sleep.mjs.map +1 -0
  246. package/internal/utils/uuid.d.mts +5 -0
  247. package/internal/utils/uuid.d.mts.map +1 -0
  248. package/internal/utils/uuid.d.ts +5 -0
  249. package/internal/utils/uuid.d.ts.map +1 -0
  250. package/internal/utils/uuid.js +19 -0
  251. package/internal/utils/uuid.js.map +1 -0
  252. package/internal/utils/uuid.mjs +15 -0
  253. package/internal/utils/uuid.mjs.map +1 -0
  254. package/internal/utils/values.d.mts +18 -0
  255. package/internal/utils/values.d.mts.map +1 -0
  256. package/internal/utils/values.d.ts +18 -0
  257. package/internal/utils/values.d.ts.map +1 -0
  258. package/internal/utils/values.js +112 -0
  259. package/internal/utils/values.js.map +1 -0
  260. package/internal/utils/values.mjs +94 -0
  261. package/internal/utils/values.mjs.map +1 -0
  262. package/internal/utils.d.mts +7 -0
  263. package/internal/utils.d.mts.map +1 -0
  264. package/internal/utils.d.ts +7 -0
  265. package/internal/utils.d.ts.map +1 -0
  266. package/internal/utils.js +11 -0
  267. package/internal/utils.js.map +1 -0
  268. package/internal/utils.mjs +8 -0
  269. package/internal/utils.mjs.map +1 -0
  270. package/package.json +137 -0
  271. package/resource.d.mts +2 -0
  272. package/resource.d.mts.map +1 -0
  273. package/resource.d.ts +2 -0
  274. package/resource.d.ts.map +1 -0
  275. package/resource.js +6 -0
  276. package/resource.js.map +1 -0
  277. package/resource.mjs +2 -0
  278. package/resource.mjs.map +1 -0
  279. package/resources/index.d.mts +3 -0
  280. package/resources/index.d.mts.map +1 -0
  281. package/resources/index.d.ts +3 -0
  282. package/resources/index.d.ts.map +1 -0
  283. package/resources/index.js +9 -0
  284. package/resources/index.js.map +1 -0
  285. package/resources/index.mjs +4 -0
  286. package/resources/index.mjs.map +1 -0
  287. package/resources/time-off/index.d.mts +3 -0
  288. package/resources/time-off/index.d.mts.map +1 -0
  289. package/resources/time-off/index.d.ts +3 -0
  290. package/resources/time-off/index.d.ts.map +1 -0
  291. package/resources/time-off/index.js +9 -0
  292. package/resources/time-off/index.js.map +1 -0
  293. package/resources/time-off/index.mjs +4 -0
  294. package/resources/time-off/index.mjs.map +1 -0
  295. package/resources/time-off/policies.d.mts +42 -0
  296. package/resources/time-off/policies.d.mts.map +1 -0
  297. package/resources/time-off/policies.d.ts +42 -0
  298. package/resources/time-off/policies.d.ts.map +1 -0
  299. package/resources/time-off/policies.js +16 -0
  300. package/resources/time-off/policies.js.map +1 -0
  301. package/resources/time-off/policies.mjs +12 -0
  302. package/resources/time-off/policies.mjs.map +1 -0
  303. package/resources/time-off/time-off.d.mts +102 -0
  304. package/resources/time-off/time-off.d.mts.map +1 -0
  305. package/resources/time-off/time-off.d.ts +102 -0
  306. package/resources/time-off/time-off.d.ts.map +1 -0
  307. package/resources/time-off/time-off.js +26 -0
  308. package/resources/time-off/time-off.js.map +1 -0
  309. package/resources/time-off/time-off.mjs +21 -0
  310. package/resources/time-off/time-off.mjs.map +1 -0
  311. package/resources/time-off.d.mts +2 -0
  312. package/resources/time-off.d.mts.map +1 -0
  313. package/resources/time-off.d.ts +2 -0
  314. package/resources/time-off.d.ts.map +1 -0
  315. package/resources/time-off.js +6 -0
  316. package/resources/time-off.js.map +1 -0
  317. package/resources/time-off.mjs +3 -0
  318. package/resources/time-off.mjs.map +1 -0
  319. package/resources/workers.d.mts +89 -0
  320. package/resources/workers.d.mts.map +1 -0
  321. package/resources/workers.d.ts +89 -0
  322. package/resources/workers.d.ts.map +1 -0
  323. package/resources/workers.js +16 -0
  324. package/resources/workers.js.map +1 -0
  325. package/resources/workers.mjs +12 -0
  326. package/resources/workers.mjs.map +1 -0
  327. package/resources.d.mts +2 -0
  328. package/resources.d.mts.map +1 -0
  329. package/resources.d.ts +2 -0
  330. package/resources.d.ts.map +1 -0
  331. package/resources.js +5 -0
  332. package/resources.js.map +1 -0
  333. package/resources.mjs +2 -0
  334. package/resources.mjs.map +1 -0
  335. package/src/api-promise.ts +2 -0
  336. package/src/client.ts +737 -0
  337. package/src/core/README.md +3 -0
  338. package/src/core/api-promise.ts +92 -0
  339. package/src/core/error.ts +130 -0
  340. package/src/core/resource.ts +11 -0
  341. package/src/core/uploads.ts +2 -0
  342. package/src/error.ts +2 -0
  343. package/src/index.ts +22 -0
  344. package/src/internal/README.md +3 -0
  345. package/src/internal/builtin-types.ts +93 -0
  346. package/src/internal/detect-platform.ts +196 -0
  347. package/src/internal/errors.ts +33 -0
  348. package/src/internal/headers.ts +97 -0
  349. package/src/internal/parse.ts +50 -0
  350. package/src/internal/qs/LICENSE.md +13 -0
  351. package/src/internal/qs/README.md +3 -0
  352. package/src/internal/qs/formats.ts +10 -0
  353. package/src/internal/qs/index.ts +13 -0
  354. package/src/internal/qs/stringify.ts +385 -0
  355. package/src/internal/qs/types.ts +71 -0
  356. package/src/internal/qs/utils.ts +265 -0
  357. package/src/internal/request-options.ts +91 -0
  358. package/src/internal/shim-types.ts +26 -0
  359. package/src/internal/shims.ts +107 -0
  360. package/src/internal/to-file.ts +154 -0
  361. package/src/internal/types.ts +95 -0
  362. package/src/internal/uploads.ts +187 -0
  363. package/src/internal/utils/base64.ts +40 -0
  364. package/src/internal/utils/bytes.ts +32 -0
  365. package/src/internal/utils/env.ts +18 -0
  366. package/src/internal/utils/log.ts +127 -0
  367. package/src/internal/utils/path.ts +88 -0
  368. package/src/internal/utils/sleep.ts +3 -0
  369. package/src/internal/utils/uuid.ts +17 -0
  370. package/src/internal/utils/values.ts +105 -0
  371. package/src/internal/utils.ts +8 -0
  372. package/src/lib/.keep +4 -0
  373. package/src/resource.ts +2 -0
  374. package/src/resources/index.ts +17 -0
  375. package/src/resources/time-off/index.ts +12 -0
  376. package/src/resources/time-off/policies.ts +79 -0
  377. package/src/resources/time-off/time-off.ts +173 -0
  378. package/src/resources/time-off.ts +3 -0
  379. package/src/resources/workers.ts +137 -0
  380. package/src/resources.ts +1 -0
  381. package/src/tsconfig.json +11 -0
  382. package/src/uploads.ts +2 -0
  383. package/src/version.ts +1 -0
  384. package/uploads.d.mts +2 -0
  385. package/uploads.d.mts.map +1 -0
  386. package/uploads.d.ts +2 -0
  387. package/uploads.d.ts.map +1 -0
  388. package/uploads.js +6 -0
  389. package/uploads.js.map +1 -0
  390. package/uploads.mjs +2 -0
  391. package/uploads.mjs.map +1 -0
  392. package/version.d.mts +2 -0
  393. package/version.d.mts.map +1 -0
  394. package/version.d.ts +2 -0
  395. package/version.d.ts.map +1 -0
  396. package/version.js +5 -0
  397. package/version.js.map +1 -0
  398. package/version.mjs +2 -0
  399. package/version.mjs.map +1 -0
@@ -0,0 +1,105 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { WarpHrError } from '../../core/error';
4
+
5
+ // https://url.spec.whatwg.org/#url-scheme-string
6
+ const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
7
+
8
+ export const isAbsoluteURL = (url: string): boolean => {
9
+ return startsWithSchemeRegexp.test(url);
10
+ };
11
+
12
+ export let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));
13
+ export let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];
14
+
15
+ /** Returns an object if the given value isn't an object, otherwise returns as-is */
16
+ export function maybeObj(x: unknown): object {
17
+ if (typeof x !== 'object') {
18
+ return {};
19
+ }
20
+
21
+ return x ?? {};
22
+ }
23
+
24
+ // https://stackoverflow.com/a/34491287
25
+ export function isEmptyObj(obj: Object | null | undefined): boolean {
26
+ if (!obj) return true;
27
+ for (const _k in obj) return false;
28
+ return true;
29
+ }
30
+
31
+ // https://eslint.org/docs/latest/rules/no-prototype-builtins
32
+ export function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {
33
+ return Object.prototype.hasOwnProperty.call(obj, key);
34
+ }
35
+
36
+ export function isObj(obj: unknown): obj is Record<string, unknown> {
37
+ return obj != null && typeof obj === 'object' && !Array.isArray(obj);
38
+ }
39
+
40
+ export const ensurePresent = <T>(value: T | null | undefined): T => {
41
+ if (value == null) {
42
+ throw new WarpHrError(`Expected a value to be given but received ${value} instead.`);
43
+ }
44
+
45
+ return value;
46
+ };
47
+
48
+ export const validatePositiveInteger = (name: string, n: unknown): number => {
49
+ if (typeof n !== 'number' || !Number.isInteger(n)) {
50
+ throw new WarpHrError(`${name} must be an integer`);
51
+ }
52
+ if (n < 0) {
53
+ throw new WarpHrError(`${name} must be a positive integer`);
54
+ }
55
+ return n;
56
+ };
57
+
58
+ export const coerceInteger = (value: unknown): number => {
59
+ if (typeof value === 'number') return Math.round(value);
60
+ if (typeof value === 'string') return parseInt(value, 10);
61
+
62
+ throw new WarpHrError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
63
+ };
64
+
65
+ export const coerceFloat = (value: unknown): number => {
66
+ if (typeof value === 'number') return value;
67
+ if (typeof value === 'string') return parseFloat(value);
68
+
69
+ throw new WarpHrError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
70
+ };
71
+
72
+ export const coerceBoolean = (value: unknown): boolean => {
73
+ if (typeof value === 'boolean') return value;
74
+ if (typeof value === 'string') return value === 'true';
75
+ return Boolean(value);
76
+ };
77
+
78
+ export const maybeCoerceInteger = (value: unknown): number | undefined => {
79
+ if (value == null) {
80
+ return undefined;
81
+ }
82
+ return coerceInteger(value);
83
+ };
84
+
85
+ export const maybeCoerceFloat = (value: unknown): number | undefined => {
86
+ if (value == null) {
87
+ return undefined;
88
+ }
89
+ return coerceFloat(value);
90
+ };
91
+
92
+ export const maybeCoerceBoolean = (value: unknown): boolean | undefined => {
93
+ if (value == null) {
94
+ return undefined;
95
+ }
96
+ return coerceBoolean(value);
97
+ };
98
+
99
+ export const safeJSON = (text: string) => {
100
+ try {
101
+ return JSON.parse(text);
102
+ } catch (err) {
103
+ return undefined;
104
+ }
105
+ };
@@ -0,0 +1,8 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './utils/values';
4
+ export * from './utils/base64';
5
+ export * from './utils/env';
6
+ export * from './utils/log';
7
+ export * from './utils/uuid';
8
+ export * from './utils/sleep';
package/src/lib/.keep ADDED
@@ -0,0 +1,4 @@
1
+ File generated from our OpenAPI spec by Stainless.
2
+
3
+ This directory can be used to store custom files to expand the SDK.
4
+ It is ignored by Stainless code generation and its content (other than this keep file) won't be touched.
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import from ./core/resource instead */
2
+ export * from './core/resource';
@@ -0,0 +1,17 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ TimeOff,
5
+ type TimeOffListAssignmentsResponse,
6
+ type TimeOffListBalancesResponse,
7
+ type TimeOffListRequestsResponse,
8
+ type TimeOffListAssignmentsParams,
9
+ type TimeOffListBalancesParams,
10
+ type TimeOffListRequestsParams,
11
+ } from './time-off/time-off';
12
+ export {
13
+ Workers,
14
+ type WorkerRetrieveResponse,
15
+ type WorkerListResponse,
16
+ type WorkerListParams,
17
+ } from './workers';
@@ -0,0 +1,12 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export { Policies, type PolicyRetrieveResponse, type PolicyListResponse } from './policies';
4
+ export {
5
+ TimeOff,
6
+ type TimeOffListAssignmentsResponse,
7
+ type TimeOffListBalancesResponse,
8
+ type TimeOffListRequestsResponse,
9
+ type TimeOffListAssignmentsParams,
10
+ type TimeOffListBalancesParams,
11
+ type TimeOffListRequestsParams,
12
+ } from './time-off';
@@ -0,0 +1,79 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { RequestOptions } from '../../internal/request-options';
6
+ import { path } from '../../internal/utils/path';
7
+
8
+ export class Policies extends APIResource {
9
+ retrieve(id: string, options?: RequestOptions): APIPromise<PolicyRetrieveResponse> {
10
+ return this._client.get(path`/v1/time_off/policies/${id}`, options);
11
+ }
12
+
13
+ list(options?: RequestOptions): APIPromise<PolicyListResponse> {
14
+ return this._client.get('/v1/time_off/policies', options);
15
+ }
16
+ }
17
+
18
+ export interface PolicyRetrieveResponse {
19
+ id: string;
20
+
21
+ description: string | null;
22
+
23
+ hoursWorkedPerChunk: number | null;
24
+
25
+ isUnlimited: boolean;
26
+
27
+ minutesPerChunk: number | null;
28
+
29
+ minutesPerPeriod: number | null;
30
+
31
+ name: string;
32
+
33
+ paid: boolean;
34
+
35
+ schedule: 'per_hour_worked' | 'monthly' | 'yearly' | 'unlimited';
36
+
37
+ timeOffTypeId: string;
38
+
39
+ timeOffTypeName: string;
40
+
41
+ unit: 'hour' | 'day';
42
+ }
43
+
44
+ export type PolicyListResponse = Array<PolicyListResponse.PolicyListResponseItem>;
45
+
46
+ export namespace PolicyListResponse {
47
+ export interface PolicyListResponseItem {
48
+ id: string;
49
+
50
+ description: string | null;
51
+
52
+ hoursWorkedPerChunk: number | null;
53
+
54
+ isUnlimited: boolean;
55
+
56
+ minutesPerChunk: number | null;
57
+
58
+ minutesPerPeriod: number | null;
59
+
60
+ name: string;
61
+
62
+ paid: boolean;
63
+
64
+ schedule: 'per_hour_worked' | 'monthly' | 'yearly' | 'unlimited';
65
+
66
+ timeOffTypeId: string;
67
+
68
+ timeOffTypeName: string;
69
+
70
+ unit: 'hour' | 'day';
71
+ }
72
+ }
73
+
74
+ export declare namespace Policies {
75
+ export {
76
+ type PolicyRetrieveResponse as PolicyRetrieveResponse,
77
+ type PolicyListResponse as PolicyListResponse,
78
+ };
79
+ }
@@ -0,0 +1,173 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as PoliciesAPI from './policies';
5
+ import { Policies, PolicyListResponse, PolicyRetrieveResponse } from './policies';
6
+ import { APIPromise } from '../../core/api-promise';
7
+ import { RequestOptions } from '../../internal/request-options';
8
+
9
+ export class TimeOff extends APIResource {
10
+ policies: PoliciesAPI.Policies = new PoliciesAPI.Policies(this._client);
11
+
12
+ listAssignments(
13
+ query: TimeOffListAssignmentsParams | null | undefined = {},
14
+ options?: RequestOptions,
15
+ ): APIPromise<TimeOffListAssignmentsResponse> {
16
+ return this._client.get('/v1/time_off/assignments', { query, ...options });
17
+ }
18
+
19
+ listBalances(
20
+ query: TimeOffListBalancesParams | null | undefined = {},
21
+ options?: RequestOptions,
22
+ ): APIPromise<TimeOffListBalancesResponse> {
23
+ return this._client.get('/v1/time_off/balances', { query, ...options });
24
+ }
25
+
26
+ listRequests(
27
+ query: TimeOffListRequestsParams | null | undefined = {},
28
+ options?: RequestOptions,
29
+ ): APIPromise<TimeOffListRequestsResponse> {
30
+ return this._client.get('/v1/time_off/requests', { query, ...options });
31
+ }
32
+ }
33
+
34
+ export type TimeOffListAssignmentsResponse =
35
+ Array<TimeOffListAssignmentsResponse.TimeOffListAssignmentsResponseItem>;
36
+
37
+ export namespace TimeOffListAssignmentsResponse {
38
+ export interface TimeOffListAssignmentsResponseItem {
39
+ /**
40
+ * a string to be decoded into a Date
41
+ */
42
+ assignedAt: string;
43
+
44
+ legacyWorkerId: string;
45
+
46
+ policyId: string;
47
+ }
48
+ }
49
+
50
+ export type TimeOffListBalancesResponse = Array<TimeOffListBalancesResponse.TimeOffListBalancesResponseItem>;
51
+
52
+ export namespace TimeOffListBalancesResponse {
53
+ export interface TimeOffListBalancesResponseItem {
54
+ accruedLocked: number;
55
+
56
+ accruedUnlocked: number;
57
+
58
+ available: number;
59
+
60
+ holds: number;
61
+
62
+ legacyWorkerId: string;
63
+
64
+ policyId: string;
65
+
66
+ used: number;
67
+ }
68
+ }
69
+
70
+ export type TimeOffListRequestsResponse = Array<TimeOffListRequestsResponse.TimeOffListRequestsResponseItem>;
71
+
72
+ export namespace TimeOffListRequestsResponse {
73
+ export interface TimeOffListRequestsResponseItem {
74
+ id: string;
75
+
76
+ /**
77
+ * a string to be decoded into a Date
78
+ */
79
+ createdAt: string;
80
+
81
+ /**
82
+ * a string to be decoded into a Date
83
+ */
84
+ endAt: string;
85
+
86
+ reason: string | null;
87
+
88
+ requestedMinutes: number;
89
+
90
+ /**
91
+ * a string to be decoded into a Date
92
+ */
93
+ startAt: string;
94
+
95
+ status: 'pending' | 'approved' | 'denied';
96
+
97
+ timeOffPolicyId: string;
98
+
99
+ /**
100
+ * The id of the worker.
101
+ */
102
+ workerId: string;
103
+ }
104
+ }
105
+
106
+ export interface TimeOffListAssignmentsParams {
107
+ policyIds?: Array<string>;
108
+
109
+ workerIds?: Array<string>;
110
+ }
111
+
112
+ export interface TimeOffListBalancesParams {
113
+ /**
114
+ * a string to be decoded into a Date
115
+ */
116
+ endDate?: string;
117
+
118
+ policyIds?: Array<string>;
119
+
120
+ /**
121
+ * a string to be decoded into a Date
122
+ */
123
+ startDate?: string;
124
+
125
+ workerIds?: Array<string>;
126
+ }
127
+
128
+ export interface TimeOffListRequestsParams {
129
+ /**
130
+ * a string to be decoded into a Date
131
+ */
132
+ endsBefore?: string;
133
+
134
+ /**
135
+ * a string to be decoded into a Date
136
+ */
137
+ endsOnOrAfter?: string;
138
+
139
+ policyIds?: Array<string>;
140
+
141
+ /**
142
+ * a string to be decoded into a Date
143
+ */
144
+ startsBefore?: string;
145
+
146
+ /**
147
+ * a string to be decoded into a Date
148
+ */
149
+ startsOnOrAfter?: string;
150
+
151
+ statuses?: Array<'pending' | 'approved' | 'denied'>;
152
+
153
+ workerIds?: Array<string>;
154
+ }
155
+
156
+ TimeOff.Policies = Policies;
157
+
158
+ export declare namespace TimeOff {
159
+ export {
160
+ type TimeOffListAssignmentsResponse as TimeOffListAssignmentsResponse,
161
+ type TimeOffListBalancesResponse as TimeOffListBalancesResponse,
162
+ type TimeOffListRequestsResponse as TimeOffListRequestsResponse,
163
+ type TimeOffListAssignmentsParams as TimeOffListAssignmentsParams,
164
+ type TimeOffListBalancesParams as TimeOffListBalancesParams,
165
+ type TimeOffListRequestsParams as TimeOffListRequestsParams,
166
+ };
167
+
168
+ export {
169
+ Policies as Policies,
170
+ type PolicyRetrieveResponse as PolicyRetrieveResponse,
171
+ type PolicyListResponse as PolicyListResponse,
172
+ };
173
+ }
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './time-off/index';
@@ -0,0 +1,137 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import { APIPromise } from '../core/api-promise';
5
+ import { RequestOptions } from '../internal/request-options';
6
+ import { path } from '../internal/utils/path';
7
+
8
+ export class Workers extends APIResource {
9
+ retrieve(id: string, options?: RequestOptions): APIPromise<WorkerRetrieveResponse> {
10
+ return this._client.get(path`/v1/workers/${id}`, options);
11
+ }
12
+
13
+ list(
14
+ query: WorkerListParams | null | undefined = {},
15
+ options?: RequestOptions,
16
+ ): APIPromise<WorkerListResponse> {
17
+ return this._client.get('/v1/workers', { query, ...options });
18
+ }
19
+ }
20
+
21
+ export interface WorkerRetrieveResponse {
22
+ /**
23
+ * The id of the worker.
24
+ */
25
+ id: string;
26
+
27
+ businessName: string | null;
28
+
29
+ /**
30
+ * The "ui" name of a worker. If it's a business contractor business name is used.
31
+ * Otherwise we default to preferred name, then first-last.
32
+ */
33
+ displayName: string;
34
+
35
+ /**
36
+ * An email with a reasonably valid regex (shamelessly taken from zod)
37
+ */
38
+ email: string;
39
+
40
+ /**
41
+ * A date string in the form YYYY-MM-DD
42
+ */
43
+ endDate: string | null;
44
+
45
+ firstName: string;
46
+
47
+ isBusiness: boolean | null;
48
+
49
+ lastName: string;
50
+
51
+ position: string;
52
+
53
+ preferredName: string | null;
54
+
55
+ /**
56
+ * A date string in the form YYYY-MM-DD
57
+ */
58
+ startDate: string;
59
+
60
+ status: 'onboarding' | 'active' | 'offboarding' | 'inactive';
61
+
62
+ type: 'employee' | 'contractor';
63
+
64
+ /**
65
+ * An email with a reasonably valid regex (shamelessly taken from zod)
66
+ */
67
+ workEmail: string | null;
68
+ }
69
+
70
+ export type WorkerListResponse = Array<WorkerListResponse.WorkerListResponseItem>;
71
+
72
+ export namespace WorkerListResponse {
73
+ export interface WorkerListResponseItem {
74
+ /**
75
+ * The id of the worker.
76
+ */
77
+ id: string;
78
+
79
+ businessName: string | null;
80
+
81
+ /**
82
+ * The "ui" name of a worker. If it's a business contractor business name is used.
83
+ * Otherwise we default to preferred name, then first-last.
84
+ */
85
+ displayName: string;
86
+
87
+ /**
88
+ * An email with a reasonably valid regex (shamelessly taken from zod)
89
+ */
90
+ email: string;
91
+
92
+ /**
93
+ * A date string in the form YYYY-MM-DD
94
+ */
95
+ endDate: string | null;
96
+
97
+ firstName: string;
98
+
99
+ isBusiness: boolean | null;
100
+
101
+ lastName: string;
102
+
103
+ position: string;
104
+
105
+ preferredName: string | null;
106
+
107
+ /**
108
+ * A date string in the form YYYY-MM-DD
109
+ */
110
+ startDate: string;
111
+
112
+ status: 'onboarding' | 'active' | 'offboarding' | 'inactive';
113
+
114
+ type: 'employee' | 'contractor';
115
+
116
+ /**
117
+ * An email with a reasonably valid regex (shamelessly taken from zod)
118
+ */
119
+ workEmail: string | null;
120
+ }
121
+ }
122
+
123
+ export interface WorkerListParams {
124
+ statuses?: Array<'onboarding' | 'active' | 'offboarding' | 'inactive'>;
125
+
126
+ types?: Array<'employee' | 'contractor'>;
127
+
128
+ workEmail?: string;
129
+ }
130
+
131
+ export declare namespace Workers {
132
+ export {
133
+ type WorkerRetrieveResponse as WorkerRetrieveResponse,
134
+ type WorkerListResponse as WorkerListResponse,
135
+ type WorkerListParams as WorkerListParams,
136
+ };
137
+ }
@@ -0,0 +1 @@
1
+ export * from './resources/index';
@@ -0,0 +1,11 @@
1
+ {
2
+ // this config is included in the published src directory to prevent TS errors
3
+ // from appearing when users go to source, and VSCode opens the source .ts file
4
+ // via declaration maps
5
+ "include": ["index.ts"],
6
+ "compilerOptions": {
7
+ "target": "ES2015",
8
+ "lib": ["DOM", "DOM.Iterable", "ES2018"],
9
+ "moduleResolution": "node"
10
+ }
11
+ }
package/src/uploads.ts ADDED
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import from ./core/uploads instead */
2
+ export * from './core/uploads';
package/src/version.ts ADDED
@@ -0,0 +1 @@
1
+ export const VERSION = '0.0.2'; // x-release-please-version
package/uploads.d.mts ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./core/uploads.mjs";
2
+ //# sourceMappingURL=uploads.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.d.mts","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":""}
package/uploads.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./core/uploads.js";
2
+ //# sourceMappingURL=uploads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":""}
package/uploads.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("./internal/tslib.js");
4
+ /** @deprecated Import from ./core/uploads instead */
5
+ tslib_1.__exportStar(require("./core/uploads.js"), exports);
6
+ //# sourceMappingURL=uploads.js.map
package/uploads.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.js","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,4DAA+B"}
package/uploads.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./core/uploads.mjs";
2
+ //# sourceMappingURL=uploads.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.mjs","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":""}
package/version.d.mts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.0.2";
2
+ //# sourceMappingURL=version.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.mts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/version.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.0.2";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/version.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION = void 0;
4
+ exports.VERSION = '0.0.2'; // x-release-please-version
5
+ //# sourceMappingURL=version.js.map
package/version.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}
package/version.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export const VERSION = '0.0.2'; // x-release-please-version
2
+ //# sourceMappingURL=version.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.mjs","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}