@retab/node 1.0.65 → 1.0.68

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.
@@ -3,11 +3,13 @@ import APIModels from "./models/client";
3
3
  import APIDocuments from "./documents/client";
4
4
  import APISchemas from "./schemas/client";
5
5
  import APIProjects from "./projects/client";
6
+ import APIExtractions from "./extractions/client";
6
7
  export default class APIV1 extends CompositionClient {
7
8
  constructor(client: AbstractClient);
8
9
  models: APIModels;
9
10
  documents: APIDocuments;
10
11
  schemas: APISchemas;
11
12
  projects: APIProjects;
13
+ extractions: APIExtractions;
12
14
  }
13
15
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,iBAAiB;gBACpC,MAAM,EAAE,cAAc;IAGlC,MAAM,YAAuB;IAC7B,SAAS,eAA0B;IACnC,OAAO,aAAwB;IAC/B,QAAQ,cAAyB;CACpC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,iBAAiB;gBACpC,MAAM,EAAE,cAAc;IAGlC,MAAM,YAAuB;IAC7B,SAAS,eAA0B;IACnC,OAAO,aAAwB;IAC/B,QAAQ,cAAyB;IACjC,WAAW,iBAA4B;CAC1C"}
@@ -3,6 +3,7 @@ import APIModels from "./models/client";
3
3
  import APIDocuments from "./documents/client";
4
4
  import APISchemas from "./schemas/client";
5
5
  import APIProjects from "./projects/client";
6
+ import APIExtractions from "./extractions/client";
6
7
  export default class APIV1 extends CompositionClient {
7
8
  constructor(client) {
8
9
  super(client);
@@ -10,5 +11,6 @@ export default class APIV1 extends CompositionClient {
10
11
  this.documents = new APIDocuments(this);
11
12
  this.schemas = new APISchemas(this);
12
13
  this.projects = new APIProjects(this);
14
+ this.extractions = new APIExtractions(this);
13
15
  }
14
16
  }
@@ -0,0 +1,73 @@
1
+ import { CompositionClient, RequestOptions } from "../../client.js";
2
+ import { PaginatedList } from "../../types.js";
3
+ import * as z from "zod";
4
+ type HumanReviewStatus = "success" | "review_required" | "reviewed";
5
+ declare const ZDownloadResponse: z.ZodObject<{
6
+ download_url: z.ZodString;
7
+ filename: z.ZodString;
8
+ expires_at: z.ZodString;
9
+ }, "strip", z.ZodTypeAny, {
10
+ filename: string;
11
+ expires_at: string;
12
+ download_url: string;
13
+ }, {
14
+ filename: string;
15
+ expires_at: string;
16
+ download_url: string;
17
+ }>;
18
+ type DownloadResponse = z.infer<typeof ZDownloadResponse>;
19
+ declare const ZExtraction: z.ZodRecord<z.ZodString, z.ZodAny>;
20
+ type Extraction = z.infer<typeof ZExtraction>;
21
+ export default class APIExtractions extends CompositionClient {
22
+ constructor(client: CompositionClient);
23
+ /**
24
+ * List extractions with pagination and filtering.
25
+ */
26
+ list({ before, after, limit, order, origin_dot_type, origin_dot_id, from_date, to_date, human_review_status, metadata, filename, }?: {
27
+ before?: string;
28
+ after?: string;
29
+ limit?: number;
30
+ order?: "asc" | "desc";
31
+ origin_dot_type?: string;
32
+ origin_dot_id?: string;
33
+ from_date?: Date;
34
+ to_date?: Date;
35
+ human_review_status?: HumanReviewStatus;
36
+ metadata?: Record<string, string>;
37
+ filename?: string;
38
+ }, options?: RequestOptions): Promise<PaginatedList>;
39
+ /**
40
+ * Download extractions in various formats. Returns download_url, filename, and expires_at.
41
+ */
42
+ download({ order, origin_dot_id, from_date, to_date, human_review_status, metadata, filename, format, }?: {
43
+ order?: "asc" | "desc";
44
+ origin_dot_id?: string;
45
+ from_date?: Date;
46
+ to_date?: Date;
47
+ human_review_status?: HumanReviewStatus;
48
+ metadata?: Record<string, string>;
49
+ filename?: string;
50
+ format?: "jsonl" | "csv" | "xlsx";
51
+ }, options?: RequestOptions): Promise<DownloadResponse>;
52
+ /**
53
+ * Update an extraction.
54
+ */
55
+ update(extraction_id: string, { predictions, predictions_draft, human_review_status, json_schema, inference_settings, metadata, }: {
56
+ predictions?: Record<string, any>;
57
+ predictions_draft?: Record<string, any>;
58
+ human_review_status?: HumanReviewStatus;
59
+ json_schema?: Record<string, any>;
60
+ inference_settings?: Record<string, any>;
61
+ metadata?: Record<string, string>;
62
+ }, options?: RequestOptions): Promise<Extraction>;
63
+ /**
64
+ * Get an extraction by ID.
65
+ */
66
+ get(extraction_id: string, options?: RequestOptions): Promise<Extraction>;
67
+ /**
68
+ * Delete an extraction by ID.
69
+ */
70
+ delete(extraction_id: string, options?: RequestOptions): Promise<void>;
71
+ }
72
+ export {};
73
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/extractions/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAkB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,KAAK,iBAAiB,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAIpE,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAIrB,CAAC;AACH,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG1D,QAAA,MAAM,WAAW,oCAAoB,CAAC;AACtC,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,iBAAiB;gBAC7C,MAAM,EAAE,iBAAiB;IAIrC;;OAEG;IACG,IAAI,CAAC,EACP,MAAM,EACN,KAAK,EACL,KAAU,EACV,KAAc,EACd,eAAe,EACf,aAAa,EACb,SAAS,EACT,OAAO,EACP,mBAAmB,EACnB,QAAQ,EACR,QAAQ,GACX,GAAE;QACC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,OAAO,CAAC,EAAE,IAAI,CAAC;QACf,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA8BzD;;OAEG;IACG,QAAQ,CAAC,EACX,KAAc,EACd,aAAa,EACb,SAAS,EACT,OAAO,EACP,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,MAAgB,GACnB,GAAE;QACC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,OAAO,CAAC,EAAE,IAAI,CAAC;QACf,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;KAChC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0B5D;;OAEG;IACG,MAAM,CACR,aAAa,EAAE,MAAM,EACrB,EACI,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,QAAQ,GACX,EAAE;QACC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;QACxC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,EACD,OAAO,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,UAAU,CAAC;IAkBtB;;OAEG;IACG,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAS/E;;OAEG;IACG,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ/E"}
@@ -0,0 +1,114 @@
1
+ import { CompositionClient } from "../../client.js";
2
+ import { ZPaginatedList } from "../../types.js";
3
+ import * as z from "zod";
4
+ // Response types for extractions API
5
+ const ZDownloadResponse = z.object({
6
+ download_url: z.string(),
7
+ filename: z.string(),
8
+ expires_at: z.string(),
9
+ });
10
+ // Generic extraction object (flexible since schema varies)
11
+ const ZExtraction = z.record(z.any());
12
+ export default class APIExtractions extends CompositionClient {
13
+ constructor(client) {
14
+ super(client);
15
+ }
16
+ /**
17
+ * List extractions with pagination and filtering.
18
+ */
19
+ async list({ before, after, limit = 10, order = "desc", origin_dot_type, origin_dot_id, from_date, to_date, human_review_status, metadata, filename, } = {}, options) {
20
+ const params = {
21
+ before,
22
+ after,
23
+ limit,
24
+ order,
25
+ origin_dot_type,
26
+ origin_dot_id,
27
+ from_date: from_date?.toISOString(),
28
+ to_date: to_date?.toISOString(),
29
+ human_review_status,
30
+ filename,
31
+ // Note: metadata must be JSON-serialized as the backend expects a JSON string
32
+ metadata: metadata ? JSON.stringify(metadata) : undefined,
33
+ };
34
+ // Remove undefined values
35
+ const cleanParams = Object.fromEntries(Object.entries(params).filter(([_, v]) => v !== undefined));
36
+ return this._fetchJson(ZPaginatedList, {
37
+ url: "/v1/extractions",
38
+ method: "GET",
39
+ params: { ...cleanParams, ...(options?.params || {}) },
40
+ headers: options?.headers,
41
+ });
42
+ }
43
+ /**
44
+ * Download extractions in various formats. Returns download_url, filename, and expires_at.
45
+ */
46
+ async download({ order = "desc", origin_dot_id, from_date, to_date, human_review_status, metadata, filename, format = "jsonl", } = {}, options) {
47
+ const params = {
48
+ order,
49
+ origin_dot_id,
50
+ from_date: from_date?.toISOString(),
51
+ to_date: to_date?.toISOString(),
52
+ human_review_status,
53
+ filename,
54
+ format,
55
+ // Note: metadata must be JSON-serialized as the backend expects a JSON string
56
+ metadata: metadata ? JSON.stringify(metadata) : undefined,
57
+ };
58
+ // Remove undefined values
59
+ const cleanParams = Object.fromEntries(Object.entries(params).filter(([_, v]) => v !== undefined));
60
+ return this._fetchJson(ZDownloadResponse, {
61
+ url: "/v1/extractions/download",
62
+ method: "GET",
63
+ params: { ...cleanParams, ...(options?.params || {}) },
64
+ headers: options?.headers,
65
+ });
66
+ }
67
+ /**
68
+ * Update an extraction.
69
+ */
70
+ async update(extraction_id, { predictions, predictions_draft, human_review_status, json_schema, inference_settings, metadata, }, options) {
71
+ const body = {};
72
+ if (predictions !== undefined)
73
+ body.predictions = predictions;
74
+ if (predictions_draft !== undefined)
75
+ body.predictions_draft = predictions_draft;
76
+ if (human_review_status !== undefined)
77
+ body.human_review_status = human_review_status;
78
+ if (json_schema !== undefined)
79
+ body.json_schema = json_schema;
80
+ if (inference_settings !== undefined)
81
+ body.inference_settings = inference_settings;
82
+ if (metadata !== undefined)
83
+ body.metadata = metadata;
84
+ return this._fetchJson(ZExtraction, {
85
+ url: `/v1/extractions/${extraction_id}`,
86
+ method: "PATCH",
87
+ body: { ...body, ...(options?.body || {}) },
88
+ params: options?.params,
89
+ headers: options?.headers,
90
+ });
91
+ }
92
+ /**
93
+ * Get an extraction by ID.
94
+ */
95
+ async get(extraction_id, options) {
96
+ return this._fetchJson(ZExtraction, {
97
+ url: `/v1/extractions/${extraction_id}`,
98
+ method: "GET",
99
+ params: options?.params,
100
+ headers: options?.headers,
101
+ });
102
+ }
103
+ /**
104
+ * Delete an extraction by ID.
105
+ */
106
+ async delete(extraction_id, options) {
107
+ return this._fetchJson({
108
+ url: `/v1/extractions/${extraction_id}`,
109
+ method: "DELETE",
110
+ params: options?.params,
111
+ headers: options?.headers,
112
+ });
113
+ }
114
+ }
@@ -7,17 +7,18 @@ export default class APIProjects extends CompositionClient {
7
7
  get(projectId: string, options?: RequestOptions): Promise<Project>;
8
8
  delete(projectId: string, options?: RequestOptions): Promise<void>;
9
9
  publish(projectId: string, body?: Record<string, unknown>, options?: RequestOptions): Promise<Project>;
10
- extract({ project_id, iteration_id, document, documents, model, image_resolution_dpi, n_consensus, temperature, seed, store }: {
10
+ extract({ project_id, iteration_id, document, model, image_resolution_dpi, n_consensus, temperature, seed, store, metadata, extraction_id }: {
11
11
  project_id: string;
12
12
  iteration_id?: string;
13
- document?: MIMEDataInput;
14
- documents?: MIMEDataInput[];
13
+ document: MIMEDataInput;
15
14
  model?: string;
16
15
  image_resolution_dpi?: number;
17
16
  n_consensus?: number;
18
17
  temperature?: number;
19
18
  seed?: number;
20
19
  store?: boolean;
20
+ metadata?: Record<string, string>;
21
+ extraction_id?: string;
21
22
  }, options?: RequestOptions): Promise<RetabParsedChatCompletion>;
22
23
  }
23
24
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/projects/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAa,OAAO,EAAmC,oBAAoB,EAAE,aAAa,EAAa,yBAAyB,EAA8B,MAAM,gBAAgB,CAAC;AAE5L,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,iBAAiB;gBAC1C,MAAM,EAAE,iBAAiB;IAI/B,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAU9E,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IASlD,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IASlE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtG,OAAO,CAAC,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,IAAI,EACJ,KAAK,EACR,EAAE;QACC,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACnB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA2BnE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/projects/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAa,OAAO,EAAmC,oBAAoB,EAAE,aAAa,EAAa,yBAAyB,EAA8B,MAAM,gBAAgB,CAAC;AAE5L,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,iBAAiB;gBAC1C,MAAM,EAAE,iBAAiB;IAI/B,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAU9E,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IASlD,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IASlE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtG,OAAO,CAAC,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,aAAa,EAChB,EAAE;QACC,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA8BnE"}
@@ -48,14 +48,13 @@ export default class APIProjects extends CompositionClient {
48
48
  headers: options?.headers,
49
49
  });
50
50
  }
51
- async extract({ project_id, iteration_id, document, documents, model, image_resolution_dpi, n_consensus, temperature, seed, store }, options) {
52
- if (!document && (!documents || documents.length === 0)) {
53
- throw new Error("Either 'document' or 'documents' must be provided.");
54
- }
51
+ async extract({ project_id, iteration_id, document, model, image_resolution_dpi, n_consensus, temperature, seed, store, metadata, extraction_id }, options) {
55
52
  const url = iteration_id ? `/v1/projects/extract/${project_id}/${iteration_id}` : `/v1/projects/extract/${project_id}`;
53
+ // Parse and convert document to blob for multipart form upload
54
+ const parsedDocument = await ZMIMEData.parseAsync(document);
56
55
  // Only include optional parameters if they are provided
57
56
  const bodyParams = {
58
- documents: (await ZMIMEData.array().parseAsync([...document ? [document] : [], ...(documents || [])])).map(mimeToBlob)
57
+ document: mimeToBlob(parsedDocument)
59
58
  };
60
59
  if (model !== undefined)
61
60
  bodyParams.model = model;
@@ -69,6 +68,11 @@ export default class APIProjects extends CompositionClient {
69
68
  bodyParams.seed = seed;
70
69
  if (store !== undefined)
71
70
  bodyParams.store = store;
71
+ // Note: metadata must be JSON-serialized since multipart forms only accept primitive types
72
+ if (metadata !== undefined)
73
+ bodyParams.metadata = JSON.stringify(metadata);
74
+ if (extraction_id !== undefined)
75
+ bodyParams.extraction_id = extraction_id;
72
76
  return this._fetchJson(ZRetabParsedChatCompletion, {
73
77
  url,
74
78
  method: "POST",