@abyss-project/tools 1.0.3 → 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 (207) hide show
  1. package/dist/api/abyss.admin.api.d.ts +0 -3
  2. package/dist/api/abyss.admin.api.js +1 -13
  3. package/dist/api/abyss.admin.api.js.map +1 -1
  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 +5 -1
  20. package/dist/api/index.js +5 -1
  21. package/dist/api/index.js.map +1 -1
  22. package/dist/api/monitor.api.d.ts +2 -0
  23. package/dist/api/monitor.api.js +9 -0
  24. package/dist/api/monitor.api.js.map +1 -0
  25. package/dist/constants/beam.constants.d.ts +1 -0
  26. package/dist/constants/beam.constants.js +5 -0
  27. package/dist/constants/beam.constants.js.map +1 -0
  28. package/dist/constants/index.d.ts +1 -0
  29. package/dist/constants/index.js +1 -0
  30. package/dist/constants/index.js.map +1 -1
  31. package/dist/index.d.ts +111 -61
  32. package/dist/index.js +109 -61
  33. package/dist/index.js.map +1 -1
  34. package/dist/types/enum/beam.enum.d.ts +12 -0
  35. package/dist/types/enum/beam.enum.js +18 -0
  36. package/dist/types/enum/beam.enum.js.map +1 -0
  37. package/dist/types/enum/combine-strategy.enum.d.ts +5 -0
  38. package/dist/types/enum/combine-strategy.enum.js +10 -0
  39. package/dist/types/enum/combine-strategy.enum.js.map +1 -0
  40. package/dist/types/enum/content-share.enum.d.ts +3 -1
  41. package/dist/types/enum/content-share.enum.js +2 -0
  42. package/dist/types/enum/content-share.enum.js.map +1 -1
  43. package/dist/types/enum/document-type.enum.d.ts +9 -0
  44. package/dist/types/enum/document-type.enum.js +14 -0
  45. package/dist/types/enum/document-type.enum.js.map +1 -0
  46. package/dist/types/enum/extraction-feedback-issue-type.enum.d.ts +8 -0
  47. package/dist/types/enum/extraction-feedback-issue-type.enum.js +13 -0
  48. package/dist/types/enum/extraction-feedback-issue-type.enum.js.map +1 -0
  49. package/dist/types/enum/extraction-warning.enum.d.ts +7 -0
  50. package/dist/types/enum/extraction-warning.enum.js +12 -0
  51. package/dist/types/enum/extraction-warning.enum.js.map +1 -0
  52. package/dist/types/enum/index.d.ts +7 -0
  53. package/dist/types/enum/index.js +7 -0
  54. package/dist/types/enum/index.js.map +1 -1
  55. package/dist/types/enum/interpreter-kind.enum.d.ts +5 -0
  56. package/dist/types/enum/interpreter-kind.enum.js +10 -0
  57. package/dist/types/enum/interpreter-kind.enum.js.map +1 -0
  58. package/dist/types/enum/provider-kind.enum.d.ts +10 -0
  59. package/dist/types/enum/provider-kind.enum.js +16 -0
  60. package/dist/types/enum/provider-kind.enum.js.map +1 -0
  61. package/dist/types/interface/api/requests/beam.request.d.ts +122 -0
  62. package/dist/types/interface/api/{responses/pdf.response.js → requests/beam.request.js} +1 -1
  63. package/dist/types/interface/api/requests/beam.request.js.map +1 -0
  64. package/dist/types/interface/api/requests/{rcb.request.d.ts → extraction.request.d.ts} +81 -52
  65. package/dist/types/interface/api/requests/{pdf.public.request.js → extraction.request.js} +1 -1
  66. package/dist/types/interface/api/requests/extraction.request.js.map +1 -0
  67. package/dist/types/interface/api/requests/index.d.ts +2 -1
  68. package/dist/types/interface/api/requests/index.js +2 -1
  69. package/dist/types/interface/api/requests/index.js.map +1 -1
  70. package/dist/types/interface/api/responses/beam.response.d.ts +92 -0
  71. package/dist/types/interface/api/responses/{rcb.response.js → beam.response.js} +1 -1
  72. package/dist/types/interface/api/responses/beam.response.js.map +1 -0
  73. package/dist/types/interface/api/responses/extraction.response.d.ts +403 -0
  74. package/dist/types/interface/api/{requests/rcb.request.js → responses/extraction.response.js} +1 -1
  75. package/dist/types/interface/api/responses/extraction.response.js.map +1 -0
  76. package/dist/types/interface/api/responses/index.d.ts +3 -1
  77. package/dist/types/interface/api/responses/index.js +3 -1
  78. package/dist/types/interface/api/responses/index.js.map +1 -1
  79. package/dist/types/interface/api/responses/monitor.response.d.ts +7 -0
  80. package/dist/types/interface/api/{requests/user-tag.request.js → responses/monitor.response.js} +1 -1
  81. package/dist/types/interface/api/responses/monitor.response.js.map +1 -0
  82. package/dist/types/interface/models/beam.dto.d.ts +58 -0
  83. package/dist/types/interface/{api/requests/pdf.request.js → models/beam.dto.js} +1 -1
  84. package/dist/types/interface/models/beam.dto.js.map +1 -0
  85. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.d.ts +1 -0
  86. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.js +159 -0
  87. package/dist/types/interface/models/extraction-fetched-provenance.dto.test.js.map +1 -0
  88. package/dist/types/interface/models/extraction-plan.dto.d.ts +163 -0
  89. package/dist/types/interface/models/extraction-plan.dto.js +11 -0
  90. package/dist/types/interface/models/extraction-plan.dto.js.map +1 -0
  91. package/dist/types/interface/models/extraction-plan.dto.test.d.ts +1 -0
  92. package/dist/types/interface/models/extraction-plan.dto.test.js +35 -0
  93. package/dist/types/interface/models/extraction-plan.dto.test.js.map +1 -0
  94. package/dist/types/interface/models/extraction-spatial-template.dto.d.ts +37 -0
  95. package/dist/types/interface/models/extraction-spatial-template.dto.js +3 -0
  96. package/dist/types/interface/models/extraction-spatial-template.dto.js.map +1 -0
  97. package/dist/types/interface/models/extraction-spatial-template.dto.test.d.ts +1 -0
  98. package/dist/types/interface/models/extraction-spatial-template.dto.test.js +15 -0
  99. package/dist/types/interface/models/extraction-spatial-template.dto.test.js.map +1 -0
  100. package/dist/types/interface/models/{rcb.dto.d.ts → extraction.dto.d.ts} +64 -48
  101. package/dist/types/interface/models/extraction.dto.js +28 -0
  102. package/dist/types/interface/models/extraction.dto.js.map +1 -0
  103. package/dist/types/interface/models/index.d.ts +4 -1
  104. package/dist/types/interface/models/index.js +4 -1
  105. package/dist/types/interface/models/index.js.map +1 -1
  106. package/dist/types/interface/models/organization.dto.d.ts +2 -0
  107. package/dist/utils/{rcb-webhook.utils.d.ts → extraction-webhook.utils.d.ts} +2 -2
  108. package/dist/utils/{rcb-webhook.utils.js → extraction-webhook.utils.js} +4 -4
  109. package/dist/utils/extraction-webhook.utils.js.map +1 -0
  110. package/dist/utils/index.d.ts +1 -1
  111. package/dist/utils/index.js +1 -1
  112. package/dist/utils/index.js.map +1 -1
  113. package/package.json +1 -1
  114. package/src/api/abyss.admin.api.ts +0 -18
  115. package/src/api/beam.api.ts +300 -0
  116. package/src/api/extraction-plan-preset.api.test.ts +24 -0
  117. package/src/api/extraction-plan-preset.api.ts +51 -0
  118. package/src/api/extraction-settings.api.ts +59 -0
  119. package/src/api/extraction.api.ts +899 -0
  120. package/src/api/index.ts +56 -48
  121. package/src/api/monitor.api.ts +6 -0
  122. package/src/api/tests/beam.api.spec.ts +42 -0
  123. package/src/constants/beam.constants.ts +4 -0
  124. package/src/constants/index.ts +6 -5
  125. package/src/index.ts +840 -746
  126. package/src/types/enum/beam.enum.ts +24 -0
  127. package/src/types/enum/combine-strategy.enum.ts +7 -0
  128. package/src/types/enum/content-share.enum.ts +38 -36
  129. package/src/types/enum/document-type.enum.ts +10 -0
  130. package/src/types/enum/extraction-feedback-issue-type.enum.ts +10 -0
  131. package/src/types/enum/extraction-warning.enum.ts +21 -0
  132. package/src/types/enum/index.ts +13 -6
  133. package/src/types/enum/interpreter-kind.enum.ts +7 -0
  134. package/src/types/enum/provider-kind.enum.ts +13 -0
  135. package/src/types/interface/api/requests/beam.request.ts +152 -0
  136. package/src/types/interface/api/requests/extraction.request.ts +366 -0
  137. package/src/types/interface/api/requests/index.ts +29 -28
  138. package/src/types/interface/api/responses/beam.response.ts +122 -0
  139. package/src/types/interface/api/responses/extraction.response.ts +454 -0
  140. package/src/types/interface/api/responses/index.ts +33 -31
  141. package/src/types/interface/api/responses/monitor.response.ts +8 -0
  142. package/src/types/interface/models/beam.dto.ts +67 -0
  143. package/src/types/interface/models/extraction-fetched-provenance.dto.test.ts +193 -0
  144. package/src/types/interface/models/extraction-plan.dto.test.ts +47 -0
  145. package/src/types/interface/models/extraction-plan.dto.ts +241 -0
  146. package/src/types/interface/models/extraction-spatial-template.dto.test.ts +27 -0
  147. package/src/types/interface/models/extraction-spatial-template.dto.ts +48 -0
  148. package/src/types/interface/models/{rcb.dto.ts → extraction.dto.ts} +317 -267
  149. package/src/types/interface/models/index.ts +34 -31
  150. package/src/types/interface/models/organization.dto.ts +21 -12
  151. package/src/types/tests/beam-management-types.spec.ts +38 -0
  152. package/src/types/tests/beam-share-enums.spec.ts +11 -0
  153. package/src/types/tests/beam.dto.spec.ts +61 -0
  154. package/src/types/tests/beam.request-response.spec.ts +43 -0
  155. package/src/utils/{rcb-webhook.utils.ts → extraction-webhook.utils.ts} +30 -30
  156. package/src/utils/index.ts +6 -6
  157. package/tsconfig.json +36 -35
  158. package/dist/api/atlas-page-content.api.d.ts +0 -0
  159. package/dist/api/atlas-page-content.api.js +0 -2
  160. package/dist/api/atlas-page-content.api.js.map +0 -1
  161. package/dist/api/pdf.api.d.ts +0 -15
  162. package/dist/api/pdf.api.js +0 -61
  163. package/dist/api/pdf.api.js.map +0 -1
  164. package/dist/api/pdf.public.api.d.ts +0 -8
  165. package/dist/api/pdf.public.api.js +0 -33
  166. package/dist/api/pdf.public.api.js.map +0 -1
  167. package/dist/api/rcb.api.d.ts +0 -72
  168. package/dist/api/rcb.api.js +0 -400
  169. package/dist/api/rcb.api.js.map +0 -1
  170. package/dist/api/user-tag.api.d.ts +0 -9
  171. package/dist/api/user-tag.api.js +0 -37
  172. package/dist/api/user-tag.api.js.map +0 -1
  173. package/dist/constants/user-tag.constants.d.ts +0 -3
  174. package/dist/constants/user-tag.constants.js +0 -7
  175. package/dist/constants/user-tag.constants.js.map +0 -1
  176. package/dist/types/enum/pdf-session.enum.d.ts +0 -10
  177. package/dist/types/enum/pdf-session.enum.js +0 -16
  178. package/dist/types/enum/pdf-session.enum.js.map +0 -1
  179. package/dist/types/interface/api/requests/pdf.public.request.d.ts +0 -19
  180. package/dist/types/interface/api/requests/pdf.public.request.js.map +0 -1
  181. package/dist/types/interface/api/requests/pdf.request.d.ts +0 -50
  182. package/dist/types/interface/api/requests/pdf.request.js.map +0 -1
  183. package/dist/types/interface/api/requests/rcb.request.js.map +0 -1
  184. package/dist/types/interface/api/requests/user-tag.request.d.ts +0 -44
  185. package/dist/types/interface/api/requests/user-tag.request.js.map +0 -1
  186. package/dist/types/interface/api/responses/pdf.public.response.d.ts +0 -33
  187. package/dist/types/interface/api/responses/pdf.public.response.js +0 -3
  188. package/dist/types/interface/api/responses/pdf.public.response.js.map +0 -1
  189. package/dist/types/interface/api/responses/pdf.response.d.ts +0 -35
  190. package/dist/types/interface/api/responses/pdf.response.js.map +0 -1
  191. package/dist/types/interface/api/responses/rcb.response.d.ts +0 -376
  192. package/dist/types/interface/api/responses/rcb.response.js.map +0 -1
  193. package/dist/types/interface/api/responses/user-tag.response.d.ts +0 -32
  194. package/dist/types/interface/api/responses/user-tag.response.js +0 -3
  195. package/dist/types/interface/api/responses/user-tag.response.js.map +0 -1
  196. package/dist/types/interface/models/pdf-session.dto.d.ts +0 -28
  197. package/dist/types/interface/models/pdf-session.dto.js +0 -3
  198. package/dist/types/interface/models/pdf-session.dto.js.map +0 -1
  199. package/dist/types/interface/models/rcb.dto.js +0 -26
  200. package/dist/types/interface/models/rcb.dto.js.map +0 -1
  201. package/dist/types/interface/models/user-tag.dto.d.ts +0 -22
  202. package/dist/types/interface/models/user-tag.dto.js +0 -3
  203. package/dist/types/interface/models/user-tag.dto.js.map +0 -1
  204. package/dist/utils/rcb-webhook.utils.js.map +0 -1
  205. package/src/api/rcb.api.ts +0 -829
  206. package/src/types/interface/api/requests/rcb.request.ts +0 -267
  207. package/src/types/interface/api/responses/rcb.response.ts +0 -399
@@ -0,0 +1,366 @@
1
+ // ──────────────────────────────────────────────
2
+ // Extraction API requests.
3
+ // ──────────────────────────────────────────────
4
+
5
+ import {
6
+ ExtractionMode,
7
+ ExtractionFeedbackIssueType,
8
+ ExtractionFeedbackStatus,
9
+ ProcessingMode,
10
+ IExtractionBankHint,
11
+ } from '../../models/extraction.dto';
12
+ import type { IExtractionPlan } from '../../models/extraction-plan.dto';
13
+
14
+ // ─── SCOPE ───────────────────────────────────
15
+ //
16
+ // Ownership-scope query params shared by the content/template routes. The
17
+ // accepted combinations differ by resource, so the three semantic aliases
18
+ // below share the same wire shape but document which endpoints accept which
19
+ // scope. `project_id` always requires `organization_id`.
20
+
21
+ /** Base wire shape for the ownership-scope query params. */
22
+ export interface IExtractionScopeQuery {
23
+ organization_id?: string;
24
+ project_id?: string;
25
+ }
26
+
27
+ /**
28
+ * Scope for FILES + EXTRACTIONS. Owner is USER or PROJECT only — a bare
29
+ * `organization_id` is rejected (org-wide visibility goes through
30
+ * content_share / the shared-with-me endpoint), so pass `project_id` too.
31
+ */
32
+ export type IExtractionContentScopeQuery = IExtractionScopeQuery;
33
+
34
+ /**
35
+ * Scope for TEMPLATES. Owner is USER, PROJECT or ORGANIZATION — a bare
36
+ * `organization_id` authors an org-wide template reusable across every
37
+ * project of the org.
38
+ */
39
+ export type IExtractionTemplateScopeQuery = IExtractionScopeQuery;
40
+
41
+ // ─── EXTRACT ─────────────────────────────────
42
+
43
+ export interface IExtractBody {
44
+ /** Inline PDF buffer — multipart upload only. SDK helpers wrap this. */
45
+ pdf?: Buffer | Uint8Array;
46
+ storage_file_id?: string;
47
+ mode: ExtractionMode;
48
+ hint?: IExtractionBankHint;
49
+ template_id?: string;
50
+ template?: Record<string, unknown>;
51
+ pdf_filename?: string;
52
+ user_external_id?: string;
53
+ user_metadata?: Record<string, unknown>;
54
+ archive?: boolean;
55
+ force?: boolean;
56
+ processing?: ProcessingMode;
57
+ /**
58
+ * Per-extraction override for the improvement-consent default.
59
+ * When omitted the scope's improvementDefault is used.
60
+ */
61
+ improvementConsent?: boolean;
62
+ /**
63
+ * Inline extraction plan override. When provided, takes precedence over
64
+ * plan_preset_id and the scope's default preset.
65
+ */
66
+ plan?: IExtractionPlan;
67
+ /**
68
+ * ID of a saved plan preset to use. Ignored when plan is also provided.
69
+ */
70
+ plan_preset_id?: string;
71
+ }
72
+
73
+ export interface IExtractBulkBody {
74
+ items: Array<{
75
+ storage_file_id?: string;
76
+ pdf_base64?: string;
77
+ mode: ExtractionMode;
78
+ hint?: IExtractionBankHint;
79
+ template_id?: string;
80
+ template?: Record<string, unknown>;
81
+ pdf_filename?: string;
82
+ user_external_id?: string;
83
+ user_metadata?: Record<string, unknown>;
84
+ archive?: boolean;
85
+ force?: boolean;
86
+ }>;
87
+ }
88
+
89
+ // ─── DETECT ──────────────────────────────────
90
+
91
+ export interface IDetectBulkBody {
92
+ items: Array<{ pdf_base64: string; pdf_filename?: string }>;
93
+ }
94
+
95
+ // ─── FILES ───────────────────────────────────
96
+
97
+ export interface IListFilesQuery extends IExtractionContentScopeQuery {
98
+ hash?: string;
99
+ external_id?: string;
100
+ application_file_id?: string;
101
+ bank?: string;
102
+ from?: string;
103
+ to?: string;
104
+ limit?: number;
105
+ offset?: number;
106
+ }
107
+
108
+ export interface IGetFileParams {
109
+ fileId: string;
110
+ }
111
+
112
+ export interface IPatchFileBody {
113
+ user_external_id?: string | null;
114
+ user_metadata?: Record<string, unknown> | null;
115
+ }
116
+
117
+ // ─── EXTRACTIONS ─────────────────────────────
118
+
119
+ export interface IGetExtractionParams {
120
+ extractionId: string;
121
+ }
122
+
123
+ export interface IPatchExtractionBody {
124
+ tags?: string[] | null;
125
+ note?: string | null;
126
+ }
127
+
128
+ export interface ISearchExtractionRecordsQuery {
129
+ q?: string;
130
+ amount_min?: number;
131
+ amount_max?: number;
132
+ sign?: 'debit' | 'credit';
133
+ date_from?: string;
134
+ date_to?: string;
135
+ sort?: 'date' | 'amount' | 'description';
136
+ sort_dir?: 'asc' | 'desc';
137
+ limit?: number;
138
+ offset?: number;
139
+ }
140
+
141
+ export interface IExportExtractionQuery {
142
+ format: 'csv' | 'json';
143
+ delimiter?: ',' | ';' | '\t';
144
+ }
145
+
146
+ export interface IAsyncExportExtractionBody {
147
+ format: 'csv' | 'json';
148
+ delimiter?: ',' | ';' | '\t';
149
+ }
150
+
151
+ // ─── TEMPLATES ───────────────────────────────
152
+
153
+ export interface ICreateTemplateBody {
154
+ name: string;
155
+ description?: string;
156
+ template_json: Record<string, unknown>;
157
+ comment?: string;
158
+ }
159
+
160
+ export interface IUpdateTemplateBody {
161
+ template_json: Record<string, unknown>;
162
+ comment?: string;
163
+ }
164
+
165
+ export interface IPatchTemplateMetaBody {
166
+ name?: string;
167
+ description?: string | null;
168
+ is_active?: boolean;
169
+ }
170
+
171
+ // ─── FEEDBACK ────────────────────────────────
172
+
173
+ /**
174
+ * Body for POST /extract/feedback.
175
+ *
176
+ * Wire fields are snake_case to match every other extract request body and the
177
+ * server controller (`extraction-extract.controller.ts#submitFeedback`).
178
+ * `field_key` localizes the issue to a single extracted field; `expected_value`
179
+ * carries the value the user expected — both feed the structured training signal.
180
+ * Every submission also mints a SupportTicket; the returned feedback DTO carries
181
+ * the resulting `supportTicketId` (see the feedback ↔ SupportTicket bridge ADR).
182
+ */
183
+ export interface ISubmitFeedbackExtractionBody {
184
+ extraction_id: string;
185
+ issue_type: ExtractionFeedbackIssueType;
186
+ /** Extracted field the issue is about (e.g. `iban`, `closingBalance`). */
187
+ field_key?: string;
188
+ /** Value the user expected for the reported field. */
189
+ expected_value?: string;
190
+ description?: string;
191
+ }
192
+
193
+ export interface IPatchFeedbackBody {
194
+ status: ExtractionFeedbackStatus;
195
+ }
196
+
197
+ export interface IListFeedbackQuery {
198
+ extraction_id?: string;
199
+ status?: ExtractionFeedbackStatus;
200
+ issue_type?: ExtractionFeedbackIssueType;
201
+ limit?: number;
202
+ offset?: number;
203
+ }
204
+
205
+ // ─── USAGE ───────────────────────────────────
206
+
207
+ export interface IListUsageQuery {
208
+ application_id?: string;
209
+ event_type?: string;
210
+ from?: string;
211
+ to?: string;
212
+ limit?: number;
213
+ offset?: number;
214
+ }
215
+
216
+ export interface ISummaryUsageQuery {
217
+ from?: string;
218
+ to?: string;
219
+ }
220
+
221
+ // ─── WEBHOOK DELIVERIES ─────────────────────
222
+
223
+ export interface IListWebhookDeliveriesQuery {
224
+ job_id?: string;
225
+ event?: string;
226
+ delivered?: boolean;
227
+ from?: string;
228
+ to?: string;
229
+ limit?: number;
230
+ offset?: number;
231
+ }
232
+
233
+ export interface IReplayWebhookDeliveryBody {
234
+ url?: string;
235
+ secret?: string;
236
+ }
237
+
238
+ // ─── SHARE ───────────────────────────────────
239
+
240
+ export interface IMintShareExtractionBody {
241
+ expires_in_days?: number;
242
+ }
243
+
244
+ // ─── ADMIN: CATALOGUE ────────────────────────
245
+
246
+ export interface IUpsertBankVersionAdminBody {
247
+ bank: string;
248
+ version: string;
249
+ valid_from?: string | null;
250
+ valid_to?: string | null;
251
+ detector_json: Record<string, unknown>;
252
+ parser_kind: string;
253
+ config_json: Record<string, unknown>;
254
+ is_active?: boolean;
255
+ }
256
+
257
+ export interface IToggleBankVersionActiveAdminBody {
258
+ is_active: boolean;
259
+ }
260
+
261
+ export interface IDetectorReplayAdminBody {
262
+ detected_bank?: string;
263
+ from?: string;
264
+ to?: string;
265
+ limit?: number;
266
+ }
267
+
268
+ export interface IListRequestLogAdminQuery {
269
+ since_ms?: number;
270
+ status_min?: number;
271
+ status_max?: number;
272
+ user_id?: string;
273
+ path_prefix?: string;
274
+ limit?: number;
275
+ }
276
+
277
+ // ─── WEBHOOK SUBSCRIPTIONS ──────────────────
278
+
279
+ import type { ExtractionWebhookEvent } from '../../models/extraction.dto';
280
+
281
+ export interface IExtractionWebhookScopeQuery {
282
+ organization_id?: string;
283
+ project_id?: string;
284
+ }
285
+
286
+ export interface IPaginateExtractionWebhookQuery extends IExtractionWebhookScopeQuery {
287
+ name?: string;
288
+ event?: ExtractionWebhookEvent;
289
+ isEnabled?: boolean;
290
+ page?: number;
291
+ limit?: number;
292
+ }
293
+
294
+ export interface ICreateExtractionWebhookBody {
295
+ webhookUrl: string;
296
+ name?: string;
297
+ description?: string;
298
+ isEnabled?: boolean;
299
+ scopes: ExtractionWebhookEvent[];
300
+ }
301
+
302
+ export interface IUpdateExtractionWebhookBody {
303
+ webhookUrl?: string;
304
+ name?: string;
305
+ description?: string;
306
+ isEnabled?: boolean;
307
+ scopes?: ExtractionWebhookEvent[];
308
+ }
309
+
310
+ // ─── SHARED FILES (content_share-backed) ────
311
+
312
+ export interface IListSharedFilesQuery extends IExtractionWebhookScopeQuery {
313
+ limit?: number;
314
+ offset?: number;
315
+ }
316
+
317
+ // ─── EXTRACTION SETTINGS (P4 / T7) ──────────
318
+ //
319
+ // GET /extract/settings — scope is resolved by the server from standard
320
+ // ?organization_id / ?project_id query params (same as other extract routes).
321
+ // PUT /extract/settings — body is { improvement_default: boolean }.
322
+
323
+ /** Optional scope query params for GET /extract/settings. */
324
+ export interface IGetExtractionSettingsQuery {
325
+ /** Organization scope — omit for personal (user) scope. */
326
+ organization_id?: string;
327
+ /** Project scope — takes precedence over organization_id when both are present. */
328
+ project_id?: string;
329
+ }
330
+
331
+ /** Body for PUT /extract/settings — upsert the improvement default for a scope. */
332
+ export interface IUpsertExtractionSettingsBody {
333
+ /** Factory default for per-extraction improvementConsent. */
334
+ improvement_default: boolean;
335
+ }
336
+
337
+ // ─── TRAINING TOGGLE (P4-T8) ─────────────────
338
+
339
+ /** Body for PATCH /extract/extractions/:id/training. */
340
+ export interface IToggleExtractionTrainingBody {
341
+ /** Set to true to include the extraction in the training dataset; false to exclude. */
342
+ usable: boolean;
343
+ }
344
+
345
+ // ─── EXTRACTION PLAN PRESETS (V2-P1) ─────────
346
+
347
+ /** Body for POST /extract/plans — create a new plan preset. */
348
+ export interface ICreatePlanPresetBody {
349
+ name: string;
350
+ plan: IExtractionPlan;
351
+ }
352
+
353
+ /** Body for PUT /extract/plans/:id — update a plan preset. */
354
+ export interface IUpdatePlanPresetBody {
355
+ name?: string;
356
+ plan?: IExtractionPlan;
357
+ }
358
+
359
+ /** Body for POST /extract/plans/:id/default — set as default (id is path param). */
360
+ export interface ISetDefaultPlanPresetBody {}
361
+
362
+ /** Query params for GET /extract/plans. */
363
+ export interface IListPlanPresetQuery {
364
+ organization_id?: string;
365
+ project_id?: string;
366
+ }
@@ -1,28 +1,29 @@
1
- export * from './abyss.admin.request';
2
- export * from './atlas.request';
3
- export * from './atlas.public.request';
4
- export * from './atlas-document.request';
5
- export * from './atlas-group.request';
6
- export * from './atlas-page.request';
7
- export * from './board.request';
8
- export * from './board-card.request';
9
- export * from './board-card-checklist.request';
10
- export * from './board-card-comment.request';
11
- export * from './board-card-document.request';
12
- export * from './board-column.request';
13
- export * from './board-label.request';
14
- export * from './draw.request';
15
- export * from './draw.public.request';
16
- export * from './memo.request';
17
- export * from './retrospective.request';
18
- export * from './retrospective.public.request';
19
- export * from './retrospective-card.request';
20
- export * from './retrospective-member.request';
21
- export * from './retrospective-section.request';
22
- export * from './short-link.request';
23
- export * from './short-link.public.request';
24
- export * from './short-link.admin.request';
25
- export * from './metrics.request';
26
- export * from './tag.request';
27
- export * from './transfer.request';
28
- export * from './rcb.request';
1
+ export * from './abyss.admin.request';
2
+ export * from './atlas.request';
3
+ export * from './atlas.public.request';
4
+ export * from './atlas-document.request';
5
+ export * from './atlas-group.request';
6
+ export * from './atlas-page.request';
7
+ export * from './board.request';
8
+ export * from './board-card.request';
9
+ export * from './board-card-checklist.request';
10
+ export * from './board-card-comment.request';
11
+ export * from './board-card-document.request';
12
+ export * from './board-column.request';
13
+ export * from './board-label.request';
14
+ export * from './draw.request';
15
+ export * from './draw.public.request';
16
+ export * from './memo.request';
17
+ export * from './retrospective.request';
18
+ export * from './retrospective.public.request';
19
+ export * from './retrospective-card.request';
20
+ export * from './retrospective-member.request';
21
+ export * from './retrospective-section.request';
22
+ export * from './short-link.request';
23
+ export * from './short-link.public.request';
24
+ export * from './short-link.admin.request';
25
+ export * from './beam.request';
26
+ export * from './metrics.request';
27
+ export * from './tag.request';
28
+ export * from './transfer.request';
29
+ export * from './extraction.request';
@@ -0,0 +1,122 @@
1
+ import { BasePaginate } from '../type-message/base-paginate';
2
+ import { IResponse } from '../type-message/response';
3
+ import { IBeamTransfer, IBeamFile, IBeamRecipient } from '../../models/beam.dto';
4
+ import { IContentShare } from '../../models/content-share.dto';
5
+ import { BeamVisibility, BeamServeDenyReasonCode } from '../../../enum/beam.enum';
6
+
7
+ export interface IGetBeamData {
8
+ beamTransfer: IBeamTransfer;
9
+ }
10
+ export type IGetBeamResponse = IResponse<IGetBeamData>;
11
+
12
+ export type IPaginateBeamResponse = IResponse<BasePaginate<IBeamTransfer>>;
13
+
14
+ export interface ICreateBeamData {
15
+ beamTransfer: IBeamTransfer;
16
+ }
17
+ export type ICreateBeamResponse = IResponse<ICreateBeamData>;
18
+
19
+ export interface IUpdateBeamData {
20
+ beamTransfer: IBeamTransfer;
21
+ }
22
+ export type IUpdateBeamResponse = IResponse<IUpdateBeamData>;
23
+
24
+ export interface IDeleteBeamData {}
25
+ export type IDeleteBeamResponse = IResponse<IDeleteBeamData>;
26
+
27
+ export type IAddBeamFilesResponse = IResponse<{ files: IBeamFile[] }>;
28
+
29
+ export interface IFinalizeBeamData {
30
+ slug: string;
31
+ viewUrl: string;
32
+ manageToken: string;
33
+ manageUrl: string;
34
+ expiresAt: string;
35
+ }
36
+
37
+ export type IFinalizeBeamResponse = IResponse<IFinalizeBeamData>;
38
+
39
+ // Public serving (B3) — safe, purpose-built projection of a transfer for the
40
+ // browser-facing view: no owner ids, no password/manage hashes; adds
41
+ // hasPassword/isLocked/hasThumbnail so the front can render the locked state.
42
+ export interface IBeamPublicFile {
43
+ id: string;
44
+ name: string;
45
+ sizeOctet: number;
46
+ mimeType: string | null;
47
+ isImage: boolean;
48
+ hasThumbnail: boolean;
49
+ width: number | null;
50
+ height: number | null;
51
+ }
52
+
53
+ export interface IBeamPublicView {
54
+ slug: string;
55
+ title: string | null;
56
+ message: string | null;
57
+ visibility: BeamVisibility;
58
+ hasPassword: boolean;
59
+ isLocked: boolean;
60
+ expiresAt: string | null;
61
+ fileCount: number;
62
+ totalSizeOctet: number;
63
+ downloadCount: number;
64
+ files: IBeamPublicFile[];
65
+ }
66
+
67
+ // `transfer` is null on the discovery-path denials the VIEW surfaces (404
68
+ // not-found / hidden, 410 expired, 403 max-downloads): the metadata projection
69
+ // is intentionally absent and `reason` carries the machine-readable denial code
70
+ // so the front renders the correct state rather than inferring it from the bare
71
+ // HTTP status (spec §17.1). On a 200 `transfer` is non-null (visible transfer,
72
+ // possibly password-locked) and `reason` is omitted.
73
+ export type IGetBeamPublicResponse = IResponse<{
74
+ transfer: IBeamPublicView | null;
75
+ reason?: BeamServeDenyReasonCode;
76
+ }>;
77
+
78
+ export interface IUnlockBeamPublicData {
79
+ unlockToken: string;
80
+ expiresIn: number;
81
+ }
82
+
83
+ export type IUnlockBeamPublicResponse = IResponse<IUnlockBeamPublicData>;
84
+
85
+ // Management lifecycle (B4): renew/reactivate return the refreshed transfer.
86
+ export interface IRenewBeamData {
87
+ beamTransfer: IBeamTransfer;
88
+ }
89
+ export type IRenewBeamResponse = IResponse<IRenewBeamData>;
90
+
91
+ export interface IReactivateBeamData {
92
+ beamTransfer: IBeamTransfer;
93
+ }
94
+ export type IReactivateBeamResponse = IResponse<IReactivateBeamData>;
95
+
96
+ // Sharing (B4): create returns the new grant, list returns every grant, revoke
97
+ // returns an empty envelope (the delete cascade is server-side).
98
+ export interface ICreateBeamShareData {
99
+ contentShare: IContentShare;
100
+ }
101
+ export type ICreateBeamShareResponse = IResponse<ICreateBeamShareData>;
102
+
103
+ export interface IListBeamSharesData {
104
+ contentShares: IContentShare[];
105
+ }
106
+ export type IListBeamSharesResponse = IResponse<IListBeamSharesData>;
107
+
108
+ export interface IRevokeBeamShareData {}
109
+ export type IRevokeBeamShareResponse = IResponse<IRevokeBeamShareData>;
110
+
111
+ // Recipients (B5): add returns how many were enqueued vs rate-limited by the
112
+ // anti-abuse caps; list returns every recipient row of the transfer.
113
+ export interface IAddRecipientsBeamData {
114
+ enqueued: number;
115
+ rateLimited: number;
116
+ }
117
+ export type IAddRecipientsBeamResponse = IResponse<IAddRecipientsBeamData>;
118
+
119
+ export interface IListRecipientsBeamData {
120
+ recipients: IBeamRecipient[];
121
+ }
122
+ export type IListRecipientsBeamResponse = IResponse<IListRecipientsBeamData>;