@tryfinch/finch-api 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +12 -7
  3. package/{dist/esm/_shims → _shims}/agent.d.ts +2 -2
  4. package/_shims/agent.d.ts.map +1 -0
  5. package/_shims/agent.js.map +1 -0
  6. package/{dist/esm/_shims/agent.js → _shims/agent.mjs} +1 -1
  7. package/_shims/agent.mjs.map +1 -0
  8. package/{dist/esm/_shims → _shims}/agent.node.d.ts +1 -0
  9. package/_shims/agent.node.d.ts.map +1 -0
  10. package/_shims/agent.node.js.map +1 -0
  11. package/{dist/esm/_shims/agent.node.js → _shims/agent.node.mjs} +1 -1
  12. package/_shims/agent.node.mjs.map +1 -0
  13. package/_shims/fetch.d.ts +52 -0
  14. package/_shims/fetch.js +13 -0
  15. package/_shims/fetch.mjs +15 -0
  16. package/_shims/fetch.node.d.ts +53 -0
  17. package/_shims/fetch.node.js +12 -0
  18. package/_shims/fetch.node.mjs +14 -0
  19. package/{dist/cjs/_shims → _shims}/fileFromPath.d.ts +1 -2
  20. package/_shims/fileFromPath.d.ts.map +1 -0
  21. package/_shims/fileFromPath.js +16 -0
  22. package/_shims/fileFromPath.js.map +1 -0
  23. package/{dist/esm/_shims/fileFromPath.js → _shims/fileFromPath.mjs} +1 -1
  24. package/_shims/fileFromPath.mjs.map +1 -0
  25. package/{dist/cjs/_shims → _shims}/fileFromPath.node.d.ts +1 -2
  26. package/_shims/fileFromPath.node.d.ts.map +1 -0
  27. package/_shims/fileFromPath.node.js +17 -0
  28. package/_shims/fileFromPath.node.js.map +1 -0
  29. package/{dist/esm/_shims/fileFromPath.node.js → _shims/fileFromPath.node.mjs} +1 -1
  30. package/_shims/fileFromPath.node.mjs.map +1 -0
  31. package/_shims/formdata.d.ts +43 -0
  32. package/_shims/formdata.js +9 -0
  33. package/{dist/esm/_shims/formdata.js → _shims/formdata.mjs} +7 -11
  34. package/_shims/formdata.node.d.ts +44 -0
  35. package/_shims/formdata.node.js +11 -0
  36. package/_shims/getMultipartRequestOptions.d.ts.map +1 -0
  37. package/_shims/getMultipartRequestOptions.js +12 -0
  38. package/_shims/getMultipartRequestOptions.js.map +1 -0
  39. package/_shims/getMultipartRequestOptions.mjs +8 -0
  40. package/_shims/getMultipartRequestOptions.mjs.map +1 -0
  41. package/_shims/getMultipartRequestOptions.node.d.ts.map +1 -0
  42. package/_shims/getMultipartRequestOptions.node.js +22 -0
  43. package/_shims/getMultipartRequestOptions.node.js.map +1 -0
  44. package/{dist/esm/_shims/getMultipartRequestOptions.node.js → _shims/getMultipartRequestOptions.node.mjs} +3 -2
  45. package/_shims/getMultipartRequestOptions.node.mjs.map +1 -0
  46. package/_shims/node-readable.d.ts +23 -0
  47. package/_shims/node-readable.d.ts.map +1 -0
  48. package/_shims/node-readable.js +11 -0
  49. package/_shims/node-readable.js.map +1 -0
  50. package/_shims/node-readable.mjs +7 -0
  51. package/_shims/node-readable.mjs.map +1 -0
  52. package/_shims/node-readable.node.d.ts +8 -0
  53. package/_shims/node-readable.node.d.ts.map +1 -0
  54. package/_shims/node-readable.node.js +9 -0
  55. package/_shims/node-readable.node.js.map +1 -0
  56. package/_shims/node-readable.node.mjs +5 -0
  57. package/_shims/node-readable.node.mjs.map +1 -0
  58. package/{dist/esm/core.d.ts → core.d.ts} +20 -11
  59. package/core.d.ts.map +1 -0
  60. package/{dist/cjs/core.js → core.js} +232 -340
  61. package/core.js.map +1 -0
  62. package/{dist/esm/core.js → core.mjs} +95 -30
  63. package/core.mjs.map +1 -0
  64. package/{dist/esm/error.d.ts → error.d.ts} +4 -0
  65. package/error.d.ts.map +1 -0
  66. package/{dist/cjs/error.js → error.js} +9 -1
  67. package/error.js.map +1 -0
  68. package/{dist/esm/error.js → error.mjs} +11 -3
  69. package/error.mjs.map +1 -0
  70. package/{dist/cjs/index.d.ts → index.d.mts} +52 -8
  71. package/{dist/esm/index.d.ts → index.d.ts} +47 -3
  72. package/index.d.ts.map +1 -0
  73. package/{dist/cjs/index.js → index.js} +24 -17
  74. package/index.js.map +1 -0
  75. package/{dist/esm/index.js → index.mjs} +21 -9
  76. package/index.mjs.map +1 -0
  77. package/package.json +34 -77
  78. package/pagination.d.ts.map +1 -0
  79. package/{dist/cjs/pagination.js → pagination.js} +1 -1
  80. package/pagination.js.map +1 -0
  81. package/{dist/esm/pagination.js → pagination.mjs} +2 -2
  82. package/pagination.mjs.map +1 -0
  83. package/resource.d.ts.map +1 -0
  84. package/resource.js.map +1 -0
  85. package/{dist/esm/resource.js → resource.mjs} +1 -1
  86. package/resource.mjs.map +1 -0
  87. package/{dist/esm/resources → resources}/account.d.ts +2 -2
  88. package/resources/account.d.ts.map +1 -0
  89. package/{dist/cjs/resources → resources}/account.js +1 -1
  90. package/resources/account.js.map +1 -0
  91. package/{dist/esm/resources/account.js → resources/account.mjs} +2 -2
  92. package/resources/account.mjs.map +1 -0
  93. package/{dist/esm/resources → resources}/ats/applications.d.ts +4 -4
  94. package/resources/ats/applications.d.ts.map +1 -0
  95. package/{dist/cjs/resources → resources}/ats/applications.js +4 -8
  96. package/resources/ats/applications.js.map +1 -0
  97. package/{dist/esm/resources/ats/applications.js → resources/ats/applications.mjs} +4 -4
  98. package/resources/ats/applications.mjs.map +1 -0
  99. package/{dist/esm/resources → resources}/ats/ats.d.ts +1 -1
  100. package/{dist/cjs/resources → resources}/ats/ats.d.ts.map +1 -1
  101. package/{dist/cjs/resources → resources}/ats/ats.js +7 -7
  102. package/resources/ats/ats.js.map +1 -0
  103. package/{dist/esm/resources/ats/ats.js → resources/ats/ats.mjs} +8 -8
  104. package/resources/ats/ats.mjs.map +1 -0
  105. package/{dist/esm/resources → resources}/ats/candidates.d.ts +3 -3
  106. package/resources/ats/candidates.d.ts.map +1 -0
  107. package/{dist/cjs/resources → resources}/ats/candidates.js +4 -4
  108. package/resources/ats/candidates.js.map +1 -0
  109. package/{dist/esm/resources/ats/candidates.js → resources/ats/candidates.mjs} +4 -4
  110. package/resources/ats/candidates.mjs.map +1 -0
  111. package/resources/ats/index.d.ts.map +1 -0
  112. package/{dist/cjs/resources → resources}/ats/index.js +6 -6
  113. package/resources/ats/index.js.map +1 -0
  114. package/resources/ats/index.mjs +8 -0
  115. package/resources/ats/index.mjs.map +1 -0
  116. package/{dist/esm/resources → resources}/ats/jobs.d.ts +3 -3
  117. package/resources/ats/jobs.d.ts.map +1 -0
  118. package/{dist/cjs/resources → resources}/ats/jobs.js +4 -4
  119. package/resources/ats/jobs.js.map +1 -0
  120. package/{dist/esm/resources/ats/jobs.js → resources/ats/jobs.mjs} +4 -4
  121. package/resources/ats/jobs.mjs.map +1 -0
  122. package/{dist/esm/resources → resources}/ats/offers.d.ts +3 -3
  123. package/resources/ats/offers.d.ts.map +1 -0
  124. package/{dist/cjs/resources → resources}/ats/offers.js +4 -4
  125. package/resources/ats/offers.js.map +1 -0
  126. package/{dist/esm/resources/ats/offers.js → resources/ats/offers.mjs} +4 -4
  127. package/resources/ats/offers.mjs.map +1 -0
  128. package/{dist/esm/resources → resources}/ats/stages.d.ts +6 -4
  129. package/resources/ats/stages.d.ts.map +1 -0
  130. package/resources/ats/stages.js +22 -0
  131. package/resources/ats/stages.js.map +1 -0
  132. package/{dist/esm/resources/ats/stages.js → resources/ats/stages.mjs} +4 -7
  133. package/resources/ats/stages.mjs.map +1 -0
  134. package/{dist/esm/resources → resources}/hris/benefits/benefits.d.ts +8 -5
  135. package/resources/hris/benefits/benefits.d.ts.map +1 -0
  136. package/{dist/cjs/resources → resources}/hris/benefits/benefits.js +7 -9
  137. package/resources/hris/benefits/benefits.js.map +1 -0
  138. package/{dist/esm/resources/hris/benefits/benefits.js → resources/hris/benefits/benefits.mjs} +6 -8
  139. package/resources/hris/benefits/benefits.mjs.map +1 -0
  140. package/resources/hris/benefits/index.d.ts.map +1 -0
  141. package/{dist/cjs/resources → resources}/hris/benefits/index.js +2 -2
  142. package/resources/hris/benefits/index.js.map +1 -0
  143. package/{dist/esm/resources/hris/benefits/index.js → resources/hris/benefits/index.mjs} +3 -3
  144. package/resources/hris/benefits/index.mjs.map +1 -0
  145. package/{dist/esm/resources → resources}/hris/benefits/individuals.d.ts +11 -7
  146. package/resources/hris/benefits/individuals.d.ts.map +1 -0
  147. package/resources/hris/benefits/individuals.js +68 -0
  148. package/resources/hris/benefits/individuals.js.map +1 -0
  149. package/{dist/esm/resources/hris/benefits/individuals.js → resources/hris/benefits/individuals.mjs} +5 -10
  150. package/resources/hris/benefits/individuals.mjs.map +1 -0
  151. package/{dist/esm/resources → resources}/hris/company.d.ts +3 -3
  152. package/resources/hris/company.d.ts.map +1 -0
  153. package/{dist/cjs/resources → resources}/hris/company.js +1 -1
  154. package/resources/hris/company.js.map +1 -0
  155. package/{dist/esm/resources/hris/company.js → resources/hris/company.mjs} +2 -2
  156. package/resources/hris/company.mjs.map +1 -0
  157. package/{dist/esm/resources → resources}/hris/directory.d.ts +3 -3
  158. package/resources/hris/directory.d.ts.map +1 -0
  159. package/{dist/cjs/resources → resources}/hris/directory.js +4 -8
  160. package/resources/hris/directory.js.map +1 -0
  161. package/{dist/esm/resources/hris/directory.js → resources/hris/directory.mjs} +4 -4
  162. package/resources/hris/directory.mjs.map +1 -0
  163. package/{dist/esm/resources → resources}/hris/hris.d.ts +1 -1
  164. package/{dist/esm/resources → resources}/hris/hris.d.ts.map +1 -1
  165. package/{dist/cjs/resources → resources}/hris/hris.js +8 -8
  166. package/resources/hris/hris.js.map +1 -0
  167. package/{dist/esm/resources/hris/hris.js → resources/hris/hris.mjs} +9 -9
  168. package/resources/hris/hris.mjs.map +1 -0
  169. package/resources/hris/index.d.ts.map +1 -0
  170. package/{dist/cjs/resources → resources}/hris/index.js +7 -7
  171. package/resources/hris/index.js.map +1 -0
  172. package/resources/hris/index.mjs +9 -0
  173. package/resources/hris/index.mjs.map +1 -0
  174. package/{dist/esm/resources → resources}/hris/individuals/employment-data.d.ts +7 -5
  175. package/resources/hris/individuals/employment-data.d.ts.map +1 -0
  176. package/{dist/cjs/resources → resources}/hris/individuals/employment-data.js +8 -9
  177. package/resources/hris/individuals/employment-data.js.map +1 -0
  178. package/{dist/esm/resources/hris/individuals/employment-data.js → resources/hris/individuals/employment-data.mjs} +4 -5
  179. package/resources/hris/individuals/employment-data.mjs.map +1 -0
  180. package/resources/hris/individuals/index.d.ts.map +1 -0
  181. package/{dist/cjs/resources → resources}/hris/individuals/index.js +2 -2
  182. package/resources/hris/individuals/index.js.map +1 -0
  183. package/{dist/esm/resources/hris/individuals/index.js → resources/hris/individuals/index.mjs} +3 -3
  184. package/resources/hris/individuals/index.mjs.map +1 -0
  185. package/{dist/esm/resources → resources}/hris/individuals/individuals.d.ts +7 -5
  186. package/resources/hris/individuals/individuals.d.ts.map +1 -0
  187. package/{dist/cjs/resources → resources}/hris/individuals/individuals.js +10 -11
  188. package/resources/hris/individuals/individuals.js.map +1 -0
  189. package/{dist/esm/resources/hris/individuals/individuals.js → resources/hris/individuals/individuals.mjs} +6 -7
  190. package/resources/hris/individuals/individuals.mjs.map +1 -0
  191. package/{dist/esm/resources → resources}/hris/pay-statements.d.ts +8 -6
  192. package/resources/hris/pay-statements.d.ts.map +1 -0
  193. package/resources/hris/pay-statements.js +26 -0
  194. package/resources/hris/pay-statements.js.map +1 -0
  195. package/{dist/esm/resources/hris/pay-statements.js → resources/hris/pay-statements.mjs} +4 -7
  196. package/resources/hris/pay-statements.mjs.map +1 -0
  197. package/{dist/esm/resources → resources}/hris/payments.d.ts +7 -5
  198. package/resources/hris/payments.d.ts.map +1 -0
  199. package/resources/hris/payments.js +19 -0
  200. package/resources/hris/payments.js.map +1 -0
  201. package/{dist/esm/resources/hris/payments.js → resources/hris/payments.mjs} +4 -7
  202. package/resources/hris/payments.mjs.map +1 -0
  203. package/resources/index.d.ts.map +1 -0
  204. package/{dist/cjs/resources → resources}/index.js +4 -4
  205. package/resources/index.js.map +1 -0
  206. package/resources/index.mjs +6 -0
  207. package/resources/index.mjs.map +1 -0
  208. package/{dist/esm/resources → resources}/providers.d.ts +6 -4
  209. package/resources/providers.d.ts.map +1 -0
  210. package/resources/providers.js +19 -0
  211. package/resources/providers.js.map +1 -0
  212. package/{dist/esm/resources/providers.js → resources/providers.mjs} +4 -7
  213. package/resources/providers.mjs.map +1 -0
  214. package/resources/top-level.d.ts.map +1 -0
  215. package/resources/top-level.js.map +1 -0
  216. package/{dist/esm/resources/top-level.js → resources/top-level.mjs} +1 -1
  217. package/resources/top-level.mjs.map +1 -0
  218. package/{_shims → src/_shims}/agent.node.ts +2 -0
  219. package/{_shims → src/_shims}/agent.ts +2 -2
  220. package/src/_shims/fetch.d.ts +52 -0
  221. package/src/_shims/fetch.js +13 -0
  222. package/src/_shims/fetch.mjs +15 -0
  223. package/src/_shims/fetch.node.d.ts +53 -0
  224. package/src/_shims/fetch.node.js +12 -0
  225. package/src/_shims/fetch.node.mjs +14 -0
  226. package/{_shims → src/_shims}/fileFromPath.node.ts +1 -2
  227. package/{_shims → src/_shims}/fileFromPath.ts +1 -2
  228. package/src/_shims/formdata.d.ts +43 -0
  229. package/src/_shims/formdata.js +9 -0
  230. package/src/_shims/formdata.mjs +11 -0
  231. package/src/_shims/formdata.node.d.ts +44 -0
  232. package/src/_shims/formdata.node.js +11 -0
  233. package/{dist/esm/_shims/formdata.node.js → src/_shims/formdata.node.mjs} +3 -1
  234. package/{_shims → src/_shims}/getMultipartRequestOptions.node.ts +3 -2
  235. package/{_shims → src/_shims}/getMultipartRequestOptions.ts +3 -2
  236. package/src/_shims/node-readable.node.ts +10 -0
  237. package/src/_shims/node-readable.ts +30 -0
  238. package/{core.ts → src/core.ts} +86 -28
  239. package/{error.ts → src/error.ts} +8 -0
  240. package/{index.ts → src/index.ts} +63 -3
  241. package/{resources → src/resources}/account.ts +3 -3
  242. package/{resources → src/resources}/ats/applications.ts +6 -6
  243. package/{resources → src/resources}/ats/ats.ts +2 -2
  244. package/{resources → src/resources}/ats/candidates.ts +5 -5
  245. package/{resources → src/resources}/ats/jobs.ts +5 -5
  246. package/{resources → src/resources}/ats/offers.ts +5 -5
  247. package/{resources → src/resources}/ats/stages.ts +7 -5
  248. package/{resources → src/resources}/hris/benefits/benefits.ts +11 -7
  249. package/{resources → src/resources}/hris/benefits/individuals.ts +15 -9
  250. package/{resources → src/resources}/hris/company.ts +4 -4
  251. package/{resources → src/resources}/hris/directory.ts +5 -5
  252. package/{resources → src/resources}/hris/hris.ts +2 -2
  253. package/{resources → src/resources}/hris/individuals/employment-data.ts +8 -6
  254. package/{resources → src/resources}/hris/individuals/individuals.ts +9 -7
  255. package/{resources → src/resources}/hris/pay-statements.ts +9 -7
  256. package/{resources → src/resources}/hris/payments.ts +8 -6
  257. package/{resources → src/resources}/providers.ts +7 -5
  258. package/{streaming.ts → src/streaming.ts} +148 -75
  259. package/src/uploads.ts +249 -0
  260. package/src/version.ts +1 -0
  261. package/{dist/esm/streaming.d.ts → streaming.d.ts} +2 -0
  262. package/streaming.d.ts.map +1 -0
  263. package/streaming.js +213 -0
  264. package/streaming.js.map +1 -0
  265. package/{dist/esm/streaming.js → streaming.mjs} +117 -58
  266. package/streaming.mjs.map +1 -0
  267. package/uploads.d.ts +90 -0
  268. package/uploads.d.ts.map +1 -0
  269. package/uploads.js +208 -0
  270. package/uploads.js.map +1 -0
  271. package/uploads.mjs +175 -0
  272. package/uploads.mjs.map +1 -0
  273. package/version.d.ts +2 -0
  274. package/version.d.ts.map +1 -0
  275. package/{dist/cjs/version.js → version.js} +1 -1
  276. package/version.js.map +1 -0
  277. package/version.mjs +2 -0
  278. package/version.mjs.map +1 -0
  279. package/_shims/fetch.node.ts +0 -11
  280. package/_shims/fetch.ts +0 -32
  281. package/_shims/formdata.ts +0 -22
  282. package/_shims/newFileArgs.ts +0 -94
  283. package/_shims/toFile.node.ts +0 -25
  284. package/_shims/toFile.ts +0 -26
  285. package/_shims/uploadable.node.ts +0 -21
  286. package/_shims/uploadable.ts +0 -82
  287. package/check-version.ts +0 -18
  288. package/dist/cjs/_shims/agent.d.ts +0 -9
  289. package/dist/cjs/_shims/agent.d.ts.map +0 -1
  290. package/dist/cjs/_shims/agent.js.map +0 -1
  291. package/dist/cjs/_shims/agent.node.d.ts +0 -6
  292. package/dist/cjs/_shims/agent.node.d.ts.map +0 -1
  293. package/dist/cjs/_shims/agent.node.js.map +0 -1
  294. package/dist/cjs/_shims/fetch.d.ts +0 -19
  295. package/dist/cjs/_shims/fetch.d.ts.map +0 -1
  296. package/dist/cjs/_shims/fetch.js +0 -24
  297. package/dist/cjs/_shims/fetch.js.map +0 -1
  298. package/dist/cjs/_shims/fetch.node.d.ts +0 -9
  299. package/dist/cjs/_shims/fetch.node.d.ts.map +0 -1
  300. package/dist/cjs/_shims/fetch.node.js +0 -68
  301. package/dist/cjs/_shims/fetch.node.js.map +0 -1
  302. package/dist/cjs/_shims/fileFromPath.d.ts.map +0 -1
  303. package/dist/cjs/_shims/fileFromPath.js +0 -49
  304. package/dist/cjs/_shims/fileFromPath.js.map +0 -1
  305. package/dist/cjs/_shims/fileFromPath.node.d.ts.map +0 -1
  306. package/dist/cjs/_shims/fileFromPath.node.js +0 -50
  307. package/dist/cjs/_shims/fileFromPath.node.js.map +0 -1
  308. package/dist/cjs/_shims/formdata.d.ts +0 -13
  309. package/dist/cjs/_shims/formdata.d.ts.map +0 -1
  310. package/dist/cjs/_shims/formdata.js +0 -20
  311. package/dist/cjs/_shims/formdata.js.map +0 -1
  312. package/dist/cjs/_shims/formdata.node.d.ts +0 -7
  313. package/dist/cjs/_shims/formdata.node.d.ts.map +0 -1
  314. package/dist/cjs/_shims/formdata.node.js +0 -27
  315. package/dist/cjs/_shims/formdata.node.js.map +0 -1
  316. package/dist/cjs/_shims/getMultipartRequestOptions.d.ts +0 -10
  317. package/dist/cjs/_shims/getMultipartRequestOptions.d.ts.map +0 -1
  318. package/dist/cjs/_shims/getMultipartRequestOptions.js +0 -44
  319. package/dist/cjs/_shims/getMultipartRequestOptions.js.map +0 -1
  320. package/dist/cjs/_shims/getMultipartRequestOptions.node.d.ts +0 -10
  321. package/dist/cjs/_shims/getMultipartRequestOptions.node.d.ts.map +0 -1
  322. package/dist/cjs/_shims/getMultipartRequestOptions.node.js +0 -52
  323. package/dist/cjs/_shims/getMultipartRequestOptions.node.js.map +0 -1
  324. package/dist/cjs/_shims/newFileArgs.d.ts +0 -19
  325. package/dist/cjs/_shims/newFileArgs.d.ts.map +0 -1
  326. package/dist/cjs/_shims/newFileArgs.js +0 -169
  327. package/dist/cjs/_shims/newFileArgs.js.map +0 -1
  328. package/dist/cjs/_shims/toFile.d.ts +0 -21
  329. package/dist/cjs/_shims/toFile.d.ts.map +0 -1
  330. package/dist/cjs/_shims/toFile.js +0 -56
  331. package/dist/cjs/_shims/toFile.js.map +0 -1
  332. package/dist/cjs/_shims/toFile.node.d.ts +0 -20
  333. package/dist/cjs/_shims/toFile.node.d.ts.map +0 -1
  334. package/dist/cjs/_shims/toFile.node.js +0 -56
  335. package/dist/cjs/_shims/toFile.node.js.map +0 -1
  336. package/dist/cjs/_shims/uploadable.d.ts +0 -56
  337. package/dist/cjs/_shims/uploadable.d.ts.map +0 -1
  338. package/dist/cjs/_shims/uploadable.js +0 -37
  339. package/dist/cjs/_shims/uploadable.js.map +0 -1
  340. package/dist/cjs/_shims/uploadable.node.d.ts +0 -7
  341. package/dist/cjs/_shims/uploadable.node.d.ts.map +0 -1
  342. package/dist/cjs/_shims/uploadable.node.js +0 -23
  343. package/dist/cjs/_shims/uploadable.node.js.map +0 -1
  344. package/dist/cjs/check-version.d.ts +0 -2
  345. package/dist/cjs/check-version.d.ts.map +0 -1
  346. package/dist/cjs/check-version.js +0 -23
  347. package/dist/cjs/check-version.js.map +0 -1
  348. package/dist/cjs/core.d.ts +0 -221
  349. package/dist/cjs/core.d.ts.map +0 -1
  350. package/dist/cjs/core.js.map +0 -1
  351. package/dist/cjs/error.d.ts +0 -48
  352. package/dist/cjs/error.d.ts.map +0 -1
  353. package/dist/cjs/error.js.map +0 -1
  354. package/dist/cjs/index.d.ts.map +0 -1
  355. package/dist/cjs/index.js.map +0 -1
  356. package/dist/cjs/pagination.d.ts +0 -168
  357. package/dist/cjs/pagination.d.ts.map +0 -1
  358. package/dist/cjs/pagination.js.map +0 -1
  359. package/dist/cjs/resource.d.ts +0 -12
  360. package/dist/cjs/resource.d.ts.map +0 -1
  361. package/dist/cjs/resource.js.map +0 -1
  362. package/dist/cjs/resources/account.d.ts +0 -54
  363. package/dist/cjs/resources/account.d.ts.map +0 -1
  364. package/dist/cjs/resources/account.js.map +0 -1
  365. package/dist/cjs/resources/ats/applications.d.ts +0 -36
  366. package/dist/cjs/resources/ats/applications.d.ts.map +0 -1
  367. package/dist/cjs/resources/ats/applications.js.map +0 -1
  368. package/dist/cjs/resources/ats/ats.d.ts +0 -32
  369. package/dist/cjs/resources/ats/ats.js.map +0 -1
  370. package/dist/cjs/resources/ats/candidates.d.ts +0 -50
  371. package/dist/cjs/resources/ats/candidates.d.ts.map +0 -1
  372. package/dist/cjs/resources/ats/candidates.js.map +0 -1
  373. package/dist/cjs/resources/ats/index.d.ts +0 -7
  374. package/dist/cjs/resources/ats/index.d.ts.map +0 -1
  375. package/dist/cjs/resources/ats/index.js.map +0 -1
  376. package/dist/cjs/resources/ats/jobs.d.ts +0 -47
  377. package/dist/cjs/resources/ats/jobs.d.ts.map +0 -1
  378. package/dist/cjs/resources/ats/jobs.js.map +0 -1
  379. package/dist/cjs/resources/ats/offers.d.ts +0 -39
  380. package/dist/cjs/resources/ats/offers.d.ts.map +0 -1
  381. package/dist/cjs/resources/ats/offers.js.map +0 -1
  382. package/dist/cjs/resources/ats/stages.d.ts +0 -28
  383. package/dist/cjs/resources/ats/stages.d.ts.map +0 -1
  384. package/dist/cjs/resources/ats/stages.js +0 -65
  385. package/dist/cjs/resources/ats/stages.js.map +0 -1
  386. package/dist/cjs/resources/hris/benefits/benefits.d.ts +0 -180
  387. package/dist/cjs/resources/hris/benefits/benefits.d.ts.map +0 -1
  388. package/dist/cjs/resources/hris/benefits/benefits.js.map +0 -1
  389. package/dist/cjs/resources/hris/benefits/index.d.ts +0 -28
  390. package/dist/cjs/resources/hris/benefits/index.d.ts.map +0 -1
  391. package/dist/cjs/resources/hris/benefits/index.js.map +0 -1
  392. package/dist/cjs/resources/hris/benefits/individuals.d.ts +0 -176
  393. package/dist/cjs/resources/hris/benefits/individuals.d.ts.map +0 -1
  394. package/dist/cjs/resources/hris/benefits/individuals.js +0 -114
  395. package/dist/cjs/resources/hris/benefits/individuals.js.map +0 -1
  396. package/dist/cjs/resources/hris/company.d.ts +0 -108
  397. package/dist/cjs/resources/hris/company.d.ts.map +0 -1
  398. package/dist/cjs/resources/hris/company.js.map +0 -1
  399. package/dist/cjs/resources/hris/directory.d.ts +0 -70
  400. package/dist/cjs/resources/hris/directory.d.ts.map +0 -1
  401. package/dist/cjs/resources/hris/directory.js.map +0 -1
  402. package/dist/cjs/resources/hris/hris.d.ts +0 -134
  403. package/dist/cjs/resources/hris/hris.d.ts.map +0 -1
  404. package/dist/cjs/resources/hris/hris.js.map +0 -1
  405. package/dist/cjs/resources/hris/index.d.ts +0 -34
  406. package/dist/cjs/resources/hris/index.d.ts.map +0 -1
  407. package/dist/cjs/resources/hris/index.js.map +0 -1
  408. package/dist/cjs/resources/hris/individuals/employment-data.d.ts +0 -150
  409. package/dist/cjs/resources/hris/individuals/employment-data.d.ts.map +0 -1
  410. package/dist/cjs/resources/hris/individuals/employment-data.js.map +0 -1
  411. package/dist/cjs/resources/hris/individuals/index.d.ts +0 -14
  412. package/dist/cjs/resources/hris/individuals/index.d.ts.map +0 -1
  413. package/dist/cjs/resources/hris/individuals/index.js.map +0 -1
  414. package/dist/cjs/resources/hris/individuals/individuals.d.ts +0 -91
  415. package/dist/cjs/resources/hris/individuals/individuals.d.ts.map +0 -1
  416. package/dist/cjs/resources/hris/individuals/individuals.js.map +0 -1
  417. package/dist/cjs/resources/hris/pay-statements.d.ts +0 -195
  418. package/dist/cjs/resources/hris/pay-statements.d.ts.map +0 -1
  419. package/dist/cjs/resources/hris/pay-statements.js +0 -69
  420. package/dist/cjs/resources/hris/pay-statements.js.map +0 -1
  421. package/dist/cjs/resources/hris/payments.d.ts +0 -60
  422. package/dist/cjs/resources/hris/payments.d.ts.map +0 -1
  423. package/dist/cjs/resources/hris/payments.js +0 -62
  424. package/dist/cjs/resources/hris/payments.js.map +0 -1
  425. package/dist/cjs/resources/index.d.ts +0 -5
  426. package/dist/cjs/resources/index.d.ts.map +0 -1
  427. package/dist/cjs/resources/index.js.map +0 -1
  428. package/dist/cjs/resources/providers.d.ts +0 -51
  429. package/dist/cjs/resources/providers.d.ts.map +0 -1
  430. package/dist/cjs/resources/providers.js +0 -62
  431. package/dist/cjs/resources/providers.js.map +0 -1
  432. package/dist/cjs/resources/top-level.d.ts.map +0 -1
  433. package/dist/cjs/resources/top-level.js.map +0 -1
  434. package/dist/cjs/streaming.d.ts +0 -12
  435. package/dist/cjs/streaming.d.ts.map +0 -1
  436. package/dist/cjs/streaming.js +0 -284
  437. package/dist/cjs/streaming.js.map +0 -1
  438. package/dist/cjs/uploads.d.ts +0 -24
  439. package/dist/cjs/uploads.d.ts.map +0 -1
  440. package/dist/cjs/uploads.js +0 -121
  441. package/dist/cjs/uploads.js.map +0 -1
  442. package/dist/cjs/version.d.ts +0 -2
  443. package/dist/cjs/version.d.ts.map +0 -1
  444. package/dist/cjs/version.js.map +0 -1
  445. package/dist/esm/_shims/agent.d.ts.map +0 -1
  446. package/dist/esm/_shims/agent.js.map +0 -1
  447. package/dist/esm/_shims/agent.node.d.ts.map +0 -1
  448. package/dist/esm/_shims/agent.node.js.map +0 -1
  449. package/dist/esm/_shims/fetch.d.ts +0 -19
  450. package/dist/esm/_shims/fetch.d.ts.map +0 -1
  451. package/dist/esm/_shims/fetch.js +0 -18
  452. package/dist/esm/_shims/fetch.js.map +0 -1
  453. package/dist/esm/_shims/fetch.node.d.ts +0 -9
  454. package/dist/esm/_shims/fetch.node.d.ts.map +0 -1
  455. package/dist/esm/_shims/fetch.node.js +0 -7
  456. package/dist/esm/_shims/fetch.node.js.map +0 -1
  457. package/dist/esm/_shims/fileFromPath.d.ts +0 -23
  458. package/dist/esm/_shims/fileFromPath.d.ts.map +0 -1
  459. package/dist/esm/_shims/fileFromPath.js.map +0 -1
  460. package/dist/esm/_shims/fileFromPath.node.d.ts +0 -18
  461. package/dist/esm/_shims/fileFromPath.node.d.ts.map +0 -1
  462. package/dist/esm/_shims/fileFromPath.node.js.map +0 -1
  463. package/dist/esm/_shims/formdata.d.ts +0 -13
  464. package/dist/esm/_shims/formdata.d.ts.map +0 -1
  465. package/dist/esm/_shims/formdata.js.map +0 -1
  466. package/dist/esm/_shims/formdata.node.d.ts +0 -7
  467. package/dist/esm/_shims/formdata.node.d.ts.map +0 -1
  468. package/dist/esm/_shims/formdata.node.js.map +0 -1
  469. package/dist/esm/_shims/getMultipartRequestOptions.d.ts.map +0 -1
  470. package/dist/esm/_shims/getMultipartRequestOptions.js +0 -7
  471. package/dist/esm/_shims/getMultipartRequestOptions.js.map +0 -1
  472. package/dist/esm/_shims/getMultipartRequestOptions.node.d.ts.map +0 -1
  473. package/dist/esm/_shims/getMultipartRequestOptions.node.js.map +0 -1
  474. package/dist/esm/_shims/newFileArgs.d.ts +0 -19
  475. package/dist/esm/_shims/newFileArgs.d.ts.map +0 -1
  476. package/dist/esm/_shims/newFileArgs.js +0 -66
  477. package/dist/esm/_shims/newFileArgs.js.map +0 -1
  478. package/dist/esm/_shims/toFile.d.ts +0 -21
  479. package/dist/esm/_shims/toFile.d.ts.map +0 -1
  480. package/dist/esm/_shims/toFile.js +0 -19
  481. package/dist/esm/_shims/toFile.js.map +0 -1
  482. package/dist/esm/_shims/toFile.node.d.ts +0 -20
  483. package/dist/esm/_shims/toFile.node.d.ts.map +0 -1
  484. package/dist/esm/_shims/toFile.node.js +0 -19
  485. package/dist/esm/_shims/toFile.node.js.map +0 -1
  486. package/dist/esm/_shims/uploadable.d.ts +0 -56
  487. package/dist/esm/_shims/uploadable.d.ts.map +0 -1
  488. package/dist/esm/_shims/uploadable.js +0 -30
  489. package/dist/esm/_shims/uploadable.js.map +0 -1
  490. package/dist/esm/_shims/uploadable.node.d.ts +0 -7
  491. package/dist/esm/_shims/uploadable.node.d.ts.map +0 -1
  492. package/dist/esm/_shims/uploadable.node.js +0 -10
  493. package/dist/esm/_shims/uploadable.node.js.map +0 -1
  494. package/dist/esm/check-version.d.ts +0 -2
  495. package/dist/esm/check-version.d.ts.map +0 -1
  496. package/dist/esm/check-version.js +0 -16
  497. package/dist/esm/check-version.js.map +0 -1
  498. package/dist/esm/core.d.ts.map +0 -1
  499. package/dist/esm/core.js.map +0 -1
  500. package/dist/esm/error.d.ts.map +0 -1
  501. package/dist/esm/error.js.map +0 -1
  502. package/dist/esm/index.d.ts.map +0 -1
  503. package/dist/esm/index.js.map +0 -1
  504. package/dist/esm/package.json +0 -3
  505. package/dist/esm/pagination.d.ts.map +0 -1
  506. package/dist/esm/pagination.js.map +0 -1
  507. package/dist/esm/resource.d.ts.map +0 -1
  508. package/dist/esm/resource.js.map +0 -1
  509. package/dist/esm/resources/account.d.ts.map +0 -1
  510. package/dist/esm/resources/account.js.map +0 -1
  511. package/dist/esm/resources/ats/applications.d.ts.map +0 -1
  512. package/dist/esm/resources/ats/applications.js.map +0 -1
  513. package/dist/esm/resources/ats/ats.d.ts.map +0 -1
  514. package/dist/esm/resources/ats/ats.js.map +0 -1
  515. package/dist/esm/resources/ats/candidates.d.ts.map +0 -1
  516. package/dist/esm/resources/ats/candidates.js.map +0 -1
  517. package/dist/esm/resources/ats/index.d.ts.map +0 -1
  518. package/dist/esm/resources/ats/index.js +0 -8
  519. package/dist/esm/resources/ats/index.js.map +0 -1
  520. package/dist/esm/resources/ats/jobs.d.ts.map +0 -1
  521. package/dist/esm/resources/ats/jobs.js.map +0 -1
  522. package/dist/esm/resources/ats/offers.d.ts.map +0 -1
  523. package/dist/esm/resources/ats/offers.js.map +0 -1
  524. package/dist/esm/resources/ats/stages.d.ts.map +0 -1
  525. package/dist/esm/resources/ats/stages.js.map +0 -1
  526. package/dist/esm/resources/hris/benefits/benefits.d.ts.map +0 -1
  527. package/dist/esm/resources/hris/benefits/benefits.js.map +0 -1
  528. package/dist/esm/resources/hris/benefits/index.d.ts.map +0 -1
  529. package/dist/esm/resources/hris/benefits/index.js.map +0 -1
  530. package/dist/esm/resources/hris/benefits/individuals.d.ts.map +0 -1
  531. package/dist/esm/resources/hris/benefits/individuals.js.map +0 -1
  532. package/dist/esm/resources/hris/company.d.ts.map +0 -1
  533. package/dist/esm/resources/hris/company.js.map +0 -1
  534. package/dist/esm/resources/hris/directory.d.ts.map +0 -1
  535. package/dist/esm/resources/hris/directory.js.map +0 -1
  536. package/dist/esm/resources/hris/hris.js.map +0 -1
  537. package/dist/esm/resources/hris/index.d.ts.map +0 -1
  538. package/dist/esm/resources/hris/index.js +0 -9
  539. package/dist/esm/resources/hris/index.js.map +0 -1
  540. package/dist/esm/resources/hris/individuals/employment-data.d.ts.map +0 -1
  541. package/dist/esm/resources/hris/individuals/employment-data.js.map +0 -1
  542. package/dist/esm/resources/hris/individuals/index.d.ts.map +0 -1
  543. package/dist/esm/resources/hris/individuals/index.js.map +0 -1
  544. package/dist/esm/resources/hris/individuals/individuals.d.ts.map +0 -1
  545. package/dist/esm/resources/hris/individuals/individuals.js.map +0 -1
  546. package/dist/esm/resources/hris/pay-statements.d.ts.map +0 -1
  547. package/dist/esm/resources/hris/pay-statements.js.map +0 -1
  548. package/dist/esm/resources/hris/payments.d.ts.map +0 -1
  549. package/dist/esm/resources/hris/payments.js.map +0 -1
  550. package/dist/esm/resources/index.d.ts.map +0 -1
  551. package/dist/esm/resources/index.js +0 -6
  552. package/dist/esm/resources/index.js.map +0 -1
  553. package/dist/esm/resources/providers.d.ts.map +0 -1
  554. package/dist/esm/resources/providers.js.map +0 -1
  555. package/dist/esm/resources/top-level.d.ts +0 -2
  556. package/dist/esm/resources/top-level.d.ts.map +0 -1
  557. package/dist/esm/resources/top-level.js.map +0 -1
  558. package/dist/esm/streaming.d.ts.map +0 -1
  559. package/dist/esm/streaming.js.map +0 -1
  560. package/dist/esm/uploads.d.ts +0 -24
  561. package/dist/esm/uploads.d.ts.map +0 -1
  562. package/dist/esm/uploads.js +0 -61
  563. package/dist/esm/uploads.js.map +0 -1
  564. package/dist/esm/version.d.ts +0 -2
  565. package/dist/esm/version.d.ts.map +0 -1
  566. package/dist/esm/version.js +0 -2
  567. package/dist/esm/version.js.map +0 -1
  568. package/uploads.ts +0 -81
  569. package/version.ts +0 -1
  570. /package/{dist/cjs/_shims → _shims}/agent.js +0 -0
  571. /package/{dist/cjs/_shims → _shims}/agent.node.js +0 -0
  572. /package/_shims/{formdata.node.ts → formdata.node.mjs} +0 -0
  573. /package/{dist/esm/_shims → _shims}/getMultipartRequestOptions.d.ts +0 -0
  574. /package/{dist/esm/_shims → _shims}/getMultipartRequestOptions.node.d.ts +0 -0
  575. /package/{dist/esm/pagination.d.ts → pagination.d.ts} +0 -0
  576. /package/{dist/esm/resource.d.ts → resource.d.ts} +0 -0
  577. /package/{dist/cjs/resource.js → resource.js} +0 -0
  578. /package/{dist/esm/resources → resources}/ats/index.d.ts +0 -0
  579. /package/{dist/esm/resources → resources}/hris/benefits/index.d.ts +0 -0
  580. /package/{dist/esm/resources → resources}/hris/index.d.ts +0 -0
  581. /package/{dist/esm/resources → resources}/hris/individuals/index.d.ts +0 -0
  582. /package/{dist/esm/resources → resources}/index.d.ts +0 -0
  583. /package/{dist/cjs/resources → resources}/top-level.d.ts +0 -0
  584. /package/{dist/cjs/resources → resources}/top-level.js +0 -0
  585. /package/{pagination.ts → src/pagination.ts} +0 -0
  586. /package/{resource.ts → src/resource.ts} +0 -0
  587. /package/{resources → src/resources}/ats/index.ts +0 -0
  588. /package/{resources → src/resources}/hris/benefits/index.ts +0 -0
  589. /package/{resources → src/resources}/hris/index.ts +0 -0
  590. /package/{resources → src/resources}/hris/individuals/index.ts +0 -0
  591. /package/{resources → src/resources}/index.ts +0 -0
  592. /package/{resources → src/resources}/top-level.ts +0 -0
@@ -1,43 +1,4 @@
1
- import { createResponseHeaders } from './core.js';
2
- class SSEDecoder {
3
- constructor() {
4
- this.event = null;
5
- this.data = [];
6
- this.chunks = [];
7
- }
8
- decode(line) {
9
- if (line.endsWith('\r')) {
10
- line = line.substring(0, line.length - 1);
11
- }
12
- if (!line) {
13
- // empty line and we didn't previously encounter any messages
14
- if (!this.event && !this.data.length) return null;
15
- const sse = {
16
- event: this.event,
17
- data: this.data.join('\n'),
18
- raw: this.chunks,
19
- };
20
- this.event = null;
21
- this.data = [];
22
- this.chunks = [];
23
- return sse;
24
- }
25
- this.chunks.push(line);
26
- if (line.startsWith(':')) {
27
- return null;
28
- }
29
- let [fieldname, _, value] = partition(line, ':');
30
- if (value.startsWith(' ')) {
31
- value = value.substring(1);
32
- }
33
- if (fieldname === 'event') {
34
- this.event = value;
35
- } else if (fieldname === 'data') {
36
- this.data.push(value);
37
- }
38
- return null;
39
- }
40
- }
1
+ import { createResponseHeaders } from './core.mjs';
41
2
  export class Stream {
42
3
  constructor(response, controller) {
43
4
  this.response = response;
@@ -51,16 +12,9 @@ export class Stream {
51
12
  throw new Error(`Attempted to iterate over a response with no body`);
52
13
  }
53
14
  const lineDecoder = new LineDecoder();
54
- for await (const chunk of this.response.body) {
55
- let text;
56
- if (chunk instanceof Buffer) {
57
- text = chunk.toString();
58
- } else if (chunk instanceof Uint8Array) {
59
- text = Buffer.from(chunk).toString();
60
- } else {
61
- text = chunk;
62
- }
63
- for (const line of lineDecoder.decode(text)) {
15
+ const iter = readableStreamAsyncIterable(this.response.body);
16
+ for await (const chunk of iter) {
17
+ for (const line of lineDecoder.decode(chunk)) {
64
18
  const sse = this.decoder.decode(line);
65
19
  if (sse) yield sse;
66
20
  }
@@ -71,6 +25,7 @@ export class Stream {
71
25
  }
72
26
  }
73
27
  async *[Symbol.asyncIterator]() {
28
+ let done = false;
74
29
  try {
75
30
  for await (const sse of this.iterMessages()) {
76
31
  try {
@@ -81,17 +36,56 @@ export class Stream {
81
36
  throw e;
82
37
  }
83
38
  }
39
+ done = true;
84
40
  } catch (e) {
85
41
  // If the user calls `stream.controller.abort()`, we should exit without throwing.
86
42
  if (e instanceof Error && e.name === 'AbortError') return;
87
43
  throw e;
88
44
  } finally {
89
45
  // If the user `break`s, abort the ongoing request.
90
- this.controller.abort();
46
+ if (!done) this.controller.abort();
47
+ }
48
+ }
49
+ }
50
+ class SSEDecoder {
51
+ constructor() {
52
+ this.event = null;
53
+ this.data = [];
54
+ this.chunks = [];
55
+ }
56
+ decode(line) {
57
+ if (line.endsWith('\r')) {
58
+ line = line.substring(0, line.length - 1);
91
59
  }
60
+ if (!line) {
61
+ // empty line and we didn't previously encounter any messages
62
+ if (!this.event && !this.data.length) return null;
63
+ const sse = {
64
+ event: this.event,
65
+ data: this.data.join('\n'),
66
+ raw: this.chunks,
67
+ };
68
+ this.event = null;
69
+ this.data = [];
70
+ this.chunks = [];
71
+ return sse;
72
+ }
73
+ this.chunks.push(line);
74
+ if (line.startsWith(':')) {
75
+ return null;
76
+ }
77
+ let [fieldname, _, value] = partition(line, ':');
78
+ if (value.startsWith(' ')) {
79
+ value = value.substring(1);
80
+ }
81
+ if (fieldname === 'event') {
82
+ this.event = value;
83
+ } else if (fieldname === 'data') {
84
+ this.data.push(value);
85
+ }
86
+ return null;
92
87
  }
93
88
  }
94
- const NEWLINE_CHARS = '\n\r\x0b\x0c\x1c\x1d\x1e\x85\u2028\u2029';
95
89
  /**
96
90
  * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally
97
91
  * reading lines from text.
@@ -103,7 +97,8 @@ class LineDecoder {
103
97
  this.buffer = [];
104
98
  this.trailingCR = false;
105
99
  }
106
- decode(text) {
100
+ decode(chunk) {
101
+ let text = this.decodeText(chunk);
107
102
  if (this.trailingCR) {
108
103
  text = '\r' + text;
109
104
  this.trailingCR = false;
@@ -115,9 +110,9 @@ class LineDecoder {
115
110
  if (!text) {
116
111
  return [];
117
112
  }
118
- const trailing_newline = NEWLINE_CHARS.includes(text.slice(-1));
119
- let lines = text.split(/\r\n|[\n\r\x0b\x0c\x1c\x1d\x1e\x85\u2028\u2029]/g);
120
- if (lines.length === 1 && !trailing_newline) {
113
+ const trailingNewline = LineDecoder.NEWLINE_CHARS.has(text[text.length - 1] || '');
114
+ let lines = text.split(LineDecoder.NEWLINE_REGEXP);
115
+ if (lines.length === 1 && !trailingNewline) {
121
116
  this.buffer.push(lines[0]);
122
117
  return [];
123
118
  }
@@ -125,11 +120,41 @@ class LineDecoder {
125
120
  lines = [this.buffer.join('') + lines[0], ...lines.slice(1)];
126
121
  this.buffer = [];
127
122
  }
128
- if (!trailing_newline) {
123
+ if (!trailingNewline) {
129
124
  this.buffer = [lines.pop() || ''];
130
125
  }
131
126
  return lines;
132
127
  }
128
+ decodeText(bytes) {
129
+ var _a;
130
+ if (bytes == null) return '';
131
+ if (typeof bytes === 'string') return bytes;
132
+ // Node:
133
+ if (typeof Buffer !== 'undefined') {
134
+ if (bytes instanceof Buffer) {
135
+ return bytes.toString();
136
+ }
137
+ if (bytes instanceof Uint8Array) {
138
+ return Buffer.from(bytes).toString();
139
+ }
140
+ throw new Error(
141
+ `Unexpected: received non-Uint8Array (${bytes.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`,
142
+ );
143
+ }
144
+ // Browser
145
+ if (typeof TextDecoder !== 'undefined') {
146
+ if (bytes instanceof Uint8Array || bytes instanceof ArrayBuffer) {
147
+ (_a = this.textDecoder) !== null && _a !== void 0 ? _a : (this.textDecoder = new TextDecoder('utf8'));
148
+ return this.textDecoder.decode(bytes);
149
+ }
150
+ throw new Error(
151
+ `Unexpected: received non-Uint8Array/ArrayBuffer (${bytes.constructor.name}) in a web platform. Please report this error.`,
152
+ );
153
+ }
154
+ throw new Error(
155
+ `Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`,
156
+ );
157
+ }
133
158
  flush() {
134
159
  if (!this.buffer.length && !this.trailingCR) {
135
160
  return [];
@@ -140,6 +165,9 @@ class LineDecoder {
140
165
  return lines;
141
166
  }
142
167
  }
168
+ // prettier-ignore
169
+ LineDecoder.NEWLINE_CHARS = new Set(['\n', '\r', '\x0b', '\x0c', '\x1c', '\x1d', '\x1e', '\x85', '\u2028', '\u2029']);
170
+ LineDecoder.NEWLINE_REGEXP = /\r\n|[\n\r\x0b\x0c\x1c\x1d\x1e\x85\u2028\u2029]/g;
143
171
  function partition(str, delimiter) {
144
172
  const index = str.indexOf(delimiter);
145
173
  if (index !== -1) {
@@ -147,4 +175,35 @@ function partition(str, delimiter) {
147
175
  }
148
176
  return [str, '', ''];
149
177
  }
150
- //# sourceMappingURL=streaming.js.map
178
+ /**
179
+ * Most browsers don't yet have async iterable support for ReadableStream,
180
+ * and Node has a very different way of reading bytes from its "ReadableStream".
181
+ *
182
+ * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490
183
+ */
184
+ function readableStreamAsyncIterable(stream) {
185
+ if (stream[Symbol.asyncIterator]) return stream;
186
+ const reader = stream.getReader();
187
+ return {
188
+ async next() {
189
+ try {
190
+ const result = await reader.read();
191
+ if (result === null || result === void 0 ? void 0 : result.done) reader.releaseLock(); // release lock when stream becomes closed
192
+ return result;
193
+ } catch (e) {
194
+ reader.releaseLock(); // release lock when stream becomes errored
195
+ throw e;
196
+ }
197
+ },
198
+ async return() {
199
+ const cancelPromise = reader.cancel();
200
+ reader.releaseLock();
201
+ await cancelPromise;
202
+ return { done: true, value: undefined };
203
+ },
204
+ [Symbol.asyncIterator]() {
205
+ return this;
206
+ },
207
+ };
208
+ }
209
+ //# sourceMappingURL=streaming.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.mjs","sourceRoot":"","sources":["src/streaming.ts"],"names":[],"mappings":"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"}
package/uploads.d.ts ADDED
@@ -0,0 +1,90 @@
1
+ import { type RequestOptions } from './core.js';
2
+ import { type Readable } from '@tryfinch/finch-api/_shims/node-readable';
3
+ import { type BodyInit } from '@tryfinch/finch-api/_shims/fetch';
4
+ import { FormData, type FilePropertyBag } from '@tryfinch/finch-api/_shims/formdata';
5
+ import { fileFromPath } from '@tryfinch/finch-api/_shims/fileFromPath';
6
+ import { type FsReadStream } from '@tryfinch/finch-api/_shims/node-readable';
7
+ export { fileFromPath };
8
+ export type BlobPart = string | ArrayBuffer | ArrayBufferView | BlobLike | Uint8Array | DataView;
9
+ /**
10
+ * Typically, this is a native "File" class.
11
+ *
12
+ * We provide the {@link toFile} utility to convert a variety of objects
13
+ * into the File class.
14
+ *
15
+ * For convenience, you can also pass a fetch Response, or in Node,
16
+ * the result of fs.createReadStream().
17
+ */
18
+ export type Uploadable = FileLike | ResponseLike | FsReadStream;
19
+ /**
20
+ * Intended to match web.Blob, node.Blob, node-fetch.Blob, etc.
21
+ */
22
+ export interface BlobLike {
23
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */
24
+ readonly size: number;
25
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */
26
+ readonly type: string;
27
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */
28
+ text(): Promise<string>;
29
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */
30
+ slice(start?: number, end?: number): BlobLike;
31
+ }
32
+ /**
33
+ * Intended to match web.File, node.File, node-fetch.File, etc.
34
+ */
35
+ export interface FileLike extends BlobLike {
36
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */
37
+ readonly lastModified: number;
38
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */
39
+ readonly name: string;
40
+ }
41
+ /**
42
+ * Intended to match web.Response, node.Response, node-fetch.Response, etc.
43
+ */
44
+ export interface ResponseLike {
45
+ url: string;
46
+ blob(): Promise<BlobLike>;
47
+ }
48
+ export declare const isResponseLike: (value: any) => value is ResponseLike;
49
+ export declare const isFileLike: (value: any) => value is FileLike;
50
+ /**
51
+ * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check
52
+ * adds the arrayBuffer() method type because it is available and used at runtime
53
+ */
54
+ export declare const isBlobLike: (value: any) => value is BlobLike & {
55
+ arrayBuffer(): Promise<ArrayBuffer>;
56
+ };
57
+ export declare const isUploadable: (value: any) => value is Uploadable;
58
+ export type ToFileInput = Uploadable | Exclude<BlobPart, string> | AsyncIterable<BlobPart>;
59
+ /**
60
+ * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
61
+ * @param bits the raw content of the file. Can be an {@link Uploadable}, {@link BlobPart}, or {@link AsyncIterable} of {@link BlobPart}s
62
+ * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible
63
+ * @param {Object=} options additional properties
64
+ * @param {string=} options.type the MIME type of the content
65
+ * @param {number=} options.lastModified the last modified timestamp
66
+ * @returns a {@link File} with the given properties
67
+ */
68
+ export declare function toFile(
69
+ value: ToFileInput | PromiseLike<ToFileInput>,
70
+ name?: string | null | undefined,
71
+ options?: FilePropertyBag | undefined,
72
+ ): Promise<FileLike>;
73
+ export declare class MultipartBody {
74
+ body: Readable | BodyInit;
75
+ constructor(body: Readable | BodyInit);
76
+ get [Symbol.toStringTag](): string;
77
+ }
78
+ export declare const isMultipartBody: (body: any) => body is MultipartBody;
79
+ /**
80
+ * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
81
+ * Otherwise returns the request as is.
82
+ */
83
+ export declare const maybeMultipartFormRequestOptions: <T extends {} = Record<string, unknown>>(
84
+ opts: RequestOptions<T>,
85
+ ) => Promise<RequestOptions<MultipartBody | T>>;
86
+ export declare const multipartFormRequestOptions: <T extends {} = Record<string, unknown>>(
87
+ opts: RequestOptions<T>,
88
+ ) => Promise<RequestOptions<MultipartBody | T>>;
89
+ export declare const createForm: <T = Record<string, unknown>>(body: T | undefined) => Promise<FormData>;
90
+ //# sourceMappingURL=uploads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAQ,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,0CAA0C,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjG;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,6EAA6E;IAC7E,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAE/C;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,oFAAoF;IACpF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,UAAW,GAAG,0BAIP,CAAC;AAEnC,eAAO,MAAM,UAAU,UAAW,GAAG,sBAKlB,CAAC;AAEpB;;;GAGG;AACH,eAAO,MAAM,UAAU,UAAW,GAAG;mBAAwC,QAAQ,WAAW,CAAC;CAOxD,CAAC;AAE1C,eAAO,MAAM,YAAY,UAAW,GAAG,wBAEtC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;AAE3F;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,EAC7C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,OAAO,GAAE,eAAe,GAAG,SAAc,GACxC,OAAO,CAAC,QAAQ,CAAC,CAoBnB;AAuDD,qBAAa,aAAa;IACL,IAAI,EAAE,QAAQ,GAAG,QAAQ;gBAAzB,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAC5C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;CACF;AAED,eAAO,MAAM,eAAe,SAAU,GAAG,0BACsD,CAAC;AAEhG;;;GAGG;AACH,eAAO,MAAM,gCAAgC,iHAO5C,CAAC;AAEF,eAAO,MAAM,2BAA2B,iHAKvC,CAAC;AAEF,eAAO,MAAM,UAAU,wDAA6D,QAAQ,QAAQ,CAInG,CAAC"}
package/uploads.js ADDED
@@ -0,0 +1,208 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.createForm =
4
+ exports.multipartFormRequestOptions =
5
+ exports.maybeMultipartFormRequestOptions =
6
+ exports.isMultipartBody =
7
+ exports.MultipartBody =
8
+ exports.toFile =
9
+ exports.isUploadable =
10
+ exports.isBlobLike =
11
+ exports.isFileLike =
12
+ exports.isResponseLike =
13
+ exports.fileFromPath =
14
+ void 0;
15
+ const formdata_1 = require('@tryfinch/finch-api/_shims/formdata');
16
+ const getMultipartRequestOptions_1 = require('@tryfinch/finch-api/_shims/getMultipartRequestOptions');
17
+ const fileFromPath_1 = require('@tryfinch/finch-api/_shims/fileFromPath');
18
+ Object.defineProperty(exports, 'fileFromPath', {
19
+ enumerable: true,
20
+ get: function () {
21
+ return fileFromPath_1.fileFromPath;
22
+ },
23
+ });
24
+ const node_readable_1 = require('@tryfinch/finch-api/_shims/node-readable');
25
+ const isResponseLike = (value) =>
26
+ value != null &&
27
+ typeof value === 'object' &&
28
+ typeof value.url === 'string' &&
29
+ typeof value.blob === 'function';
30
+ exports.isResponseLike = isResponseLike;
31
+ const isFileLike = (value) =>
32
+ value != null &&
33
+ typeof value === 'object' &&
34
+ typeof value.name === 'string' &&
35
+ typeof value.lastModified === 'number' &&
36
+ (0, exports.isBlobLike)(value);
37
+ exports.isFileLike = isFileLike;
38
+ /**
39
+ * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check
40
+ * adds the arrayBuffer() method type because it is available and used at runtime
41
+ */
42
+ const isBlobLike = (value) =>
43
+ value != null &&
44
+ typeof value === 'object' &&
45
+ typeof value.size === 'number' &&
46
+ typeof value.type === 'string' &&
47
+ typeof value.text === 'function' &&
48
+ typeof value.slice === 'function' &&
49
+ typeof value.arrayBuffer === 'function';
50
+ exports.isBlobLike = isBlobLike;
51
+ const isUploadable = (value) => {
52
+ return (
53
+ (0, exports.isFileLike)(value) ||
54
+ (0, exports.isResponseLike)(value) ||
55
+ (0, node_readable_1.isFsReadStream)(value)
56
+ );
57
+ };
58
+ exports.isUploadable = isUploadable;
59
+ /**
60
+ * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
61
+ * @param bits the raw content of the file. Can be an {@link Uploadable}, {@link BlobPart}, or {@link AsyncIterable} of {@link BlobPart}s
62
+ * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible
63
+ * @param {Object=} options additional properties
64
+ * @param {string=} options.type the MIME type of the content
65
+ * @param {number=} options.lastModified the last modified timestamp
66
+ * @returns a {@link File} with the given properties
67
+ */
68
+ async function toFile(value, name, options = {}) {
69
+ var _a, _b, _c;
70
+ if ((0, exports.isResponseLike)(value)) {
71
+ const blob = await value.blob();
72
+ name ||
73
+ (name =
74
+ (_a = new URL(value.url).pathname.split(/[\\/]/).pop()) !== null && _a !== void 0 ?
75
+ _a
76
+ : 'unknown_file');
77
+ return new formdata_1.File([blob], name, options);
78
+ }
79
+ const bits = await getBytes(value);
80
+ name || (name = (_b = getName(value)) !== null && _b !== void 0 ? _b : 'unknown_file');
81
+ if (!options.type) {
82
+ const type = (_c = bits[0]) === null || _c === void 0 ? void 0 : _c.type;
83
+ if (typeof type === 'string') {
84
+ options = { ...options, type };
85
+ }
86
+ }
87
+ return new formdata_1.File(bits, name, options);
88
+ }
89
+ exports.toFile = toFile;
90
+ async function getBytes(value) {
91
+ var _a;
92
+ // resolve input promise or promiselike object
93
+ value = await value;
94
+ let parts = [];
95
+ if (
96
+ typeof value === 'string' ||
97
+ ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
98
+ value instanceof ArrayBuffer
99
+ ) {
100
+ parts.push(value);
101
+ } else if ((0, exports.isBlobLike)(value)) {
102
+ parts.push(await value.arrayBuffer());
103
+ } else if (
104
+ isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
105
+ ) {
106
+ for await (const chunk of value) {
107
+ parts.push(chunk); // TODO, consider validating?
108
+ }
109
+ } else {
110
+ throw new Error(
111
+ `Unexpected data type: ${typeof value}; constructor: ${
112
+ (_a = value === null || value === void 0 ? void 0 : value.constructor) === null || _a === void 0 ?
113
+ void 0
114
+ : _a.name
115
+ }; props: ${propsForError(value)}`,
116
+ );
117
+ }
118
+ return parts;
119
+ }
120
+ function propsForError(value) {
121
+ const props = Object.getOwnPropertyNames(value);
122
+ return `[${props.map((p) => `"${p}"`).join(', ')}]`;
123
+ }
124
+ function getName(value) {
125
+ var _a;
126
+ return (
127
+ getStringFromMaybeBuffer(value.name) ||
128
+ getStringFromMaybeBuffer(value.filename) ||
129
+ // For fs.ReadStream
130
+ ((_a = getStringFromMaybeBuffer(value.path)) === null || _a === void 0 ? void 0 : _a.split(/[\\/]/).pop())
131
+ );
132
+ }
133
+ const getStringFromMaybeBuffer = (x) => {
134
+ if (typeof x === 'string') return x;
135
+ if (typeof Buffer !== 'undefined' && x instanceof Buffer) return String(x);
136
+ return undefined;
137
+ };
138
+ const isAsyncIterableIterator = (value) =>
139
+ value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
140
+ class MultipartBody {
141
+ constructor(body) {
142
+ this.body = body;
143
+ }
144
+ get [Symbol.toStringTag]() {
145
+ return 'MultipartBody';
146
+ }
147
+ }
148
+ exports.MultipartBody = MultipartBody;
149
+ const isMultipartBody = (body) =>
150
+ body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';
151
+ exports.isMultipartBody = isMultipartBody;
152
+ /**
153
+ * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
154
+ * Otherwise returns the request as is.
155
+ */
156
+ const maybeMultipartFormRequestOptions = async (opts) => {
157
+ if (!hasUploadableValue(opts.body)) return opts;
158
+ const form = await (0, exports.createForm)(opts.body);
159
+ return (0, getMultipartRequestOptions_1.getMultipartRequestOptions)(form, opts);
160
+ };
161
+ exports.maybeMultipartFormRequestOptions = maybeMultipartFormRequestOptions;
162
+ const multipartFormRequestOptions = async (opts) => {
163
+ const form = await (0, exports.createForm)(opts.body);
164
+ return (0, getMultipartRequestOptions_1.getMultipartRequestOptions)(form, opts);
165
+ };
166
+ exports.multipartFormRequestOptions = multipartFormRequestOptions;
167
+ const createForm = async (body) => {
168
+ const form = new formdata_1.FormData();
169
+ await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
170
+ return form;
171
+ };
172
+ exports.createForm = createForm;
173
+ const hasUploadableValue = (value) => {
174
+ if ((0, exports.isUploadable)(value)) return true;
175
+ if (Array.isArray(value)) return value.some(hasUploadableValue);
176
+ if (value && typeof value === 'object') {
177
+ for (const k in value) {
178
+ if (hasUploadableValue(value[k])) return true;
179
+ }
180
+ }
181
+ return false;
182
+ };
183
+ const addFormValue = async (form, key, value) => {
184
+ if (value === undefined) return;
185
+ if (value == null) {
186
+ throw new TypeError(
187
+ `Received null for "${key}"; to pass null in FormData, you must use the string 'null'`,
188
+ );
189
+ }
190
+ // TODO: make nested formats configurable
191
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
192
+ form.append(key, value);
193
+ } else if ((0, exports.isUploadable)(value)) {
194
+ const file = await toFile(value);
195
+ form.append(key, file);
196
+ } else if (Array.isArray(value)) {
197
+ await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
198
+ } else if (typeof value === 'object') {
199
+ await Promise.all(
200
+ Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)),
201
+ );
202
+ } else {
203
+ throw new TypeError(
204
+ `Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`,
205
+ );
206
+ }
207
+ };
208
+ //# 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":"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"}