pretext-pdf 0.9.3 → 1.0.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/README.md +874 -795
  3. package/dist/assets.d.ts +4 -2
  4. package/dist/assets.d.ts.map +1 -1
  5. package/dist/assets.js +22 -1
  6. package/dist/assets.js.map +1 -1
  7. package/dist/benchmarks/corpora.d.ts +11 -0
  8. package/dist/benchmarks/corpora.d.ts.map +1 -0
  9. package/dist/benchmarks/corpora.js +228 -0
  10. package/dist/benchmarks/corpora.js.map +1 -0
  11. package/dist/builder.d.ts +10 -2
  12. package/dist/builder.d.ts.map +1 -1
  13. package/dist/builder.js +12 -4
  14. package/dist/builder.js.map +1 -1
  15. package/dist/cli.js +19 -19
  16. package/dist/element-types.d.ts +16 -0
  17. package/dist/element-types.d.ts.map +1 -0
  18. package/dist/element-types.js +16 -0
  19. package/dist/element-types.js.map +1 -0
  20. package/dist/errors.d.ts +8 -1
  21. package/dist/errors.d.ts.map +1 -1
  22. package/dist/errors.js +4 -0
  23. package/dist/errors.js.map +1 -1
  24. package/dist/fonts.d.ts +2 -1
  25. package/dist/fonts.d.ts.map +1 -1
  26. package/dist/fonts.js.map +1 -1
  27. package/dist/index.d.ts +21 -17
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +25 -309
  30. package/dist/index.js.map +1 -1
  31. package/dist/layout-state.d.ts +39 -0
  32. package/dist/layout-state.d.ts.map +1 -0
  33. package/dist/layout-state.js +46 -0
  34. package/dist/layout-state.js.map +1 -0
  35. package/dist/measure-blocks.d.ts +2 -1
  36. package/dist/measure-blocks.d.ts.map +1 -1
  37. package/dist/measure-blocks.js.map +1 -1
  38. package/dist/measure.d.ts +4 -2
  39. package/dist/measure.d.ts.map +1 -1
  40. package/dist/measure.js +15 -5
  41. package/dist/measure.js.map +1 -1
  42. package/dist/page-sizes.d.ts +1 -0
  43. package/dist/page-sizes.d.ts.map +1 -1
  44. package/dist/page-sizes.js.map +1 -1
  45. package/dist/paginate.d.ts +1 -1
  46. package/dist/paginate.d.ts.map +1 -1
  47. package/dist/paginate.js +11 -2
  48. package/dist/paginate.js.map +1 -1
  49. package/dist/pipeline-footnotes.d.ts +18 -0
  50. package/dist/pipeline-footnotes.d.ts.map +1 -0
  51. package/dist/pipeline-footnotes.js +98 -0
  52. package/dist/pipeline-footnotes.js.map +1 -0
  53. package/dist/pipeline-toc.d.ts +11 -0
  54. package/dist/pipeline-toc.d.ts.map +1 -0
  55. package/dist/pipeline-toc.js +28 -0
  56. package/dist/pipeline-toc.js.map +1 -0
  57. package/dist/pipeline.d.ts +24 -0
  58. package/dist/pipeline.d.ts.map +1 -0
  59. package/dist/pipeline.js +116 -0
  60. package/dist/pipeline.js.map +1 -0
  61. package/dist/plugin-registry.d.ts +40 -0
  62. package/dist/plugin-registry.d.ts.map +1 -0
  63. package/dist/plugin-registry.js +104 -0
  64. package/dist/plugin-registry.js.map +1 -0
  65. package/dist/plugin-types.d.ts +185 -0
  66. package/dist/plugin-types.d.ts.map +1 -0
  67. package/dist/plugin-types.js +27 -0
  68. package/dist/plugin-types.js.map +1 -0
  69. package/dist/post-process.d.ts +16 -0
  70. package/dist/post-process.d.ts.map +1 -0
  71. package/dist/post-process.js +80 -0
  72. package/dist/post-process.js.map +1 -0
  73. package/dist/render-blocks.d.ts +2 -1
  74. package/dist/render-blocks.d.ts.map +1 -1
  75. package/dist/render-blocks.js.map +1 -1
  76. package/dist/render-extras.d.ts +2 -2
  77. package/dist/render-extras.d.ts.map +1 -1
  78. package/dist/render-extras.js.map +1 -1
  79. package/dist/render.d.ts +4 -2
  80. package/dist/render.d.ts.map +1 -1
  81. package/dist/render.js +23 -4
  82. package/dist/render.js.map +1 -1
  83. package/dist/types-internal.d.ts +302 -0
  84. package/dist/types-internal.d.ts.map +1 -0
  85. package/dist/types-internal.js +9 -0
  86. package/dist/types-internal.js.map +1 -0
  87. package/dist/types-public.d.ts +1031 -0
  88. package/dist/types-public.d.ts.map +1 -0
  89. package/dist/types-public.js +2 -0
  90. package/dist/types-public.js.map +1 -0
  91. package/dist/types.d.ts +6 -1224
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/types.js +7 -0
  94. package/dist/types.js.map +1 -1
  95. package/dist/validate.d.ts +6 -4
  96. package/dist/validate.d.ts.map +1 -1
  97. package/dist/validate.js +35 -4
  98. package/dist/validate.js.map +1 -1
  99. package/package.json +192 -184
  100. package/docs/screenshots/showcase-invoice.png +0 -0
  101. package/docs/screenshots/showcase-report.png +0 -0
  102. package/docs/screenshots/showcase-resume.png +0 -0
@@ -0,0 +1,302 @@
1
+ /**
2
+ * pretext-pdf — Internal TypeScript types (pipeline implementation details)
3
+ *
4
+ * These types are used internally by the rendering pipeline (measurement, pagination, rendering).
5
+ * They are NOT exported from index.ts and should not be relied upon by npm consumers.
6
+ * Public schema types live in types-public.ts.
7
+ */
8
+ import type { ContentElement, CalloutElement, BlockquoteElement, FootnoteDefElement } from './types-public.js';
9
+ /**
10
+ * Resolved geometry for a `callout` block. Always attached to MeasuredBlock when
11
+ * element.type === 'callout'; the invariant is enforced by validateMeasuredBlocks
12
+ * in paginate.ts.
13
+ */
14
+ export interface CalloutData {
15
+ titleHeight: number;
16
+ paddingH: number;
17
+ paddingV: number;
18
+ borderColor: string;
19
+ backgroundColor: string;
20
+ titleColor: string;
21
+ color: string;
22
+ titleText?: string;
23
+ }
24
+ /** Resolved per-element measurement result from Stage 3 */
25
+ export interface MeasuredBlock {
26
+ element: ContentElement;
27
+ /** Total height in pt (lineCount * lineHeight, spacer.height, table sum, image height, hr height) */
28
+ height: number;
29
+ /** Lines from Pretext layoutWithLines(). Empty array for spacers, tables, images, hr, and plugin blocks. */
30
+ lines: PretextLine[];
31
+ /** Resolved font size in pt. 0 for non-text elements and plugin blocks. */
32
+ fontSize: number;
33
+ /** Resolved line height in pt. 0 for non-text elements and plugin blocks. */
34
+ lineHeight: number;
35
+ /** Key into FontMap, e.g. "Inter-400-normal". '' for non-text elements and plugin blocks. */
36
+ fontKey: string;
37
+ /** Resolved space after in pt */
38
+ spaceAfter: number;
39
+ /** Resolved space before in pt (headings, lists, tables, images) */
40
+ spaceBefore: number;
41
+ /** Only set when element.type === 'table' */
42
+ tableData?: MeasuredTableData;
43
+ /** Only set when element.type === 'image' */
44
+ imageData?: MeasuredImageData;
45
+ /** Only set for list item blocks (flattened from ListElement) */
46
+ listItemData?: ListItemData;
47
+ /** Only set when element.type === 'code'. Resolved padding in pt. */
48
+ codePadding?: number;
49
+ /** Only set when element.type === 'code' and language is set. Per-line colored tokens. */
50
+ codeHighlightTokens?: Array<Array<{
51
+ text: string;
52
+ color: string;
53
+ }>>;
54
+ /** Only set when element.type === 'rich-paragraph'. Mixed-font composed lines. */
55
+ richLines?: RichLine[];
56
+ /** Only set when element.type === 'blockquote'. Resolved vertical padding in pt. */
57
+ blockquotePaddingV?: number;
58
+ /** Only set when element.type === 'blockquote'. Resolved horizontal padding in pt. */
59
+ blockquotePaddingH?: number;
60
+ /** Only set when element.type === 'blockquote'. Resolved left border width in pt. */
61
+ blockquoteBorderWidth?: number;
62
+ /**
63
+ * Set by measureBlock for every element.type === 'callout'. Consumers must treat this
64
+ * as required when the element type is callout; `validateMeasuredBlocks` in paginate.ts
65
+ * enforces the invariant (including that every numeric field is a finite number) before
66
+ * any helper reads it. Internal code should prefer the narrowed `MeasuredCalloutBlock`
67
+ * type alias below.
68
+ */
69
+ calloutData?: CalloutData;
70
+ /** Only set when element has columns > 1. Multi-column layout metadata. */
71
+ columnData?: {
72
+ columnCount: number;
73
+ columnGap: number;
74
+ columnWidth: number;
75
+ linesPerColumn: number;
76
+ };
77
+ /** Only set when element.type === 'image' and element.float is set. */
78
+ floatData?: {
79
+ imageKey: string;
80
+ imageRenderWidth: number;
81
+ imageRenderHeight: number;
82
+ imageColX: number;
83
+ textColX: number;
84
+ textColWidth: number;
85
+ textLines: PretextLine[];
86
+ /** Set when the image element uses floatSpans instead of floatText */
87
+ richFloatLines?: RichLine[];
88
+ textFontKey: string;
89
+ textFontSize: number;
90
+ textLineHeight: number;
91
+ textColor: string;
92
+ };
93
+ /** Only set when element.type === 'float-group'. Multi-paragraph float layout. */
94
+ floatGroupData?: {
95
+ imageKey: string;
96
+ imageRenderWidth: number;
97
+ imageRenderHeight: number;
98
+ imageColX: number;
99
+ textColX: number;
100
+ textColWidth: number;
101
+ textItems: Array<{
102
+ lines: PretextLine[];
103
+ richLines?: RichLine[];
104
+ fontSize: number;
105
+ lineHeight: number;
106
+ fontKey: string;
107
+ fontWeight: 400 | 700;
108
+ spaceAfter: number;
109
+ yOffsetFromTop: number;
110
+ }>;
111
+ totalTextHeight: number;
112
+ };
113
+ /** Only set for plugin element types. Data returned by the plugin's measure hook. */
114
+ pluginData?: unknown;
115
+ /** Only set for plugin element types that return a PDFImage from loadAsset. imageMap key. */
116
+ pluginImageKey?: string;
117
+ /** Set to true if this block is RTL (right-to-left text). Used to apply right-align default in render.ts. */
118
+ isRTL?: boolean;
119
+ /** Original logical-order text (for debugging / reference). Only set when isRTL=true. */
120
+ logicalText?: string;
121
+ /** Only set when element.type === 'toc-entry'. Rendering metadata for TOC entries. */
122
+ tocEntryData?: {
123
+ entryX: number;
124
+ pageStr: string;
125
+ leaderChar: string;
126
+ };
127
+ /** Only set when element.type === 'form-field'. Layout metadata. */
128
+ formFieldData?: {
129
+ labelHeight: number;
130
+ fieldHeight: number;
131
+ };
132
+ }
133
+ /** A MeasuredBlock whose element is a callout and whose calloutData is guaranteed populated and finite. */
134
+ export type MeasuredCalloutBlock = MeasuredBlock & {
135
+ element: CalloutElement;
136
+ calloutData: CalloutData;
137
+ };
138
+ /** A MeasuredBlock whose element is a blockquote and whose padding/border fields are guaranteed populated. */
139
+ export type MeasuredBlockquoteBlock = MeasuredBlock & {
140
+ element: BlockquoteElement;
141
+ blockquotePaddingV: number;
142
+ blockquotePaddingH: number;
143
+ blockquoteBorderWidth: number;
144
+ };
145
+ /** A single line from Pretext's layoutWithLines() */
146
+ export interface PretextLine {
147
+ text: string;
148
+ width: number;
149
+ }
150
+ /** A block sliced for a specific page */
151
+ export interface PagedBlock {
152
+ measuredBlock: MeasuredBlock;
153
+ /** Inclusive start index into measuredBlock.lines[] — for text elements */
154
+ startLine: number;
155
+ /** Exclusive end index into measuredBlock.lines[] — for text elements */
156
+ endLine: number;
157
+ /** Inclusive index into body rows (non-header rows) — for table elements */
158
+ startRow?: number;
159
+ /** Exclusive index into body rows — for table elements */
160
+ endRow?: number;
161
+ /** Y offset from top of the page content area in pt */
162
+ yFromTop: number;
163
+ }
164
+ /** One page's worth of content */
165
+ export interface RenderedPage {
166
+ pageIndex: number;
167
+ blocks: PagedBlock[];
168
+ /** Footnote defs assigned to this page, in order of first ref appearance */
169
+ footnoteItems?: Array<{
170
+ def: FootnoteDefElement;
171
+ number: number;
172
+ }>;
173
+ /** Total height reserved at bottom of this page for the footnote zone (pt) */
174
+ footnoteZoneHeight?: number;
175
+ }
176
+ /** Output of Stage 4 paginate() */
177
+ export interface PaginatedDocument {
178
+ pages: RenderedPage[];
179
+ totalPages: number;
180
+ /** Headings collected during pagination for bookmark generation. */
181
+ headings: Array<{
182
+ text: string;
183
+ level: 1 | 2 | 3 | 4;
184
+ pageIndex: number;
185
+ }>;
186
+ /** Maps footnote def id → 1-based display number (document order) */
187
+ footnoteNumbering?: Map<string, number>;
188
+ }
189
+ /** Resolved page geometry passed between stages */
190
+ export interface PageGeometry {
191
+ pageWidth: number;
192
+ pageHeight: number;
193
+ margins: import('./types-public.js').Margins;
194
+ contentWidth: number;
195
+ contentHeight: number;
196
+ headerHeight: number;
197
+ footerHeight: number;
198
+ }
199
+ /** Maps font key → embedded PDFFont reference */
200
+ export type FontMap = Map<string, import('@cantoo/pdf-lib').PDFFont>;
201
+ /** Maps image key → embedded PDFImage reference */
202
+ export type ImageMap = Map<string, import('@cantoo/pdf-lib').PDFImage>;
203
+ export interface MeasuredTableData {
204
+ /** Resolved column widths in pt */
205
+ columnWidths: number[];
206
+ /** All rows including headers */
207
+ rows: MeasuredTableRow[];
208
+ /** How many rows at the top are header rows */
209
+ headerRowCount: number;
210
+ /** Sum of header row heights — used to reserve space on continuation pages */
211
+ headerRowHeight: number;
212
+ cellPaddingH: number;
213
+ cellPaddingV: number;
214
+ borderWidth: number;
215
+ borderColor: string;
216
+ headerBgColor: string;
217
+ }
218
+ export interface MeasuredTableRow {
219
+ cells: MeasuredTableCell[];
220
+ /** Max cell content height + 2*cellPaddingV */
221
+ height: number;
222
+ isHeader: boolean;
223
+ /** Column gap indices (0..colCount-2) where vertical lines should be drawn. Gaps spanned by merged cells are excluded. */
224
+ activeBoundaries: number[];
225
+ /** True if any cell in this row spans into the next row — horizontal separator after this row is suppressed */
226
+ hasRowspan?: boolean;
227
+ }
228
+ export interface MeasuredTableCell {
229
+ lines: PretextLine[];
230
+ fontSize: number;
231
+ lineHeight: number;
232
+ fontKey: string;
233
+ fontFamily: string;
234
+ align: 'left' | 'center' | 'right';
235
+ color: string;
236
+ bgColor?: string;
237
+ /** Number of columns this cell spans */
238
+ colspan: number;
239
+ /** Total width in pt after colspan expansion, including border-width between spanned columns */
240
+ mergedWidth: number;
241
+ /** Number of rows this cell spans. Undefined or 1 = no row span. */
242
+ rowspan?: number;
243
+ /** Combined height of all spanned rows in pt. Only set when rowspan > 1. */
244
+ spanHeight?: number;
245
+ /** True for placeholder cells inserted in rows below a rowspan origin — skipped in all render passes */
246
+ isSpanPlaceholder?: boolean;
247
+ /** RTL text detected in this cell (for alignment defaults) */
248
+ isRTL?: boolean;
249
+ /** Render digits at fixed slot width for column alignment */
250
+ tabularNumbers?: boolean;
251
+ }
252
+ export interface MeasuredImageData {
253
+ /** Key into ImageMap, e.g. 'img-3' */
254
+ imageKey: string;
255
+ /** Final render width in pt */
256
+ renderWidth: number;
257
+ /** Final render height in pt */
258
+ renderHeight: number;
259
+ align: 'left' | 'center' | 'right';
260
+ }
261
+ export interface ListItemData {
262
+ /** Marker string, e.g. "•" or "1." */
263
+ marker: string;
264
+ /** Left indent in pt before the marker */
265
+ indent: number;
266
+ /** Width of marker column in pt — body text starts after this */
267
+ markerWidth: number;
268
+ /** Resolved text color (hex) for this item */
269
+ color: string;
270
+ /** Resolved font weight for this item */
271
+ fontWeight: 400 | 700;
272
+ }
273
+ /** A composed line from the rich-text compositor — contains multiple styled fragments */
274
+ export interface RichLine {
275
+ fragments: RichFragment[];
276
+ /** Total line content width in pt */
277
+ totalWidth: number;
278
+ /** Height of this line in pt. Computed as max(fragment.fontSize) * lineHeightRatio */
279
+ lineHeight: number;
280
+ }
281
+ /** A single styled run within a RichLine */
282
+ export interface RichFragment {
283
+ text: string;
284
+ fontKey: string;
285
+ fontSize: number;
286
+ color: string;
287
+ /** x-offset from the left edge of the text area in pt */
288
+ x: number;
289
+ /** Fragment width in pt */
290
+ width: number;
291
+ underline?: boolean;
292
+ strikethrough?: boolean;
293
+ url?: string;
294
+ href?: string;
295
+ /** Vertical baseline shift in pt. Positive = up (superscript), negative = down (subscript) */
296
+ yOffset?: number;
297
+ /** Carried from InlineSpan.footnoteRef — used by renderer to identify footnote refs */
298
+ footnoteRef?: string;
299
+ /** Extra spacing between characters in pt. Carried from InlineSpan.letterSpacing. */
300
+ letterSpacing?: number;
301
+ }
302
+ //# sourceMappingURL=types-internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-internal.d.ts","sourceRoot":"","sources":["../src/types-internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * pretext-pdf — Internal TypeScript types (pipeline implementation details)
3
+ *
4
+ * These types are used internally by the rendering pipeline (measurement, pagination, rendering).
5
+ * They are NOT exported from index.ts and should not be relied upon by npm consumers.
6
+ * Public schema types live in types-public.ts.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types-internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-internal.js","sourceRoot":"","sources":["../src/types-internal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}