@okrapdf/cli 0.3.0 → 0.3.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 (42) hide show
  1. package/dist/index.js +0 -0
  2. package/package.json +1 -1
  3. package/dist/commands/docs.d.ts +0 -6
  4. package/dist/commands/docs.d.ts.map +0 -1
  5. package/dist/commands/docs.js +0 -157
  6. package/dist/commands/docs.js.map +0 -1
  7. package/dist/commands/step.d.ts +0 -17
  8. package/dist/commands/step.d.ts.map +0 -1
  9. package/dist/commands/step.js +0 -212
  10. package/dist/commands/step.js.map +0 -1
  11. package/dist/commands/workflow.d.ts +0 -18
  12. package/dist/commands/workflow.d.ts.map +0 -1
  13. package/dist/commands/workflow.js +0 -340
  14. package/dist/commands/workflow.js.map +0 -1
  15. package/dist/lib/dom-emitter.d.ts +0 -14
  16. package/dist/lib/dom-emitter.d.ts.map +0 -1
  17. package/dist/lib/dom-emitter.js +0 -66
  18. package/dist/lib/dom-emitter.js.map +0 -1
  19. package/dist/lib/dom-ops.d.ts +0 -55
  20. package/dist/lib/dom-ops.d.ts.map +0 -1
  21. package/dist/lib/dom-ops.js +0 -93
  22. package/dist/lib/dom-ops.js.map +0 -1
  23. package/dist/lib/pdfquery.d.ts +0 -57
  24. package/dist/lib/pdfquery.d.ts.map +0 -1
  25. package/dist/lib/pdfquery.js +0 -101
  26. package/dist/lib/pdfquery.js.map +0 -1
  27. package/dist/lib/sinks/file.d.ts +0 -8
  28. package/dist/lib/sinks/file.d.ts.map +0 -1
  29. package/dist/lib/sinks/file.js +0 -30
  30. package/dist/lib/sinks/file.js.map +0 -1
  31. package/dist/lib/sinks/index.d.ts +0 -6
  32. package/dist/lib/sinks/index.d.ts.map +0 -1
  33. package/dist/lib/sinks/index.js +0 -30
  34. package/dist/lib/sinks/index.js.map +0 -1
  35. package/dist/lib/sinks/partykit.d.ts +0 -14
  36. package/dist/lib/sinks/partykit.d.ts.map +0 -1
  37. package/dist/lib/sinks/partykit.js +0 -124
  38. package/dist/lib/sinks/partykit.js.map +0 -1
  39. package/dist/lib/sinks/stdout.d.ts +0 -6
  40. package/dist/lib/sinks/stdout.d.ts.map +0 -1
  41. package/dist/lib/sinks/stdout.js +0 -9
  42. package/dist/lib/sinks/stdout.js.map +0 -1
@@ -1,340 +0,0 @@
1
- /**
2
- * Workflow Command - Run and manage workflows
3
- *
4
- * Usage:
5
- * okra workflow list
6
- * okra workflow describe <workflow-id>
7
- * okra workflow run --id <workflow-id> --input '{"pdfUrl": "...", "jobId": "..."}'
8
- * okra workflow status <execution-id>
9
- *
10
- * Designed for running complete OCR pipelines.
11
- */
12
- import { Command } from 'commander';
13
- import chalk from 'chalk';
14
- import { formatOutput, success, error, info } from '../lib/output.js';
15
- import { post, get, EXIT_CODES } from '../lib/client.js';
16
- import { withSpinner, pollWithProgress } from '../lib/progress.js';
17
- /**
18
- * Create the 'workflow' command group
19
- */
20
- export function createWorkflowCommand() {
21
- const workflow = new Command('workflow')
22
- .description('Run and manage OCR workflows');
23
- // okra workflow list
24
- workflow
25
- .command('list')
26
- .description('List available workflows')
27
- .option('-o, --output <format>', 'Output format (table, json)', 'table')
28
- .option('--tag <tag>', 'Filter by tag')
29
- .action(async (options) => {
30
- try {
31
- const response = await withSpinner('Fetching workflows', () => get('api/v1/workflow/definitions'));
32
- let workflows = response.workflows;
33
- // Filter by tag if specified
34
- if (options.tag) {
35
- workflows = workflows.filter((w) => w.tags?.includes(options.tag));
36
- }
37
- if (options.output === 'json') {
38
- console.log(formatOutput(workflows, 'json'));
39
- }
40
- else {
41
- console.log(chalk.bold('\nAvailable Workflows:\n'));
42
- for (const wf of workflows) {
43
- console.log(` ${chalk.green(wf.name.padEnd(30))} v${wf.version}`);
44
- console.log(` ${' '.repeat(30)} ${chalk.cyan(wf.displayName)}`);
45
- if (wf.description) {
46
- console.log(` ${' '.repeat(30)} ${chalk.dim(wf.description.slice(0, 60))}...`);
47
- }
48
- if (wf.tags && wf.tags.length > 0) {
49
- console.log(` ${' '.repeat(30)} ${chalk.dim(`Tags: ${wf.tags.join(', ')}`)}`);
50
- }
51
- console.log();
52
- }
53
- console.log(chalk.dim(`Use 'okra workflow describe <name>' for details`));
54
- }
55
- }
56
- catch (err) {
57
- error(err.message || 'Failed to list workflows');
58
- process.exit(EXIT_CODES.GENERAL_ERROR);
59
- }
60
- });
61
- // okra workflow describe <workflow>
62
- workflow
63
- .command('describe <workflow>')
64
- .description('Show detailed info about a workflow')
65
- .option('-o, --output <format>', 'Output format (table, json)', 'table')
66
- .action(async (workflowName, options) => {
67
- try {
68
- const response = await withSpinner('Fetching workflow', () => get(`api/v1/workflow/definitions/${workflowName}`));
69
- if (options.output === 'json') {
70
- console.log(formatOutput(response, 'json'));
71
- }
72
- else {
73
- const wf = response;
74
- console.log();
75
- console.log(chalk.bold.cyan(wf.displayName));
76
- console.log(chalk.dim(`Workflow: ${wf.name} v${wf.version}`));
77
- console.log();
78
- if (wf.description) {
79
- console.log(wf.description);
80
- console.log();
81
- }
82
- // Node flow visualization
83
- console.log(chalk.bold('Pipeline:'));
84
- const nodeMap = new Map(wf.nodes.map((n) => [n.id, n]));
85
- // Simple linear display (for complex DAGs, would need proper topo sort)
86
- console.log();
87
- for (let i = 0; i < wf.nodes.length; i++) {
88
- const node = wf.nodes[i];
89
- const isLast = i === wf.nodes.length - 1;
90
- const arrow = isLast ? '' : ' → ';
91
- process.stdout.write(chalk.green(node.type) + arrow);
92
- }
93
- console.log('\n');
94
- // Node details
95
- console.log(chalk.bold('Nodes:'));
96
- for (const node of wf.nodes) {
97
- console.log(` ${chalk.cyan(node.id)} (${node.type})`);
98
- if (node.parameters && Object.keys(node.parameters).length > 0) {
99
- for (const [key, value] of Object.entries(node.parameters)) {
100
- console.log(` ${chalk.dim(key)}: ${JSON.stringify(value)}`);
101
- }
102
- }
103
- }
104
- console.log();
105
- if (wf.tags && wf.tags.length > 0) {
106
- console.log(chalk.bold('Tags:'), wf.tags.join(', '));
107
- console.log();
108
- }
109
- console.log(chalk.dim(`Run with: okra workflow run --id ${wf.name} --input '{...}'`));
110
- }
111
- }
112
- catch (err) {
113
- error(err.message || `Workflow '${workflowName}' not found`);
114
- process.exit(EXIT_CODES.INVALID_ARGS);
115
- }
116
- });
117
- // okra workflow run --id <workflow> --input <json>
118
- workflow
119
- .command('run')
120
- .description('Execute a workflow with input data')
121
- .requiredOption('--id <workflow>', 'Workflow ID to run')
122
- .requiredOption('-i, --input <json>', 'Input data as JSON string')
123
- .option('-j, --job-id <jobId>', 'Custom job ID')
124
- .option('--no-wait', 'Start workflow without waiting for completion')
125
- .option('--timeout <seconds>', 'Timeout in seconds (default: 3600)', '3600')
126
- .option('-o, --output <format>', 'Output format (json, table)', 'json')
127
- .option('-q, --quiet', 'Only output the result')
128
- .action(async (options) => {
129
- try {
130
- // Parse input JSON
131
- let input;
132
- try {
133
- input = JSON.parse(options.input);
134
- }
135
- catch {
136
- error('Invalid JSON input. Use: --input \'{"key": "value"}\'');
137
- process.exit(EXIT_CODES.INVALID_ARGS);
138
- }
139
- const jobId = options.jobId || `wf-${Date.now()}`;
140
- // Build request
141
- const request = {
142
- workflowId: options.id,
143
- input,
144
- jobId,
145
- };
146
- if (!options.quiet) {
147
- info(`Starting workflow: ${options.id}`);
148
- info(`Job ID: ${jobId}`);
149
- }
150
- const response = await withSpinner(options.quiet ? '' : 'Starting workflow', () => post('api/v1/workflow/run', request));
151
- if (!options.wait) {
152
- // Return immediately
153
- if (options.output === 'json') {
154
- console.log(formatOutput(response, 'json'));
155
- }
156
- else {
157
- success('Workflow started');
158
- console.log(` Execution ID: ${response.executionId}`);
159
- console.log(` Job ID: ${response.jobId}`);
160
- console.log();
161
- console.log(chalk.dim(`Check status: okra workflow status ${response.executionId}`));
162
- }
163
- return;
164
- }
165
- // Poll for completion
166
- const timeoutMs = parseInt(options.timeout, 10) * 1000;
167
- const startTime = Date.now();
168
- const result = await pollWithProgress(async () => {
169
- const status = await get(`api/v1/workflow/executions/${response.executionId}`);
170
- const done = ['completed', 'failed', 'cancelled'].includes(status.status);
171
- // Calculate progress from node statuses
172
- let progress = 0;
173
- let total = 0;
174
- if (status.nodeStatuses) {
175
- total = Object.keys(status.nodeStatuses).length;
176
- progress = Object.values(status.nodeStatuses).filter((n) => n.status === 'success' || n.status === 'error').length;
177
- }
178
- return {
179
- done,
180
- progress,
181
- total: total || undefined,
182
- data: status,
183
- };
184
- }, {
185
- label: options.quiet ? '' : 'Running workflow',
186
- interval: 3000,
187
- timeout: timeoutMs,
188
- });
189
- if (result.status === 'failed' && result.error) {
190
- error(`Workflow failed: ${result.error.message}`);
191
- if (options.output === 'json') {
192
- console.log(formatOutput(result, 'json'));
193
- }
194
- process.exit(EXIT_CODES.JOB_FAILED);
195
- }
196
- if (result.status === 'cancelled') {
197
- error('Workflow was cancelled');
198
- process.exit(EXIT_CODES.JOB_FAILED);
199
- }
200
- // Success
201
- if (options.output === 'json') {
202
- console.log(formatOutput(result, 'json'));
203
- }
204
- else {
205
- console.log();
206
- success(`Workflow ${options.id} completed`);
207
- console.log(chalk.dim(`Execution ID: ${response.executionId}`));
208
- const duration = Date.now() - startTime;
209
- console.log(chalk.dim(`Duration: ${(duration / 1000).toFixed(1)}s`));
210
- if (result.nodeStatuses) {
211
- console.log();
212
- console.log(chalk.bold('Node Results:'));
213
- for (const [nodeId, status] of Object.entries(result.nodeStatuses)) {
214
- const icon = status.status === 'success' ? '✓' : status.status === 'error' ? '✗' : '○';
215
- const color = status.status === 'success' ? chalk.green : status.status === 'error' ? chalk.red : chalk.dim;
216
- console.log(` ${color(icon)} ${nodeId}: ${status.status}`);
217
- }
218
- }
219
- if (result.output) {
220
- console.log();
221
- console.log(chalk.bold('Output:'));
222
- console.log(JSON.stringify(result.output, null, 2));
223
- }
224
- }
225
- }
226
- catch (err) {
227
- error(err.message || 'Failed to run workflow');
228
- process.exit(EXIT_CODES.GENERAL_ERROR);
229
- }
230
- });
231
- // okra workflow status <execution-id>
232
- workflow
233
- .command('status <executionId>')
234
- .description('Check status of a workflow execution')
235
- .option('-o, --output <format>', 'Output format (json, table)', 'table')
236
- .option('--watch', 'Watch for updates')
237
- .action(async (executionId, options) => {
238
- try {
239
- const fetchStatus = async () => {
240
- return get(`api/v1/workflow/executions/${executionId}`);
241
- };
242
- if (options.watch) {
243
- // Continuous watch mode
244
- console.log(chalk.dim('Watching execution (Ctrl+C to stop)...\n'));
245
- let lastStatus = '';
246
- while (true) {
247
- const status = await fetchStatus();
248
- // Only print if status changed
249
- const statusStr = JSON.stringify(status.nodeStatuses);
250
- if (statusStr !== lastStatus) {
251
- console.clear();
252
- printStatus(status);
253
- lastStatus = statusStr;
254
- }
255
- if (['completed', 'failed', 'cancelled'].includes(status.status)) {
256
- break;
257
- }
258
- await new Promise((r) => setTimeout(r, 2000));
259
- }
260
- }
261
- else {
262
- const status = await withSpinner('Fetching status', fetchStatus);
263
- if (options.output === 'json') {
264
- console.log(formatOutput(status, 'json'));
265
- }
266
- else {
267
- printStatus(status);
268
- }
269
- }
270
- }
271
- catch (err) {
272
- error(err.message || 'Failed to get status');
273
- process.exit(EXIT_CODES.GENERAL_ERROR);
274
- }
275
- });
276
- return workflow;
277
- }
278
- function printStatus(status) {
279
- console.log();
280
- console.log(chalk.bold(`Workflow Execution: ${status.executionId}`));
281
- console.log();
282
- // Overall status
283
- const statusColor = status.status === 'completed'
284
- ? chalk.green
285
- : status.status === 'failed'
286
- ? chalk.red
287
- : status.status === 'cancelled'
288
- ? chalk.yellow
289
- : chalk.cyan;
290
- console.log(`Status: ${statusColor(status.status.toUpperCase())}`);
291
- console.log(`Job ID: ${status.jobId}`);
292
- console.log(`Workflow: ${status.workflowId}`);
293
- if (status.startedAt) {
294
- console.log(`Started: ${status.startedAt}`);
295
- }
296
- if (status.completedAt) {
297
- console.log(`Completed: ${status.completedAt}`);
298
- }
299
- // Node statuses
300
- if (status.nodeStatuses && Object.keys(status.nodeStatuses).length > 0) {
301
- console.log();
302
- console.log(chalk.bold('Nodes:'));
303
- for (const [nodeId, nodeStatus] of Object.entries(status.nodeStatuses)) {
304
- const icon = nodeStatus.status === 'success'
305
- ? chalk.green('✓')
306
- : nodeStatus.status === 'error'
307
- ? chalk.red('✗')
308
- : nodeStatus.status === 'running'
309
- ? chalk.cyan('◌')
310
- : chalk.dim('○');
311
- let progressStr = '';
312
- if (nodeStatus.progress) {
313
- const pct = nodeStatus.progress.total
314
- ? Math.round((nodeStatus.progress.current / nodeStatus.progress.total) * 100)
315
- : 0;
316
- progressStr = chalk.dim(` (${nodeStatus.progress.current}/${nodeStatus.progress.total || '?'} - ${pct}%)`);
317
- }
318
- console.log(` ${icon} ${nodeId}: ${nodeStatus.status}${progressStr}`);
319
- }
320
- }
321
- // Error
322
- if (status.error) {
323
- console.log();
324
- console.log(chalk.red(`Error: ${status.error.message}`));
325
- }
326
- // Output preview
327
- if (status.output) {
328
- console.log();
329
- console.log(chalk.bold('Output:'));
330
- const outputStr = JSON.stringify(status.output, null, 2);
331
- if (outputStr.length > 500) {
332
- console.log(outputStr.slice(0, 500) + '...');
333
- }
334
- else {
335
- console.log(outputStr);
336
- }
337
- }
338
- }
339
- export default createWorkflowCommand;
340
- //# sourceMappingURL=workflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { DomOpSink } from './dom-ops.js';
2
- export declare class DomEmitter {
3
- private sink;
4
- constructor(sink: DomOpSink);
5
- addDocument(id: string, filename: string): Promise<void>;
6
- addPage(docId: string, pageNum: number, text?: string): Promise<void>;
7
- addTable(pageId: string, tableId: string, bbox?: unknown): Promise<void>;
8
- addFigure(pageId: string, figureId: string, bbox?: unknown): Promise<void>;
9
- setTableContent(tableId: string, markdown: string): Promise<void>;
10
- setStatus(nodeId: string, status: string): Promise<void>;
11
- setProgress(nodeId: string, completed: number, total: number): Promise<void>;
12
- close(): Promise<void>;
13
- }
14
- //# sourceMappingURL=dom-emitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom-emitter.d.ts","sourceRoot":"","sources":["../../src/lib/dom-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,SAAS,EAAW,MAAM,cAAc,CAAC;AAE9D,qBAAa,UAAU;IACT,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,SAAS;IAE7B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAarE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1E,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -1,66 +0,0 @@
1
- export class DomEmitter {
2
- sink;
3
- constructor(sink) {
4
- this.sink = sink;
5
- }
6
- async addDocument(id, filename) {
7
- await this.sink.emit([{
8
- op: 'ADD_NODE',
9
- parentId: '',
10
- node: { id, type: 'document', attrs: { filename } }
11
- }]);
12
- }
13
- async addPage(docId, pageNum, text) {
14
- await this.sink.emit([{
15
- op: 'ADD_NODE',
16
- parentId: docId,
17
- node: {
18
- id: `page-${pageNum}`,
19
- type: 'page',
20
- text: text?.slice(0, 500),
21
- attrs: { num: pageNum, page: pageNum }
22
- }
23
- }]);
24
- }
25
- async addTable(pageId, tableId, bbox) {
26
- await this.sink.emit([{
27
- op: 'ADD_NODE',
28
- parentId: pageId,
29
- node: {
30
- id: tableId,
31
- type: 'table',
32
- attrs: { bbox, status: 'pending' }
33
- }
34
- }]);
35
- }
36
- async addFigure(pageId, figureId, bbox) {
37
- await this.sink.emit([{
38
- op: 'ADD_NODE',
39
- parentId: pageId,
40
- node: {
41
- id: figureId,
42
- type: 'figure',
43
- attrs: { bbox, status: 'pending' }
44
- }
45
- }]);
46
- }
47
- async setTableContent(tableId, markdown) {
48
- await this.sink.emit([
49
- { op: 'SET_TEXT', nodeId: tableId, text: markdown },
50
- { op: 'SET_ATTR', nodeId: tableId, key: 'status', value: 'extracted' }
51
- ]);
52
- }
53
- async setStatus(nodeId, status) {
54
- await this.sink.emit([{ op: 'SET_ATTR', nodeId, key: 'status', value: status }]);
55
- }
56
- async setProgress(nodeId, completed, total) {
57
- await this.sink.emit([
58
- { op: 'SET_ATTR', nodeId, key: 'pagesCompleted', value: completed },
59
- { op: 'SET_ATTR', nodeId, key: 'totalPages', value: total }
60
- ]);
61
- }
62
- async close() {
63
- await this.sink.close();
64
- }
65
- }
66
- //# sourceMappingURL=dom-emitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom-emitter.js","sourceRoot":"","sources":["../../src/lib/dom-emitter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,IAAe;QAAf,SAAI,GAAJ,IAAI,CAAW;IAAG,CAAC;IAEvC,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,QAAgB;QAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE;aACpD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAe,EAAE,IAAa;QACzD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;oBACJ,EAAE,EAAE,QAAQ,OAAO,EAAE;oBACrB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBACzB,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;iBACvC;aACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAe,EAAE,IAAc;QAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE;oBACJ,EAAE,EAAE,OAAO;oBACX,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;iBACnC;aACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAc;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE;oBACJ,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;iBACnC;aACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,QAAgB;QACrD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACnB,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnD,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;SACvE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAc;QAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,SAAiB,EAAE,KAAa;QAChE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACnB,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;YACnE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -1,55 +0,0 @@
1
- /**
2
- * DOM Operations for streaming document extraction
3
- *
4
- * Generic tree mutations (like React's virtual DOM) that can be
5
- * transformed to any target format (PartyKit JdomPatch, NDJSON, etc.)
6
- */
7
- export type DomNodeType = 'document' | 'page' | 'table' | 'figure' | 'paragraph' | 'heading' | 'footnote' | 'list' | 'list-item' | 'ocr-block';
8
- export interface DomNode {
9
- id: string;
10
- type: DomNodeType;
11
- text?: string;
12
- attrs?: Record<string, unknown>;
13
- children?: DomNode[];
14
- }
15
- export type DomOp = {
16
- op: 'ADD_NODE';
17
- parentId: string;
18
- index?: number;
19
- node: DomNode;
20
- } | {
21
- op: 'REMOVE_NODE';
22
- nodeId: string;
23
- } | {
24
- op: 'UPDATE_NODE';
25
- nodeId: string;
26
- patch: Partial<DomNode>;
27
- } | {
28
- op: 'SET_ATTR';
29
- nodeId: string;
30
- key: string;
31
- value: unknown;
32
- } | {
33
- op: 'SET_TEXT';
34
- nodeId: string;
35
- text: string;
36
- };
37
- export interface DomOpSink {
38
- /** Emit one or more operations */
39
- emit(ops: DomOp[]): Promise<void>;
40
- /** Close the sink */
41
- close(): Promise<void>;
42
- }
43
- export interface JdomPatch {
44
- op: 'replace' | 'add' | 'remove';
45
- path: (string | number)[];
46
- value?: unknown;
47
- }
48
- /**
49
- * Convert a DomOp to JdomPatch format
50
- *
51
- * Note: This is a simplified conversion that assumes a flat node structure.
52
- * For nested trees, path resolution would need access to the full tree state.
53
- */
54
- export declare function domOpToJdomPatch(op: DomOp): JdomPatch[];
55
- //# sourceMappingURL=dom-ops.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom-ops.d.ts","sourceRoot":"","sources":["../../src/lib/dom-ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,MAAM,GACN,OAAO,GACP,QAAQ,GACR,WAAW,GACX,SAAS,GACT,UAAU,GACV,MAAM,GACN,WAAW,GACX,WAAW,CAAC;AAGhB,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAGD,MAAM,MAAM,KAAK,GACb;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACnE;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/D;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAGrD,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,qBAAqB;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAGD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;IACjC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,CAoDvD"}
@@ -1,93 +0,0 @@
1
- /**
2
- * DOM Operations for streaming document extraction
3
- *
4
- * Generic tree mutations (like React's virtual DOM) that can be
5
- * transformed to any target format (PartyKit JdomPatch, NDJSON, etc.)
6
- */
7
- /**
8
- * Convert a DomOp to JdomPatch format
9
- *
10
- * Note: This is a simplified conversion that assumes a flat node structure.
11
- * For nested trees, path resolution would need access to the full tree state.
12
- */
13
- export function domOpToJdomPatch(op) {
14
- switch (op.op) {
15
- case 'ADD_NODE':
16
- return [{
17
- op: 'add',
18
- path: ['children', op.index ?? -1], // -1 = append
19
- value: domNodeToJdom(op.node),
20
- }];
21
- case 'REMOVE_NODE':
22
- return [{
23
- op: 'remove',
24
- path: ['children', op.nodeId], // Simplified - actual impl needs index lookup
25
- }];
26
- case 'UPDATE_NODE':
27
- const patches = [];
28
- if (op.patch.text !== undefined) {
29
- patches.push({
30
- op: 'replace',
31
- path: [op.nodeId, 'textContent'],
32
- value: op.patch.text,
33
- });
34
- }
35
- if (op.patch.attrs) {
36
- for (const [key, value] of Object.entries(op.patch.attrs)) {
37
- patches.push({
38
- op: 'replace',
39
- path: [op.nodeId, 'attributes', key],
40
- value,
41
- });
42
- }
43
- }
44
- return patches;
45
- case 'SET_ATTR':
46
- return [{
47
- op: 'replace',
48
- path: [op.nodeId, 'attributes', op.key],
49
- value: op.value,
50
- }];
51
- case 'SET_TEXT':
52
- return [{
53
- op: 'replace',
54
- path: [op.nodeId, 'textContent'],
55
- value: op.text,
56
- }];
57
- default:
58
- return [];
59
- }
60
- }
61
- /**
62
- * Convert DomNode to Jdom format
63
- */
64
- function domNodeToJdom(node) {
65
- return {
66
- id: node.id,
67
- type: node.type,
68
- tagName: nodeTypeToTagName(node.type),
69
- page: node.attrs?.page ?? 0,
70
- textContent: node.text ?? null,
71
- attributes: node.attrs ?? {},
72
- children: node.children?.map(domNodeToJdom) ?? [],
73
- };
74
- }
75
- /**
76
- * Map node type to HTML-like tag name
77
- */
78
- function nodeTypeToTagName(type) {
79
- const tagMap = {
80
- 'document': 'article',
81
- 'page': 'section',
82
- 'table': 'table',
83
- 'figure': 'figure',
84
- 'paragraph': 'p',
85
- 'heading': 'h1',
86
- 'footnote': 'aside',
87
- 'list': 'ul',
88
- 'list-item': 'li',
89
- 'ocr-block': 'div',
90
- };
91
- return tagMap[type] ?? 'div';
92
- }
93
- //# sourceMappingURL=dom-ops.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom-ops.js","sourceRoot":"","sources":["../../src/lib/dom-ops.ts"],"names":[],"mappings":"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"}