pretext-pdf 1.1.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +687 -0
- package/README.md +83 -8
- package/dist/allowed-props.d.ts +76 -0
- package/dist/allowed-props.d.ts.map +1 -1
- package/dist/allowed-props.js.map +1 -1
- package/dist/assets/generators/barcode.d.ts +9 -0
- package/dist/assets/generators/barcode.d.ts.map +1 -0
- package/dist/assets/generators/barcode.js +24 -0
- package/dist/assets/generators/barcode.js.map +1 -0
- package/dist/assets/generators/chart.d.ts +13 -0
- package/dist/assets/generators/chart.d.ts.map +1 -0
- package/dist/assets/generators/chart.js +32 -0
- package/dist/assets/generators/chart.js.map +1 -0
- package/dist/assets/generators/qr.d.ts +9 -0
- package/dist/assets/generators/qr.d.ts.map +1 -0
- package/dist/assets/generators/qr.js +25 -0
- package/dist/assets/generators/qr.js.map +1 -0
- package/dist/assets/index.d.ts +19 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +19 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/loaders/images.d.ts +20 -0
- package/dist/assets/loaders/images.d.ts.map +1 -0
- package/dist/assets/loaders/images.js +69 -0
- package/dist/assets/loaders/images.js.map +1 -0
- package/dist/assets/loaders/orchestrator.d.ts +24 -0
- package/dist/assets/loaders/orchestrator.d.ts.map +1 -0
- package/dist/assets/loaders/orchestrator.js +109 -0
- package/dist/assets/loaders/orchestrator.js.map +1 -0
- package/dist/assets/loaders/vectors.d.ts +25 -0
- package/dist/assets/loaders/vectors.d.ts.map +1 -0
- package/dist/assets/loaders/vectors.js +118 -0
- package/dist/assets/loaders/vectors.js.map +1 -0
- package/dist/assets/loaders/watermark.d.ts +12 -0
- package/dist/assets/loaders/watermark.d.ts.map +1 -0
- package/dist/assets/loaders/watermark.js +40 -0
- package/dist/assets/loaders/watermark.js.map +1 -0
- package/dist/assets/security/fetch.d.ts +14 -0
- package/dist/assets/security/fetch.d.ts.map +1 -0
- package/dist/assets/security/fetch.js +112 -0
- package/dist/assets/security/fetch.js.map +1 -0
- package/dist/assets/security/ipv4-normalize.d.ts +28 -0
- package/dist/assets/security/ipv4-normalize.d.ts.map +1 -0
- package/dist/assets/security/ipv4-normalize.js +116 -0
- package/dist/assets/security/ipv4-normalize.js.map +1 -0
- package/dist/assets/security/path-allowlist.d.ts +12 -0
- package/dist/assets/security/path-allowlist.d.ts.map +1 -0
- package/dist/assets/security/path-allowlist.js +26 -0
- package/dist/assets/security/path-allowlist.js.map +1 -0
- package/dist/assets/security/url-validation.d.ts +22 -0
- package/dist/assets/security/url-validation.d.ts.map +1 -0
- package/dist/assets/security/url-validation.js +164 -0
- package/dist/assets/security/url-validation.js.map +1 -0
- package/dist/assets/svg/dimensions.d.ts +19 -0
- package/dist/assets/svg/dimensions.d.ts.map +1 -0
- package/dist/assets/svg/dimensions.js +43 -0
- package/dist/assets/svg/dimensions.js.map +1 -0
- package/dist/assets/svg/rasterize.d.ts +6 -0
- package/dist/assets/svg/rasterize.d.ts.map +1 -0
- package/dist/assets/svg/rasterize.js +38 -0
- package/dist/assets/svg/rasterize.js.map +1 -0
- package/dist/assets/svg/resolve-content.d.ts +16 -0
- package/dist/assets/svg/resolve-content.d.ts.map +1 -0
- package/dist/assets/svg/resolve-content.js +38 -0
- package/dist/assets/svg/resolve-content.js.map +1 -0
- package/dist/assets/svg/sanitize.d.ts +22 -0
- package/dist/assets/svg/sanitize.d.ts.map +1 -0
- package/dist/assets/svg/sanitize.js +46 -0
- package/dist/assets/svg/sanitize.js.map +1 -0
- package/dist/assets/util/redact-path.d.ts +14 -0
- package/dist/assets/util/redact-path.d.ts.map +1 -0
- package/dist/assets/util/redact-path.js +16 -0
- package/dist/assets/util/redact-path.js.map +1 -0
- package/dist/assets.d.ts +10 -27
- package/dist/assets.d.ts.map +1 -1
- package/dist/assets.js +10 -549
- package/dist/assets.js.map +1 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +2 -1
- package/dist/builder.js.map +1 -1
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/compat.d.ts +63 -1
- package/dist/compat.d.ts.map +1 -1
- package/dist/compat.js +42 -5
- package/dist/compat.js.map +1 -1
- package/dist/errors.d.ts +2 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/fonts.d.ts.map +1 -1
- package/dist/fonts.js +8 -10
- package/dist/fonts.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/layout-state.d.ts +1 -1
- package/dist/layout-state.d.ts.map +1 -1
- package/dist/layout-state.js +5 -0
- package/dist/layout-state.js.map +1 -1
- package/dist/measure-blocks/float-group.d.ts +9 -0
- package/dist/measure-blocks/float-group.d.ts.map +1 -0
- package/dist/measure-blocks/float-group.js +103 -0
- package/dist/measure-blocks/float-group.js.map +1 -0
- package/dist/measure-blocks/helpers.d.ts +44 -0
- package/dist/measure-blocks/helpers.d.ts.map +1 -0
- package/dist/measure-blocks/helpers.js +43 -0
- package/dist/measure-blocks/helpers.js.map +1 -0
- package/dist/measure-blocks/highlight.d.ts +26 -0
- package/dist/measure-blocks/highlight.d.ts.map +1 -0
- package/dist/measure-blocks/highlight.js +169 -0
- package/dist/measure-blocks/highlight.js.map +1 -0
- package/dist/measure-blocks/image.d.ts +9 -0
- package/dist/measure-blocks/image.d.ts.map +1 -0
- package/dist/measure-blocks/image.js +136 -0
- package/dist/measure-blocks/image.js.map +1 -0
- package/dist/measure-blocks/index.d.ts +24 -0
- package/dist/measure-blocks/index.d.ts.map +1 -0
- package/dist/measure-blocks/index.js +179 -0
- package/dist/measure-blocks/index.js.map +1 -0
- package/dist/measure-blocks/list.d.ts +8 -0
- package/dist/measure-blocks/list.d.ts.map +1 -0
- package/dist/measure-blocks/list.js +108 -0
- package/dist/measure-blocks/list.js.map +1 -0
- package/dist/measure-blocks/simple-blocks.d.ts +18 -0
- package/dist/measure-blocks/simple-blocks.d.ts.map +1 -0
- package/dist/measure-blocks/simple-blocks.js +121 -0
- package/dist/measure-blocks/simple-blocks.js.map +1 -0
- package/dist/measure-blocks/table/columns.d.ts +17 -0
- package/dist/measure-blocks/table/columns.d.ts.map +1 -0
- package/dist/measure-blocks/table/columns.js +83 -0
- package/dist/measure-blocks/table/columns.js.map +1 -0
- package/dist/measure-blocks/table/measure.d.ts +8 -0
- package/dist/measure-blocks/table/measure.d.ts.map +1 -0
- package/dist/measure-blocks/table/measure.js +231 -0
- package/dist/measure-blocks/table/measure.js.map +1 -0
- package/dist/measure-blocks/table/spans.d.ts +25 -0
- package/dist/measure-blocks/table/spans.d.ts.map +1 -0
- package/dist/measure-blocks/table/spans.js +55 -0
- package/dist/measure-blocks/table/spans.js.map +1 -0
- package/dist/measure-blocks/text-blocks.d.ts +17 -0
- package/dist/measure-blocks/text-blocks.d.ts.map +1 -0
- package/dist/measure-blocks/text-blocks.js +242 -0
- package/dist/measure-blocks/text-blocks.js.map +1 -0
- package/dist/measure-text.d.ts +21 -3
- package/dist/measure-text.d.ts.map +1 -1
- package/dist/measure-text.js +87 -36
- package/dist/measure-text.js.map +1 -1
- package/dist/measure.d.ts +1 -1
- package/dist/measure.d.ts.map +1 -1
- package/dist/measure.js +8 -6
- package/dist/measure.js.map +1 -1
- package/dist/node-polyfill.d.ts.map +1 -1
- package/dist/node-polyfill.js +9 -0
- package/dist/node-polyfill.js.map +1 -1
- package/dist/pipeline-footnotes.d.ts +1 -1
- package/dist/pipeline-footnotes.d.ts.map +1 -1
- package/dist/pipeline-toc.d.ts +1 -1
- package/dist/pipeline-toc.d.ts.map +1 -1
- package/dist/pipeline.d.ts +3 -3
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +4 -5
- package/dist/pipeline.js.map +1 -1
- package/dist/plugin-types.d.ts +1 -1
- package/dist/plugin-types.d.ts.map +1 -1
- package/dist/post-process.d.ts +2 -2
- package/dist/post-process.d.ts.map +1 -1
- package/dist/post-process.js +32 -9
- package/dist/post-process.js.map +1 -1
- package/dist/render-blocks/blockquote.d.ts +7 -0
- package/dist/render-blocks/blockquote.d.ts.map +1 -0
- package/dist/render-blocks/blockquote.js +87 -0
- package/dist/render-blocks/blockquote.js.map +1 -0
- package/dist/render-blocks/callout.d.ts +7 -0
- package/dist/render-blocks/callout.d.ts.map +1 -0
- package/dist/render-blocks/callout.js +84 -0
- package/dist/render-blocks/callout.js.map +1 -0
- package/dist/render-blocks/code.d.ts +7 -0
- package/dist/render-blocks/code.d.ts.map +1 -0
- package/dist/render-blocks/code.js +84 -0
- package/dist/render-blocks/code.js.map +1 -0
- package/dist/render-blocks/footnote.d.ts +11 -0
- package/dist/render-blocks/footnote.d.ts.map +1 -0
- package/dist/render-blocks/footnote.js +45 -0
- package/dist/render-blocks/footnote.js.map +1 -0
- package/dist/render-blocks/header-footer.d.ts +11 -0
- package/dist/render-blocks/header-footer.d.ts.map +1 -0
- package/dist/render-blocks/header-footer.js +56 -0
- package/dist/render-blocks/header-footer.js.map +1 -0
- package/dist/render-blocks/hr.d.ts +7 -0
- package/dist/render-blocks/hr.d.ts.map +1 -0
- package/dist/render-blocks/hr.js +24 -0
- package/dist/render-blocks/hr.js.map +1 -0
- package/dist/render-blocks/image.d.ts +9 -0
- package/dist/render-blocks/image.d.ts.map +1 -0
- package/dist/render-blocks/image.js +135 -0
- package/dist/render-blocks/image.js.map +1 -0
- package/dist/render-blocks/index.d.ts +17 -0
- package/dist/render-blocks/index.d.ts.map +1 -0
- package/dist/render-blocks/index.js +17 -0
- package/dist/render-blocks/index.js.map +1 -0
- package/dist/render-blocks/list-item.d.ts +7 -0
- package/dist/render-blocks/list-item.d.ts.map +1 -0
- package/dist/render-blocks/list-item.js +80 -0
- package/dist/render-blocks/list-item.js.map +1 -0
- package/dist/render-blocks/rich.d.ts +7 -0
- package/dist/render-blocks/rich.d.ts.map +1 -0
- package/dist/render-blocks/rich.js +160 -0
- package/dist/render-blocks/rich.js.map +1 -0
- package/dist/render-blocks/table.d.ts +7 -0
- package/dist/render-blocks/table.d.ts.map +1 -0
- package/dist/render-blocks/table.js +139 -0
- package/dist/render-blocks/table.js.map +1 -0
- package/dist/render-blocks/text.d.ts +7 -0
- package/dist/render-blocks/text.d.ts.map +1 -0
- package/dist/render-blocks/text.js +183 -0
- package/dist/render-blocks/text.js.map +1 -0
- package/dist/render-blocks/watermark.d.ts +8 -0
- package/dist/render-blocks/watermark.d.ts.map +1 -0
- package/dist/render-blocks/watermark.js +52 -0
- package/dist/render-blocks/watermark.js.map +1 -0
- package/dist/render-extras.d.ts.map +1 -1
- package/dist/render-extras.js +1 -2
- package/dist/render-extras.js.map +1 -1
- package/dist/render-utils.d.ts.map +1 -1
- package/dist/render-utils.js +10 -6
- package/dist/render-utils.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +9 -3
- package/dist/render.js.map +1 -1
- package/dist/rich-text.d.ts +2 -1
- package/dist/rich-text.d.ts.map +1 -1
- package/dist/rich-text.js +0 -1
- package/dist/rich-text.js.map +1 -1
- package/dist/types-internal.d.ts +19 -3
- package/dist/types-internal.d.ts.map +1 -1
- package/dist/types-public/document.d.ts +261 -0
- package/dist/types-public/document.d.ts.map +1 -0
- package/dist/types-public/document.js +2 -0
- package/dist/types-public/document.js.map +1 -0
- package/dist/types-public/elements-block.d.ts +246 -0
- package/dist/types-public/elements-block.d.ts.map +1 -0
- package/dist/types-public/elements-block.js +8 -0
- package/dist/types-public/elements-block.js.map +1 -0
- package/dist/types-public/elements-media.d.ts +199 -0
- package/dist/types-public/elements-media.d.ts.map +1 -0
- package/dist/types-public/elements-media.js +2 -0
- package/dist/types-public/elements-media.js.map +1 -0
- package/dist/types-public/elements-text.d.ts +327 -0
- package/dist/types-public/elements-text.d.ts.map +1 -0
- package/dist/types-public/elements-text.js +2 -0
- package/dist/types-public/elements-text.js.map +1 -0
- package/dist/types-public/index.d.ts +14 -0
- package/dist/types-public/index.d.ts.map +1 -0
- package/dist/types-public/index.js +2 -0
- package/dist/types-public/index.js.map +1 -0
- package/dist/types-public/render-options.d.ts +38 -0
- package/dist/types-public/render-options.d.ts.map +1 -0
- package/dist/types-public/render-options.js +2 -0
- package/dist/types-public/render-options.js.map +1 -0
- package/dist/types-public/union.d.ts +13 -0
- package/dist/types-public/union.d.ts.map +1 -0
- package/dist/types-public/union.js +2 -0
- package/dist/types-public/union.js.map +1 -0
- package/dist/types-public/validation.d.ts +64 -0
- package/dist/types-public/validation.d.ts.map +1 -0
- package/dist/types-public/validation.js +2 -0
- package/dist/types-public/validation.js.map +1 -0
- package/dist/types-public.d.ts +5 -1081
- package/dist/types-public.d.ts.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/validate/document.d.ts +28 -0
- package/dist/validate/document.d.ts.map +1 -0
- package/dist/validate/document.js +295 -0
- package/dist/validate/document.js.map +1 -0
- package/dist/validate/elements/forms-floats.d.ts +19 -0
- package/dist/validate/elements/forms-floats.d.ts.map +1 -0
- package/dist/validate/elements/forms-floats.js +96 -0
- package/dist/validate/elements/forms-floats.js.map +1 -0
- package/dist/validate/elements/list.d.ts +10 -0
- package/dist/validate/elements/list.d.ts.map +1 -0
- package/dist/validate/elements/list.js +66 -0
- package/dist/validate/elements/list.js.map +1 -0
- package/dist/validate/elements/media.d.ts +23 -0
- package/dist/validate/elements/media.d.ts.map +1 -0
- package/dist/validate/elements/media.js +179 -0
- package/dist/validate/elements/media.js.map +1 -0
- package/dist/validate/elements/structural-simple.d.ts +21 -0
- package/dist/validate/elements/structural-simple.d.ts.map +1 -0
- package/dist/validate/elements/structural-simple.js +63 -0
- package/dist/validate/elements/structural-simple.js.map +1 -0
- package/dist/validate/elements/structural.d.ts +12 -0
- package/dist/validate/elements/structural.d.ts.map +1 -0
- package/dist/validate/elements/structural.js +12 -0
- package/dist/validate/elements/structural.js.map +1 -0
- package/dist/validate/elements/table.d.ts +10 -0
- package/dist/validate/elements/table.d.ts.map +1 -0
- package/dist/validate/elements/table.js +165 -0
- package/dist/validate/elements/table.js.map +1 -0
- package/dist/validate/elements/text.d.ts +26 -0
- package/dist/validate/elements/text.d.ts.map +1 -0
- package/dist/validate/elements/text.js +331 -0
- package/dist/validate/elements/text.js.map +1 -0
- package/dist/validate/errors.d.ts +9 -0
- package/dist/validate/errors.d.ts.map +1 -0
- package/dist/validate/errors.js +43 -0
- package/dist/validate/errors.js.map +1 -0
- package/dist/validate/fonts.d.ts +11 -0
- package/dist/validate/fonts.d.ts.map +1 -0
- package/dist/validate/fonts.js +118 -0
- package/dist/validate/fonts.js.map +1 -0
- package/dist/validate/helpers.d.ts +76 -0
- package/dist/validate/helpers.d.ts.map +1 -0
- package/dist/validate/helpers.js +169 -0
- package/dist/validate/helpers.js.map +1 -0
- package/dist/validate/index.d.ts +37 -0
- package/dist/validate/index.d.ts.map +1 -0
- package/dist/validate/index.js +279 -0
- package/dist/validate/index.js.map +1 -0
- package/dist/validate.d.ts +6 -18
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +6 -1582
- package/dist/validate.js.map +1 -1
- package/dist/vendor/pretext/VERSION.d.ts +3 -0
- package/dist/vendor/pretext/VERSION.d.ts.map +1 -0
- package/dist/vendor/pretext/VERSION.js +12 -0
- package/dist/vendor/pretext/VERSION.js.map +1 -0
- package/dist/version-check.d.ts +47 -0
- package/dist/version-check.d.ts.map +1 -0
- package/dist/version-check.js +75 -0
- package/dist/version-check.js.map +1 -0
- package/package.json +27 -8
- package/dist/measure-blocks.d.ts +0 -26
- package/dist/measure-blocks.d.ts.map +0 -1
- package/dist/measure-blocks.js +0 -1317
- package/dist/measure-blocks.js.map +0 -1
- package/dist/render-blocks.d.ts +0 -28
- package/dist/render-blocks.d.ts.map +0 -1
- package/dist/render-blocks.js +0 -1059
- package/dist/render-blocks.js.map +0 -1
package/dist/measure-text.d.ts
CHANGED
|
@@ -2,17 +2,35 @@
|
|
|
2
2
|
* measure-text.ts — Low-level text and font measurement primitives
|
|
3
3
|
* No document-element knowledge. Used by all measurement modules.
|
|
4
4
|
*/
|
|
5
|
+
export declare function setBidiWarnFn(fn: (msg: string) => void): void;
|
|
5
6
|
export type HyphenatorOpts = {
|
|
6
7
|
instance: HypherInstance;
|
|
7
8
|
minWordLength: number;
|
|
8
9
|
leftMin: number;
|
|
9
10
|
rightMin: number;
|
|
10
11
|
};
|
|
12
|
+
/** Maximum entries retained in a wordWidthCache before FIFO eviction kicks in. */
|
|
13
|
+
export declare const WORD_WIDTH_CACHE_MAX = 50000;
|
|
11
14
|
type HypherInstance = {
|
|
12
15
|
hyphenate(word: string): string[];
|
|
13
16
|
};
|
|
14
17
|
export declare function getPretext(): Promise<typeof import("./vendor/pretext/layout.js")>;
|
|
15
18
|
export declare function getHyphenator(language: string): Promise<HypherInstance>;
|
|
19
|
+
/**
|
|
20
|
+
* Pure auto-detection of dominant text direction. Returns true if RTL characters
|
|
21
|
+
* are present and at least as numerous as ASCII LTR characters.
|
|
22
|
+
*/
|
|
23
|
+
export declare function autoDetectRTL(text: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve effective text direction. Explicit `ltr` / `rtl` always wins —
|
|
26
|
+
* auto-detect never runs for explicit overrides.
|
|
27
|
+
*
|
|
28
|
+
* Bug fix (B3): previously the auto-detect path could silently flip an
|
|
29
|
+
* explicitly-set `dir: 'rtl'` paragraph back to LTR when its text happened to
|
|
30
|
+
* be ASCII-only (e.g. a romanized RTL placeholder or a translation tag).
|
|
31
|
+
* Routing explicit dir through this helper makes the override authoritative.
|
|
32
|
+
*/
|
|
33
|
+
export declare function determineDirection(text: string, explicitDir?: 'ltr' | 'rtl' | 'auto'): boolean;
|
|
16
34
|
/**
|
|
17
35
|
* Detect text direction and apply Unicode Bidi Algorithm (TR9) for visual reordering.
|
|
18
36
|
* Returns the visual-order text ready for measurement and rendering.
|
|
@@ -25,7 +43,7 @@ export declare function detectAndReorderRTL(text: string, dirOverride?: 'ltr' |
|
|
|
25
43
|
/**
|
|
26
44
|
* Measure a single word's rendered width using pretext at maxWidth=99999.
|
|
27
45
|
*/
|
|
28
|
-
export declare function measureWord(word: string, fontString: string): Promise<number>;
|
|
46
|
+
export declare function measureWord(word: string, fontString: string, cache?: Map<string, number>): Promise<number>;
|
|
29
47
|
/**
|
|
30
48
|
* Measure unwrapped (single-line) text width using pretext at large maxWidth.
|
|
31
49
|
* Handles multi-line text by returning the max width across all lines.
|
|
@@ -37,7 +55,7 @@ export declare function getThaiSegmenter(): Intl.Segmenter | null;
|
|
|
37
55
|
* Handles CJK (character-level breaks), Thai/Lao (Intl.Segmenter), and Latin (space + hyphens).
|
|
38
56
|
* Returns lines with actual hyphens added to hyphenated words.
|
|
39
57
|
*/
|
|
40
|
-
export declare function measureTextWithHyphenation(text: string, fontString: string, maxWidth: number, opts: HyphenatorOpts): Promise<Array<{
|
|
58
|
+
export declare function measureTextWithHyphenation(text: string, fontString: string, maxWidth: number, opts: HyphenatorOpts, docWordCache?: Map<string, number>): Promise<Array<{
|
|
41
59
|
text: string;
|
|
42
60
|
width: number;
|
|
43
61
|
}>>;
|
|
@@ -45,7 +63,7 @@ export declare function measureTextWithHyphenation(text: string, fontString: str
|
|
|
45
63
|
* Core text measurement: delegates to hyphenation path or direct Pretext layout.
|
|
46
64
|
* If no hyphenator is available, falls back to direct layout (text wraps without hyphens).
|
|
47
65
|
*/
|
|
48
|
-
export declare function measureText(text: string, fontSize: number, fontFamily: string, fontWeight: 400 | 700, maxWidth: number,
|
|
66
|
+
export declare function measureText(text: string, fontSize: number, fontFamily: string, fontWeight: 400 | 700, maxWidth: number, _lineHeight: number, hyphenatorOpts?: HyphenatorOpts, wordWidthCache?: Map<string, number>): Promise<Array<{
|
|
49
67
|
text: string;
|
|
50
68
|
width: number;
|
|
51
69
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure-text.d.ts","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"measure-text.d.ts","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,wBAAgB,aAAa,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAE7D;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnH,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAE1C,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAA;AAK3D,wBAAsB,UAAU,yDAK/B;AAID,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAc7E;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAK9F;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C9D;AAID;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAID;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,GACpB,OAAO,CAAC,MAAM,CAAC,CAajB;AAoDD,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAWxD;AAoHD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAqIjD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0BjD"}
|
package/dist/measure-text.js
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
* No document-element knowledge. Used by all measurement modules.
|
|
4
4
|
*/
|
|
5
5
|
import { PretextPdfError } from './errors.js';
|
|
6
|
+
// Module-level bidi warn bridge — lets render() thread a structured logger without
|
|
7
|
+
// changing detectAndReorderRTL's call signature at all 6 measure-blocks.ts call sites.
|
|
8
|
+
let _warnFn = (msg) => console.warn(msg);
|
|
9
|
+
export function setBidiWarnFn(fn) {
|
|
10
|
+
_warnFn = fn;
|
|
11
|
+
}
|
|
12
|
+
/** Maximum entries retained in a wordWidthCache before FIFO eviction kicks in. */
|
|
13
|
+
export const WORD_WIDTH_CACHE_MAX = 50_000;
|
|
6
14
|
/** Lazily-loaded Pretext module — must be imported AFTER polyfill is installed */
|
|
7
15
|
let _pretext = null;
|
|
8
16
|
export async function getPretext() {
|
|
@@ -26,64 +34,105 @@ export async function getHyphenator(language) {
|
|
|
26
34
|
return new Hypher(dict);
|
|
27
35
|
}
|
|
28
36
|
// ─── RTL Text Support (Unicode Bidirectional Algorithm via bidi-js) ────────────
|
|
37
|
+
/** Full RTL block coverage (UAX #9): Hebrew, Arabic, Syriac, Thaana, NKo, Samaritan, Mandaic,
|
|
38
|
+
* Arabic Supplement/Extended, plus historical RTL scripts. */
|
|
39
|
+
const RTL_CHAR_RE = /[-ࣿיִ-ﭏﭐ-﷿ﹰ-\u{10800}-\u{10CFF}\u{10D00}-\u{10D3F}\u{10E80}-\u{10EFF}\u{10F30}-\u{10FFF}\u{1E800}-\u{1E95F}\u{1EC70}-\u{1ECBF}\u{1EE00}-\u{1EEFF}]/gu;
|
|
40
|
+
const LTR_CHAR_RE = /[a-zA-Z0-9]/g;
|
|
41
|
+
/**
|
|
42
|
+
* Pure auto-detection of dominant text direction. Returns true if RTL characters
|
|
43
|
+
* are present and at least as numerous as ASCII LTR characters.
|
|
44
|
+
*/
|
|
45
|
+
export function autoDetectRTL(text) {
|
|
46
|
+
const rtlCount = (text.match(RTL_CHAR_RE) ?? []).length;
|
|
47
|
+
const ltrCount = (text.match(LTR_CHAR_RE) ?? []).length;
|
|
48
|
+
return rtlCount > 0 && rtlCount >= ltrCount;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolve effective text direction. Explicit `ltr` / `rtl` always wins —
|
|
52
|
+
* auto-detect never runs for explicit overrides.
|
|
53
|
+
*
|
|
54
|
+
* Bug fix (B3): previously the auto-detect path could silently flip an
|
|
55
|
+
* explicitly-set `dir: 'rtl'` paragraph back to LTR when its text happened to
|
|
56
|
+
* be ASCII-only (e.g. a romanized RTL placeholder or a translation tag).
|
|
57
|
+
* Routing explicit dir through this helper makes the override authoritative.
|
|
58
|
+
*/
|
|
59
|
+
export function determineDirection(text, explicitDir) {
|
|
60
|
+
if (explicitDir === 'rtl')
|
|
61
|
+
return true;
|
|
62
|
+
if (explicitDir === 'ltr')
|
|
63
|
+
return false;
|
|
64
|
+
// explicitDir === 'auto' or undefined → auto-detect
|
|
65
|
+
return autoDetectRTL(text);
|
|
66
|
+
}
|
|
29
67
|
/**
|
|
30
68
|
* Detect text direction and apply Unicode Bidi Algorithm (TR9) for visual reordering.
|
|
31
69
|
* Returns the visual-order text ready for measurement and rendering.
|
|
32
70
|
*/
|
|
33
71
|
export async function detectAndReorderRTL(text, dirOverride) {
|
|
34
|
-
|
|
35
|
-
if (
|
|
72
|
+
const isRTL = determineDirection(text, dirOverride);
|
|
73
|
+
if (!isRTL) {
|
|
36
74
|
return { visual: text, isRTL: false, logical: text };
|
|
37
75
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
76
|
+
// Apply bidi algorithm (TR9) to reorder visually. We split two failure modes:
|
|
77
|
+
// 1. bidi-js can't be loaded (missing peer install) → warn and render LTR,
|
|
78
|
+
// because logical-order text with isRTL:true would be VISUALLY BROKEN.
|
|
79
|
+
// 2. bidi-js loaded but threw during reordering → real bug, surface it as
|
|
80
|
+
// PretextPdfError so callers can decide.
|
|
81
|
+
let bidiMod;
|
|
82
|
+
try {
|
|
83
|
+
// @ts-ignore bidi-js has no type definitions
|
|
84
|
+
bidiMod = (await import('bidi-js')).default;
|
|
85
|
+
}
|
|
86
|
+
catch (importErr) {
|
|
87
|
+
const msg = importErr instanceof Error ? importErr.message : String(importErr);
|
|
88
|
+
if (/Cannot find module|Cannot find package|ERR_MODULE_NOT_FOUND/.test(msg)) {
|
|
89
|
+
_warnFn('[pretext-pdf] bidi-js is not installed; RTL text may render incorrectly. ' +
|
|
90
|
+
'Install bidi-js to enable proper bidi reordering: npm install bidi-js');
|
|
91
|
+
// Better to render LTR than to mirror logical-order text under RTL alignment.
|
|
50
92
|
return { visual: text, isRTL: false, logical: text };
|
|
51
93
|
}
|
|
94
|
+
// Module loaded but something else went wrong during import — surface it.
|
|
95
|
+
throw new PretextPdfError('RTL_REORDER_FAILED', `bidi-js import failed: ${msg}`);
|
|
52
96
|
}
|
|
53
|
-
// Step 2: Auto-detect dominant direction (full RTL block coverage, UAX #9)
|
|
54
|
-
const rtlRanges = /[\u0590-\u08FF\uFB1D-\uFB4F\uFB50-\uFDFF\uFE70-\uFEFF\u{10800}-\u{10CFF}\u{10D00}-\u{10D3F}\u{10E80}-\u{10EFF}\u{10F30}-\u{10FFF}\u{1E800}-\u{1E95F}\u{1EC70}-\u{1ECBF}\u{1EE00}-\u{1EEFF}]/gu;
|
|
55
|
-
const rtlCount = (text.match(rtlRanges) ?? []).length;
|
|
56
|
-
const ltrCount = (text.match(/[a-zA-Z0-9]/g) ?? []).length;
|
|
57
|
-
const isRTL = rtlCount > 0 && rtlCount >= ltrCount;
|
|
58
|
-
if (!isRTL) {
|
|
59
|
-
return { visual: text, isRTL: false, logical: text };
|
|
60
|
-
}
|
|
61
|
-
// Step 3: Apply bidi algorithm (TR9) to reorder visually
|
|
62
97
|
try {
|
|
63
|
-
|
|
64
|
-
const bidiFactory = (await import('bidi-js')).default;
|
|
65
|
-
const bidi = typeof bidiFactory === 'function' ? bidiFactory() : bidiFactory;
|
|
98
|
+
const bidi = typeof bidiMod === 'function' ? bidiMod() : bidiMod;
|
|
66
99
|
const { getEmbeddingLevels, getReorderedString } = bidi;
|
|
67
100
|
const embedLevelsResult = getEmbeddingLevels(text, 'rtl');
|
|
68
101
|
const visual = getReorderedString(text, embedLevelsResult);
|
|
69
102
|
return { visual, isRTL: true, logical: text };
|
|
70
103
|
}
|
|
71
104
|
catch (err) {
|
|
72
|
-
|
|
73
|
-
|
|
105
|
+
// bidi-js is installed but threw on real input — this is a real error.
|
|
106
|
+
throw new PretextPdfError('RTL_REORDER_FAILED', `bidi-js reorder failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
74
107
|
}
|
|
75
108
|
}
|
|
109
|
+
// (Legacy duplicated auto-detect + bidi block removed — logic merged into
|
|
110
|
+
// determineDirection() + detectAndReorderRTL() above for the B3 fix.)
|
|
76
111
|
/**
|
|
77
112
|
* Measure a single word's rendered width using pretext at maxWidth=99999.
|
|
78
113
|
*/
|
|
79
|
-
export async function measureWord(word, fontString) {
|
|
80
|
-
const { prepareWithSegments, layoutWithLines } = await getPretext();
|
|
114
|
+
export async function measureWord(word, fontString, cache) {
|
|
81
115
|
if (!word)
|
|
82
116
|
return 0;
|
|
117
|
+
const cacheKey = cache ? `${word}|${fontString}` : '';
|
|
118
|
+
if (cache && cache.has(cacheKey))
|
|
119
|
+
return cache.get(cacheKey);
|
|
120
|
+
const { prepareWithSegments, layoutWithLines } = await getPretext();
|
|
83
121
|
const prepared = prepareWithSegments(word, fontString, {});
|
|
84
122
|
const result = layoutWithLines(prepared, 99999, 99999);
|
|
85
123
|
const lines = result.lines ?? [];
|
|
86
|
-
|
|
124
|
+
const width = lines[0]?.width ?? 0;
|
|
125
|
+
if (cache) {
|
|
126
|
+
// FIFO eviction: Map iterates in insertion order, so deleting the first key
|
|
127
|
+
// drops the oldest entry. Bounds memory for long-running processes.
|
|
128
|
+
if (cache.size >= WORD_WIDTH_CACHE_MAX) {
|
|
129
|
+
const firstKey = cache.keys().next().value;
|
|
130
|
+
if (firstKey !== undefined)
|
|
131
|
+
cache.delete(firstKey);
|
|
132
|
+
}
|
|
133
|
+
cache.set(cacheKey, width);
|
|
134
|
+
}
|
|
135
|
+
return width;
|
|
87
136
|
}
|
|
88
137
|
// ─── Core Text Measurement ────────────────────────────────────────────────────
|
|
89
138
|
/**
|
|
@@ -173,7 +222,6 @@ function insertThaiBreaks(text) {
|
|
|
173
222
|
if (!seg)
|
|
174
223
|
return text; // no ICU data — return unchanged; lines may overflow
|
|
175
224
|
const result = [];
|
|
176
|
-
let inThaiRun = false;
|
|
177
225
|
// Process character by character, only segmenting Thai/Lao runs
|
|
178
226
|
const parts = text.split(/([\u0E00-\u0EFF]+)/);
|
|
179
227
|
for (const part of parts) {
|
|
@@ -279,13 +327,16 @@ function tokenizeParagraph(para) {
|
|
|
279
327
|
* Handles CJK (character-level breaks), Thai/Lao (Intl.Segmenter), and Latin (space + hyphens).
|
|
280
328
|
* Returns lines with actual hyphens added to hyphenated words.
|
|
281
329
|
*/
|
|
282
|
-
export async function measureTextWithHyphenation(text, fontString, maxWidth, opts) {
|
|
330
|
+
export async function measureTextWithHyphenation(text, fontString, maxWidth, opts, docWordCache) {
|
|
283
331
|
const { instance: hypher, minWordLength, leftMin, rightMin } = opts;
|
|
332
|
+
// Paragraph-local cache stays as the fast inner cache (keyed by word only
|
|
333
|
+
// since fontString is constant for the call). The doc-level cache is a
|
|
334
|
+
// fallback miss-path that lets common words shared across paragraphs hit.
|
|
284
335
|
const widthCache = new Map();
|
|
285
336
|
const measure = async (w) => {
|
|
286
337
|
if (widthCache.has(w))
|
|
287
338
|
return widthCache.get(w);
|
|
288
|
-
const width = await measureWord(w, fontString);
|
|
339
|
+
const width = await measureWord(w, fontString, docWordCache);
|
|
289
340
|
widthCache.set(w, width);
|
|
290
341
|
return width;
|
|
291
342
|
};
|
|
@@ -403,7 +454,7 @@ export async function measureTextWithHyphenation(text, fontString, maxWidth, opt
|
|
|
403
454
|
* Core text measurement: delegates to hyphenation path or direct Pretext layout.
|
|
404
455
|
* If no hyphenator is available, falls back to direct layout (text wraps without hyphens).
|
|
405
456
|
*/
|
|
406
|
-
export async function measureText(text, fontSize, fontFamily, fontWeight, maxWidth,
|
|
457
|
+
export async function measureText(text, fontSize, fontFamily, fontWeight, maxWidth, _lineHeight, hyphenatorOpts, wordWidthCache) {
|
|
407
458
|
if (!text || text.trim() === '')
|
|
408
459
|
return [];
|
|
409
460
|
const { prepareWithSegments, layoutWithLines } = await getPretext();
|
|
@@ -411,7 +462,7 @@ export async function measureText(text, fontSize, fontFamily, fontWeight, maxWid
|
|
|
411
462
|
const fontString = `${weightPrefix}${fontSize}px ${fontFamily}`;
|
|
412
463
|
// If hyphenator is available and text is long, use hyphenation
|
|
413
464
|
if (hyphenatorOpts && text.length > hyphenatorOpts.minWordLength) {
|
|
414
|
-
return await measureTextWithHyphenation(text, fontString, maxWidth, hyphenatorOpts);
|
|
465
|
+
return await measureTextWithHyphenation(text, fontString, maxWidth, hyphenatorOpts, wordWidthCache);
|
|
415
466
|
}
|
|
416
467
|
// Thai/Lao: Skia/canvas doesn't segment Thai — insert zero-width spaces at word
|
|
417
468
|
// boundaries so pretext's line-breaker can split correctly.
|
package/dist/measure-text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure-text.js","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"measure-text.js","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"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"}
|
package/dist/measure.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { PdfDocument } from './types.js';
|
|
6
6
|
import type { MeasuredBlock, ImageMap } from './types-internal.js';
|
|
7
|
-
import { measureBlock } from './measure-blocks.js';
|
|
7
|
+
import { measureBlock } from './measure-blocks/index.js';
|
|
8
8
|
import type { PluginDefinition } from './plugin-types.js';
|
|
9
9
|
export { measureBlock };
|
|
10
10
|
/**
|
package/dist/measure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EACZ,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EACV,aAAa,EAAE,QAAQ,EACxB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EACZ,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EACV,aAAa,EAAE,QAAQ,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAIxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIzD,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,GAAG,GAAG,GAAS,EACvB,KAAK,GAAE,QAAQ,GAAG,QAAmB,GACpC,MAAM,CAER;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1E,UAAU,EAAE,OAAO,YAAY,EAAE,UAAU,EAC3C,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,aAAa,EAAE,CAAC,CAqD1B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAC3B,OAAO,CAAC,aAAa,EAAE,CAAC,CA4F1B"}
|
package/dist/measure.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* measure.ts — Measurement orchestrator
|
|
3
3
|
* Entry point for the measurement pipeline. Exports public measurement functions.
|
|
4
4
|
*/
|
|
5
|
-
import { measureBlock } from './measure-blocks.js';
|
|
5
|
+
import { measureBlock } from './measure-blocks/index.js';
|
|
6
6
|
import { getPretext, getHyphenator } from './measure-text.js';
|
|
7
7
|
import { LINE_HEIGHT_BODY } from './render-utils.js';
|
|
8
8
|
import { findPlugin, runPluginMeasure } from './plugin-registry.js';
|
|
@@ -92,7 +92,7 @@ export async function buildTocEntryBlocks(headings, tocElement, contentWidth, do
|
|
|
92
92
|
* Returns array of MeasuredBlock (includes flattened lists + SVG-wrapped images).
|
|
93
93
|
*/
|
|
94
94
|
export async function measureAllBlocks(doc, contentWidth, imageMap, pageContentHeight, plugins) {
|
|
95
|
-
const { measureImageWithKey, measureFloatImageBlock } = await import('./measure-blocks.js');
|
|
95
|
+
const { measureImageWithKey, measureFloatImageBlock } = await import('./measure-blocks/index.js');
|
|
96
96
|
const results = [];
|
|
97
97
|
// Initialize hyphenator if enabled
|
|
98
98
|
let hyphenatorOpts;
|
|
@@ -101,6 +101,8 @@ export async function measureAllBlocks(doc, contentWidth, imageMap, pageContentH
|
|
|
101
101
|
const instance = await getHyphenator(language);
|
|
102
102
|
hyphenatorOpts = { instance, minWordLength, leftMin, rightMin };
|
|
103
103
|
}
|
|
104
|
+
// Document-level word-width cache — dedups common-word measurements across paragraphs
|
|
105
|
+
const wordWidthCache = new Map();
|
|
104
106
|
for (let i = 0; i < doc.content.length; i++) {
|
|
105
107
|
const el = doc.content[i];
|
|
106
108
|
if (el.type === 'image') {
|
|
@@ -111,7 +113,7 @@ export async function measureAllBlocks(doc, contentWidth, imageMap, pageContentH
|
|
|
111
113
|
continue;
|
|
112
114
|
}
|
|
113
115
|
if (el.float) {
|
|
114
|
-
const block = await measureFloatImageBlock(el, imageKey, imageMap, contentWidth, pageContentHeight, doc);
|
|
116
|
+
const block = await measureFloatImageBlock(el, imageKey, imageMap, contentWidth, pageContentHeight, doc, wordWidthCache);
|
|
115
117
|
results.push(block);
|
|
116
118
|
}
|
|
117
119
|
else {
|
|
@@ -143,13 +145,13 @@ export async function measureAllBlocks(doc, contentWidth, imageMap, pageContentH
|
|
|
143
145
|
results.push(block);
|
|
144
146
|
}
|
|
145
147
|
else if (el.type === 'float-group') {
|
|
146
|
-
const { measureFloatGroup } = await import('./measure-blocks.js');
|
|
148
|
+
const { measureFloatGroup } = await import('./measure-blocks/index.js');
|
|
147
149
|
const imageKey = `float-group-${i}`;
|
|
148
150
|
// Skip float-groups if their image failed to load
|
|
149
151
|
if (!imageMap.has(imageKey)) {
|
|
150
152
|
continue;
|
|
151
153
|
}
|
|
152
|
-
const block = await measureFloatGroup(el, imageKey, imageMap, contentWidth, pageContentHeight, doc, hyphenatorOpts);
|
|
154
|
+
const block = await measureFloatGroup(el, imageKey, imageMap, contentWidth, pageContentHeight, doc, measureBlock, hyphenatorOpts, wordWidthCache);
|
|
153
155
|
results.push(block);
|
|
154
156
|
}
|
|
155
157
|
else {
|
|
@@ -161,7 +163,7 @@ export async function measureAllBlocks(doc, contentWidth, imageMap, pageContentH
|
|
|
161
163
|
results.push(block);
|
|
162
164
|
}
|
|
163
165
|
else {
|
|
164
|
-
const result = await measureBlock(el, contentWidth, doc, hyphenatorOpts);
|
|
166
|
+
const result = await measureBlock(el, contentWidth, doc, hyphenatorOpts, wordWidthCache);
|
|
165
167
|
if (Array.isArray(result)) {
|
|
166
168
|
results.push(...result);
|
|
167
169
|
}
|
package/dist/measure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure.js","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"measure.js","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-polyfill.d.ts","sourceRoot":"","sources":["../src/node-polyfill.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"node-polyfill.d.ts","sourceRoot":"","sources":["../src/node-polyfill.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmGzD"}
|
package/dist/node-polyfill.js
CHANGED
|
@@ -54,6 +54,8 @@ export async function installNodePolyfill() {
|
|
|
54
54
|
const fontVariants = [
|
|
55
55
|
{
|
|
56
56
|
family: 'Inter',
|
|
57
|
+
weight: '400',
|
|
58
|
+
style: 'normal',
|
|
57
59
|
paths: [
|
|
58
60
|
resolveInterWoff2('inter-latin-400-normal.woff2'),
|
|
59
61
|
resolveInterWoff2('inter-all-400-normal.woff2'),
|
|
@@ -64,6 +66,8 @@ export async function installNodePolyfill() {
|
|
|
64
66
|
// Register bold as the same family — @napi-rs/canvas (Skia) uses the
|
|
65
67
|
// bold variant automatically when the CSS font string includes "bold"
|
|
66
68
|
family: 'Inter',
|
|
69
|
+
weight: '700',
|
|
70
|
+
style: 'normal',
|
|
67
71
|
paths: [
|
|
68
72
|
resolveInterWoff2('inter-latin-700-normal.woff2'),
|
|
69
73
|
resolveInterWoff2('inter-all-700-normal.woff2'),
|
|
@@ -73,10 +77,12 @@ export async function installNodePolyfill() {
|
|
|
73
77
|
];
|
|
74
78
|
let anyLoaded = false;
|
|
75
79
|
for (const variant of fontVariants) {
|
|
80
|
+
let variantLoaded = false;
|
|
76
81
|
for (const fontPath of variant.paths) {
|
|
77
82
|
if (fontPath && fs.existsSync(fontPath)) {
|
|
78
83
|
try {
|
|
79
84
|
GlobalFonts.registerFromPath(fontPath, variant.family);
|
|
85
|
+
variantLoaded = true;
|
|
80
86
|
anyLoaded = true;
|
|
81
87
|
break; // Move to next variant
|
|
82
88
|
}
|
|
@@ -85,6 +91,9 @@ export async function installNodePolyfill() {
|
|
|
85
91
|
}
|
|
86
92
|
}
|
|
87
93
|
}
|
|
94
|
+
if (!variantLoaded) {
|
|
95
|
+
console.warn(`[pretext-pdf] Could not register ${variant.family} ${variant.weight} ${variant.style} font for canvas measurement — text metrics may be inaccurate for this variant`);
|
|
96
|
+
}
|
|
88
97
|
}
|
|
89
98
|
if (!anyLoaded) {
|
|
90
99
|
console.warn('[pretext-pdf] Inter font not found for Node.js canvas measurement. Text metrics may differ. Run: npm install @fontsource/inter');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-polyfill.js","sourceRoot":"","sources":["../src/node-polyfill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9D,IAAI,iBAAiB,GAAG,KAAK,CAAA;AAE7B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,iBAAiB;QAAE,OAAM;IAE7B,sCAAsC;IACtC,8DAA8D;IAC9D,IAAI,UAAe,CAAA;IACnB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,MAAM,CAAC,iBAA2B,CAAC,CAAA;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CACvB,oBAAoB,EACpB,wFAAwF,CACzF,CAAA;IACH,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,UAAU,CAAA;IAEhD,gDAAgD;IAChD,MAAM,mBAAmB;QACf,OAAO,CAAiC;QAEhD,YAAY,KAAa,EAAE,MAAc;YACvC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;QAED,UAAU,CAAC,IAAY;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAY,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA,CAAC,CAAC;KAC5C;IAED,yEAAyE;IACzE,MAAM,CAAC,eAAe,GAAG,mBAAmB,CAAA;IAE5C,gFAAgF;IAChF,wFAAwF;IACxF,uEAAuE;IACvE,SAAS,iBAAiB,CAAC,QAAgB;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;YACjE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"node-polyfill.js","sourceRoot":"","sources":["../src/node-polyfill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ContentElement } from './types-public.js';
|
|
1
|
+
import type { ContentElement } from './types-public/index.js';
|
|
2
2
|
import type { MeasuredBlock, PaginatedDocument } from './types-internal.js';
|
|
3
3
|
/** Build document-order footnote numbering by scanning rich-paragraphs in content order. */
|
|
4
4
|
export declare function buildFootnoteNumbering(content: ContentElement[]): Map<string, number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-footnotes.d.ts","sourceRoot":"","sources":["../src/pipeline-footnotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"pipeline-footnotes.d.ts","sourceRoot":"","sources":["../src/pipeline-footnotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,yBAAyB,CAAA;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAM3E,4FAA4F;AAC5F,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAarF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,aAAa,EAAE,EAC/B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EACjE,GAAG,EAAE;IAAE,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,GACjC,iBAAiB,CAiFnB"}
|
package/dist/pipeline-toc.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-toc.d.ts","sourceRoot":"","sources":["../src/pipeline-toc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pipeline-toc.d.ts","sourceRoot":"","sources":["../src/pipeline-toc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGxD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,aAAa,EAAE,EAC/B,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,EACxE,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,EAAE,CAAC,CA0B1B"}
|
package/dist/pipeline.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PDFDocument } from '@cantoo/pdf-lib';
|
|
2
|
-
import type { PdfDocument, RenderOptions } from './types-public.js';
|
|
2
|
+
import type { PdfDocument, RenderOptions } from './types-public/index.js';
|
|
3
3
|
import type { PageGeometry, FontMap, ImageMap, MeasuredBlock } from './types-internal.js';
|
|
4
4
|
import { runFootnoteTwoPass } from './pipeline-footnotes.js';
|
|
5
5
|
export declare function stageValidate(doc: PdfDocument, options?: RenderOptions): void;
|
|
@@ -8,14 +8,14 @@ export declare function stageInit(doc: PdfDocument): Promise<{
|
|
|
8
8
|
geo: Omit<PageGeometry, 'contentHeight' | 'headerHeight' | 'footerHeight'>;
|
|
9
9
|
defaultFont: string;
|
|
10
10
|
}>;
|
|
11
|
-
export declare function stageLoadAssets(doc: PdfDocument, pdfDoc: PDFDocument, contentWidth: number, plugins?: import('./plugin-types.js').PluginDefinition[], logger?: import('./types-public.js').Logger): Promise<{
|
|
11
|
+
export declare function stageLoadAssets(doc: PdfDocument, pdfDoc: PDFDocument, contentWidth: number, plugins?: import('./plugin-types.js').PluginDefinition[], logger?: import('./types-public/index.js').Logger): Promise<{
|
|
12
12
|
fontMap: FontMap;
|
|
13
13
|
imageMap: ImageMap;
|
|
14
14
|
}>;
|
|
15
15
|
export declare function stageFinalizeGeo(doc: PdfDocument, partialGeo: Omit<PageGeometry, 'contentHeight' | 'headerHeight' | 'footerHeight'>, defaultFont: string): Promise<PageGeometry>;
|
|
16
16
|
export declare function stageMeasure(doc: PdfDocument, contentWidth: number, imageMap: ImageMap, contentHeight: number, plugins?: import('./plugin-types.js').PluginDefinition[]): Promise<MeasuredBlock[]>;
|
|
17
17
|
export declare function stagePaginate(measuredBlocks: MeasuredBlock[], contentHeight: number, doc: PdfDocument): ReturnType<typeof runFootnoteTwoPass>;
|
|
18
|
-
export declare function stageRender(paginatedDoc: ReturnType<typeof stagePaginate>, doc: PdfDocument, fontMap: FontMap, imageMap: ImageMap, pdfDoc: PDFDocument, geo: PageGeometry, plugins?: import('./plugin-types.js').PluginDefinition[], logger?: import('./types-public.js').Logger): Promise<Uint8Array>;
|
|
18
|
+
export declare function stageRender(paginatedDoc: ReturnType<typeof stagePaginate>, doc: PdfDocument, fontMap: FontMap, imageMap: ImageMap, pdfDoc: PDFDocument, geo: PageGeometry, plugins?: import('./plugin-types.js').PluginDefinition[], logger?: import('./types-public/index.js').Logger): Promise<Uint8Array>;
|
|
19
19
|
/**
|
|
20
20
|
* Run all 5 stages in sequence and return raw PDF bytes.
|
|
21
21
|
* Post-processing (signature, encryption) is applied by the public render() in index.ts.
|
package/dist/pipeline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAW,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAW,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAUzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAI5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAE7E;AAID,wBAAsB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC;IACzD,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC,CAAA;IAC1E,WAAW,EAAE,MAAM,CAAA;CACpB,CAAC,CAwCD;AAID,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,mBAAmB,EAAE,gBAAgB,EAAE,EACxD,MAAM,CAAC,EAAE,OAAO,yBAAyB,EAAE,MAAM,GAChD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,CAKnD;AAID,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC,EACjF,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAiCvB;AAID,wBAAsB,YAAY,CAChC,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,OAAO,mBAAmB,EAAE,gBAAgB,EAAE,GACvD,OAAO,CAAC,aAAa,EAAE,CAAC,CAI1B;AAID,wBAAgB,aAAa,CAC3B,cAAc,EAAE,aAAa,EAAE,EAC/B,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,WAAW,GACf,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAGvC;AAID,wBAAsB,WAAW,CAC/B,YAAY,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,EAC9C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,OAAO,CAAC,EAAE,OAAO,mBAAmB,EAAE,gBAAgB,EAAE,EACxD,MAAM,CAAC,EAAE,OAAO,yBAAyB,EAAE,MAAM,GAChD,OAAO,CAAC,UAAU,CAAC,CAErB;AAID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBhG"}
|
package/dist/pipeline.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PDFDocument, PDFName, PDFString } from '@cantoo/pdf-lib';
|
|
2
2
|
import { PretextPdfError } from './errors.js';
|
|
3
3
|
import { resolvePageDimensions } from './page-sizes.js';
|
|
4
|
-
import { validate } from './validate.js';
|
|
4
|
+
import { validate } from './validate/index.js';
|
|
5
5
|
import { loadFonts } from './fonts.js';
|
|
6
6
|
import { loadImages } from './assets.js';
|
|
7
7
|
import { measureAllBlocks, measureHeaderFooterHeight } from './measure.js';
|
|
@@ -57,10 +57,9 @@ export async function stageInit(doc) {
|
|
|
57
57
|
}
|
|
58
58
|
// ─── Stage 2b: Load assets (fonts + images in parallel) ──────────────────────
|
|
59
59
|
export async function stageLoadAssets(doc, pdfDoc, contentWidth, plugins, logger) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
]);
|
|
60
|
+
// Sequential: both mutate pdfDoc's cross-reference table — concurrent mutation causes intermittent xref corruption.
|
|
61
|
+
const fontMap = await loadFonts(doc, pdfDoc);
|
|
62
|
+
const imageMap = await loadImages(doc, pdfDoc, contentWidth, plugins, logger);
|
|
64
63
|
return { fontMap, imageMap };
|
|
65
64
|
}
|
|
66
65
|
// ─── Stage 2c: Finalize geometry (header/footer heights) ─────────────────────
|