@okrapdf/cli 0.2.17 → 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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +44 -27
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +11 -3
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/jobs.d.ts.map +1 -1
- package/dist/commands/jobs.js +5 -0
- package/dist/commands/jobs.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/commands/docs.d.ts +0 -6
- package/dist/commands/docs.d.ts.map +0 -1
- package/dist/commands/docs.js +0 -157
- package/dist/commands/docs.js.map +0 -1
- package/dist/commands/step.d.ts +0 -17
- package/dist/commands/step.d.ts.map +0 -1
- package/dist/commands/step.js +0 -212
- package/dist/commands/step.js.map +0 -1
- package/dist/commands/workflow.d.ts +0 -18
- package/dist/commands/workflow.d.ts.map +0 -1
- package/dist/commands/workflow.js +0 -340
- package/dist/commands/workflow.js.map +0 -1
- package/dist/lib/dom-emitter.d.ts +0 -14
- package/dist/lib/dom-emitter.d.ts.map +0 -1
- package/dist/lib/dom-emitter.js +0 -66
- package/dist/lib/dom-emitter.js.map +0 -1
- package/dist/lib/dom-ops.d.ts +0 -55
- package/dist/lib/dom-ops.d.ts.map +0 -1
- package/dist/lib/dom-ops.js +0 -93
- package/dist/lib/dom-ops.js.map +0 -1
- package/dist/lib/pdfquery.d.ts +0 -57
- package/dist/lib/pdfquery.d.ts.map +0 -1
- package/dist/lib/pdfquery.js +0 -101
- package/dist/lib/pdfquery.js.map +0 -1
- package/dist/lib/sinks/file.d.ts +0 -8
- package/dist/lib/sinks/file.d.ts.map +0 -1
- package/dist/lib/sinks/file.js +0 -30
- package/dist/lib/sinks/file.js.map +0 -1
- package/dist/lib/sinks/index.d.ts +0 -6
- package/dist/lib/sinks/index.d.ts.map +0 -1
- package/dist/lib/sinks/index.js +0 -30
- package/dist/lib/sinks/index.js.map +0 -1
- package/dist/lib/sinks/partykit.d.ts +0 -14
- package/dist/lib/sinks/partykit.d.ts.map +0 -1
- package/dist/lib/sinks/partykit.js +0 -124
- package/dist/lib/sinks/partykit.js.map +0 -1
- package/dist/lib/sinks/stdout.d.ts +0 -6
- package/dist/lib/sinks/stdout.d.ts.map +0 -1
- package/dist/lib/sinks/stdout.js +0 -9
- package/dist/lib/sinks/stdout.js.map +0 -1
package/dist/lib/pdfquery.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* pdfquery Integration Wrapper
|
|
3
|
-
*
|
|
4
|
-
* Thin wrapper around existing pdfquery library - DO NOT reimplement
|
|
5
|
-
* Converts OkraPDF API job results to VirtualDoc format for jQuery-style queries
|
|
6
|
-
*/
|
|
7
|
-
import { type VirtualDoc, type QueryEngine, type QueryResult, type QueryConfig, type QueryResponse } from 'pdfquery';
|
|
8
|
-
import type { JobResults } from '../types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Build VirtualDoc from OkraPDF job results
|
|
11
|
-
*
|
|
12
|
-
* Converts API response format to pdfquery compiler input
|
|
13
|
-
*/
|
|
14
|
-
export declare function buildVirtualDocFromJob(jobResults: JobResults): VirtualDoc;
|
|
15
|
-
/**
|
|
16
|
-
* Create query engine from job results
|
|
17
|
-
*
|
|
18
|
-
* Convenience function that builds VirtualDoc and creates query engine
|
|
19
|
-
*/
|
|
20
|
-
export declare function createQueryEngineFromJob(jobResults: JobResults): QueryEngine;
|
|
21
|
-
/**
|
|
22
|
-
* Execute a query config against job results
|
|
23
|
-
*
|
|
24
|
-
* Uses pdfquery's executeQuery for config-based queries
|
|
25
|
-
*/
|
|
26
|
-
export declare function executeJobQuery(jobResults: JobResults, config: QueryConfig): QueryResponse;
|
|
27
|
-
/**
|
|
28
|
-
* Format query result as markdown
|
|
29
|
-
*
|
|
30
|
-
* Uses pdfquery's built-in .html() method which returns markdown-like HTML
|
|
31
|
-
*/
|
|
32
|
-
export declare function formatAsMarkdown(queryResult: QueryResult): string;
|
|
33
|
-
/**
|
|
34
|
-
* Format query result as JSON entities
|
|
35
|
-
*
|
|
36
|
-
* Uses pdfquery's built-in .toArray() method
|
|
37
|
-
*/
|
|
38
|
-
export declare function formatAsEntities(queryResult: QueryResult): any[];
|
|
39
|
-
/**
|
|
40
|
-
* Format query result with statistics
|
|
41
|
-
*/
|
|
42
|
-
export declare function formatWithStats(queryResult: QueryResult): {
|
|
43
|
-
entities: any[];
|
|
44
|
-
stats: {
|
|
45
|
-
total: number;
|
|
46
|
-
verified: number;
|
|
47
|
-
flagged: number;
|
|
48
|
-
pending: number;
|
|
49
|
-
score: number;
|
|
50
|
-
avgConfidence: number;
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Re-export pdfquery types and functions for convenience
|
|
55
|
-
*/
|
|
56
|
-
export { createQueryEngine, executeQuery, type QueryEngine, type QueryResult, type QueryConfig, type QueryResponse, type VirtualDoc, } from 'pdfquery';
|
|
57
|
-
//# sourceMappingURL=pdfquery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pdfquery.d.ts","sourceRoot":"","sources":["../../src/lib/pdfquery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAmCzE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAG5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,aAAa,CAG1F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,GAAG,EAAE,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG;IACzD,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAeA;AAED;;GAEG;AACH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,UAAU,CAAC"}
|
package/dist/lib/pdfquery.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* pdfquery Integration Wrapper
|
|
3
|
-
*
|
|
4
|
-
* Thin wrapper around existing pdfquery library - DO NOT reimplement
|
|
5
|
-
* Converts OkraPDF API job results to VirtualDoc format for jQuery-style queries
|
|
6
|
-
*/
|
|
7
|
-
import { DocCompiler, createQueryEngine, executeQuery, } from 'pdfquery';
|
|
8
|
-
/**
|
|
9
|
-
* Build VirtualDoc from OkraPDF job results
|
|
10
|
-
*
|
|
11
|
-
* Converts API response format to pdfquery compiler input
|
|
12
|
-
*/
|
|
13
|
-
export function buildVirtualDocFromJob(jobResults) {
|
|
14
|
-
const compiler = new DocCompiler({
|
|
15
|
-
documentId: jobResults.job_id,
|
|
16
|
-
fileName: jobResults.filename,
|
|
17
|
-
autoDetectTypes: true,
|
|
18
|
-
});
|
|
19
|
-
// Add tables
|
|
20
|
-
if (jobResults.tables && jobResults.tables.length > 0) {
|
|
21
|
-
const tables = jobResults.tables.map((table) => ({
|
|
22
|
-
id: table.id,
|
|
23
|
-
page_number: table.page_number,
|
|
24
|
-
markdown: table.content_markdown, // Note: field name is 'markdown' not 'content_markdown'
|
|
25
|
-
bbox: table.bbox ? {
|
|
26
|
-
xmin: table.bbox.xmin,
|
|
27
|
-
ymin: table.bbox.ymin,
|
|
28
|
-
xmax: table.bbox.xmax,
|
|
29
|
-
ymax: table.bbox.ymax,
|
|
30
|
-
} : { xmin: 0, ymin: 0, xmax: 1, ymax: 1 },
|
|
31
|
-
confidence: table.confidence ?? 0.9,
|
|
32
|
-
verification_status: 'pending',
|
|
33
|
-
verified_by: null,
|
|
34
|
-
verified_at: null,
|
|
35
|
-
}));
|
|
36
|
-
compiler.addTables(tables);
|
|
37
|
-
}
|
|
38
|
-
// Add pages (text content)
|
|
39
|
-
if (jobResults.pages && jobResults.pages.length > 0) {
|
|
40
|
-
// For now, we'll skip OCR blocks since we have tables
|
|
41
|
-
// Can add OCR block support later if needed
|
|
42
|
-
}
|
|
43
|
-
return compiler.compile();
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Create query engine from job results
|
|
47
|
-
*
|
|
48
|
-
* Convenience function that builds VirtualDoc and creates query engine
|
|
49
|
-
*/
|
|
50
|
-
export function createQueryEngineFromJob(jobResults) {
|
|
51
|
-
const doc = buildVirtualDocFromJob(jobResults);
|
|
52
|
-
return createQueryEngine(doc);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Execute a query config against job results
|
|
56
|
-
*
|
|
57
|
-
* Uses pdfquery's executeQuery for config-based queries
|
|
58
|
-
*/
|
|
59
|
-
export function executeJobQuery(jobResults, config) {
|
|
60
|
-
const doc = buildVirtualDocFromJob(jobResults);
|
|
61
|
-
return executeQuery(doc, config);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Format query result as markdown
|
|
65
|
-
*
|
|
66
|
-
* Uses pdfquery's built-in .html() method which returns markdown-like HTML
|
|
67
|
-
*/
|
|
68
|
-
export function formatAsMarkdown(queryResult) {
|
|
69
|
-
return queryResult.html();
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Format query result as JSON entities
|
|
73
|
-
*
|
|
74
|
-
* Uses pdfquery's built-in .toArray() method
|
|
75
|
-
*/
|
|
76
|
-
export function formatAsEntities(queryResult) {
|
|
77
|
-
return queryResult.toArray();
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Format query result with statistics
|
|
81
|
-
*/
|
|
82
|
-
export function formatWithStats(queryResult) {
|
|
83
|
-
const entities = queryResult.toArray();
|
|
84
|
-
const stats = queryResult.stats();
|
|
85
|
-
return {
|
|
86
|
-
entities,
|
|
87
|
-
stats: {
|
|
88
|
-
total: stats.total,
|
|
89
|
-
verified: stats.verified,
|
|
90
|
-
flagged: stats.flagged,
|
|
91
|
-
pending: stats.pending,
|
|
92
|
-
score: stats.score,
|
|
93
|
-
avgConfidence: stats.avgConfidence ?? 0,
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Re-export pdfquery types and functions for convenience
|
|
99
|
-
*/
|
|
100
|
-
export { createQueryEngine, executeQuery, } from 'pdfquery';
|
|
101
|
-
//# sourceMappingURL=pdfquery.js.map
|
package/dist/lib/pdfquery.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pdfquery.js","sourceRoot":"","sources":["../../src/lib/pdfquery.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/sinks/file.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/lib/sinks/file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEtD,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,MAAM,CAAc;gBAEhB,QAAQ,EAAE,MAAM;IAItB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
|
package/dist/lib/sinks/file.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { createWriteStream } from 'fs';
|
|
2
|
-
export class FileSink {
|
|
3
|
-
stream;
|
|
4
|
-
constructor(filePath) {
|
|
5
|
-
this.stream = createWriteStream(filePath, { flags: 'a' });
|
|
6
|
-
}
|
|
7
|
-
async emit(ops) {
|
|
8
|
-
for (const op of ops) {
|
|
9
|
-
await new Promise((resolve, reject) => {
|
|
10
|
-
this.stream.write(JSON.stringify(op) + '\n', (err) => {
|
|
11
|
-
if (err)
|
|
12
|
-
reject(err);
|
|
13
|
-
else
|
|
14
|
-
resolve();
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
async close() {
|
|
20
|
-
await new Promise((resolve, reject) => {
|
|
21
|
-
this.stream.end((err) => {
|
|
22
|
-
if (err)
|
|
23
|
-
reject(err);
|
|
24
|
-
else
|
|
25
|
-
resolve();
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/lib/sinks/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,IAAI,CAAC;AAGzD,MAAM,OAAO,QAAQ;IACX,MAAM,CAAc;IAE5B,YAAY,QAAgB;QAC1B,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAY;QACrB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACnD,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAA6B,EAAE,EAAE;gBAChD,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { DomOpSink } from '../dom-ops.js';
|
|
2
|
-
export { PartyKitSink } from './partykit.js';
|
|
3
|
-
export { StdoutSink } from './stdout.js';
|
|
4
|
-
export { FileSink } from './file.js';
|
|
5
|
-
export declare function parseSinkUrl(url: string): DomOpSink;
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sinks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA2BnD"}
|
package/dist/lib/sinks/index.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { PartyKitSink } from './partykit.js';
|
|
2
|
-
import { StdoutSink } from './stdout.js';
|
|
3
|
-
import { FileSink } from './file.js';
|
|
4
|
-
export { PartyKitSink } from './partykit.js';
|
|
5
|
-
export { StdoutSink } from './stdout.js';
|
|
6
|
-
export { FileSink } from './file.js';
|
|
7
|
-
const DEFAULT_PARTYKIT_HOST = 'document-tree-party.steventsao.partykit.dev';
|
|
8
|
-
export function parseSinkUrl(url) {
|
|
9
|
-
if (url === 'stdout' || url === '-') {
|
|
10
|
-
return new StdoutSink();
|
|
11
|
-
}
|
|
12
|
-
if (url.startsWith('partykit://')) {
|
|
13
|
-
const parsed = new URL(url);
|
|
14
|
-
const host = parsed.host || DEFAULT_PARTYKIT_HOST;
|
|
15
|
-
const roomId = parsed.pathname.replace(/^\//, '');
|
|
16
|
-
if (!roomId) {
|
|
17
|
-
throw new Error('PartyKit URL must include room ID: partykit://host/room-id');
|
|
18
|
-
}
|
|
19
|
-
return new PartyKitSink(host, roomId);
|
|
20
|
-
}
|
|
21
|
-
if (url.startsWith('file://')) {
|
|
22
|
-
const filePath = url.replace('file://', '');
|
|
23
|
-
return new FileSink(filePath);
|
|
24
|
-
}
|
|
25
|
-
if (url.endsWith('.ndjson') || url.endsWith('.jsonl')) {
|
|
26
|
-
return new FileSink(url);
|
|
27
|
-
}
|
|
28
|
-
throw new Error(`Unknown sink URL format: ${url}. Use partykit://, file://, stdout, or a .ndjson file path`);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/sinks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,qBAAqB,GAAG,6CAA6C,CAAC;AAE5E,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QACpC,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,qBAAqB,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,4DAA4D,CAAC,CAAC;AAC/G,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { DomOp, DomOpSink } from '../dom-ops.js';
|
|
2
|
-
export declare class PartyKitSink implements DomOpSink {
|
|
3
|
-
private host;
|
|
4
|
-
private roomId;
|
|
5
|
-
private nodePathCache;
|
|
6
|
-
constructor(host: string, roomId: string);
|
|
7
|
-
emit(ops: DomOp[]): Promise<void>;
|
|
8
|
-
close(): Promise<void>;
|
|
9
|
-
private toJdomPatches;
|
|
10
|
-
private resolvePath;
|
|
11
|
-
private toJdom;
|
|
12
|
-
private typeToTag;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=partykit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"partykit.d.ts","sourceRoot":"","sources":["../../../src/lib/sinks/partykit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAa,MAAM,eAAe,CAAC;AAEjE,qBAAa,YAAa,YAAW,SAAS;IAI1C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,aAAa,CAA0C;gBAGrD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;IAGlB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,aAAa;IAkErB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,SAAS;CAelB"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
export class PartyKitSink {
|
|
2
|
-
host;
|
|
3
|
-
roomId;
|
|
4
|
-
nodePathCache = new Map();
|
|
5
|
-
constructor(host, roomId) {
|
|
6
|
-
this.host = host;
|
|
7
|
-
this.roomId = roomId;
|
|
8
|
-
}
|
|
9
|
-
async emit(ops) {
|
|
10
|
-
const patches = ops.flatMap(op => this.toJdomPatches(op));
|
|
11
|
-
if (patches.length === 0)
|
|
12
|
-
return;
|
|
13
|
-
const url = `https://${this.host}/parties/document/${this.roomId}/tree`;
|
|
14
|
-
const response = await fetch(url, {
|
|
15
|
-
method: 'PATCH',
|
|
16
|
-
headers: { 'Content-Type': 'application/json' },
|
|
17
|
-
body: JSON.stringify({
|
|
18
|
-
patches,
|
|
19
|
-
reason: 'cli-extraction',
|
|
20
|
-
mutatedBy: 'cli',
|
|
21
|
-
mutatedByName: 'OkraPDF CLI'
|
|
22
|
-
})
|
|
23
|
-
});
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
const text = await response.text();
|
|
26
|
-
throw new Error(`PartyKit PATCH failed: ${response.status} ${text}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
async close() {
|
|
30
|
-
this.nodePathCache.clear();
|
|
31
|
-
}
|
|
32
|
-
toJdomPatches(op) {
|
|
33
|
-
switch (op.op) {
|
|
34
|
-
case 'ADD_NODE': {
|
|
35
|
-
const parentPath = this.resolvePath(op.parentId);
|
|
36
|
-
const childPath = [...parentPath, 'children', op.index ?? -1];
|
|
37
|
-
this.nodePathCache.set(op.node.id, [...parentPath, 'children', op.index ?? this.nodePathCache.size]);
|
|
38
|
-
return [{
|
|
39
|
-
op: 'add',
|
|
40
|
-
path: childPath,
|
|
41
|
-
value: this.toJdom(op.node),
|
|
42
|
-
}];
|
|
43
|
-
}
|
|
44
|
-
case 'REMOVE_NODE': {
|
|
45
|
-
const nodePath = this.resolvePath(op.nodeId);
|
|
46
|
-
this.nodePathCache.delete(op.nodeId);
|
|
47
|
-
return [{
|
|
48
|
-
op: 'remove',
|
|
49
|
-
path: nodePath,
|
|
50
|
-
}];
|
|
51
|
-
}
|
|
52
|
-
case 'UPDATE_NODE': {
|
|
53
|
-
const patches = [];
|
|
54
|
-
const nodePath = this.resolvePath(op.nodeId);
|
|
55
|
-
if (op.patch.text !== undefined) {
|
|
56
|
-
patches.push({
|
|
57
|
-
op: 'replace',
|
|
58
|
-
path: [...nodePath, 'textContent'],
|
|
59
|
-
value: op.patch.text,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
if (op.patch.attrs) {
|
|
63
|
-
for (const [key, value] of Object.entries(op.patch.attrs)) {
|
|
64
|
-
patches.push({
|
|
65
|
-
op: 'replace',
|
|
66
|
-
path: [...nodePath, 'attributes', key],
|
|
67
|
-
value,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return patches;
|
|
72
|
-
}
|
|
73
|
-
case 'SET_TEXT':
|
|
74
|
-
return [{
|
|
75
|
-
op: 'replace',
|
|
76
|
-
path: [...this.resolvePath(op.nodeId), 'textContent'],
|
|
77
|
-
value: op.text,
|
|
78
|
-
}];
|
|
79
|
-
case 'SET_ATTR':
|
|
80
|
-
return [{
|
|
81
|
-
op: 'replace',
|
|
82
|
-
path: [...this.resolvePath(op.nodeId), 'attributes', op.key],
|
|
83
|
-
value: op.value,
|
|
84
|
-
}];
|
|
85
|
-
default:
|
|
86
|
-
return [];
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
resolvePath(nodeId) {
|
|
90
|
-
if (!nodeId || nodeId === '')
|
|
91
|
-
return [];
|
|
92
|
-
const cached = this.nodePathCache.get(nodeId);
|
|
93
|
-
if (cached)
|
|
94
|
-
return cached;
|
|
95
|
-
return [nodeId];
|
|
96
|
-
}
|
|
97
|
-
toJdom(node) {
|
|
98
|
-
return {
|
|
99
|
-
id: node.id,
|
|
100
|
-
type: node.type,
|
|
101
|
-
tagName: this.typeToTag(node.type),
|
|
102
|
-
page: node.attrs?.page ?? node.attrs?.num ?? 0,
|
|
103
|
-
textContent: node.text ?? null,
|
|
104
|
-
attributes: node.attrs ?? {},
|
|
105
|
-
children: [],
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
typeToTag(type) {
|
|
109
|
-
const map = {
|
|
110
|
-
document: 'article',
|
|
111
|
-
page: 'section',
|
|
112
|
-
table: 'table',
|
|
113
|
-
figure: 'figure',
|
|
114
|
-
paragraph: 'p',
|
|
115
|
-
heading: 'h1',
|
|
116
|
-
footnote: 'aside',
|
|
117
|
-
list: 'ul',
|
|
118
|
-
'list-item': 'li',
|
|
119
|
-
'ocr-block': 'div',
|
|
120
|
-
};
|
|
121
|
-
return map[type] ?? 'div';
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=partykit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"partykit.js","sourceRoot":"","sources":["../../../src/lib/sinks/partykit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stdout.d.ts","sourceRoot":"","sources":["../../../src/lib/sinks/stdout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEtD,qBAAa,UAAW,YAAW,SAAS;IACpC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAC7B"}
|
package/dist/lib/sinks/stdout.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../../src/lib/sinks/stdout.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IACrB,KAAK,CAAC,IAAI,CAAC,GAAY;QACrB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChC"}
|