docling-serve-client 0.5.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/dist/options.d.ts CHANGED
@@ -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;
@@ -37,20 +44,35 @@ export declare const DEFAULT_OPTIONS: Readonly<ResolvedOptions>;
37
44
  */
38
45
  export declare function resolveConfig(config: unknown): ResolvedConfig;
39
46
  /**
40
- * Validates md call options over factory defaults.
47
+ * Merges and validates md call options against factory defaults.
41
48
  * @throws `TypeError` on invalid options.
42
49
  */
43
50
  export declare function resolveMarkdownCall(defaults: Readonly<ResolvedOptions>, options: unknown): MarkdownCall;
44
51
  /**
45
- * Validates document call options over factory defaults.
52
+ * Merges and validates document call options against factory defaults.
46
53
  * @throws `TypeError` on invalid options.
47
54
  */
48
55
  export declare function resolveDocumentCall(defaults: Readonly<ResolvedOptions>, options: unknown): DocumentCall;
49
56
  /**
50
- * Validates signal-only call options (`check`, `capabilities`).
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`).
51
68
  * @throws `TypeError` on invalid options.
52
69
  */
53
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;
54
76
  /**
55
77
  * **Checks a job object against the shape `submitMarkdown()` and `submitDocument()` return**.
56
78
  *
@@ -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,MAAM,EAEN,iBAAiB,EAEjB,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,sDAAsD;IACtD,QAAQ,EAAE,eAAe,CAAC;CAC7B,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;AAkFH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAmB7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CASvG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAQvG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAEjE;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"}
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,10 +88,7 @@ export type ServerVersions = Record<string, string>;
88
88
  * - anything else is `invalid_input`
89
89
  */
90
90
  export type ConvertInput = Uint8Array;
91
- /**
92
- * Use `ConvertInput`; images are accepted as well.
93
- * @deprecated
94
- */
91
+ /** Deprecated: use `ConvertInput`; images are accepted as well. */
95
92
  export type PdfInput = ConvertInput;
96
93
  /** Supported conversion pipeline backend. */
97
94
  export type Pipeline = 'standard' | 'vlm';
@@ -127,6 +124,7 @@ export type DoclingOptions = {
127
124
  /**
128
125
  * **OCRs whole PDF pages and drops their text layer**: for PDFs with broken text. Default `false`.
129
126
  *
127
+ * - enables OCR even with `ocr: false` (docling skips full-page OCR when `do_ocr=false`)
130
128
  * - ignored for image input: it has no text layer, and full-page OCR there merges words (`stepsand`)
131
129
  */
132
130
  forceOcr?: boolean;
@@ -147,6 +145,16 @@ export type CallOptions = {
147
145
  /** Abort signal to cancel the HTTP request. */
148
146
  signal?: AbortSignal;
149
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
+ };
150
158
  /**
151
159
  * **Images in the md**.
152
160
  *
@@ -318,7 +326,7 @@ export type DoclingSettings = {
318
326
  documentTimeout: number | null;
319
327
  abortOnError: boolean;
320
328
  };
321
- /** Sync conversion result plus the settings sent with its request. */
329
+ /** Result of `convert*` and `run*` plus the settings sent with the conversion. */
322
330
  export type WithSettings<T> = T & {
323
331
  settings: DoclingSettings;
324
332
  };
@@ -416,22 +424,26 @@ export type ServerCapabilities = {
416
424
  };
417
425
  /** Configuration passed to `createDoclingClient`. */
418
426
  export type DoclingConfig = {
419
- /** docling-serve base URL, e.g. `'http://127.0.0.1:5001'`; trailing `/` are removed. */
427
+ /** docling-serve base URL, e.g. `'http://127.0.0.1:5001'`; trailing `/` removed; no query, fragment, or credentials. */
420
428
  baseUrl: string;
421
429
  /** Sent as `X-Api-Key` header. */
422
430
  apiKey?: string;
423
- /** Limit per request in ms (not `/version`); on expiry the call resolves with `aborted`. */
431
+ /** Time limit per request in ms (integer `1..2147483647`, excludes `/version`); resolves to `aborted` on expiry. */
424
432
  timeoutMs?: number;
433
+ /** Delay between job helper status polls in ms (integer `1..2147483647`). Default `10`. */
434
+ pollMs?: number;
425
435
  /** Custom fetch implementation for mocking or custom dispatchers. */
426
436
  fetch?: typeof fetch;
427
437
  /** Defaults for every call; call options override them key by key, except the factory-only ones. */
428
438
  options?: ClientOptions;
429
439
  };
430
440
  /**
431
- * **docling-serve client**.
441
+ * **docling-serve client**: every call returns a Promise.
432
442
  *
433
- * - `convert*`: one synchronous request
434
- * - `submit*` + `check`: async job; the caller stores the job and polls
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
435
447
  */
436
448
  export type DoclingClient = {
437
449
  /** PDF or image to docling's md; images as placeholders, removed or extracted. */
@@ -445,14 +457,40 @@ export type DoclingClient = {
445
457
  /**
446
458
  * **Polls a job; fetches its result once done**.
447
459
  *
448
- * - docling-serve deletes a result `DOCLING_SERVE_RESULT_REMOVAL_DELAY` seconds (default 300) after its first
449
- * fetch: a `check` whose result download failed can be repeated within that time, later it returns
450
- * `not_found`; persist `done` data, or start docling-serve with `DOCLING_SERVE_SINGLE_USE_RESULTS=false`
451
- * - `done` carries no settings: they are on the job
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)
452
464
  */
453
465
  check(job: Omit<MarkdownJob, 'settings'>, options?: CallOptions): Promise<Result<JobState<ConvertedMarkdown>>>;
454
466
  check(job: Omit<DocumentJob, 'settings'>, options?: CallOptions): Promise<Result<JobState<ConvertedDocument>>>;
455
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)
490
+ */
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>>;
456
494
  /** Installed presets, limits and features of the server; on demand only, never used by conversions. */
457
495
  capabilities(options?: CallOptions): Promise<Result<ServerCapabilities>>;
458
496
  };
@@ -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.5.0",
4
- "description": "Typed docling-serve client: PDF to docling Markdown or DoclingDocument JSON, sync and async. In-memory, zero-dependency, never throws.",
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",
@@ -52,7 +52,7 @@ export function readCapabilities(body: unknown): Result<ServerCapabilities> {
52
52
  }
53
53
 
54
54
  // -------------------------------------------------------------------
55
- // --- 3. Internal Functions
55
+ // --- 3. Private Functions
56
56
  // -------------------------------------------------------------------
57
57
 
58
58
  /** Pipeline stage; presets without a string `id` are dropped. */
package/src/client.ts CHANGED
@@ -8,12 +8,18 @@ import { findTruncatedXref } from './core/pdf.js';
8
8
  import { ERR, fail, ok } from './core/result.js';
9
9
  import { PAGE_IMAGE_SCALE } from './images.js';
10
10
  import {
11
+ type DocumentCall,
11
12
  isJobId,
13
+ type MarkdownCall,
14
+ type PollCall,
12
15
  type ResolvedOptions,
13
16
  resolveCheckOptions,
14
17
  resolveConfig,
15
18
  resolveDocumentCall,
16
19
  resolveMarkdownCall,
20
+ resolvePollOptions,
21
+ resolveRunDocumentCall,
22
+ resolveRunMarkdownCall,
17
23
  validateJob,
18
24
  } from './options.js';
19
25
  import { type DoclingFailureInfo, readDocument, readFailure, readMarkdown, readText } from './response.js';
@@ -108,13 +114,14 @@ const MAX_SHOWN_ID_LENGTH = 100;
108
114
  /**
109
115
  * **docling-serve client factory**.
110
116
  *
111
- * - validates configuration once; its only state is the cached server versions
112
- * - returned functions resolve to `Result`; invalid options reject with a `TypeError` before any request
117
+ * - validates configuration once; its only state is cached server versions
118
+ * - returned functions resolve to `Result`; invalid options reject with `TypeError` before any request
113
119
  * - `timeoutMs` limits every request except `/version`, which has its own limit
120
+ * - `pollMs` sets default delay between job helper status polls, overridable per call
114
121
  * @throws `TypeError` on invalid configuration.
115
122
  */
116
123
  export function createDoclingClient(config: DoclingConfig): DoclingClient {
117
- const { baseUrl, apiKey, fetch: fetchFn, timeoutMs, defaults } = resolveConfig(config);
124
+ const { baseUrl, apiKey, fetch: fetchFn, timeoutMs, pollMs, defaults } = resolveConfig(config);
118
125
  const headers: Record<string, string> = apiKey === undefined ? {} : { 'X-Api-Key': apiKey };
119
126
  /** Pending or resolved `/version` answer shared by all calls of this client. */
120
127
  let versionsCache: Promise<ServerVersions | null> | undefined;
@@ -125,6 +132,9 @@ export function createDoclingClient(config: DoclingConfig): DoclingClient {
125
132
  submitMarkdown,
126
133
  submitDocument,
127
134
  check: check as DoclingClient['check'],
135
+ runMarkdown,
136
+ runDocument,
137
+ waitForJob: waitForJob as DoclingClient['waitForJob'],
128
138
  capabilities,
129
139
  };
130
140
 
@@ -165,6 +175,52 @@ export function createDoclingClient(config: DoclingConfig): DoclingClient {
165
175
  /** Starts an async md conversion; the job carries the image handling for `check` and the sent settings. */
166
176
  async function submitMarkdown(input: ConvertInput, options?: unknown): Promise<Result<MarkdownJob>> {
167
177
  const call = resolveMarkdownCall(defaults, options);
178
+ return await startMarkdownJob(input, call);
179
+ }
180
+
181
+ /** Starts an async document conversion; page images need no job field, `check` moves any it finds. */
182
+ async function submitDocument(input: ConvertInput, options?: unknown): Promise<Result<DocumentJob>> {
183
+ const call = resolveDocumentCall(defaults, options);
184
+ return await startDocumentJob(input, call);
185
+ }
186
+
187
+ /** Submits an md job and polls it until done; resolves like `convertMarkdown`, with the job's settings. */
188
+ async function runMarkdown(
189
+ input: ConvertInput,
190
+ options?: unknown,
191
+ ): Promise<Result<WithSettings<ConvertedMarkdown>>> {
192
+ const call = resolveRunMarkdownCall(defaults, pollMs, options);
193
+ const job = await startMarkdownJob(input, call);
194
+ if (!job.ok) {
195
+ return job;
196
+ }
197
+ const done = await pollUntilDone<ConvertedMarkdown>(job.data, call);
198
+ return done.ok ? ok({ ...done.data, settings: job.data.settings }) : done;
199
+ }
200
+
201
+ /** Submits a document job and polls it until done; resolves like `convertDocument`, with the job's settings. */
202
+ async function runDocument(
203
+ input: ConvertInput,
204
+ options?: unknown,
205
+ ): Promise<Result<WithSettings<ConvertedDocument>>> {
206
+ const call = resolveRunDocumentCall(defaults, pollMs, options);
207
+ const job = await startDocumentJob(input, call);
208
+ if (!job.ok) {
209
+ return job;
210
+ }
211
+ const done = await pollUntilDone<ConvertedDocument>(job.data, call);
212
+ return done.ok ? ok({ ...done.data, settings: job.data.settings }) : done;
213
+ }
214
+
215
+ /** Polls an existing job until done; the job is validated and copied once, so later changes to it have no effect. */
216
+ async function waitForJob(job: JobRef, options?: unknown): Promise<Result<ConvertedMarkdown | ConvertedDocument>> {
217
+ const call = resolvePollOptions(pollMs, options);
218
+ const valid = validateJob(job);
219
+ return valid.ok ? pollUntilDone(valid.data, call) : valid;
220
+ }
221
+
222
+ /** Posts an md job for a validated call. */
223
+ async function startMarkdownJob(input: ConvertInput, call: MarkdownCall): Promise<Result<MarkdownJob>> {
168
224
  const fields: FormatFields = { format: 'md', embedImages: call.output.images === 'extract', pageImages: false };
169
225
  const task = await submit(input, call.options, fields, call.signal);
170
226
  return task.ok
@@ -172,9 +228,8 @@ export function createDoclingClient(config: DoclingConfig): DoclingClient {
172
228
  : task;
173
229
  }
174
230
 
175
- /** Starts an async document conversion; page images need no job field, `check` moves any it finds. */
176
- async function submitDocument(input: ConvertInput, options?: unknown): Promise<Result<DocumentJob>> {
177
- const call = resolveDocumentCall(defaults, options);
231
+ /** Posts a document job for a validated call. */
232
+ async function startDocumentJob(input: ConvertInput, call: DocumentCall): Promise<Result<DocumentJob>> {
178
233
  const fields: FormatFields = {
179
234
  format: 'json',
180
235
  embedImages: call.images === 'embedded',
@@ -185,22 +240,51 @@ export function createDoclingClient(config: DoclingConfig): DoclingClient {
185
240
  }
186
241
 
187
242
  /**
188
- * **Polls a job and fetches its result when done**.
243
+ * **Polls a job until done**: waits `pollMs` after each `queued` or `running` status.
189
244
  *
190
- * - unknown job id: `not_found` with `Unknown job id`
191
- * - result fetched more than `DOCLING_SERVE_RESULT_REMOVAL_DELAY` (default 300 s) ago or expired: `not_found` with
192
- * `Result already fetched or expired`
245
+ * - `job` must be validated: it is polled as is, without a new check per poll
246
+ * - first poll runs immediately; at most one request in flight
247
+ * - resolves to `done` result without `status`, or first error unchanged
248
+ * - abort during wait resolves to `aborted` immediately; abort during request returns request error
193
249
  */
250
+ async function pollUntilDone<T>(job: JobRef, { pollMs: waitMs, signal }: PollCall): Promise<Result<T>> {
251
+ for (;;) {
252
+ const state = await fetchJobState(job, signal);
253
+ if (!state.ok) {
254
+ return state;
255
+ }
256
+ if (state.data.status === 'done') {
257
+ const { status: _done, ...result } = state.data;
258
+ return ok(result as T);
259
+ }
260
+ if (!(await sleep(waitMs, signal))) {
261
+ return fail(ERR.ABORTED(`Aborted while waiting for job ${job.id}`));
262
+ }
263
+ }
264
+ }
265
+
266
+ /** Polls a job and fetches its result when done; a malformed job is `invalid_input` without a request. */
194
267
  async function check(
195
268
  job: JobRef,
196
269
  options?: unknown,
197
270
  ): Promise<Result<JobState<ConvertedMarkdown | ConvertedDocument>>> {
198
271
  const { signal } = resolveCheckOptions(options);
199
272
  const valid = validateJob(job);
200
- if (!valid.ok) {
201
- return valid;
202
- }
203
- const { id } = valid.data;
273
+ return valid.ok ? fetchJobState(valid.data, signal) : valid;
274
+ }
275
+
276
+ /**
277
+ * **Status request for a validated job; result download when done**.
278
+ *
279
+ * - unknown job id: `not_found` with `Unknown job id`; also once docling-serve deleted the task,
280
+ * `DOCLING_SERVE_RESULT_REMOVAL_DELAY` (default 300 s) after the first result fetch
281
+ * - task deleted between the status poll and the result fetch: `not_found` with `Result already fetched or expired`
282
+ */
283
+ async function fetchJobState(
284
+ job: JobRef,
285
+ signal: AbortSignal | undefined,
286
+ ): Promise<Result<JobState<ConvertedMarkdown | ConvertedDocument>>> {
287
+ const { id } = job;
204
288
  const res = await get(`/v1/status/poll/${id}`, signal);
205
289
  if (!res.ok) {
206
290
  const error =
@@ -227,9 +311,8 @@ export function createDoclingClient(config: DoclingConfig): DoclingClient {
227
311
  : result.error;
228
312
  return failWithVersions(error);
229
313
  }
230
- const checked = valid.data;
231
314
  const output =
232
- checked.kind === 'markdown' ? readMarkdown(result.data, checked.output) : readDocument(result.data);
315
+ job.kind === 'markdown' ? readMarkdown(result.data, job.output) : readDocument(result.data);
233
316
  const done = await withVersions<ConvertedMarkdown | ConvertedDocument>(output);
234
317
  return done.ok ? ok({ status: 'done', ...done.data }) : done;
235
318
  }
@@ -372,9 +455,33 @@ export function createDoclingClient(config: DoclingConfig): DoclingClient {
372
455
  }
373
456
 
374
457
  // -------------------------------------------------------------------
375
- // --- 4. Internal Functions
458
+ // --- 4. Private Functions
376
459
  // -------------------------------------------------------------------
377
460
 
461
+ /**
462
+ * **Waits `ms` unless `signal` aborts**.
463
+ *
464
+ * - resolves `true` after the wait, `false` at once on abort (also when already aborted)
465
+ * - clears its timer and removes its listener either way
466
+ */
467
+ function sleep(ms: number, signal: AbortSignal | undefined): Promise<boolean> {
468
+ if (signal?.aborted) {
469
+ return Promise.resolve(false);
470
+ }
471
+ return new Promise((resolve) => {
472
+ const timer = setTimeout(() => {
473
+ signal?.removeEventListener('abort', onAbort);
474
+ resolve(true);
475
+ }, ms);
476
+ /** Ends the wait early. */
477
+ function onAbort() {
478
+ clearTimeout(timer);
479
+ resolve(false);
480
+ }
481
+ signal?.addEventListener('abort', onAbort, { once: true });
482
+ });
483
+ }
484
+
378
485
  /** Caller signal combined with a `timeoutMs` limit; either alone when the other is unset. */
379
486
  function withTimeout(signal: AbortSignal | undefined, timeoutMs: number | undefined): AbortSignal | undefined {
380
487
  if (timeoutMs === undefined) {
@@ -412,6 +519,7 @@ function readInputFormat(input: unknown): Result<InputFormat> {
412
519
  * - images: `image_export_mode=embedded` when picture data or page images are requested, else `placeholder`;
413
520
  * `include_images` and `include_page_images` pick which data docling sends
414
521
  * - `images_scale` fixed at `PAGE_IMAGE_SCALE`; it sets picture and page image resolution only, OCR has its own scale
522
+ * - PDF input: `forceOcr` enables OCR even with `ocr: false` (docling skips `force_ocr` when `do_ocr=false`)
415
523
  * - image input: OCR always on and never full-page, whatever `ocr` and `forceOcr` say
416
524
  * - model presets pinned; a preset of a disabled stage is not sent
417
525
  * - fields docling-serve would default silently are sent with that default
@@ -421,7 +529,6 @@ function buildSettings(
421
529
  options: ResolvedOptions,
422
530
  { format, embedImages, pageImages }: FormatFields,
423
531
  ): DoclingSettings {
424
- // Image has no text layer: without OCR it yields no text, and full-page OCR merges words.
425
532
  const isImage = fromFormat === 'image';
426
533
  const isMarkdown = format === 'md';
427
534
  return {
@@ -433,7 +540,7 @@ function buildSettings(
433
540
  imagesScale: PAGE_IMAGE_SCALE,
434
541
  mdCompactTables: isMarkdown ? true : null,
435
542
  mdPageBreakPlaceholder: isMarkdown ? '' : null,
436
- doOcr: isImage || options.ocr,
543
+ doOcr: isImage || options.ocr || options.forceOcr,
437
544
  forceOcr: !isImage && options.forceOcr,
438
545
  ocrPreset: options.ocrEngine,
439
546
  ocrLang: [...(options.ocrLang ?? [])],
@@ -467,7 +574,6 @@ function buildSettings(
467
574
  */
468
575
  function buildFormData(input: ConvertInput, { mimeType, fileName }: InputFormat, settings: DoclingSettings): FormData {
469
576
  const form = new FormData();
470
- // Blob does not accept SharedArrayBuffer-backed input: copy only that into a fresh ArrayBuffer.
471
577
  const bytes = input.buffer instanceof ArrayBuffer ? (input as Uint8Array<ArrayBuffer>) : new Uint8Array(input);
472
578
  form.append('files', new Blob([bytes], { type: mimeType }), fileName);
473
579
  for (const [key, value] of Object.entries(settings)) {
package/src/core/http.ts CHANGED
@@ -61,7 +61,7 @@ export function errorMessage(e: unknown): string {
61
61
  }
62
62
 
63
63
  // -------------------------------------------------------------------
64
- // --- 3. Internal Functions
64
+ // --- 3. Private Functions
65
65
  // -------------------------------------------------------------------
66
66
 
67
67
  /** Checks whether an error indicates body size exceeded memory or maximum string length. */
@@ -89,8 +89,6 @@ function errorDetail(text: string): string {
89
89
  const { detail } = body;
90
90
  return typeof detail === 'string' ? detail : JSON.stringify(detail);
91
91
  }
92
- } catch {
93
- // Not JSON: fall back to raw text
94
- }
92
+ } catch {}
95
93
  return text.slice(0, 500) || 'no response body';
96
94
  }
package/src/core/input.ts CHANGED
@@ -33,10 +33,8 @@ type ImageSignature = {
33
33
  const IMAGE_SIGNATURES: readonly ImageSignature[] = [
34
34
  { mimeType: 'image/png', extension: 'png', parts: [[0, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]]] },
35
35
  { mimeType: 'image/jpeg', extension: 'jpg', parts: [[0, [0xff, 0xd8, 0xff]]] },
36
- // Little-endian `II*\0` and big-endian `MM\0*`.
37
36
  { mimeType: 'image/tiff', extension: 'tiff', parts: [[0, [0x49, 0x49, 0x2a, 0x00]]] },
38
37
  { mimeType: 'image/tiff', extension: 'tiff', parts: [[0, [0x4d, 0x4d, 0x00, 0x2a]]] },
39
- // `RIFF` <size> `WEBP`.
40
38
  {
41
39
  mimeType: 'image/webp',
42
40
  extension: 'webp',
package/src/core/pdf.ts CHANGED
@@ -25,7 +25,6 @@ export function isPdf(bytes: unknown): bytes is Uint8Array {
25
25
  }
26
26
  const head = bytes.subarray(0, HEADER_SEARCH_LENGTH);
27
27
  for (let i = 0; i + 5 <= head.length; i++) {
28
- // %PDF-
29
28
  if (
30
29
  head[i] === 0x25 &&
31
30
  head[i + 1] === 0x50 &&
@@ -47,7 +47,6 @@ export function validateKeys<T extends object>(
47
47
  }
48
48
  valid[name] = Array.isArray(value) ? [...value] : value;
49
49
  }
50
- // Every key was checked against its rule above.
51
50
  return valid as Partial<T>;
52
51
  }
53
52
 
package/src/document.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  // biome-ignore-all lint/style/useNamingConvention: mirrors docling-core's snake_case JSON
5
5
 
6
6
  // -------------------------------------------------------------------
7
- // --- 1. Document
7
+ // --- 1. Types
8
8
  // -------------------------------------------------------------------
9
9
 
10
10
  /**
@@ -54,9 +54,7 @@ export type PageItem = {
54
54
  page_no: number;
55
55
  };
56
56
 
57
- // -------------------------------------------------------------------
58
- // --- 2. Shared Parts
59
- // -------------------------------------------------------------------
57
+ // Shared Parts
60
58
 
61
59
  /** JSON pointer to another item, e.g. `{ $ref: '#/texts/12' }` or `{ $ref: '#/body' }`. */
62
60
  export type RefItem = { $ref: string };
@@ -182,9 +180,7 @@ type FloatingFields = {
182
180
  image: ImageRef | null;
183
181
  };
184
182
 
185
- // -------------------------------------------------------------------
186
- // --- 3. Groups
187
- // -------------------------------------------------------------------
183
+ // Groups
188
184
 
189
185
  /** Docling's group kinds. */
190
186
  export type GroupLabel =
@@ -214,9 +210,7 @@ export type ListGroup = GroupItem & { label: 'list' };
214
210
  /** Run of texts that belong to one line or paragraph, e.g. with mixed formatting. */
215
211
  export type InlineGroup = GroupItem & { label: 'inline' };
216
212
 
217
- // -------------------------------------------------------------------
218
- // --- 4. Texts
219
- // -------------------------------------------------------------------
213
+ // Texts
220
214
 
221
215
  /** Labels of plain `TextItem`s; other text labels have their own item type. */
222
216
  export type TextLabel =
@@ -284,9 +278,7 @@ export type AnyTextItem =
284
278
  | FieldValueItem
285
279
  | TextItem;
286
280
 
287
- // -------------------------------------------------------------------
288
- // --- 5. Tables
289
- // -------------------------------------------------------------------
281
+ // Tables
290
282
 
291
283
  /** Table cell; offsets are 0-based and end-exclusive, spans repeat the cell in `grid`. */
292
284
  export type TableCell = {
@@ -331,9 +323,7 @@ export type TableItem = DocItem &
331
323
  annotations: (DescriptionAnnotation | MiscAnnotation)[];
332
324
  };
333
325
 
334
- // -------------------------------------------------------------------
335
- // --- 6. Pictures
336
- // -------------------------------------------------------------------
326
+ // Pictures
337
327
 
338
328
  /**
339
329
  * **Model output on a picture**: description, classification, molecule or chart data.
@@ -379,9 +369,7 @@ export type PictureItem = DocItem &
379
369
  annotations: PictureAnnotation[];
380
370
  };
381
371
 
382
- // -------------------------------------------------------------------
383
- // --- 7. Forms and Key-Value Regions
384
- // -------------------------------------------------------------------
372
+ // Forms and Key-Value Regions
385
373
 
386
374
  /** Cell of a key-value or form graph. */
387
375
  export type GraphCell = {