Skip to content

Commit 11eb994

Browse files
ABCrimsonclaude
andcommitted
release: v0.14.0 — performance audit, bug fixes, documentation overhaul
Comprehensive internal performance audit across 35+ hot paths with zero API surface changes. Fixes CCITT 2D decode bug, customName nullish coalescing, duplicate hash computation, and unnecessary async. Removes dead code. Updates all documentation, API reference, VitePress site, and benchmark numbers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 6ce8fea commit 11eb994

435 files changed

Lines changed: 2505 additions & 2339 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,54 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66
See [VERSIONING.md](./VERSIONING.md) for this project's versioning policy.
77

8+
## [0.14.0] - 2026-02-28
9+
10+
### Performance
11+
12+
Comprehensive internal performance audit across the entire codebase. All changes are internal hot-path optimizations — zero API surface changes.
13+
14+
**Lexer & Content Stream Parser:**
15+
- String concatenation in `readLiteralString()`, `readHexString()`, `readName()` replaced with `parts[]` + `.join('')` pattern
16+
- `bytesToAscii()` / `decodeAscii()` replaced with batch `String.fromCharCode.apply()`
17+
- Hex string parsing rewritten to single-pass direct byte decoding with `hexVal` lookup table (eliminates intermediate string + `parseInt`)
18+
19+
**LZW Decompression:**
20+
- Complete rewrite with pooled flat buffer (`Uint8Array` + `Int32Array` index pairs) replacing per-entry `Uint8Array[]` allocations
21+
- Identity entries (0-255) initialized once and persist across table resets
22+
- Pre-allocated output buffer with manual growth instead of `number[]` + `.push()`
23+
24+
**XRef Recovery & Parsing:**
25+
- `rebuildXrefFromScan()` rewritten to scan raw `Uint8Array` bytes directly for `obj` pattern instead of `TextDecoder.decode()` + regex on the entire file
26+
- Standard xref entries parsed directly from bytes (fixed 20-byte format) without TextDecoder
27+
- Keyword checks (`xref`, `trailer`) replaced with direct byte comparison
28+
29+
**PDF Object Serialization:**
30+
- `escapeLiteralString()`: 5 chained `.replace()` calls replaced with single-pass character loop
31+
- `PdfName.serialize()`: String concatenation replaced with array + join
32+
- `formatNumber()`: Regex trailing-zero trim replaced with manual digit loop
33+
34+
**Cryptographic Key Derivation:**
35+
- Pre-allocated `modKey` buffer outside 19x RC4 iteration loops in owner/user password verification
36+
- Direct K1 buffer construction in Algorithm 2.B (eliminates intermediate concatenation)
37+
38+
**Other:**
39+
- ASCII85 decoder: Fixed-size group buffer + pre-allocated output
40+
- SVG color parser: Module-level result cache (`Map<string, ParsedColor>`)
41+
- XMP `escapeXml()`: Single-pass character loop replacing chained `.replace()`
42+
- Inline image EI scanning: `data.indexOf(0x45)` jump instead of byte-by-byte scan
43+
- Object stream header: Array + join replacing string concatenation
44+
45+
### Fixed
46+
- **CCITT Group 3/4 2D decode bug**: `read2DMode()` returned `HORIZONTAL` for bit pattern `011` instead of `VERTICAL_PLUS_1` — correct logic existed but was unreachable due to premature return. This could cause incorrect rendering of CCITT Group 4 and Group 3 2D compressed images (scanned documents).
47+
- **`customName` font option ignored for empty strings**: `||` operator treated empty string as falsy, falling through to `postScriptName`. Changed to `??` (nullish coalescing).
48+
- **`embedPages()` unnecessarily async**: Method was declared `async` but contained only synchronous code, wrapping return in an unnecessary `Promise`. Now returns `EmbeddedPdfPage[]` directly.
49+
- **Duplicate hash computation in document merge**: `hashBytes()` was called twice on the same stream data during cross-document page copy. Now computed once and reused.
50+
51+
### Removed
52+
- Dead `PdfArr` import alias in `pdfWriter.ts`
53+
- Unused `objectBuf` variable allocation in object stream serialization
54+
- Unused `objectContainsPageRef()` function in linearization module
55+
856
## [0.13.0] - 2026-02-28
957

1058
### Added

VERSIONING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@ Revolutionary changes that break existing consumer code. Once MAJOR increments,
4141

4242
## Current Version
4343

44-
**0.13.0** — See [CHANGELOG.md](./CHANGELOG.md) for the full release history.
44+
**0.14.0** — See [CHANGELOG.md](./CHANGELOG.md) for the full release history.

docs/.vitepress/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default defineConfig({
6060
{ text: 'API', link: '/api/' },
6161
{ text: 'Migration', link: '/migration/from-pdf-lib' },
6262
{
63-
text: 'v0.13.0',
63+
text: 'v0.14.0',
6464
items: [
6565
{
6666
text: 'Changelog',

docs/api/classes/ChangeTracker.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# Class: ChangeTracker
88

9-
Defined in: [src/core/incrementalWriter.ts:61](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/core/incrementalWriter.ts#L61)
9+
Defined in: [src/core/incrementalWriter.ts:61](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/core/incrementalWriter.ts#L61)
1010

1111
Tracks which objects have been added or modified since the document
1212
was loaded. Only these objects are written during an incremental save.
@@ -17,7 +17,7 @@ was loaded. Only these objects are written during an incremental save.
1717

1818
> **new ChangeTracker**(`originalMaxObjNum`): `ChangeTracker`
1919
20-
Defined in: [src/core/incrementalWriter.ts:71](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/core/incrementalWriter.ts#L71)
20+
Defined in: [src/core/incrementalWriter.ts:71](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/core/incrementalWriter.ts#L71)
2121

2222
#### Parameters
2323

@@ -37,7 +37,7 @@ Defined in: [src/core/incrementalWriter.ts:71](https://github.com/ABCrimson/mode
3737

3838
> **get** **changedCount**(): `number`
3939
40-
Defined in: [src/core/incrementalWriter.ts:110](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/core/incrementalWriter.ts#L110)
40+
Defined in: [src/core/incrementalWriter.ts:110](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/core/incrementalWriter.ts#L110)
4141

4242
Get the count of changed objects.
4343

@@ -51,7 +51,7 @@ Get the count of changed objects.
5151

5252
> **getChangedObjects**(): `Set`\<`number`\>
5353
54-
Defined in: [src/core/incrementalWriter.ts:103](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/core/incrementalWriter.ts#L103)
54+
Defined in: [src/core/incrementalWriter.ts:103](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/core/incrementalWriter.ts#L103)
5555

5656
Get all changed object numbers (new + modified).
5757

@@ -65,7 +65,7 @@ Get all changed object numbers (new + modified).
6565

6666
> **isChanged**(`objectNumber`): `boolean`
6767
68-
Defined in: [src/core/incrementalWriter.ts:96](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/core/incrementalWriter.ts#L96)
68+
Defined in: [src/core/incrementalWriter.ts:96](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/core/incrementalWriter.ts#L96)
6969

7070
Check if an object is new or modified.
7171

@@ -85,7 +85,7 @@ Check if an object is new or modified.
8585

8686
> **markModified**(`objectNumber`): `void`
8787
88-
Defined in: [src/core/incrementalWriter.ts:85](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/core/incrementalWriter.ts#L85)
88+
Defined in: [src/core/incrementalWriter.ts:85](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/core/incrementalWriter.ts#L85)
8989

9090
Mark an object as modified (existed in the original file).
9191

@@ -105,7 +105,7 @@ Mark an object as modified (existed in the original file).
105105

106106
> **markNew**(`objectNumber`): `void`
107107
108-
Defined in: [src/core/incrementalWriter.ts:78](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/core/incrementalWriter.ts#L78)
108+
Defined in: [src/core/incrementalWriter.ts:78](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/core/incrementalWriter.ts#L78)
109109

110110
Mark an object as new (did not exist in the original file).
111111

docs/api/classes/CombedTextLayoutError.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# Class: CombedTextLayoutError
88

9-
Defined in: [src/errors.ts:191](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L191)
9+
Defined in: [src/errors.ts:191](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L191)
1010

1111
Thrown when a combed text field receives more characters than its
1212
maximum length allows.
@@ -21,7 +21,7 @@ maximum length allows.
2121

2222
> **new CombedTextLayoutError**(`textLength`, `maxLength`, `options?`): `CombedTextLayoutError`
2323
24-
Defined in: [src/errors.ts:193](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L193)
24+
Defined in: [src/errors.ts:193](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L193)
2525

2626
#### Parameters
2727

@@ -75,7 +75,7 @@ Defined in: node\_modules/typescript/lib/lib.es5.d.ts:1075
7575

7676
> `readonly` **name**: `"CombedTextLayoutError"` = `'CombedTextLayoutError'`
7777
78-
Defined in: [src/errors.ts:192](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L192)
78+
Defined in: [src/errors.ts:192](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L192)
7979

8080
#### Overrides
8181

docs/api/classes/EmbeddedFont.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# Class: EmbeddedFont
88

9-
Defined in: [src/assets/font/fontEmbed.ts:183](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L183)
9+
Defined in: [src/assets/font/fontEmbed.ts:183](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L183)
1010

1111
Represents a TrueType / OpenType font that has been loaded for
1212
embedding in a PDF document.
@@ -22,7 +22,7 @@ Create via `PdfDocument.embedFont()`.
2222

2323
> `readonly` **fontData**: `Uint8Array`
2424
25-
Defined in: [src/assets/font/fontEmbed.ts:185](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L185)
25+
Defined in: [src/assets/font/fontEmbed.ts:185](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L185)
2626

2727
The raw font file bytes.
2828

@@ -32,7 +32,7 @@ The raw font file bytes.
3232

3333
> `readonly` **metrics**: [`FontMetrics`](../interfaces/FontMetrics.md)
3434
35-
Defined in: [src/assets/font/fontEmbed.ts:188](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L188)
35+
Defined in: [src/assets/font/fontEmbed.ts:188](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L188)
3636

3737
Extracted font metrics.
3838

@@ -42,7 +42,7 @@ Extracted font metrics.
4242

4343
> **ascentAtSize**(`fontSize`): `number`
4444
45-
Defined in: [src/assets/font/fontEmbed.ts:255](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L255)
45+
Defined in: [src/assets/font/fontEmbed.ts:255](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L255)
4646

4747
Compute the ascender height at the given font size.
4848

@@ -66,7 +66,7 @@ The ascender height in points (positive).
6666

6767
> **buildEmbedding**(): [`FontEmbeddingResult`](../interfaces/FontEmbeddingResult.md)
6868
69-
Defined in: [src/assets/font/fontEmbed.ts:376](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L376)
69+
Defined in: [src/assets/font/fontEmbed.ts:376](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L376)
7070

7171
Build the complete set of PDF dictionary data needed to embed this
7272
font. This performs subsetting (if WASM is available) and generates
@@ -86,7 +86,7 @@ The embedding result containing all PDF object data.
8686

8787
> **capHeightAtSize**(`fontSize`): `number`
8888
89-
Defined in: [src/assets/font/fontEmbed.ts:275](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L275)
89+
Defined in: [src/assets/font/fontEmbed.ts:275](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L275)
9090

9191
Compute the cap height at the given font size.
9292

@@ -110,7 +110,7 @@ The cap height in points.
110110

111111
> **descentAtSize**(`fontSize`): `number`
112112
113-
Defined in: [src/assets/font/fontEmbed.ts:265](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L265)
113+
Defined in: [src/assets/font/fontEmbed.ts:265](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L265)
114114

115115
Compute the descender depth at the given font size.
116116

@@ -134,7 +134,7 @@ The descender depth in points (negative).
134134

135135
> **encodeText**(`text`): `string`
136136
137-
Defined in: [src/assets/font/fontEmbed.ts:347](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L347)
137+
Defined in: [src/assets/font/fontEmbed.ts:347](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L347)
138138

139139
Encode a text string as hex-encoded CID bytes for use in PDF
140140
content stream `Tj` / `TJ` operators.
@@ -162,7 +162,7 @@ Hex string (e.g. `"00480065006C006C006F"` for "Hello").
162162

163163
> **getUsedGlyphs**(): `ReadonlySet`\<`number`\>
164164
165-
Defined in: [src/assets/font/fontEmbed.ts:329](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L329)
165+
Defined in: [src/assets/font/fontEmbed.ts:329](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L329)
166166

167167
Get the set of all glyph IDs that have been used.
168168

@@ -176,7 +176,7 @@ Get the set of all glyph IDs that have been used.
176176

177177
> **heightAtSize**(`fontSize`): `number`
178178
179-
Defined in: [src/assets/font/fontEmbed.ts:244](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L244)
179+
Defined in: [src/assets/font/fontEmbed.ts:244](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L244)
180180

181181
Compute the height of the font at the given size.
182182

@@ -203,7 +203,7 @@ The font height in points.
203203

204204
> **lineHeightAtSize**(`fontSize`): `number`
205205
206-
Defined in: [src/assets/font/fontEmbed.ts:285](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L285)
206+
Defined in: [src/assets/font/fontEmbed.ts:285](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L285)
207207

208208
Compute the line height (ascent - descent + lineGap) at size.
209209

@@ -227,7 +227,7 @@ The default line height in points.
227227

228228
> **markCodepointUsed**(`codepoint`): `void`
229229
230-
Defined in: [src/assets/font/fontEmbed.ts:299](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L299)
230+
Defined in: [src/assets/font/fontEmbed.ts:299](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L299)
231231

232232
Mark a Unicode codepoint as used (records its glyph ID for subsetting).
233233

@@ -249,7 +249,7 @@ The Unicode codepoint.
249249

250250
> **markGlyphUsed**(`glyphId`): `void`
251251
252-
Defined in: [src/assets/font/fontEmbed.ts:309](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L309)
252+
Defined in: [src/assets/font/fontEmbed.ts:309](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L309)
253253

254254
Mark a glyph ID as used directly.
255255

@@ -271,7 +271,7 @@ The glyph ID.
271271

272272
> **markTextUsed**(`text`): `void`
273273
274-
Defined in: [src/assets/font/fontEmbed.ts:318](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L318)
274+
Defined in: [src/assets/font/fontEmbed.ts:318](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L318)
275275

276276
Mark all codepoints in a text string as used.
277277

@@ -293,7 +293,7 @@ The text string.
293293

294294
> **widthOfTextAtSize**(`text`, `fontSize`): `number`
295295
296-
Defined in: [src/assets/font/fontEmbed.ts:215](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/assets/font/fontEmbed.ts#L215)
296+
Defined in: [src/assets/font/fontEmbed.ts:215](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/assets/font/fontEmbed.ts#L215)
297297

298298
Compute the width of a text string at the given font size.
299299

docs/api/classes/EncryptedPdfError.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# Class: EncryptedPdfError
88

9-
Defined in: [src/errors.ts:22](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L22)
9+
Defined in: [src/errors.ts:22](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L22)
1010

1111
Thrown when attempting to load or manipulate an encrypted PDF without
1212
providing the correct password.
@@ -21,7 +21,7 @@ providing the correct password.
2121

2222
> **new EncryptedPdfError**(`message?`, `options?`): `EncryptedPdfError`
2323
24-
Defined in: [src/errors.ts:24](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L24)
24+
Defined in: [src/errors.ts:24](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L24)
2525

2626
#### Parameters
2727

@@ -71,7 +71,7 @@ Defined in: node\_modules/typescript/lib/lib.es5.d.ts:1075
7171

7272
> `readonly` **name**: `"EncryptedPdfError"` = `'EncryptedPdfError'`
7373
74-
Defined in: [src/errors.ts:23](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L23)
74+
Defined in: [src/errors.ts:23](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L23)
7575

7676
#### Overrides
7777

docs/api/classes/ExceededMaxLengthError.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# Class: ExceededMaxLengthError
88

9-
Defined in: [src/errors.ts:206](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L206)
9+
Defined in: [src/errors.ts:206](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L206)
1010

1111
Thrown when a text field value exceeds the field's declared
1212
maximum length (/MaxLen).
@@ -21,7 +21,7 @@ maximum length (/MaxLen).
2121

2222
> **new ExceededMaxLengthError**(`textLength`, `maxLength`, `fieldName`, `options?`): `ExceededMaxLengthError`
2323
24-
Defined in: [src/errors.ts:208](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L208)
24+
Defined in: [src/errors.ts:208](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L208)
2525

2626
#### Parameters
2727

@@ -79,7 +79,7 @@ Defined in: node\_modules/typescript/lib/lib.es5.d.ts:1075
7979

8080
> `readonly` **name**: `"ExceededMaxLengthError"` = `'ExceededMaxLengthError'`
8181
82-
Defined in: [src/errors.ts:207](https://github.com/ABCrimson/modern-pdf-lib/blob/6d920621b7c9811412316f53a974cac86961b992/src/errors.ts#L207)
82+
Defined in: [src/errors.ts:207](https://github.com/ABCrimson/modern-pdf-lib/blob/6ce8fea7ba62114c9bdeda1f601086d76e1fe5d2/src/errors.ts#L207)
8383

8484
#### Overrides
8585

0 commit comments

Comments
 (0)