@tabstack/sdk 1.0.5 → 2.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 (513) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/LICENSE +1 -1
  3. package/README.md +282 -356
  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 +186 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +186 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +467 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +463 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/resource.d.mts +6 -0
  37. package/core/resource.d.mts.map +1 -0
  38. package/core/resource.d.ts +6 -0
  39. package/core/resource.d.ts.map +1 -0
  40. package/core/resource.js +11 -0
  41. package/core/resource.js.map +1 -0
  42. package/core/resource.mjs +7 -0
  43. package/core/resource.mjs.map +1 -0
  44. package/core/streaming.d.mts +33 -0
  45. package/core/streaming.d.mts.map +1 -0
  46. package/core/streaming.d.ts +33 -0
  47. package/core/streaming.d.ts.map +1 -0
  48. package/core/streaming.js +263 -0
  49. package/core/streaming.js.map +1 -0
  50. package/core/streaming.mjs +258 -0
  51. package/core/streaming.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 +6 -0
  69. package/index.d.mts.map +1 -0
  70. package/index.d.ts +6 -0
  71. package/index.d.ts.map +1 -0
  72. package/index.js +30 -0
  73. package/index.js.map +1 -0
  74. package/index.mjs +7 -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/decoders/line.d.mts +17 -0
  85. package/internal/decoders/line.d.mts.map +1 -0
  86. package/internal/decoders/line.d.ts +17 -0
  87. package/internal/decoders/line.d.ts.map +1 -0
  88. package/internal/decoders/line.js +113 -0
  89. package/internal/decoders/line.js.map +1 -0
  90. package/internal/decoders/line.mjs +108 -0
  91. package/internal/decoders/line.mjs.map +1 -0
  92. package/internal/detect-platform.d.mts +15 -0
  93. package/internal/detect-platform.d.mts.map +1 -0
  94. package/internal/detect-platform.d.ts +15 -0
  95. package/internal/detect-platform.d.ts.map +1 -0
  96. package/internal/detect-platform.js +162 -0
  97. package/internal/detect-platform.js.map +1 -0
  98. package/internal/detect-platform.mjs +157 -0
  99. package/internal/detect-platform.mjs.map +1 -0
  100. package/internal/errors.d.mts +3 -0
  101. package/internal/errors.d.mts.map +1 -0
  102. package/internal/errors.d.ts +3 -0
  103. package/internal/errors.d.ts.map +1 -0
  104. package/internal/errors.js +41 -0
  105. package/internal/errors.js.map +1 -0
  106. package/internal/errors.mjs +36 -0
  107. package/internal/errors.mjs.map +1 -0
  108. package/internal/headers.d.mts +20 -0
  109. package/internal/headers.d.mts.map +1 -0
  110. package/internal/headers.d.ts +20 -0
  111. package/internal/headers.d.ts.map +1 -0
  112. package/internal/headers.js +79 -0
  113. package/internal/headers.js.map +1 -0
  114. package/internal/headers.mjs +74 -0
  115. package/internal/headers.mjs.map +1 -0
  116. package/internal/parse.d.mts +12 -0
  117. package/internal/parse.d.mts.map +1 -0
  118. package/internal/parse.d.ts +12 -0
  119. package/internal/parse.d.ts.map +1 -0
  120. package/internal/parse.js +45 -0
  121. package/internal/parse.js.map +1 -0
  122. package/internal/parse.mjs +42 -0
  123. package/internal/parse.mjs.map +1 -0
  124. package/internal/request-options.d.mts +77 -0
  125. package/internal/request-options.d.mts.map +1 -0
  126. package/internal/request-options.d.ts +77 -0
  127. package/internal/request-options.d.ts.map +1 -0
  128. package/internal/request-options.js +14 -0
  129. package/internal/request-options.js.map +1 -0
  130. package/internal/request-options.mjs +10 -0
  131. package/internal/request-options.mjs.map +1 -0
  132. package/internal/shim-types.d.mts +17 -0
  133. package/internal/shim-types.d.mts.map +1 -0
  134. package/internal/shim-types.d.ts +17 -0
  135. package/internal/shim-types.d.ts.map +1 -0
  136. package/internal/shim-types.js +4 -0
  137. package/internal/shim-types.js.map +1 -0
  138. package/internal/shim-types.mjs +3 -0
  139. package/internal/shim-types.mjs.map +1 -0
  140. package/internal/shims.d.mts +20 -0
  141. package/internal/shims.d.mts.map +1 -0
  142. package/internal/shims.d.ts +20 -0
  143. package/internal/shims.d.ts.map +1 -0
  144. package/internal/shims.js +92 -0
  145. package/internal/shims.js.map +1 -0
  146. package/internal/shims.mjs +85 -0
  147. package/internal/shims.mjs.map +1 -0
  148. package/internal/to-file.d.mts +45 -0
  149. package/internal/to-file.d.mts.map +1 -0
  150. package/internal/to-file.d.ts +45 -0
  151. package/internal/to-file.d.ts.map +1 -0
  152. package/internal/to-file.js +91 -0
  153. package/internal/to-file.js.map +1 -0
  154. package/internal/to-file.mjs +88 -0
  155. package/internal/to-file.mjs.map +1 -0
  156. package/internal/tslib.js +81 -0
  157. package/internal/tslib.mjs +17 -0
  158. package/internal/types.d.mts +69 -0
  159. package/internal/types.d.mts.map +1 -0
  160. package/internal/types.d.ts +69 -0
  161. package/internal/types.d.ts.map +1 -0
  162. package/internal/types.js +4 -0
  163. package/internal/types.js.map +1 -0
  164. package/internal/types.mjs +3 -0
  165. package/internal/types.mjs.map +1 -0
  166. package/internal/uploads.d.mts +42 -0
  167. package/internal/uploads.d.mts.map +1 -0
  168. package/internal/uploads.d.ts +42 -0
  169. package/internal/uploads.d.ts.map +1 -0
  170. package/internal/uploads.js +141 -0
  171. package/internal/uploads.js.map +1 -0
  172. package/internal/uploads.mjs +131 -0
  173. package/internal/uploads.mjs.map +1 -0
  174. package/internal/utils/base64.d.mts +3 -0
  175. package/internal/utils/base64.d.mts.map +1 -0
  176. package/internal/utils/base64.d.ts +3 -0
  177. package/internal/utils/base64.d.ts.map +1 -0
  178. package/internal/utils/base64.js +38 -0
  179. package/internal/utils/base64.js.map +1 -0
  180. package/internal/utils/base64.mjs +33 -0
  181. package/internal/utils/base64.mjs.map +1 -0
  182. package/internal/utils/bytes.d.mts +4 -0
  183. package/internal/utils/bytes.d.mts.map +1 -0
  184. package/internal/utils/bytes.d.ts +4 -0
  185. package/internal/utils/bytes.d.ts.map +1 -0
  186. package/internal/utils/bytes.js +31 -0
  187. package/internal/utils/bytes.js.map +1 -0
  188. package/internal/utils/bytes.mjs +26 -0
  189. package/internal/utils/bytes.mjs.map +1 -0
  190. package/internal/utils/env.d.mts +9 -0
  191. package/internal/utils/env.d.mts.map +1 -0
  192. package/internal/utils/env.d.ts +9 -0
  193. package/internal/utils/env.d.ts.map +1 -0
  194. package/internal/utils/env.js +22 -0
  195. package/internal/utils/env.js.map +1 -0
  196. package/internal/utils/env.mjs +18 -0
  197. package/internal/utils/env.mjs.map +1 -0
  198. package/internal/utils/log.d.mts +37 -0
  199. package/internal/utils/log.d.mts.map +1 -0
  200. package/internal/utils/log.d.ts +37 -0
  201. package/internal/utils/log.d.ts.map +1 -0
  202. package/internal/utils/log.js +85 -0
  203. package/internal/utils/log.js.map +1 -0
  204. package/internal/utils/log.mjs +79 -0
  205. package/internal/utils/log.mjs.map +1 -0
  206. package/internal/utils/path.d.mts +15 -0
  207. package/internal/utils/path.d.mts.map +1 -0
  208. package/internal/utils/path.d.ts +15 -0
  209. package/internal/utils/path.d.ts.map +1 -0
  210. package/internal/utils/path.js +79 -0
  211. package/internal/utils/path.js.map +1 -0
  212. package/internal/utils/path.mjs +74 -0
  213. package/internal/utils/path.mjs.map +1 -0
  214. package/internal/utils/sleep.d.mts +2 -0
  215. package/internal/utils/sleep.d.mts.map +1 -0
  216. package/internal/utils/sleep.d.ts +2 -0
  217. package/internal/utils/sleep.d.ts.map +1 -0
  218. package/internal/utils/sleep.js +7 -0
  219. package/internal/utils/sleep.js.map +1 -0
  220. package/internal/utils/sleep.mjs +3 -0
  221. package/internal/utils/sleep.mjs.map +1 -0
  222. package/internal/utils/uuid.d.mts +5 -0
  223. package/internal/utils/uuid.d.mts.map +1 -0
  224. package/internal/utils/uuid.d.ts +5 -0
  225. package/internal/utils/uuid.d.ts.map +1 -0
  226. package/internal/utils/uuid.js +19 -0
  227. package/internal/utils/uuid.js.map +1 -0
  228. package/internal/utils/uuid.mjs +15 -0
  229. package/internal/utils/uuid.mjs.map +1 -0
  230. package/internal/utils/values.d.mts +18 -0
  231. package/internal/utils/values.d.mts.map +1 -0
  232. package/internal/utils/values.d.ts +18 -0
  233. package/internal/utils/values.d.ts.map +1 -0
  234. package/internal/utils/values.js +112 -0
  235. package/internal/utils/values.js.map +1 -0
  236. package/internal/utils/values.mjs +94 -0
  237. package/internal/utils/values.mjs.map +1 -0
  238. package/internal/utils.d.mts +7 -0
  239. package/internal/utils.d.mts.map +1 -0
  240. package/internal/utils.d.ts +7 -0
  241. package/internal/utils.d.ts.map +1 -0
  242. package/internal/utils.js +11 -0
  243. package/internal/utils.js.map +1 -0
  244. package/internal/utils.mjs +8 -0
  245. package/internal/utils.mjs.map +1 -0
  246. package/package.json +139 -82
  247. package/resource.d.mts +2 -0
  248. package/resource.d.mts.map +1 -0
  249. package/resource.d.ts +2 -0
  250. package/resource.d.ts.map +1 -0
  251. package/resource.js +6 -0
  252. package/resource.js.map +1 -0
  253. package/resource.mjs +2 -0
  254. package/resource.mjs.map +1 -0
  255. package/resources/agent.d.mts +154 -0
  256. package/resources/agent.d.mts.map +1 -0
  257. package/resources/agent.d.ts +154 -0
  258. package/resources/agent.d.ts.map +1 -0
  259. package/resources/agent.js +88 -0
  260. package/resources/agent.js.map +1 -0
  261. package/resources/agent.mjs +84 -0
  262. package/resources/agent.mjs.map +1 -0
  263. package/resources/extract.d.mts +207 -0
  264. package/resources/extract.d.mts.map +1 -0
  265. package/resources/extract.d.ts +207 -0
  266. package/resources/extract.d.ts.map +1 -0
  267. package/resources/extract.js +61 -0
  268. package/resources/extract.js.map +1 -0
  269. package/resources/extract.mjs +57 -0
  270. package/resources/extract.mjs.map +1 -0
  271. package/resources/generate.d.mts +79 -0
  272. package/resources/generate.d.mts.map +1 -0
  273. package/resources/generate.d.ts +79 -0
  274. package/resources/generate.d.ts.map +1 -0
  275. package/resources/generate.js +44 -0
  276. package/resources/generate.js.map +1 -0
  277. package/resources/generate.mjs +40 -0
  278. package/resources/generate.mjs.map +1 -0
  279. package/resources/index.d.mts +4 -0
  280. package/resources/index.d.mts.map +1 -0
  281. package/resources/index.d.ts +4 -0
  282. package/resources/index.d.ts.map +1 -0
  283. package/resources/index.js +11 -0
  284. package/resources/index.js.map +1 -0
  285. package/resources/index.mjs +5 -0
  286. package/resources/index.mjs.map +1 -0
  287. package/resources.d.mts +2 -0
  288. package/resources.d.mts.map +1 -0
  289. package/resources.d.ts +2 -0
  290. package/resources.d.ts.map +1 -0
  291. package/resources.js +5 -0
  292. package/resources.js.map +1 -0
  293. package/resources.mjs +2 -0
  294. package/resources.mjs.map +1 -0
  295. package/src/api-promise.ts +2 -0
  296. package/src/client.ts +764 -0
  297. package/src/core/README.md +3 -0
  298. package/src/core/api-promise.ts +92 -0
  299. package/src/core/error.ts +130 -0
  300. package/src/core/resource.ts +11 -0
  301. package/src/core/streaming.ts +315 -0
  302. package/src/core/uploads.ts +2 -0
  303. package/src/error.ts +2 -0
  304. package/src/index.ts +22 -0
  305. package/src/internal/README.md +3 -0
  306. package/src/internal/builtin-types.ts +93 -0
  307. package/src/internal/decoders/line.ts +135 -0
  308. package/src/internal/detect-platform.ts +196 -0
  309. package/src/internal/errors.ts +33 -0
  310. package/src/internal/headers.ts +97 -0
  311. package/src/internal/parse.ts +64 -0
  312. package/src/internal/request-options.ts +93 -0
  313. package/src/internal/shim-types.ts +26 -0
  314. package/src/internal/shims.ts +107 -0
  315. package/src/internal/to-file.ts +154 -0
  316. package/src/internal/types.ts +95 -0
  317. package/src/internal/uploads.ts +187 -0
  318. package/src/internal/utils/base64.ts +40 -0
  319. package/src/internal/utils/bytes.ts +32 -0
  320. package/src/internal/utils/env.ts +18 -0
  321. package/src/internal/utils/log.ts +126 -0
  322. package/src/internal/utils/path.ts +88 -0
  323. package/src/internal/utils/sleep.ts +3 -0
  324. package/src/internal/utils/uuid.ts +17 -0
  325. package/src/internal/utils/values.ts +105 -0
  326. package/src/internal/utils.ts +8 -0
  327. package/src/lib/.keep +4 -0
  328. package/src/resource.ts +2 -0
  329. package/src/resources/agent.ts +194 -0
  330. package/src/resources/extract.ts +248 -0
  331. package/src/resources/generate.ts +89 -0
  332. package/src/resources/index.ts +17 -0
  333. package/src/resources.ts +1 -0
  334. package/src/streaming.ts +2 -0
  335. package/src/tsconfig.json +11 -0
  336. package/src/uploads.ts +2 -0
  337. package/src/version.ts +1 -0
  338. package/streaming.d.mts +2 -0
  339. package/streaming.d.mts.map +1 -0
  340. package/streaming.d.ts +2 -0
  341. package/streaming.d.ts.map +1 -0
  342. package/streaming.js +6 -0
  343. package/streaming.js.map +1 -0
  344. package/streaming.mjs +2 -0
  345. package/streaming.mjs.map +1 -0
  346. package/uploads.d.mts +2 -0
  347. package/uploads.d.mts.map +1 -0
  348. package/uploads.d.ts +2 -0
  349. package/uploads.d.ts.map +1 -0
  350. package/uploads.js +6 -0
  351. package/uploads.js.map +1 -0
  352. package/uploads.mjs +2 -0
  353. package/uploads.mjs.map +1 -0
  354. package/version.d.mts +2 -0
  355. package/version.d.mts.map +1 -0
  356. package/version.d.ts +2 -0
  357. package/version.d.ts.map +1 -0
  358. package/version.js +5 -0
  359. package/version.js.map +1 -0
  360. package/version.mjs +2 -0
  361. package/version.mjs.map +1 -0
  362. package/dist/cjs/agent.d.ts +0 -156
  363. package/dist/cjs/agent.d.ts.map +0 -1
  364. package/dist/cjs/agent.js +0 -211
  365. package/dist/cjs/agent.js.map +0 -1
  366. package/dist/cjs/agent.test.d.ts +0 -5
  367. package/dist/cjs/agent.test.d.ts.map +0 -1
  368. package/dist/cjs/agent.test.js +0 -441
  369. package/dist/cjs/agent.test.js.map +0 -1
  370. package/dist/cjs/client.d.ts +0 -58
  371. package/dist/cjs/client.d.ts.map +0 -1
  372. package/dist/cjs/client.js +0 -58
  373. package/dist/cjs/client.js.map +0 -1
  374. package/dist/cjs/client.test.d.ts +0 -5
  375. package/dist/cjs/client.test.d.ts.map +0 -1
  376. package/dist/cjs/client.test.js +0 -255
  377. package/dist/cjs/client.test.js.map +0 -1
  378. package/dist/cjs/exceptions.d.ts +0 -57
  379. package/dist/cjs/exceptions.d.ts.map +0 -1
  380. package/dist/cjs/exceptions.js +0 -95
  381. package/dist/cjs/exceptions.js.map +0 -1
  382. package/dist/cjs/exceptions.test.d.ts +0 -5
  383. package/dist/cjs/exceptions.test.d.ts.map +0 -1
  384. package/dist/cjs/exceptions.test.js +0 -239
  385. package/dist/cjs/exceptions.test.js.map +0 -1
  386. package/dist/cjs/extract.d.ts +0 -151
  387. package/dist/cjs/extract.d.ts.map +0 -1
  388. package/dist/cjs/extract.js +0 -165
  389. package/dist/cjs/extract.js.map +0 -1
  390. package/dist/cjs/extract.test.d.ts +0 -5
  391. package/dist/cjs/extract.test.d.ts.map +0 -1
  392. package/dist/cjs/extract.test.js +0 -250
  393. package/dist/cjs/extract.test.js.map +0 -1
  394. package/dist/cjs/generate.d.ts +0 -113
  395. package/dist/cjs/generate.d.ts.map +0 -1
  396. package/dist/cjs/generate.js +0 -124
  397. package/dist/cjs/generate.js.map +0 -1
  398. package/dist/cjs/generate.test.d.ts +0 -5
  399. package/dist/cjs/generate.test.d.ts.map +0 -1
  400. package/dist/cjs/generate.test.js +0 -314
  401. package/dist/cjs/generate.test.js.map +0 -1
  402. package/dist/cjs/index.d.ts +0 -52
  403. package/dist/cjs/index.d.ts.map +0 -1
  404. package/dist/cjs/index.js +0 -72
  405. package/dist/cjs/index.js.map +0 -1
  406. package/dist/cjs/package.json +0 -3
  407. package/dist/cjs/types.d.ts +0 -73
  408. package/dist/cjs/types.d.ts.map +0 -1
  409. package/dist/cjs/types.js +0 -118
  410. package/dist/cjs/types.js.map +0 -1
  411. package/dist/cjs/types.test.d.ts +0 -5
  412. package/dist/cjs/types.test.d.ts.map +0 -1
  413. package/dist/cjs/types.test.js +0 -370
  414. package/dist/cjs/types.test.js.map +0 -1
  415. package/dist/cjs/util/http.d.ts +0 -29
  416. package/dist/cjs/util/http.d.ts.map +0 -1
  417. package/dist/cjs/util/http.js +0 -201
  418. package/dist/cjs/util/http.js.map +0 -1
  419. package/dist/cjs/util/http.test.d.ts +0 -5
  420. package/dist/cjs/util/http.test.d.ts.map +0 -1
  421. package/dist/cjs/util/http.test.js +0 -237
  422. package/dist/cjs/util/http.test.js.map +0 -1
  423. package/dist/esm/agent.d.ts +0 -156
  424. package/dist/esm/agent.d.ts.map +0 -1
  425. package/dist/esm/agent.js +0 -207
  426. package/dist/esm/agent.js.map +0 -1
  427. package/dist/esm/agent.test.d.ts +0 -5
  428. package/dist/esm/agent.test.d.ts.map +0 -1
  429. package/dist/esm/agent.test.js +0 -439
  430. package/dist/esm/agent.test.js.map +0 -1
  431. package/dist/esm/client.d.ts +0 -58
  432. package/dist/esm/client.d.ts.map +0 -1
  433. package/dist/esm/client.js +0 -54
  434. package/dist/esm/client.js.map +0 -1
  435. package/dist/esm/client.test.d.ts +0 -5
  436. package/dist/esm/client.test.d.ts.map +0 -1
  437. package/dist/esm/client.test.js +0 -253
  438. package/dist/esm/client.test.js.map +0 -1
  439. package/dist/esm/exceptions.d.ts +0 -57
  440. package/dist/esm/exceptions.d.ts.map +0 -1
  441. package/dist/esm/exceptions.js +0 -85
  442. package/dist/esm/exceptions.js.map +0 -1
  443. package/dist/esm/exceptions.test.d.ts +0 -5
  444. package/dist/esm/exceptions.test.d.ts.map +0 -1
  445. package/dist/esm/exceptions.test.js +0 -237
  446. package/dist/esm/exceptions.test.js.map +0 -1
  447. package/dist/esm/extract.d.ts +0 -151
  448. package/dist/esm/extract.d.ts.map +0 -1
  449. package/dist/esm/extract.js +0 -161
  450. package/dist/esm/extract.js.map +0 -1
  451. package/dist/esm/extract.test.d.ts +0 -5
  452. package/dist/esm/extract.test.d.ts.map +0 -1
  453. package/dist/esm/extract.test.js +0 -248
  454. package/dist/esm/extract.test.js.map +0 -1
  455. package/dist/esm/generate.d.ts +0 -113
  456. package/dist/esm/generate.d.ts.map +0 -1
  457. package/dist/esm/generate.js +0 -120
  458. package/dist/esm/generate.js.map +0 -1
  459. package/dist/esm/generate.test.d.ts +0 -5
  460. package/dist/esm/generate.test.d.ts.map +0 -1
  461. package/dist/esm/generate.test.js +0 -312
  462. package/dist/esm/generate.test.js.map +0 -1
  463. package/dist/esm/index.d.ts +0 -52
  464. package/dist/esm/index.d.ts.map +0 -1
  465. package/dist/esm/index.js +0 -53
  466. package/dist/esm/index.js.map +0 -1
  467. package/dist/esm/package.json +0 -3
  468. package/dist/esm/types.d.ts +0 -73
  469. package/dist/esm/types.d.ts.map +0 -1
  470. package/dist/esm/types.js +0 -110
  471. package/dist/esm/types.js.map +0 -1
  472. package/dist/esm/types.test.d.ts +0 -5
  473. package/dist/esm/types.test.d.ts.map +0 -1
  474. package/dist/esm/types.test.js +0 -368
  475. package/dist/esm/types.test.js.map +0 -1
  476. package/dist/esm/util/http.d.ts +0 -29
  477. package/dist/esm/util/http.d.ts.map +0 -1
  478. package/dist/esm/util/http.js +0 -164
  479. package/dist/esm/util/http.js.map +0 -1
  480. package/dist/esm/util/http.test.d.ts +0 -5
  481. package/dist/esm/util/http.test.d.ts.map +0 -1
  482. package/dist/esm/util/http.test.js +0 -232
  483. package/dist/esm/util/http.test.js.map +0 -1
  484. package/dist/types/agent.d.ts +0 -156
  485. package/dist/types/agent.d.ts.map +0 -1
  486. package/dist/types/agent.test.d.ts +0 -5
  487. package/dist/types/agent.test.d.ts.map +0 -1
  488. package/dist/types/client.d.ts +0 -58
  489. package/dist/types/client.d.ts.map +0 -1
  490. package/dist/types/client.test.d.ts +0 -5
  491. package/dist/types/client.test.d.ts.map +0 -1
  492. package/dist/types/exceptions.d.ts +0 -57
  493. package/dist/types/exceptions.d.ts.map +0 -1
  494. package/dist/types/exceptions.test.d.ts +0 -5
  495. package/dist/types/exceptions.test.d.ts.map +0 -1
  496. package/dist/types/extract.d.ts +0 -151
  497. package/dist/types/extract.d.ts.map +0 -1
  498. package/dist/types/extract.test.d.ts +0 -5
  499. package/dist/types/extract.test.d.ts.map +0 -1
  500. package/dist/types/generate.d.ts +0 -113
  501. package/dist/types/generate.d.ts.map +0 -1
  502. package/dist/types/generate.test.d.ts +0 -5
  503. package/dist/types/generate.test.d.ts.map +0 -1
  504. package/dist/types/index.d.ts +0 -52
  505. package/dist/types/index.d.ts.map +0 -1
  506. package/dist/types/types.d.ts +0 -73
  507. package/dist/types/types.d.ts.map +0 -1
  508. package/dist/types/types.test.d.ts +0 -5
  509. package/dist/types/types.test.d.ts.map +0 -1
  510. package/dist/types/util/http.d.ts +0 -29
  511. package/dist/types/util/http.d.ts.map +0 -1
  512. package/dist/types/util/http.test.d.ts +0 -5
  513. package/dist/types/util/http.test.d.ts.map +0 -1
@@ -1,253 +0,0 @@
1
- /**
2
- * Tests for Tabstack Client
3
- */
4
- import { Tabstack } from './client.js';
5
- import { Extract } from './extract.js';
6
- import { Generate } from './generate.js';
7
- import { Agent } from './agent.js';
8
- import { HTTPClient } from './util/http.js';
9
- // Mock dependencies
10
- jest.mock('./util/http');
11
- jest.mock('./extract');
12
- jest.mock('./generate');
13
- jest.mock('./agent');
14
- describe('Tabstack Client', () => {
15
- beforeEach(() => {
16
- jest.clearAllMocks();
17
- });
18
- describe('constructor', () => {
19
- it('should create client with valid API key', () => {
20
- const client = new Tabstack({ apiKey: 'test-api-key' });
21
- expect(client).toBeInstanceOf(Tabstack);
22
- expect(HTTPClient).toHaveBeenCalledWith({
23
- apiKey: 'test-api-key',
24
- baseURL: undefined,
25
- });
26
- });
27
- it('should create client with API key and custom baseURL', () => {
28
- const client = new Tabstack({
29
- apiKey: 'test-api-key',
30
- baseURL: 'https://custom.api.com',
31
- });
32
- expect(client).toBeInstanceOf(Tabstack);
33
- expect(HTTPClient).toHaveBeenCalledWith({
34
- apiKey: 'test-api-key',
35
- baseURL: 'https://custom.api.com',
36
- });
37
- });
38
- it('should throw error when API key is missing', () => {
39
- expect(() => {
40
- // @ts-expect-error Testing missing apiKey
41
- new Tabstack({});
42
- }).toThrow('apiKey is required');
43
- });
44
- it('should throw error when API key is empty string', () => {
45
- expect(() => {
46
- new Tabstack({ apiKey: '' });
47
- }).toThrow('apiKey is required');
48
- });
49
- it('should throw error when API key is null', () => {
50
- expect(() => {
51
- // @ts-expect-error Testing null apiKey
52
- new Tabstack({ apiKey: null });
53
- }).toThrow('apiKey is required');
54
- });
55
- it('should throw error when API key is undefined', () => {
56
- expect(() => {
57
- // @ts-expect-error Testing undefined apiKey
58
- new Tabstack({ apiKey: undefined });
59
- }).toThrow('apiKey is required');
60
- });
61
- it('should initialize all operators', () => {
62
- const client = new Tabstack({ apiKey: 'test-api-key' });
63
- expect(client.extract).toBeInstanceOf(Extract);
64
- expect(client.generate).toBeInstanceOf(Generate);
65
- expect(client.agent).toBeInstanceOf(Agent);
66
- });
67
- it('should pass HTTPClient to all operators', () => {
68
- void new Tabstack({ apiKey: 'test-api-key' });
69
- expect(Extract).toHaveBeenCalledTimes(1);
70
- expect(Generate).toHaveBeenCalledTimes(1);
71
- expect(Agent).toHaveBeenCalledTimes(1);
72
- // Verify they were called with the HTTPClient instance
73
- const httpClientInstance = HTTPClient.mock
74
- .instances[0];
75
- expect(Extract).toHaveBeenCalledWith(httpClientInstance);
76
- expect(Generate).toHaveBeenCalledWith(httpClientInstance);
77
- expect(Agent).toHaveBeenCalledWith(httpClientInstance);
78
- });
79
- });
80
- describe('operators', () => {
81
- it('should have extract operator', () => {
82
- const client = new Tabstack({ apiKey: 'test-api-key' });
83
- expect(client.extract).toBeDefined();
84
- expect(client.extract).toBeInstanceOf(Extract);
85
- });
86
- it('should have generate operator', () => {
87
- const client = new Tabstack({ apiKey: 'test-api-key' });
88
- expect(client.generate).toBeDefined();
89
- expect(client.generate).toBeInstanceOf(Generate);
90
- });
91
- it('should have agent client', () => {
92
- const client = new Tabstack({ apiKey: 'test-api-key' });
93
- expect(client.agent).toBeDefined();
94
- expect(client.agent).toBeInstanceOf(Agent);
95
- });
96
- it('should have readonly operators', () => {
97
- const client = new Tabstack({ apiKey: 'test-api-key' });
98
- // TypeScript ensures readonly, but we can verify they exist
99
- expect(Object.getOwnPropertyDescriptor(client, 'extract')).toBeDefined();
100
- expect(Object.getOwnPropertyDescriptor(client, 'generate')).toBeDefined();
101
- expect(Object.getOwnPropertyDescriptor(client, 'agent')).toBeDefined();
102
- });
103
- });
104
- describe('multiple instances', () => {
105
- it('should create independent client instances', () => {
106
- const client1 = new Tabstack({ apiKey: 'key1' });
107
- const client2 = new Tabstack({ apiKey: 'key2' });
108
- expect(client1).not.toBe(client2);
109
- expect(HTTPClient).toHaveBeenCalledTimes(2);
110
- expect(HTTPClient).toHaveBeenNthCalledWith(1, {
111
- apiKey: 'key1',
112
- baseURL: undefined,
113
- });
114
- expect(HTTPClient).toHaveBeenNthCalledWith(2, {
115
- apiKey: 'key2',
116
- baseURL: undefined,
117
- });
118
- });
119
- it('should create clients with different baseURLs', () => {
120
- void new Tabstack({
121
- apiKey: 'key1',
122
- baseURL: 'https://api1.example.com',
123
- });
124
- void new Tabstack({
125
- apiKey: 'key2',
126
- baseURL: 'https://api2.example.com',
127
- });
128
- expect(HTTPClient).toHaveBeenCalledTimes(2);
129
- expect(HTTPClient).toHaveBeenNthCalledWith(1, {
130
- apiKey: 'key1',
131
- baseURL: 'https://api1.example.com',
132
- });
133
- expect(HTTPClient).toHaveBeenNthCalledWith(2, {
134
- apiKey: 'key2',
135
- baseURL: 'https://api2.example.com',
136
- });
137
- });
138
- });
139
- describe('API key validation', () => {
140
- it('should accept valid string API keys', () => {
141
- const validKeys = [
142
- 'abc123',
143
- 'TABS_1234567890',
144
- 'sk-proj-1234567890abcdef',
145
- 'my-api-key-with-dashes',
146
- 'my_api_key_with_underscores',
147
- ];
148
- validKeys.forEach((key) => {
149
- expect(() => new Tabstack({ apiKey: key })).not.toThrow();
150
- });
151
- });
152
- it('should reject non-string API keys', () => {
153
- const invalidKeys = [123, true, {}, []];
154
- invalidKeys.forEach((key) => {
155
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
156
- expect(() => new Tabstack({ apiKey: key })).toThrow('apiKey is required');
157
- });
158
- });
159
- it('should handle whitespace-only API keys', () => {
160
- expect(() => new Tabstack({ apiKey: ' ' })).not.toThrow();
161
- // Note: The client doesn't trim whitespace, so this technically passes
162
- // The actual validation happens at the API level
163
- });
164
- });
165
- describe('configuration', () => {
166
- it('should handle default configuration', () => {
167
- void new Tabstack({ apiKey: 'test-key' });
168
- expect(HTTPClient).toHaveBeenCalledWith({
169
- apiKey: 'test-key',
170
- baseURL: undefined,
171
- });
172
- });
173
- it('should handle custom baseURL with trailing slash', () => {
174
- void new Tabstack({
175
- apiKey: 'test-key',
176
- baseURL: 'https://custom.api.com/',
177
- });
178
- expect(HTTPClient).toHaveBeenCalledWith({
179
- apiKey: 'test-key',
180
- baseURL: 'https://custom.api.com/',
181
- });
182
- });
183
- it('should handle custom baseURL without trailing slash', () => {
184
- void new Tabstack({
185
- apiKey: 'test-key',
186
- baseURL: 'https://custom.api.com',
187
- });
188
- expect(HTTPClient).toHaveBeenCalledWith({
189
- apiKey: 'test-key',
190
- baseURL: 'https://custom.api.com',
191
- });
192
- });
193
- it('should handle localhost baseURL', () => {
194
- void new Tabstack({
195
- apiKey: 'test-key',
196
- baseURL: 'http://localhost:8080',
197
- });
198
- expect(HTTPClient).toHaveBeenCalledWith({
199
- apiKey: 'test-key',
200
- baseURL: 'http://localhost:8080',
201
- });
202
- });
203
- });
204
- describe('type safety', () => {
205
- it('should enforce TabstackOptions interface', () => {
206
- // This test ensures TypeScript types are working correctly
207
- const options = {
208
- apiKey: 'test-key',
209
- baseURL: 'https://api.example.com',
210
- };
211
- const client = new Tabstack(options);
212
- expect(client).toBeInstanceOf(Tabstack);
213
- });
214
- it('should allow optional baseURL', () => {
215
- const options = { apiKey: 'test-key' };
216
- const client = new Tabstack(options);
217
- expect(client).toBeInstanceOf(Tabstack);
218
- });
219
- });
220
- describe('integration', () => {
221
- it('should allow chaining operator methods', () => {
222
- const client = new Tabstack({ apiKey: 'test-key' });
223
- // Verify operators exist and can be accessed
224
- expect(client.extract.markdown).toBeDefined();
225
- expect(client.extract.json).toBeDefined();
226
- expect(client.generate.json).toBeDefined();
227
- expect(client.agent.automate).toBeDefined();
228
- });
229
- it('should maintain separate operator instances per client', () => {
230
- const client1 = new Tabstack({ apiKey: 'key1' });
231
- const client2 = new Tabstack({ apiKey: 'key2' });
232
- expect(client1.extract).not.toBe(client2.extract);
233
- expect(client1.generate).not.toBe(client2.generate);
234
- expect(client1.agent).not.toBe(client2.agent);
235
- });
236
- });
237
- describe('error handling', () => {
238
- it('should throw descriptive error for missing apiKey', () => {
239
- expect(() => {
240
- // @ts-expect-error Testing missing apiKey
241
- new Tabstack({});
242
- }).toThrow('apiKey is required');
243
- });
244
- it('should throw error immediately on construction, not on first use', () => {
245
- // @ts-expect-error Testing missing apiKey
246
- expect(() => new Tabstack({})).toThrow();
247
- // Should not throw if apiKey is provided
248
- const client = new Tabstack({ apiKey: 'test-key' });
249
- expect(client).toBeInstanceOf(Tabstack);
250
- });
251
- });
252
- });
253
- //# sourceMappingURL=client.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/client.test.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Custom exceptions for Tabstack SDK
3
- */
4
- /**
5
- * Base error class for all Tabstack errors
6
- */
7
- export declare class TabstackError extends Error {
8
- statusCode?: number | undefined;
9
- constructor(message: string, statusCode?: number | undefined);
10
- }
11
- /**
12
- * Error for 400 Bad Request responses
13
- *
14
- * Raised when the request is malformed or missing required fields.
15
- */
16
- export declare class BadRequestError extends TabstackError {
17
- constructor(message: string);
18
- }
19
- /**
20
- * Error for 401 Unauthorized responses
21
- *
22
- * Raised when the API key is invalid or missing.
23
- */
24
- export declare class UnauthorizedError extends TabstackError {
25
- constructor(message?: string);
26
- }
27
- /**
28
- * Error for 422 Unprocessable Entity responses related to URLs
29
- *
30
- * Raised when the provided URL is invalid or inaccessible.
31
- */
32
- export declare class InvalidURLError extends TabstackError {
33
- constructor(message?: string);
34
- }
35
- /**
36
- * Error for 500 Internal Server Error responses
37
- *
38
- * Raised when the server encounters an error processing the request.
39
- */
40
- export declare class ServerError extends TabstackError {
41
- constructor(message?: string);
42
- }
43
- /**
44
- * Error for 503 Service Unavailable responses
45
- *
46
- * Raised when a service (e.g., automate) is not available or not configured.
47
- */
48
- export declare class ServiceUnavailableError extends TabstackError {
49
- constructor(message?: string);
50
- }
51
- /**
52
- * Generic API error for unexpected status codes
53
- */
54
- export declare class APIError extends TabstackError {
55
- constructor(message: string, statusCode: number);
56
- }
57
- //# sourceMappingURL=exceptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAG7B,UAAU,CAAC,EAAE,MAAM;gBAD1B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA;CAM7B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,OAAO,EAAE,MAAM;CAK5B;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,OAAO,GAAE,MAAoD;CAK1E;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,OAAO,GAAE,MAAsC;CAK5D;AAED;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,aAAa;gBAChC,OAAO,GAAE,MAAgC;CAKtD;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;gBAC5C,OAAO,GAAE,MAA8B;CAKpD;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAAa;gBAC7B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAKhD"}
@@ -1,85 +0,0 @@
1
- /**
2
- * Custom exceptions for Tabstack SDK
3
- */
4
- /**
5
- * Base error class for all Tabstack errors
6
- */
7
- export class TabstackError extends Error {
8
- constructor(message, statusCode) {
9
- super(message);
10
- this.statusCode = statusCode;
11
- this.name = 'TabstackError';
12
- Object.setPrototypeOf(this, TabstackError.prototype);
13
- }
14
- }
15
- /**
16
- * Error for 400 Bad Request responses
17
- *
18
- * Raised when the request is malformed or missing required fields.
19
- */
20
- export class BadRequestError extends TabstackError {
21
- constructor(message) {
22
- super(message, 400);
23
- this.name = 'BadRequestError';
24
- Object.setPrototypeOf(this, BadRequestError.prototype);
25
- }
26
- }
27
- /**
28
- * Error for 401 Unauthorized responses
29
- *
30
- * Raised when the API key is invalid or missing.
31
- */
32
- export class UnauthorizedError extends TabstackError {
33
- constructor(message = 'Unauthorized - Invalid or missing API key') {
34
- super(message, 401);
35
- this.name = 'UnauthorizedError';
36
- Object.setPrototypeOf(this, UnauthorizedError.prototype);
37
- }
38
- }
39
- /**
40
- * Error for 422 Unprocessable Entity responses related to URLs
41
- *
42
- * Raised when the provided URL is invalid or inaccessible.
43
- */
44
- export class InvalidURLError extends TabstackError {
45
- constructor(message = 'Invalid or inaccessible URL') {
46
- super(message, 422);
47
- this.name = 'InvalidURLError';
48
- Object.setPrototypeOf(this, InvalidURLError.prototype);
49
- }
50
- }
51
- /**
52
- * Error for 500 Internal Server Error responses
53
- *
54
- * Raised when the server encounters an error processing the request.
55
- */
56
- export class ServerError extends TabstackError {
57
- constructor(message = 'Internal server error') {
58
- super(message, 500);
59
- this.name = 'ServerError';
60
- Object.setPrototypeOf(this, ServerError.prototype);
61
- }
62
- }
63
- /**
64
- * Error for 503 Service Unavailable responses
65
- *
66
- * Raised when a service (e.g., automate) is not available or not configured.
67
- */
68
- export class ServiceUnavailableError extends TabstackError {
69
- constructor(message = 'Service unavailable') {
70
- super(message, 503);
71
- this.name = 'ServiceUnavailableError';
72
- Object.setPrototypeOf(this, ServiceUnavailableError.prototype);
73
- }
74
- }
75
- /**
76
- * Generic API error for unexpected status codes
77
- */
78
- export class APIError extends TabstackError {
79
- constructor(message, statusCode) {
80
- super(message, statusCode);
81
- this.name = 'APIError';
82
- Object.setPrototypeOf(this, APIError.prototype);
83
- }
84
- }
85
- //# sourceMappingURL=exceptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YACE,OAAe,EACR,UAAmB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,UAAkB,2CAA2C;QACvE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,UAAkB,6BAA6B;QACzD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,aAAa;IAC5C,YAAY,UAAkB,uBAAuB;QACnD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IACxD,YAAY,UAAkB,qBAAqB;QACjD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,aAAa;IACzC,YAAY,OAAe,EAAE,UAAkB;QAC7C,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Tests for Exception classes
3
- */
4
- export {};
5
- //# sourceMappingURL=exceptions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exceptions.test.d.ts","sourceRoot":"","sources":["../../src/exceptions.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,237 +0,0 @@
1
- /**
2
- * Tests for Exception classes
3
- */
4
- import { TabstackError, BadRequestError, UnauthorizedError, InvalidURLError, ServerError, ServiceUnavailableError, APIError, } from './exceptions.js';
5
- describe('Exception Classes', () => {
6
- describe('TabstackError', () => {
7
- it('should create error with message', () => {
8
- const error = new TabstackError('Test error');
9
- expect(error).toBeInstanceOf(Error);
10
- expect(error).toBeInstanceOf(TabstackError);
11
- expect(error.message).toBe('Test error');
12
- expect(error.name).toBe('TabstackError');
13
- });
14
- it('should create error with message and status code', () => {
15
- const error = new TabstackError('Test error', 418);
16
- expect(error.message).toBe('Test error');
17
- expect(error.statusCode).toBe(418);
18
- });
19
- it('should create error without status code', () => {
20
- const error = new TabstackError('Test error');
21
- expect(error.message).toBe('Test error');
22
- expect(error.statusCode).toBeUndefined();
23
- });
24
- it('should have correct prototype chain', () => {
25
- const error = new TabstackError('Test');
26
- expect(Object.getPrototypeOf(error)).toBe(TabstackError.prototype);
27
- });
28
- it('should be catchable as Error', () => {
29
- try {
30
- throw new TabstackError('Test');
31
- }
32
- catch (error) {
33
- expect(error).toBeInstanceOf(Error);
34
- expect(error).toBeInstanceOf(TabstackError);
35
- }
36
- });
37
- });
38
- describe('BadRequestError', () => {
39
- it('should create error with message', () => {
40
- const error = new BadRequestError('Invalid request');
41
- expect(error).toBeInstanceOf(Error);
42
- expect(error).toBeInstanceOf(TabstackError);
43
- expect(error).toBeInstanceOf(BadRequestError);
44
- expect(error.message).toBe('Invalid request');
45
- expect(error.name).toBe('BadRequestError');
46
- });
47
- it('should have status code 400', () => {
48
- const error = new BadRequestError('Test');
49
- expect(error.statusCode).toBe(400);
50
- });
51
- it('should have correct prototype chain', () => {
52
- const error = new BadRequestError('Test');
53
- expect(Object.getPrototypeOf(error)).toBe(BadRequestError.prototype);
54
- expect(error).toBeInstanceOf(TabstackError);
55
- });
56
- it('should be catchable as TabstackError', () => {
57
- try {
58
- throw new BadRequestError('Test');
59
- }
60
- catch (error) {
61
- expect(error).toBeInstanceOf(TabstackError);
62
- expect(error).toBeInstanceOf(BadRequestError);
63
- }
64
- });
65
- });
66
- describe('UnauthorizedError', () => {
67
- it('should create error with custom message', () => {
68
- const error = new UnauthorizedError('Custom auth error');
69
- expect(error).toBeInstanceOf(Error);
70
- expect(error).toBeInstanceOf(TabstackError);
71
- expect(error).toBeInstanceOf(UnauthorizedError);
72
- expect(error.message).toBe('Custom auth error');
73
- expect(error.name).toBe('UnauthorizedError');
74
- });
75
- it('should have default message', () => {
76
- const error = new UnauthorizedError();
77
- expect(error.message).toBe('Unauthorized - Invalid or missing API key');
78
- });
79
- it('should have status code 401', () => {
80
- const error = new UnauthorizedError();
81
- expect(error.statusCode).toBe(401);
82
- });
83
- it('should have correct prototype chain', () => {
84
- const error = new UnauthorizedError();
85
- expect(Object.getPrototypeOf(error)).toBe(UnauthorizedError.prototype);
86
- expect(error).toBeInstanceOf(TabstackError);
87
- });
88
- });
89
- describe('InvalidURLError', () => {
90
- it('should create error with custom message', () => {
91
- const error = new InvalidURLError('URL is malformed');
92
- expect(error).toBeInstanceOf(Error);
93
- expect(error).toBeInstanceOf(TabstackError);
94
- expect(error).toBeInstanceOf(InvalidURLError);
95
- expect(error.message).toBe('URL is malformed');
96
- expect(error.name).toBe('InvalidURLError');
97
- });
98
- it('should have default message', () => {
99
- const error = new InvalidURLError();
100
- expect(error.message).toBe('Invalid or inaccessible URL');
101
- });
102
- it('should have status code 422', () => {
103
- const error = new InvalidURLError();
104
- expect(error.statusCode).toBe(422);
105
- });
106
- it('should have correct prototype chain', () => {
107
- const error = new InvalidURLError();
108
- expect(Object.getPrototypeOf(error)).toBe(InvalidURLError.prototype);
109
- expect(error).toBeInstanceOf(TabstackError);
110
- });
111
- });
112
- describe('ServerError', () => {
113
- it('should create error with custom message', () => {
114
- const error = new ServerError('Database connection failed');
115
- expect(error).toBeInstanceOf(Error);
116
- expect(error).toBeInstanceOf(TabstackError);
117
- expect(error).toBeInstanceOf(ServerError);
118
- expect(error.message).toBe('Database connection failed');
119
- expect(error.name).toBe('ServerError');
120
- });
121
- it('should have default message', () => {
122
- const error = new ServerError();
123
- expect(error.message).toBe('Internal server error');
124
- });
125
- it('should have status code 500', () => {
126
- const error = new ServerError();
127
- expect(error.statusCode).toBe(500);
128
- });
129
- it('should have correct prototype chain', () => {
130
- const error = new ServerError();
131
- expect(Object.getPrototypeOf(error)).toBe(ServerError.prototype);
132
- expect(error).toBeInstanceOf(TabstackError);
133
- });
134
- });
135
- describe('ServiceUnavailableError', () => {
136
- it('should create error with custom message', () => {
137
- const error = new ServiceUnavailableError('Automate service is down');
138
- expect(error).toBeInstanceOf(Error);
139
- expect(error).toBeInstanceOf(TabstackError);
140
- expect(error).toBeInstanceOf(ServiceUnavailableError);
141
- expect(error.message).toBe('Automate service is down');
142
- expect(error.name).toBe('ServiceUnavailableError');
143
- });
144
- it('should have default message', () => {
145
- const error = new ServiceUnavailableError();
146
- expect(error.message).toBe('Service unavailable');
147
- });
148
- it('should have status code 503', () => {
149
- const error = new ServiceUnavailableError();
150
- expect(error.statusCode).toBe(503);
151
- });
152
- it('should have correct prototype chain', () => {
153
- const error = new ServiceUnavailableError();
154
- expect(Object.getPrototypeOf(error)).toBe(ServiceUnavailableError.prototype);
155
- expect(error).toBeInstanceOf(TabstackError);
156
- });
157
- });
158
- describe('APIError', () => {
159
- it('should create error with message and status code', () => {
160
- const error = new APIError('Rate limit exceeded', 429);
161
- expect(error).toBeInstanceOf(Error);
162
- expect(error).toBeInstanceOf(TabstackError);
163
- expect(error).toBeInstanceOf(APIError);
164
- expect(error.message).toBe('Rate limit exceeded');
165
- expect(error.statusCode).toBe(429);
166
- expect(error.name).toBe('APIError');
167
- });
168
- it('should accept any status code', () => {
169
- const error = new APIError('Teapot', 418);
170
- expect(error.statusCode).toBe(418);
171
- });
172
- it('should have correct prototype chain', () => {
173
- const error = new APIError('Test', 999);
174
- expect(Object.getPrototypeOf(error)).toBe(APIError.prototype);
175
- expect(error).toBeInstanceOf(TabstackError);
176
- });
177
- });
178
- describe('Error inheritance and type checking', () => {
179
- it('should distinguish between different error types', () => {
180
- const badRequest = new BadRequestError('Bad');
181
- const unauthorized = new UnauthorizedError('Unauth');
182
- const serverError = new ServerError('Server');
183
- expect(badRequest).not.toBeInstanceOf(UnauthorizedError);
184
- expect(unauthorized).not.toBeInstanceOf(BadRequestError);
185
- expect(serverError).not.toBeInstanceOf(UnauthorizedError);
186
- expect(badRequest).toBeInstanceOf(TabstackError);
187
- expect(unauthorized).toBeInstanceOf(TabstackError);
188
- expect(serverError).toBeInstanceOf(TabstackError);
189
- });
190
- it('should preserve error properties when caught and rethrown', () => {
191
- try {
192
- throw new InvalidURLError('Bad URL');
193
- }
194
- catch (error) {
195
- if (error instanceof InvalidURLError) {
196
- expect(error.message).toBe('Bad URL');
197
- expect(error.statusCode).toBe(422);
198
- expect(error.name).toBe('InvalidURLError');
199
- }
200
- else {
201
- fail('Error should be InvalidURLError');
202
- }
203
- }
204
- });
205
- it('should work with instanceof checks in catch blocks', () => {
206
- const testError = (error) => {
207
- if (error instanceof BadRequestError) {
208
- return 'bad-request';
209
- }
210
- else if (error instanceof UnauthorizedError) {
211
- return 'unauthorized';
212
- }
213
- else if (error instanceof TabstackError) {
214
- return 'tabstack-error';
215
- }
216
- return 'unknown';
217
- };
218
- expect(testError(new BadRequestError('test'))).toBe('bad-request');
219
- expect(testError(new UnauthorizedError('test'))).toBe('unauthorized');
220
- expect(testError(new ServerError('test'))).toBe('tabstack-error');
221
- expect(testError(new Error('test'))).toBe('unknown');
222
- });
223
- });
224
- describe('Error stack traces', () => {
225
- it('should have stack trace', () => {
226
- const error = new TabstackError('Test');
227
- expect(error.stack).toBeDefined();
228
- expect(error.stack).toContain('TabstackError');
229
- });
230
- it('should have stack trace for derived errors', () => {
231
- const error = new BadRequestError('Test');
232
- expect(error.stack).toBeDefined();
233
- expect(error.stack).toContain('BadRequestError');
234
- });
235
- });
236
- });
237
- //# sourceMappingURL=exceptions.test.js.map