docling-serve-client 0.4.0 → 0.6.0
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 +466 -164
- package/dist/capabilities.d.ts +10 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/core/input.d.ts +1 -1
- package/dist/core/input.d.ts.map +1 -1
- package/dist/core/pdf.d.ts +2 -2
- package/dist/core/pdf.d.ts.map +1 -1
- package/dist/core/validate.d.ts +2 -2
- package/dist/core/validate.d.ts.map +1 -1
- package/dist/document.d.ts.map +1 -1
- package/dist/images.d.ts +6 -3
- package/dist/images.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +272 -78
- package/dist/index.js.map +12 -11
- package/dist/options.d.ts +37 -5
- package/dist/options.d.ts.map +1 -1
- package/dist/types.d.ts +169 -17
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/capabilities.ts +109 -0
- package/src/client.ts +254 -81
- package/src/core/http.ts +2 -4
- package/src/core/input.ts +1 -3
- package/src/core/pdf.ts +2 -3
- package/src/core/validate.ts +2 -3
- package/src/document.ts +7 -19
- package/src/images.ts +4 -6
- package/src/index.ts +9 -0
- package/src/options.ts +142 -27
- package/src/response.ts +2 -2
- package/src/types.ts +191 -30
package/dist/options.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CallOptions, ClientOptions, DoclingOptions, DocumentImageMode,
|
|
1
|
+
import type { CallOptions, ClientOptions, DoclingOptions, DocumentImageMode, JobRef, MarkdownJobOutput, Result } from './types.js';
|
|
2
2
|
/** Factory-only option keys; they fall back to the server default when omitted. */
|
|
3
3
|
type FactoryOnly = Exclude<keyof ClientOptions, keyof DoclingOptions>;
|
|
4
4
|
/** docling options with every per-call default filled in. */
|
|
@@ -11,9 +11,16 @@ export type ResolvedConfig = {
|
|
|
11
11
|
fetch: typeof fetch;
|
|
12
12
|
/** Time limit per request in ms; unset means no limit. */
|
|
13
13
|
timeoutMs?: number;
|
|
14
|
+
/** Delay between job helper status polls in ms; defaults to `DEFAULT_POLL_MS`. */
|
|
15
|
+
pollMs: number;
|
|
14
16
|
/** Factory defaults merged over `DEFAULT_OPTIONS`. */
|
|
15
17
|
defaults: ResolvedOptions;
|
|
16
18
|
};
|
|
19
|
+
/** Validated poll settings for job helpers. */
|
|
20
|
+
export type PollCall = {
|
|
21
|
+
pollMs: number;
|
|
22
|
+
signal?: AbortSignal;
|
|
23
|
+
};
|
|
17
24
|
/** Validated md call: server options, image handling and signal. */
|
|
18
25
|
export type MarkdownCall = {
|
|
19
26
|
options: ResolvedOptions;
|
|
@@ -36,18 +43,43 @@ export declare const DEFAULT_OPTIONS: Readonly<ResolvedOptions>;
|
|
|
36
43
|
* @throws `TypeError` on invalid configuration.
|
|
37
44
|
*/
|
|
38
45
|
export declare function resolveConfig(config: unknown): ResolvedConfig;
|
|
39
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Merges and validates md call options against factory defaults.
|
|
48
|
+
* @throws `TypeError` on invalid options.
|
|
49
|
+
*/
|
|
40
50
|
export declare function resolveMarkdownCall(defaults: Readonly<ResolvedOptions>, options: unknown): MarkdownCall;
|
|
41
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Merges and validates document call options against factory defaults.
|
|
53
|
+
* @throws `TypeError` on invalid options.
|
|
54
|
+
*/
|
|
42
55
|
export declare function resolveDocumentCall(defaults: Readonly<ResolvedOptions>, options: unknown): DocumentCall;
|
|
43
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Merges md call options and poll settings; `pollMs` defaults to factory `pollMs`.
|
|
58
|
+
* @throws `TypeError` on invalid options.
|
|
59
|
+
*/
|
|
60
|
+
export declare function resolveRunMarkdownCall(defaults: Readonly<ResolvedOptions>, defaultPollMs: number, options: unknown): MarkdownCall & PollCall;
|
|
61
|
+
/**
|
|
62
|
+
* Merges document call options and poll settings; `pollMs` defaults to factory `pollMs`.
|
|
63
|
+
* @throws `TypeError` on invalid options.
|
|
64
|
+
*/
|
|
65
|
+
export declare function resolveRunDocumentCall(defaults: Readonly<ResolvedOptions>, defaultPollMs: number, options: unknown): DocumentCall & PollCall;
|
|
66
|
+
/**
|
|
67
|
+
* Checks signal-only call options (`check`, `capabilities`).
|
|
68
|
+
* @throws `TypeError` on invalid options.
|
|
69
|
+
*/
|
|
44
70
|
export declare function resolveCheckOptions(options: unknown): CallOptions;
|
|
71
|
+
/**
|
|
72
|
+
* Checks `waitForJob` options; `pollMs` defaults to factory `pollMs`.
|
|
73
|
+
* @throws `TypeError` on invalid options.
|
|
74
|
+
*/
|
|
75
|
+
export declare function resolvePollOptions(defaultPollMs: number, options: unknown): PollCall;
|
|
45
76
|
/**
|
|
46
77
|
* **Checks a job object against the shape `submitMarkdown()` and `submitDocument()` return**.
|
|
47
78
|
*
|
|
48
79
|
* - never throws: a malformed job is `invalid_input`
|
|
80
|
+
* - `settings` and other extra keys are ignored and not returned
|
|
49
81
|
*/
|
|
50
|
-
export declare function validateJob(job: unknown): Result<
|
|
82
|
+
export declare function validateJob(job: unknown): Result<JobRef>;
|
|
51
83
|
/** Task id `check` accepts: word characters and `-` only, so it cannot leave the URL path segment. */
|
|
52
84
|
export declare function isJobId(value: unknown): value is string;
|
|
53
85
|
export {};
|
package/dist/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EAEb,cAAc,EACd,iBAAiB,EAGjB,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EAEb,cAAc,EACd,iBAAiB,EAGjB,MAAM,EAEN,iBAAiB,EAGjB,MAAM,EACT,MAAM,YAAY,CAAC;AAMpB,mFAAmF;AACnF,KAAK,WAAW,GAAG,OAAO,CAAC,MAAM,aAAa,EAAE,MAAM,cAAc,CAAC,CAAC;AAEtE,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAE1F,sCAAsC;AACtC,MAAM,MAAM,cAAc,GAAG;IACzB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,QAAQ,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,0FAA0F;AAC1F,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAkBF,wDAAwD;AACxD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,eAAe,CAUpD,CAAC;AA0GH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CA2B7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAEvG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAEvG;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACjB,YAAY,GAAG,QAAQ,CAMzB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACjB,YAAY,GAAG,QAAQ,CAMzB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAEjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,CAGpF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAmBxD;AAED,sGAAsG;AACtG,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEvD"}
|
package/dist/types.d.ts
CHANGED
|
@@ -88,12 +88,19 @@ export type ServerVersions = Record<string, string>;
|
|
|
88
88
|
* - anything else is `invalid_input`
|
|
89
89
|
*/
|
|
90
90
|
export type ConvertInput = Uint8Array;
|
|
91
|
-
/**
|
|
91
|
+
/** Deprecated: use `ConvertInput`; images are accepted as well. */
|
|
92
92
|
export type PdfInput = ConvertInput;
|
|
93
93
|
/** Supported conversion pipeline backend. */
|
|
94
94
|
export type Pipeline = 'standard' | 'vlm';
|
|
95
95
|
/** PDF text extraction backend used by docling. */
|
|
96
96
|
export type PdfBackend = 'docling_parse' | 'pypdfium2';
|
|
97
|
+
/**
|
|
98
|
+
* **OCR engine preset sent as `ocr_preset`**.
|
|
99
|
+
*
|
|
100
|
+
* - known engines autocomplete; any other non-empty preset id is accepted and sent as is
|
|
101
|
+
* - installed engines: `stages.ocr.presets` of `client.capabilities()`
|
|
102
|
+
*/
|
|
103
|
+
export type OcrEngine = 'auto' | 'rapidocr' | 'easyocr' | 'tesseract' | 'tesserocr' | 'ocrmac' | (string & {});
|
|
97
104
|
/** docling conversion options; set as factory defaults and/or per call. */
|
|
98
105
|
export type DoclingOptions = {
|
|
99
106
|
/** Nests headings by bookmarks, numbering, and font style; without it every heading has level 1. Default `true`. */
|
|
@@ -117,9 +124,12 @@ export type DoclingOptions = {
|
|
|
117
124
|
/**
|
|
118
125
|
* **OCRs whole PDF pages and drops their text layer**: for PDFs with broken text. Default `false`.
|
|
119
126
|
*
|
|
127
|
+
* - enables OCR even with `ocr: false` (docling skips full-page OCR when `do_ocr=false`)
|
|
120
128
|
* - ignored for image input: it has no text layer, and full-page OCR there merges words (`stepsand`)
|
|
121
129
|
*/
|
|
122
130
|
forceOcr?: boolean;
|
|
131
|
+
/** OCR engine preset (`ocr_preset`); an engine the server lacks fails the conversion. Default `'auto'`. */
|
|
132
|
+
ocrEngine?: OcrEngine;
|
|
123
133
|
};
|
|
124
134
|
/** docling options of the factory: every per-call option plus the factory-only ones, applied to every call. */
|
|
125
135
|
export type ClientOptions = DoclingOptions & {
|
|
@@ -135,6 +145,16 @@ export type CallOptions = {
|
|
|
135
145
|
/** Abort signal to cancel the HTTP request. */
|
|
136
146
|
signal?: AbortSignal;
|
|
137
147
|
};
|
|
148
|
+
/**
|
|
149
|
+
* **Options for job helpers (`runMarkdown`, `runDocument`, `waitForJob`)**.
|
|
150
|
+
*
|
|
151
|
+
* - `signal` covers entire call: submit, status polls, and waits
|
|
152
|
+
* - rejected by `convert*`, `submit*`, and `check`
|
|
153
|
+
*/
|
|
154
|
+
export type PollOptions = CallOptions & {
|
|
155
|
+
/** Delay between status polls in ms (integer `1..2147483647`). Default: factory `pollMs` (`10`). */
|
|
156
|
+
pollMs?: number;
|
|
157
|
+
};
|
|
138
158
|
/**
|
|
139
159
|
* **Images in the md**.
|
|
140
160
|
*
|
|
@@ -266,6 +286,50 @@ export type ConvertedDocument = {
|
|
|
266
286
|
/** Server versions that produced the output; `null` if the server omitted them. */
|
|
267
287
|
versions: ServerVersions | null;
|
|
268
288
|
};
|
|
289
|
+
/**
|
|
290
|
+
* **Conversion settings exactly as sent in the multipart request**.
|
|
291
|
+
*
|
|
292
|
+
* - every key is the camelCase name of a docling-serve form field (`ocrPreset` = `ocr_preset`)
|
|
293
|
+
* - `null`: field not sent (md-only fields of json output, unused presets, unset factory options)
|
|
294
|
+
* - `ocrLang`: empty means not sent, i.e. engine default
|
|
295
|
+
* - server-side configuration not covered by request fields (e.g. layout model) is not included
|
|
296
|
+
*/
|
|
297
|
+
export type DoclingSettings = {
|
|
298
|
+
fromFormats: 'pdf' | 'image';
|
|
299
|
+
toFormats: 'md' | 'json';
|
|
300
|
+
imageExportMode: 'embedded' | 'placeholder';
|
|
301
|
+
includeImages: boolean;
|
|
302
|
+
includePageImages: boolean;
|
|
303
|
+
imagesScale: number;
|
|
304
|
+
mdCompactTables: boolean | null;
|
|
305
|
+
mdPageBreakPlaceholder: string | null;
|
|
306
|
+
doOcr: boolean;
|
|
307
|
+
forceOcr: boolean;
|
|
308
|
+
ocrPreset: string;
|
|
309
|
+
ocrLang: string[];
|
|
310
|
+
pdfBackend: PdfBackend;
|
|
311
|
+
pipeline: Pipeline;
|
|
312
|
+
vlmPipelinePreset: string | null;
|
|
313
|
+
doTableStructure: boolean;
|
|
314
|
+
tableMode: 'accurate';
|
|
315
|
+
tableStructurePreset: string;
|
|
316
|
+
tableCellMatching: boolean;
|
|
317
|
+
doPdfHeadingHierarchy: boolean;
|
|
318
|
+
doFormulaEnrichment: boolean;
|
|
319
|
+
doCodeEnrichment: boolean;
|
|
320
|
+
codeFormulaPreset: string | null;
|
|
321
|
+
doChartExtraction: boolean;
|
|
322
|
+
chartExtractionPreset: string | null;
|
|
323
|
+
doPictureClassification: boolean;
|
|
324
|
+
doPictureDescription: boolean;
|
|
325
|
+
pageRange: [from: number, to: number] | null;
|
|
326
|
+
documentTimeout: number | null;
|
|
327
|
+
abortOnError: boolean;
|
|
328
|
+
};
|
|
329
|
+
/** Result of `convert*` and `run*` plus the settings sent with the conversion. */
|
|
330
|
+
export type WithSettings<T> = T & {
|
|
331
|
+
settings: DoclingSettings;
|
|
332
|
+
};
|
|
269
333
|
/** Image handling of a md job, applied when `check()` picks up the result. */
|
|
270
334
|
export type MarkdownJobOutput = {
|
|
271
335
|
images: 'extract';
|
|
@@ -279,15 +343,21 @@ export type MarkdownJob = {
|
|
|
279
343
|
/** Server-side task id. */
|
|
280
344
|
id: string;
|
|
281
345
|
output: MarkdownJobOutput;
|
|
346
|
+
/** Settings sent with the submission; `check()` neither needs nor returns them. */
|
|
347
|
+
settings: DoclingSettings;
|
|
282
348
|
};
|
|
283
349
|
/** Handle of a document conversion, returned by `submitDocument()`; plain JSON, safe to store. */
|
|
284
350
|
export type DocumentJob = {
|
|
285
351
|
kind: 'document';
|
|
286
352
|
/** Server-side task id. */
|
|
287
353
|
id: string;
|
|
354
|
+
/** Settings sent with the submission; `check()` neither needs nor returns them. */
|
|
355
|
+
settings: DoclingSettings;
|
|
288
356
|
};
|
|
289
|
-
/** Any job handle
|
|
357
|
+
/** Any job handle returned by `submit*()`. */
|
|
290
358
|
export type Job = MarkdownJob | DocumentJob;
|
|
359
|
+
/** Job handle accepted by `check()`; `settings` may be dropped when storing the job. */
|
|
360
|
+
export type JobRef = Omit<MarkdownJob, 'settings'> | Omit<DocumentJob, 'settings'>;
|
|
291
361
|
/** State of an async job; `done` carries the conversion result. */
|
|
292
362
|
export type JobState<T> =
|
|
293
363
|
/** Pending in server queue; `position` is 1-based when reported by server. */
|
|
@@ -303,43 +373,125 @@ export type JobState<T> =
|
|
|
303
373
|
| ({
|
|
304
374
|
status: 'done';
|
|
305
375
|
} & T);
|
|
376
|
+
/** Model or engine preset a pipeline stage offers; `id` is the value of the stage's form field. */
|
|
377
|
+
export type CapabilityPreset = {
|
|
378
|
+
id: string;
|
|
379
|
+
name: string;
|
|
380
|
+
description: string | null;
|
|
381
|
+
/** Origin, e.g. `'docling'` or `'default'` (server default alias). */
|
|
382
|
+
source: string;
|
|
383
|
+
};
|
|
384
|
+
/** Pipeline stage (OCR, table structure, VLM, ...) with its form field and installed presets. */
|
|
385
|
+
export type CapabilityStage = {
|
|
386
|
+
/** Form field selecting the preset, e.g. `'ocr_preset'`. */
|
|
387
|
+
option: string;
|
|
388
|
+
customConfigOption: string | null;
|
|
389
|
+
/** Preset used when the field is not sent. */
|
|
390
|
+
default: string;
|
|
391
|
+
presets: CapabilityPreset[];
|
|
392
|
+
};
|
|
393
|
+
/** Server limits; `null` means unlimited or not reported. */
|
|
394
|
+
export type CapabilityLimits = {
|
|
395
|
+
maxDocumentTimeout: number | null;
|
|
396
|
+
maxImagesScale: number | null;
|
|
397
|
+
maxSourcesPerRequest: number | null;
|
|
398
|
+
maxNumPages: number | null;
|
|
399
|
+
maxFileSize: number | null;
|
|
400
|
+
};
|
|
401
|
+
/**
|
|
402
|
+
* **What the docling-serve instance offers (`GET /v1/capabilities`)**.
|
|
403
|
+
*
|
|
404
|
+
* - snake_case keys of the server payload converted to camelCase; `stages` keys stay as sent (e.g. `table_structure`)
|
|
405
|
+
* - missing or mistyped fields become empty lists, `''`, `null` or `false`
|
|
406
|
+
* - diagnostics only: conversions never query it
|
|
407
|
+
*/
|
|
408
|
+
export type ServerCapabilities = {
|
|
409
|
+
versions: ServerVersions;
|
|
410
|
+
stages: Record<string, CapabilityStage>;
|
|
411
|
+
sources: string[];
|
|
412
|
+
targets: {
|
|
413
|
+
allowed: string[];
|
|
414
|
+
default: string;
|
|
415
|
+
};
|
|
416
|
+
outputFormats: string[];
|
|
417
|
+
imageExportModes: string[];
|
|
418
|
+
limits: CapabilityLimits;
|
|
419
|
+
features: {
|
|
420
|
+
apiKeyRequired: boolean;
|
|
421
|
+
artifactStorage: boolean;
|
|
422
|
+
websocket: boolean;
|
|
423
|
+
};
|
|
424
|
+
};
|
|
306
425
|
/** Configuration passed to `createDoclingClient`. */
|
|
307
426
|
export type DoclingConfig = {
|
|
308
|
-
/** docling-serve base URL, e.g. `'http://127.0.0.1:5001'`; trailing `/`
|
|
427
|
+
/** docling-serve base URL, e.g. `'http://127.0.0.1:5001'`; trailing `/` removed; no query, fragment, or credentials. */
|
|
309
428
|
baseUrl: string;
|
|
310
429
|
/** Sent as `X-Api-Key` header. */
|
|
311
430
|
apiKey?: string;
|
|
312
|
-
/**
|
|
431
|
+
/** Time limit per request in ms (integer `1..2147483647`, excludes `/version`); resolves to `aborted` on expiry. */
|
|
313
432
|
timeoutMs?: number;
|
|
433
|
+
/** Delay between job helper status polls in ms (integer `1..2147483647`). Default `10`. */
|
|
434
|
+
pollMs?: number;
|
|
314
435
|
/** Custom fetch implementation for mocking or custom dispatchers. */
|
|
315
436
|
fetch?: typeof fetch;
|
|
316
437
|
/** Defaults for every call; call options override them key by key, except the factory-only ones. */
|
|
317
438
|
options?: ClientOptions;
|
|
318
439
|
};
|
|
319
440
|
/**
|
|
320
|
-
* **docling-serve client
|
|
441
|
+
* **docling-serve client**: every call returns a Promise.
|
|
321
442
|
*
|
|
322
|
-
* - `convert
|
|
323
|
-
*
|
|
443
|
+
* - single request (`convert*`): one HTTP request to sync endpoint; answers on `DOCLING_SERVE_SYNC_POLL_INTERVAL`
|
|
444
|
+
* ticks (default 2 s) and returns 504 after `DOCLING_SERVE_MAX_SYNC_WAIT`
|
|
445
|
+
* - job (`submit*` + `check`): async endpoints; caller stores job and polls
|
|
446
|
+
* - job helper (`run*`, `waitForJob`): submits or takes a job and polls every `pollMs` until done
|
|
324
447
|
*/
|
|
325
448
|
export type DoclingClient = {
|
|
326
449
|
/** PDF or image to docling's md; images as placeholders, removed or extracted. */
|
|
327
|
-
convertMarkdown(input: ConvertInput, options?: MarkdownOptions): Promise<Result<ConvertedMarkdown
|
|
450
|
+
convertMarkdown(input: ConvertInput, options?: MarkdownOptions): Promise<Result<WithSettings<ConvertedMarkdown>>>;
|
|
328
451
|
/** PDF or image to docling's DoclingDocument. */
|
|
329
|
-
convertDocument(input: ConvertInput, options?: DocumentOptions): Promise<Result<ConvertedDocument
|
|
330
|
-
/** Starts an async md conversion. */
|
|
452
|
+
convertDocument(input: ConvertInput, options?: DocumentOptions): Promise<Result<WithSettings<ConvertedDocument>>>;
|
|
453
|
+
/** Starts an async md conversion; the job carries the sent settings. */
|
|
331
454
|
submitMarkdown(input: ConvertInput, options?: MarkdownOptions): Promise<Result<MarkdownJob>>;
|
|
332
|
-
/** Starts an async document conversion. */
|
|
455
|
+
/** Starts an async document conversion; the job carries the sent settings. */
|
|
333
456
|
submitDocument(input: ConvertInput, options?: DocumentOptions): Promise<Result<DocumentJob>>;
|
|
334
457
|
/**
|
|
335
458
|
* **Polls a job; fetches its result once done**.
|
|
336
459
|
*
|
|
337
|
-
* - docling-serve deletes
|
|
338
|
-
* fetch: a `check` whose result download failed can be repeated within that
|
|
339
|
-
* `not_found
|
|
460
|
+
* - docling-serve deletes the task `DOCLING_SERVE_RESULT_REMOVAL_DELAY` seconds (default 300) after first
|
|
461
|
+
* result fetch: a `check` whose result download failed can be repeated within that window, later returning
|
|
462
|
+
* `not_found` (`Unknown job id`); persist `done` data, or set `DOCLING_SERVE_SINGLE_USE_RESULTS=false`
|
|
463
|
+
* - `done` carries no settings (stored on the job)
|
|
464
|
+
*/
|
|
465
|
+
check(job: Omit<MarkdownJob, 'settings'>, options?: CallOptions): Promise<Result<JobState<ConvertedMarkdown>>>;
|
|
466
|
+
check(job: Omit<DocumentJob, 'settings'>, options?: CallOptions): Promise<Result<JobState<ConvertedDocument>>>;
|
|
467
|
+
check(job: JobRef, options?: CallOptions): Promise<Result<JobState<ConvertedMarkdown | ConvertedDocument>>>;
|
|
468
|
+
/**
|
|
469
|
+
* **Submits an md job and polls every `pollMs` until done**: same result as `convertMarkdown`.
|
|
470
|
+
*
|
|
471
|
+
* - `signal` covers submit, status polls, and waits; `timeoutMs` limits each HTTP request
|
|
472
|
+
* - first error ends call; job never returned (use `submitMarkdown` + `waitForJob` to keep it)
|
|
473
|
+
* - aborting does not cancel the server-side job
|
|
474
|
+
*/
|
|
475
|
+
runMarkdown(input: ConvertInput, options?: MarkdownOptions & PollOptions): Promise<Result<WithSettings<ConvertedMarkdown>>>;
|
|
476
|
+
/**
|
|
477
|
+
* **Submits a document job and polls every `pollMs` until done**: same result as `convertDocument`.
|
|
478
|
+
*
|
|
479
|
+
* - `signal` covers submit, status polls, and waits; `timeoutMs` limits each HTTP request
|
|
480
|
+
* - first error ends call; job never returned (use `submitDocument` + `waitForJob` to keep it)
|
|
481
|
+
* - aborting does not cancel the server-side job
|
|
482
|
+
*/
|
|
483
|
+
runDocument(input: ConvertInput, options?: DocumentOptions & PollOptions): Promise<Result<WithSettings<ConvertedDocument>>>;
|
|
484
|
+
/**
|
|
485
|
+
* **Polls an existing job every `pollMs` until done**.
|
|
486
|
+
*
|
|
487
|
+
* - first status poll runs immediately; already-finished jobs cost one `check`
|
|
488
|
+
* - resolves to `check`'s `done` data without `status`; first error ends call
|
|
489
|
+
* - repeatable after a failed result download within `DOCLING_SERVE_RESULT_REMOVAL_DELAY` (default 300 s)
|
|
340
490
|
*/
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
491
|
+
waitForJob(job: Omit<MarkdownJob, 'settings'>, options?: PollOptions): Promise<Result<ConvertedMarkdown>>;
|
|
492
|
+
waitForJob(job: Omit<DocumentJob, 'settings'>, options?: PollOptions): Promise<Result<ConvertedDocument>>;
|
|
493
|
+
waitForJob(job: JobRef, options?: PollOptions): Promise<Result<ConvertedMarkdown | ConvertedDocument>>;
|
|
494
|
+
/** Installed presets, limits and features of the server; on demand only, never used by conversions. */
|
|
495
|
+
capabilities(options?: CallOptions): Promise<Result<ServerCapabilities>>;
|
|
344
496
|
};
|
|
345
497
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docling-serve-client",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Typed docling-serve client: PDF to docling Markdown or DoclingDocument JSON,
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Typed docling-serve client: PDF to docling Markdown or DoclingDocument JSON, as single request, job or polling job helper. In-memory, zero-dependency, never throws.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pdf",
|
|
7
7
|
"markdown",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
69
|
-
"@biomejs/biome": "2.5.
|
|
70
|
-
"@types/bun": "^1.4.
|
|
71
|
-
"@types/node": "^22.
|
|
69
|
+
"@biomejs/biome": "2.5.15",
|
|
70
|
+
"@types/bun": "^1.4.3",
|
|
71
|
+
"@types/node": "^22.20.5",
|
|
72
72
|
"bun-test-runner": "latest",
|
|
73
73
|
"smartin": "latest",
|
|
74
74
|
"typescript": "^7.0.2"
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// Copyright 2026 Martin Winkler
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { ERR, fail, ok } from './core/result.js';
|
|
5
|
+
import { isPlainObject } from './core/validate.js';
|
|
6
|
+
import type { CapabilityLimits, CapabilityPreset, CapabilityStage, Result, ServerCapabilities } from './types.js';
|
|
7
|
+
|
|
8
|
+
// -------------------------------------------------------------------
|
|
9
|
+
// --- 1. Types
|
|
10
|
+
// -------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
/** Loosely read JSON object; every field is checked before use. */
|
|
13
|
+
type JsonObject = Record<string, unknown>;
|
|
14
|
+
|
|
15
|
+
// -------------------------------------------------------------------
|
|
16
|
+
// --- 2. Exported Functions
|
|
17
|
+
// -------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* **Maps the `GET /v1/capabilities` payload to camelCase `ServerCapabilities`**.
|
|
21
|
+
*
|
|
22
|
+
* - lenient per field: missing or mistyped values become `[]`, `''`, `null` or `false`, so new server fields or
|
|
23
|
+
* removed ones never fail the call
|
|
24
|
+
* - non-object body: `invalid_response`
|
|
25
|
+
*/
|
|
26
|
+
export function readCapabilities(body: unknown): Result<ServerCapabilities> {
|
|
27
|
+
if (!isPlainObject(body)) {
|
|
28
|
+
return fail(ERR.INVALID_RESPONSE('Capabilities response is not a JSON object'));
|
|
29
|
+
}
|
|
30
|
+
const targets = objectOf(body.targets);
|
|
31
|
+
const features = objectOf(body.features);
|
|
32
|
+
return ok({
|
|
33
|
+
versions: Object.fromEntries(
|
|
34
|
+
Object.entries(objectOf(body.versions)).filter(
|
|
35
|
+
(entry): entry is [string, string] => typeof entry[1] === 'string',
|
|
36
|
+
),
|
|
37
|
+
),
|
|
38
|
+
stages: Object.fromEntries(
|
|
39
|
+
Object.entries(objectOf(body.stages)).map(([name, stage]) => [name, readStage(objectOf(stage))]),
|
|
40
|
+
),
|
|
41
|
+
sources: stringsOf(body.sources),
|
|
42
|
+
targets: { allowed: stringsOf(targets.allowed), default: stringOf(targets.default) },
|
|
43
|
+
outputFormats: stringsOf(body.output_formats),
|
|
44
|
+
imageExportModes: stringsOf(body.image_export_modes),
|
|
45
|
+
limits: readLimits(objectOf(body.limits)),
|
|
46
|
+
features: {
|
|
47
|
+
apiKeyRequired: features.api_key_required === true,
|
|
48
|
+
artifactStorage: features.artifact_storage === true,
|
|
49
|
+
websocket: features.websocket === true,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// -------------------------------------------------------------------
|
|
55
|
+
// --- 3. Private Functions
|
|
56
|
+
// -------------------------------------------------------------------
|
|
57
|
+
|
|
58
|
+
/** Pipeline stage; presets without a string `id` are dropped. */
|
|
59
|
+
function readStage(stage: JsonObject): CapabilityStage {
|
|
60
|
+
const presets: CapabilityPreset[] = [];
|
|
61
|
+
for (const item of Array.isArray(stage.presets) ? stage.presets : []) {
|
|
62
|
+
const preset = objectOf(item);
|
|
63
|
+
if (typeof preset.id === 'string') {
|
|
64
|
+
presets.push({
|
|
65
|
+
id: preset.id,
|
|
66
|
+
name: stringOf(preset.name),
|
|
67
|
+
description: typeof preset.description === 'string' ? preset.description : null,
|
|
68
|
+
source: stringOf(preset.source),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
option: stringOf(stage.option),
|
|
74
|
+
customConfigOption: typeof stage.custom_config_option === 'string' ? stage.custom_config_option : null,
|
|
75
|
+
default: stringOf(stage.default),
|
|
76
|
+
presets,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/** Server limits; non-numbers become `null`. */
|
|
81
|
+
function readLimits(limits: JsonObject): CapabilityLimits {
|
|
82
|
+
return {
|
|
83
|
+
maxDocumentTimeout: numberOf(limits.max_document_timeout),
|
|
84
|
+
maxImagesScale: numberOf(limits.max_images_scale),
|
|
85
|
+
maxSourcesPerRequest: numberOf(limits.max_sources_per_request),
|
|
86
|
+
maxNumPages: numberOf(limits.max_num_pages),
|
|
87
|
+
maxFileSize: numberOf(limits.max_file_size),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** Plain object, or `{}` for anything else. */
|
|
92
|
+
function objectOf(value: unknown): JsonObject {
|
|
93
|
+
return isPlainObject(value) ? value : {};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** String entries of an array; `[]` for a non-array. */
|
|
97
|
+
function stringsOf(value: unknown): string[] {
|
|
98
|
+
return Array.isArray(value) ? value.filter((item): item is string => typeof item === 'string') : [];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** String, or `''` for anything else. */
|
|
102
|
+
function stringOf(value: unknown): string {
|
|
103
|
+
return typeof value === 'string' ? value : '';
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/** Finite number, or `null` for anything else. */
|
|
107
|
+
function numberOf(value: unknown): number | null {
|
|
108
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
109
|
+
}
|