@abyss-project/tools 1.0.5 → 1.2.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 (347) hide show
  1. package/.eslintrc.js +33 -33
  2. package/.prettierrc +5 -5
  3. package/README.md +32 -32
  4. package/dist/api/beam.api.d.ts +48 -0
  5. package/dist/api/beam.api.js +104 -0
  6. package/dist/api/beam.api.js.map +1 -0
  7. package/dist/api/extraction-plan-preset.api.d.ts +9 -0
  8. package/dist/api/extraction-plan-preset.api.js +23 -0
  9. package/dist/api/extraction-plan-preset.api.js.map +1 -0
  10. package/dist/api/extraction-plan-preset.api.test.d.ts +1 -0
  11. package/dist/api/extraction-plan-preset.api.test.js +41 -0
  12. package/dist/api/extraction-plan-preset.api.test.js.map +1 -0
  13. package/dist/api/extraction-settings.api.d.ts +4 -0
  14. package/dist/api/extraction-settings.api.js +22 -0
  15. package/dist/api/extraction-settings.api.js.map +1 -0
  16. package/dist/api/extraction.api.d.ts +74 -0
  17. package/dist/api/extraction.api.js +416 -0
  18. package/dist/api/extraction.api.js.map +1 -0
  19. package/dist/api/index.d.ts +4 -1
  20. package/dist/api/index.js +4 -1
  21. package/dist/api/index.js.map +1 -1
  22. package/dist/constants/beam.constants.d.ts +1 -0
  23. package/dist/constants/beam.constants.js +5 -0
  24. package/dist/constants/beam.constants.js.map +1 -0
  25. package/dist/constants/index.d.ts +1 -0
  26. package/dist/constants/index.js +1 -0
  27. package/dist/constants/index.js.map +1 -1
  28. package/dist/index.d.ts +108 -59
  29. package/dist/index.js +106 -59
  30. package/dist/index.js.map +1 -1
  31. package/dist/types/enum/beam.enum.d.ts +12 -0
  32. package/dist/types/enum/beam.enum.js +18 -0
  33. package/dist/types/enum/beam.enum.js.map +1 -0
  34. package/dist/types/enum/combine-strategy.enum.d.ts +5 -0
  35. package/dist/types/enum/combine-strategy.enum.js +10 -0
  36. package/dist/types/enum/combine-strategy.enum.js.map +1 -0
  37. package/dist/types/enum/content-share.enum.d.ts +3 -1
  38. package/dist/types/enum/content-share.enum.js +2 -0
  39. package/dist/types/enum/content-share.enum.js.map +1 -1
  40. package/dist/types/enum/document-type.enum.d.ts +9 -0
  41. package/dist/types/enum/document-type.enum.js +14 -0
  42. package/dist/types/enum/document-type.enum.js.map +1 -0
  43. package/dist/types/enum/extraction-feedback-issue-type.enum.d.ts +8 -0
  44. package/dist/types/enum/extraction-feedback-issue-type.enum.js +13 -0
  45. package/dist/types/enum/extraction-feedback-issue-type.enum.js.map +1 -0
  46. package/dist/types/enum/extraction-warning.enum.d.ts +7 -0
  47. package/dist/types/enum/extraction-warning.enum.js +12 -0
  48. package/dist/types/enum/extraction-warning.enum.js.map +1 -0
  49. package/dist/types/enum/index.d.ts +7 -0
  50. package/dist/types/enum/index.js +7 -0
  51. package/dist/types/enum/index.js.map +1 -1
  52. package/dist/types/enum/interpreter-kind.enum.d.ts +5 -0
  53. package/dist/types/enum/interpreter-kind.enum.js +10 -0
  54. package/dist/types/enum/interpreter-kind.enum.js.map +1 -0
  55. package/dist/types/enum/provider-kind.enum.d.ts +10 -0
  56. package/dist/types/enum/provider-kind.enum.js +16 -0
  57. package/dist/types/enum/provider-kind.enum.js.map +1 -0
  58. package/dist/types/interface/api/requests/beam.request.d.ts +122 -0
  59. package/dist/types/interface/api/{responses/pdf.response.js → requests/beam.request.js} +1 -1
  60. package/dist/types/interface/api/requests/beam.request.js.map +1 -0
  61. package/dist/types/interface/api/requests/{rcb.request.d.ts → extraction.request.d.ts} +81 -52
  62. package/dist/types/interface/api/requests/{pdf.public.request.js → extraction.request.js} +1 -1
  63. package/dist/types/interface/api/requests/extraction.request.js.map +1 -0
  64. package/dist/types/interface/api/requests/index.d.ts +2 -1
  65. package/dist/types/interface/api/requests/index.js +2 -1
  66. package/dist/types/interface/api/requests/index.js.map +1 -1
  67. package/dist/types/interface/api/responses/beam.response.d.ts +92 -0
  68. package/dist/types/interface/api/responses/{rcb.response.js → beam.response.js} +1 -1
  69. package/dist/types/interface/api/responses/beam.response.js.map +1 -0
  70. package/dist/types/interface/api/responses/extraction.response.d.ts +403 -0
  71. package/dist/types/interface/api/{requests/user-tag.request.js → responses/extraction.response.js} +1 -1
  72. package/dist/types/interface/api/responses/extraction.response.js.map +1 -0
  73. package/dist/types/interface/api/responses/index.d.ts +2 -1
  74. package/dist/types/interface/api/responses/index.js +2 -1
  75. package/dist/types/interface/api/responses/index.js.map +1 -1
  76. package/dist/types/interface/models/beam.dto.d.ts +58 -0
  77. package/dist/types/interface/{api/requests/pdf.request.js → models/beam.dto.js} +1 -1
  78. package/dist/types/interface/models/beam.dto.js.map +1 -0
  79. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.d.ts +1 -0
  80. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.js +159 -0
  81. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.js.map +1 -0
  82. package/dist/types/interface/models/extraction-plan.dto.d.ts +163 -0
  83. package/dist/types/interface/models/extraction-plan.dto.js +11 -0
  84. package/dist/types/interface/models/extraction-plan.dto.js.map +1 -0
  85. package/dist/types/interface/models/extraction-plan.dto.test.d.ts +1 -0
  86. package/dist/types/interface/models/extraction-plan.dto.test.js +35 -0
  87. package/dist/types/interface/models/extraction-plan.dto.test.js.map +1 -0
  88. package/dist/types/interface/models/extraction-spatial-template.dto.d.ts +37 -0
  89. package/dist/types/interface/{api/requests/rcb.request.js → models/extraction-spatial-template.dto.js} +1 -1
  90. package/dist/types/interface/models/extraction-spatial-template.dto.js.map +1 -0
  91. package/dist/types/interface/models/extraction-spatial-template.dto.test.d.ts +1 -0
  92. package/dist/types/interface/models/extraction-spatial-template.dto.test.js +15 -0
  93. package/dist/types/interface/models/extraction-spatial-template.dto.test.js.map +1 -0
  94. package/dist/types/interface/models/{rcb.dto.d.ts → extraction.dto.d.ts} +64 -48
  95. package/dist/types/interface/models/extraction.dto.js +28 -0
  96. package/dist/types/interface/models/extraction.dto.js.map +1 -0
  97. package/dist/types/interface/models/index.d.ts +4 -1
  98. package/dist/types/interface/models/index.js +4 -1
  99. package/dist/types/interface/models/index.js.map +1 -1
  100. package/dist/types/interface/models/organization.dto.d.ts +2 -0
  101. package/dist/utils/{rcb-webhook.utils.d.ts → extraction-webhook.utils.d.ts} +2 -2
  102. package/dist/utils/{rcb-webhook.utils.js → extraction-webhook.utils.js} +4 -4
  103. package/dist/utils/extraction-webhook.utils.js.map +1 -0
  104. package/dist/utils/index.d.ts +1 -1
  105. package/dist/utils/index.js +1 -1
  106. package/dist/utils/index.js.map +1 -1
  107. package/dist/utils/shape.utils.js +18 -18
  108. package/package.json +14 -9
  109. package/src/api/abyss.admin.api.ts +54 -54
  110. package/src/api/atlas-document.api.ts +68 -68
  111. package/src/api/atlas-group.api.ts +69 -69
  112. package/src/api/atlas-page.api.ts +124 -124
  113. package/src/api/atlas.api.ts +103 -103
  114. package/src/api/atlas.public.api.ts +42 -42
  115. package/src/api/beam.api.ts +300 -0
  116. package/src/api/board-card-checklist.api.ts +99 -99
  117. package/src/api/board-card-comment.api.ts +57 -57
  118. package/src/api/board-card-document.api.ts +57 -57
  119. package/src/api/board-card.api.ts +137 -137
  120. package/src/api/board-column.api.ts +54 -54
  121. package/src/api/board-label.api.ts +87 -87
  122. package/src/api/board.api.ts +122 -122
  123. package/src/api/draw.api.ts +97 -97
  124. package/src/api/draw.public.api.ts +48 -48
  125. package/src/api/extraction-plan-preset.api.test.ts +24 -0
  126. package/src/api/extraction-plan-preset.api.ts +51 -0
  127. package/src/api/extraction-settings.api.ts +59 -0
  128. package/src/api/extraction.api.ts +899 -0
  129. package/src/api/index.ts +56 -51
  130. package/src/api/memo.api.ts +97 -97
  131. package/src/api/metrics.api.ts +27 -27
  132. package/src/api/monitor.api.ts +6 -6
  133. package/src/api/organization.api.ts +14 -14
  134. package/src/api/retrospective-card.api.ts +74 -74
  135. package/src/api/retrospective-member.api.ts +54 -54
  136. package/src/api/retrospective-section.api.ts +74 -74
  137. package/src/api/retrospective.api.ts +124 -124
  138. package/src/api/retrospective.public.api.ts +147 -147
  139. package/src/api/short-link.admin.api.ts +39 -39
  140. package/src/api/short-link.api.ts +125 -125
  141. package/src/api/short-link.public.api.ts +60 -60
  142. package/src/api/tag.api.ts +72 -72
  143. package/src/api/tests/beam.api.spec.ts +42 -0
  144. package/src/constants/atlas.constants.ts +2 -2
  145. package/src/constants/beam.constants.ts +4 -0
  146. package/src/constants/board.constants.ts +7 -7
  147. package/src/constants/index.ts +6 -5
  148. package/src/constants/memo.constants.ts +3 -3
  149. package/src/constants/short-link.constants.ts +11 -11
  150. package/src/constants/tag.constants.ts +3 -3
  151. package/src/index.ts +840 -747
  152. package/src/server-sent-events/index.ts +13 -13
  153. package/src/server-sent-events/protocols/atlas/atlas.sse-protocol.ts +90 -90
  154. package/src/server-sent-events/protocols/atlas/index.ts +1 -1
  155. package/src/server-sent-events/protocols/board/board.sse-protocol.ts +115 -115
  156. package/src/server-sent-events/protocols/board/index.ts +1 -1
  157. package/src/server-sent-events/protocols/board-card/board-card.sse-protocol.ts +26 -26
  158. package/src/server-sent-events/protocols/board-card/index.ts +1 -1
  159. package/src/server-sent-events/protocols/index.ts +26 -26
  160. package/src/server-sent-events/protocols/retrospective/index.ts +1 -1
  161. package/src/server-sent-events/protocols/retrospective/retrospective.sse-protocol.ts +92 -92
  162. package/src/server-sent-events/server-sent-events.manager.ts +73 -73
  163. package/src/types/draw.type.ts +173 -173
  164. package/src/types/enum/api-error.enum.ts +23 -23
  165. package/src/types/enum/beam.enum.ts +24 -0
  166. package/src/types/enum/board-activity.enum.ts +189 -189
  167. package/src/types/enum/board-column-type.enum.ts +6 -6
  168. package/src/types/enum/combine-strategy.enum.ts +7 -0
  169. package/src/types/enum/content-share.enum.ts +38 -36
  170. package/src/types/enum/document-type.enum.ts +10 -0
  171. package/src/types/enum/extraction-feedback-issue-type.enum.ts +10 -0
  172. package/src/types/enum/extraction-warning.enum.ts +21 -0
  173. package/src/types/enum/index.ts +13 -6
  174. package/src/types/enum/interpreter-kind.enum.ts +7 -0
  175. package/src/types/enum/pdf-operation.enum.ts +98 -98
  176. package/src/types/enum/provider-kind.enum.ts +13 -0
  177. package/src/types/enum/rcb-bank.enum.ts +137 -137
  178. package/src/types/index.ts +5 -5
  179. package/src/types/interface/api/index.ts +5 -5
  180. package/src/types/interface/api/requests/abyss.admin.request.ts +20 -20
  181. package/src/types/interface/api/requests/atlas-document.request.ts +32 -32
  182. package/src/types/interface/api/requests/atlas-group.request.ts +45 -45
  183. package/src/types/interface/api/requests/atlas-page.request.ts +84 -84
  184. package/src/types/interface/api/requests/atlas.public.request.ts +21 -21
  185. package/src/types/interface/api/requests/atlas.request.ts +52 -52
  186. package/src/types/interface/api/requests/beam.request.ts +152 -0
  187. package/src/types/interface/api/requests/board-card-checklist.request.ts +61 -61
  188. package/src/types/interface/api/requests/board-card-comment.request.ts +28 -28
  189. package/src/types/interface/api/requests/board-card-document.request.ts +29 -29
  190. package/src/types/interface/api/requests/board-card.request.ts +86 -86
  191. package/src/types/interface/api/requests/board-column.request.ts +30 -30
  192. package/src/types/interface/api/requests/board-label.request.ts +42 -42
  193. package/src/types/interface/api/requests/board.request.ts +61 -61
  194. package/src/types/interface/api/requests/draw.public.request.ts +20 -20
  195. package/src/types/interface/api/requests/draw.request.ts +49 -49
  196. package/src/types/interface/api/requests/extraction.request.ts +366 -0
  197. package/src/types/interface/api/requests/index.ts +29 -28
  198. package/src/types/interface/api/requests/memo.request.ts +49 -49
  199. package/src/types/interface/api/requests/metrics.request.ts +7 -7
  200. package/src/types/interface/api/requests/retrospective-card.request.ts +38 -38
  201. package/src/types/interface/api/requests/retrospective-member.request.ts +20 -20
  202. package/src/types/interface/api/requests/retrospective-section.request.ts +43 -43
  203. package/src/types/interface/api/requests/retrospective.public.request.ts +84 -84
  204. package/src/types/interface/api/requests/retrospective.request.ts +59 -59
  205. package/src/types/interface/api/requests/short-link.admin.request.ts +35 -35
  206. package/src/types/interface/api/requests/short-link.public.request.ts +40 -40
  207. package/src/types/interface/api/requests/short-link.request.ts +71 -71
  208. package/src/types/interface/api/requests/tag.request.ts +54 -54
  209. package/src/types/interface/api/requests/transfer.request.ts +3 -3
  210. package/src/types/interface/api/responses/abyss.admin.response.ts +28 -28
  211. package/src/types/interface/api/responses/atlas-document.response.ts +24 -24
  212. package/src/types/interface/api/responses/atlas-group.response.ts +23 -23
  213. package/src/types/interface/api/responses/atlas-page.response.ts +53 -53
  214. package/src/types/interface/api/responses/atlas.public.response.ts +21 -21
  215. package/src/types/interface/api/responses/atlas.response.ts +32 -32
  216. package/src/types/interface/api/responses/beam.response.ts +122 -0
  217. package/src/types/interface/api/responses/board-card-checklist.response.ts +31 -31
  218. package/src/types/interface/api/responses/board-card-comment.response.ts +20 -20
  219. package/src/types/interface/api/responses/board-card-document.response.ts +21 -21
  220. package/src/types/interface/api/responses/board-card.response.ts +55 -55
  221. package/src/types/interface/api/responses/board-column.response.ts +20 -20
  222. package/src/types/interface/api/responses/board-label.response.ts +31 -31
  223. package/src/types/interface/api/responses/board.response.ts +81 -81
  224. package/src/types/interface/api/responses/count.response.ts +9 -9
  225. package/src/types/interface/api/responses/draw.public.response.ts +22 -22
  226. package/src/types/interface/api/responses/draw.response.ts +32 -32
  227. package/src/types/interface/api/responses/enriched-paginate.response.ts +11 -11
  228. package/src/types/interface/api/responses/extraction.response.ts +454 -0
  229. package/src/types/interface/api/responses/index.ts +33 -32
  230. package/src/types/interface/api/responses/memo.response.ts +32 -32
  231. package/src/types/interface/api/responses/metrics.response.ts +22 -22
  232. package/src/types/interface/api/responses/monitor.response.ts +8 -8
  233. package/src/types/interface/api/responses/recent.response.ts +18 -18
  234. package/src/types/interface/api/responses/retrospective-card.response.ts +23 -23
  235. package/src/types/interface/api/responses/retrospective-member.response.ts +22 -22
  236. package/src/types/interface/api/responses/retrospective-section.response.ts +23 -23
  237. package/src/types/interface/api/responses/retrospective.public.response.ts +57 -57
  238. package/src/types/interface/api/responses/retrospective.response.ts +32 -32
  239. package/src/types/interface/api/responses/short-link.admin.response.ts +21 -21
  240. package/src/types/interface/api/responses/short-link.public.response.ts +26 -26
  241. package/src/types/interface/api/responses/short-link.response.ts +38 -38
  242. package/src/types/interface/api/responses/tag.response.ts +38 -38
  243. package/src/types/interface/api/responses/transfer.response.ts +14 -14
  244. package/src/types/interface/api/type-message/api-error.ts +7 -7
  245. package/src/types/interface/api/type-message/base-paginate.ts +11 -11
  246. package/src/types/interface/api/type-message/response.ts +6 -6
  247. package/src/types/interface/index.ts +2 -2
  248. package/src/types/interface/models/atlas-document.dto.ts +22 -22
  249. package/src/types/interface/models/atlas-group.dto.ts +21 -21
  250. package/src/types/interface/models/atlas-page-content.dto.ts +17 -17
  251. package/src/types/interface/models/atlas-page.dto.ts +26 -26
  252. package/src/types/interface/models/atlas.dto.ts +34 -34
  253. package/src/types/interface/models/beam.dto.ts +67 -0
  254. package/src/types/interface/models/board-activity.dto.ts +20 -20
  255. package/src/types/interface/models/board-card-checklist-row.dto.ts +14 -14
  256. package/src/types/interface/models/board-card-checklist.dto.ts +16 -16
  257. package/src/types/interface/models/board-card-comment.dto.ts +15 -15
  258. package/src/types/interface/models/board-card-document.dto.ts +22 -22
  259. package/src/types/interface/models/board-card-label.dto.ts +14 -14
  260. package/src/types/interface/models/board-card-member.dto.ts +14 -14
  261. package/src/types/interface/models/board-card.dto.ts +37 -37
  262. package/src/types/interface/models/board-column.dto.ts +17 -17
  263. package/src/types/interface/models/board-label.dto.ts +13 -13
  264. package/src/types/interface/models/board.dto.ts +33 -33
  265. package/src/types/interface/models/content-share.dto.ts +16 -16
  266. package/src/types/interface/models/draw.dto.ts +30 -30
  267. package/src/types/interface/models/extraction-fetched-provenance.dto.test.ts +193 -0
  268. package/src/types/interface/models/extraction-plan.dto.test.ts +47 -0
  269. package/src/types/interface/models/extraction-plan.dto.ts +241 -0
  270. package/src/types/interface/models/extraction-spatial-template.dto.test.ts +27 -0
  271. package/src/types/interface/models/extraction-spatial-template.dto.ts +48 -0
  272. package/src/types/interface/models/{rcb.dto.ts → extraction.dto.ts} +317 -267
  273. package/src/types/interface/models/index.ts +34 -31
  274. package/src/types/interface/models/memo.dto.ts +23 -23
  275. package/src/types/interface/models/organization.dto.ts +21 -12
  276. package/src/types/interface/models/project.dto.ts +25 -25
  277. package/src/types/interface/models/retrospective-card.dto.ts +17 -17
  278. package/src/types/interface/models/retrospective-member.dto.ts +15 -15
  279. package/src/types/interface/models/retrospective-section.dto.ts +16 -16
  280. package/src/types/interface/models/retrospective.dto.ts +32 -32
  281. package/src/types/interface/models/short-link-click.dto.ts +33 -33
  282. package/src/types/interface/models/short-link.dto.ts +49 -49
  283. package/src/types/interface/models/tag.dto.ts +26 -26
  284. package/src/types/interface/models/team.dto.ts +12 -12
  285. package/src/types/interface/models/user.dto.ts +26 -26
  286. package/src/types/tests/beam-management-types.spec.ts +38 -0
  287. package/src/types/tests/beam-share-enums.spec.ts +11 -0
  288. package/src/types/tests/beam.dto.spec.ts +61 -0
  289. package/src/types/tests/beam.request-response.spec.ts +43 -0
  290. package/src/utils/board.utils.ts +57 -57
  291. package/src/utils/enum.utils.ts +5 -5
  292. package/src/utils/error.utils.ts +30 -30
  293. package/src/utils/{rcb-webhook.utils.ts → extraction-webhook.utils.ts} +30 -30
  294. package/src/utils/icons.utils.ts +96 -96
  295. package/src/utils/index.ts +6 -6
  296. package/src/utils/shape.utils.ts +292 -292
  297. package/tsconfig.json +36 -35
  298. package/dist/api/atlas-page-content.api.d.ts +0 -0
  299. package/dist/api/atlas-page-content.api.js +0 -2
  300. package/dist/api/atlas-page-content.api.js.map +0 -1
  301. package/dist/api/pdf.api.d.ts +0 -15
  302. package/dist/api/pdf.api.js +0 -61
  303. package/dist/api/pdf.api.js.map +0 -1
  304. package/dist/api/pdf.public.api.d.ts +0 -8
  305. package/dist/api/pdf.public.api.js +0 -33
  306. package/dist/api/pdf.public.api.js.map +0 -1
  307. package/dist/api/rcb.api.d.ts +0 -72
  308. package/dist/api/rcb.api.js +0 -400
  309. package/dist/api/rcb.api.js.map +0 -1
  310. package/dist/api/user-tag.api.d.ts +0 -9
  311. package/dist/api/user-tag.api.js +0 -37
  312. package/dist/api/user-tag.api.js.map +0 -1
  313. package/dist/constants/user-tag.constants.d.ts +0 -3
  314. package/dist/constants/user-tag.constants.js +0 -7
  315. package/dist/constants/user-tag.constants.js.map +0 -1
  316. package/dist/types/enum/pdf-session.enum.d.ts +0 -10
  317. package/dist/types/enum/pdf-session.enum.js +0 -16
  318. package/dist/types/enum/pdf-session.enum.js.map +0 -1
  319. package/dist/types/interface/api/requests/pdf.public.request.d.ts +0 -19
  320. package/dist/types/interface/api/requests/pdf.public.request.js.map +0 -1
  321. package/dist/types/interface/api/requests/pdf.request.d.ts +0 -50
  322. package/dist/types/interface/api/requests/pdf.request.js.map +0 -1
  323. package/dist/types/interface/api/requests/rcb.request.js.map +0 -1
  324. package/dist/types/interface/api/requests/user-tag.request.d.ts +0 -44
  325. package/dist/types/interface/api/requests/user-tag.request.js.map +0 -1
  326. package/dist/types/interface/api/responses/pdf.public.response.d.ts +0 -33
  327. package/dist/types/interface/api/responses/pdf.public.response.js +0 -3
  328. package/dist/types/interface/api/responses/pdf.public.response.js.map +0 -1
  329. package/dist/types/interface/api/responses/pdf.response.d.ts +0 -35
  330. package/dist/types/interface/api/responses/pdf.response.js.map +0 -1
  331. package/dist/types/interface/api/responses/rcb.response.d.ts +0 -376
  332. package/dist/types/interface/api/responses/rcb.response.js.map +0 -1
  333. package/dist/types/interface/api/responses/user-tag.response.d.ts +0 -32
  334. package/dist/types/interface/api/responses/user-tag.response.js +0 -3
  335. package/dist/types/interface/api/responses/user-tag.response.js.map +0 -1
  336. package/dist/types/interface/models/pdf-session.dto.d.ts +0 -28
  337. package/dist/types/interface/models/pdf-session.dto.js +0 -3
  338. package/dist/types/interface/models/pdf-session.dto.js.map +0 -1
  339. package/dist/types/interface/models/rcb.dto.js +0 -26
  340. package/dist/types/interface/models/rcb.dto.js.map +0 -1
  341. package/dist/types/interface/models/user-tag.dto.d.ts +0 -22
  342. package/dist/types/interface/models/user-tag.dto.js +0 -3
  343. package/dist/types/interface/models/user-tag.dto.js.map +0 -1
  344. package/dist/utils/rcb-webhook.utils.js.map +0 -1
  345. package/src/api/rcb.api.ts +0 -829
  346. package/src/types/interface/api/requests/rcb.request.ts +0 -267
  347. package/src/types/interface/api/responses/rcb.response.ts +0 -399
@@ -0,0 +1,899 @@
1
+ // ──────────────────────────────────────────────
2
+ // Extraction — user-facing API.
3
+ //
4
+ // Sync helper accepts an inline PDF buffer (multipart) or a storage_file_id.
5
+ // Queue helper enqueues for async processing + webhook delivery.
6
+ // ──────────────────────────────────────────────
7
+
8
+ import { AbyssToolsCore } from '..';
9
+ import {
10
+ IExtractBody,
11
+ IExtractBulkBody,
12
+ IDetectBulkBody,
13
+ IListFilesQuery,
14
+ IPatchFileBody,
15
+ IPatchExtractionBody,
16
+ ISearchExtractionRecordsQuery,
17
+ IExportExtractionQuery,
18
+ IAsyncExportExtractionBody,
19
+ IListUsageQuery,
20
+ ISummaryUsageQuery,
21
+ IListWebhookDeliveriesQuery,
22
+ IReplayWebhookDeliveryBody,
23
+ IMintShareExtractionBody,
24
+ IToggleExtractionTrainingBody,
25
+ } from '../types';
26
+ import {
27
+ IExtractSyncResponse,
28
+ IExtractQueueResponse,
29
+ IExtractBulkResponse,
30
+ IDetectResponse,
31
+ IDetectBulkResponse,
32
+ IListFilesResponse,
33
+ IGetFileResponse,
34
+ IListFileExtractionsResponse,
35
+ IGetExtractionResponse,
36
+ ISearchExtractionRecordsResponse,
37
+ IDiffExtractionsResponse,
38
+ IAsyncExportResponse,
39
+ IGetExportJobResponse,
40
+ ICreateTemplateResponse,
41
+ IUpdateTemplateResponse,
42
+ IListTemplatesResponse,
43
+ IGetTemplateResponse,
44
+ IListTemplateVersionsResponse,
45
+ IExtractionTemplateCollection,
46
+ IImportTemplateCollectionResponse,
47
+ IGetJobResponse,
48
+ ICreateFeedbackResponse,
49
+ IListFeedbackResponse,
50
+ IGetFeedbackResponse,
51
+ IHealthResponse,
52
+ IStatsResponse,
53
+ ISummaryUsageResponse,
54
+ IListWebhookDeliveriesResponse,
55
+ IGetWebhookDeliveryResponse,
56
+ IGetSharedExtractionResponse,
57
+ IMintShareExtractionResponse,
58
+ IChangelogResponse,
59
+ IToggleExtractionTrainingResponse,
60
+ } from '../types';
61
+ import {
62
+ ICreateTemplateBody,
63
+ IUpdateTemplateBody,
64
+ IPatchTemplateMetaBody,
65
+ ISubmitFeedbackExtractionBody,
66
+ IPatchFeedbackBody,
67
+ IListFeedbackQuery,
68
+ IListSharedFilesQuery,
69
+ IPaginateExtractionWebhookQuery,
70
+ ICreateExtractionWebhookBody,
71
+ IUpdateExtractionWebhookBody,
72
+ IExtractionWebhookScopeQuery,
73
+ IExtractionContentScopeQuery,
74
+ IExtractionTemplateScopeQuery,
75
+ } from '../types';
76
+ import type {
77
+ IPaginateExtractionWebhookResponse,
78
+ IGetExtractionWebhookResponse,
79
+ ICreateExtractionWebhookResponse,
80
+ IUpdateExtractionWebhookResponse,
81
+ IDeleteExtractionWebhookResponse,
82
+ IResetSecretExtractionWebhookResponse,
83
+ } from '../types';
84
+
85
+ const DEFAULT_API_KEY_HEADER = 'abyss-api-key';
86
+
87
+ function authHeader(apiKey?: string): Record<string, string> {
88
+ return apiKey ? { [DEFAULT_API_KEY_HEADER]: apiKey } : {};
89
+ }
90
+
91
+ async function loadFormData(): Promise<any> {
92
+ if (typeof FormData !== 'undefined' && typeof window !== 'undefined') {
93
+ return FormData;
94
+ }
95
+ // Use indirect eval so bundlers (esbuild/vite/webpack) do not try to
96
+ // resolve the Node-only "form-data" package when this file is included
97
+ // in a browser bundle. The require only runs at runtime on Node.
98
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func
99
+ const nodeRequire: NodeRequire = new Function('return require')();
100
+ return nodeRequire('form-data');
101
+ }
102
+
103
+ function serializeParams<T extends object>(o: T): Record<string, unknown> {
104
+ const out: Record<string, unknown> = {};
105
+ for (const [k, v] of Object.entries(o as Record<string, unknown>)) {
106
+ if (v === undefined || v === null) continue;
107
+ out[k] = v instanceof Date ? v.toISOString() : v;
108
+ }
109
+ return out;
110
+ }
111
+
112
+ // ─── EXTRACT ─────────────────────────────────
113
+
114
+ /**
115
+ * Optional per-call extras for extract endpoints. `idempotencyKey` is a
116
+ * Stripe-style replay key (24h window) sent as the `Idempotency-Key` header —
117
+ * not part of the request body.
118
+ */
119
+ export interface ExtractCallOptions {
120
+ idempotencyKey?: string;
121
+ }
122
+
123
+ export const extractSync = async (
124
+ body: IExtractBody,
125
+ scope: IExtractionContentScopeQuery = {},
126
+ apiKey?: string,
127
+ opts: ExtractCallOptions = {},
128
+ ): Promise<IExtractSyncResponse> => {
129
+ return postExtract(
130
+ { ...body, processing: 'sync' },
131
+ scope,
132
+ apiKey,
133
+ opts,
134
+ ) as Promise<IExtractSyncResponse>;
135
+ };
136
+
137
+ export const extractQueue = async (
138
+ body: IExtractBody,
139
+ scope: IExtractionContentScopeQuery = {},
140
+ apiKey?: string,
141
+ opts: ExtractCallOptions = {},
142
+ ): Promise<IExtractQueueResponse> => {
143
+ return postExtract(
144
+ { ...body, processing: 'queue' },
145
+ scope,
146
+ apiKey,
147
+ opts,
148
+ ) as Promise<IExtractQueueResponse>;
149
+ };
150
+
151
+ const postExtract = async (
152
+ body: IExtractBody,
153
+ scope: IExtractionContentScopeQuery = {},
154
+ apiKey?: string,
155
+ opts: ExtractCallOptions = {},
156
+ ): Promise<unknown> => {
157
+ const extraHeaders: Record<string, string> = {};
158
+ if (opts.idempotencyKey) {
159
+ extraHeaders['Idempotency-Key'] = opts.idempotencyKey;
160
+ }
161
+ const params = serializeParams(scope);
162
+ if (body.pdf) {
163
+ const isBrowser = typeof window !== 'undefined' && typeof FormData !== 'undefined';
164
+ const filename = body.pdf_filename ?? 'document.pdf';
165
+ if (isBrowser) {
166
+ const form = new FormData();
167
+ const blob = new Blob([body.pdf as Uint8Array], { type: 'application/pdf' });
168
+ form.append('file', blob, filename);
169
+ appendIf(form, 'mode', body.mode);
170
+ if (body.hint) form.append('hint', JSON.stringify(body.hint));
171
+ appendIf(form, 'template_id', body.template_id);
172
+ if (body.template) form.append('template', JSON.stringify(body.template));
173
+ appendIf(form, 'user_external_id', body.user_external_id);
174
+ if (body.user_metadata) form.append('user_metadata', JSON.stringify(body.user_metadata));
175
+ if (typeof body.archive === 'boolean') form.append('archive', String(body.archive));
176
+ if (typeof body.force === 'boolean') form.append('force', String(body.force));
177
+ if (body.processing) form.append('processing', body.processing);
178
+ return (
179
+ await AbyssToolsCore.axios.post(`extract/extract`, form, {
180
+ params,
181
+ headers: { ...authHeader(apiKey), ...extraHeaders },
182
+ maxBodyLength: Infinity,
183
+ maxContentLength: Infinity,
184
+ })
185
+ ).data;
186
+ }
187
+ const FormDataCtor = await loadFormData();
188
+ const form = new FormDataCtor();
189
+ const buf = Buffer.isBuffer(body.pdf) ? body.pdf : Buffer.from(body.pdf);
190
+ form.append('file', buf, {
191
+ filename,
192
+ contentType: 'application/pdf',
193
+ });
194
+ appendIf(form, 'mode', body.mode);
195
+ if (body.hint) form.append('hint', JSON.stringify(body.hint));
196
+ appendIf(form, 'template_id', body.template_id);
197
+ if (body.template) form.append('template', JSON.stringify(body.template));
198
+ appendIf(form, 'user_external_id', body.user_external_id);
199
+ if (body.user_metadata) form.append('user_metadata', JSON.stringify(body.user_metadata));
200
+ if (typeof body.archive === 'boolean') form.append('archive', String(body.archive));
201
+ if (typeof body.force === 'boolean') form.append('force', String(body.force));
202
+ if (body.processing) form.append('processing', body.processing);
203
+ return (
204
+ await AbyssToolsCore.axios.post(`extract/extract`, form, {
205
+ params,
206
+ headers: {
207
+ ...(typeof form.getHeaders === 'function' ? form.getHeaders() : {}),
208
+ ...authHeader(apiKey),
209
+ ...extraHeaders,
210
+ },
211
+ maxBodyLength: Infinity,
212
+ maxContentLength: Infinity,
213
+ })
214
+ ).data;
215
+ }
216
+ // Strip `pdf` from the JSON body (only used for multipart upload above).
217
+ const jsonBody: Omit<IExtractBody, 'pdf'> = { ...body };
218
+ delete (jsonBody as { pdf?: unknown }).pdf;
219
+ return (
220
+ await AbyssToolsCore.axios.post(`extract/extract`, jsonBody, {
221
+ params,
222
+ headers: { ...authHeader(apiKey), ...extraHeaders },
223
+ })
224
+ ).data;
225
+ };
226
+
227
+ function appendIf(form: any, key: string, value: unknown): void {
228
+ if (value === undefined || value === null) return;
229
+ form.append(key, String(value));
230
+ }
231
+
232
+ export const extractBulk = async (
233
+ body: IExtractBulkBody,
234
+ scope: IExtractionContentScopeQuery = {},
235
+ apiKey?: string,
236
+ ): Promise<IExtractBulkResponse> => {
237
+ return (
238
+ await AbyssToolsCore.axios.post<IExtractBulkResponse>(`extract/extract/bulk`, body, {
239
+ params: serializeParams(scope),
240
+ headers: authHeader(apiKey),
241
+ })
242
+ ).data;
243
+ };
244
+
245
+ // ─── DETECT ──────────────────────────────────
246
+
247
+ export const detect = async (
248
+ pdf: Buffer | Uint8Array,
249
+ pdfFilename = 'document.pdf',
250
+ apiKey?: string,
251
+ ): Promise<IDetectResponse> => {
252
+ const isBrowser = typeof window !== 'undefined' && typeof FormData !== 'undefined';
253
+ if (isBrowser) {
254
+ const form = new FormData();
255
+ const blob = new Blob([pdf as Uint8Array], { type: 'application/pdf' });
256
+ form.append('file', blob, pdfFilename);
257
+ return (
258
+ await AbyssToolsCore.axios.post<IDetectResponse>(`extract/detect`, form, {
259
+ headers: authHeader(apiKey),
260
+ maxBodyLength: Infinity,
261
+ maxContentLength: Infinity,
262
+ })
263
+ ).data;
264
+ }
265
+ const FormDataCtor = await loadFormData();
266
+ const form = new FormDataCtor();
267
+ const buf = Buffer.isBuffer(pdf) ? pdf : Buffer.from(pdf);
268
+ form.append('file', buf, { filename: pdfFilename, contentType: 'application/pdf' });
269
+ return (
270
+ await AbyssToolsCore.axios.post<IDetectResponse>(`extract/detect`, form, {
271
+ headers: {
272
+ ...(typeof form.getHeaders === 'function' ? form.getHeaders() : {}),
273
+ ...authHeader(apiKey),
274
+ },
275
+ maxBodyLength: Infinity,
276
+ maxContentLength: Infinity,
277
+ })
278
+ ).data;
279
+ };
280
+
281
+ export const detectBulk = async (
282
+ body: IDetectBulkBody,
283
+ apiKey?: string,
284
+ ): Promise<IDetectBulkResponse> => {
285
+ return (
286
+ await AbyssToolsCore.axios.post<IDetectBulkResponse>(`extract/detect/bulk`, body, {
287
+ headers: authHeader(apiKey),
288
+ })
289
+ ).data;
290
+ };
291
+
292
+ // ─── FILES ───────────────────────────────────
293
+
294
+ export const listFiles = async (
295
+ query: IListFilesQuery = {},
296
+ apiKey?: string,
297
+ ): Promise<IListFilesResponse> => {
298
+ return (
299
+ await AbyssToolsCore.axios.get<IListFilesResponse>(`extract/files`, {
300
+ params: serializeParams(query),
301
+ headers: authHeader(apiKey),
302
+ })
303
+ ).data;
304
+ };
305
+
306
+ export const getFile = async (
307
+ fileId: string,
308
+ scope: IExtractionContentScopeQuery = {},
309
+ apiKey?: string,
310
+ ): Promise<IGetFileResponse> => {
311
+ return (
312
+ await AbyssToolsCore.axios.get<IGetFileResponse>(`extract/files/${fileId}`, {
313
+ params: serializeParams(scope),
314
+ headers: authHeader(apiKey),
315
+ })
316
+ ).data;
317
+ };
318
+
319
+ export const listFileExtractions = async (
320
+ fileId: string,
321
+ query: { limit?: number; offset?: number } & IExtractionContentScopeQuery = {},
322
+ apiKey?: string,
323
+ ): Promise<IListFileExtractionsResponse> => {
324
+ return (
325
+ await AbyssToolsCore.axios.get<IListFileExtractionsResponse>(
326
+ `extract/files/${fileId}/extractions`,
327
+ { params: serializeParams(query), headers: authHeader(apiKey) },
328
+ )
329
+ ).data;
330
+ };
331
+
332
+ export const patchFile = async (
333
+ fileId: string,
334
+ body: IPatchFileBody,
335
+ scope: IExtractionContentScopeQuery = {},
336
+ apiKey?: string,
337
+ ): Promise<IGetFileResponse> => {
338
+ return (
339
+ await AbyssToolsCore.axios.patch<IGetFileResponse>(`extract/files/${fileId}`, body, {
340
+ params: serializeParams(scope),
341
+ headers: authHeader(apiKey),
342
+ })
343
+ ).data;
344
+ };
345
+
346
+ export const downloadFileBundle = async (
347
+ fileId: string,
348
+ query: { format?: 'csv' | 'json' } & IExtractionContentScopeQuery = {},
349
+ apiKey?: string,
350
+ ): Promise<Buffer> => {
351
+ const res = await AbyssToolsCore.axios.get(`extract/files/${fileId}/bundle`, {
352
+ params: serializeParams(query),
353
+ responseType: 'arraybuffer',
354
+ headers: authHeader(apiKey),
355
+ });
356
+ return Buffer.from(res.data as ArrayBuffer);
357
+ };
358
+
359
+ // ─── EXTRACTIONS ─────────────────────────────
360
+
361
+ export const getExtraction = async (
362
+ extractionId: string,
363
+ scope: IExtractionContentScopeQuery = {},
364
+ apiKey?: string,
365
+ ): Promise<IGetExtractionResponse> => {
366
+ return (
367
+ await AbyssToolsCore.axios.get<IGetExtractionResponse>(`extract/extractions/${extractionId}`, {
368
+ params: serializeParams(scope),
369
+ headers: authHeader(apiKey),
370
+ })
371
+ ).data;
372
+ };
373
+
374
+ export const patchExtraction = async (
375
+ extractionId: string,
376
+ body: IPatchExtractionBody,
377
+ scope: IExtractionContentScopeQuery = {},
378
+ apiKey?: string,
379
+ ): Promise<IGetExtractionResponse> => {
380
+ return (
381
+ await AbyssToolsCore.axios.patch<IGetExtractionResponse>(
382
+ `extract/extractions/${extractionId}`,
383
+ body,
384
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
385
+ )
386
+ ).data;
387
+ };
388
+
389
+ export const searchExtractionRecords = async (
390
+ extractionId: string,
391
+ query: ISearchExtractionRecordsQuery & IExtractionContentScopeQuery = {},
392
+ apiKey?: string,
393
+ ): Promise<ISearchExtractionRecordsResponse> => {
394
+ return (
395
+ await AbyssToolsCore.axios.get<ISearchExtractionRecordsResponse>(
396
+ `extract/extractions/${extractionId}/records`,
397
+ { params: serializeParams(query), headers: authHeader(apiKey) },
398
+ )
399
+ ).data;
400
+ };
401
+
402
+ export const exportExtraction = async (
403
+ extractionId: string,
404
+ query: IExportExtractionQuery & IExtractionContentScopeQuery,
405
+ apiKey?: string,
406
+ ): Promise<{ body: string; contentType: string }> => {
407
+ const res = await AbyssToolsCore.axios.get(`extract/extractions/${extractionId}/export`, {
408
+ params: serializeParams(query),
409
+ responseType: 'text',
410
+ transformResponse: (d) => d,
411
+ headers: authHeader(apiKey),
412
+ });
413
+ return {
414
+ body: typeof res.data === 'string' ? res.data : String(res.data),
415
+ contentType: String(res.headers?.['content-type'] ?? 'application/octet-stream'),
416
+ };
417
+ };
418
+
419
+ export const asyncExportExtraction = async (
420
+ extractionId: string,
421
+ body: IAsyncExportExtractionBody,
422
+ scope: IExtractionContentScopeQuery = {},
423
+ apiKey?: string,
424
+ ): Promise<IAsyncExportResponse> => {
425
+ return (
426
+ await AbyssToolsCore.axios.post<IAsyncExportResponse>(
427
+ `extract/extractions/${extractionId}/export/async`,
428
+ body,
429
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
430
+ )
431
+ ).data;
432
+ };
433
+
434
+ export const getExportJob = async (
435
+ jobId: string,
436
+ apiKey?: string,
437
+ ): Promise<IGetExportJobResponse> => {
438
+ return (
439
+ await AbyssToolsCore.axios.get<IGetExportJobResponse>(`extract/exports/jobs/${jobId}`, {
440
+ headers: authHeader(apiKey),
441
+ })
442
+ ).data;
443
+ };
444
+
445
+ export const diffExtractions = async (
446
+ extractionId: string,
447
+ otherId: string,
448
+ scope: IExtractionContentScopeQuery = {},
449
+ apiKey?: string,
450
+ ): Promise<IDiffExtractionsResponse> => {
451
+ return (
452
+ await AbyssToolsCore.axios.get<IDiffExtractionsResponse>(
453
+ `extract/extractions/${extractionId}/diff/${otherId}`,
454
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
455
+ )
456
+ ).data;
457
+ };
458
+
459
+ /**
460
+ * Retroactive history toggle: opt a specific extraction in/out of the
461
+ * improvement-training dataset.
462
+ * PATCH /extract/extractions/:id/training
463
+ */
464
+ export const toggleExtractionTraining = async (
465
+ extractionId: string,
466
+ body: IToggleExtractionTrainingBody,
467
+ apiKey?: string,
468
+ ): Promise<IToggleExtractionTrainingResponse> => {
469
+ return (
470
+ await AbyssToolsCore.axios.patch<IToggleExtractionTrainingResponse>(
471
+ `extract/extractions/${extractionId}/training`,
472
+ body,
473
+ { headers: authHeader(apiKey) },
474
+ )
475
+ ).data;
476
+ };
477
+
478
+ // ─── TEMPLATES ───────────────────────────────
479
+
480
+ export const listTemplates = async (
481
+ query: { kind?: 'spatial' | 'dsl' } & IExtractionTemplateScopeQuery = {},
482
+ apiKey?: string,
483
+ ): Promise<IListTemplatesResponse> => {
484
+ return (
485
+ await AbyssToolsCore.axios.get<IListTemplatesResponse>(`extract/templates`, {
486
+ params: serializeParams(query),
487
+ headers: authHeader(apiKey),
488
+ })
489
+ ).data;
490
+ };
491
+
492
+ export const createTemplate = async (
493
+ body: ICreateTemplateBody,
494
+ scope: IExtractionTemplateScopeQuery = {},
495
+ apiKey?: string,
496
+ ): Promise<ICreateTemplateResponse> => {
497
+ return (
498
+ await AbyssToolsCore.axios.post<ICreateTemplateResponse>(`extract/templates`, body, {
499
+ params: serializeParams(scope),
500
+ headers: authHeader(apiKey),
501
+ })
502
+ ).data;
503
+ };
504
+
505
+ export const getTemplate = async (
506
+ templateId: string,
507
+ scope: IExtractionTemplateScopeQuery = {},
508
+ apiKey?: string,
509
+ ): Promise<IGetTemplateResponse> => {
510
+ return (
511
+ await AbyssToolsCore.axios.get<IGetTemplateResponse>(`extract/templates/${templateId}`, {
512
+ params: serializeParams(scope),
513
+ headers: authHeader(apiKey),
514
+ })
515
+ ).data;
516
+ };
517
+
518
+ export const updateTemplate = async (
519
+ templateId: string,
520
+ body: IUpdateTemplateBody,
521
+ scope: IExtractionTemplateScopeQuery = {},
522
+ apiKey?: string,
523
+ ): Promise<IUpdateTemplateResponse> => {
524
+ return (
525
+ await AbyssToolsCore.axios.put<IUpdateTemplateResponse>(
526
+ `extract/templates/${templateId}`,
527
+ body,
528
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
529
+ )
530
+ ).data;
531
+ };
532
+
533
+ export const patchTemplateMeta = async (
534
+ templateId: string,
535
+ body: IPatchTemplateMetaBody,
536
+ scope: IExtractionTemplateScopeQuery = {},
537
+ apiKey?: string,
538
+ ): Promise<void> => {
539
+ await AbyssToolsCore.axios.patch(`extract/templates/${templateId}/meta`, body, {
540
+ params: serializeParams(scope),
541
+ headers: authHeader(apiKey),
542
+ });
543
+ };
544
+
545
+ export const deleteTemplate = async (
546
+ templateId: string,
547
+ scope: IExtractionTemplateScopeQuery = {},
548
+ apiKey?: string,
549
+ ): Promise<void> => {
550
+ await AbyssToolsCore.axios.delete(`extract/templates/${templateId}`, {
551
+ params: serializeParams(scope),
552
+ headers: authHeader(apiKey),
553
+ });
554
+ };
555
+
556
+ export const listTemplateVersions = async (
557
+ templateId: string,
558
+ scope: IExtractionTemplateScopeQuery = {},
559
+ apiKey?: string,
560
+ ): Promise<IListTemplateVersionsResponse> => {
561
+ return (
562
+ await AbyssToolsCore.axios.get<IListTemplateVersionsResponse>(
563
+ `extract/templates/${templateId}/versions`,
564
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
565
+ )
566
+ ).data;
567
+ };
568
+
569
+ export const exportTemplateCollection = async (
570
+ ids: string[] | null,
571
+ scope: IExtractionTemplateScopeQuery = {},
572
+ apiKey?: string,
573
+ ): Promise<IExtractionTemplateCollection> => {
574
+ const res = await AbyssToolsCore.axios.get<IExtractionTemplateCollection>(`extract/templates/export`, {
575
+ params: {
576
+ ...(ids && ids.length ? { ids: ids.join(',') } : {}),
577
+ ...serializeParams(scope),
578
+ },
579
+ headers: authHeader(apiKey),
580
+ responseType: 'json',
581
+ });
582
+ return res.data;
583
+ };
584
+
585
+ export const importTemplateCollection = async (
586
+ doc: IExtractionTemplateCollection,
587
+ scope: IExtractionTemplateScopeQuery = {},
588
+ apiKey?: string,
589
+ ): Promise<IImportTemplateCollectionResponse> => {
590
+ return (
591
+ await AbyssToolsCore.axios.post<IImportTemplateCollectionResponse>(
592
+ `extract/templates/import`,
593
+ doc,
594
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
595
+ )
596
+ ).data;
597
+ };
598
+
599
+ // ─── JOBS ────────────────────────────────────
600
+
601
+ export const getJob = async (jobId: string, apiKey?: string): Promise<IGetJobResponse> => {
602
+ return (
603
+ await AbyssToolsCore.axios.get<IGetJobResponse>(`extract/jobs/${jobId}`, {
604
+ headers: authHeader(apiKey),
605
+ })
606
+ ).data;
607
+ };
608
+
609
+ export const retryJob = async (jobId: string, apiKey?: string): Promise<void> => {
610
+ await AbyssToolsCore.axios.post(`extract/jobs/${jobId}/retry`, undefined, {
611
+ headers: authHeader(apiKey),
612
+ });
613
+ };
614
+
615
+ export const cancelJob = async (jobId: string, apiKey?: string): Promise<void> => {
616
+ await AbyssToolsCore.axios.delete(`extract/jobs/${jobId}`, { headers: authHeader(apiKey) });
617
+ };
618
+
619
+ // ─── FEEDBACK ────────────────────────────────
620
+
621
+ /**
622
+ * Submit structured feedback on an extraction. The server ALWAYS mints a
623
+ * SupportTicket (category EXTRACTION) alongside the structured training row;
624
+ * the returned feedback DTO carries the resulting `supportTicketId`.
625
+ * POST /extract/feedback
626
+ */
627
+ export const submitFeedback = async (
628
+ body: ISubmitFeedbackExtractionBody,
629
+ scope: IExtractionContentScopeQuery = {},
630
+ apiKey?: string,
631
+ ): Promise<ICreateFeedbackResponse> => {
632
+ return (
633
+ await AbyssToolsCore.axios.post<ICreateFeedbackResponse>(`extract/feedback`, body, {
634
+ params: serializeParams(scope),
635
+ headers: authHeader(apiKey),
636
+ })
637
+ ).data;
638
+ };
639
+
640
+ export const listFeedback = async (
641
+ query: IListFeedbackQuery = {},
642
+ apiKey?: string,
643
+ ): Promise<IListFeedbackResponse> => {
644
+ return (
645
+ await AbyssToolsCore.axios.get<IListFeedbackResponse>(`extract/feedback`, {
646
+ params: serializeParams(query),
647
+ headers: authHeader(apiKey),
648
+ })
649
+ ).data;
650
+ };
651
+
652
+ export const getFeedback = async (
653
+ feedbackId: string,
654
+ apiKey?: string,
655
+ ): Promise<IGetFeedbackResponse> => {
656
+ return (
657
+ await AbyssToolsCore.axios.get<IGetFeedbackResponse>(`extract/feedback/${feedbackId}`, {
658
+ headers: authHeader(apiKey),
659
+ })
660
+ ).data;
661
+ };
662
+
663
+ export const patchFeedback = async (
664
+ feedbackId: string,
665
+ body: IPatchFeedbackBody,
666
+ apiKey?: string,
667
+ ): Promise<IGetFeedbackResponse> => {
668
+ return (
669
+ await AbyssToolsCore.axios.patch<IGetFeedbackResponse>(`extract/feedback/${feedbackId}`, body, {
670
+ headers: authHeader(apiKey),
671
+ })
672
+ ).data;
673
+ };
674
+
675
+ // ─── HEALTH / STATS / USAGE ─────────────────
676
+
677
+ export const health = async (apiKey?: string): Promise<IHealthResponse> => {
678
+ return (
679
+ await AbyssToolsCore.axios.get<IHealthResponse>(`extract/health`, {
680
+ headers: authHeader(apiKey),
681
+ })
682
+ ).data;
683
+ };
684
+
685
+ export const stats = async (apiKey?: string): Promise<IStatsResponse> => {
686
+ return (
687
+ await AbyssToolsCore.axios.get<IStatsResponse>(`extract/stats`, {
688
+ headers: authHeader(apiKey),
689
+ })
690
+ ).data;
691
+ };
692
+
693
+ export const listUsage = async (
694
+ query: IListUsageQuery = {},
695
+ apiKey?: string,
696
+ ): Promise<{ data: unknown[]; total?: number }> => {
697
+ return (
698
+ await AbyssToolsCore.axios.get<{ data: unknown[]; total?: number }>(`extract/usage`, {
699
+ params: serializeParams(query),
700
+ headers: authHeader(apiKey),
701
+ })
702
+ ).data;
703
+ };
704
+
705
+ export const summaryUsage = async (
706
+ query: ISummaryUsageQuery = {},
707
+ apiKey?: string,
708
+ ): Promise<ISummaryUsageResponse> => {
709
+ return (
710
+ await AbyssToolsCore.axios.get<ISummaryUsageResponse>(`extract/usage/summary`, {
711
+ params: serializeParams(query),
712
+ headers: authHeader(apiKey),
713
+ })
714
+ ).data;
715
+ };
716
+
717
+ // ─── SHARED FILES (content_share-backed) ────
718
+ //
719
+ // Types live in `../types/interface/api/requests/extraction.request.ts` so they
720
+ // stay alongside every other extraction SDK contract.
721
+
722
+ export const listSharedFiles = async (
723
+ query: IListSharedFilesQuery = {},
724
+ apiKey?: string,
725
+ ): Promise<IListFilesResponse> =>
726
+ (
727
+ await AbyssToolsCore.axios.get<IListFilesResponse>(`extract/files/shared`, {
728
+ params: serializeParams(query),
729
+ headers: authHeader(apiKey),
730
+ })
731
+ ).data;
732
+
733
+ // ─── WEBHOOK DELIVERIES ─────────────────────
734
+
735
+ export const listWebhookDeliveries = async (
736
+ query: IListWebhookDeliveriesQuery = {},
737
+ apiKey?: string,
738
+ ): Promise<IListWebhookDeliveriesResponse> => {
739
+ return (
740
+ await AbyssToolsCore.axios.get<IListWebhookDeliveriesResponse>(`extract/webhooks/deliveries`, {
741
+ params: serializeParams(query),
742
+ headers: authHeader(apiKey),
743
+ })
744
+ ).data;
745
+ };
746
+
747
+ export const getWebhookDelivery = async (
748
+ deliveryId: string,
749
+ apiKey?: string,
750
+ ): Promise<IGetWebhookDeliveryResponse> => {
751
+ return (
752
+ await AbyssToolsCore.axios.get<IGetWebhookDeliveryResponse>(
753
+ `extract/webhooks/deliveries/${deliveryId}`,
754
+ { headers: authHeader(apiKey) },
755
+ )
756
+ ).data;
757
+ };
758
+
759
+ export const replayWebhookDelivery = async (
760
+ deliveryId: string,
761
+ body: IReplayWebhookDeliveryBody = {},
762
+ apiKey?: string,
763
+ ): Promise<IGetWebhookDeliveryResponse> => {
764
+ return (
765
+ await AbyssToolsCore.axios.post<IGetWebhookDeliveryResponse>(
766
+ `extract/webhooks/deliveries/${deliveryId}/replay`,
767
+ body,
768
+ { headers: authHeader(apiKey) },
769
+ )
770
+ ).data;
771
+ };
772
+
773
+ // ─── WEBHOOK SUBSCRIPTIONS (CRUD) ───────────
774
+ //
775
+ // Request / response types are defined alongside every other extraction SDK
776
+ // contract — see ../types/interface/api/{requests,responses}/extraction.*.ts.
777
+
778
+ export const paginateExtractionWebhook = async (
779
+ query: IPaginateExtractionWebhookQuery = {},
780
+ apiKey?: string,
781
+ ): Promise<IPaginateExtractionWebhookResponse> =>
782
+ (
783
+ await AbyssToolsCore.axios.get<IPaginateExtractionWebhookResponse>(`extract/webhook`, {
784
+ params: serializeParams(query),
785
+ headers: authHeader(apiKey),
786
+ })
787
+ ).data;
788
+
789
+ export const getExtractionWebhook = async (
790
+ webhookId: string,
791
+ scope: IExtractionWebhookScopeQuery = {},
792
+ apiKey?: string,
793
+ ): Promise<IGetExtractionWebhookResponse> =>
794
+ (
795
+ await AbyssToolsCore.axios.get<IGetExtractionWebhookResponse>(
796
+ `extract/webhook/${webhookId}`,
797
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
798
+ )
799
+ ).data;
800
+
801
+ export const createExtractionWebhook = async (
802
+ body: ICreateExtractionWebhookBody,
803
+ scope: IExtractionWebhookScopeQuery = {},
804
+ apiKey?: string,
805
+ ): Promise<ICreateExtractionWebhookResponse> =>
806
+ (
807
+ await AbyssToolsCore.axios.post<ICreateExtractionWebhookResponse>(
808
+ `extract/webhook`,
809
+ body,
810
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
811
+ )
812
+ ).data;
813
+
814
+ export const updateExtractionWebhook = async (
815
+ webhookId: string,
816
+ body: IUpdateExtractionWebhookBody,
817
+ scope: IExtractionWebhookScopeQuery = {},
818
+ apiKey?: string,
819
+ ): Promise<IUpdateExtractionWebhookResponse> =>
820
+ (
821
+ await AbyssToolsCore.axios.put<IUpdateExtractionWebhookResponse>(
822
+ `extract/webhook/${webhookId}`,
823
+ body,
824
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
825
+ )
826
+ ).data;
827
+
828
+ export const deleteExtractionWebhook = async (
829
+ webhookId: string,
830
+ scope: IExtractionWebhookScopeQuery = {},
831
+ apiKey?: string,
832
+ ): Promise<IDeleteExtractionWebhookResponse> =>
833
+ (
834
+ await AbyssToolsCore.axios.delete<IDeleteExtractionWebhookResponse>(
835
+ `extract/webhook/${webhookId}`,
836
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
837
+ )
838
+ ).data;
839
+
840
+ export const resetSecretExtractionWebhook = async (
841
+ webhookId: string,
842
+ scope: IExtractionWebhookScopeQuery = {},
843
+ apiKey?: string,
844
+ ): Promise<IResetSecretExtractionWebhookResponse> =>
845
+ (
846
+ await AbyssToolsCore.axios.post<IResetSecretExtractionWebhookResponse>(
847
+ `extract/webhook/${webhookId}/reset-secret`,
848
+ undefined,
849
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
850
+ )
851
+ ).data;
852
+
853
+ // ─── SHARE ───────────────────────────────────
854
+
855
+ export const mintShareExtraction = async (
856
+ extractionId: string,
857
+ body: IMintShareExtractionBody = {},
858
+ scope: IExtractionContentScopeQuery = {},
859
+ apiKey?: string,
860
+ ): Promise<IMintShareExtractionResponse> => {
861
+ return (
862
+ await AbyssToolsCore.axios.post<IMintShareExtractionResponse>(
863
+ `extract/share/owner/extractions/${extractionId}`,
864
+ body,
865
+ { params: serializeParams(scope), headers: authHeader(apiKey) },
866
+ )
867
+ ).data;
868
+ };
869
+
870
+ export const revokeShareExtraction = async (
871
+ extractionId: string,
872
+ scope: IExtractionContentScopeQuery = {},
873
+ apiKey?: string,
874
+ ): Promise<void> => {
875
+ await AbyssToolsCore.axios.delete(`extract/share/owner/extractions/${extractionId}`, {
876
+ params: serializeParams(scope),
877
+ headers: authHeader(apiKey),
878
+ });
879
+ };
880
+
881
+ export const getSharedExtractionPublic = async (
882
+ token: string,
883
+ ): Promise<IGetSharedExtractionResponse> => {
884
+ return (
885
+ await AbyssToolsCore.axios.get<IGetSharedExtractionResponse>(
886
+ `extract/share/extractions/${token}`,
887
+ )
888
+ ).data;
889
+ };
890
+
891
+ // ─── CHANGELOG ──────────────────────────────
892
+
893
+ export const changelog = async (apiKey?: string): Promise<IChangelogResponse> => {
894
+ return (
895
+ await AbyssToolsCore.axios.get<IChangelogResponse>(`extract/changelog`, {
896
+ headers: authHeader(apiKey),
897
+ })
898
+ ).data;
899
+ };