@retab/node 0.0.0-reserved → 0.0.42
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 +293 -2
- package/dist/api/client.d.ts +15 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +16 -0
- package/dist/api/consensus/client.d.ts +7 -0
- package/dist/api/consensus/client.d.ts.map +1 -0
- package/dist/api/consensus/client.js +14 -0
- package/dist/api/deployments/client.d.ts +20 -0
- package/dist/api/deployments/client.d.ts.map +1 -0
- package/dist/api/deployments/client.js +23 -0
- package/dist/api/documents/client.d.ts +10 -0
- package/dist/api/documents/client.d.ts.map +1 -0
- package/dist/api/documents/client.js +35 -0
- package/dist/api/models/client.d.ts +17 -0
- package/dist/api/models/client.d.ts.map +1 -0
- package/dist/api/models/client.js +15 -0
- package/dist/api/schemas/client.d.ts +12 -0
- package/dist/api/schemas/client.d.ts.map +1 -0
- package/dist/api/schemas/client.js +14 -0
- package/dist/client.d.ts +50 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +135 -0
- package/dist/errors.d.ts +34 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +53 -0
- package/dist/generated_types.d.ts +64373 -0
- package/dist/generated_types.d.ts.map +1 -0
- package/dist/generated_types.js +2267 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/mime.d.ts +5 -0
- package/dist/mime.d.ts.map +1 -0
- package/dist/mime.js +66 -0
- package/dist/resource.d.ts +12 -0
- package/dist/resource.d.ts.map +1 -0
- package/dist/resource.js +19 -0
- package/dist/resources/consensus/completions.d.ts +66 -0
- package/dist/resources/consensus/completions.d.ts.map +1 -0
- package/dist/resources/consensus/completions.js +84 -0
- package/dist/resources/consensus/index.d.ts +72 -0
- package/dist/resources/consensus/index.d.ts.map +1 -0
- package/dist/resources/consensus/index.js +76 -0
- package/dist/resources/consensus/responses.d.ts +69 -0
- package/dist/resources/consensus/responses.d.ts.map +1 -0
- package/dist/resources/consensus/responses.js +99 -0
- package/dist/resources/documents/extractions.d.ts +74 -0
- package/dist/resources/documents/extractions.d.ts.map +1 -0
- package/dist/resources/documents/extractions.js +196 -0
- package/dist/resources/documents/index.d.ts +21 -0
- package/dist/resources/documents/index.d.ts.map +1 -0
- package/dist/resources/documents/index.js +55 -0
- package/dist/resources/evaluations/documents.d.ts +40 -0
- package/dist/resources/evaluations/documents.d.ts.map +1 -0
- package/dist/resources/evaluations/documents.js +123 -0
- package/dist/resources/evaluations/index.d.ts +14 -0
- package/dist/resources/evaluations/index.d.ts.map +1 -0
- package/dist/resources/evaluations/index.js +17 -0
- package/dist/resources/evaluations/iterations.d.ts +50 -0
- package/dist/resources/evaluations/iterations.d.ts.map +1 -0
- package/dist/resources/evaluations/iterations.js +156 -0
- package/dist/resources/files.d.ts +82 -0
- package/dist/resources/files.d.ts.map +1 -0
- package/dist/resources/files.js +150 -0
- package/dist/resources/finetuning.d.ts +105 -0
- package/dist/resources/finetuning.d.ts.map +1 -0
- package/dist/resources/finetuning.js +181 -0
- package/dist/resources/index.d.ts +11 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +10 -0
- package/dist/resources/models.d.ts +57 -0
- package/dist/resources/models.d.ts.map +1 -0
- package/dist/resources/models.js +72 -0
- package/dist/resources/processors/automations/endpoints.d.ts +90 -0
- package/dist/resources/processors/automations/endpoints.d.ts.map +1 -0
- package/dist/resources/processors/automations/endpoints.js +145 -0
- package/dist/resources/processors/automations/index.d.ts +7 -0
- package/dist/resources/processors/automations/index.d.ts.map +1 -0
- package/dist/resources/processors/automations/index.js +6 -0
- package/dist/resources/processors/automations/links.d.ts +90 -0
- package/dist/resources/processors/automations/links.d.ts.map +1 -0
- package/dist/resources/processors/automations/links.js +149 -0
- package/dist/resources/processors/automations/logs.d.ts +35 -0
- package/dist/resources/processors/automations/logs.d.ts.map +1 -0
- package/dist/resources/processors/automations/logs.js +60 -0
- package/dist/resources/processors/automations/mailboxes.d.ts +102 -0
- package/dist/resources/processors/automations/mailboxes.d.ts.map +1 -0
- package/dist/resources/processors/automations/mailboxes.js +157 -0
- package/dist/resources/processors/automations/outlook.d.ts +114 -0
- package/dist/resources/processors/automations/outlook.d.ts.map +1 -0
- package/dist/resources/processors/automations/outlook.js +170 -0
- package/dist/resources/processors/automations/tests.d.ts +58 -0
- package/dist/resources/processors/automations/tests.d.ts.map +1 -0
- package/dist/resources/processors/automations/tests.js +90 -0
- package/dist/resources/processors/index.d.ts +303 -0
- package/dist/resources/processors/index.d.ts.map +1 -0
- package/dist/resources/processors/index.js +261 -0
- package/dist/resources/schemas.d.ts +63 -0
- package/dist/resources/schemas.d.ts.map +1 -0
- package/dist/resources/schemas.js +183 -0
- package/dist/resources/secrets/external_api_keys.d.ts +61 -0
- package/dist/resources/secrets/external_api_keys.d.ts.map +1 -0
- package/dist/resources/secrets/external_api_keys.js +120 -0
- package/dist/resources/secrets/index.d.ts +14 -0
- package/dist/resources/secrets/index.d.ts.map +1 -0
- package/dist/resources/secrets/index.js +17 -0
- package/dist/resources/secrets/webhooks.d.ts +73 -0
- package/dist/resources/secrets/webhooks.d.ts.map +1 -0
- package/dist/resources/secrets/webhooks.js +145 -0
- package/dist/resources/usage.d.ts +223 -0
- package/dist/resources/usage.d.ts.map +1 -0
- package/dist/resources/usage.js +310 -0
- package/dist/types/ai_models.d.ts +389 -0
- package/dist/types/ai_models.d.ts.map +1 -0
- package/dist/types/ai_models.js +145 -0
- package/dist/types/automations/cron.d.ts +28 -0
- package/dist/types/automations/cron.d.ts.map +1 -0
- package/dist/types/automations/cron.js +1 -0
- package/dist/types/automations/endpoints.d.ts +13 -0
- package/dist/types/automations/endpoints.d.ts.map +1 -0
- package/dist/types/automations/endpoints.js +1 -0
- package/dist/types/automations/index.d.ts +7 -0
- package/dist/types/automations/index.d.ts.map +1 -0
- package/dist/types/automations/index.js +6 -0
- package/dist/types/automations/links.d.ts +15 -0
- package/dist/types/automations/links.d.ts.map +1 -0
- package/dist/types/automations/links.js +1 -0
- package/dist/types/automations/mailboxes.d.ts +18 -0
- package/dist/types/automations/mailboxes.d.ts.map +1 -0
- package/dist/types/automations/mailboxes.js +1 -0
- package/dist/types/automations/outlook.d.ts +37 -0
- package/dist/types/automations/outlook.d.ts.map +1 -0
- package/dist/types/automations/outlook.js +1 -0
- package/dist/types/automations/webhooks.d.ts +13 -0
- package/dist/types/automations/webhooks.d.ts.map +1 -0
- package/dist/types/automations/webhooks.js +1 -0
- package/dist/types/browser_canvas.d.ts +4 -0
- package/dist/types/browser_canvas.d.ts.map +1 -0
- package/dist/types/browser_canvas.js +2 -0
- package/dist/types/chat.d.ts +99 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +20 -0
- package/dist/types/consensus.d.ts +10 -0
- package/dist/types/consensus.d.ts.map +1 -0
- package/dist/types/consensus.js +1 -0
- package/dist/types/db/annotations.d.ts +108 -0
- package/dist/types/db/annotations.d.ts.map +1 -0
- package/dist/types/db/annotations.js +6 -0
- package/dist/types/db/files.d.ts +133 -0
- package/dist/types/db/files.d.ts.map +1 -0
- package/dist/types/db/files.js +5 -0
- package/dist/types/documents/extractions.d.ts +1849 -0
- package/dist/types/documents/extractions.d.ts.map +1 -0
- package/dist/types/documents/extractions.js +211 -0
- package/dist/types/documents/processing.d.ts +249 -0
- package/dist/types/documents/processing.d.ts.map +1 -0
- package/dist/types/documents/processing.js +6 -0
- package/dist/types/evaluations/iterations.d.ts +41 -0
- package/dist/types/evaluations/iterations.d.ts.map +1 -0
- package/dist/types/evaluations/iterations.js +1 -0
- package/dist/types/jobs/base.d.ts +162 -0
- package/dist/types/jobs/base.d.ts.map +1 -0
- package/dist/types/jobs/base.js +6 -0
- package/dist/types/jobs/specialized.d.ts +200 -0
- package/dist/types/jobs/specialized.d.ts.map +1 -0
- package/dist/types/jobs/specialized.js +37 -0
- package/dist/types/logs.d.ts +92 -0
- package/dist/types/logs.d.ts.map +1 -0
- package/dist/types/logs.js +1 -0
- package/dist/types/mime.d.ts +426 -0
- package/dist/types/mime.d.ts.map +1 -0
- package/dist/types/mime.js +48 -0
- package/dist/types/modalities.d.ts +31 -0
- package/dist/types/modalities.d.ts.map +1 -0
- package/dist/types/modalities.js +109 -0
- package/dist/types/pagination.d.ts +5 -0
- package/dist/types/pagination.d.ts.map +1 -0
- package/dist/types/pagination.js +1 -0
- package/dist/types/schemas/enhancement.d.ts +250 -0
- package/dist/types/schemas/enhancement.d.ts.map +1 -0
- package/dist/types/schemas/enhancement.js +6 -0
- package/dist/types/schemas/generate.d.ts +160 -0
- package/dist/types/schemas/generate.d.ts.map +1 -0
- package/dist/types/schemas/generate.js +19 -0
- package/dist/types/schemas/object.d.ts +116 -0
- package/dist/types/schemas/object.d.ts.map +1 -0
- package/dist/types/schemas/object.js +861 -0
- package/dist/types/secrets/external_api_keys.d.ts +27 -0
- package/dist/types/secrets/external_api_keys.d.ts.map +1 -0
- package/dist/types/secrets/external_api_keys.js +11 -0
- package/dist/types/secrets/index.d.ts +2 -0
- package/dist/types/secrets/index.d.ts.map +1 -0
- package/dist/types/secrets/index.js +1 -0
- package/dist/types/standards.d.ts +37 -0
- package/dist/types/standards.d.ts.map +1 -0
- package/dist/types/standards.js +1 -0
- package/dist/types.d.ts +276 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +85 -0
- package/dist/utils/ai_models.d.ts +10 -0
- package/dist/utils/ai_models.d.ts.map +1 -0
- package/dist/utils/ai_models.js +183 -0
- package/dist/utils/batch_processing.d.ts +227 -0
- package/dist/utils/batch_processing.d.ts.map +1 -0
- package/dist/utils/batch_processing.js +268 -0
- package/dist/utils/benchmarking.d.ts +115 -0
- package/dist/utils/benchmarking.d.ts.map +1 -0
- package/dist/utils/benchmarking.js +355 -0
- package/dist/utils/chat.d.ts +70 -0
- package/dist/utils/chat.d.ts.map +1 -0
- package/dist/utils/chat.js +79 -0
- package/dist/utils/cost_calculation.d.ts +26 -0
- package/dist/utils/cost_calculation.d.ts.map +1 -0
- package/dist/utils/cost_calculation.js +99 -0
- package/dist/utils/datasets.d.ts +135 -0
- package/dist/utils/datasets.d.ts.map +1 -0
- package/dist/utils/datasets.js +359 -0
- package/dist/utils/display.d.ts +108 -0
- package/dist/utils/display.d.ts.map +1 -0
- package/dist/utils/display.js +244 -0
- package/dist/utils/hash.d.ts +18 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +31 -0
- package/dist/utils/hashing.d.ts +18 -0
- package/dist/utils/hashing.d.ts.map +1 -0
- package/dist/utils/hashing.js +28 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/json_schema.d.ts +18 -0
- package/dist/utils/json_schema.d.ts.map +1 -0
- package/dist/utils/json_schema.js +334 -0
- package/dist/utils/json_schema_utils.d.ts +42 -0
- package/dist/utils/json_schema_utils.d.ts.map +1 -0
- package/dist/utils/json_schema_utils.js +212 -0
- package/dist/utils/jsonl.d.ts +60 -0
- package/dist/utils/jsonl.d.ts.map +1 -0
- package/dist/utils/jsonl.js +259 -0
- package/dist/utils/mime.d.ts +6 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +129 -0
- package/dist/utils/model_cards.d.ts +219 -0
- package/dist/utils/model_cards.d.ts.map +1 -0
- package/dist/utils/model_cards.js +462 -0
- package/dist/utils/prompt_optimization.d.ts +96 -0
- package/dist/utils/prompt_optimization.d.ts.map +1 -0
- package/dist/utils/prompt_optimization.js +275 -0
- package/dist/utils/responses.d.ts +35 -0
- package/dist/utils/responses.d.ts.map +1 -0
- package/dist/utils/responses.js +37 -0
- package/dist/utils/stream.d.ts +13 -0
- package/dist/utils/stream.d.ts.map +1 -0
- package/dist/utils/stream.js +64 -0
- package/dist/utils/stream_context_managers.d.ts +147 -0
- package/dist/utils/stream_context_managers.d.ts.map +1 -0
- package/dist/utils/stream_context_managers.js +380 -0
- package/dist/utils/usage.d.ts +57 -0
- package/dist/utils/usage.d.ts.map +1 -0
- package/dist/utils/usage.js +97 -0
- package/dist/utils/webhook_secrets.d.ts +59 -0
- package/dist/utils/webhook_secrets.d.ts.map +1 -0
- package/dist/utils/webhook_secrets.js +107 -0
- package/dist/utils/zod_to_json_schema.d.ts +11 -0
- package/dist/utils/zod_to_json_schema.d.ts.map +1 -0
- package/dist/utils/zod_to_json_schema.js +123 -0
- package/dist/utils.d.ts +19 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +1 -0
- package/package.json +62 -6
- package/index.js +0 -7
package/README.md
CHANGED
|
@@ -1,2 +1,293 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# Retab Node.js SDK
|
|
2
|
+
|
|
3
|
+
Official Node.js SDK for the Retab API - extract structured data from documents using AI.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### From npm Registry
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @retab/node
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### For Local Development
|
|
14
|
+
|
|
15
|
+
To install and test the SDK locally using npm link:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# From the SDK directory
|
|
19
|
+
cd open-source/sdk/clients/node
|
|
20
|
+
npm install
|
|
21
|
+
npm run build
|
|
22
|
+
npm link
|
|
23
|
+
|
|
24
|
+
# From your project directory
|
|
25
|
+
npm link @retab/node
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { Retab } from '@retab/node';
|
|
32
|
+
|
|
33
|
+
// Initialize the client
|
|
34
|
+
const retab = new Retab({
|
|
35
|
+
apiKey: 'your-api-key', // Or set RETAB_API_KEY environment variable
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Extract data from a document
|
|
39
|
+
const extraction = await retab.documents.extract({
|
|
40
|
+
document: 'path/to/invoice.pdf',
|
|
41
|
+
schema: {
|
|
42
|
+
json_schema: {
|
|
43
|
+
type: 'object',
|
|
44
|
+
properties: {
|
|
45
|
+
invoice_number: { type: 'string' },
|
|
46
|
+
total_amount: { type: 'number' },
|
|
47
|
+
due_date: { type: 'string', format: 'date' }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
console.log(extraction.extracted_data);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Key Features
|
|
57
|
+
|
|
58
|
+
### Document Processing
|
|
59
|
+
Extract structured data from various document formats:
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// From file path
|
|
63
|
+
const result = await retab.documents.extract({
|
|
64
|
+
document: 'path/to/document.pdf',
|
|
65
|
+
schema: mySchema
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// From buffer
|
|
69
|
+
const buffer = fs.readFileSync('document.pdf');
|
|
70
|
+
const result = await retab.documents.extract({
|
|
71
|
+
document: buffer,
|
|
72
|
+
schema: mySchema
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// With specific AI model
|
|
76
|
+
const result = await retab.documents.extract({
|
|
77
|
+
document: 'document.pdf',
|
|
78
|
+
schema: mySchema,
|
|
79
|
+
model: 'gpt-4.1'
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Schema Management
|
|
84
|
+
Generate and enhance JSON schemas for your documents:
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
// Generate schema from sample documents
|
|
88
|
+
const schema = await retab.schemas.generate({
|
|
89
|
+
documents: ['invoice1.pdf', 'invoice2.pdf'],
|
|
90
|
+
instructions: 'Extract invoice data including line items'
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Enhance existing schema with ground truth data
|
|
94
|
+
const enhanced = await retab.schemas.enhance({
|
|
95
|
+
schema_id: 'existing-schema-id',
|
|
96
|
+
documents: ['sample.pdf'],
|
|
97
|
+
ground_truths: [{ invoice_total: 150.00 }]
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Multi-Provider AI Support
|
|
102
|
+
Use different AI providers by passing API keys via headers:
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
const retab = new Retab({
|
|
106
|
+
apiKey: 'your-retab-api-key',
|
|
107
|
+
defaultHeaders: {
|
|
108
|
+
'X-OpenAI-Api-Key': 'your-openai-key',
|
|
109
|
+
'X-Anthropic-Api-Key': 'your-anthropic-key',
|
|
110
|
+
'X-xAI-Api-Key': 'your-xai-key',
|
|
111
|
+
'X-Gemini-Api-Key': 'your-gemini-key'
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Consensus Extraction
|
|
117
|
+
Get multiple AI opinions for higher accuracy:
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
const consensus = await retab.consensus.extract({
|
|
121
|
+
document: 'contract.pdf',
|
|
122
|
+
schema: contractSchema,
|
|
123
|
+
num_extractions: 3,
|
|
124
|
+
models: ['gpt-4o', 'claude-3-5-sonnet-latest', 'grok-2-latest']
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Automation & Webhooks
|
|
129
|
+
Set up automated document processing:
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
// Create webhook endpoint
|
|
133
|
+
const automation = await retab.processors.endpoints.create({
|
|
134
|
+
name: 'Invoice Processor',
|
|
135
|
+
processor_id: 'proc_9dfnjkf2912',
|
|
136
|
+
webhook_url: 'https://your-app.com/webhook'
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Schema Types
|
|
142
|
+
The SDK supports multiple schema formats:
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
import { Schema } from '@retab/node';
|
|
146
|
+
|
|
147
|
+
// From JSON Schema
|
|
148
|
+
const schema = Schema.from_json_schema({
|
|
149
|
+
type: 'object',
|
|
150
|
+
properties: {
|
|
151
|
+
name: { type: 'string' }
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// From Pydantic model (as JSON)
|
|
156
|
+
const schema = Schema.from_pydantic_json({
|
|
157
|
+
type: 'object',
|
|
158
|
+
properties: { /* ... */ }
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// From Zod schema (as JSON)
|
|
162
|
+
const schema = Schema.from_zod_json({
|
|
163
|
+
/* zod schema JSON representation */
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Streaming Responses
|
|
168
|
+
For real-time updates:
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
const stream = await retab.documents.extract({
|
|
172
|
+
document: 'large-document.pdf',
|
|
173
|
+
schema: mySchema,
|
|
174
|
+
stream: true
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
for await (const chunk of stream) {
|
|
178
|
+
console.log('Progress:', chunk);
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Idempotency
|
|
183
|
+
Ensure requests are processed only once:
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
const result = await retab.documents.extract({
|
|
187
|
+
document: 'invoice.pdf',
|
|
188
|
+
schema: mySchema
|
|
189
|
+
}, {
|
|
190
|
+
headers: {
|
|
191
|
+
'Idempotency-Key': 'unique-request-id'
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Configuration
|
|
197
|
+
|
|
198
|
+
### Client Options
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
const retab = new Retab({
|
|
202
|
+
apiKey: 'your-api-key', // Required
|
|
203
|
+
baseUrl: 'https://api.retab.com', // Optional, defaults to production
|
|
204
|
+
timeout: 240000, // Optional, request timeout in ms
|
|
205
|
+
maxRetries: 3, // Optional, retry count
|
|
206
|
+
defaultHeaders: { // Optional, additional headers
|
|
207
|
+
'X-Custom-Header': 'value'
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Environment Variables
|
|
213
|
+
|
|
214
|
+
- `RETAB_API_KEY`: Your Retab API key
|
|
215
|
+
- `RETAB_API_BASE_URL`: Override the default API base URL
|
|
216
|
+
- `OPENAI_API_KEY`: OpenAI API key (if not using headers)
|
|
217
|
+
- `ANTHROPIC_API_KEY`: Anthropic API key (if not using headers)
|
|
218
|
+
- `XAI_API_KEY`: xAI API key (if not using headers)
|
|
219
|
+
- `GEMINI_API_KEY`: Gemini API key (if not using headers)
|
|
220
|
+
|
|
221
|
+
## TypeScript Support
|
|
222
|
+
|
|
223
|
+
The SDK is written in TypeScript and provides comprehensive type definitions:
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
import type {
|
|
227
|
+
Document,
|
|
228
|
+
Schema,
|
|
229
|
+
ExtractionResult,
|
|
230
|
+
Model,
|
|
231
|
+
BrowserCanvasSize
|
|
232
|
+
} from '@retab/node';
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Error Handling
|
|
236
|
+
|
|
237
|
+
The SDK provides detailed error types:
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
import { RetabError } from '@retab/node';
|
|
241
|
+
|
|
242
|
+
try {
|
|
243
|
+
const result = await retab.documents.extract({
|
|
244
|
+
document: 'file.pdf',
|
|
245
|
+
schema: mySchema
|
|
246
|
+
});
|
|
247
|
+
} catch (error) {
|
|
248
|
+
if (error instanceof RetabError) {
|
|
249
|
+
console.error('API Error:', error.message);
|
|
250
|
+
console.error('Status:', error.status);
|
|
251
|
+
console.error('Details:', error.details);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Development
|
|
257
|
+
|
|
258
|
+
### Building from Source
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
npm install
|
|
262
|
+
npm run build
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Running Tests
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
npm test # Run all tests
|
|
269
|
+
npm run test:watch # Watch mode
|
|
270
|
+
npm run test:coverage # With coverage
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Linting and Formatting
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
npm run lint # Check for linting errors
|
|
277
|
+
npm run format # Format code with Prettier
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Requirements
|
|
281
|
+
|
|
282
|
+
- Node.js >= 16.0.0
|
|
283
|
+
- TypeScript >= 5.0.0 (for development)
|
|
284
|
+
|
|
285
|
+
## License
|
|
286
|
+
|
|
287
|
+
MIT
|
|
288
|
+
|
|
289
|
+
## Support
|
|
290
|
+
|
|
291
|
+
- Documentation: https://docs.retab.com
|
|
292
|
+
- Issues: https://github.com/retab-inc/retab/issues
|
|
293
|
+
- Discord: https://discord.gg/retab
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AbstractClient, CompositionClient } from "@/client";
|
|
2
|
+
import APIModels from "./models/client";
|
|
3
|
+
import APIConsensus from "./consensus/client";
|
|
4
|
+
import APIDocuments from "./documents/client";
|
|
5
|
+
import APISchemas from "./schemas/client";
|
|
6
|
+
import APIDeployments from "./deployments/client";
|
|
7
|
+
export default class APIV1 extends CompositionClient {
|
|
8
|
+
constructor(client: AbstractClient);
|
|
9
|
+
models: APIModels;
|
|
10
|
+
consensus: APIConsensus;
|
|
11
|
+
documents: APIDocuments;
|
|
12
|
+
schemas: APISchemas;
|
|
13
|
+
deployments: APIDeployments;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,iBAAiB;gBACpC,MAAM,EAAE,cAAc;IAIlC,MAAM,YAAuB;IAC7B,SAAS,eAA0B;IACnC,SAAS,eAA0B;IACnC,OAAO,aAAwB;IAC/B,WAAW,iBAA4B;CAC1C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import APIModels from "./models/client";
|
|
3
|
+
import APIConsensus from "./consensus/client";
|
|
4
|
+
import APIDocuments from "./documents/client";
|
|
5
|
+
import APISchemas from "./schemas/client";
|
|
6
|
+
import APIDeployments from "./deployments/client";
|
|
7
|
+
export default class APIV1 extends CompositionClient {
|
|
8
|
+
constructor(client) {
|
|
9
|
+
super(client);
|
|
10
|
+
this.models = new APIModels(this);
|
|
11
|
+
this.consensus = new APIConsensus(this);
|
|
12
|
+
this.documents = new APIDocuments(this);
|
|
13
|
+
this.schemas = new APISchemas(this);
|
|
14
|
+
this.deployments = new APIDeployments(this);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { ReconciliationRequest, ReconciliationResponse } from "@/types";
|
|
3
|
+
export default class APIConsensus extends CompositionClient {
|
|
4
|
+
constructor(client: CompositionClient);
|
|
5
|
+
reconcile(params: ReconciliationRequest): Promise<ReconciliationResponse>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/consensus/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAmD,MAAM,SAAS,CAAC;AAEzH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;gBAC3C,MAAM,EAAE,iBAAiB;IAG/B,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAOlF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { ZReconciliationRequest, ZReconciliationResponse } from "@/types";
|
|
3
|
+
export default class APIConsensus extends CompositionClient {
|
|
4
|
+
constructor(client) {
|
|
5
|
+
super(client);
|
|
6
|
+
}
|
|
7
|
+
async reconcile(params) {
|
|
8
|
+
return await this._fetchJson(ZReconciliationResponse, {
|
|
9
|
+
url: "/v1/consensus/reconcile",
|
|
10
|
+
method: "POST",
|
|
11
|
+
body: ZReconciliationRequest.parse(params),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { MIMEDataInput } from "@/types";
|
|
3
|
+
export default class APIDeployments extends CompositionClient {
|
|
4
|
+
constructor(client: CompositionClient);
|
|
5
|
+
extract({ project_id, iteration_id, document, documents, temperature, seed, store }: {
|
|
6
|
+
project_id: string;
|
|
7
|
+
iteration_id: string;
|
|
8
|
+
document?: MIMEDataInput;
|
|
9
|
+
documents?: MIMEDataInput[];
|
|
10
|
+
temperature?: number;
|
|
11
|
+
seed?: number;
|
|
12
|
+
store?: boolean;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
object: "schema";
|
|
15
|
+
strict: boolean;
|
|
16
|
+
json_schema: Record<string, any>;
|
|
17
|
+
created_at: string;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/deployments/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAsB,MAAM,SAAS,CAAC;AAE5D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,iBAAiB;gBAC7C,MAAM,EAAE,iBAAiB;IAI/B,OAAO,CAAC,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,IAAI,EACJ,KAAK,EACR,EAAE;QACC,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACnB;;;;;;CAeJ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { mimeToBlob } from "@/mime";
|
|
3
|
+
import { ZMIMEData, ZSchema } from "@/types";
|
|
4
|
+
export default class APIDeployments extends CompositionClient {
|
|
5
|
+
constructor(client) {
|
|
6
|
+
super(client);
|
|
7
|
+
}
|
|
8
|
+
async extract({ project_id, iteration_id, document, documents, temperature, seed, store }) {
|
|
9
|
+
if (!document && (!documents || documents.length === 0)) {
|
|
10
|
+
throw new Error("Either 'document' or 'documents' must be provided.");
|
|
11
|
+
}
|
|
12
|
+
let url = `/v1/deployments/extract/${project_id}/${iteration_id}`;
|
|
13
|
+
return await this._fetchJson(ZSchema, {
|
|
14
|
+
url,
|
|
15
|
+
method: "POST",
|
|
16
|
+
body: {
|
|
17
|
+
temperature, seed, store,
|
|
18
|
+
documents: (await ZMIMEData.array().parseAsync([...document ? [document] : [], documents || []])).map(mimeToBlob)
|
|
19
|
+
},
|
|
20
|
+
bodyMime: "multipart/form-data",
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { DocumentExtractRequest, RetabParsedChatCompletion, ParseRequest, ParseResult, DocumentCreateMessageRequest, DocumentMessage, DocumentCreateInputRequest } from "@/types";
|
|
3
|
+
export default class APIDocuments extends CompositionClient {
|
|
4
|
+
constructor(client: CompositionClient);
|
|
5
|
+
extract(params: DocumentExtractRequest): Promise<RetabParsedChatCompletion>;
|
|
6
|
+
parse(params: ParseRequest): Promise<ParseResult>;
|
|
7
|
+
createMessages(params: DocumentCreateMessageRequest): Promise<DocumentMessage>;
|
|
8
|
+
createInputs(params: DocumentCreateInputRequest): Promise<DocumentMessage>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/documents/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAA2B,sBAAsB,EAAE,yBAAyB,EAA8B,YAAY,EAAE,WAAW,EAA+B,4BAA4B,EAAE,eAAe,EAAmD,0BAA0B,EAA+B,MAAM,SAAS,CAAC;AAGlV,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;gBAC3C,MAAM,EAAE,iBAAiB;IAG/B,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAO3E,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAOjD,cAAc,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC;IAO9E,YAAY,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC;CAOnF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { ZDocumentExtractRequest, ZRetabParsedChatCompletion, ZParseResult, ZParseRequest, ZDocumentMessage, ZDocumentCreateMessageRequest, ZDocumentCreateInputRequest } from "@/types";
|
|
3
|
+
export default class APIDocuments extends CompositionClient {
|
|
4
|
+
constructor(client) {
|
|
5
|
+
super(client);
|
|
6
|
+
}
|
|
7
|
+
async extract(params) {
|
|
8
|
+
return await this._fetchJson(ZRetabParsedChatCompletion, {
|
|
9
|
+
url: "/v1/documents/extract",
|
|
10
|
+
method: "POST",
|
|
11
|
+
body: await ZDocumentExtractRequest.parseAsync(params),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
async parse(params) {
|
|
15
|
+
return await this._fetchJson(ZParseResult, {
|
|
16
|
+
url: "/v1/documents/parse",
|
|
17
|
+
method: "POST",
|
|
18
|
+
body: await ZParseRequest.parseAsync(params),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async createMessages(params) {
|
|
22
|
+
return await this._fetchJson(ZDocumentMessage, {
|
|
23
|
+
url: "/v1/documents/create_messages",
|
|
24
|
+
method: "POST",
|
|
25
|
+
body: await ZDocumentCreateMessageRequest.parseAsync(params),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async createInputs(params) {
|
|
29
|
+
return await this._fetchJson(ZDocumentMessage, {
|
|
30
|
+
url: "/v1/documents/create_inputs",
|
|
31
|
+
method: "POST",
|
|
32
|
+
body: await ZDocumentCreateInputRequest.parseAsync(params),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
export default class APIModels extends CompositionClient {
|
|
3
|
+
constructor(client: CompositionClient);
|
|
4
|
+
list(params?: {
|
|
5
|
+
supports_finetuning?: boolean;
|
|
6
|
+
supports_image?: boolean;
|
|
7
|
+
include_finetuned_models?: boolean;
|
|
8
|
+
}): Promise<{
|
|
9
|
+
data: {
|
|
10
|
+
object: "model";
|
|
11
|
+
id: string;
|
|
12
|
+
created: number;
|
|
13
|
+
owned_by: string;
|
|
14
|
+
}[];
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/models/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,iBAAiB;gBACxC,MAAM,EAAE,iBAAiB;IAI/B,IAAI,CAAC,MAAM,CAAC,EAAE;QAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACtC;;;;;;;;CAOJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { ZModel } from "@/types";
|
|
3
|
+
import * as z from "zod";
|
|
4
|
+
export default class APIModels extends CompositionClient {
|
|
5
|
+
constructor(client) {
|
|
6
|
+
super(client);
|
|
7
|
+
}
|
|
8
|
+
async list(params) {
|
|
9
|
+
return await this._fetchJson(z.object({ data: z.array(ZModel) }), {
|
|
10
|
+
url: "/v1/models",
|
|
11
|
+
method: "GET",
|
|
12
|
+
params: params,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { GenerateSchemaRequest } from "@/types";
|
|
3
|
+
export default class APISchemas extends CompositionClient {
|
|
4
|
+
constructor(client: CompositionClient);
|
|
5
|
+
generate(params: GenerateSchemaRequest): Promise<{
|
|
6
|
+
object: "schema";
|
|
7
|
+
strict: boolean;
|
|
8
|
+
json_schema: Record<string, any>;
|
|
9
|
+
created_at: string;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/schemas/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAmC,MAAM,SAAS,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,iBAAiB;gBACzC,MAAM,EAAE,iBAAiB;IAI/B,QAAQ,CAAC,MAAM,EAAE,qBAAqB;;;;;;CAO/C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CompositionClient } from "@/client";
|
|
2
|
+
import { ZGenerateSchemaRequest, ZSchema } from "@/types";
|
|
3
|
+
export default class APISchemas extends CompositionClient {
|
|
4
|
+
constructor(client) {
|
|
5
|
+
super(client);
|
|
6
|
+
}
|
|
7
|
+
async generate(params) {
|
|
8
|
+
return await this._fetchJson(ZSchema, {
|
|
9
|
+
url: "/v1/schemas/generate",
|
|
10
|
+
method: "POST",
|
|
11
|
+
body: await ZGenerateSchemaRequest.parseAsync(params),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
type FetchParams = {
|
|
3
|
+
url: string;
|
|
4
|
+
method: string;
|
|
5
|
+
params?: Record<string, any>;
|
|
6
|
+
headers?: Record<string, any>;
|
|
7
|
+
bodyMime?: "application/json" | "multipart/form-data";
|
|
8
|
+
body?: Record<string, any>;
|
|
9
|
+
auth?: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare class AbstractClient {
|
|
12
|
+
protected _fetch(_: FetchParams): Promise<Response>;
|
|
13
|
+
protected _fetchJson<ZodSchema extends z.ZodType<any, any, any>>(bodyType: ZodSchema, params: FetchParams): Promise<z.output<ZodSchema>>;
|
|
14
|
+
}
|
|
15
|
+
export declare class CompositionClient extends AbstractClient {
|
|
16
|
+
protected _client: AbstractClient;
|
|
17
|
+
constructor(client: AbstractClient);
|
|
18
|
+
protected _fetch(params: FetchParams): Promise<Response>;
|
|
19
|
+
}
|
|
20
|
+
export declare class APIError extends Error {
|
|
21
|
+
status: number;
|
|
22
|
+
info: string;
|
|
23
|
+
constructor(status: number, info: string);
|
|
24
|
+
}
|
|
25
|
+
export declare function streamResponse<ZodSchema extends z.ZodType<any, any, any>>(response: Response, schema: ZodSchema): AsyncGenerator<z.output<ZodSchema>>;
|
|
26
|
+
export declare const DateOrISO: z.ZodUnion<[z.ZodDate, z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>]>;
|
|
27
|
+
type AuthTypes = {
|
|
28
|
+
"bearer": string;
|
|
29
|
+
} | {
|
|
30
|
+
"masterKey": string;
|
|
31
|
+
} | {
|
|
32
|
+
"apiKey": string;
|
|
33
|
+
} | {};
|
|
34
|
+
export type ClientOptions = {
|
|
35
|
+
baseUrl?: string;
|
|
36
|
+
} & AuthTypes;
|
|
37
|
+
export declare class FetcherClient extends AbstractClient {
|
|
38
|
+
options: ClientOptions;
|
|
39
|
+
constructor(options?: ClientOptions);
|
|
40
|
+
_fetch(params: {
|
|
41
|
+
url: string;
|
|
42
|
+
method: string;
|
|
43
|
+
params?: Record<string, any>;
|
|
44
|
+
headers?: Record<string, any>;
|
|
45
|
+
bodyMime?: "application/json" | "multipart/form-data";
|
|
46
|
+
body?: Record<string, any>;
|
|
47
|
+
}): Promise<Response>;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,qBAAqB,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AACF,qBAAa,cAAc;IACzB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;cAGnC,UAAU,CAAC,SAAS,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;CAQ/I;AAED,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;gBACtB,MAAM,EAAE,cAAc;IAIlC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAGzD;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;gBACD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAKzC;AAED,wBAAuB,cAAc,CAAC,SAAS,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAsC5J;AAED,eAAO,MAAM,SAAS,gGAKpB,CAAC;AAEH,KAAK,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,EAAE,CAAC;AAC5F,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,SAAS,CAAC;AAEd,qBAAa,aAAc,SAAQ,cAAc;IAC/C,OAAO,EAAE,aAAa,CAAC;gBACX,OAAO,CAAC,EAAE,aAAa;IAK7B,MAAM,CAAC,MAAM,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,qBAAqB,CAAC;QACtD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC5B,GAAG,OAAO,CAAC,QAAQ,CAAC;CAmDtB"}
|