@laminapdf/sdk 0.2.0-alpha.3 → 0.2.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/README.md +21 -1
  2. package/dist/api.d.ts +4 -2
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +1 -0
  5. package/dist/api.js.map +1 -1
  6. package/dist/builder.d.ts +8 -3
  7. package/dist/builder.d.ts.map +1 -1
  8. package/dist/builder.js +8 -3
  9. package/dist/builder.js.map +1 -1
  10. package/dist/document.d.ts +42 -1
  11. package/dist/document.d.ts.map +1 -1
  12. package/dist/document.js +65 -0
  13. package/dist/document.js.map +1 -1
  14. package/dist/extract-job.d.ts +100 -0
  15. package/dist/extract-job.d.ts.map +1 -0
  16. package/dist/extract-job.js +177 -0
  17. package/dist/extract-job.js.map +1 -0
  18. package/dist/extract.d.ts +1 -1
  19. package/dist/extract.d.ts.map +1 -1
  20. package/dist/extract.js.map +1 -1
  21. package/dist/generated/builder-enums.d.ts +3 -3
  22. package/dist/generated/builder-enums.d.ts.map +1 -1
  23. package/dist/generated/builder-enums.js +10 -0
  24. package/dist/generated/builder-enums.js.map +1 -1
  25. package/dist/generated/codes.d.ts +2 -2
  26. package/dist/generated/codes.d.ts.map +1 -1
  27. package/dist/generated/codes.js +55 -1
  28. package/dist/generated/codes.js.map +1 -1
  29. package/dist/generated/explain.d.ts.map +1 -1
  30. package/dist/generated/explain.js +19 -2
  31. package/dist/generated/explain.js.map +1 -1
  32. package/dist/generated/extract.d.ts +50 -3
  33. package/dist/generated/extract.d.ts.map +1 -1
  34. package/dist/source/http.d.ts +1 -1
  35. package/dist/source/http.js +1 -1
  36. package/dist/types.d.ts +19 -1
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/version.d.ts +1 -1
  39. package/dist/version.js +1 -1
  40. package/dist/worker/support.d.ts +7 -1
  41. package/dist/worker/support.d.ts.map +1 -1
  42. package/dist/worker/support.js +4 -0
  43. package/dist/worker/support.js.map +1 -1
  44. package/docs/AGENTS.md +1 -1
  45. package/docs/api/README.md +20 -1
  46. package/docs/api/classes/Builder.md +1 -1
  47. package/docs/api/classes/Document.md +113 -1
  48. package/docs/api/classes/ExtractJob.md +236 -0
  49. package/docs/api/classes/Font.md +1 -1
  50. package/docs/api/classes/Image.md +1 -1
  51. package/docs/api/classes/LaminaPdfError.md +1 -1
  52. package/docs/api/classes/Page.md +1 -1
  53. package/docs/api/classes/PageRef.md +1 -1
  54. package/docs/api/classes/PageText.md +1 -1
  55. package/docs/api/classes/PageTextRun.md +1 -1
  56. package/docs/api/classes/PendingPath.md +1 -1
  57. package/docs/api/classes/SaveJob.md +1 -1
  58. package/docs/api/classes/Surface.md +10 -5
  59. package/docs/api/classes/Transaction.md +1 -1
  60. package/docs/api/functions/callbackSource.md +1 -1
  61. package/docs/api/functions/extractWithModels.md +70 -0
  62. package/docs/api/functions/httpRangeSource.md +2 -2
  63. package/docs/api/functions/init.md +1 -1
  64. package/docs/api/functions/isExtractLoaded.md +1 -1
  65. package/docs/api/functions/isInitialized.md +1 -1
  66. package/docs/api/functions/isLaminaPdfError.md +1 -1
  67. package/docs/api/functions/isTextLoaded.md +1 -1
  68. package/docs/api/functions/loadExtract.md +1 -1
  69. package/docs/api/functions/loadText.md +1 -1
  70. package/docs/api/functions/onLeak.md +1 -1
  71. package/docs/api/functions/reset.md +1 -1
  72. package/docs/api/functions/wasmMemory.md +1 -1
  73. package/docs/api/interfaces/BuilderOptions.md +1 -1
  74. package/docs/api/interfaces/ByteRange.md +1 -1
  75. package/docs/api/interfaces/ChunkOptions.md +1 -1
  76. package/docs/api/interfaces/Diagnostic.md +1 -1
  77. package/docs/api/interfaces/ExtractOptions.md +1 -1
  78. package/docs/api/interfaces/ExtractResult.md +1 -1
  79. package/docs/api/interfaces/FontInfo.md +1 -1
  80. package/docs/api/interfaces/HostModels.md +57 -0
  81. package/docs/api/interfaces/HttpRangeOptions.md +1 -1
  82. package/docs/api/interfaces/InitOptions.md +1 -1
  83. package/docs/api/interfaces/LayoutRegion.md +38 -0
  84. package/docs/api/interfaces/Leak.md +1 -1
  85. package/docs/api/interfaces/Location.md +1 -1
  86. package/docs/api/interfaces/ModelInfo.md +45 -0
  87. package/docs/api/interfaces/ModelRequest.md +45 -0
  88. package/docs/api/interfaces/Models.md +45 -0
  89. package/docs/api/interfaces/OcrWord.md +37 -0
  90. package/docs/api/interfaces/OpLog.md +1 -1
  91. package/docs/api/interfaces/OpenOptions.md +1 -1
  92. package/docs/api/interfaces/PageTextOptions.md +1 -1
  93. package/docs/api/interfaces/PathBuilder.md +1 -1
  94. package/docs/api/interfaces/QuadPoint.md +1 -1
  95. package/docs/api/interfaces/RangeOptions.md +1 -1
  96. package/docs/api/interfaces/RangeSource.md +1 -1
  97. package/docs/api/interfaces/StrokeStyle.md +1 -1
  98. package/docs/api/interfaces/TagSpec.md +3 -3
  99. package/docs/api/interfaces/TextBoxOptions.md +1 -1
  100. package/docs/api/interfaces/TextGlyph.md +1 -1
  101. package/docs/api/interfaces/TextOptions.md +1 -1
  102. package/docs/api/interfaces/WasmMemory.md +1 -1
  103. package/docs/api/type-aliases/AfRelationship.md +1 -1
  104. package/docs/api/type-aliases/Align.md +1 -1
  105. package/docs/api/type-aliases/ArtifactKind.md +2 -2
  106. package/docs/api/type-aliases/AttachmentOptions.md +1 -1
  107. package/docs/api/type-aliases/BlendMode.md +1 -1
  108. package/docs/api/type-aliases/BoxRect.md +1 -1
  109. package/docs/api/type-aliases/BuildOptions.md +1 -1
  110. package/docs/api/type-aliases/Cell.md +1 -1
  111. package/docs/api/type-aliases/Chunk.md +1 -1
  112. package/docs/api/type-aliases/Color.md +1 -1
  113. package/docs/api/type-aliases/Coordinates.md +1 -1
  114. package/docs/api/type-aliases/Direction.md +1 -1
  115. package/docs/api/type-aliases/DocumentInfo.md +1 -1
  116. package/docs/api/type-aliases/DropReason.md +2 -2
  117. package/docs/api/type-aliases/Dropped.md +1 -1
  118. package/docs/api/type-aliases/Edited.md +1 -1
  119. package/docs/api/type-aliases/ErrorCode.md +2 -2
  120. package/docs/api/type-aliases/ErrorKind.md +1 -1
  121. package/docs/api/type-aliases/ExtractFormat.md +1 -1
  122. package/docs/api/type-aliases/ExtractJobOptions.md +31 -0
  123. package/docs/api/type-aliases/ExtractStep.md +61 -0
  124. package/docs/api/type-aliases/ExtractedBlock.md +13 -1
  125. package/docs/api/type-aliases/ExtractedPage.md +9 -1
  126. package/docs/api/type-aliases/ExtractedSource.md +1 -1
  127. package/docs/api/type-aliases/Extraction.md +1 -1
  128. package/docs/api/type-aliases/FillRule.md +1 -1
  129. package/docs/api/type-aliases/Fit.md +1 -1
  130. package/docs/api/type-aliases/Flags.md +1 -1
  131. package/docs/api/type-aliases/Generator.md +5 -3
  132. package/docs/api/type-aliases/GlyphQuad.md +1 -1
  133. package/docs/api/type-aliases/InfoPatch.md +1 -1
  134. package/docs/api/type-aliases/LaminaPdfWarning.md +1 -1
  135. package/docs/api/type-aliases/LimitName.md +1 -1
  136. package/docs/api/type-aliases/Limits.md +1 -1
  137. package/docs/api/type-aliases/LineBox.md +1 -1
  138. package/docs/api/type-aliases/LineCap.md +1 -1
  139. package/docs/api/type-aliases/LineJoin.md +1 -1
  140. package/docs/api/type-aliases/LinkTarget.md +1 -1
  141. package/docs/api/type-aliases/Metadata.md +1 -1
  142. package/docs/api/type-aliases/ModelResult.md +15 -0
  143. package/docs/api/type-aliases/Op.md +1 -1
  144. package/docs/api/type-aliases/OutlineEntry.md +1 -1
  145. package/docs/api/type-aliases/OutlineNode.md +15 -0
  146. package/docs/api/type-aliases/Overflow.md +1 -1
  147. package/docs/api/type-aliases/PageInfo.md +1 -1
  148. package/docs/api/type-aliases/PageLabel.md +1 -1
  149. package/docs/api/type-aliases/PageSizeName.md +1 -1
  150. package/docs/api/type-aliases/Point.md +1 -1
  151. package/docs/api/type-aliases/Profile.md +1 -1
  152. package/docs/api/type-aliases/Progress.md +1 -1
  153. package/docs/api/type-aliases/ReadingOrder.md +1 -1
  154. package/docs/api/type-aliases/Rect.md +1 -1
  155. package/docs/api/type-aliases/Region.md +1 -1
  156. package/docs/api/type-aliases/RegionLabel.md +15 -0
  157. package/docs/api/type-aliases/RenderMode.md +1 -1
  158. package/docs/api/type-aliases/Rotation.md +1 -1
  159. package/docs/api/type-aliases/SaveOptions.md +1 -1
  160. package/docs/api/type-aliases/SaveReport.md +1 -1
  161. package/docs/api/type-aliases/Span.md +12 -1
  162. package/docs/api/type-aliases/SplitOn.md +1 -1
  163. package/docs/api/type-aliases/Standard14.md +1 -1
  164. package/docs/api/type-aliases/StructRef.md +1 -1
  165. package/docs/api/type-aliases/StructSource.md +1 -1
  166. package/docs/api/type-aliases/StructureKid.md +15 -0
  167. package/docs/api/type-aliases/StructureNode.md +16 -0
  168. package/docs/api/type-aliases/TableDetector.md +1 -1
  169. package/docs/api/type-aliases/TableMode.md +1 -1
  170. package/docs/api/type-aliases/TableScope.md +1 -1
  171. package/docs/api/type-aliases/Tag.md +1 -1
  172. package/docs/api/type-aliases/TagName.md +1 -1
  173. package/docs/api/type-aliases/Target.md +15 -0
  174. package/docs/api/type-aliases/TargetView.md +18 -0
  175. package/docs/api/type-aliases/TextLayer.md +72 -0
  176. package/docs/api/type-aliases/TextLayerStatus.md +15 -0
  177. package/docs/api/type-aliases/TextLayout.md +1 -1
  178. package/docs/api/type-aliases/TextRange.md +1 -1
  179. package/docs/api/type-aliases/TextRunInfo.md +1 -1
  180. package/docs/api/type-aliases/Transform.md +1 -1
  181. package/docs/api/type-aliases/UndoOutcome.md +1 -1
  182. package/docs/api/type-aliases/ViewerPreferences.md +1 -1
  183. package/docs/api/type-aliases/WarningCode.md +2 -2
  184. package/docs/api/type-aliases/WasmSource.md +1 -1
  185. package/docs/api/variables/Matrix.md +1 -1
  186. package/docs/api/variables/PAGE_SIZES.md +1 -1
  187. package/docs/api/variables/TAG_NAMES.md +2 -2
  188. package/docs/errors/README.md +18 -1
  189. package/docs/errors/aes-padding-invalid.md +1 -1
  190. package/docs/errors/already-initialized.md +1 -1
  191. package/docs/errors/binary-output-to-terminal.md +1 -1
  192. package/docs/errors/builder-finished.md +1 -1
  193. package/docs/errors/cancelled.md +1 -1
  194. package/docs/errors/cmap-invalid.md +1 -1
  195. package/docs/errors/collection-index.md +1 -1
  196. package/docs/errors/color-components.md +1 -1
  197. package/docs/errors/content-bad-operands.md +1 -1
  198. package/docs/errors/content-path-unpainted.md +1 -1
  199. package/docs/errors/content-resource-missing.md +1 -1
  200. package/docs/errors/content-syntax.md +1 -1
  201. package/docs/errors/content-unbalanced-bt.md +1 -1
  202. package/docs/errors/content-unbalanced-marked.md +1 -1
  203. package/docs/errors/content-unbalanced-q.md +1 -1
  204. package/docs/errors/content-unknown-operator.md +1 -1
  205. package/docs/errors/covered-text.md +33 -0
  206. package/docs/errors/data-pending.md +1 -1
  207. package/docs/errors/decompress.md +1 -1
  208. package/docs/errors/device-color-without-output-intent.md +1 -1
  209. package/docs/errors/direct-page.md +1 -1
  210. package/docs/errors/disposed.md +1 -1
  211. package/docs/errors/document-changed.md +1 -1
  212. package/docs/errors/embedded-file-forbidden.md +1 -1
  213. package/docs/errors/embedded-file-without-mime-type.md +1 -1
  214. package/docs/errors/encoding-full.md +1 -1
  215. package/docs/errors/encrypted-base.md +1 -1
  216. package/docs/errors/extract-column-order-uncertain.md +38 -0
  217. package/docs/errors/extract-limit-blocks.md +1 -1
  218. package/docs/errors/extract-module-not-loaded.md +1 -1
  219. package/docs/errors/extract-needs-ocr.md +37 -0
  220. package/docs/errors/extract-reading-order-ambiguous.md +1 -1
  221. package/docs/errors/extract-struct-tree-ignored.md +1 -1
  222. package/docs/errors/extract-table-ambiguous.md +1 -1
  223. package/docs/errors/extract-table-limit.md +1 -1
  224. package/docs/errors/extract-untagged-content.md +1 -1
  225. package/docs/errors/fetch-failed.md +3 -3
  226. package/docs/errors/flate-truncated.md +1 -1
  227. package/docs/errors/flow-content-too-large.md +34 -0
  228. package/docs/errors/flow-keep-broken.md +34 -0
  229. package/docs/errors/flow-layout-unstable.md +38 -0
  230. package/docs/errors/font-invalid.md +1 -1
  231. package/docs/errors/font-mismatch.md +1 -1
  232. package/docs/errors/font-not-embeddable.md +1 -1
  233. package/docs/errors/font-not-embedded.md +1 -1
  234. package/docs/errors/font-not-shapable.md +1 -1
  235. package/docs/errors/glyph-out-of-range.md +1 -1
  236. package/docs/errors/glyph-without-unicode.md +7 -5
  237. package/docs/errors/heading-level-skipped.md +1 -1
  238. package/docs/errors/image-data-length.md +1 -1
  239. package/docs/errors/image-too-large.md +1 -1
  240. package/docs/errors/inline-image-unterminated.md +1 -1
  241. package/docs/errors/input-unreadable.md +1 -1
  242. package/docs/errors/instance-reset.md +1 -1
  243. package/docs/errors/invalid-argument.md +1 -1
  244. package/docs/errors/invalid-axis-value.md +1 -1
  245. package/docs/errors/invalid-box.md +1 -1
  246. package/docs/errors/invalid-color.md +1 -1
  247. package/docs/errors/invalid-command-line.md +1 -1
  248. package/docs/errors/invalid-date.md +1 -1
  249. package/docs/errors/invalid-entry.md +1 -1
  250. package/docs/errors/invalid-feature.md +1 -1
  251. package/docs/errors/invalid-font.md +1 -1
  252. package/docs/errors/invalid-geometry.md +1 -1
  253. package/docs/errors/invalid-icc-profile.md +1 -1
  254. package/docs/errors/invalid-image.md +1 -1
  255. package/docs/errors/invalid-op-log.md +1 -1
  256. package/docs/errors/invalid-page-label.md +1 -1
  257. package/docs/errors/invalid-page-labels.md +1 -1
  258. package/docs/errors/invalid-page-range.md +1 -1
  259. package/docs/errors/invalid-rotate.md +1 -1
  260. package/docs/errors/invalid-spans.md +39 -0
  261. package/docs/errors/invalid-structure-nesting.md +1 -1
  262. package/docs/errors/invalid-structure.md +1 -1
  263. package/docs/errors/invalid-text-range.md +1 -1
  264. package/docs/errors/job-finished.md +1 -1
  265. package/docs/errors/limit-exceeded.md +1 -1
  266. package/docs/errors/link-without-contents.md +1 -1
  267. package/docs/errors/link-without-structure.md +1 -1
  268. package/docs/errors/markdown-html-ignored.md +33 -0
  269. package/docs/errors/markdown-image-missing.md +34 -0
  270. package/docs/errors/missing-alt-text.md +1 -1
  271. package/docs/errors/missing-glyph.md +1 -1
  272. package/docs/errors/missing-header.md +1 -1
  273. package/docs/errors/missing-lang.md +1 -1
  274. package/docs/errors/missing-root.md +1 -1
  275. package/docs/errors/missing-title.md +1 -1
  276. package/docs/errors/model-failed.md +33 -0
  277. package/docs/errors/model-needs-host.md +40 -0
  278. package/docs/errors/model-result-unexpected.md +36 -0
  279. package/docs/errors/name-tree-node-skipped.md +1 -1
  280. package/docs/errors/nested-transaction.md +1 -1
  281. package/docs/errors/no-pending-save.md +1 -1
  282. package/docs/errors/no-transaction.md +1 -1
  283. package/docs/errors/not-initialized.md +1 -1
  284. package/docs/errors/not-pdf.md +1 -1
  285. package/docs/errors/not-rebased.md +1 -1
  286. package/docs/errors/object-number-out-of-range.md +1 -1
  287. package/docs/errors/objstm-index-mismatch.md +1 -1
  288. package/docs/errors/out-of-memory.md +1 -1
  289. package/docs/errors/outline-cycle.md +1 -1
  290. package/docs/errors/outline-item-skipped.md +1 -1
  291. package/docs/errors/output-unwritable.md +1 -1
  292. package/docs/errors/overwrite-refused.md +1 -1
  293. package/docs/errors/page-count-mismatch.md +1 -1
  294. package/docs/errors/page-index-out-of-range.md +1 -1
  295. package/docs/errors/page-tree-node-skipped.md +1 -1
  296. package/docs/errors/password-required.md +1 -1
  297. package/docs/errors/path-outside-roots.md +1 -1
  298. package/docs/errors/perms-mismatch.md +1 -1
  299. package/docs/errors/profile-version-conflict.md +1 -1
  300. package/docs/errors/redaction-not-applied.md +32 -0
  301. package/docs/errors/reference-cycle.md +1 -1
  302. package/docs/errors/render-backend-unavailable.md +1 -1
  303. package/docs/errors/render-failed.md +1 -1
  304. package/docs/errors/render-too-large.md +1 -1
  305. package/docs/errors/repaired-base.md +1 -1
  306. package/docs/errors/requires-rewrite.md +1 -1
  307. package/docs/errors/revision-index-out-of-range.md +34 -0
  308. package/docs/errors/saved-not-rebased.md +1 -1
  309. package/docs/errors/sink-not-empty.md +1 -1
  310. package/docs/errors/sink.md +1 -1
  311. package/docs/errors/source-budget-exceeded.md +1 -1
  312. package/docs/errors/source-changed.md +1 -1
  313. package/docs/errors/source.md +1 -1
  314. package/docs/errors/stale-generation.md +1 -1
  315. package/docs/errors/stream-length-recovered.md +1 -1
  316. package/docs/errors/strict.md +1 -1
  317. package/docs/errors/subset-failed.md +1 -1
  318. package/docs/errors/syntax.md +1 -1
  319. package/docs/errors/tag-element-not-open.md +41 -0
  320. package/docs/errors/tag-element-unclosed.md +34 -0
  321. package/docs/errors/text-in-earlier-revision.md +36 -0
  322. package/docs/errors/text-module-not-loaded.md +1 -1
  323. package/docs/errors/text-overflow.md +1 -1
  324. package/docs/errors/tounicode-conflict.md +1 -1
  325. package/docs/errors/type.md +1 -1
  326. package/docs/errors/unexpected-eof.md +1 -1
  327. package/docs/errors/unknown-axis.md +1 -1
  328. package/docs/errors/unknown-code.md +1 -1
  329. package/docs/errors/unknown-destination.md +1 -1
  330. package/docs/errors/unknown-font.md +1 -1
  331. package/docs/errors/unknown-option.md +1 -1
  332. package/docs/errors/unknown-page.md +1 -1
  333. package/docs/errors/unmapped-glyph.md +1 -1
  334. package/docs/errors/unnumbered-heading-misused.md +1 -1
  335. package/docs/errors/unset-object.md +1 -1
  336. package/docs/errors/unsupported-filter.md +1 -1
  337. package/docs/errors/unsupported-image.md +1 -1
  338. package/docs/errors/unsupported-layout-option.md +1 -1
  339. package/docs/errors/unsupported-security-handler.md +1 -1
  340. package/docs/errors/unsupported-version.md +1 -1
  341. package/docs/errors/untagged-content.md +1 -1
  342. package/docs/errors/warnings-truncated.md +1 -1
  343. package/docs/errors/wasm-trap.md +1 -1
  344. package/docs/errors/whole-font-rebuilt.md +1 -1
  345. package/docs/errors/worker-crashed.md +1 -1
  346. package/docs/errors/worker-failed.md +1 -1
  347. package/docs/errors/worker-version-mismatch.md +1 -1
  348. package/docs/errors/would-invalidate-signatures.md +1 -1
  349. package/docs/errors/wrong-document.md +1 -1
  350. package/docs/errors/wrong-password.md +1 -1
  351. package/docs/errors/xobject-cycle.md +1 -1
  352. package/docs/errors/xref-repaired.md +1 -1
  353. package/docs/errors/xrefstm-ignored.md +1 -1
  354. package/docs/llms.txt +7 -1
  355. package/docs/pages/concepts/dependencies.md +2 -2
  356. package/docs/pages/concepts/drawing-pages.md +76 -0
  357. package/docs/pages/concepts/errors-and-warnings.md +6 -2
  358. package/docs/pages/concepts/how-lamina-thinks.md +13 -1
  359. package/docs/pages/concepts/pages-and-coordinates.md +9 -1
  360. package/docs/pages/guides/accessible-pdfs.md +3 -1
  361. package/docs/pages/guides/archival-pdfs.md +5 -1
  362. package/docs/pages/guides/edit-a-pdf.md +8 -2
  363. package/docs/pages/guides/flowing-pages.md +379 -0
  364. package/docs/pages/guides/fonts-and-text.md +3 -1
  365. package/docs/pages/guides/images-and-vectors.md +3 -1
  366. package/docs/pages/guides/keep-the-page-responsive.md +8 -4
  367. package/docs/pages/guides/links-outlines-and-metadata.md +3 -1
  368. package/docs/pages/guides/open-large-files.md +69 -0
  369. package/docs/pages/guides/password-protected-files.md +1 -1
  370. package/docs/pages/guides/save-a-pdf.md +12 -2
  371. package/docs/pages/guides/test-generated-pdfs.md +324 -0
  372. package/docs/pages/guides/untrusted-files.md +3 -1
  373. package/docs/pages/index.md +2 -2
  374. package/docs/pages/install.md +9 -5
  375. package/docs/pages/quick-start/browser.md +5 -1
  376. package/docs/pages/quick-start/bun.md +5 -1
  377. package/docs/pages/quick-start/deno.md +5 -1
  378. package/docs/pages/quick-start/node.md +5 -1
  379. package/docs/pages/quick-start/rust.md +6 -2
  380. package/docs/pages/quick-start/workers.md +2 -2
  381. package/docs/pages/recipes/cloudflare-worker.md +1 -1
  382. package/docs/pages/recipes/element-flow.md +248 -0
  383. package/docs/pages/recipes/extract-markdown.md +44 -6
  384. package/docs/pages/recipes/generate-then-edit.md +13 -6
  385. package/docs/pages/recipes/hello.md +13 -6
  386. package/docs/pages/recipes/images-and-vectors.md +13 -6
  387. package/docs/pages/recipes/invoice.md +13 -6
  388. package/docs/pages/recipes/links-and-outlines.md +13 -6
  389. package/docs/pages/recipes/multilingual.md +13 -6
  390. package/docs/pages/recipes/open-untrusted.md +1 -1
  391. package/docs/pages/recipes/pdf-a-archive.md +13 -6
  392. package/docs/pages/recipes/pdf-a3-invoice-with-xml.md +13 -6
  393. package/docs/pages/recipes/pdf-ua-report.md +13 -6
  394. package/docs/pages/recipes/report.md +2 -2
  395. package/docs/pages/recipes/web-worker-client.md +1 -1
  396. package/docs/pages/recipes.md +3 -2
  397. package/docs/pages/reference/benchmarks.md +93 -0
  398. package/docs/pages/reference/changelog.md +49 -1
  399. package/docs/pages/reference/codes.md +1 -1
  400. package/docs/pages/reference/glossary.md +1 -1
  401. package/docs/pages/reference/rust.md +11 -11
  402. package/docs/pages/reference/stability.md +3 -3
  403. package/docs/pages/start/coding-agents.md +1 -1
  404. package/docs/pages/start/first-pdf.md +6 -2
  405. package/docs/pages/troubleshooting.md +1 -1
  406. package/docs/schemas/error.schema.json +18 -1
  407. package/package.json +4 -2
  408. package/schemas/error.schema.json +18 -1
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  **@laminapdf/sdk**
@@ -12,6 +12,7 @@ version: "0.2.0-alpha.3"
12
12
 
13
13
  - [Builder](classes/Builder.md)
14
14
  - [Document](classes/Document.md)
15
+ - [ExtractJob](classes/ExtractJob.md)
15
16
  - [Font](classes/Font.md)
16
17
  - [Image](classes/Image.md)
17
18
  - [LaminaPdfError](classes/LaminaPdfError.md)
@@ -33,10 +34,16 @@ version: "0.2.0-alpha.3"
33
34
  - [ExtractOptions](interfaces/ExtractOptions.md)
34
35
  - [ExtractResult](interfaces/ExtractResult.md)
35
36
  - [FontInfo](interfaces/FontInfo.md)
37
+ - [HostModels](interfaces/HostModels.md)
36
38
  - [HttpRangeOptions](interfaces/HttpRangeOptions.md)
37
39
  - [InitOptions](interfaces/InitOptions.md)
40
+ - [LayoutRegion](interfaces/LayoutRegion.md)
38
41
  - [Leak](interfaces/Leak.md)
39
42
  - [Location](interfaces/Location.md)
43
+ - [ModelInfo](interfaces/ModelInfo.md)
44
+ - [ModelRequest](interfaces/ModelRequest.md)
45
+ - [Models](interfaces/Models.md)
46
+ - [OcrWord](interfaces/OcrWord.md)
40
47
  - [OpenOptions](interfaces/OpenOptions.md)
41
48
  - [OpLog](interfaces/OpLog.md)
42
49
  - [PageTextOptions](interfaces/PageTextOptions.md)
@@ -76,6 +83,8 @@ version: "0.2.0-alpha.3"
76
83
  - [ExtractedSource](type-aliases/ExtractedSource.md)
77
84
  - [ExtractFormat](type-aliases/ExtractFormat.md)
78
85
  - [Extraction](type-aliases/Extraction.md)
86
+ - [ExtractJobOptions](type-aliases/ExtractJobOptions.md)
87
+ - [ExtractStep](type-aliases/ExtractStep.md)
79
88
  - [FillRule](type-aliases/FillRule.md)
80
89
  - [Fit](type-aliases/Fit.md)
81
90
  - [Flags](type-aliases/Flags.md)
@@ -90,8 +99,10 @@ version: "0.2.0-alpha.3"
90
99
  - [LineJoin](type-aliases/LineJoin.md)
91
100
  - [LinkTarget](type-aliases/LinkTarget.md)
92
101
  - [Metadata](type-aliases/Metadata.md)
102
+ - [ModelResult](type-aliases/ModelResult.md)
93
103
  - [Op](type-aliases/Op.md)
94
104
  - [OutlineEntry](type-aliases/OutlineEntry.md)
105
+ - [OutlineNode](type-aliases/OutlineNode.md)
95
106
  - [Overflow](type-aliases/Overflow.md)
96
107
  - [PageInfo](type-aliases/PageInfo.md)
97
108
  - [PageLabel](type-aliases/PageLabel.md)
@@ -102,6 +113,7 @@ version: "0.2.0-alpha.3"
102
113
  - [ReadingOrder](type-aliases/ReadingOrder.md)
103
114
  - [Rect](type-aliases/Rect.md)
104
115
  - [Region](type-aliases/Region.md)
116
+ - [RegionLabel](type-aliases/RegionLabel.md)
105
117
  - [RenderMode](type-aliases/RenderMode.md)
106
118
  - [Rotation](type-aliases/Rotation.md)
107
119
  - [SaveOptions](type-aliases/SaveOptions.md)
@@ -111,11 +123,17 @@ version: "0.2.0-alpha.3"
111
123
  - [Standard14](type-aliases/Standard14.md)
112
124
  - [StructRef](type-aliases/StructRef.md)
113
125
  - [StructSource](type-aliases/StructSource.md)
126
+ - [StructureKid](type-aliases/StructureKid.md)
127
+ - [StructureNode](type-aliases/StructureNode.md)
114
128
  - [TableDetector](type-aliases/TableDetector.md)
115
129
  - [TableMode](type-aliases/TableMode.md)
116
130
  - [TableScope](type-aliases/TableScope.md)
117
131
  - [Tag](type-aliases/Tag.md)
118
132
  - [TagName](type-aliases/TagName.md)
133
+ - [Target](type-aliases/Target.md)
134
+ - [TargetView](type-aliases/TargetView.md)
135
+ - [TextLayer](type-aliases/TextLayer.md)
136
+ - [TextLayerStatus](type-aliases/TextLayerStatus.md)
119
137
  - [TextLayout](type-aliases/TextLayout.md)
120
138
  - [TextRange](type-aliases/TextRange.md)
121
139
  - [TextRunInfo](type-aliases/TextRunInfo.md)
@@ -134,6 +152,7 @@ version: "0.2.0-alpha.3"
134
152
  ## Functions
135
153
 
136
154
  - [callbackSource](functions/callbackSource.md)
155
+ - [extractWithModels](functions/extractWithModels.md)
137
156
  - [httpRangeSource](functions/httpRangeSource.md)
138
157
  - [init](functions/init.md)
139
158
  - [isExtractLoaded](functions/isExtractLoaded.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -112,6 +112,25 @@ Whether `free()` ran on this handle or its parent.
112
112
 
113
113
  ***
114
114
 
115
+ ### isTagged
116
+
117
+ #### Get Signature
118
+
119
+ > **get** **isTagged**(): `boolean`
120
+
121
+ Whether the document says it is tagged (`/MarkInfo /Marked true`); it doesn't check the tree.
122
+ Needs a document opened while the extract or text module was loaded, as `page.text()` does.
123
+
124
+ ##### Throws
125
+
126
+ [LaminaPdfError](LaminaPdfError.md) `extract-module-not-loaded`; reading errors.
127
+
128
+ ##### Returns
129
+
130
+ `boolean`
131
+
132
+ ***
133
+
115
134
  ### owned
116
135
 
117
136
  #### Get Signature
@@ -386,6 +405,37 @@ const chunks = doc.extract({ format: "chunks", chunk: { maxTokens: 400 } });
386
405
 
387
406
  ***
388
407
 
408
+ ### extractJob()
409
+
410
+ > **extractJob**\<`F`\>(`options`): [`ExtractJob`](ExtractJob.md)\<`F`\>
411
+
412
+ An extraction stepped a page at a time, for models the host runs: each step that needs a
413
+ model's result stops with a `request` (the page and resolution to render), answered with
414
+ [ExtractJob.provide](ExtractJob.md#provide). [extractWithModels](../functions/extractWithModels.md) loops one for async models. Needs a
415
+ document opened while the extract or text module was loaded.
416
+
417
+ #### Type Parameters
418
+
419
+ ##### F
420
+
421
+ `F` *extends* [`ExtractFormat`](../type-aliases/ExtractFormat.md)
422
+
423
+ #### Parameters
424
+
425
+ ##### options
426
+
427
+ [`ExtractJobOptions`](../type-aliases/ExtractJobOptions.md)\<`F`\>
428
+
429
+ #### Returns
430
+
431
+ [`ExtractJob`](ExtractJob.md)\<`F`\>
432
+
433
+ #### Throws
434
+
435
+ [LaminaPdfError](LaminaPdfError.md) as [Document.extract](#extract).
436
+
437
+ ***
438
+
389
439
  ### free()
390
440
 
391
441
  > **free**(): `void`
@@ -404,6 +454,49 @@ calls this at the end of the block.
404
454
 
405
455
  ***
406
456
 
457
+ ### namedDestination()
458
+
459
+ > **namedDestination**(`name`): `TargetJs` \| `undefined`
460
+
461
+ Where the named destination `name` goes (the names a link or a `#nameddest=` address uses),
462
+ or `undefined` when the document has none by that name. Needs a document opened while the
463
+ extract or text module was loaded.
464
+
465
+ #### Parameters
466
+
467
+ ##### name
468
+
469
+ `string`
470
+
471
+ #### Returns
472
+
473
+ `TargetJs` \| `undefined`
474
+
475
+ #### Throws
476
+
477
+ [LaminaPdfError](LaminaPdfError.md) as [Document.outline](#outline).
478
+
479
+ ***
480
+
481
+ ### outline()
482
+
483
+ > **outline**(): `OutlineNodeJs`[]
484
+
485
+ The outline (bookmarks): its top-level items in order, each with its children, and where
486
+ each goes as a page and a view in page space; empty without one. Needs a document opened
487
+ while the extract or text module was loaded.
488
+
489
+ #### Returns
490
+
491
+ `OutlineNodeJs`[]
492
+
493
+ #### Throws
494
+
495
+ [LaminaPdfError](LaminaPdfError.md) `extract-module-not-loaded` for a document opened in the base
496
+ module; reading errors (`data-pending` for a range document: use `ensure`).
497
+
498
+ ***
499
+
407
500
  ### page()
408
501
 
409
502
  > **page**(`index`): [`PageRef`](PageRef.md)
@@ -604,6 +697,25 @@ As [Document.save](#save), with the save's report (mode used, bytes written, ren
604
697
 
605
698
  ***
606
699
 
700
+ ### structureTree()
701
+
702
+ > **structureTree**(): `StructureNodeJs`[] \| `undefined`
703
+
704
+ The structure tree's top-level elements in reading order, or `undefined` for a document
705
+ without one. A text run's `mcid` (on [PageTextRun](PageTextRun.md)) links it to the element whose
706
+ `{ type: "content", page, mcid }` kid names it. Needs the extract or text module, as
707
+ `page.text()` does.
708
+
709
+ #### Returns
710
+
711
+ `StructureNodeJs`[] \| `undefined`
712
+
713
+ #### Throws
714
+
715
+ [LaminaPdfError](LaminaPdfError.md) `extract-module-not-loaded`; reading errors.
716
+
717
+ ***
718
+
607
719
  ### transact()
608
720
 
609
721
  > **transact**\<`T`\>(`edit`): `T`
@@ -0,0 +1,236 @@
1
+ ---
2
+ version: "0.2.0-alpha.4"
3
+ ---
4
+
5
+ [**@laminapdf/sdk**](../README.md)
6
+
7
+ ***
8
+
9
+ [@laminapdf/sdk](../README.md) / ExtractJob
10
+
11
+ # Class: ExtractJob\<F\>
12
+
13
+ An extraction in progress, from [Document.extractJob](Document.md#extractjob). It holds WebAssembly memory and is
14
+ freed with its document, or earlier with `free()` or `using`.
15
+
16
+ ## Extends
17
+
18
+ - `Handle`\<`BaseGlue`\>
19
+
20
+ ## Type Parameters
21
+
22
+ ### F
23
+
24
+ `F` *extends* [`ExtractFormat`](../type-aliases/ExtractFormat.md) = [`ExtractFormat`](../type-aliases/ExtractFormat.md)
25
+
26
+ ## Accessors
27
+
28
+ ### instance
29
+
30
+ #### Get Signature
31
+
32
+ > **get** `protected` **instance**(): `Instance`\<`G`\>
33
+
34
+ The instance this handle lives in (for the handles it makes).
35
+
36
+ ##### Returns
37
+
38
+ `Instance`\<`G`\>
39
+
40
+ #### Inherited from
41
+
42
+ `Handle.instance`
43
+
44
+ ***
45
+
46
+ ### isFreed
47
+
48
+ #### Get Signature
49
+
50
+ > **get** `protected` **isFreed**(): `boolean`
51
+
52
+ Whether `free()` ran on this handle or its parent.
53
+
54
+ ##### Returns
55
+
56
+ `boolean`
57
+
58
+ #### Inherited from
59
+
60
+ `Handle.isFreed`
61
+
62
+ ***
63
+
64
+ ### owned
65
+
66
+ #### Get Signature
67
+
68
+ > **get** `protected` **owned**(): `boolean`
69
+
70
+ Whether the handle's raw objects can be freed: its instance is current and hasn't trapped.
71
+
72
+ ##### Returns
73
+
74
+ `boolean`
75
+
76
+ #### Inherited from
77
+
78
+ `Handle.owned`
79
+
80
+ ## Methods
81
+
82
+ ### \[dispose\]()
83
+
84
+ > **\[dispose\]**(): `void`
85
+
86
+ Frees the handle at the end of a `using` block (an alias of `free()`).
87
+
88
+ #### Returns
89
+
90
+ `void`
91
+
92
+ #### Inherited from
93
+
94
+ `Handle.[dispose]`
95
+
96
+ ***
97
+
98
+ ### assertLive()
99
+
100
+ > `protected` **assertLive**(): `void`
101
+
102
+ #### Returns
103
+
104
+ `void`
105
+
106
+ #### Throws
107
+
108
+ [LaminaPdfError](LaminaPdfError.md) `disposed` after `free()` (here or on the parent);
109
+ `instance-reset` when the instance was replaced (a trapped one is replaced first).
110
+
111
+ #### Inherited from
112
+
113
+ `Handle.assertLive`
114
+
115
+ ***
116
+
117
+ ### call()
118
+
119
+ > `protected` **call**\<`T`\>(`f`): `T`
120
+
121
+ Runs `f` (calls into the glue) on this live handle; see Instance.call.
122
+
123
+ #### Type Parameters
124
+
125
+ ##### T
126
+
127
+ `T`
128
+
129
+ #### Parameters
130
+
131
+ ##### f
132
+
133
+ (`glue`) => `T`
134
+
135
+ #### Returns
136
+
137
+ `T`
138
+
139
+ #### Inherited from
140
+
141
+ `Handle.call`
142
+
143
+ ***
144
+
145
+ ### cancel()
146
+
147
+ > **cancel**(): `void`
148
+
149
+ Stops the job: its next step fails with `cancelled`.
150
+
151
+ #### Returns
152
+
153
+ `void`
154
+
155
+ ***
156
+
157
+ ### free()
158
+
159
+ > **free**(): `void`
160
+
161
+ Frees the handle's memory now; without it, the garbage collector frees it later. A second
162
+ call does nothing, and any other call afterwards throws `disposed`. Prefer `using`, which
163
+ calls this at the end of the block.
164
+
165
+ #### Returns
166
+
167
+ `void`
168
+
169
+ #### Inherited from
170
+
171
+ `Handle.free`
172
+
173
+ ***
174
+
175
+ ### provide()
176
+
177
+ > **provide**(`result`): `void`
178
+
179
+ Hands the job the result of its open request.
180
+
181
+ #### Parameters
182
+
183
+ ##### result
184
+
185
+ [`ModelResult`](../type-aliases/ModelResult.md)
186
+
187
+ #### Returns
188
+
189
+ `void`
190
+
191
+ #### Throws
192
+
193
+ [LaminaPdfError](LaminaPdfError.md) `model-result-unexpected` when nothing was asked for or `result`
194
+ is the other model's; `invalid-argument` / `unknown-option` for a malformed result.
195
+
196
+ ***
197
+
198
+ ### release()
199
+
200
+ > `protected` **release**(): `void`
201
+
202
+ Frees the WebAssembly side; called at most once, and only while [owned](#owned).
203
+
204
+ #### Returns
205
+
206
+ `void`
207
+
208
+ #### Overrides
209
+
210
+ `Handle.release`
211
+
212
+ ***
213
+
214
+ ### step()
215
+
216
+ > **step**(`budget?`): [`ExtractStep`](../type-aliases/ExtractStep.md)\<`F`\>
217
+
218
+ Extracts up to `budget` pages. While a model's result is awaited, the step returns
219
+ `{ state: "progress", phase: "model", request }` and does nothing more until
220
+ [provide](#provide) answers it.
221
+
222
+ #### Parameters
223
+
224
+ ##### budget?
225
+
226
+ `number` = `1`
227
+
228
+ #### Returns
229
+
230
+ [`ExtractStep`](../type-aliases/ExtractStep.md)\<`F`\>
231
+
232
+ progress, or `{ state: "done", output }` with the output in the job's format.
233
+
234
+ #### Throws
235
+
236
+ [LaminaPdfError](LaminaPdfError.md) `cancelled`, `document-changed`, `job-finished`, the reading errors.
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -20,13 +20,15 @@ geometry is reported by [Page.finish](Page.md#finish) (`invalid-geometry`).
20
20
  > **artifact**(`kind`, `draw`): `this`
21
21
 
22
22
  Draws what `draw` draws as an artifact: decoration, running heads and footers, backgrounds;
23
- content outside the structure tree.
23
+ content outside the structure tree. `"header"`, `"footer"` and `"watermark"` are pagination
24
+ artifacts that also say which (`/Subtype`), a header attached to the page's top edge and a
25
+ footer to its bottom (`/Attached`).
24
26
 
25
27
  #### Parameters
26
28
 
27
29
  ##### kind
28
30
 
29
- `"layout"` \| `"page"` \| `"pagination"` \| `"background"`
31
+ `"layout"` \| `"page"` \| `"pagination"` \| `"background"` \| `"header"` \| `"footer"` \| `"watermark"`
30
32
 
31
33
  ##### draw
32
34
 
@@ -273,7 +275,8 @@ Draws `text`: shaped, bidi-resolved, one line per line break (needs the text mod
273
275
 
274
276
  `TextRunJs`
275
277
 
276
- what the run measures.
278
+ what the run measures, with `bottom`: where the next element can start (the next text box's top), the
279
+ descent below the last line that draws something, before the surface's transform; left out when nothing is.
277
280
 
278
281
  #### Throws
279
282
 
@@ -301,7 +304,9 @@ Lays `text` out in `options.box`, breaking lines at Unicode line-break opportuni
301
304
 
302
305
  `TextLayoutJs`
303
306
 
304
- the lines drawn and where the overflow starts (UTF-16 offsets).
307
+ the lines drawn, where the overflow starts (UTF-16 offsets; test it with `!== undefined`, as `0` means no
308
+ line fitted) and `bottom`: the last line that draws something, before the surface's transform; left out when none
309
+ does.
305
310
 
306
311
  #### Throws
307
312
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -0,0 +1,70 @@
1
+ ---
2
+ version: "0.2.0-alpha.4"
3
+ ---
4
+
5
+ [**@laminapdf/sdk**](../README.md)
6
+
7
+ ***
8
+
9
+ [@laminapdf/sdk](../README.md) / extractWithModels
10
+
11
+ # Function: extractWithModels()
12
+
13
+ > **extractWithModels**\<`F`\>(`doc`, `options`, `models`, `__namedParameters?`): `Promise`\<[`ExtractResult`](../interfaces/ExtractResult.md)\[`F`\]\>
14
+
15
+ Runs an extraction whose models the host runs asynchronously: steps a job, and for each
16
+ request awaits the matching function of `models`, then hands its result back.
17
+
18
+ ## Type Parameters
19
+
20
+ ### F
21
+
22
+ `F` *extends* [`ExtractFormat`](../type-aliases/ExtractFormat.md)
23
+
24
+ ## Parameters
25
+
26
+ ### doc
27
+
28
+ [`Document`](../classes/Document.md)
29
+
30
+ ### options
31
+
32
+ [`ExtractJobOptions`](../type-aliases/ExtractJobOptions.md)\<`F`\>
33
+
34
+ ### models
35
+
36
+ [`HostModels`](../interfaces/HostModels.md)
37
+
38
+ ### \_\_namedParameters?
39
+
40
+ #### budget?
41
+
42
+ `number` = `16`
43
+
44
+ #### signal?
45
+
46
+ `AbortSignal`
47
+
48
+ ## Returns
49
+
50
+ `Promise`\<[`ExtractResult`](../interfaces/ExtractResult.md)\[`F`\]\>
51
+
52
+ ## Example
53
+
54
+ ```ts
55
+ const json = await extractWithModels(
56
+ doc,
57
+ { format: "json", models: { layout: { name: "my-layout", version: "1", sha256, licence: "Apache-2.0" } } },
58
+ { layout: async ({ page, dpi }) => myModel.detect(await render(page, dpi)) },
59
+ );
60
+ ```
61
+ On a document opened with `Document.openRange`, a step that needs bytes not yet fetched ends
62
+ the job with `data-pending`, as every error ends a job; fetch the file first (`await
63
+ doc.ensure(() => doc.pages)` reads only the page tree, so read the whole file for a long
64
+ extraction), or wrap the call in `doc.ensure`, which runs it again, models included.
65
+
66
+ ## Throws
67
+
68
+ [LaminaPdfError](../classes/LaminaPdfError.md) as [ExtractJob.step](../classes/ExtractJob.md#step); `invalid-argument` when
69
+ `options.models` names a model `models` has no function for; `cancelled` once `signal`
70
+ aborts, also when the model rejects because of it (the model's error is the `cause`).
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -19,7 +19,7 @@ its `Last-Modified`); a response whose `ETag`, `Last-Modified` or total size dif
19
19
  with `source-changed`. A server that ignores
20
20
  `Range` (it answers `200`) is read with that one full download.
21
21
 
22
- The server must allow `Range` (across origins: `Access-Control-Allow-Headers: Range` and
22
+ The server must allow `Range` (across origins: `Access-Control-Allow-Headers: Range, If-Range` and
23
23
  `Access-Control-Expose-Headers: Content-Range, Content-Length, ETag`) and must not compress
24
24
  the response.
25
25
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.4"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)