@laminapdf/sdk 0.2.0-alpha.2 → 0.2.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -7
- package/dist/api.d.ts +5 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +3 -2
- package/dist/api.js.map +1 -1
- package/dist/builder.d.ts +35 -19
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +114 -80
- package/dist/builder.js.map +1 -1
- package/dist/document.d.ts +47 -21
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +112 -67
- package/dist/document.js.map +1 -1
- package/dist/errors.d.ts +5 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +10 -16
- package/dist/errors.js.map +1 -1
- package/dist/extract.d.ts +57 -0
- package/dist/extract.d.ts.map +1 -0
- package/dist/extract.js +5 -0
- package/dist/extract.js.map +1 -0
- package/dist/font.d.ts +13 -6
- package/dist/font.d.ts.map +1 -1
- package/dist/font.js +50 -20
- package/dist/font.js.map +1 -1
- package/dist/generated/codes.d.ts +18 -6
- package/dist/generated/codes.d.ts.map +1 -1
- package/dist/generated/codes.js +59 -4
- package/dist/generated/codes.js.map +1 -1
- package/dist/generated/explain.d.ts.map +1 -1
- package/dist/generated/explain.js +27 -10
- package/dist/generated/explain.js.map +1 -1
- package/dist/generated/extract.d.ts +235 -0
- package/dist/generated/extract.d.ts.map +1 -0
- package/dist/generated/extract.js +4 -0
- package/dist/generated/extract.js.map +1 -0
- package/dist/init.d.ts +13 -5
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +23 -11
- package/dist/init.js.map +1 -1
- package/dist/internal/handle.d.ts +58 -0
- package/dist/internal/handle.d.ts.map +1 -0
- package/dist/internal/handle.js +113 -0
- package/dist/internal/handle.js.map +1 -0
- package/dist/internal/instance.d.ts +56 -0
- package/dist/internal/instance.d.ts.map +1 -0
- package/dist/internal/instance.js +125 -0
- package/dist/internal/instance.js.map +1 -0
- package/dist/source/http.js +1 -1
- package/dist/source/http.js.map +1 -1
- package/dist/source/range.d.ts +6 -1
- package/dist/source/range.d.ts.map +1 -1
- package/dist/source/range.js +10 -6
- package/dist/source/range.js.map +1 -1
- package/dist/text.d.ts +3 -3
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +3 -3
- package/dist/text.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/dist/worker/client.d.ts +3 -2
- package/dist/worker/client.d.ts.map +1 -1
- package/dist/worker/client.js +6 -4
- package/dist/worker/client.js.map +1 -1
- package/dist/worker/entry.js +1 -1
- package/dist/worker/entry.js.map +1 -1
- package/dist/worker/server.d.ts.map +1 -1
- package/dist/worker/server.js +42 -9
- package/dist/worker/server.js.map +1 -1
- package/dist/worker/support.d.ts +6 -2
- package/dist/worker/support.d.ts.map +1 -1
- package/dist/worker/support.js +1 -0
- package/dist/worker/support.js.map +1 -1
- package/dist/worker/types.d.ts +8 -1
- package/dist/worker/types.d.ts.map +1 -1
- package/docs/AGENTS.md +14 -0
- package/docs/api/README.md +147 -0
- package/docs/api/classes/Builder.md +467 -0
- package/docs/api/classes/Document.md +742 -0
- package/docs/api/classes/Font.md +74 -0
- package/docs/api/classes/Image.md +140 -0
- package/docs/api/classes/LaminaPdfError.md +189 -0
- package/docs/api/classes/Page.md +178 -0
- package/docs/api/classes/PageRef.md +253 -0
- package/docs/api/classes/PageText.md +129 -0
- package/docs/api/classes/PageTextRun.md +167 -0
- package/docs/api/classes/PendingPath.md +97 -0
- package/docs/api/classes/SaveJob.md +205 -0
- package/docs/api/classes/Surface.md +326 -0
- package/docs/api/classes/Transaction.md +111 -0
- package/docs/api/functions/callbackSource.md +33 -0
- package/docs/api/functions/httpRangeSource.md +48 -0
- package/docs/api/functions/init.md +36 -0
- package/docs/api/functions/isExtractLoaded.md +21 -0
- package/docs/api/functions/isInitialized.md +19 -0
- package/docs/api/functions/isLaminaPdfError.md +41 -0
- package/docs/api/functions/isTextLoaded.md +19 -0
- package/docs/api/functions/loadExtract.md +28 -0
- package/docs/api/functions/loadText.md +28 -0
- package/docs/api/functions/onLeak.md +29 -0
- package/docs/api/functions/reset.md +22 -0
- package/docs/api/functions/wasmMemory.md +22 -0
- package/docs/api/interfaces/BuilderOptions.md +108 -0
- package/docs/api/interfaces/ByteRange.md +29 -0
- package/docs/api/interfaces/ChunkOptions.md +37 -0
- package/docs/api/interfaces/Diagnostic.md +67 -0
- package/docs/api/interfaces/ExtractOptions.md +92 -0
- package/docs/api/interfaces/ExtractResult.md +37 -0
- package/docs/api/interfaces/FontInfo.md +37 -0
- package/docs/api/interfaces/HttpRangeOptions.md +78 -0
- package/docs/api/interfaces/InitOptions.md +40 -0
- package/docs/api/interfaces/Leak.md +21 -0
- package/docs/api/interfaces/Location.md +53 -0
- package/docs/api/interfaces/OpLog.md +25 -0
- package/docs/api/interfaces/OpenOptions.md +37 -0
- package/docs/api/interfaces/PageTextOptions.md +21 -0
- package/docs/api/interfaces/PathBuilder.md +195 -0
- package/docs/api/interfaces/QuadPoint.md +25 -0
- package/docs/api/interfaces/RangeOptions.md +54 -0
- package/docs/api/interfaces/RangeSource.md +59 -0
- package/docs/api/interfaces/StrokeStyle.md +61 -0
- package/docs/api/interfaces/TagSpec.md +69 -0
- package/docs/api/interfaces/TextBoxOptions.md +93 -0
- package/docs/api/interfaces/TextGlyph.md +29 -0
- package/docs/api/interfaces/TextOptions.md +101 -0
- package/docs/api/interfaces/WasmMemory.md +37 -0
- package/docs/api/type-aliases/AfRelationship.md +15 -0
- package/docs/api/type-aliases/Align.md +15 -0
- package/docs/api/type-aliases/ArtifactKind.md +15 -0
- package/docs/api/type-aliases/AttachmentOptions.md +15 -0
- package/docs/api/type-aliases/BlendMode.md +15 -0
- package/docs/api/type-aliases/BoxRect.md +15 -0
- package/docs/api/type-aliases/BuildOptions.md +15 -0
- package/docs/api/type-aliases/Cell.md +71 -0
- package/docs/api/type-aliases/Chunk.md +79 -0
- package/docs/api/type-aliases/Color.md +16 -0
- package/docs/api/type-aliases/Coordinates.md +55 -0
- package/docs/api/type-aliases/Direction.md +15 -0
- package/docs/api/type-aliases/DocumentInfo.md +15 -0
- package/docs/api/type-aliases/DropReason.md +15 -0
- package/docs/api/type-aliases/Dropped.md +59 -0
- package/docs/api/type-aliases/Edited.md +15 -0
- package/docs/api/type-aliases/ErrorCode.md +15 -0
- package/docs/api/type-aliases/ErrorKind.md +15 -0
- package/docs/api/type-aliases/ExtractFormat.md +15 -0
- package/docs/api/type-aliases/ExtractedBlock.md +82 -0
- package/docs/api/type-aliases/ExtractedPage.md +65 -0
- package/docs/api/type-aliases/ExtractedSource.md +48 -0
- package/docs/api/type-aliases/Extraction.md +22 -0
- package/docs/api/type-aliases/FillRule.md +15 -0
- package/docs/api/type-aliases/Fit.md +15 -0
- package/docs/api/type-aliases/Flags.md +15 -0
- package/docs/api/type-aliases/Generator.md +41 -0
- package/docs/api/type-aliases/GlyphQuad.md +15 -0
- package/docs/api/type-aliases/InfoPatch.md +15 -0
- package/docs/api/type-aliases/LaminaPdfWarning.md +16 -0
- package/docs/api/type-aliases/LimitName.md +15 -0
- package/docs/api/type-aliases/Limits.md +15 -0
- package/docs/api/type-aliases/LineBox.md +15 -0
- package/docs/api/type-aliases/LineCap.md +15 -0
- package/docs/api/type-aliases/LineJoin.md +15 -0
- package/docs/api/type-aliases/LinkTarget.md +15 -0
- package/docs/api/type-aliases/Metadata.md +15 -0
- package/docs/api/type-aliases/Op.md +15 -0
- package/docs/api/type-aliases/OutlineEntry.md +15 -0
- package/docs/api/type-aliases/Overflow.md +15 -0
- package/docs/api/type-aliases/PageInfo.md +15 -0
- package/docs/api/type-aliases/PageLabel.md +15 -0
- package/docs/api/type-aliases/PageSizeName.md +15 -0
- package/docs/api/type-aliases/Point.md +15 -0
- package/docs/api/type-aliases/Profile.md +15 -0
- package/docs/api/type-aliases/Progress.md +15 -0
- package/docs/api/type-aliases/ReadingOrder.md +15 -0
- package/docs/api/type-aliases/Rect.md +15 -0
- package/docs/api/type-aliases/Region.md +31 -0
- package/docs/api/type-aliases/RenderMode.md +15 -0
- package/docs/api/type-aliases/Rotation.md +15 -0
- package/docs/api/type-aliases/SaveOptions.md +15 -0
- package/docs/api/type-aliases/SaveReport.md +15 -0
- package/docs/api/type-aliases/Span.md +63 -0
- package/docs/api/type-aliases/SplitOn.md +15 -0
- package/docs/api/type-aliases/Standard14.md +15 -0
- package/docs/api/type-aliases/StructRef.md +41 -0
- package/docs/api/type-aliases/StructSource.md +17 -0
- package/docs/api/type-aliases/TableDetector.md +15 -0
- package/docs/api/type-aliases/TableMode.md +15 -0
- package/docs/api/type-aliases/TableScope.md +15 -0
- package/docs/api/type-aliases/Tag.md +15 -0
- package/docs/api/type-aliases/TagName.md +15 -0
- package/docs/api/type-aliases/TextLayout.md +15 -0
- package/docs/api/type-aliases/TextRange.md +33 -0
- package/docs/api/type-aliases/TextRunInfo.md +15 -0
- package/docs/api/type-aliases/Transform.md +15 -0
- package/docs/api/type-aliases/UndoOutcome.md +15 -0
- package/docs/api/type-aliases/ViewerPreferences.md +15 -0
- package/docs/api/type-aliases/WarningCode.md +15 -0
- package/docs/api/type-aliases/WasmSource.md +16 -0
- package/docs/api/variables/Matrix.md +99 -0
- package/docs/api/variables/PAGE_SIZES.md +15 -0
- package/docs/api/variables/TAG_NAMES.md +15 -0
- package/docs/errors/README.md +156 -0
- package/docs/errors/aes-padding-invalid.md +34 -0
- package/docs/errors/already-initialized.md +34 -0
- package/docs/errors/binary-output-to-terminal.md +35 -0
- package/docs/errors/builder-finished.md +35 -0
- package/docs/errors/cancelled.md +35 -0
- package/docs/errors/cmap-invalid.md +42 -0
- package/docs/errors/collection-index.md +33 -0
- package/docs/errors/color-components.md +33 -0
- package/docs/errors/content-bad-operands.md +36 -0
- package/docs/errors/content-path-unpainted.md +36 -0
- package/docs/errors/content-resource-missing.md +37 -0
- package/docs/errors/content-syntax.md +36 -0
- package/docs/errors/content-unbalanced-bt.md +36 -0
- package/docs/errors/content-unbalanced-marked.md +36 -0
- package/docs/errors/content-unbalanced-q.md +36 -0
- package/docs/errors/content-unknown-operator.md +37 -0
- package/docs/errors/data-pending.md +34 -0
- package/docs/errors/decompress.md +34 -0
- package/docs/errors/device-color-without-output-intent.md +33 -0
- package/docs/errors/direct-page.md +34 -0
- package/docs/errors/disposed.md +34 -0
- package/docs/errors/document-changed.md +34 -0
- package/docs/errors/embedded-file-forbidden.md +35 -0
- package/docs/errors/embedded-file-without-mime-type.md +36 -0
- package/docs/errors/encoding-full.md +34 -0
- package/docs/errors/encrypted-base.md +33 -0
- package/docs/errors/extract-limit-blocks.md +35 -0
- package/docs/errors/extract-module-not-loaded.md +37 -0
- package/docs/errors/extract-reading-order-ambiguous.md +32 -0
- package/docs/errors/extract-struct-tree-ignored.md +32 -0
- package/docs/errors/extract-table-ambiguous.md +32 -0
- package/docs/errors/extract-table-limit.md +35 -0
- package/docs/errors/extract-untagged-content.md +32 -0
- package/docs/errors/fetch-failed.md +34 -0
- package/docs/errors/flate-truncated.md +34 -0
- package/docs/errors/font-invalid.md +36 -0
- package/docs/errors/font-mismatch.md +34 -0
- package/docs/errors/font-not-embeddable.md +34 -0
- package/docs/errors/font-not-embedded.md +35 -0
- package/docs/errors/font-not-shapable.md +33 -0
- package/docs/errors/glyph-out-of-range.md +34 -0
- package/docs/errors/glyph-without-unicode.md +35 -0
- package/docs/errors/heading-level-skipped.md +36 -0
- package/docs/errors/image-data-length.md +33 -0
- package/docs/errors/image-too-large.md +32 -0
- package/docs/errors/inline-image-unterminated.md +36 -0
- package/docs/errors/input-unreadable.md +37 -0
- package/docs/errors/instance-reset.md +34 -0
- package/docs/errors/invalid-argument.md +33 -0
- package/docs/errors/invalid-axis-value.md +32 -0
- package/docs/errors/invalid-box.md +34 -0
- package/docs/errors/invalid-color.md +32 -0
- package/docs/errors/invalid-command-line.md +44 -0
- package/docs/errors/invalid-date.md +34 -0
- package/docs/errors/invalid-entry.md +34 -0
- package/docs/errors/invalid-feature.md +32 -0
- package/docs/errors/invalid-font.md +32 -0
- package/docs/errors/invalid-geometry.md +32 -0
- package/docs/errors/invalid-icc-profile.md +32 -0
- package/docs/errors/invalid-image.md +33 -0
- package/docs/errors/invalid-op-log.md +33 -0
- package/docs/errors/invalid-page-label.md +34 -0
- package/docs/errors/invalid-page-labels.md +32 -0
- package/docs/errors/invalid-page-range.md +37 -0
- package/docs/errors/invalid-rotate.md +34 -0
- package/docs/errors/invalid-structure-nesting.md +38 -0
- package/docs/errors/invalid-structure.md +34 -0
- package/docs/errors/invalid-text-range.md +33 -0
- package/docs/errors/job-finished.md +34 -0
- package/docs/errors/limit-exceeded.md +38 -0
- package/docs/errors/link-without-contents.md +33 -0
- package/docs/errors/link-without-structure.md +37 -0
- package/docs/errors/missing-alt-text.md +33 -0
- package/docs/errors/missing-glyph.md +33 -0
- package/docs/errors/missing-header.md +37 -0
- package/docs/errors/missing-lang.md +32 -0
- package/docs/errors/missing-root.md +34 -0
- package/docs/errors/missing-title.md +32 -0
- package/docs/errors/name-tree-node-skipped.md +34 -0
- package/docs/errors/nested-transaction.md +34 -0
- package/docs/errors/no-pending-save.md +32 -0
- package/docs/errors/no-transaction.md +33 -0
- package/docs/errors/not-initialized.md +35 -0
- package/docs/errors/not-pdf.md +33 -0
- package/docs/errors/not-rebased.md +35 -0
- package/docs/errors/object-number-out-of-range.md +38 -0
- package/docs/errors/objstm-index-mismatch.md +36 -0
- package/docs/errors/out-of-memory.md +38 -0
- package/docs/errors/outline-cycle.md +34 -0
- package/docs/errors/outline-item-skipped.md +34 -0
- package/docs/errors/output-unwritable.md +37 -0
- package/docs/errors/overwrite-refused.md +36 -0
- package/docs/errors/page-count-mismatch.md +34 -0
- package/docs/errors/page-index-out-of-range.md +34 -0
- package/docs/errors/page-tree-node-skipped.md +35 -0
- package/docs/errors/password-required.md +36 -0
- package/docs/errors/path-outside-roots.md +32 -0
- package/docs/errors/perms-mismatch.md +34 -0
- package/docs/errors/profile-version-conflict.md +35 -0
- package/docs/errors/reference-cycle.md +35 -0
- package/docs/errors/render-backend-unavailable.md +32 -0
- package/docs/errors/render-failed.md +33 -0
- package/docs/errors/render-too-large.md +36 -0
- package/docs/errors/repaired-base.md +34 -0
- package/docs/errors/requires-rewrite.md +38 -0
- package/docs/errors/saved-not-rebased.md +34 -0
- package/docs/errors/sink-not-empty.md +33 -0
- package/docs/errors/sink.md +31 -0
- package/docs/errors/source-budget-exceeded.md +34 -0
- package/docs/errors/source-changed.md +33 -0
- package/docs/errors/source.md +30 -0
- package/docs/errors/stale-generation.md +34 -0
- package/docs/errors/stream-length-recovered.md +37 -0
- package/docs/errors/strict.md +34 -0
- package/docs/errors/subset-failed.md +31 -0
- package/docs/errors/syntax.md +34 -0
- package/docs/errors/text-module-not-loaded.md +36 -0
- package/docs/errors/text-overflow.md +34 -0
- package/docs/errors/tounicode-conflict.md +32 -0
- package/docs/errors/type.md +34 -0
- package/docs/errors/unexpected-eof.md +34 -0
- package/docs/errors/unknown-axis.md +33 -0
- package/docs/errors/unknown-code.md +36 -0
- package/docs/errors/unknown-destination.md +33 -0
- package/docs/errors/unknown-font.md +33 -0
- package/docs/errors/unknown-option.md +33 -0
- package/docs/errors/unknown-page.md +34 -0
- package/docs/errors/unmapped-glyph.md +36 -0
- package/docs/errors/unnumbered-heading-misused.md +34 -0
- package/docs/errors/unset-object.md +30 -0
- package/docs/errors/unsupported-filter.md +34 -0
- package/docs/errors/unsupported-image.md +33 -0
- package/docs/errors/unsupported-layout-option.md +33 -0
- package/docs/errors/unsupported-security-handler.md +34 -0
- package/docs/errors/unsupported-version.md +32 -0
- package/docs/errors/untagged-content.md +35 -0
- package/docs/errors/warnings-truncated.md +35 -0
- package/docs/errors/wasm-trap.md +37 -0
- package/docs/errors/whole-font-rebuilt.md +30 -0
- package/docs/errors/worker-crashed.md +33 -0
- package/docs/errors/worker-failed.md +32 -0
- package/docs/errors/worker-version-mismatch.md +34 -0
- package/docs/errors/would-invalidate-signatures.md +38 -0
- package/docs/errors/wrong-document.md +33 -0
- package/docs/errors/wrong-password.md +34 -0
- package/docs/errors/xobject-cycle.md +36 -0
- package/docs/errors/xref-repaired.md +36 -0
- package/docs/errors/xrefstm-ignored.md +34 -0
- package/docs/llms.txt +88 -0
- package/docs/pages/concepts/dependencies.md +44 -0
- package/docs/pages/concepts/errors-and-warnings.md +64 -0
- package/docs/pages/concepts/how-lamina-thinks.md +86 -0
- package/docs/pages/concepts/pages-and-coordinates.md +67 -0
- package/docs/pages/guides/accessible-pdfs.md +260 -0
- package/docs/pages/guides/archival-pdfs.md +429 -0
- package/docs/pages/guides/edit-a-pdf.md +137 -0
- package/docs/pages/guides/fonts-and-text.md +202 -0
- package/docs/pages/guides/images-and-vectors.md +219 -0
- package/docs/pages/guides/keep-the-page-responsive.md +81 -0
- package/docs/pages/guides/links-outlines-and-metadata.md +222 -0
- package/docs/pages/guides/password-protected-files.md +70 -0
- package/docs/pages/guides/save-a-pdf.md +144 -0
- package/docs/pages/guides/untrusted-files.md +80 -0
- package/docs/pages/index.md +33 -0
- package/docs/pages/install.md +75 -0
- package/docs/pages/quick-start/browser.md +67 -0
- package/docs/pages/quick-start/bun.md +60 -0
- package/docs/pages/quick-start/deno.md +58 -0
- package/docs/pages/quick-start/node.md +61 -0
- package/docs/pages/quick-start/rust.md +58 -0
- package/docs/pages/quick-start/workers.md +139 -0
- package/docs/pages/recipes/cloudflare-worker.md +115 -0
- package/docs/pages/recipes/extract-markdown.md +114 -0
- package/docs/pages/recipes/generate-then-edit.md +135 -0
- package/docs/pages/recipes/hello.md +94 -0
- package/docs/pages/recipes/images-and-vectors.md +209 -0
- package/docs/pages/recipes/invoice.md +226 -0
- package/docs/pages/recipes/links-and-outlines.md +215 -0
- package/docs/pages/recipes/multilingual.md +189 -0
- package/docs/pages/recipes/open-untrusted.md +65 -0
- package/docs/pages/recipes/pdf-a-archive.md +205 -0
- package/docs/pages/recipes/pdf-a3-invoice-with-xml.md +222 -0
- package/docs/pages/recipes/pdf-ua-report.md +237 -0
- package/docs/pages/recipes/report.md +125 -0
- package/docs/pages/recipes/web-worker-client.md +64 -0
- package/docs/pages/recipes.md +47 -0
- package/docs/pages/reference/changelog.md +86 -0
- package/docs/pages/reference/codes.md +14 -0
- package/docs/pages/reference/glossary.md +108 -0
- package/docs/pages/reference/rust.md +36 -0
- package/docs/pages/reference/stability.md +59 -0
- package/docs/pages/start/coding-agents.md +45 -0
- package/docs/pages/start/first-pdf.md +77 -0
- package/docs/pages/troubleshooting.md +74 -0
- package/docs/renames.json +86 -0
- package/docs/schemas/error.schema.json +305 -0
- package/docs/schemas/renames.schema.json +29 -0
- package/package.json +5 -3
- package/schemas/error.schema.json +19 -2
package/dist/document.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import type { WasmDocument, WasmPage, WasmSaveJob } from "@laminapdf/wasm/base";
|
|
2
2
|
import { type LaminaPdfWarning } from "./errors.js";
|
|
3
|
+
import { type ExtractFormat, type ExtractOptions, type ExtractResult } from "./extract.js";
|
|
4
|
+
import { type BaseGlue } from "./init.js";
|
|
5
|
+
import { Handle } from "./internal/handle.js";
|
|
6
|
+
import type { Instance } from "./internal/instance.js";
|
|
3
7
|
import { type RangeOptions, type RangeSource, type RangeState } from "./source/range.js";
|
|
4
8
|
import { PageText, type TextOptions } from "./text.js";
|
|
5
9
|
import { Transaction } from "./transaction.js";
|
|
6
10
|
import type { DocumentInfo, Edited, Op, OpenOptions, OpLog, PageInfo, Progress, SaveOptions, SaveReport, UndoOutcome } from "./types.js";
|
|
7
|
-
/**
|
|
8
|
-
|
|
11
|
+
/**
|
|
12
|
+
* A page of a {@link Document}, held by its ID: moving pages doesn't retarget it (ADR 0028 F2).
|
|
13
|
+
* Freed with its document; every call after that throws `disposed`.
|
|
14
|
+
*/
|
|
15
|
+
export declare class PageRef extends Handle<BaseGlue> {
|
|
9
16
|
#private;
|
|
10
17
|
/** @internal */
|
|
11
|
-
constructor(page: WasmPage);
|
|
18
|
+
constructor(page: WasmPage, doc: Document, instance: Instance<BaseGlue>);
|
|
12
19
|
/** The page's stable ID (`p12.0`). */
|
|
13
20
|
get id(): string;
|
|
14
21
|
/** The page's current 0-based index. @throws {@link LaminaPdfError} `unknown-page` when it is gone. */
|
|
@@ -30,12 +37,16 @@ export declare class PageRef {
|
|
|
30
37
|
* module; `unknown-page`; reading errors (`data-pending` for a range document: use `ensure`).
|
|
31
38
|
*/
|
|
32
39
|
text(options?: TextOptions): PageText;
|
|
40
|
+
protected release(): void;
|
|
33
41
|
}
|
|
34
|
-
/**
|
|
35
|
-
|
|
42
|
+
/**
|
|
43
|
+
* A save in progress, stepped by the caller with a budget of work units (ADR 0028 §3). Freed with
|
|
44
|
+
* its document; every call after that throws `disposed`.
|
|
45
|
+
*/
|
|
46
|
+
export declare class SaveJob extends Handle<BaseGlue> {
|
|
36
47
|
#private;
|
|
37
48
|
/** @internal */
|
|
38
|
-
constructor(job: WasmSaveJob);
|
|
49
|
+
constructor(job: WasmSaveJob, doc: Document, instance: Instance<BaseGlue>);
|
|
39
50
|
/**
|
|
40
51
|
* Runs at most `budget` work units.
|
|
41
52
|
*
|
|
@@ -51,25 +62,26 @@ export declare class SaveJob {
|
|
|
51
62
|
};
|
|
52
63
|
/** Stops the job: its next step fails with `cancelled`. */
|
|
53
64
|
cancel(): void;
|
|
54
|
-
|
|
55
|
-
free(): void;
|
|
65
|
+
protected release(): void;
|
|
56
66
|
}
|
|
57
67
|
/**
|
|
58
|
-
* An open PDF: read it, edit it with ops (atomic transactions with undo), save it.
|
|
68
|
+
* An open PDF: read it, edit it with ops (atomic transactions with undo), save it. It holds
|
|
69
|
+
* WebAssembly memory: free it with `using` or {@link Document.free} (an alias).
|
|
59
70
|
*
|
|
60
71
|
* @example
|
|
61
72
|
* ```ts
|
|
62
73
|
* await init();
|
|
63
|
-
*
|
|
74
|
+
* using doc = Document.open(bytes);
|
|
64
75
|
* doc.transact((tx) => tx.setInfo({ title: "Final" }));
|
|
65
76
|
* const updated = doc.save({ mode: "incremental" });
|
|
66
|
-
* doc.free();
|
|
67
77
|
* ```
|
|
68
78
|
*/
|
|
69
|
-
export declare class Document {
|
|
79
|
+
export declare class Document extends Handle<BaseGlue> {
|
|
70
80
|
#private;
|
|
71
|
-
/**
|
|
72
|
-
|
|
81
|
+
/**
|
|
82
|
+
* @internal Wraps a raw document (from `open`, `openRange` or `Builder.finish`) of `instance`.
|
|
83
|
+
*/
|
|
84
|
+
constructor(doc: WasmDocument, instance: Instance<BaseGlue>, range?: RangeState);
|
|
73
85
|
/**
|
|
74
86
|
* Opens a document whose bytes are fetched range by range ({@link httpRangeSource},
|
|
75
87
|
* {@link callbackSource}): only what the open needs is fetched (the end of the file, the xref,
|
|
@@ -147,6 +159,26 @@ export declare class Document {
|
|
|
147
159
|
* @throws {@link LaminaPdfError} `invalid-argument`, `unknown-page`.
|
|
148
160
|
*/
|
|
149
161
|
pageById(id: string): PageRef;
|
|
162
|
+
/**
|
|
163
|
+
* The document's text for retrieval and LLMs: Markdown or plain text in reading order, the
|
|
164
|
+
* `laminapdf.extract/1` JSON with a box for every block, or chunks sized for retrieval. Tables
|
|
165
|
+
* drawn with lines come out as tables, and text a reader can't see is left out. Needs a
|
|
166
|
+
* document opened while the extract or text module was loaded.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```ts
|
|
170
|
+
* await init({ extract: true });
|
|
171
|
+
* const doc = Document.open(bytes);
|
|
172
|
+
* const markdown = doc.extract({ format: "markdown" });
|
|
173
|
+
* const chunks = doc.extract({ format: "chunks", chunk: { maxTokens: 400 } });
|
|
174
|
+
* ```
|
|
175
|
+
* @returns a string for `"markdown"` and `"text"`, an {@link Extraction} for `"json"`,
|
|
176
|
+
* {@link Chunk}s for `"chunks"`.
|
|
177
|
+
* @throws {@link LaminaPdfError} `extract-module-not-loaded` for a document opened in the base
|
|
178
|
+
* module; `page-index-out-of-range`; `unknown-option` (with `didYouMean`) / `invalid-argument`
|
|
179
|
+
* for bad options; reading errors (`data-pending` for a range document: use `ensure`).
|
|
180
|
+
*/
|
|
181
|
+
extract<F extends ExtractFormat>(options: ExtractOptions<F>): ExtractResult[F];
|
|
150
182
|
/** The Info dictionary's text entries (document text). @throws {@link LaminaPdfError} reading errors. */
|
|
151
183
|
get info(): DocumentInfo;
|
|
152
184
|
/** Every warning so far (build warnings first), each the ADR 0026 §1 object. */
|
|
@@ -230,12 +262,6 @@ export declare class Document {
|
|
|
230
262
|
* @throws {@link LaminaPdfError} `no-pending-save`; reading errors in `bytes`.
|
|
231
263
|
*/
|
|
232
264
|
rebase(bytes: Uint8Array): void;
|
|
233
|
-
|
|
234
|
-
* Frees the document's WASM memory now; without it, it is freed when garbage-collected.
|
|
235
|
-
* Calling it twice is harmless; using the document afterwards is not (L2b adds `disposed`).
|
|
236
|
-
*/
|
|
237
|
-
free(): void;
|
|
238
|
-
/** Frees the document at the end of a `using` block. */
|
|
239
|
-
[Symbol.dispose](): void;
|
|
265
|
+
protected release(): void;
|
|
240
266
|
}
|
|
241
267
|
//# sourceMappingURL=document.d.ts.map
|
package/dist/document.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
|
package/dist/document.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isLaminaPdfError, packageError } from "./errors.js";
|
|
2
|
+
import { parseExtract } from "./extract.js";
|
|
2
3
|
import { extractsText, readingModule } from "./init.js";
|
|
4
|
+
import { Handle, watch } from "./internal/handle.js";
|
|
3
5
|
import { settle, wholeBytes } from "./source/range.js";
|
|
4
6
|
import { PageText } from "./text.js";
|
|
5
7
|
import { Transaction } from "./transaction.js";
|
|
@@ -30,24 +32,28 @@ function passwordAttempts(options) {
|
|
|
30
32
|
function tryNext(e, attempt, attempts) {
|
|
31
33
|
return attempt + 1 < attempts && isLaminaPdfError(e, "wrong-password");
|
|
32
34
|
}
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
+
/**
|
|
36
|
+
* A page of a {@link Document}, held by its ID: moving pages doesn't retarget it (ADR 0028 F2).
|
|
37
|
+
* Freed with its document; every call after that throws `disposed`.
|
|
38
|
+
*/
|
|
39
|
+
export class PageRef extends Handle {
|
|
35
40
|
#page;
|
|
36
41
|
/** @internal */
|
|
37
|
-
constructor(page) {
|
|
42
|
+
constructor(page, doc, instance) {
|
|
43
|
+
super("PageRef", instance, doc);
|
|
38
44
|
this.#page = page;
|
|
39
45
|
}
|
|
40
46
|
/** The page's stable ID (`p12.0`). */
|
|
41
47
|
get id() {
|
|
42
|
-
return this.#page.id;
|
|
48
|
+
return this.call(() => this.#page.id);
|
|
43
49
|
}
|
|
44
50
|
/** The page's current 0-based index. @throws {@link LaminaPdfError} `unknown-page` when it is gone. */
|
|
45
51
|
get index() {
|
|
46
|
-
return
|
|
52
|
+
return this.call(() => this.#page.index());
|
|
47
53
|
}
|
|
48
54
|
/** The page's facts now. @throws {@link LaminaPdfError} `unknown-page` when it is gone. */
|
|
49
55
|
get info() {
|
|
50
|
-
return
|
|
56
|
+
return this.call(() => this.#page.info());
|
|
51
57
|
}
|
|
52
58
|
/**
|
|
53
59
|
* The page's text: lines in reading order, runs, and every glyph's quad in page space.
|
|
@@ -64,19 +70,27 @@ export class PageRef {
|
|
|
64
70
|
* module; `unknown-page`; reading errors (`data-pending` for a range document: use `ensure`).
|
|
65
71
|
*/
|
|
66
72
|
text(options) {
|
|
73
|
+
this.assertLive();
|
|
67
74
|
const page = this.#page;
|
|
68
75
|
if (typeof page.text !== "function") {
|
|
69
76
|
throw packageError("extract-module-not-loaded", "page.text() needs a document opened while the extract or text module was loaded");
|
|
70
77
|
}
|
|
71
78
|
const extract = page.text.bind(page);
|
|
72
|
-
return new PageText(
|
|
79
|
+
return new PageText(this.call(() => extract(options)));
|
|
80
|
+
}
|
|
81
|
+
release() {
|
|
82
|
+
this.#page.free();
|
|
73
83
|
}
|
|
74
84
|
}
|
|
75
|
-
/**
|
|
76
|
-
|
|
85
|
+
/**
|
|
86
|
+
* A save in progress, stepped by the caller with a budget of work units (ADR 0028 §3). Freed with
|
|
87
|
+
* its document; every call after that throws `disposed`.
|
|
88
|
+
*/
|
|
89
|
+
export class SaveJob extends Handle {
|
|
77
90
|
#job;
|
|
78
91
|
/** @internal */
|
|
79
|
-
constructor(job) {
|
|
92
|
+
constructor(job, doc, instance) {
|
|
93
|
+
super("SaveJob", instance, doc);
|
|
80
94
|
this.#job = job;
|
|
81
95
|
}
|
|
82
96
|
/**
|
|
@@ -86,40 +100,42 @@ export class SaveJob {
|
|
|
86
100
|
* @throws {@link LaminaPdfError} `cancelled`, `document-changed`, `job-finished`, or the save's errors.
|
|
87
101
|
*/
|
|
88
102
|
step(budget) {
|
|
89
|
-
return
|
|
103
|
+
return this.call(() => this.#job.step(budget));
|
|
90
104
|
}
|
|
91
105
|
/** Stops the job: its next step fails with `cancelled`. */
|
|
92
106
|
cancel() {
|
|
93
|
-
this.#job.cancel();
|
|
107
|
+
this.call(() => this.#job.cancel());
|
|
94
108
|
}
|
|
95
|
-
|
|
96
|
-
free() {
|
|
109
|
+
release() {
|
|
97
110
|
this.#job.free();
|
|
98
111
|
}
|
|
99
112
|
}
|
|
100
113
|
/**
|
|
101
|
-
* An open PDF: read it, edit it with ops (atomic transactions with undo), save it.
|
|
114
|
+
* An open PDF: read it, edit it with ops (atomic transactions with undo), save it. It holds
|
|
115
|
+
* WebAssembly memory: free it with `using` or {@link Document.free} (an alias).
|
|
102
116
|
*
|
|
103
117
|
* @example
|
|
104
118
|
* ```ts
|
|
105
119
|
* await init();
|
|
106
|
-
*
|
|
120
|
+
* using doc = Document.open(bytes);
|
|
107
121
|
* doc.transact((tx) => tx.setInfo({ title: "Final" }));
|
|
108
122
|
* const updated = doc.save({ mode: "incremental" });
|
|
109
|
-
* doc.free();
|
|
110
123
|
* ```
|
|
111
124
|
*/
|
|
112
|
-
export class Document {
|
|
125
|
+
export class Document extends Handle {
|
|
113
126
|
#doc;
|
|
114
127
|
/** Set for a document opened with {@link Document.openRange}: where more bytes come from. */
|
|
115
128
|
#range;
|
|
116
|
-
#freed = false;
|
|
117
129
|
/** Whether a `transact` callback of this document is running. */
|
|
118
130
|
#transacting = false;
|
|
119
|
-
/**
|
|
120
|
-
|
|
131
|
+
/**
|
|
132
|
+
* @internal Wraps a raw document (from `open`, `openRange` or `Builder.finish`) of `instance`.
|
|
133
|
+
*/
|
|
134
|
+
constructor(doc, instance, range) {
|
|
135
|
+
super("Document", instance);
|
|
121
136
|
this.#doc = doc;
|
|
122
137
|
this.#range = range;
|
|
138
|
+
watch(this, "Document");
|
|
123
139
|
}
|
|
124
140
|
/**
|
|
125
141
|
* Opens a document whose bytes are fetched range by range ({@link httpRangeSource},
|
|
@@ -143,9 +159,11 @@ export class Document {
|
|
|
143
159
|
const whole = wholeBytes(src);
|
|
144
160
|
if (whole !== undefined)
|
|
145
161
|
return Document.open(whole, open);
|
|
146
|
-
const
|
|
147
|
-
const sparse =
|
|
162
|
+
const instance = readingModule();
|
|
163
|
+
const sparse = instance.call((wasm) => new wasm.WasmSparseSource(src.size, budget));
|
|
148
164
|
const state = {
|
|
165
|
+
instance,
|
|
166
|
+
generation: instance.generation,
|
|
149
167
|
sparse,
|
|
150
168
|
source: src,
|
|
151
169
|
blockSize: blockSize ?? src.blockSize ?? 4096,
|
|
@@ -156,7 +174,10 @@ export class Document {
|
|
|
156
174
|
try {
|
|
157
175
|
for (let i = 0;; i++) {
|
|
158
176
|
try {
|
|
159
|
-
return await settle(state, () => new Document(
|
|
177
|
+
return await settle(state, () => new Document(instance.call((wasm) => {
|
|
178
|
+
instance.check(state.generation, "Document");
|
|
179
|
+
return wasm.WasmDocument.openSource(sparse, attempts[i]);
|
|
180
|
+
}), instance, state), signal);
|
|
160
181
|
}
|
|
161
182
|
catch (e) {
|
|
162
183
|
if (!tryNext(e, i, attempts.length))
|
|
@@ -165,8 +186,10 @@ export class Document {
|
|
|
165
186
|
}
|
|
166
187
|
}
|
|
167
188
|
catch (e) {
|
|
168
|
-
// Nothing holds the fetched bytes now: free them at once rather than at collection
|
|
169
|
-
|
|
189
|
+
// Nothing holds the fetched bytes now: free them at once rather than at collection, unless
|
|
190
|
+
// their instance was replaced (a trap, or reset() during a fetch).
|
|
191
|
+
if (instance.owns(state.generation))
|
|
192
|
+
sparse.free();
|
|
170
193
|
throw e;
|
|
171
194
|
}
|
|
172
195
|
}
|
|
@@ -188,6 +211,7 @@ export class Document {
|
|
|
188
211
|
* @throws what `f` throws, and as {@link Document.openRange}.
|
|
189
212
|
*/
|
|
190
213
|
async ensure(f, options = {}) {
|
|
214
|
+
this.assertLive();
|
|
191
215
|
return this.#range === undefined ? f() : settle(this.#range, f, options.signal);
|
|
192
216
|
}
|
|
193
217
|
/**
|
|
@@ -205,12 +229,12 @@ export class Document {
|
|
|
205
229
|
* `strict`, …; `unknown-option` / `invalid-argument` for bad options; `not-initialized`.
|
|
206
230
|
*/
|
|
207
231
|
static open(bytes, options) {
|
|
208
|
-
const
|
|
232
|
+
const instance = readingModule();
|
|
209
233
|
const data = bytesOf(bytes);
|
|
210
234
|
const attempts = passwordAttempts(options ?? {});
|
|
211
235
|
for (let i = 0;; i++) {
|
|
212
236
|
try {
|
|
213
|
-
return new Document(
|
|
237
|
+
return new Document(instance.call((wasm) => wasm.WasmDocument.openBytes(data, attempts[i])), instance);
|
|
214
238
|
}
|
|
215
239
|
catch (e) {
|
|
216
240
|
if (!tryNext(e, i, attempts.length))
|
|
@@ -224,15 +248,16 @@ export class Document {
|
|
|
224
248
|
* module; save and reopen it to move it.
|
|
225
249
|
*/
|
|
226
250
|
get canExtractText() {
|
|
251
|
+
this.assertLive();
|
|
227
252
|
return extractsText(this.#doc);
|
|
228
253
|
}
|
|
229
254
|
/** The number of pages. @throws {@link LaminaPdfError} reading errors. */
|
|
230
255
|
get pageCount() {
|
|
231
|
-
return
|
|
256
|
+
return this.call(() => this.#doc.pageCount());
|
|
232
257
|
}
|
|
233
258
|
/** Every page's facts, in order (one page-tree walk). @throws {@link LaminaPdfError} reading errors. */
|
|
234
259
|
get pages() {
|
|
235
|
-
return
|
|
260
|
+
return this.call(() => this.#doc.pageInfos());
|
|
236
261
|
}
|
|
237
262
|
/**
|
|
238
263
|
* Page `index`'s facts.
|
|
@@ -240,7 +265,7 @@ export class Document {
|
|
|
240
265
|
* @throws {@link LaminaPdfError} `page-index-out-of-range`.
|
|
241
266
|
*/
|
|
242
267
|
pageInfo(index) {
|
|
243
|
-
return
|
|
268
|
+
return this.call(() => this.#doc.pageInfo(index));
|
|
244
269
|
}
|
|
245
270
|
/**
|
|
246
271
|
* A handle on page `index` that follows the page by its ID.
|
|
@@ -248,7 +273,7 @@ export class Document {
|
|
|
248
273
|
* @throws {@link LaminaPdfError} `page-index-out-of-range`.
|
|
249
274
|
*/
|
|
250
275
|
page(index) {
|
|
251
|
-
return new PageRef(
|
|
276
|
+
return new PageRef(this.call(() => this.#doc.page(index)), this, this.instance);
|
|
252
277
|
}
|
|
253
278
|
/**
|
|
254
279
|
* A handle on the page with `id` (`p12.0`).
|
|
@@ -256,31 +281,61 @@ export class Document {
|
|
|
256
281
|
* @throws {@link LaminaPdfError} `invalid-argument`, `unknown-page`.
|
|
257
282
|
*/
|
|
258
283
|
pageById(id) {
|
|
259
|
-
return new PageRef(
|
|
284
|
+
return new PageRef(this.call(() => this.#doc.pageById(id)), this, this.instance);
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* The document's text for retrieval and LLMs: Markdown or plain text in reading order, the
|
|
288
|
+
* `laminapdf.extract/1` JSON with a box for every block, or chunks sized for retrieval. Tables
|
|
289
|
+
* drawn with lines come out as tables, and text a reader can't see is left out. Needs a
|
|
290
|
+
* document opened while the extract or text module was loaded.
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts
|
|
294
|
+
* await init({ extract: true });
|
|
295
|
+
* const doc = Document.open(bytes);
|
|
296
|
+
* const markdown = doc.extract({ format: "markdown" });
|
|
297
|
+
* const chunks = doc.extract({ format: "chunks", chunk: { maxTokens: 400 } });
|
|
298
|
+
* ```
|
|
299
|
+
* @returns a string for `"markdown"` and `"text"`, an {@link Extraction} for `"json"`,
|
|
300
|
+
* {@link Chunk}s for `"chunks"`.
|
|
301
|
+
* @throws {@link LaminaPdfError} `extract-module-not-loaded` for a document opened in the base
|
|
302
|
+
* module; `page-index-out-of-range`; `unknown-option` (with `didYouMean`) / `invalid-argument`
|
|
303
|
+
* for bad options; reading errors (`data-pending` for a range document: use `ensure`).
|
|
304
|
+
*/
|
|
305
|
+
extract(options) {
|
|
306
|
+
this.assertLive();
|
|
307
|
+
const doc = this.#doc;
|
|
308
|
+
if (typeof doc.extract !== "function") {
|
|
309
|
+
throw packageError("extract-module-not-loaded", "doc.extract() needs a document opened while the extract or text module was loaded");
|
|
310
|
+
}
|
|
311
|
+
const extract = doc.extract.bind(doc);
|
|
312
|
+
return parseExtract(options.format, this.call(() => extract(options)));
|
|
260
313
|
}
|
|
261
314
|
/** The Info dictionary's text entries (document text). @throws {@link LaminaPdfError} reading errors. */
|
|
262
315
|
get info() {
|
|
263
|
-
return
|
|
316
|
+
return this.call(() => this.#doc.info());
|
|
264
317
|
}
|
|
265
318
|
/** Every warning so far (build warnings first), each the ADR 0026 §1 object. */
|
|
266
319
|
get warnings() {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
320
|
+
return this.call(() => {
|
|
321
|
+
const cursor = this.#doc.warnings();
|
|
322
|
+
try {
|
|
323
|
+
const out = [];
|
|
324
|
+
for (;;) {
|
|
325
|
+
const batch = cursor.nextBatch(WARNING_BATCH);
|
|
326
|
+
if (batch.length === 0)
|
|
327
|
+
return out;
|
|
328
|
+
out.push(...batch);
|
|
329
|
+
}
|
|
275
330
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}
|
|
331
|
+
finally {
|
|
332
|
+
cursor.free();
|
|
333
|
+
}
|
|
334
|
+
});
|
|
280
335
|
}
|
|
281
336
|
/** Whether there are changes no save has written yet. */
|
|
282
337
|
get hasUnsavedChanges() {
|
|
283
|
-
return this.#doc.hasUnsavedChanges();
|
|
338
|
+
return this.call(() => this.#doc.hasUnsavedChanges());
|
|
284
339
|
}
|
|
285
340
|
/**
|
|
286
341
|
* Applies `ops` in order as one transaction: all of them, or none.
|
|
@@ -291,7 +346,7 @@ export class Document {
|
|
|
291
346
|
*/
|
|
292
347
|
apply(ops) {
|
|
293
348
|
this.#notInTransaction("apply");
|
|
294
|
-
return
|
|
349
|
+
return this.call(() => this.#doc.apply(ops));
|
|
295
350
|
}
|
|
296
351
|
/**
|
|
297
352
|
* Applies an op log (`{ v: 1, ops }`, as JSON text or an object) as one transaction.
|
|
@@ -301,7 +356,7 @@ export class Document {
|
|
|
301
356
|
applyLog(log) {
|
|
302
357
|
this.#notInTransaction("applyLog");
|
|
303
358
|
const json = typeof log === "string" ? log : JSON.stringify(log);
|
|
304
|
-
return
|
|
359
|
+
return this.call(() => this.#doc.applyLog(json));
|
|
305
360
|
}
|
|
306
361
|
/**
|
|
307
362
|
* Runs `edit` with a transaction handle and applies what it collected as one transaction
|
|
@@ -323,6 +378,7 @@ export class Document {
|
|
|
323
378
|
* ```
|
|
324
379
|
*/
|
|
325
380
|
transact(edit) {
|
|
381
|
+
this.assertLive();
|
|
326
382
|
this.#notInTransaction("transact");
|
|
327
383
|
this.#transacting = true;
|
|
328
384
|
const tx = new Transaction();
|
|
@@ -358,7 +414,7 @@ export class Document {
|
|
|
358
414
|
*/
|
|
359
415
|
undo() {
|
|
360
416
|
this.#notInTransaction("undo");
|
|
361
|
-
return
|
|
417
|
+
return this.call(() => this.#doc.undo());
|
|
362
418
|
}
|
|
363
419
|
/**
|
|
364
420
|
* Redoes the newest undone transaction.
|
|
@@ -368,7 +424,7 @@ export class Document {
|
|
|
368
424
|
*/
|
|
369
425
|
redo() {
|
|
370
426
|
this.#notInTransaction("redo");
|
|
371
|
-
return
|
|
427
|
+
return this.call(() => this.#doc.redo());
|
|
372
428
|
}
|
|
373
429
|
/**
|
|
374
430
|
* Saves and rebases onto the output (later edits and saves build on it).
|
|
@@ -387,7 +443,7 @@ export class Document {
|
|
|
387
443
|
*/
|
|
388
444
|
saveWithReport(options) {
|
|
389
445
|
this.#notInTransaction("save");
|
|
390
|
-
return
|
|
446
|
+
return this.call(() => this.#doc.save(options));
|
|
391
447
|
}
|
|
392
448
|
/**
|
|
393
449
|
* A save as a job stepped by the caller (to keep a UI responsive).
|
|
@@ -396,7 +452,7 @@ export class Document {
|
|
|
396
452
|
*/
|
|
397
453
|
saveJob(options) {
|
|
398
454
|
this.#notInTransaction("saveJob");
|
|
399
|
-
return new SaveJob(
|
|
455
|
+
return new SaveJob(this.call(() => this.#doc.saveJob(options)), this, this.instance);
|
|
400
456
|
}
|
|
401
457
|
/**
|
|
402
458
|
* Rebases onto `bytes`, the output of a save whose rebase failed (`not-rebased`).
|
|
@@ -405,23 +461,12 @@ export class Document {
|
|
|
405
461
|
*/
|
|
406
462
|
rebase(bytes) {
|
|
407
463
|
this.#notInTransaction("rebase");
|
|
408
|
-
|
|
464
|
+
this.call(() => this.#doc.rebase(bytes));
|
|
409
465
|
}
|
|
410
|
-
|
|
411
|
-
* Frees the document's WASM memory now; without it, it is freed when garbage-collected.
|
|
412
|
-
* Calling it twice is harmless; using the document afterwards is not (L2b adds `disposed`).
|
|
413
|
-
*/
|
|
414
|
-
free() {
|
|
415
|
-
if (this.#freed)
|
|
416
|
-
return;
|
|
417
|
-
this.#freed = true;
|
|
466
|
+
release() {
|
|
418
467
|
this.#doc.free();
|
|
419
468
|
// A range document's fetched bytes live in its sparse source.
|
|
420
469
|
this.#range?.sparse.free();
|
|
421
470
|
}
|
|
422
|
-
/** Frees the document at the end of a `using` block. */
|
|
423
|
-
[Symbol.dispose]() {
|
|
424
|
-
this.free();
|
|
425
|
-
}
|
|
426
471
|
}
|
|
427
472
|
//# sourceMappingURL=document.js.map
|
package/dist/document.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -92,11 +92,11 @@ export declare function isDiagnostic(value: unknown): value is Diagnostic<ErrorC
|
|
|
92
92
|
export declare function packageError<C extends keyof typeof RAISED_BY_PACKAGE>(code: C, message: string, extra?: Pick<Diagnostic<C>, "didYouMean" | "data"> & {
|
|
93
93
|
readonly cause?: unknown;
|
|
94
94
|
}): LaminaPdfError<C>;
|
|
95
|
-
/** The names in `known` within two edits of `given` (case-insensitive), closest first. */
|
|
96
|
-
export declare function didYouMean(given: string, known: readonly string[]): string[];
|
|
97
95
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
96
|
+
* The names in `known` within two edits of `given`, closest first; names at the same distance in
|
|
97
|
+
* code-point order. Edits count code points, after lowercasing ASCII letters only.
|
|
98
|
+
* laminapdf-wasm follows the same rule, and fixtures/did-you-mean.json pins both. `<` compares
|
|
99
|
+
* UTF-16 code units, which is code-point order for the library's names (all ASCII).
|
|
100
100
|
*/
|
|
101
|
-
export declare function
|
|
101
|
+
export declare function didYouMean(given: string, known: readonly string[]): string[];
|
|
102
102
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -101,8 +101,14 @@ export function packageError(code, message, extra = {}) {
|
|
|
101
101
|
const { cause, ...fields } = extra;
|
|
102
102
|
return new LaminaPdfError({ code, kind, message, hint, ...fields, docsUrl: docsUrl(code) }, cause === undefined ? undefined : { cause });
|
|
103
103
|
}
|
|
104
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* The names in `known` within two edits of `given`, closest first; names at the same distance in
|
|
106
|
+
* code-point order. Edits count code points, after lowercasing ASCII letters only.
|
|
107
|
+
* laminapdf-wasm follows the same rule, and fixtures/did-you-mean.json pins both. `<` compares
|
|
108
|
+
* UTF-16 code units, which is code-point order for the library's names (all ASCII).
|
|
109
|
+
*/
|
|
105
110
|
export function didYouMean(given, known) {
|
|
111
|
+
const chars = (s) => Array.from(s.replace(/[A-Z]/g, (c) => c.toLowerCase()));
|
|
106
112
|
const distance = (a, b) => {
|
|
107
113
|
let row = Array.from({ length: b.length + 1 }, (_, i) => i);
|
|
108
114
|
for (let i = 0; i < a.length; i++) {
|
|
@@ -115,23 +121,11 @@ export function didYouMean(given, known) {
|
|
|
115
121
|
}
|
|
116
122
|
return row[b.length] ?? 0;
|
|
117
123
|
};
|
|
118
|
-
const
|
|
124
|
+
const target = chars(given);
|
|
119
125
|
return known
|
|
120
|
-
.map((k) => [distance(
|
|
126
|
+
.map((k) => [distance(target, chars(k)), k])
|
|
121
127
|
.filter(([d]) => d <= 2)
|
|
122
|
-
.sort((x, y) => x
|
|
128
|
+
.sort(([dx, x], [dy, y]) => dx - dy || (x < y ? -1 : Number(x > y)))
|
|
123
129
|
.map(([, k]) => k);
|
|
124
130
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Runs `f`, turning the §1 object the WASM throws into a {@link LaminaPdfError}. Other errors (a
|
|
127
|
-
* `RangeError`, a trap) pass through unchanged.
|
|
128
|
-
*/
|
|
129
|
-
export function guard(f) {
|
|
130
|
-
try {
|
|
131
|
-
return f();
|
|
132
|
-
}
|
|
133
|
-
catch (e) {
|
|
134
|
-
throw isDiagnostic(e) ? new LaminaPdfError(e) : e;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
131
|
//# sourceMappingURL=errors.js.map
|