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

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 (421) hide show
  1. package/README.md +21 -1
  2. package/dist/api.d.ts +5 -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 +78 -1
  11. package/dist/document.d.ts.map +1 -1
  12. package/dist/document.js +112 -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/reflow.d.ts +88 -0
  35. package/dist/reflow.d.ts.map +1 -0
  36. package/dist/reflow.js +4 -0
  37. package/dist/reflow.js.map +1 -0
  38. package/dist/source/http.d.ts +1 -1
  39. package/dist/source/http.js +1 -1
  40. package/dist/types.d.ts +35 -1
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/version.d.ts +1 -1
  43. package/dist/version.js +1 -1
  44. package/dist/worker/support.d.ts +10 -1
  45. package/dist/worker/support.d.ts.map +1 -1
  46. package/dist/worker/support.js +7 -0
  47. package/dist/worker/support.js.map +1 -1
  48. package/docs/AGENTS.md +1 -1
  49. package/docs/api/README.md +29 -1
  50. package/docs/api/classes/Builder.md +1 -1
  51. package/docs/api/classes/Document.md +186 -1
  52. package/docs/api/classes/ExtractJob.md +236 -0
  53. package/docs/api/classes/Font.md +1 -1
  54. package/docs/api/classes/Image.md +1 -1
  55. package/docs/api/classes/LaminaPdfError.md +1 -1
  56. package/docs/api/classes/Page.md +1 -1
  57. package/docs/api/classes/PageRef.md +1 -1
  58. package/docs/api/classes/PageText.md +1 -1
  59. package/docs/api/classes/PageTextRun.md +1 -1
  60. package/docs/api/classes/PendingPath.md +1 -1
  61. package/docs/api/classes/SaveJob.md +1 -1
  62. package/docs/api/classes/Surface.md +10 -5
  63. package/docs/api/classes/Transaction.md +1 -1
  64. package/docs/api/functions/callbackSource.md +1 -1
  65. package/docs/api/functions/extractWithModels.md +70 -0
  66. package/docs/api/functions/httpRangeSource.md +2 -2
  67. package/docs/api/functions/init.md +1 -1
  68. package/docs/api/functions/isExtractLoaded.md +1 -1
  69. package/docs/api/functions/isInitialized.md +1 -1
  70. package/docs/api/functions/isLaminaPdfError.md +1 -1
  71. package/docs/api/functions/isTextLoaded.md +1 -1
  72. package/docs/api/functions/loadExtract.md +1 -1
  73. package/docs/api/functions/loadText.md +1 -1
  74. package/docs/api/functions/onLeak.md +1 -1
  75. package/docs/api/functions/reset.md +1 -1
  76. package/docs/api/functions/wasmMemory.md +1 -1
  77. package/docs/api/interfaces/BuilderOptions.md +1 -1
  78. package/docs/api/interfaces/ByteRange.md +1 -1
  79. package/docs/api/interfaces/ChunkOptions.md +1 -1
  80. package/docs/api/interfaces/Diagnostic.md +1 -1
  81. package/docs/api/interfaces/ExtractOptions.md +1 -1
  82. package/docs/api/interfaces/ExtractResult.md +1 -1
  83. package/docs/api/interfaces/FontInfo.md +1 -1
  84. package/docs/api/interfaces/HostModels.md +57 -0
  85. package/docs/api/interfaces/HttpRangeOptions.md +1 -1
  86. package/docs/api/interfaces/InitOptions.md +1 -1
  87. package/docs/api/interfaces/LayoutRegion.md +38 -0
  88. package/docs/api/interfaces/Leak.md +1 -1
  89. package/docs/api/interfaces/Location.md +1 -1
  90. package/docs/api/interfaces/ModelInfo.md +45 -0
  91. package/docs/api/interfaces/ModelRequest.md +45 -0
  92. package/docs/api/interfaces/Models.md +45 -0
  93. package/docs/api/interfaces/OcrWord.md +37 -0
  94. package/docs/api/interfaces/OpLog.md +1 -1
  95. package/docs/api/interfaces/OpenOptions.md +1 -1
  96. package/docs/api/interfaces/PageTextOptions.md +1 -1
  97. package/docs/api/interfaces/PathBuilder.md +1 -1
  98. package/docs/api/interfaces/QuadPoint.md +1 -1
  99. package/docs/api/interfaces/RangeOptions.md +1 -1
  100. package/docs/api/interfaces/RangeSource.md +1 -1
  101. package/docs/api/interfaces/Reflow.md +61 -0
  102. package/docs/api/interfaces/ReflowChecks.md +69 -0
  103. package/docs/api/interfaces/StrokeStyle.md +1 -1
  104. package/docs/api/interfaces/TagSpec.md +3 -3
  105. package/docs/api/interfaces/TextBoxOptions.md +1 -1
  106. package/docs/api/interfaces/TextGlyph.md +1 -1
  107. package/docs/api/interfaces/TextOptions.md +1 -1
  108. package/docs/api/interfaces/WasmMemory.md +1 -1
  109. package/docs/api/type-aliases/AfRelationship.md +1 -1
  110. package/docs/api/type-aliases/Align.md +1 -1
  111. package/docs/api/type-aliases/ArtifactKind.md +2 -2
  112. package/docs/api/type-aliases/AttachmentOptions.md +1 -1
  113. package/docs/api/type-aliases/BlendMode.md +1 -1
  114. package/docs/api/type-aliases/BoxRect.md +1 -1
  115. package/docs/api/type-aliases/BuildOptions.md +1 -1
  116. package/docs/api/type-aliases/Cell.md +1 -1
  117. package/docs/api/type-aliases/Chunk.md +1 -1
  118. package/docs/api/type-aliases/Color.md +1 -1
  119. package/docs/api/type-aliases/Coordinates.md +1 -1
  120. package/docs/api/type-aliases/Direction.md +1 -1
  121. package/docs/api/type-aliases/DocumentInfo.md +1 -1
  122. package/docs/api/type-aliases/DocumentProperties.md +18 -0
  123. package/docs/api/type-aliases/DropReason.md +2 -2
  124. package/docs/api/type-aliases/Dropped.md +1 -1
  125. package/docs/api/type-aliases/Edited.md +1 -1
  126. package/docs/api/type-aliases/ErrorCode.md +2 -2
  127. package/docs/api/type-aliases/ErrorKind.md +1 -1
  128. package/docs/api/type-aliases/ExtractFormat.md +1 -1
  129. package/docs/api/type-aliases/ExtractJobOptions.md +31 -0
  130. package/docs/api/type-aliases/ExtractStep.md +61 -0
  131. package/docs/api/type-aliases/ExtractedBlock.md +13 -1
  132. package/docs/api/type-aliases/ExtractedPage.md +9 -1
  133. package/docs/api/type-aliases/ExtractedSource.md +1 -1
  134. package/docs/api/type-aliases/Extraction.md +1 -1
  135. package/docs/api/type-aliases/FillRule.md +1 -1
  136. package/docs/api/type-aliases/Fit.md +1 -1
  137. package/docs/api/type-aliases/Flags.md +1 -1
  138. package/docs/api/type-aliases/Generator.md +5 -3
  139. package/docs/api/type-aliases/GlyphQuad.md +1 -1
  140. package/docs/api/type-aliases/InfoPatch.md +1 -1
  141. package/docs/api/type-aliases/LaminaPdfWarning.md +1 -1
  142. package/docs/api/type-aliases/LimitName.md +1 -1
  143. package/docs/api/type-aliases/Limits.md +1 -1
  144. package/docs/api/type-aliases/LineBox.md +1 -1
  145. package/docs/api/type-aliases/LineCap.md +1 -1
  146. package/docs/api/type-aliases/LineJoin.md +1 -1
  147. package/docs/api/type-aliases/LinkTarget.md +1 -1
  148. package/docs/api/type-aliases/Metadata.md +1 -1
  149. package/docs/api/type-aliases/ModelResult.md +15 -0
  150. package/docs/api/type-aliases/Op.md +1 -1
  151. package/docs/api/type-aliases/OutlineEntry.md +1 -1
  152. package/docs/api/type-aliases/OutlineNode.md +15 -0
  153. package/docs/api/type-aliases/Overflow.md +1 -1
  154. package/docs/api/type-aliases/PageImageReason.md +15 -0
  155. package/docs/api/type-aliases/PageInfo.md +1 -1
  156. package/docs/api/type-aliases/PageLabel.md +1 -1
  157. package/docs/api/type-aliases/PageLink.md +20 -0
  158. package/docs/api/type-aliases/PageSizeName.md +1 -1
  159. package/docs/api/type-aliases/Point.md +1 -1
  160. package/docs/api/type-aliases/Profile.md +1 -1
  161. package/docs/api/type-aliases/Progress.md +1 -1
  162. package/docs/api/type-aliases/ReadingOrder.md +1 -1
  163. package/docs/api/type-aliases/Rect.md +1 -1
  164. package/docs/api/type-aliases/ReflowBlock.md +44 -0
  165. package/docs/api/type-aliases/ReflowKind.md +15 -0
  166. package/docs/api/type-aliases/ReflowRefusal.md +16 -0
  167. package/docs/api/type-aliases/ReflowSource.md +15 -0
  168. package/docs/api/type-aliases/Region.md +1 -1
  169. package/docs/api/type-aliases/RegionLabel.md +15 -0
  170. package/docs/api/type-aliases/RenderMode.md +1 -1
  171. package/docs/api/type-aliases/Rotation.md +1 -1
  172. package/docs/api/type-aliases/SaveOptions.md +1 -1
  173. package/docs/api/type-aliases/SaveReport.md +1 -1
  174. package/docs/api/type-aliases/Span.md +12 -1
  175. package/docs/api/type-aliases/SplitOn.md +1 -1
  176. package/docs/api/type-aliases/Standard14.md +1 -1
  177. package/docs/api/type-aliases/StructRef.md +1 -1
  178. package/docs/api/type-aliases/StructSource.md +1 -1
  179. package/docs/api/type-aliases/StructureKid.md +15 -0
  180. package/docs/api/type-aliases/StructureNode.md +16 -0
  181. package/docs/api/type-aliases/TableDetector.md +1 -1
  182. package/docs/api/type-aliases/TableMode.md +1 -1
  183. package/docs/api/type-aliases/TableScope.md +1 -1
  184. package/docs/api/type-aliases/Tag.md +1 -1
  185. package/docs/api/type-aliases/TagName.md +1 -1
  186. package/docs/api/type-aliases/Target.md +15 -0
  187. package/docs/api/type-aliases/TargetView.md +18 -0
  188. package/docs/api/type-aliases/TextLayer.md +72 -0
  189. package/docs/api/type-aliases/TextLayerStatus.md +15 -0
  190. package/docs/api/type-aliases/TextLayout.md +1 -1
  191. package/docs/api/type-aliases/TextRange.md +1 -1
  192. package/docs/api/type-aliases/TextRunInfo.md +1 -1
  193. package/docs/api/type-aliases/Transform.md +1 -1
  194. package/docs/api/type-aliases/UndoOutcome.md +1 -1
  195. package/docs/api/type-aliases/ViewerPreferences.md +1 -1
  196. package/docs/api/type-aliases/WarningCode.md +2 -2
  197. package/docs/api/type-aliases/WasmSource.md +1 -1
  198. package/docs/api/variables/Matrix.md +1 -1
  199. package/docs/api/variables/PAGE_SIZES.md +1 -1
  200. package/docs/api/variables/TAG_NAMES.md +2 -2
  201. package/docs/errors/README.md +18 -1
  202. package/docs/errors/aes-padding-invalid.md +1 -1
  203. package/docs/errors/already-initialized.md +1 -1
  204. package/docs/errors/binary-output-to-terminal.md +1 -1
  205. package/docs/errors/builder-finished.md +1 -1
  206. package/docs/errors/cancelled.md +1 -1
  207. package/docs/errors/cmap-invalid.md +1 -1
  208. package/docs/errors/collection-index.md +1 -1
  209. package/docs/errors/color-components.md +1 -1
  210. package/docs/errors/content-bad-operands.md +1 -1
  211. package/docs/errors/content-path-unpainted.md +1 -1
  212. package/docs/errors/content-resource-missing.md +1 -1
  213. package/docs/errors/content-syntax.md +1 -1
  214. package/docs/errors/content-unbalanced-bt.md +1 -1
  215. package/docs/errors/content-unbalanced-marked.md +1 -1
  216. package/docs/errors/content-unbalanced-q.md +1 -1
  217. package/docs/errors/content-unknown-operator.md +1 -1
  218. package/docs/errors/covered-text.md +33 -0
  219. package/docs/errors/data-pending.md +1 -1
  220. package/docs/errors/decompress.md +1 -1
  221. package/docs/errors/device-color-without-output-intent.md +1 -1
  222. package/docs/errors/direct-page.md +1 -1
  223. package/docs/errors/disposed.md +1 -1
  224. package/docs/errors/document-changed.md +1 -1
  225. package/docs/errors/embedded-file-forbidden.md +1 -1
  226. package/docs/errors/embedded-file-without-mime-type.md +1 -1
  227. package/docs/errors/encoding-full.md +1 -1
  228. package/docs/errors/encrypted-base.md +1 -1
  229. package/docs/errors/extract-column-order-uncertain.md +38 -0
  230. package/docs/errors/extract-limit-blocks.md +1 -1
  231. package/docs/errors/extract-module-not-loaded.md +1 -1
  232. package/docs/errors/extract-needs-ocr.md +37 -0
  233. package/docs/errors/extract-reading-order-ambiguous.md +1 -1
  234. package/docs/errors/extract-struct-tree-ignored.md +1 -1
  235. package/docs/errors/extract-table-ambiguous.md +1 -1
  236. package/docs/errors/extract-table-limit.md +1 -1
  237. package/docs/errors/extract-untagged-content.md +1 -1
  238. package/docs/errors/fetch-failed.md +3 -3
  239. package/docs/errors/flate-truncated.md +1 -1
  240. package/docs/errors/flow-content-too-large.md +34 -0
  241. package/docs/errors/flow-keep-broken.md +34 -0
  242. package/docs/errors/flow-layout-unstable.md +38 -0
  243. package/docs/errors/font-invalid.md +1 -1
  244. package/docs/errors/font-mismatch.md +1 -1
  245. package/docs/errors/font-not-embeddable.md +1 -1
  246. package/docs/errors/font-not-embedded.md +1 -1
  247. package/docs/errors/font-not-shapable.md +1 -1
  248. package/docs/errors/glyph-out-of-range.md +1 -1
  249. package/docs/errors/glyph-without-unicode.md +7 -5
  250. package/docs/errors/heading-level-skipped.md +1 -1
  251. package/docs/errors/image-data-length.md +1 -1
  252. package/docs/errors/image-too-large.md +1 -1
  253. package/docs/errors/inline-image-unterminated.md +1 -1
  254. package/docs/errors/input-unreadable.md +1 -1
  255. package/docs/errors/instance-reset.md +1 -1
  256. package/docs/errors/invalid-argument.md +1 -1
  257. package/docs/errors/invalid-axis-value.md +1 -1
  258. package/docs/errors/invalid-box.md +1 -1
  259. package/docs/errors/invalid-color.md +1 -1
  260. package/docs/errors/invalid-command-line.md +1 -1
  261. package/docs/errors/invalid-date.md +1 -1
  262. package/docs/errors/invalid-entry.md +1 -1
  263. package/docs/errors/invalid-feature.md +1 -1
  264. package/docs/errors/invalid-font.md +1 -1
  265. package/docs/errors/invalid-geometry.md +1 -1
  266. package/docs/errors/invalid-icc-profile.md +1 -1
  267. package/docs/errors/invalid-image.md +1 -1
  268. package/docs/errors/invalid-op-log.md +1 -1
  269. package/docs/errors/invalid-page-label.md +1 -1
  270. package/docs/errors/invalid-page-labels.md +1 -1
  271. package/docs/errors/invalid-page-range.md +1 -1
  272. package/docs/errors/invalid-rotate.md +1 -1
  273. package/docs/errors/invalid-spans.md +39 -0
  274. package/docs/errors/invalid-structure-nesting.md +1 -1
  275. package/docs/errors/invalid-structure.md +1 -1
  276. package/docs/errors/invalid-text-range.md +1 -1
  277. package/docs/errors/job-finished.md +1 -1
  278. package/docs/errors/limit-exceeded.md +1 -1
  279. package/docs/errors/link-without-contents.md +1 -1
  280. package/docs/errors/link-without-structure.md +1 -1
  281. package/docs/errors/markdown-html-ignored.md +33 -0
  282. package/docs/errors/markdown-image-missing.md +34 -0
  283. package/docs/errors/missing-alt-text.md +1 -1
  284. package/docs/errors/missing-glyph.md +1 -1
  285. package/docs/errors/missing-header.md +1 -1
  286. package/docs/errors/missing-lang.md +1 -1
  287. package/docs/errors/missing-root.md +1 -1
  288. package/docs/errors/missing-title.md +1 -1
  289. package/docs/errors/model-failed.md +33 -0
  290. package/docs/errors/model-needs-host.md +40 -0
  291. package/docs/errors/model-result-unexpected.md +36 -0
  292. package/docs/errors/name-tree-node-skipped.md +1 -1
  293. package/docs/errors/nested-transaction.md +1 -1
  294. package/docs/errors/no-pending-save.md +1 -1
  295. package/docs/errors/no-transaction.md +1 -1
  296. package/docs/errors/not-initialized.md +1 -1
  297. package/docs/errors/not-pdf.md +1 -1
  298. package/docs/errors/not-rebased.md +1 -1
  299. package/docs/errors/object-number-out-of-range.md +1 -1
  300. package/docs/errors/objstm-index-mismatch.md +1 -1
  301. package/docs/errors/out-of-memory.md +1 -1
  302. package/docs/errors/outline-cycle.md +1 -1
  303. package/docs/errors/outline-item-skipped.md +1 -1
  304. package/docs/errors/output-unwritable.md +1 -1
  305. package/docs/errors/overwrite-refused.md +1 -1
  306. package/docs/errors/page-count-mismatch.md +1 -1
  307. package/docs/errors/page-index-out-of-range.md +1 -1
  308. package/docs/errors/page-tree-node-skipped.md +1 -1
  309. package/docs/errors/password-required.md +1 -1
  310. package/docs/errors/path-outside-roots.md +1 -1
  311. package/docs/errors/perms-mismatch.md +1 -1
  312. package/docs/errors/profile-version-conflict.md +1 -1
  313. package/docs/errors/redaction-not-applied.md +32 -0
  314. package/docs/errors/reference-cycle.md +1 -1
  315. package/docs/errors/render-backend-unavailable.md +1 -1
  316. package/docs/errors/render-failed.md +1 -1
  317. package/docs/errors/render-too-large.md +1 -1
  318. package/docs/errors/repaired-base.md +1 -1
  319. package/docs/errors/requires-rewrite.md +1 -1
  320. package/docs/errors/revision-index-out-of-range.md +34 -0
  321. package/docs/errors/saved-not-rebased.md +1 -1
  322. package/docs/errors/sink-not-empty.md +1 -1
  323. package/docs/errors/sink.md +1 -1
  324. package/docs/errors/source-budget-exceeded.md +1 -1
  325. package/docs/errors/source-changed.md +1 -1
  326. package/docs/errors/source.md +1 -1
  327. package/docs/errors/stale-generation.md +1 -1
  328. package/docs/errors/stream-length-recovered.md +1 -1
  329. package/docs/errors/strict.md +1 -1
  330. package/docs/errors/subset-failed.md +1 -1
  331. package/docs/errors/syntax.md +1 -1
  332. package/docs/errors/tag-element-not-open.md +41 -0
  333. package/docs/errors/tag-element-unclosed.md +34 -0
  334. package/docs/errors/text-in-earlier-revision.md +36 -0
  335. package/docs/errors/text-module-not-loaded.md +1 -1
  336. package/docs/errors/text-overflow.md +1 -1
  337. package/docs/errors/tounicode-conflict.md +1 -1
  338. package/docs/errors/type.md +1 -1
  339. package/docs/errors/unexpected-eof.md +1 -1
  340. package/docs/errors/unknown-axis.md +1 -1
  341. package/docs/errors/unknown-code.md +1 -1
  342. package/docs/errors/unknown-destination.md +1 -1
  343. package/docs/errors/unknown-font.md +1 -1
  344. package/docs/errors/unknown-option.md +1 -1
  345. package/docs/errors/unknown-page.md +1 -1
  346. package/docs/errors/unmapped-glyph.md +1 -1
  347. package/docs/errors/unnumbered-heading-misused.md +1 -1
  348. package/docs/errors/unset-object.md +1 -1
  349. package/docs/errors/unsupported-filter.md +1 -1
  350. package/docs/errors/unsupported-image.md +1 -1
  351. package/docs/errors/unsupported-layout-option.md +1 -1
  352. package/docs/errors/unsupported-security-handler.md +1 -1
  353. package/docs/errors/unsupported-version.md +1 -1
  354. package/docs/errors/untagged-content.md +1 -1
  355. package/docs/errors/warnings-truncated.md +1 -1
  356. package/docs/errors/wasm-trap.md +1 -1
  357. package/docs/errors/whole-font-rebuilt.md +1 -1
  358. package/docs/errors/worker-crashed.md +1 -1
  359. package/docs/errors/worker-failed.md +1 -1
  360. package/docs/errors/worker-version-mismatch.md +1 -1
  361. package/docs/errors/would-invalidate-signatures.md +1 -1
  362. package/docs/errors/wrong-document.md +1 -1
  363. package/docs/errors/wrong-password.md +1 -1
  364. package/docs/errors/xobject-cycle.md +1 -1
  365. package/docs/errors/xref-repaired.md +1 -1
  366. package/docs/errors/xrefstm-ignored.md +1 -1
  367. package/docs/llms.txt +7 -1
  368. package/docs/pages/concepts/dependencies.md +2 -2
  369. package/docs/pages/concepts/drawing-pages.md +76 -0
  370. package/docs/pages/concepts/errors-and-warnings.md +6 -2
  371. package/docs/pages/concepts/how-lamina-thinks.md +13 -1
  372. package/docs/pages/concepts/pages-and-coordinates.md +9 -1
  373. package/docs/pages/guides/accessible-pdfs.md +3 -1
  374. package/docs/pages/guides/archival-pdfs.md +5 -1
  375. package/docs/pages/guides/edit-a-pdf.md +8 -2
  376. package/docs/pages/guides/flowing-pages.md +379 -0
  377. package/docs/pages/guides/fonts-and-text.md +3 -1
  378. package/docs/pages/guides/images-and-vectors.md +3 -1
  379. package/docs/pages/guides/keep-the-page-responsive.md +8 -4
  380. package/docs/pages/guides/links-outlines-and-metadata.md +3 -1
  381. package/docs/pages/guides/open-large-files.md +69 -0
  382. package/docs/pages/guides/password-protected-files.md +1 -1
  383. package/docs/pages/guides/save-a-pdf.md +12 -2
  384. package/docs/pages/guides/test-generated-pdfs.md +324 -0
  385. package/docs/pages/guides/untrusted-files.md +3 -1
  386. package/docs/pages/index.md +2 -2
  387. package/docs/pages/install.md +9 -5
  388. package/docs/pages/quick-start/browser.md +5 -1
  389. package/docs/pages/quick-start/bun.md +5 -1
  390. package/docs/pages/quick-start/deno.md +5 -1
  391. package/docs/pages/quick-start/node.md +5 -1
  392. package/docs/pages/quick-start/rust.md +6 -2
  393. package/docs/pages/quick-start/workers.md +2 -2
  394. package/docs/pages/recipes/cloudflare-worker.md +1 -1
  395. package/docs/pages/recipes/element-flow.md +248 -0
  396. package/docs/pages/recipes/extract-markdown.md +44 -6
  397. package/docs/pages/recipes/generate-then-edit.md +13 -6
  398. package/docs/pages/recipes/hello.md +13 -6
  399. package/docs/pages/recipes/images-and-vectors.md +13 -6
  400. package/docs/pages/recipes/invoice.md +13 -6
  401. package/docs/pages/recipes/links-and-outlines.md +13 -6
  402. package/docs/pages/recipes/multilingual.md +13 -6
  403. package/docs/pages/recipes/open-untrusted.md +1 -1
  404. package/docs/pages/recipes/pdf-a-archive.md +13 -6
  405. package/docs/pages/recipes/pdf-a3-invoice-with-xml.md +13 -6
  406. package/docs/pages/recipes/pdf-ua-report.md +13 -6
  407. package/docs/pages/recipes/report.md +2 -2
  408. package/docs/pages/recipes/web-worker-client.md +1 -1
  409. package/docs/pages/recipes.md +3 -2
  410. package/docs/pages/reference/benchmarks.md +93 -0
  411. package/docs/pages/reference/changelog.md +77 -1
  412. package/docs/pages/reference/codes.md +1 -1
  413. package/docs/pages/reference/glossary.md +1 -1
  414. package/docs/pages/reference/rust.md +11 -11
  415. package/docs/pages/reference/stability.md +3 -3
  416. package/docs/pages/start/coding-agents.md +1 -1
  417. package/docs/pages/start/first-pdf.md +6 -2
  418. package/docs/pages/troubleshooting.md +1 -1
  419. package/docs/schemas/error.schema.json +18 -1
  420. package/package.json +5 -3
  421. package/schemas/error.schema.json +18 -1
@@ -0,0 +1,236 @@
1
+ ---
2
+ version: "0.2.0-alpha.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -0,0 +1,70 @@
1
+ ---
2
+ version: "0.2.0-alpha.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
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.5"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)
@@ -0,0 +1,57 @@
1
+ ---
2
+ version: "0.2.0-alpha.5"
3
+ ---
4
+
5
+ [**@laminapdf/sdk**](../README.md)
6
+
7
+ ***
8
+
9
+ [@laminapdf/sdk](../README.md) / HostModels
10
+
11
+ # Interface: HostModels
12
+
13
+ The host's models for [extractWithModels](../functions/extractWithModels.md): each renders the page it is asked for and runs.
14
+
15
+ ## Properties
16
+
17
+ ### layout?
18
+
19
+ > `readonly` `optional` **layout?**: (`request`, `signal`) => `Promise`\<readonly [`LayoutRegion`](LayoutRegion.md)[]\>
20
+
21
+ A layout model's regions on `request.page`, rendered at `request.dpi`.
22
+
23
+ #### Parameters
24
+
25
+ ##### request
26
+
27
+ [`ModelRequest`](ModelRequest.md)
28
+
29
+ ##### signal
30
+
31
+ `AbortSignal` \| `undefined`
32
+
33
+ #### Returns
34
+
35
+ `Promise`\<readonly [`LayoutRegion`](LayoutRegion.md)[]\>
36
+
37
+ ***
38
+
39
+ ### ocr?
40
+
41
+ > `readonly` `optional` **ocr?**: (`request`, `signal`) => `Promise`\<readonly [`OcrWord`](OcrWord.md)[]\>
42
+
43
+ An OCR engine's words on `request.page`, rendered at `request.dpi`, in `request.langs`.
44
+
45
+ #### Parameters
46
+
47
+ ##### request
48
+
49
+ [`ModelRequest`](ModelRequest.md)
50
+
51
+ ##### signal
52
+
53
+ `AbortSignal` \| `undefined`
54
+
55
+ #### Returns
56
+
57
+ `Promise`\<readonly [`OcrWord`](OcrWord.md)[]\>
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "0.2.0-alpha.3"
2
+ version: "0.2.0-alpha.5"
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.5"
3
3
  ---
4
4
 
5
5
  [**@laminapdf/sdk**](../README.md)