spotted-ts 0.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 (750) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/LICENSE +201 -0
  3. package/README.md +354 -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 +261 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +261 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +553 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +549 -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/pagination.d.mts +50 -0
  37. package/core/pagination.d.mts.map +1 -0
  38. package/core/pagination.d.ts +50 -0
  39. package/core/pagination.d.ts.map +1 -0
  40. package/core/pagination.js +104 -0
  41. package/core/pagination.js.map +1 -0
  42. package/core/pagination.mjs +98 -0
  43. package/core/pagination.mjs.map +1 -0
  44. package/core/resource.d.mts +6 -0
  45. package/core/resource.d.mts.map +1 -0
  46. package/core/resource.d.ts +6 -0
  47. package/core/resource.d.ts.map +1 -0
  48. package/core/resource.js +11 -0
  49. package/core/resource.js.map +1 -0
  50. package/core/resource.mjs +7 -0
  51. package/core/resource.mjs.map +1 -0
  52. package/core/uploads.d.mts +3 -0
  53. package/core/uploads.d.mts.map +1 -0
  54. package/core/uploads.d.ts +3 -0
  55. package/core/uploads.d.ts.map +1 -0
  56. package/core/uploads.js +6 -0
  57. package/core/uploads.js.map +1 -0
  58. package/core/uploads.mjs +2 -0
  59. package/core/uploads.mjs.map +1 -0
  60. package/error.d.mts +2 -0
  61. package/error.d.mts.map +1 -0
  62. package/error.d.ts +2 -0
  63. package/error.d.ts.map +1 -0
  64. package/error.js +6 -0
  65. package/error.js.map +1 -0
  66. package/error.mjs +2 -0
  67. package/error.mjs.map +1 -0
  68. package/index.d.mts +7 -0
  69. package/index.d.mts.map +1 -0
  70. package/index.d.ts +7 -0
  71. package/index.d.ts.map +1 -0
  72. package/index.js +32 -0
  73. package/index.js.map +1 -0
  74. package/index.mjs +8 -0
  75. package/index.mjs.map +1 -0
  76. package/internal/builtin-types.d.mts +73 -0
  77. package/internal/builtin-types.d.mts.map +1 -0
  78. package/internal/builtin-types.d.ts +73 -0
  79. package/internal/builtin-types.d.ts.map +1 -0
  80. package/internal/builtin-types.js +4 -0
  81. package/internal/builtin-types.js.map +1 -0
  82. package/internal/builtin-types.mjs +3 -0
  83. package/internal/builtin-types.mjs.map +1 -0
  84. package/internal/detect-platform.d.mts +15 -0
  85. package/internal/detect-platform.d.mts.map +1 -0
  86. package/internal/detect-platform.d.ts +15 -0
  87. package/internal/detect-platform.d.ts.map +1 -0
  88. package/internal/detect-platform.js +162 -0
  89. package/internal/detect-platform.js.map +1 -0
  90. package/internal/detect-platform.mjs +157 -0
  91. package/internal/detect-platform.mjs.map +1 -0
  92. package/internal/errors.d.mts +3 -0
  93. package/internal/errors.d.mts.map +1 -0
  94. package/internal/errors.d.ts +3 -0
  95. package/internal/errors.d.ts.map +1 -0
  96. package/internal/errors.js +41 -0
  97. package/internal/errors.js.map +1 -0
  98. package/internal/errors.mjs +36 -0
  99. package/internal/errors.mjs.map +1 -0
  100. package/internal/headers.d.mts +20 -0
  101. package/internal/headers.d.mts.map +1 -0
  102. package/internal/headers.d.ts +20 -0
  103. package/internal/headers.d.ts.map +1 -0
  104. package/internal/headers.js +79 -0
  105. package/internal/headers.js.map +1 -0
  106. package/internal/headers.mjs +74 -0
  107. package/internal/headers.mjs.map +1 -0
  108. package/internal/parse.d.mts +12 -0
  109. package/internal/parse.d.mts.map +1 -0
  110. package/internal/parse.d.ts +12 -0
  111. package/internal/parse.d.ts.map +1 -0
  112. package/internal/parse.js +35 -0
  113. package/internal/parse.js.map +1 -0
  114. package/internal/parse.mjs +32 -0
  115. package/internal/parse.mjs.map +1 -0
  116. package/internal/qs/formats.d.mts +7 -0
  117. package/internal/qs/formats.d.mts.map +1 -0
  118. package/internal/qs/formats.d.ts +7 -0
  119. package/internal/qs/formats.d.ts.map +1 -0
  120. package/internal/qs/formats.js +13 -0
  121. package/internal/qs/formats.js.map +1 -0
  122. package/internal/qs/formats.mjs +9 -0
  123. package/internal/qs/formats.mjs.map +1 -0
  124. package/internal/qs/index.d.mts +10 -0
  125. package/internal/qs/index.d.mts.map +1 -0
  126. package/internal/qs/index.d.ts +10 -0
  127. package/internal/qs/index.d.ts.map +1 -0
  128. package/internal/qs/index.js +14 -0
  129. package/internal/qs/index.js.map +1 -0
  130. package/internal/qs/index.mjs +10 -0
  131. package/internal/qs/index.mjs.map +1 -0
  132. package/internal/qs/stringify.d.mts +3 -0
  133. package/internal/qs/stringify.d.mts.map +1 -0
  134. package/internal/qs/stringify.d.ts +3 -0
  135. package/internal/qs/stringify.d.ts.map +1 -0
  136. package/internal/qs/stringify.js +277 -0
  137. package/internal/qs/stringify.js.map +1 -0
  138. package/internal/qs/stringify.mjs +274 -0
  139. package/internal/qs/stringify.mjs.map +1 -0
  140. package/internal/qs/types.d.mts +57 -0
  141. package/internal/qs/types.d.mts.map +1 -0
  142. package/internal/qs/types.d.ts +57 -0
  143. package/internal/qs/types.d.ts.map +1 -0
  144. package/internal/qs/types.js +3 -0
  145. package/internal/qs/types.js.map +1 -0
  146. package/internal/qs/types.mjs +2 -0
  147. package/internal/qs/types.mjs.map +1 -0
  148. package/internal/qs/utils.d.mts +15 -0
  149. package/internal/qs/utils.d.mts.map +1 -0
  150. package/internal/qs/utils.d.ts +15 -0
  151. package/internal/qs/utils.d.ts.map +1 -0
  152. package/internal/qs/utils.js +230 -0
  153. package/internal/qs/utils.js.map +1 -0
  154. package/internal/qs/utils.mjs +217 -0
  155. package/internal/qs/utils.mjs.map +1 -0
  156. package/internal/request-options.d.mts +75 -0
  157. package/internal/request-options.d.mts.map +1 -0
  158. package/internal/request-options.d.ts +75 -0
  159. package/internal/request-options.d.ts.map +1 -0
  160. package/internal/request-options.js +14 -0
  161. package/internal/request-options.js.map +1 -0
  162. package/internal/request-options.mjs +10 -0
  163. package/internal/request-options.mjs.map +1 -0
  164. package/internal/shim-types.d.mts +17 -0
  165. package/internal/shim-types.d.mts.map +1 -0
  166. package/internal/shim-types.d.ts +17 -0
  167. package/internal/shim-types.d.ts.map +1 -0
  168. package/internal/shim-types.js +4 -0
  169. package/internal/shim-types.js.map +1 -0
  170. package/internal/shim-types.mjs +3 -0
  171. package/internal/shim-types.mjs.map +1 -0
  172. package/internal/shims.d.mts +20 -0
  173. package/internal/shims.d.mts.map +1 -0
  174. package/internal/shims.d.ts +20 -0
  175. package/internal/shims.d.ts.map +1 -0
  176. package/internal/shims.js +92 -0
  177. package/internal/shims.js.map +1 -0
  178. package/internal/shims.mjs +85 -0
  179. package/internal/shims.mjs.map +1 -0
  180. package/internal/to-file.d.mts +45 -0
  181. package/internal/to-file.d.mts.map +1 -0
  182. package/internal/to-file.d.ts +45 -0
  183. package/internal/to-file.d.ts.map +1 -0
  184. package/internal/to-file.js +91 -0
  185. package/internal/to-file.js.map +1 -0
  186. package/internal/to-file.mjs +88 -0
  187. package/internal/to-file.mjs.map +1 -0
  188. package/internal/tslib.js +81 -0
  189. package/internal/tslib.mjs +17 -0
  190. package/internal/types.d.mts +69 -0
  191. package/internal/types.d.mts.map +1 -0
  192. package/internal/types.d.ts +69 -0
  193. package/internal/types.d.ts.map +1 -0
  194. package/internal/types.js +4 -0
  195. package/internal/types.js.map +1 -0
  196. package/internal/types.mjs +3 -0
  197. package/internal/types.mjs.map +1 -0
  198. package/internal/uploads.d.mts +42 -0
  199. package/internal/uploads.d.mts.map +1 -0
  200. package/internal/uploads.d.ts +42 -0
  201. package/internal/uploads.d.ts.map +1 -0
  202. package/internal/uploads.js +141 -0
  203. package/internal/uploads.js.map +1 -0
  204. package/internal/uploads.mjs +131 -0
  205. package/internal/uploads.mjs.map +1 -0
  206. package/internal/utils/base64.d.mts +3 -0
  207. package/internal/utils/base64.d.mts.map +1 -0
  208. package/internal/utils/base64.d.ts +3 -0
  209. package/internal/utils/base64.d.ts.map +1 -0
  210. package/internal/utils/base64.js +38 -0
  211. package/internal/utils/base64.js.map +1 -0
  212. package/internal/utils/base64.mjs +33 -0
  213. package/internal/utils/base64.mjs.map +1 -0
  214. package/internal/utils/bytes.d.mts +4 -0
  215. package/internal/utils/bytes.d.mts.map +1 -0
  216. package/internal/utils/bytes.d.ts +4 -0
  217. package/internal/utils/bytes.d.ts.map +1 -0
  218. package/internal/utils/bytes.js +31 -0
  219. package/internal/utils/bytes.js.map +1 -0
  220. package/internal/utils/bytes.mjs +26 -0
  221. package/internal/utils/bytes.mjs.map +1 -0
  222. package/internal/utils/env.d.mts +9 -0
  223. package/internal/utils/env.d.mts.map +1 -0
  224. package/internal/utils/env.d.ts +9 -0
  225. package/internal/utils/env.d.ts.map +1 -0
  226. package/internal/utils/env.js +22 -0
  227. package/internal/utils/env.js.map +1 -0
  228. package/internal/utils/env.mjs +18 -0
  229. package/internal/utils/env.mjs.map +1 -0
  230. package/internal/utils/log.d.mts +37 -0
  231. package/internal/utils/log.d.mts.map +1 -0
  232. package/internal/utils/log.d.ts +37 -0
  233. package/internal/utils/log.d.ts.map +1 -0
  234. package/internal/utils/log.js +85 -0
  235. package/internal/utils/log.js.map +1 -0
  236. package/internal/utils/log.mjs +79 -0
  237. package/internal/utils/log.mjs.map +1 -0
  238. package/internal/utils/path.d.mts +15 -0
  239. package/internal/utils/path.d.mts.map +1 -0
  240. package/internal/utils/path.d.ts +15 -0
  241. package/internal/utils/path.d.ts.map +1 -0
  242. package/internal/utils/path.js +79 -0
  243. package/internal/utils/path.js.map +1 -0
  244. package/internal/utils/path.mjs +74 -0
  245. package/internal/utils/path.mjs.map +1 -0
  246. package/internal/utils/sleep.d.mts +2 -0
  247. package/internal/utils/sleep.d.mts.map +1 -0
  248. package/internal/utils/sleep.d.ts +2 -0
  249. package/internal/utils/sleep.d.ts.map +1 -0
  250. package/internal/utils/sleep.js +7 -0
  251. package/internal/utils/sleep.js.map +1 -0
  252. package/internal/utils/sleep.mjs +3 -0
  253. package/internal/utils/sleep.mjs.map +1 -0
  254. package/internal/utils/uuid.d.mts +5 -0
  255. package/internal/utils/uuid.d.mts.map +1 -0
  256. package/internal/utils/uuid.d.ts +5 -0
  257. package/internal/utils/uuid.d.ts.map +1 -0
  258. package/internal/utils/uuid.js +19 -0
  259. package/internal/utils/uuid.js.map +1 -0
  260. package/internal/utils/uuid.mjs +15 -0
  261. package/internal/utils/uuid.mjs.map +1 -0
  262. package/internal/utils/values.d.mts +18 -0
  263. package/internal/utils/values.d.mts.map +1 -0
  264. package/internal/utils/values.d.ts +18 -0
  265. package/internal/utils/values.d.ts.map +1 -0
  266. package/internal/utils/values.js +112 -0
  267. package/internal/utils/values.js.map +1 -0
  268. package/internal/utils/values.mjs +94 -0
  269. package/internal/utils/values.mjs.map +1 -0
  270. package/internal/utils.d.mts +7 -0
  271. package/internal/utils.d.mts.map +1 -0
  272. package/internal/utils.d.ts +7 -0
  273. package/internal/utils.d.ts.map +1 -0
  274. package/internal/utils.js +11 -0
  275. package/internal/utils.js.map +1 -0
  276. package/internal/utils.mjs +8 -0
  277. package/internal/utils.mjs.map +1 -0
  278. package/package.json +148 -0
  279. package/pagination.d.mts +2 -0
  280. package/pagination.d.mts.map +1 -0
  281. package/pagination.d.ts +2 -0
  282. package/pagination.d.ts.map +1 -0
  283. package/pagination.js +6 -0
  284. package/pagination.js.map +1 -0
  285. package/pagination.mjs +2 -0
  286. package/pagination.mjs.map +1 -0
  287. package/resource.d.mts +2 -0
  288. package/resource.d.mts.map +1 -0
  289. package/resource.d.ts +2 -0
  290. package/resource.d.ts.map +1 -0
  291. package/resource.js +6 -0
  292. package/resource.js.map +1 -0
  293. package/resource.mjs +2 -0
  294. package/resource.mjs.map +1 -0
  295. package/resources/albums.d.mts +333 -0
  296. package/resources/albums.d.mts.map +1 -0
  297. package/resources/albums.d.ts +333 -0
  298. package/resources/albums.d.ts.map +1 -0
  299. package/resources/albums.js +34 -0
  300. package/resources/albums.js.map +1 -0
  301. package/resources/albums.mjs +30 -0
  302. package/resources/albums.mjs.map +1 -0
  303. package/resources/artists.d.mts +166 -0
  304. package/resources/artists.d.mts.map +1 -0
  305. package/resources/artists.d.ts +166 -0
  306. package/resources/artists.d.ts.map +1 -0
  307. package/resources/artists.js +48 -0
  308. package/resources/artists.js.map +1 -0
  309. package/resources/artists.mjs +44 -0
  310. package/resources/artists.mjs.map +1 -0
  311. package/resources/audio-analysis.d.mts +365 -0
  312. package/resources/audio-analysis.d.mts.map +1 -0
  313. package/resources/audio-analysis.d.ts +365 -0
  314. package/resources/audio-analysis.d.ts.map +1 -0
  315. package/resources/audio-analysis.js +20 -0
  316. package/resources/audio-analysis.js.map +1 -0
  317. package/resources/audio-analysis.mjs +16 -0
  318. package/resources/audio-analysis.mjs.map +1 -0
  319. package/resources/audio-features.d.mts +253 -0
  320. package/resources/audio-features.d.mts.map +1 -0
  321. package/resources/audio-features.d.ts +253 -0
  322. package/resources/audio-features.d.ts.map +1 -0
  323. package/resources/audio-features.js +27 -0
  324. package/resources/audio-features.js.map +1 -0
  325. package/resources/audio-features.mjs +23 -0
  326. package/resources/audio-features.mjs.map +1 -0
  327. package/resources/audiobooks.d.mts +259 -0
  328. package/resources/audiobooks.d.mts.map +1 -0
  329. package/resources/audiobooks.d.ts +259 -0
  330. package/resources/audiobooks.d.ts.map +1 -0
  331. package/resources/audiobooks.js +37 -0
  332. package/resources/audiobooks.js.map +1 -0
  333. package/resources/audiobooks.mjs +33 -0
  334. package/resources/audiobooks.mjs.map +1 -0
  335. package/resources/browse/browse.d.mts +165 -0
  336. package/resources/browse/browse.d.mts.map +1 -0
  337. package/resources/browse/browse.d.ts +165 -0
  338. package/resources/browse/browse.d.ts.map +1 -0
  339. package/resources/browse/browse.js +33 -0
  340. package/resources/browse/browse.js.map +1 -0
  341. package/resources/browse/browse.mjs +28 -0
  342. package/resources/browse/browse.mjs.map +1 -0
  343. package/resources/browse/categories.d.mts +151 -0
  344. package/resources/browse/categories.d.mts.map +1 -0
  345. package/resources/browse/categories.d.ts +151 -0
  346. package/resources/browse/categories.d.ts.map +1 -0
  347. package/resources/browse/categories.js +32 -0
  348. package/resources/browse/categories.js.map +1 -0
  349. package/resources/browse/categories.mjs +28 -0
  350. package/resources/browse/categories.mjs.map +1 -0
  351. package/resources/browse/index.d.mts +3 -0
  352. package/resources/browse/index.d.mts.map +1 -0
  353. package/resources/browse/index.d.ts +3 -0
  354. package/resources/browse/index.d.ts.map +1 -0
  355. package/resources/browse/index.js +9 -0
  356. package/resources/browse/index.js.map +1 -0
  357. package/resources/browse/index.mjs +4 -0
  358. package/resources/browse/index.mjs.map +1 -0
  359. package/resources/browse.d.mts +2 -0
  360. package/resources/browse.d.mts.map +1 -0
  361. package/resources/browse.d.ts +2 -0
  362. package/resources/browse.d.ts.map +1 -0
  363. package/resources/browse.js +6 -0
  364. package/resources/browse.js.map +1 -0
  365. package/resources/browse.mjs +3 -0
  366. package/resources/browse.mjs.map +1 -0
  367. package/resources/chapters.d.mts +251 -0
  368. package/resources/chapters.d.mts.map +1 -0
  369. package/resources/chapters.d.ts +251 -0
  370. package/resources/chapters.d.ts.map +1 -0
  371. package/resources/chapters.js +26 -0
  372. package/resources/chapters.js.map +1 -0
  373. package/resources/chapters.mjs +22 -0
  374. package/resources/chapters.mjs.map +1 -0
  375. package/resources/episodes.d.mts +56 -0
  376. package/resources/episodes.d.mts.map +1 -0
  377. package/resources/episodes.d.ts +56 -0
  378. package/resources/episodes.d.ts.map +1 -0
  379. package/resources/episodes.js +23 -0
  380. package/resources/episodes.js.map +1 -0
  381. package/resources/episodes.mjs +19 -0
  382. package/resources/episodes.mjs.map +1 -0
  383. package/resources/index.d.mts +18 -0
  384. package/resources/index.d.mts.map +1 -0
  385. package/resources/index.d.ts +18 -0
  386. package/resources/index.d.ts.map +1 -0
  387. package/resources/index.js +39 -0
  388. package/resources/index.js.map +1 -0
  389. package/resources/index.mjs +19 -0
  390. package/resources/index.mjs.map +1 -0
  391. package/resources/markets.d.mts +16 -0
  392. package/resources/markets.d.mts.map +1 -0
  393. package/resources/markets.d.ts +16 -0
  394. package/resources/markets.d.ts.map +1 -0
  395. package/resources/markets.js +15 -0
  396. package/resources/markets.js.map +1 -0
  397. package/resources/markets.mjs +11 -0
  398. package/resources/markets.mjs.map +1 -0
  399. package/resources/me/albums.d.mts +250 -0
  400. package/resources/me/albums.d.mts.map +1 -0
  401. package/resources/me/albums.d.ts +250 -0
  402. package/resources/me/albums.d.ts.map +1 -0
  403. package/resources/me/albums.js +70 -0
  404. package/resources/me/albums.js.map +1 -0
  405. package/resources/me/albums.mjs +66 -0
  406. package/resources/me/albums.mjs.map +1 -0
  407. package/resources/me/audiobooks.d.mts +153 -0
  408. package/resources/me/audiobooks.d.mts.map +1 -0
  409. package/resources/me/audiobooks.d.ts +153 -0
  410. package/resources/me/audiobooks.d.ts.map +1 -0
  411. package/resources/me/audiobooks.js +79 -0
  412. package/resources/me/audiobooks.js.map +1 -0
  413. package/resources/me/audiobooks.mjs +75 -0
  414. package/resources/me/audiobooks.mjs.map +1 -0
  415. package/resources/me/episodes.d.mts +132 -0
  416. package/resources/me/episodes.d.mts.map +1 -0
  417. package/resources/me/episodes.d.ts +132 -0
  418. package/resources/me/episodes.d.ts.map +1 -0
  419. package/resources/me/episodes.js +81 -0
  420. package/resources/me/episodes.js.map +1 -0
  421. package/resources/me/episodes.mjs +77 -0
  422. package/resources/me/episodes.mjs.map +1 -0
  423. package/resources/me/following.d.mts +147 -0
  424. package/resources/me/following.d.mts.map +1 -0
  425. package/resources/me/following.d.ts +147 -0
  426. package/resources/me/following.d.ts.map +1 -0
  427. package/resources/me/following.js +70 -0
  428. package/resources/me/following.js.map +1 -0
  429. package/resources/me/following.mjs +66 -0
  430. package/resources/me/following.mjs.map +1 -0
  431. package/resources/me/index.d.mts +11 -0
  432. package/resources/me/index.d.mts.map +1 -0
  433. package/resources/me/index.d.ts +11 -0
  434. package/resources/me/index.d.ts.map +1 -0
  435. package/resources/me/index.js +25 -0
  436. package/resources/me/index.js.map +1 -0
  437. package/resources/me/index.mjs +12 -0
  438. package/resources/me/index.mjs.map +1 -0
  439. package/resources/me/me.d.mts +143 -0
  440. package/resources/me/me.d.mts.map +1 -0
  441. package/resources/me/me.d.ts +143 -0
  442. package/resources/me/me.d.ts.map +1 -0
  443. package/resources/me/me.js +61 -0
  444. package/resources/me/me.js.map +1 -0
  445. package/resources/me/me.mjs +56 -0
  446. package/resources/me/me.mjs.map +1 -0
  447. package/resources/me/player/index.d.mts +3 -0
  448. package/resources/me/player/index.d.mts.map +1 -0
  449. package/resources/me/player/index.d.ts +3 -0
  450. package/resources/me/player/index.d.ts.map +1 -0
  451. package/resources/me/player/index.js +9 -0
  452. package/resources/me/player/index.js.map +1 -0
  453. package/resources/me/player/index.mjs +4 -0
  454. package/resources/me/player/index.mjs.map +1 -0
  455. package/resources/me/player/player.d.mts +595 -0
  456. package/resources/me/player/player.d.mts.map +1 -0
  457. package/resources/me/player/player.d.ts +595 -0
  458. package/resources/me/player/player.d.ts.map +1 -0
  459. package/resources/me/player/player.js +236 -0
  460. package/resources/me/player/player.js.map +1 -0
  461. package/resources/me/player/player.mjs +231 -0
  462. package/resources/me/player/player.mjs.map +1 -0
  463. package/resources/me/player/queue.d.mts +53 -0
  464. package/resources/me/player/queue.d.mts.map +1 -0
  465. package/resources/me/player/queue.d.ts +53 -0
  466. package/resources/me/player/queue.d.ts.map +1 -0
  467. package/resources/me/player/queue.js +41 -0
  468. package/resources/me/player/queue.js.map +1 -0
  469. package/resources/me/player/queue.mjs +37 -0
  470. package/resources/me/player/queue.mjs.map +1 -0
  471. package/resources/me/player.d.mts +2 -0
  472. package/resources/me/player.d.mts.map +1 -0
  473. package/resources/me/player.d.ts +2 -0
  474. package/resources/me/player.d.ts.map +1 -0
  475. package/resources/me/player.js +6 -0
  476. package/resources/me/player.js.map +1 -0
  477. package/resources/me/player.mjs +3 -0
  478. package/resources/me/player.mjs.map +1 -0
  479. package/resources/me/playlists.d.mts +35 -0
  480. package/resources/me/playlists.d.mts.map +1 -0
  481. package/resources/me/playlists.d.ts +35 -0
  482. package/resources/me/playlists.d.ts.map +1 -0
  483. package/resources/me/playlists.js +27 -0
  484. package/resources/me/playlists.js.map +1 -0
  485. package/resources/me/playlists.mjs +23 -0
  486. package/resources/me/playlists.mjs.map +1 -0
  487. package/resources/me/shows.d.mts +109 -0
  488. package/resources/me/shows.d.mts.map +1 -0
  489. package/resources/me/shows.d.ts +109 -0
  490. package/resources/me/shows.d.ts.map +1 -0
  491. package/resources/me/shows.js +70 -0
  492. package/resources/me/shows.js.map +1 -0
  493. package/resources/me/shows.mjs +66 -0
  494. package/resources/me/shows.mjs.map +1 -0
  495. package/resources/me/top.d.mts +72 -0
  496. package/resources/me/top.d.mts.map +1 -0
  497. package/resources/me/top.d.ts +72 -0
  498. package/resources/me/top.d.ts.map +1 -0
  499. package/resources/me/top.js +44 -0
  500. package/resources/me/top.js.map +1 -0
  501. package/resources/me/top.mjs +40 -0
  502. package/resources/me/top.mjs.map +1 -0
  503. package/resources/me/tracks.d.mts +151 -0
  504. package/resources/me/tracks.d.mts.map +1 -0
  505. package/resources/me/tracks.d.ts +151 -0
  506. package/resources/me/tracks.d.ts.map +1 -0
  507. package/resources/me/tracks.js +70 -0
  508. package/resources/me/tracks.js.map +1 -0
  509. package/resources/me/tracks.mjs +66 -0
  510. package/resources/me/tracks.mjs.map +1 -0
  511. package/resources/me.d.mts +2 -0
  512. package/resources/me.d.mts.map +1 -0
  513. package/resources/me.d.ts +2 -0
  514. package/resources/me.d.ts.map +1 -0
  515. package/resources/me.js +6 -0
  516. package/resources/me.js.map +1 -0
  517. package/resources/me.mjs +3 -0
  518. package/resources/me.mjs.map +1 -0
  519. package/resources/playlists/followers.d.mts +61 -0
  520. package/resources/playlists/followers.d.mts.map +1 -0
  521. package/resources/playlists/followers.d.ts +61 -0
  522. package/resources/playlists/followers.d.ts.map +1 -0
  523. package/resources/playlists/followers.js +57 -0
  524. package/resources/playlists/followers.js.map +1 -0
  525. package/resources/playlists/followers.mjs +53 -0
  526. package/resources/playlists/followers.mjs.map +1 -0
  527. package/resources/playlists/images.d.mts +42 -0
  528. package/resources/playlists/images.d.mts.map +1 -0
  529. package/resources/playlists/images.d.ts +42 -0
  530. package/resources/playlists/images.d.ts.map +1 -0
  531. package/resources/playlists/images.js +45 -0
  532. package/resources/playlists/images.js.map +1 -0
  533. package/resources/playlists/images.mjs +41 -0
  534. package/resources/playlists/images.mjs.map +1 -0
  535. package/resources/playlists/index.d.mts +5 -0
  536. package/resources/playlists/index.d.mts.map +1 -0
  537. package/resources/playlists/index.d.ts +5 -0
  538. package/resources/playlists/index.d.ts.map +1 -0
  539. package/resources/playlists/index.js +13 -0
  540. package/resources/playlists/index.js.map +1 -0
  541. package/resources/playlists/index.mjs +6 -0
  542. package/resources/playlists/index.mjs.map +1 -0
  543. package/resources/playlists/playlists.d.mts +215 -0
  544. package/resources/playlists/playlists.d.mts.map +1 -0
  545. package/resources/playlists/playlists.d.ts +215 -0
  546. package/resources/playlists/playlists.d.ts.map +1 -0
  547. package/resources/playlists/playlists.js +56 -0
  548. package/resources/playlists/playlists.js.map +1 -0
  549. package/resources/playlists/playlists.mjs +51 -0
  550. package/resources/playlists/playlists.mjs.map +1 -0
  551. package/resources/playlists/tracks.d.mts +197 -0
  552. package/resources/playlists/tracks.d.mts.map +1 -0
  553. package/resources/playlists/tracks.d.ts +197 -0
  554. package/resources/playlists/tracks.d.ts.map +1 -0
  555. package/resources/playlists/tracks.js +75 -0
  556. package/resources/playlists/tracks.js.map +1 -0
  557. package/resources/playlists/tracks.mjs +71 -0
  558. package/resources/playlists/tracks.mjs.map +1 -0
  559. package/resources/playlists.d.mts +2 -0
  560. package/resources/playlists.d.mts.map +1 -0
  561. package/resources/playlists.d.ts +2 -0
  562. package/resources/playlists.d.ts.map +1 -0
  563. package/resources/playlists.js +6 -0
  564. package/resources/playlists.js.map +1 -0
  565. package/resources/playlists.mjs +3 -0
  566. package/resources/playlists.mjs.map +1 -0
  567. package/resources/recommendations.d.mts +420 -0
  568. package/resources/recommendations.d.mts.map +1 -0
  569. package/resources/recommendations.d.ts +420 -0
  570. package/resources/recommendations.d.ts.map +1 -0
  571. package/resources/recommendations.js +32 -0
  572. package/resources/recommendations.js.map +1 -0
  573. package/resources/recommendations.mjs +28 -0
  574. package/resources/recommendations.mjs.map +1 -0
  575. package/resources/search.d.mts +309 -0
  576. package/resources/search.d.mts.map +1 -0
  577. package/resources/search.d.ts +309 -0
  578. package/resources/search.d.ts.map +1 -0
  579. package/resources/search.js +17 -0
  580. package/resources/search.js.map +1 -0
  581. package/resources/search.mjs +13 -0
  582. package/resources/search.mjs.map +1 -0
  583. package/resources/shared.d.mts +1010 -0
  584. package/resources/shared.d.mts.map +1 -0
  585. package/resources/shared.d.ts +1010 -0
  586. package/resources/shared.d.ts.map +1 -0
  587. package/resources/shared.js +4 -0
  588. package/resources/shared.js.map +1 -0
  589. package/resources/shared.mjs +3 -0
  590. package/resources/shared.mjs.map +1 -0
  591. package/resources/shows.d.mts +125 -0
  592. package/resources/shows.d.mts.map +1 -0
  593. package/resources/shows.d.ts +125 -0
  594. package/resources/shows.d.ts.map +1 -0
  595. package/resources/shows.js +31 -0
  596. package/resources/shows.js.map +1 -0
  597. package/resources/shows.mjs +27 -0
  598. package/resources/shows.mjs.map +1 -0
  599. package/resources/tracks.d.mts +56 -0
  600. package/resources/tracks.d.mts.map +1 -0
  601. package/resources/tracks.d.ts +56 -0
  602. package/resources/tracks.d.ts.map +1 -0
  603. package/resources/tracks.js +23 -0
  604. package/resources/tracks.js.map +1 -0
  605. package/resources/tracks.mjs +19 -0
  606. package/resources/tracks.mjs.map +1 -0
  607. package/resources/users/index.d.mts +3 -0
  608. package/resources/users/index.d.mts.map +1 -0
  609. package/resources/users/index.d.ts +3 -0
  610. package/resources/users/index.d.ts.map +1 -0
  611. package/resources/users/index.js +9 -0
  612. package/resources/users/index.js.map +1 -0
  613. package/resources/users/index.mjs +4 -0
  614. package/resources/users/index.mjs.map +1 -0
  615. package/resources/users/playlists.d.mts +194 -0
  616. package/resources/users/playlists.d.mts.map +1 -0
  617. package/resources/users/playlists.d.ts +194 -0
  618. package/resources/users/playlists.d.ts.map +1 -0
  619. package/resources/users/playlists.js +43 -0
  620. package/resources/users/playlists.js.map +1 -0
  621. package/resources/users/playlists.mjs +39 -0
  622. package/resources/users/playlists.mjs.map +1 -0
  623. package/resources/users/users.d.mts +61 -0
  624. package/resources/users/users.d.mts.map +1 -0
  625. package/resources/users/users.d.ts +61 -0
  626. package/resources/users/users.d.ts.map +1 -0
  627. package/resources/users/users.js +31 -0
  628. package/resources/users/users.js.map +1 -0
  629. package/resources/users/users.mjs +26 -0
  630. package/resources/users/users.mjs.map +1 -0
  631. package/resources/users.d.mts +2 -0
  632. package/resources/users.d.mts.map +1 -0
  633. package/resources/users.d.ts +2 -0
  634. package/resources/users.d.ts.map +1 -0
  635. package/resources/users.js +6 -0
  636. package/resources/users.js.map +1 -0
  637. package/resources/users.mjs +3 -0
  638. package/resources/users.mjs.map +1 -0
  639. package/resources.d.mts +2 -0
  640. package/resources.d.mts.map +1 -0
  641. package/resources.d.ts +2 -0
  642. package/resources.d.ts.map +1 -0
  643. package/resources.js +5 -0
  644. package/resources.js.map +1 -0
  645. package/resources.mjs +2 -0
  646. package/resources.mjs.map +1 -0
  647. package/src/api-promise.ts +2 -0
  648. package/src/client.ts +1070 -0
  649. package/src/core/README.md +3 -0
  650. package/src/core/api-promise.ts +92 -0
  651. package/src/core/error.ts +130 -0
  652. package/src/core/pagination.ts +155 -0
  653. package/src/core/resource.ts +11 -0
  654. package/src/core/uploads.ts +2 -0
  655. package/src/error.ts +2 -0
  656. package/src/index.ts +23 -0
  657. package/src/internal/README.md +3 -0
  658. package/src/internal/builtin-types.ts +93 -0
  659. package/src/internal/detect-platform.ts +196 -0
  660. package/src/internal/errors.ts +33 -0
  661. package/src/internal/headers.ts +97 -0
  662. package/src/internal/parse.ts +50 -0
  663. package/src/internal/qs/LICENSE.md +13 -0
  664. package/src/internal/qs/README.md +3 -0
  665. package/src/internal/qs/formats.ts +10 -0
  666. package/src/internal/qs/index.ts +13 -0
  667. package/src/internal/qs/stringify.ts +385 -0
  668. package/src/internal/qs/types.ts +71 -0
  669. package/src/internal/qs/utils.ts +265 -0
  670. package/src/internal/request-options.ts +91 -0
  671. package/src/internal/shim-types.ts +26 -0
  672. package/src/internal/shims.ts +107 -0
  673. package/src/internal/to-file.ts +154 -0
  674. package/src/internal/types.ts +95 -0
  675. package/src/internal/uploads.ts +187 -0
  676. package/src/internal/utils/base64.ts +40 -0
  677. package/src/internal/utils/bytes.ts +32 -0
  678. package/src/internal/utils/env.ts +18 -0
  679. package/src/internal/utils/log.ts +126 -0
  680. package/src/internal/utils/path.ts +88 -0
  681. package/src/internal/utils/sleep.ts +3 -0
  682. package/src/internal/utils/uuid.ts +17 -0
  683. package/src/internal/utils/values.ts +105 -0
  684. package/src/internal/utils.ts +8 -0
  685. package/src/lib/.keep +4 -0
  686. package/src/pagination.ts +2 -0
  687. package/src/resource.ts +2 -0
  688. package/src/resources/albums.ts +427 -0
  689. package/src/resources/artists.ts +229 -0
  690. package/src/resources/audio-analysis.ts +438 -0
  691. package/src/resources/audio-features.ts +304 -0
  692. package/src/resources/audiobooks.ts +334 -0
  693. package/src/resources/browse/browse.ts +233 -0
  694. package/src/resources/browse/categories.ts +205 -0
  695. package/src/resources/browse/index.ts +18 -0
  696. package/src/resources/browse.ts +3 -0
  697. package/src/resources/chapters.ts +315 -0
  698. package/src/resources/episodes.ts +77 -0
  699. package/src/resources/index.ts +84 -0
  700. package/src/resources/markets.ts +22 -0
  701. package/src/resources/me/albums.ts +323 -0
  702. package/src/resources/me/audiobooks.ts +209 -0
  703. package/src/resources/me/episodes.ts +178 -0
  704. package/src/resources/me/following.ts +199 -0
  705. package/src/resources/me/index.ts +86 -0
  706. package/src/resources/me/me.ts +334 -0
  707. package/src/resources/me/player/index.ts +25 -0
  708. package/src/resources/me/player/player.ts +807 -0
  709. package/src/resources/me/player/queue.ts +71 -0
  710. package/src/resources/me/player.ts +3 -0
  711. package/src/resources/me/playlists.ts +49 -0
  712. package/src/resources/me/shows.ts +152 -0
  713. package/src/resources/me/top.ts +102 -0
  714. package/src/resources/me/tracks.ts +200 -0
  715. package/src/resources/me.ts +3 -0
  716. package/src/resources/playlists/followers.ts +97 -0
  717. package/src/resources/playlists/images.ts +59 -0
  718. package/src/resources/playlists/index.ts +25 -0
  719. package/src/resources/playlists/playlists.ts +306 -0
  720. package/src/resources/playlists/tracks.ts +261 -0
  721. package/src/resources/playlists.ts +3 -0
  722. package/src/resources/recommendations.ts +493 -0
  723. package/src/resources/search.ts +386 -0
  724. package/src/resources/shared.ts +1217 -0
  725. package/src/resources/shows.ts +171 -0
  726. package/src/resources/tracks.ts +77 -0
  727. package/src/resources/users/index.ts +9 -0
  728. package/src/resources/users/playlists.ts +249 -0
  729. package/src/resources/users/users.ts +84 -0
  730. package/src/resources/users.ts +3 -0
  731. package/src/resources.ts +1 -0
  732. package/src/tsconfig.json +11 -0
  733. package/src/uploads.ts +2 -0
  734. package/src/version.ts +1 -0
  735. package/uploads.d.mts +2 -0
  736. package/uploads.d.mts.map +1 -0
  737. package/uploads.d.ts +2 -0
  738. package/uploads.d.ts.map +1 -0
  739. package/uploads.js +6 -0
  740. package/uploads.js.map +1 -0
  741. package/uploads.mjs +2 -0
  742. package/uploads.mjs.map +1 -0
  743. package/version.d.mts +2 -0
  744. package/version.d.mts.map +1 -0
  745. package/version.d.ts +2 -0
  746. package/version.d.ts.map +1 -0
  747. package/version.js +5 -0
  748. package/version.js.map +1 -0
  749. package/version.mjs +2 -0
  750. package/version.mjs.map +1 -0
@@ -0,0 +1,46 @@
1
+ import { type Spotted } from "../client.js";
2
+ import { type PromiseOrValue } from "../internal/types.js";
3
+ import { APIResponseProps } from "../internal/parse.js";
4
+ /**
5
+ * A subclass of `Promise` providing additional helper methods
6
+ * for interacting with the SDK.
7
+ */
8
+ export declare class APIPromise<T> extends Promise<T> {
9
+ #private;
10
+ private responsePromise;
11
+ private parseResponse;
12
+ private parsedPromise;
13
+ constructor(client: Spotted, responsePromise: Promise<APIResponseProps>, parseResponse?: (client: Spotted, props: APIResponseProps) => PromiseOrValue<T>);
14
+ _thenUnwrap<U>(transform: (data: T, props: APIResponseProps) => U): APIPromise<U>;
15
+ /**
16
+ * Gets the raw `Response` instance instead of parsing the response
17
+ * data.
18
+ *
19
+ * If you want to parse the response body but still get the `Response`
20
+ * instance, you can use {@link withResponse()}.
21
+ *
22
+ * 👋 Getting the wrong TypeScript type for `Response`?
23
+ * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
24
+ * to your `tsconfig.json`.
25
+ */
26
+ asResponse(): Promise<Response>;
27
+ /**
28
+ * Gets the parsed response data and the raw `Response` instance.
29
+ *
30
+ * If you just want to get the raw `Response` instance without parsing it,
31
+ * you can use {@link asResponse()}.
32
+ *
33
+ * 👋 Getting the wrong TypeScript type for `Response`?
34
+ * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
35
+ * to your `tsconfig.json`.
36
+ */
37
+ withResponse(): Promise<{
38
+ data: T;
39
+ response: Response;
40
+ }>;
41
+ private parse;
42
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
43
+ catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
44
+ finally(onfinally?: (() => void) | undefined | null): Promise<T>;
45
+ }
46
+ //# sourceMappingURL=api-promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-promise.d.ts","sourceRoot":"","sources":["../src/core/api-promise.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,OAAO,EAAE;OAEhB,EAAE,KAAK,cAAc,EAAE;OACvB,EAAE,gBAAgB,EAAwB;AAEjD;;;GAGG;AACH,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;;IAMzC,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,aAAa,CAAyB;gBAI5C,MAAM,EAAE,OAAO,EACP,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAC1C,aAAa,GAAE,CACrB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,gBAAgB,KACpB,cAAc,CAAC,CAAC,CAAwB;IAW/C,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAMjF;;;;;;;;;;OAUG;IACH,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI/B;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;IAK9D,OAAO,CAAC,KAAK;IAOJ,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC1C,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EACjF,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAItB,KAAK,CAAC,OAAO,GAAG,KAAK,EAC5B,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAChF,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;IAId,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;CAG1E"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ var _APIPromise_client;
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.APIPromise = void 0;
6
+ const tslib_1 = require("../internal/tslib.js");
7
+ const parse_1 = require("../internal/parse.js");
8
+ /**
9
+ * A subclass of `Promise` providing additional helper methods
10
+ * for interacting with the SDK.
11
+ */
12
+ class APIPromise extends Promise {
13
+ constructor(client, responsePromise, parseResponse = parse_1.defaultParseResponse) {
14
+ super((resolve) => {
15
+ // this is maybe a bit weird but this has to be a no-op to not implicitly
16
+ // parse the response body; instead .then, .catch, .finally are overridden
17
+ // to parse the response
18
+ resolve(null);
19
+ });
20
+ this.responsePromise = responsePromise;
21
+ this.parseResponse = parseResponse;
22
+ _APIPromise_client.set(this, void 0);
23
+ tslib_1.__classPrivateFieldSet(this, _APIPromise_client, client, "f");
24
+ }
25
+ _thenUnwrap(transform) {
26
+ return new APIPromise(tslib_1.__classPrivateFieldGet(this, _APIPromise_client, "f"), this.responsePromise, async (client, props) => transform(await this.parseResponse(client, props), props));
27
+ }
28
+ /**
29
+ * Gets the raw `Response` instance instead of parsing the response
30
+ * data.
31
+ *
32
+ * If you want to parse the response body but still get the `Response`
33
+ * instance, you can use {@link withResponse()}.
34
+ *
35
+ * 👋 Getting the wrong TypeScript type for `Response`?
36
+ * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
37
+ * to your `tsconfig.json`.
38
+ */
39
+ asResponse() {
40
+ return this.responsePromise.then((p) => p.response);
41
+ }
42
+ /**
43
+ * Gets the parsed response data and the raw `Response` instance.
44
+ *
45
+ * If you just want to get the raw `Response` instance without parsing it,
46
+ * you can use {@link asResponse()}.
47
+ *
48
+ * 👋 Getting the wrong TypeScript type for `Response`?
49
+ * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
50
+ * to your `tsconfig.json`.
51
+ */
52
+ async withResponse() {
53
+ const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
54
+ return { data, response };
55
+ }
56
+ parse() {
57
+ if (!this.parsedPromise) {
58
+ this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(tslib_1.__classPrivateFieldGet(this, _APIPromise_client, "f"), data));
59
+ }
60
+ return this.parsedPromise;
61
+ }
62
+ then(onfulfilled, onrejected) {
63
+ return this.parse().then(onfulfilled, onrejected);
64
+ }
65
+ catch(onrejected) {
66
+ return this.parse().catch(onrejected);
67
+ }
68
+ finally(onfinally) {
69
+ return this.parse().finally(onfinally);
70
+ }
71
+ }
72
+ exports.APIPromise = APIPromise;
73
+ _APIPromise_client = new WeakMap();
74
+ //# sourceMappingURL=api-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-promise.js","sourceRoot":"","sources":["../src/core/api-promise.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;;AAKtF,gDAA2E;AAE3E;;;GAGG;AACH,MAAa,UAAc,SAAQ,OAAU;IAI3C,YACE,MAAe,EACP,eAA0C,EAC1C,gBAGiB,4BAAoB;QAE7C,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,yEAAyE;YACzE,0EAA0E;YAC1E,wBAAwB;YACxB,OAAO,CAAC,IAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAXK,oBAAe,GAAf,eAAe,CAA2B;QAC1C,kBAAa,GAAb,aAAa,CAGwB;QAR/C,qCAAiB;QAgBf,+BAAA,IAAI,sBAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAED,WAAW,CAAI,SAAkD;QAC/D,OAAO,IAAI,UAAU,CAAC,+BAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAChF,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,+BAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEQ,IAAI,CACX,WAAiF,EACjF,UAAmF;QAEnF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAEQ,KAAK,CACZ,UAAiF;QAEjF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAEQ,OAAO,CAAC,SAA2C;QAC1D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACF;AAhFD,gCAgFC"}
@@ -0,0 +1,70 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ var _APIPromise_client;
3
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "../internal/tslib.mjs";
4
+ import { defaultParseResponse } from "../internal/parse.mjs";
5
+ /**
6
+ * A subclass of `Promise` providing additional helper methods
7
+ * for interacting with the SDK.
8
+ */
9
+ export class APIPromise extends Promise {
10
+ constructor(client, responsePromise, parseResponse = defaultParseResponse) {
11
+ super((resolve) => {
12
+ // this is maybe a bit weird but this has to be a no-op to not implicitly
13
+ // parse the response body; instead .then, .catch, .finally are overridden
14
+ // to parse the response
15
+ resolve(null);
16
+ });
17
+ this.responsePromise = responsePromise;
18
+ this.parseResponse = parseResponse;
19
+ _APIPromise_client.set(this, void 0);
20
+ __classPrivateFieldSet(this, _APIPromise_client, client, "f");
21
+ }
22
+ _thenUnwrap(transform) {
23
+ return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, "f"), this.responsePromise, async (client, props) => transform(await this.parseResponse(client, props), props));
24
+ }
25
+ /**
26
+ * Gets the raw `Response` instance instead of parsing the response
27
+ * data.
28
+ *
29
+ * If you want to parse the response body but still get the `Response`
30
+ * instance, you can use {@link withResponse()}.
31
+ *
32
+ * 👋 Getting the wrong TypeScript type for `Response`?
33
+ * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
34
+ * to your `tsconfig.json`.
35
+ */
36
+ asResponse() {
37
+ return this.responsePromise.then((p) => p.response);
38
+ }
39
+ /**
40
+ * Gets the parsed response data and the raw `Response` instance.
41
+ *
42
+ * If you just want to get the raw `Response` instance without parsing it,
43
+ * you can use {@link asResponse()}.
44
+ *
45
+ * 👋 Getting the wrong TypeScript type for `Response`?
46
+ * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
47
+ * to your `tsconfig.json`.
48
+ */
49
+ async withResponse() {
50
+ const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
51
+ return { data, response };
52
+ }
53
+ parse() {
54
+ if (!this.parsedPromise) {
55
+ this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, "f"), data));
56
+ }
57
+ return this.parsedPromise;
58
+ }
59
+ then(onfulfilled, onrejected) {
60
+ return this.parse().then(onfulfilled, onrejected);
61
+ }
62
+ catch(onrejected) {
63
+ return this.parse().catch(onrejected);
64
+ }
65
+ finally(onfinally) {
66
+ return this.parse().finally(onfinally);
67
+ }
68
+ }
69
+ _APIPromise_client = new WeakMap();
70
+ //# sourceMappingURL=api-promise.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-promise.mjs","sourceRoot":"","sources":["../src/core/api-promise.ts"],"names":[],"mappings":"AAAA,sFAAsF;;;OAK/E,EAAoB,oBAAoB,EAAE;AAEjD;;;GAGG;AACH,MAAM,OAAO,UAAc,SAAQ,OAAU;IAI3C,YACE,MAAe,EACP,eAA0C,EAC1C,gBAGiB,oBAAoB;QAE7C,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,yEAAyE;YACzE,0EAA0E;YAC1E,wBAAwB;YACxB,OAAO,CAAC,IAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAXK,oBAAe,GAAf,eAAe,CAA2B;QAC1C,kBAAa,GAAb,aAAa,CAGwB;QAR/C,qCAAiB;QAgBf,uBAAA,IAAI,sBAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAED,WAAW,CAAI,SAAkD;QAC/D,OAAO,IAAI,UAAU,CAAC,uBAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAChF,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEQ,IAAI,CACX,WAAiF,EACjF,UAAmF;QAEnF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAEQ,KAAK,CACZ,UAAiF;QAEjF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAEQ,OAAO,CAAC,SAA2C;QAC1D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ export declare class SpottedError extends Error {
2
+ }
3
+ export declare class APIError<TStatus extends number | undefined = number | undefined, THeaders extends Headers | undefined = Headers | undefined, TError extends Object | undefined = Object | undefined> extends SpottedError {
4
+ /** HTTP status for the response that caused the error */
5
+ readonly status: TStatus;
6
+ /** HTTP headers for the response that caused the error */
7
+ readonly headers: THeaders;
8
+ /** JSON body of the response that caused the error */
9
+ readonly error: TError;
10
+ constructor(status: TStatus, error: TError, message: string | undefined, headers: THeaders);
11
+ private static makeMessage;
12
+ static generate(status: number | undefined, errorResponse: Object | undefined, message: string | undefined, headers: Headers | undefined): APIError;
13
+ }
14
+ export declare class APIUserAbortError extends APIError<undefined, undefined, undefined> {
15
+ constructor({ message }?: {
16
+ message?: string;
17
+ });
18
+ }
19
+ export declare class APIConnectionError extends APIError<undefined, undefined, undefined> {
20
+ constructor({ message, cause }: {
21
+ message?: string | undefined;
22
+ cause?: Error | undefined;
23
+ });
24
+ }
25
+ export declare class APIConnectionTimeoutError extends APIConnectionError {
26
+ constructor({ message }?: {
27
+ message?: string;
28
+ });
29
+ }
30
+ export declare class BadRequestError extends APIError<400, Headers> {
31
+ }
32
+ export declare class AuthenticationError extends APIError<401, Headers> {
33
+ }
34
+ export declare class PermissionDeniedError extends APIError<403, Headers> {
35
+ }
36
+ export declare class NotFoundError extends APIError<404, Headers> {
37
+ }
38
+ export declare class ConflictError extends APIError<409, Headers> {
39
+ }
40
+ export declare class UnprocessableEntityError extends APIError<422, Headers> {
41
+ }
42
+ export declare class RateLimitError extends APIError<429, Headers> {
43
+ }
44
+ export declare class InternalServerError extends APIError<number, Headers> {
45
+ }
46
+ //# sourceMappingURL=error.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.mts","sourceRoot":"","sources":["../src/core/error.ts"],"names":[],"mappings":"AAIA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,QAAQ,CACnB,OAAO,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACvD,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAC1D,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CACtD,SAAQ,YAAY;IACpB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ;IAO1F,OAAO,CAAC,MAAM,CAAC,WAAW;IAqB1B,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,QAAQ;CAyCZ;AAED,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBAClE,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,kBAAmB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACnE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE;CAM5F;AAED,qBAAa,yBAA0B,SAAQ,kBAAkB;gBACnD,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,eAAgB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE9D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAElE,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEpE,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,wBAAyB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEvE,qBAAa,cAAe,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE7D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG"}
@@ -0,0 +1,46 @@
1
+ export declare class SpottedError extends Error {
2
+ }
3
+ export declare class APIError<TStatus extends number | undefined = number | undefined, THeaders extends Headers | undefined = Headers | undefined, TError extends Object | undefined = Object | undefined> extends SpottedError {
4
+ /** HTTP status for the response that caused the error */
5
+ readonly status: TStatus;
6
+ /** HTTP headers for the response that caused the error */
7
+ readonly headers: THeaders;
8
+ /** JSON body of the response that caused the error */
9
+ readonly error: TError;
10
+ constructor(status: TStatus, error: TError, message: string | undefined, headers: THeaders);
11
+ private static makeMessage;
12
+ static generate(status: number | undefined, errorResponse: Object | undefined, message: string | undefined, headers: Headers | undefined): APIError;
13
+ }
14
+ export declare class APIUserAbortError extends APIError<undefined, undefined, undefined> {
15
+ constructor({ message }?: {
16
+ message?: string;
17
+ });
18
+ }
19
+ export declare class APIConnectionError extends APIError<undefined, undefined, undefined> {
20
+ constructor({ message, cause }: {
21
+ message?: string | undefined;
22
+ cause?: Error | undefined;
23
+ });
24
+ }
25
+ export declare class APIConnectionTimeoutError extends APIConnectionError {
26
+ constructor({ message }?: {
27
+ message?: string;
28
+ });
29
+ }
30
+ export declare class BadRequestError extends APIError<400, Headers> {
31
+ }
32
+ export declare class AuthenticationError extends APIError<401, Headers> {
33
+ }
34
+ export declare class PermissionDeniedError extends APIError<403, Headers> {
35
+ }
36
+ export declare class NotFoundError extends APIError<404, Headers> {
37
+ }
38
+ export declare class ConflictError extends APIError<409, Headers> {
39
+ }
40
+ export declare class UnprocessableEntityError extends APIError<422, Headers> {
41
+ }
42
+ export declare class RateLimitError extends APIError<429, Headers> {
43
+ }
44
+ export declare class InternalServerError extends APIError<number, Headers> {
45
+ }
46
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/core/error.ts"],"names":[],"mappings":"AAIA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,QAAQ,CACnB,OAAO,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACvD,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAC1D,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CACtD,SAAQ,YAAY;IACpB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ;IAO1F,OAAO,CAAC,MAAM,CAAC,WAAW;IAqB1B,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,QAAQ;CAyCZ;AAED,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBAClE,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,kBAAmB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACnE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE;CAM5F;AAED,qBAAa,yBAA0B,SAAQ,kBAAkB;gBACnD,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,eAAgB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE9D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAElE,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEpE,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,wBAAyB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEvE,qBAAa,cAAe,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE7D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG"}
package/core/error.js ADDED
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.InternalServerError = exports.RateLimitError = exports.UnprocessableEntityError = exports.ConflictError = exports.NotFoundError = exports.PermissionDeniedError = exports.AuthenticationError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIUserAbortError = exports.APIError = exports.SpottedError = void 0;
5
+ const errors_1 = require("../internal/errors.js");
6
+ class SpottedError extends Error {
7
+ }
8
+ exports.SpottedError = SpottedError;
9
+ class APIError extends SpottedError {
10
+ constructor(status, error, message, headers) {
11
+ super(`${APIError.makeMessage(status, error, message)}`);
12
+ this.status = status;
13
+ this.headers = headers;
14
+ this.error = error;
15
+ }
16
+ static makeMessage(status, error, message) {
17
+ const msg = error?.message ?
18
+ typeof error.message === 'string' ?
19
+ error.message
20
+ : JSON.stringify(error.message)
21
+ : error ? JSON.stringify(error)
22
+ : message;
23
+ if (status && msg) {
24
+ return `${status} ${msg}`;
25
+ }
26
+ if (status) {
27
+ return `${status} status code (no body)`;
28
+ }
29
+ if (msg) {
30
+ return msg;
31
+ }
32
+ return '(no status code or body)';
33
+ }
34
+ static generate(status, errorResponse, message, headers) {
35
+ if (!status || !headers) {
36
+ return new APIConnectionError({ message, cause: (0, errors_1.castToError)(errorResponse) });
37
+ }
38
+ const error = errorResponse;
39
+ if (status === 400) {
40
+ return new BadRequestError(status, error, message, headers);
41
+ }
42
+ if (status === 401) {
43
+ return new AuthenticationError(status, error, message, headers);
44
+ }
45
+ if (status === 403) {
46
+ return new PermissionDeniedError(status, error, message, headers);
47
+ }
48
+ if (status === 404) {
49
+ return new NotFoundError(status, error, message, headers);
50
+ }
51
+ if (status === 409) {
52
+ return new ConflictError(status, error, message, headers);
53
+ }
54
+ if (status === 422) {
55
+ return new UnprocessableEntityError(status, error, message, headers);
56
+ }
57
+ if (status === 429) {
58
+ return new RateLimitError(status, error, message, headers);
59
+ }
60
+ if (status >= 500) {
61
+ return new InternalServerError(status, error, message, headers);
62
+ }
63
+ return new APIError(status, error, message, headers);
64
+ }
65
+ }
66
+ exports.APIError = APIError;
67
+ class APIUserAbortError extends APIError {
68
+ constructor({ message } = {}) {
69
+ super(undefined, undefined, message || 'Request was aborted.', undefined);
70
+ }
71
+ }
72
+ exports.APIUserAbortError = APIUserAbortError;
73
+ class APIConnectionError extends APIError {
74
+ constructor({ message, cause }) {
75
+ super(undefined, undefined, message || 'Connection error.', undefined);
76
+ // in some environments the 'cause' property is already declared
77
+ // @ts-ignore
78
+ if (cause)
79
+ this.cause = cause;
80
+ }
81
+ }
82
+ exports.APIConnectionError = APIConnectionError;
83
+ class APIConnectionTimeoutError extends APIConnectionError {
84
+ constructor({ message } = {}) {
85
+ super({ message: message ?? 'Request timed out.' });
86
+ }
87
+ }
88
+ exports.APIConnectionTimeoutError = APIConnectionTimeoutError;
89
+ class BadRequestError extends APIError {
90
+ }
91
+ exports.BadRequestError = BadRequestError;
92
+ class AuthenticationError extends APIError {
93
+ }
94
+ exports.AuthenticationError = AuthenticationError;
95
+ class PermissionDeniedError extends APIError {
96
+ }
97
+ exports.PermissionDeniedError = PermissionDeniedError;
98
+ class NotFoundError extends APIError {
99
+ }
100
+ exports.NotFoundError = NotFoundError;
101
+ class ConflictError extends APIError {
102
+ }
103
+ exports.ConflictError = ConflictError;
104
+ class UnprocessableEntityError extends APIError {
105
+ }
106
+ exports.UnprocessableEntityError = UnprocessableEntityError;
107
+ class RateLimitError extends APIError {
108
+ }
109
+ exports.RateLimitError = RateLimitError;
110
+ class InternalServerError extends APIError {
111
+ }
112
+ exports.InternalServerError = InternalServerError;
113
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/core/error.ts"],"names":[],"mappings":"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"}
package/core/error.mjs ADDED
@@ -0,0 +1,97 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { castToError } from "../internal/errors.mjs";
3
+ export class SpottedError extends Error {
4
+ }
5
+ export class APIError extends SpottedError {
6
+ constructor(status, error, message, headers) {
7
+ super(`${APIError.makeMessage(status, error, message)}`);
8
+ this.status = status;
9
+ this.headers = headers;
10
+ this.error = error;
11
+ }
12
+ static makeMessage(status, error, message) {
13
+ const msg = error?.message ?
14
+ typeof error.message === 'string' ?
15
+ error.message
16
+ : JSON.stringify(error.message)
17
+ : error ? JSON.stringify(error)
18
+ : message;
19
+ if (status && msg) {
20
+ return `${status} ${msg}`;
21
+ }
22
+ if (status) {
23
+ return `${status} status code (no body)`;
24
+ }
25
+ if (msg) {
26
+ return msg;
27
+ }
28
+ return '(no status code or body)';
29
+ }
30
+ static generate(status, errorResponse, message, headers) {
31
+ if (!status || !headers) {
32
+ return new APIConnectionError({ message, cause: castToError(errorResponse) });
33
+ }
34
+ const error = errorResponse;
35
+ if (status === 400) {
36
+ return new BadRequestError(status, error, message, headers);
37
+ }
38
+ if (status === 401) {
39
+ return new AuthenticationError(status, error, message, headers);
40
+ }
41
+ if (status === 403) {
42
+ return new PermissionDeniedError(status, error, message, headers);
43
+ }
44
+ if (status === 404) {
45
+ return new NotFoundError(status, error, message, headers);
46
+ }
47
+ if (status === 409) {
48
+ return new ConflictError(status, error, message, headers);
49
+ }
50
+ if (status === 422) {
51
+ return new UnprocessableEntityError(status, error, message, headers);
52
+ }
53
+ if (status === 429) {
54
+ return new RateLimitError(status, error, message, headers);
55
+ }
56
+ if (status >= 500) {
57
+ return new InternalServerError(status, error, message, headers);
58
+ }
59
+ return new APIError(status, error, message, headers);
60
+ }
61
+ }
62
+ export class APIUserAbortError extends APIError {
63
+ constructor({ message } = {}) {
64
+ super(undefined, undefined, message || 'Request was aborted.', undefined);
65
+ }
66
+ }
67
+ export class APIConnectionError extends APIError {
68
+ constructor({ message, cause }) {
69
+ super(undefined, undefined, message || 'Connection error.', undefined);
70
+ // in some environments the 'cause' property is already declared
71
+ // @ts-ignore
72
+ if (cause)
73
+ this.cause = cause;
74
+ }
75
+ }
76
+ export class APIConnectionTimeoutError extends APIConnectionError {
77
+ constructor({ message } = {}) {
78
+ super({ message: message ?? 'Request timed out.' });
79
+ }
80
+ }
81
+ export class BadRequestError extends APIError {
82
+ }
83
+ export class AuthenticationError extends APIError {
84
+ }
85
+ export class PermissionDeniedError extends APIError {
86
+ }
87
+ export class NotFoundError extends APIError {
88
+ }
89
+ export class ConflictError extends APIError {
90
+ }
91
+ export class UnprocessableEntityError extends APIError {
92
+ }
93
+ export class RateLimitError extends APIError {
94
+ }
95
+ export class InternalServerError extends APIError {
96
+ }
97
+ //# sourceMappingURL=error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.mjs","sourceRoot":"","sources":["../src/core/error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { FinalRequestOptions } from "../internal/request-options.mjs";
2
+ import { type Spotted } from "../client.mjs";
3
+ import { APIPromise } from "./api-promise.mjs";
4
+ import { type APIResponseProps } from "../internal/parse.mjs";
5
+ export type PageRequestOptions = Pick<FinalRequestOptions, 'query' | 'headers' | 'body' | 'path' | 'method'>;
6
+ export declare abstract class AbstractPage<Item> implements AsyncIterable<Item> {
7
+ #private;
8
+ protected options: FinalRequestOptions;
9
+ protected response: Response;
10
+ protected body: unknown;
11
+ constructor(client: Spotted, response: Response, body: unknown, options: FinalRequestOptions);
12
+ abstract nextPageRequestOptions(): PageRequestOptions | null;
13
+ abstract getPaginatedItems(): Item[];
14
+ hasNextPage(): boolean;
15
+ getNextPage(): Promise<this>;
16
+ iterPages(): AsyncGenerator<this>;
17
+ [Symbol.asyncIterator](): AsyncGenerator<Item>;
18
+ }
19
+ /**
20
+ * This subclass of Promise will resolve to an instantiated Page once the request completes.
21
+ *
22
+ * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
23
+ *
24
+ * for await (const item of client.items.list()) {
25
+ * console.log(item)
26
+ * }
27
+ */
28
+ export declare class PagePromise<PageClass extends AbstractPage<Item>, Item = ReturnType<PageClass['getPaginatedItems']>[number]> extends APIPromise<PageClass> implements AsyncIterable<Item> {
29
+ constructor(client: Spotted, request: Promise<APIResponseProps>, Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass);
30
+ /**
31
+ * Allow auto-paginating iteration on an unawaited list call, eg:
32
+ *
33
+ * for await (const item of client.items.list()) {
34
+ * console.log(item)
35
+ * }
36
+ */
37
+ [Symbol.asyncIterator](): AsyncGenerator<Item>;
38
+ }
39
+ export interface CursorURLPageResponse<Item> {
40
+ next: string;
41
+ items: Array<Item>;
42
+ }
43
+ export declare class CursorURLPage<Item> extends AbstractPage<Item> implements CursorURLPageResponse<Item> {
44
+ next: string;
45
+ items: Array<Item>;
46
+ constructor(client: Spotted, response: Response, body: CursorURLPageResponse<Item>, options: FinalRequestOptions);
47
+ getPaginatedItems(): Item[];
48
+ nextPageRequestOptions(): PageRequestOptions | null;
49
+ }
50
+ //# sourceMappingURL=pagination.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.mts","sourceRoot":"","sources":["../src/core/pagination.ts"],"names":[],"mappings":"OAGO,EAAE,mBAAmB,EAAE;OAEvB,EAAE,KAAK,OAAO,EAAE;OAChB,EAAE,UAAU,EAAE;OACd,EAAE,KAAK,gBAAgB,EAAE;AAEhC,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;AAE7G,8BAAsB,YAAY,CAAC,IAAI,CAAE,YAAW,aAAa,CAAC,IAAI,CAAC;;IAErE,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAEvC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;gBAEZ,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB;IAO5F,QAAQ,CAAC,sBAAsB,IAAI,kBAAkB,GAAG,IAAI;IAE5D,QAAQ,CAAC,iBAAiB,IAAI,IAAI,EAAE;IAEpC,WAAW,IAAI,OAAO;IAMhB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC;IASjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC;CAOtD;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW,CACpB,SAAS,SAAS,YAAY,CAAC,IAAI,CAAC,EACpC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAE3D,SAAQ,UAAU,CAAC,SAAS,CAC5B,YAAW,aAAa,CAAC,IAAI,CAAC;gBAG5B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,YAAY,CAAC,KAAK,SAAS;IAU9E;;;;;;OAMG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC;CAMtD;AAED,MAAM,WAAW,qBAAqB,CAAC,IAAI;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,qBAAa,aAAa,CAAC,IAAI,CAAE,SAAQ,YAAY,CAAC,IAAI,CAAE,YAAW,qBAAqB,CAAC,IAAI,CAAC;IAChG,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAGjB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,EACjC,OAAO,EAAE,mBAAmB;IAQ9B,iBAAiB,IAAI,IAAI,EAAE;IAI3B,sBAAsB,IAAI,kBAAkB,GAAG,IAAI;CAmBpD"}
@@ -0,0 +1,50 @@
1
+ import { FinalRequestOptions } from "../internal/request-options.js";
2
+ import { type Spotted } from "../client.js";
3
+ import { APIPromise } from "./api-promise.js";
4
+ import { type APIResponseProps } from "../internal/parse.js";
5
+ export type PageRequestOptions = Pick<FinalRequestOptions, 'query' | 'headers' | 'body' | 'path' | 'method'>;
6
+ export declare abstract class AbstractPage<Item> implements AsyncIterable<Item> {
7
+ #private;
8
+ protected options: FinalRequestOptions;
9
+ protected response: Response;
10
+ protected body: unknown;
11
+ constructor(client: Spotted, response: Response, body: unknown, options: FinalRequestOptions);
12
+ abstract nextPageRequestOptions(): PageRequestOptions | null;
13
+ abstract getPaginatedItems(): Item[];
14
+ hasNextPage(): boolean;
15
+ getNextPage(): Promise<this>;
16
+ iterPages(): AsyncGenerator<this>;
17
+ [Symbol.asyncIterator](): AsyncGenerator<Item>;
18
+ }
19
+ /**
20
+ * This subclass of Promise will resolve to an instantiated Page once the request completes.
21
+ *
22
+ * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
23
+ *
24
+ * for await (const item of client.items.list()) {
25
+ * console.log(item)
26
+ * }
27
+ */
28
+ export declare class PagePromise<PageClass extends AbstractPage<Item>, Item = ReturnType<PageClass['getPaginatedItems']>[number]> extends APIPromise<PageClass> implements AsyncIterable<Item> {
29
+ constructor(client: Spotted, request: Promise<APIResponseProps>, Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass);
30
+ /**
31
+ * Allow auto-paginating iteration on an unawaited list call, eg:
32
+ *
33
+ * for await (const item of client.items.list()) {
34
+ * console.log(item)
35
+ * }
36
+ */
37
+ [Symbol.asyncIterator](): AsyncGenerator<Item>;
38
+ }
39
+ export interface CursorURLPageResponse<Item> {
40
+ next: string;
41
+ items: Array<Item>;
42
+ }
43
+ export declare class CursorURLPage<Item> extends AbstractPage<Item> implements CursorURLPageResponse<Item> {
44
+ next: string;
45
+ items: Array<Item>;
46
+ constructor(client: Spotted, response: Response, body: CursorURLPageResponse<Item>, options: FinalRequestOptions);
47
+ getPaginatedItems(): Item[];
48
+ nextPageRequestOptions(): PageRequestOptions | null;
49
+ }
50
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/core/pagination.ts"],"names":[],"mappings":"OAGO,EAAE,mBAAmB,EAAE;OAEvB,EAAE,KAAK,OAAO,EAAE;OAChB,EAAE,UAAU,EAAE;OACd,EAAE,KAAK,gBAAgB,EAAE;AAEhC,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;AAE7G,8BAAsB,YAAY,CAAC,IAAI,CAAE,YAAW,aAAa,CAAC,IAAI,CAAC;;IAErE,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAEvC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;gBAEZ,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB;IAO5F,QAAQ,CAAC,sBAAsB,IAAI,kBAAkB,GAAG,IAAI;IAE5D,QAAQ,CAAC,iBAAiB,IAAI,IAAI,EAAE;IAEpC,WAAW,IAAI,OAAO;IAMhB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC;IASjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC;CAOtD;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW,CACpB,SAAS,SAAS,YAAY,CAAC,IAAI,CAAC,EACpC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAE3D,SAAQ,UAAU,CAAC,SAAS,CAC5B,YAAW,aAAa,CAAC,IAAI,CAAC;gBAG5B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,YAAY,CAAC,KAAK,SAAS;IAU9E;;;;;;OAMG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC;CAMtD;AAED,MAAM,WAAW,qBAAqB,CAAC,IAAI;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,qBAAa,aAAa,CAAC,IAAI,CAAE,SAAQ,YAAY,CAAC,IAAI,CAAE,YAAW,qBAAqB,CAAC,IAAI,CAAC;IAChG,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAGjB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,EACjC,OAAO,EAAE,mBAAmB;IAQ9B,iBAAiB,IAAI,IAAI,EAAE;IAI3B,sBAAsB,IAAI,kBAAkB,GAAG,IAAI;CAmBpD"}