@retab/node 1.0.96 → 1.0.99
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.
- package/README.md +39 -42
- package/dist/api/client.d.ts +4 -2
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +4 -2
- package/dist/api/documents/client.d.ts +17 -11
- package/dist/api/documents/client.d.ts.map +1 -1
- package/dist/api/documents/client.js +85 -38
- package/dist/api/edit/agent/client.js +1 -1
- package/dist/api/edit/client.d.ts +1 -1
- package/dist/api/edit/client.js +1 -1
- package/dist/api/edit/templates/client.d.ts +1 -75
- package/dist/api/edit/templates/client.d.ts.map +1 -1
- package/dist/api/edit/templates/client.js +3 -130
- package/dist/api/evals/classify/client.d.ts +20 -0
- package/dist/api/evals/classify/client.d.ts.map +1 -0
- package/dist/api/evals/classify/client.js +25 -0
- package/dist/api/evals/client.d.ts +11 -0
- package/dist/api/evals/client.d.ts.map +1 -0
- package/dist/api/evals/client.js +12 -0
- package/dist/api/evals/extract/client.d.ts +287 -0
- package/dist/api/evals/extract/client.d.ts.map +1 -0
- package/dist/api/evals/extract/client.js +56 -0
- package/dist/api/evals/helpers.d.ts +30 -0
- package/dist/api/evals/helpers.d.ts.map +1 -0
- package/dist/api/evals/helpers.js +46 -0
- package/dist/api/evals/schemas.d.ts +6522 -0
- package/dist/api/evals/schemas.d.ts.map +1 -0
- package/dist/api/evals/schemas.js +219 -0
- package/dist/api/evals/split/client.d.ts +105 -0
- package/dist/api/evals/split/client.d.ts.map +1 -0
- package/dist/api/evals/split/client.js +28 -0
- package/dist/api/extractions/client.d.ts +3 -43
- package/dist/api/extractions/client.d.ts.map +1 -1
- package/dist/api/extractions/client.js +6 -67
- package/dist/api/files/client.d.ts +9 -1
- package/dist/api/files/client.d.ts.map +1 -1
- package/dist/api/files/client.js +11 -5
- package/dist/api/jobs/client.d.ts +12 -10
- package/dist/api/jobs/client.d.ts.map +1 -1
- package/dist/api/jobs/client.js +13 -17
- package/dist/api/models/client.d.ts +3 -10
- package/dist/api/models/client.d.ts.map +1 -1
- package/dist/api/models/client.js +9 -8
- package/dist/api/projects/client.d.ts +1640 -4
- package/dist/api/projects/client.d.ts.map +1 -1
- package/dist/api/projects/client.js +457 -28
- package/dist/api/schemas/client.d.ts +3 -0
- package/dist/api/schemas/client.d.ts.map +1 -1
- package/dist/api/schemas/client.js +1 -1
- package/dist/api/workflows/blocks/client.d.ts +67 -0
- package/dist/api/workflows/blocks/client.d.ts.map +1 -0
- package/dist/api/workflows/blocks/client.js +132 -0
- package/dist/api/workflows/client.d.ts +90 -2
- package/dist/api/workflows/client.d.ts.map +1 -1
- package/dist/api/workflows/client.js +153 -1
- package/dist/api/workflows/edges/client.d.ts +66 -0
- package/dist/api/workflows/edges/client.d.ts.map +1 -0
- package/dist/api/workflows/edges/client.js +120 -0
- package/dist/api/workflows/runs/client.d.ts +57 -113
- package/dist/api/workflows/runs/client.d.ts.map +1 -1
- package/dist/api/workflows/runs/client.js +118 -119
- package/dist/api/workflows/runs/steps/client.d.ts +35 -13
- package/dist/api/workflows/runs/steps/client.d.ts.map +1 -1
- package/dist/api/workflows/runs/steps/client.js +63 -15
- package/dist/client.d.ts +4 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +79 -5
- package/dist/generated_types.d.ts +7778 -2745
- package/dist/generated_types.d.ts.map +1 -1
- package/dist/generated_types.js +711 -70
- package/dist/mime.d.ts.map +1 -1
- package/dist/mime.js +11 -1
- package/dist/schema_types.d.ts +2 -2
- package/dist/schema_types.d.ts.map +1 -1
- package/dist/schema_types.js +2 -2
- package/dist/types.d.ts +655 -109
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +84 -14
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
2
|
import * as crypto from "crypto";
|
|
3
|
+
const PYTHON_PUBLIC_PREPARE_METHODS = {
|
|
4
|
+
APIModels: ["list"],
|
|
5
|
+
APISchemas: ["generate"],
|
|
6
|
+
APIExtractions: ["list", "download", "update", "get", "sources", "delete"],
|
|
7
|
+
APIFiles: ["upload", "list", "get", "get_download_link"],
|
|
8
|
+
APIProjects: ["create", "get", "list", "delete", "publish", "extract", "split"],
|
|
9
|
+
ProjectDatasets: ["create", "get", "list", "update", "delete", "duplicate", "add_document", "get_document", "list_documents", "update_document", "delete_document"],
|
|
10
|
+
ProjectIterations: ["create", "get", "list", "update_draft", "delete", "finalize", "get_schema", "process_documents", "get_document", "list_documents", "update_document", "delete_document", "get_metrics"],
|
|
11
|
+
APIWorkflows: ["get", "list", "create", "update", "delete", "publish", "duplicate", "get_entities"],
|
|
12
|
+
APIWorkflowBlocks: ["list", "get", "create", "create_batch", "update", "delete"],
|
|
13
|
+
APIWorkflowEdges: ["list", "get", "create", "create_batch", "delete", "delete_all"],
|
|
14
|
+
APIWorkflowRuns: ["create", "get", "list", "delete", "cancel", "restart", "resume"],
|
|
15
|
+
APIWorkflowRunSteps: ["get", "list", "get_many"],
|
|
16
|
+
APIEvalsExtract: ["process", "process_stream"],
|
|
17
|
+
APIEvalsSplit: ["process"],
|
|
18
|
+
APIEvalsClassify: ["process"],
|
|
19
|
+
};
|
|
3
20
|
async function* streamResponse(schema, response) {
|
|
4
21
|
let body = "";
|
|
5
22
|
let depth = 0;
|
|
@@ -57,7 +74,7 @@ export class AbstractClient {
|
|
|
57
74
|
if (!bodyType) {
|
|
58
75
|
return;
|
|
59
76
|
}
|
|
60
|
-
if (response.headers.get("Content-Type")
|
|
77
|
+
if (!response.headers.get("Content-Type")?.startsWith("application/json"))
|
|
61
78
|
throw new APIError(response.status, "Response is not JSON");
|
|
62
79
|
return bodyType.parseAsync(await response.json());
|
|
63
80
|
}
|
|
@@ -66,7 +83,7 @@ export class AbstractClient {
|
|
|
66
83
|
if (!response.ok) {
|
|
67
84
|
throw new APIError(response.status, await response.text());
|
|
68
85
|
}
|
|
69
|
-
if (response.headers.get("Content-Type")
|
|
86
|
+
if (!response.headers.get("Content-Type")?.startsWith("application/stream+json"))
|
|
70
87
|
throw new APIError(response.status, "Response is not stream JSON");
|
|
71
88
|
return streamResponse(schema, response);
|
|
72
89
|
}
|
|
@@ -75,10 +92,66 @@ export class CompositionClient extends AbstractClient {
|
|
|
75
92
|
constructor(client) {
|
|
76
93
|
super();
|
|
77
94
|
this._client = client;
|
|
95
|
+
this._installPrepareMethods();
|
|
78
96
|
}
|
|
79
97
|
_fetch(params) {
|
|
80
98
|
return this._client["_fetch"](params);
|
|
81
99
|
}
|
|
100
|
+
_installPrepareMethods() {
|
|
101
|
+
const allowedMethods = PYTHON_PUBLIC_PREPARE_METHODS[this.constructor.name] ?? [];
|
|
102
|
+
if (allowedMethods.length === 0) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
for (const methodName of allowedMethods) {
|
|
106
|
+
const method = this[methodName];
|
|
107
|
+
const prepareMethodName = `prepare_${methodName}`;
|
|
108
|
+
if (typeof method !== "function" || prepareMethodName in this) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
Object.defineProperty(this, prepareMethodName, {
|
|
112
|
+
configurable: true,
|
|
113
|
+
enumerable: false,
|
|
114
|
+
writable: false,
|
|
115
|
+
value: (...args) => this._capturePreparedRequest(methodName, args),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async _capturePreparedRequest(methodName, args) {
|
|
120
|
+
let capturedRequest;
|
|
121
|
+
const self = this;
|
|
122
|
+
const originalFetch = self._fetch;
|
|
123
|
+
const originalFetchJson = self._fetchJson;
|
|
124
|
+
const originalFetchStream = self._fetchStream;
|
|
125
|
+
self._fetch = async (params) => {
|
|
126
|
+
capturedRequest = params;
|
|
127
|
+
return new Response("{}", {
|
|
128
|
+
status: 200,
|
|
129
|
+
headers: {
|
|
130
|
+
"Content-Type": "application/json",
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
self._fetchJson = async (...fetchArgs) => {
|
|
135
|
+
capturedRequest = (fetchArgs.length === 2 ? fetchArgs[1] : fetchArgs[0]);
|
|
136
|
+
return {};
|
|
137
|
+
};
|
|
138
|
+
self._fetchStream = async (...fetchArgs) => {
|
|
139
|
+
capturedRequest = fetchArgs[1];
|
|
140
|
+
return (async function* emptyStream() { })();
|
|
141
|
+
};
|
|
142
|
+
try {
|
|
143
|
+
await self[methodName](...args);
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
self._fetch = originalFetch;
|
|
147
|
+
self._fetchJson = originalFetchJson;
|
|
148
|
+
self._fetchStream = originalFetchStream;
|
|
149
|
+
}
|
|
150
|
+
if (!capturedRequest) {
|
|
151
|
+
throw new Error(`Unable to capture prepared request for ${methodName}`);
|
|
152
|
+
}
|
|
153
|
+
return capturedRequest;
|
|
154
|
+
}
|
|
82
155
|
}
|
|
83
156
|
export class APIError extends Error {
|
|
84
157
|
constructor(status, info) {
|
|
@@ -116,7 +189,7 @@ export class FetcherClient extends AbstractClient {
|
|
|
116
189
|
if (params.params) {
|
|
117
190
|
query = "?" + new URLSearchParams(Object.fromEntries(Object.entries(params.params).filter(([_, v]) => v !== undefined))).toString();
|
|
118
191
|
}
|
|
119
|
-
let url = (this.options.baseUrl || "https://api.retab.com") + params.url + query;
|
|
192
|
+
let url = (this.options.baseUrl || "https://api.retab.com/v1") + params.url + query;
|
|
120
193
|
let headers = params.headers || {};
|
|
121
194
|
let init = {
|
|
122
195
|
method: params.method,
|
|
@@ -124,8 +197,9 @@ export class FetcherClient extends AbstractClient {
|
|
|
124
197
|
if (params.method !== "GET") {
|
|
125
198
|
if (params.bodyMime === "multipart/form-data") {
|
|
126
199
|
let formData = new FormData();
|
|
127
|
-
|
|
128
|
-
|
|
200
|
+
const multipartBody = (params.body || {});
|
|
201
|
+
for (const key of Object.keys(multipartBody)) {
|
|
202
|
+
let value = multipartBody[key];
|
|
129
203
|
if (Array.isArray(value)) {
|
|
130
204
|
for (const item of value) {
|
|
131
205
|
formData.append(key, item);
|