@abyss-project/tools 1.0.5 → 1.1.1

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 (195) hide show
  1. package/dist/api/beam.api.d.ts +48 -0
  2. package/dist/api/beam.api.js +104 -0
  3. package/dist/api/beam.api.js.map +1 -0
  4. package/dist/api/extraction-plan-preset.api.d.ts +9 -0
  5. package/dist/api/extraction-plan-preset.api.js +23 -0
  6. package/dist/api/extraction-plan-preset.api.js.map +1 -0
  7. package/dist/api/extraction-plan-preset.api.test.d.ts +1 -0
  8. package/dist/api/extraction-plan-preset.api.test.js +41 -0
  9. package/dist/api/extraction-plan-preset.api.test.js.map +1 -0
  10. package/dist/api/extraction-settings.api.d.ts +4 -0
  11. package/dist/api/extraction-settings.api.js +22 -0
  12. package/dist/api/extraction-settings.api.js.map +1 -0
  13. package/dist/api/extraction.api.d.ts +74 -0
  14. package/dist/api/extraction.api.js +416 -0
  15. package/dist/api/extraction.api.js.map +1 -0
  16. package/dist/api/index.d.ts +4 -1
  17. package/dist/api/index.js +4 -1
  18. package/dist/api/index.js.map +1 -1
  19. package/dist/constants/beam.constants.d.ts +1 -0
  20. package/dist/constants/beam.constants.js +5 -0
  21. package/dist/constants/beam.constants.js.map +1 -0
  22. package/dist/constants/index.d.ts +1 -0
  23. package/dist/constants/index.js +1 -0
  24. package/dist/constants/index.js.map +1 -1
  25. package/dist/index.d.ts +107 -58
  26. package/dist/index.js +105 -58
  27. package/dist/index.js.map +1 -1
  28. package/dist/types/enum/beam.enum.d.ts +12 -0
  29. package/dist/types/enum/beam.enum.js +18 -0
  30. package/dist/types/enum/beam.enum.js.map +1 -0
  31. package/dist/types/enum/combine-strategy.enum.d.ts +5 -0
  32. package/dist/types/enum/combine-strategy.enum.js +10 -0
  33. package/dist/types/enum/combine-strategy.enum.js.map +1 -0
  34. package/dist/types/enum/content-share.enum.d.ts +3 -1
  35. package/dist/types/enum/content-share.enum.js +2 -0
  36. package/dist/types/enum/content-share.enum.js.map +1 -1
  37. package/dist/types/enum/document-type.enum.d.ts +9 -0
  38. package/dist/types/enum/document-type.enum.js +14 -0
  39. package/dist/types/enum/document-type.enum.js.map +1 -0
  40. package/dist/types/enum/extraction-feedback-issue-type.enum.d.ts +8 -0
  41. package/dist/types/enum/extraction-feedback-issue-type.enum.js +13 -0
  42. package/dist/types/enum/extraction-feedback-issue-type.enum.js.map +1 -0
  43. package/dist/types/enum/extraction-warning.enum.d.ts +7 -0
  44. package/dist/types/enum/extraction-warning.enum.js +12 -0
  45. package/dist/types/enum/extraction-warning.enum.js.map +1 -0
  46. package/dist/types/enum/index.d.ts +7 -0
  47. package/dist/types/enum/index.js +7 -0
  48. package/dist/types/enum/index.js.map +1 -1
  49. package/dist/types/enum/interpreter-kind.enum.d.ts +5 -0
  50. package/dist/types/enum/interpreter-kind.enum.js +10 -0
  51. package/dist/types/enum/interpreter-kind.enum.js.map +1 -0
  52. package/dist/types/enum/provider-kind.enum.d.ts +10 -0
  53. package/dist/types/enum/provider-kind.enum.js +16 -0
  54. package/dist/types/enum/provider-kind.enum.js.map +1 -0
  55. package/dist/types/interface/api/requests/beam.request.d.ts +122 -0
  56. package/dist/types/interface/api/{responses/pdf.response.js → requests/beam.request.js} +1 -1
  57. package/dist/types/interface/api/requests/beam.request.js.map +1 -0
  58. package/dist/types/interface/api/requests/{rcb.request.d.ts → extraction.request.d.ts} +81 -52
  59. package/dist/types/interface/api/requests/{pdf.public.request.js → extraction.request.js} +1 -1
  60. package/dist/types/interface/api/requests/extraction.request.js.map +1 -0
  61. package/dist/types/interface/api/requests/index.d.ts +2 -1
  62. package/dist/types/interface/api/requests/index.js +2 -1
  63. package/dist/types/interface/api/requests/index.js.map +1 -1
  64. package/dist/types/interface/api/responses/beam.response.d.ts +92 -0
  65. package/dist/types/interface/api/responses/{rcb.response.js → beam.response.js} +1 -1
  66. package/dist/types/interface/api/responses/beam.response.js.map +1 -0
  67. package/dist/types/interface/api/responses/extraction.response.d.ts +403 -0
  68. package/dist/types/interface/api/{requests/user-tag.request.js → responses/extraction.response.js} +1 -1
  69. package/dist/types/interface/api/responses/extraction.response.js.map +1 -0
  70. package/dist/types/interface/api/responses/index.d.ts +2 -1
  71. package/dist/types/interface/api/responses/index.js +2 -1
  72. package/dist/types/interface/api/responses/index.js.map +1 -1
  73. package/dist/types/interface/models/beam.dto.d.ts +58 -0
  74. package/dist/types/interface/{api/requests/pdf.request.js → models/beam.dto.js} +1 -1
  75. package/dist/types/interface/models/beam.dto.js.map +1 -0
  76. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.d.ts +1 -0
  77. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.js +159 -0
  78. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.js.map +1 -0
  79. package/dist/types/interface/models/extraction-plan.dto.d.ts +163 -0
  80. package/dist/types/interface/models/extraction-plan.dto.js +11 -0
  81. package/dist/types/interface/models/extraction-plan.dto.js.map +1 -0
  82. package/dist/types/interface/models/extraction-plan.dto.test.d.ts +1 -0
  83. package/dist/types/interface/models/extraction-plan.dto.test.js +35 -0
  84. package/dist/types/interface/models/extraction-plan.dto.test.js.map +1 -0
  85. package/dist/types/interface/models/extraction-spatial-template.dto.d.ts +37 -0
  86. package/dist/types/interface/{api/requests/rcb.request.js → models/extraction-spatial-template.dto.js} +1 -1
  87. package/dist/types/interface/models/extraction-spatial-template.dto.js.map +1 -0
  88. package/dist/types/interface/models/extraction-spatial-template.dto.test.d.ts +1 -0
  89. package/dist/types/interface/models/extraction-spatial-template.dto.test.js +15 -0
  90. package/dist/types/interface/models/extraction-spatial-template.dto.test.js.map +1 -0
  91. package/dist/types/interface/models/{rcb.dto.d.ts → extraction.dto.d.ts} +64 -48
  92. package/dist/types/interface/models/extraction.dto.js +28 -0
  93. package/dist/types/interface/models/extraction.dto.js.map +1 -0
  94. package/dist/types/interface/models/index.d.ts +4 -1
  95. package/dist/types/interface/models/index.js +4 -1
  96. package/dist/types/interface/models/index.js.map +1 -1
  97. package/dist/types/interface/models/organization.dto.d.ts +2 -0
  98. package/dist/utils/{rcb-webhook.utils.d.ts → extraction-webhook.utils.d.ts} +2 -2
  99. package/dist/utils/{rcb-webhook.utils.js → extraction-webhook.utils.js} +4 -4
  100. package/dist/utils/extraction-webhook.utils.js.map +1 -0
  101. package/dist/utils/index.d.ts +1 -1
  102. package/dist/utils/index.js +1 -1
  103. package/dist/utils/index.js.map +1 -1
  104. package/package.json +1 -1
  105. package/src/api/beam.api.ts +300 -0
  106. package/src/api/extraction-plan-preset.api.test.ts +24 -0
  107. package/src/api/extraction-plan-preset.api.ts +51 -0
  108. package/src/api/extraction-settings.api.ts +59 -0
  109. package/src/api/extraction.api.ts +899 -0
  110. package/src/api/index.ts +56 -51
  111. package/src/api/tests/beam.api.spec.ts +42 -0
  112. package/src/constants/beam.constants.ts +4 -0
  113. package/src/constants/index.ts +6 -5
  114. package/src/index.ts +840 -747
  115. package/src/types/enum/beam.enum.ts +24 -0
  116. package/src/types/enum/combine-strategy.enum.ts +7 -0
  117. package/src/types/enum/content-share.enum.ts +38 -36
  118. package/src/types/enum/document-type.enum.ts +10 -0
  119. package/src/types/enum/extraction-feedback-issue-type.enum.ts +10 -0
  120. package/src/types/enum/extraction-warning.enum.ts +21 -0
  121. package/src/types/enum/index.ts +13 -6
  122. package/src/types/enum/interpreter-kind.enum.ts +7 -0
  123. package/src/types/enum/provider-kind.enum.ts +13 -0
  124. package/src/types/interface/api/requests/beam.request.ts +152 -0
  125. package/src/types/interface/api/requests/extraction.request.ts +366 -0
  126. package/src/types/interface/api/requests/index.ts +29 -28
  127. package/src/types/interface/api/responses/beam.response.ts +122 -0
  128. package/src/types/interface/api/responses/extraction.response.ts +454 -0
  129. package/src/types/interface/api/responses/index.ts +33 -32
  130. package/src/types/interface/models/beam.dto.ts +67 -0
  131. package/src/types/interface/models/extraction-fetched-provenance.dto.test.ts +193 -0
  132. package/src/types/interface/models/extraction-plan.dto.test.ts +47 -0
  133. package/src/types/interface/models/extraction-plan.dto.ts +241 -0
  134. package/src/types/interface/models/extraction-spatial-template.dto.test.ts +27 -0
  135. package/src/types/interface/models/extraction-spatial-template.dto.ts +48 -0
  136. package/src/types/interface/models/{rcb.dto.ts → extraction.dto.ts} +317 -267
  137. package/src/types/interface/models/index.ts +34 -31
  138. package/src/types/interface/models/organization.dto.ts +21 -12
  139. package/src/types/tests/beam-management-types.spec.ts +38 -0
  140. package/src/types/tests/beam-share-enums.spec.ts +11 -0
  141. package/src/types/tests/beam.dto.spec.ts +61 -0
  142. package/src/types/tests/beam.request-response.spec.ts +43 -0
  143. package/src/utils/{rcb-webhook.utils.ts → extraction-webhook.utils.ts} +30 -30
  144. package/src/utils/index.ts +6 -6
  145. package/tsconfig.json +36 -35
  146. package/dist/api/atlas-page-content.api.d.ts +0 -0
  147. package/dist/api/atlas-page-content.api.js +0 -2
  148. package/dist/api/atlas-page-content.api.js.map +0 -1
  149. package/dist/api/pdf.api.d.ts +0 -15
  150. package/dist/api/pdf.api.js +0 -61
  151. package/dist/api/pdf.api.js.map +0 -1
  152. package/dist/api/pdf.public.api.d.ts +0 -8
  153. package/dist/api/pdf.public.api.js +0 -33
  154. package/dist/api/pdf.public.api.js.map +0 -1
  155. package/dist/api/rcb.api.d.ts +0 -72
  156. package/dist/api/rcb.api.js +0 -400
  157. package/dist/api/rcb.api.js.map +0 -1
  158. package/dist/api/user-tag.api.d.ts +0 -9
  159. package/dist/api/user-tag.api.js +0 -37
  160. package/dist/api/user-tag.api.js.map +0 -1
  161. package/dist/constants/user-tag.constants.d.ts +0 -3
  162. package/dist/constants/user-tag.constants.js +0 -7
  163. package/dist/constants/user-tag.constants.js.map +0 -1
  164. package/dist/types/enum/pdf-session.enum.d.ts +0 -10
  165. package/dist/types/enum/pdf-session.enum.js +0 -16
  166. package/dist/types/enum/pdf-session.enum.js.map +0 -1
  167. package/dist/types/interface/api/requests/pdf.public.request.d.ts +0 -19
  168. package/dist/types/interface/api/requests/pdf.public.request.js.map +0 -1
  169. package/dist/types/interface/api/requests/pdf.request.d.ts +0 -50
  170. package/dist/types/interface/api/requests/pdf.request.js.map +0 -1
  171. package/dist/types/interface/api/requests/rcb.request.js.map +0 -1
  172. package/dist/types/interface/api/requests/user-tag.request.d.ts +0 -44
  173. package/dist/types/interface/api/requests/user-tag.request.js.map +0 -1
  174. package/dist/types/interface/api/responses/pdf.public.response.d.ts +0 -33
  175. package/dist/types/interface/api/responses/pdf.public.response.js +0 -3
  176. package/dist/types/interface/api/responses/pdf.public.response.js.map +0 -1
  177. package/dist/types/interface/api/responses/pdf.response.d.ts +0 -35
  178. package/dist/types/interface/api/responses/pdf.response.js.map +0 -1
  179. package/dist/types/interface/api/responses/rcb.response.d.ts +0 -376
  180. package/dist/types/interface/api/responses/rcb.response.js.map +0 -1
  181. package/dist/types/interface/api/responses/user-tag.response.d.ts +0 -32
  182. package/dist/types/interface/api/responses/user-tag.response.js +0 -3
  183. package/dist/types/interface/api/responses/user-tag.response.js.map +0 -1
  184. package/dist/types/interface/models/pdf-session.dto.d.ts +0 -28
  185. package/dist/types/interface/models/pdf-session.dto.js +0 -3
  186. package/dist/types/interface/models/pdf-session.dto.js.map +0 -1
  187. package/dist/types/interface/models/rcb.dto.js +0 -26
  188. package/dist/types/interface/models/rcb.dto.js.map +0 -1
  189. package/dist/types/interface/models/user-tag.dto.d.ts +0 -22
  190. package/dist/types/interface/models/user-tag.dto.js +0 -3
  191. package/dist/types/interface/models/user-tag.dto.js.map +0 -1
  192. package/dist/utils/rcb-webhook.utils.js.map +0 -1
  193. package/src/api/rcb.api.ts +0 -829
  194. package/src/types/interface/api/requests/rcb.request.ts +0 -267
  195. package/src/types/interface/api/responses/rcb.response.ts +0 -399
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/tools",
3
- "version": "1.0.5",
3
+ "version": "1.1.1",
4
4
  "description": "Core package to interact with Abyss-Project Tools",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,300 @@
1
+ import { AbyssToolsCore } from '..';
2
+ import type {
3
+ IGetBeamParams,
4
+ IGetBeamResponse,
5
+ IGetBeamBySlugParams,
6
+ IGetBeamPublicResponse,
7
+ IUnlockBeamPublicParams,
8
+ IUnlockBeamPublicBody,
9
+ IUnlockBeamPublicResponse,
10
+ IPaginateBeamQuery,
11
+ IPaginateBeamResponse,
12
+ IPaginateProjectBeamParams,
13
+ IPaginateOrganizationBeamParams,
14
+ ICreateBeamBody,
15
+ ICreateBeamResponse,
16
+ ICreateForOrganizationBeamParams,
17
+ IUpdateBeamParams,
18
+ IUpdateBeamBody,
19
+ IUpdateBeamResponse,
20
+ IDeleteBeamParams,
21
+ IDeleteBeamResponse,
22
+ ICreateBeamPublicBody,
23
+ IAddBeamFilesParams,
24
+ IAddBeamFilesBody,
25
+ IAddBeamFilesResponse,
26
+ IImportCloudBeamFilesParams,
27
+ IImportCloudBeamFilesBody,
28
+ IFinalizeBeamParams,
29
+ IFinalizeBeamBody,
30
+ IFinalizeBeamResponse,
31
+ IRenewBeamParams,
32
+ IRenewBeamResponse,
33
+ IReactivateBeamParams,
34
+ IReactivateBeamResponse,
35
+ ICreateBeamShareParams,
36
+ ICreateBeamShareBody,
37
+ ICreateBeamShareResponse,
38
+ IListBeamSharesParams,
39
+ IListBeamSharesResponse,
40
+ IRevokeBeamShareParams,
41
+ IRevokeBeamShareResponse,
42
+ IAddRecipientsBeamBody,
43
+ IAddRecipientsBeamResponse,
44
+ IListRecipientsBeamResponse,
45
+ } from '../types';
46
+ import { BEAM_MANAGE_TOKEN_HEADER } from '../constants/beam.constants';
47
+
48
+ // Anonymous management requests carry the plaintext manage token as a header the
49
+ // API (BeamMiddleware) compares to beam_transfers.manageTokenHash. Owner requests
50
+ // omit it and authorize via the session JWT instead.
51
+ const manageTokenHeader = (manageToken?: string): { headers?: Record<string, string> } =>
52
+ manageToken ? { headers: { [BEAM_MANAGE_TOKEN_HEADER]: manageToken } } : {};
53
+
54
+ export const beamApi = {
55
+ get: async (params: IGetBeamParams): Promise<IGetBeamResponse> => {
56
+ const response = await AbyssToolsCore.axios.get<IGetBeamResponse>(`/beam/${params.beamId}`);
57
+ return response.data;
58
+ },
59
+
60
+ getBySlug: async (params: IGetBeamBySlugParams): Promise<IGetBeamPublicResponse> => {
61
+ const response = await AbyssToolsCore.axios.get<IGetBeamPublicResponse>(`/b/${params.slug}`);
62
+ return response.data;
63
+ },
64
+
65
+ unlock: async (
66
+ params: IUnlockBeamPublicParams,
67
+ body: IUnlockBeamPublicBody,
68
+ ): Promise<IUnlockBeamPublicResponse> => {
69
+ const response = await AbyssToolsCore.axios.post<IUnlockBeamPublicResponse>(
70
+ `/b/${params.slug}/unlock`,
71
+ body,
72
+ );
73
+ return response.data;
74
+ },
75
+
76
+ paginate: async (query: IPaginateBeamQuery): Promise<IPaginateBeamResponse> => {
77
+ const response = await AbyssToolsCore.axios.get<IPaginateBeamResponse>('/beam/paginate', {
78
+ params: query,
79
+ });
80
+ return response.data;
81
+ },
82
+
83
+ paginateProject: async (
84
+ params: IPaginateProjectBeamParams,
85
+ query: IPaginateBeamQuery,
86
+ ): Promise<IPaginateBeamResponse> => {
87
+ const response = await AbyssToolsCore.axios.get<IPaginateBeamResponse>(
88
+ `/beam/project/${params.projectId}/paginate`,
89
+ { params: query },
90
+ );
91
+ return response.data;
92
+ },
93
+
94
+ paginateOrganization: async (
95
+ params: IPaginateOrganizationBeamParams,
96
+ query: IPaginateBeamQuery,
97
+ ): Promise<IPaginateBeamResponse> => {
98
+ const response = await AbyssToolsCore.axios.get<IPaginateBeamResponse>(
99
+ `/beam/organization/${params.organizationId}/paginate`,
100
+ { params: query },
101
+ );
102
+ return response.data;
103
+ },
104
+
105
+ create: async (body: ICreateBeamBody): Promise<ICreateBeamResponse> => {
106
+ const response = await AbyssToolsCore.axios.post<ICreateBeamResponse>('/beam', body);
107
+ return response.data;
108
+ },
109
+
110
+ createForOrganization: async (
111
+ params: ICreateForOrganizationBeamParams,
112
+ body: ICreateBeamBody,
113
+ ): Promise<ICreateBeamResponse> => {
114
+ const response = await AbyssToolsCore.axios.post<ICreateBeamResponse>(
115
+ `/beam/organization/${params.organizationId}`,
116
+ body,
117
+ );
118
+ return response.data;
119
+ },
120
+
121
+ update: async (
122
+ params: IUpdateBeamParams,
123
+ body: IUpdateBeamBody,
124
+ ): Promise<IUpdateBeamResponse> => {
125
+ const response = await AbyssToolsCore.axios.put<IUpdateBeamResponse>(
126
+ `/beam/${params.beamId}`,
127
+ body,
128
+ );
129
+ return response.data;
130
+ },
131
+
132
+ delete: async (params: IDeleteBeamParams): Promise<IDeleteBeamResponse> => {
133
+ const response = await AbyssToolsCore.axios.delete<IDeleteBeamResponse>(
134
+ `/beam/${params.beamId}`,
135
+ );
136
+ return response.data;
137
+ },
138
+
139
+ renew: async (params: IRenewBeamParams): Promise<IRenewBeamResponse> => {
140
+ return (
141
+ await AbyssToolsCore.axios.post<IRenewBeamResponse>(`/beam/${params.beamId}/renew`)
142
+ ).data;
143
+ },
144
+
145
+ reactivate: async (params: IReactivateBeamParams): Promise<IReactivateBeamResponse> => {
146
+ return (
147
+ await AbyssToolsCore.axios.post<IReactivateBeamResponse>(`/beam/${params.beamId}/reactivate`)
148
+ ).data;
149
+ },
150
+
151
+ share: {
152
+ create: async (
153
+ params: ICreateBeamShareParams,
154
+ body: ICreateBeamShareBody,
155
+ ): Promise<ICreateBeamShareResponse> => {
156
+ return (
157
+ await AbyssToolsCore.axios.post<ICreateBeamShareResponse>(
158
+ `/beam/${params.beamId}/share`,
159
+ body,
160
+ )
161
+ ).data;
162
+ },
163
+ list: async (params: IListBeamSharesParams): Promise<IListBeamSharesResponse> => {
164
+ return (
165
+ await AbyssToolsCore.axios.get<IListBeamSharesResponse>(`/beam/${params.beamId}/share`)
166
+ ).data;
167
+ },
168
+ revoke: async (params: IRevokeBeamShareParams): Promise<IRevokeBeamShareResponse> => {
169
+ return (
170
+ await AbyssToolsCore.axios.delete<IRevokeBeamShareResponse>(
171
+ `/beam/${params.beamId}/share/${params.shareId}`,
172
+ )
173
+ ).data;
174
+ },
175
+ },
176
+
177
+ recipients: {
178
+ add: async (
179
+ params: { beamId: string },
180
+ body: IAddRecipientsBeamBody,
181
+ ): Promise<IAddRecipientsBeamResponse> =>
182
+ (
183
+ await AbyssToolsCore.axios.post<IAddRecipientsBeamResponse>(
184
+ `beam/${params.beamId}/recipients`,
185
+ body,
186
+ )
187
+ ).data,
188
+ list: async (params: { beamId: string }): Promise<IListRecipientsBeamResponse> =>
189
+ (
190
+ await AbyssToolsCore.axios.get<IListRecipientsBeamResponse>(
191
+ `beam/${params.beamId}/recipients`,
192
+ )
193
+ ).data,
194
+ },
195
+
196
+ addFiles: async (
197
+ params: IAddBeamFilesParams,
198
+ body: IAddBeamFilesBody,
199
+ ): Promise<IAddBeamFilesResponse> => {
200
+ return (
201
+ await AbyssToolsCore.axios.post<IAddBeamFilesResponse>(`/beam/${params.beamId}/files`, body)
202
+ ).data;
203
+ },
204
+
205
+ importCloudFiles: async (
206
+ params: IImportCloudBeamFilesParams,
207
+ body: IImportCloudBeamFilesBody,
208
+ ): Promise<IAddBeamFilesResponse> => {
209
+ return (
210
+ await AbyssToolsCore.axios.post<IAddBeamFilesResponse>(
211
+ `/beam/${params.beamId}/files/import-cloud`,
212
+ body,
213
+ )
214
+ ).data;
215
+ },
216
+
217
+ finalize: async (
218
+ params: IFinalizeBeamParams,
219
+ body?: IFinalizeBeamBody,
220
+ ): Promise<IFinalizeBeamResponse> => {
221
+ return (
222
+ await AbyssToolsCore.axios.post<IFinalizeBeamResponse>(
223
+ `/beam/${params.beamId}/finalize`,
224
+ body ?? {},
225
+ )
226
+ ).data;
227
+ },
228
+
229
+ public: {
230
+ create: async (body: ICreateBeamPublicBody): Promise<ICreateBeamResponse> => {
231
+ return (await AbyssToolsCore.axios.post<ICreateBeamResponse>(`/beam/public`, body)).data;
232
+ },
233
+ addFiles: async (
234
+ params: IAddBeamFilesParams,
235
+ body: IAddBeamFilesBody,
236
+ ): Promise<IAddBeamFilesResponse> => {
237
+ return (
238
+ await AbyssToolsCore.axios.post<IAddBeamFilesResponse>(
239
+ `/beam/public/${params.beamId}/files`,
240
+ body,
241
+ )
242
+ ).data;
243
+ },
244
+ finalize: async (
245
+ params: IFinalizeBeamParams,
246
+ body?: IFinalizeBeamBody,
247
+ ): Promise<IFinalizeBeamResponse> => {
248
+ return (
249
+ await AbyssToolsCore.axios.post<IFinalizeBeamResponse>(
250
+ `/beam/public/${params.beamId}/finalize`,
251
+ body ?? {},
252
+ )
253
+ ).data;
254
+ },
255
+ renew: async (
256
+ params: IRenewBeamParams & { manageToken?: string },
257
+ ): Promise<IRenewBeamResponse> => {
258
+ return (
259
+ await AbyssToolsCore.axios.post<IRenewBeamResponse>(
260
+ `/beam/${params.beamId}/renew`,
261
+ undefined,
262
+ manageTokenHeader(params.manageToken),
263
+ )
264
+ ).data;
265
+ },
266
+ reactivate: async (
267
+ params: IReactivateBeamParams & { manageToken?: string },
268
+ ): Promise<IReactivateBeamResponse> => {
269
+ return (
270
+ await AbyssToolsCore.axios.post<IReactivateBeamResponse>(
271
+ `/beam/${params.beamId}/reactivate`,
272
+ undefined,
273
+ manageTokenHeader(params.manageToken),
274
+ )
275
+ ).data;
276
+ },
277
+ update: async (
278
+ params: IUpdateBeamParams & { manageToken?: string },
279
+ body: IUpdateBeamBody,
280
+ ): Promise<IUpdateBeamResponse> => {
281
+ return (
282
+ await AbyssToolsCore.axios.put<IUpdateBeamResponse>(
283
+ `/beam/${params.beamId}`,
284
+ body,
285
+ manageTokenHeader(params.manageToken),
286
+ )
287
+ ).data;
288
+ },
289
+ delete: async (
290
+ params: IDeleteBeamParams & { manageToken?: string },
291
+ ): Promise<IDeleteBeamResponse> => {
292
+ return (
293
+ await AbyssToolsCore.axios.delete<IDeleteBeamResponse>(
294
+ `/beam/${params.beamId}`,
295
+ manageTokenHeader(params.manageToken),
296
+ )
297
+ ).data;
298
+ },
299
+ },
300
+ };
@@ -0,0 +1,24 @@
1
+ // Type-level compile test for the extraction-plan-preset api surface.
2
+ // No jest runner in this SDK package; compile guard only.
3
+ // Run: npx tsc --noEmit (from packages/abyss_tools_core).
4
+
5
+ import * as api from './extraction-plan-preset.api';
6
+
7
+ // All seven functions must be exported.
8
+ const _listModes: typeof api.listModes = api.listModes;
9
+ const _listPresets: typeof api.listExtractionPlanPresets = api.listExtractionPlanPresets;
10
+ const _getPreset: typeof api.getExtractionPlanPreset = api.getExtractionPlanPreset;
11
+ const _createPreset: typeof api.createExtractionPlanPreset = api.createExtractionPlanPreset;
12
+ const _updatePreset: typeof api.updateExtractionPlanPreset = api.updateExtractionPlanPreset;
13
+ const _deletePreset: typeof api.deleteExtractionPlanPreset = api.deleteExtractionPlanPreset;
14
+ const _setDefault: typeof api.setDefaultExtractionPlanPreset = api.setDefaultExtractionPlanPreset;
15
+
16
+ void _listModes;
17
+ void _listPresets;
18
+ void _getPreset;
19
+ void _createPreset;
20
+ void _updatePreset;
21
+ void _deletePreset;
22
+ void _setDefault;
23
+
24
+ export {};
@@ -0,0 +1,51 @@
1
+ // ──────────────────────────────────────────────
2
+ // Extraction Plan Preset API (V2-P1).
3
+ //
4
+ // GET /extract/modes — list registered providers + interpreters.
5
+ // GET /extract/plans — list plan presets (system + scoped).
6
+ // GET /extract/plans/:id — get a single preset.
7
+ // POST /extract/plans — create a preset.
8
+ // PUT /extract/plans/:id — update a preset.
9
+ // DELETE /extract/plans/:id — delete a preset.
10
+ // POST /extract/plans/:id/default — set as scope default.
11
+ // ──────────────────────────────────────────────
12
+
13
+ import { AbyssToolsCore } from '..';
14
+ import type {
15
+ ICreatePlanPresetBody,
16
+ IUpdatePlanPresetBody,
17
+ IListPlanPresetQuery,
18
+ } from '../types';
19
+ import type {
20
+ IListModesResponse,
21
+ IListPlanPresetsResponse,
22
+ IGetPlanPresetResponse,
23
+ IDeletePlanPresetResponse,
24
+ } from '../types';
25
+
26
+ const DEFAULT_API_KEY_HEADER = 'x-api-key';
27
+
28
+ function authHeader(apiKey?: string): Record<string, string> {
29
+ return apiKey ? { [DEFAULT_API_KEY_HEADER]: apiKey } : {};
30
+ }
31
+
32
+ export const listModes = async (apiKey?: string): Promise<IListModesResponse> =>
33
+ (await AbyssToolsCore.axios.get<IListModesResponse>(`extract/modes`, { headers: authHeader(apiKey) })).data;
34
+
35
+ export const listExtractionPlanPresets = async (query: IListPlanPresetQuery = {}, apiKey?: string): Promise<IListPlanPresetsResponse> =>
36
+ (await AbyssToolsCore.axios.get<IListPlanPresetsResponse>(`extract/plans`, { params: query, headers: authHeader(apiKey) })).data;
37
+
38
+ export const getExtractionPlanPreset = async (id: string, apiKey?: string): Promise<IGetPlanPresetResponse> =>
39
+ (await AbyssToolsCore.axios.get<IGetPlanPresetResponse>(`extract/plans/${id}`, { headers: authHeader(apiKey) })).data;
40
+
41
+ export const createExtractionPlanPreset = async (body: ICreatePlanPresetBody, apiKey?: string): Promise<IGetPlanPresetResponse> =>
42
+ (await AbyssToolsCore.axios.post<IGetPlanPresetResponse>(`extract/plans`, body, { headers: authHeader(apiKey) })).data;
43
+
44
+ export const updateExtractionPlanPreset = async (id: string, body: IUpdatePlanPresetBody, apiKey?: string): Promise<IGetPlanPresetResponse> =>
45
+ (await AbyssToolsCore.axios.put<IGetPlanPresetResponse>(`extract/plans/${id}`, body, { headers: authHeader(apiKey) })).data;
46
+
47
+ export const deleteExtractionPlanPreset = async (id: string, apiKey?: string): Promise<IDeletePlanPresetResponse> =>
48
+ (await AbyssToolsCore.axios.delete<IDeletePlanPresetResponse>(`extract/plans/${id}`, { headers: authHeader(apiKey) })).data;
49
+
50
+ export const setDefaultExtractionPlanPreset = async (id: string, apiKey?: string): Promise<IGetPlanPresetResponse> =>
51
+ (await AbyssToolsCore.axios.post<IGetPlanPresetResponse>(`extract/plans/${id}/default`, {}, { headers: authHeader(apiKey) })).data;
@@ -0,0 +1,59 @@
1
+ // ──────────────────────────────────────────────
2
+ // Extraction Settings API (P4 / T7) — per-scope improvement-consent defaults.
3
+ //
4
+ // GET /extract/settings — fetch effective improvementDefault for the caller's scope.
5
+ // PUT /extract/settings — upsert improvementDefault for the caller's scope.
6
+ //
7
+ // Scope is resolved by the server from standard ?organization_id / ?project_id
8
+ // query params (same as every other extract route).
9
+ // ──────────────────────────────────────────────
10
+
11
+ import { AbyssToolsCore } from '..';
12
+ import type {
13
+ IGetExtractionSettingsQuery,
14
+ IUpsertExtractionSettingsBody,
15
+ } from '../types';
16
+ import type {
17
+ IGetExtractionSettingsResponse,
18
+ IUpsertExtractionSettingsResponse,
19
+ } from '../types';
20
+
21
+ const DEFAULT_API_KEY_HEADER = 'x-api-key';
22
+
23
+ function authHeader(apiKey?: string): Record<string, string> {
24
+ return apiKey ? { [DEFAULT_API_KEY_HEADER]: apiKey } : {};
25
+ }
26
+
27
+ /**
28
+ * Fetch the effective improvementDefault for the caller's scope.
29
+ * Returns `{ data: { improvement_default: boolean } }`.
30
+ * Pass `query.organization_id` or `query.project_id` to select org / project scope;
31
+ * omit both for personal (user) scope.
32
+ */
33
+ export const getExtractionSettings = async (
34
+ query: IGetExtractionSettingsQuery = {},
35
+ apiKey?: string,
36
+ ): Promise<IGetExtractionSettingsResponse> => {
37
+ return (
38
+ await AbyssToolsCore.axios.get<IGetExtractionSettingsResponse>(`extract/settings`, {
39
+ params: query,
40
+ headers: authHeader(apiKey),
41
+ })
42
+ ).data;
43
+ };
44
+
45
+ /**
46
+ * Upsert the improvementDefault for the caller's scope.
47
+ * Body: `{ improvement_default: boolean }`.
48
+ * Returns `{ data: { improvement_default: boolean } }` on success.
49
+ */
50
+ export const upsertExtractionSettings = async (
51
+ body: IUpsertExtractionSettingsBody,
52
+ apiKey?: string,
53
+ ): Promise<IUpsertExtractionSettingsResponse> => {
54
+ return (
55
+ await AbyssToolsCore.axios.put<IUpsertExtractionSettingsResponse>(`extract/settings`, body, {
56
+ headers: authHeader(apiKey),
57
+ })
58
+ ).data;
59
+ };