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/dist/options.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { CallOptions, ClientOptions, DoclingOptions, DocumentImageMode, Job, MarkdownJobOutput, Result } from './types.js';
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
- /** Validates md call options over factory defaults; throws TypeError on invalid options. */
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
- /** Validates document call options over factory defaults; throws TypeError on invalid options. */
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
- /** Validates `check` call options (signal only); throws TypeError on invalid options. */
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<Job>;
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 {};
@@ -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,GAAG,EAEH,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,CASpD,CAAC;AAgFH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAmB7D;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CASvG;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAQvG;AAED,yFAAyF;AACzF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAmBrD;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,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
- /** @deprecated Use `ConvertInput`; images are accepted as well. */
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 accepted by `check()`. */
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 `/` are removed. */
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
- /** 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. */
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*`: one synchronous request
323
- * - `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
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 a result `DOCLING_SERVE_RESULT_REMOVAL_DELAY` seconds (default 300) after its first
338
- * fetch: a `check` whose result download failed can be repeated within that time, later it returns
339
- * `not_found`; persist `done` data, or start docling-serve with `DOCLING_SERVE_SINGLE_USE_RESULTS=false`
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
- check(job: MarkdownJob, options?: CallOptions): Promise<Result<JobState<ConvertedMarkdown>>>;
342
- check(job: DocumentJob, options?: CallOptions): Promise<Result<JobState<ConvertedDocument>>>;
343
- check(job: Job, options?: CallOptions): Promise<Result<JobState<ConvertedMarkdown | ConvertedDocument>>>;
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
@@ -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.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",
@@ -66,9 +66,9 @@
66
66
  },
67
67
  "devDependencies": {
68
68
  "@arethetypeswrong/cli": "^0.18.5",
69
- "@biomejs/biome": "2.5.14",
70
- "@types/bun": "^1.4.0",
71
- "@types/node": "^22.12.0",
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
+ }