pretext-pdf 2.0.2 → 2.0.13

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 (100) hide show
  1. package/CHANGELOG.md +227 -0
  2. package/dist/assets/loaders/images.d.ts.map +1 -1
  3. package/dist/assets/loaders/images.js +4 -1
  4. package/dist/assets/loaders/images.js.map +1 -1
  5. package/dist/assets/security/path-allowlist.d.ts.map +1 -1
  6. package/dist/assets/security/path-allowlist.js +10 -1
  7. package/dist/assets/security/path-allowlist.js.map +1 -1
  8. package/dist/assets/svg/resolve-content.d.ts.map +1 -1
  9. package/dist/assets/svg/resolve-content.js +4 -1
  10. package/dist/assets/svg/resolve-content.js.map +1 -1
  11. package/dist/builder.js +1 -1
  12. package/dist/builder.js.map +1 -1
  13. package/dist/compat/normalize.d.ts +13 -0
  14. package/dist/compat/normalize.d.ts.map +1 -0
  15. package/dist/compat/normalize.js +146 -0
  16. package/dist/compat/normalize.js.map +1 -0
  17. package/dist/compat/pdfmake-types.d.ts +91 -0
  18. package/dist/compat/pdfmake-types.d.ts.map +1 -0
  19. package/dist/compat/pdfmake-types.js +8 -0
  20. package/dist/compat/pdfmake-types.js.map +1 -0
  21. package/dist/compat/translate.d.ts +7 -0
  22. package/dist/compat/translate.d.ts.map +1 -0
  23. package/dist/compat/translate.js +205 -0
  24. package/dist/compat/translate.js.map +1 -0
  25. package/dist/compat.d.ts +6 -161
  26. package/dist/compat.d.ts.map +1 -1
  27. package/dist/compat.js +13 -404
  28. package/dist/compat.js.map +1 -1
  29. package/dist/fonts/bundled-paths.d.ts +13 -0
  30. package/dist/fonts/bundled-paths.d.ts.map +1 -0
  31. package/dist/fonts/bundled-paths.js +43 -0
  32. package/dist/fonts/bundled-paths.js.map +1 -0
  33. package/dist/fonts/collect-needed.d.ts +10 -0
  34. package/dist/fonts/collect-needed.d.ts.map +1 -0
  35. package/dist/fonts/collect-needed.js +85 -0
  36. package/dist/fonts/collect-needed.js.map +1 -0
  37. package/dist/fonts/collect-text.d.ts +9 -0
  38. package/dist/fonts/collect-text.d.ts.map +1 -0
  39. package/dist/fonts/collect-text.js +162 -0
  40. package/dist/fonts/collect-text.js.map +1 -0
  41. package/dist/fonts/load-bytes.d.ts +10 -0
  42. package/dist/fonts/load-bytes.d.ts.map +1 -0
  43. package/dist/fonts/load-bytes.js +56 -0
  44. package/dist/fonts/load-bytes.js.map +1 -0
  45. package/dist/fonts.d.ts +11 -10
  46. package/dist/fonts.d.ts.map +1 -1
  47. package/dist/fonts.js +17 -421
  48. package/dist/fonts.js.map +1 -1
  49. package/dist/pipeline-footnotes.d.ts +2 -2
  50. package/dist/pipeline-footnotes.d.ts.map +1 -1
  51. package/dist/pipeline-footnotes.js +5 -2
  52. package/dist/pipeline-footnotes.js.map +1 -1
  53. package/dist/pipeline.d.ts.map +1 -1
  54. package/dist/pipeline.js +9 -5
  55. package/dist/pipeline.js.map +1 -1
  56. package/dist/render-utils.d.ts +1 -7
  57. package/dist/render-utils.d.ts.map +1 -1
  58. package/dist/render-utils.js +9 -30
  59. package/dist/render-utils.js.map +1 -1
  60. package/dist/schema/document.d.ts +2115 -0
  61. package/dist/schema/document.d.ts.map +1 -0
  62. package/dist/schema/document.js +275 -0
  63. package/dist/schema/document.js.map +1 -0
  64. package/dist/schema/elements-block.d.ts +481 -0
  65. package/dist/schema/elements-block.d.ts.map +1 -0
  66. package/dist/schema/elements-block.js +155 -0
  67. package/dist/schema/elements-block.js.map +1 -0
  68. package/dist/schema/elements-media.d.ts +282 -0
  69. package/dist/schema/elements-media.d.ts.map +1 -0
  70. package/dist/schema/elements-media.js +83 -0
  71. package/dist/schema/elements-media.js.map +1 -0
  72. package/dist/schema/elements-table.d.ts +134 -0
  73. package/dist/schema/elements-table.d.ts.map +1 -0
  74. package/dist/schema/elements-table.js +60 -0
  75. package/dist/schema/elements-table.js.map +1 -0
  76. package/dist/schema/elements-text.d.ts +782 -0
  77. package/dist/schema/elements-text.d.ts.map +1 -0
  78. package/dist/schema/elements-text.js +260 -0
  79. package/dist/schema/elements-text.js.map +1 -0
  80. package/dist/schema/shared.d.ts +84 -0
  81. package/dist/schema/shared.d.ts.map +1 -0
  82. package/dist/schema/shared.js +29 -0
  83. package/dist/schema/shared.js.map +1 -0
  84. package/dist/schema.d.ts +10 -2116
  85. package/dist/schema.d.ts.map +1 -1
  86. package/dist/schema.js +10 -852
  87. package/dist/schema.js.map +1 -1
  88. package/dist/types-public/document.d.ts +99 -101
  89. package/dist/types-public/document.d.ts.map +1 -1
  90. package/dist/validate/document.d.ts.map +1 -1
  91. package/dist/validate/document.js +5 -1
  92. package/dist/validate/document.js.map +1 -1
  93. package/dist/validate/elements/media.d.ts.map +1 -1
  94. package/dist/validate/elements/media.js +14 -0
  95. package/dist/validate/elements/media.js.map +1 -1
  96. package/dist/validate/helpers.d.ts +6 -6
  97. package/dist/validate/helpers.d.ts.map +1 -1
  98. package/dist/validate/helpers.js +7 -7
  99. package/dist/validate/helpers.js.map +1 -1
  100. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfmake-types.d.ts","sourceRoot":"","sources":["../../src/compat/pdfmake-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** pdfmake input type definitions and compat configuration. */
2
+ export const DEFAULT_HEADING_MAP = {
3
+ header: 1, h1: 1, title: 1,
4
+ subheader: 2, h2: 2,
5
+ h3: 3,
6
+ h4: 4,
7
+ };
8
+ //# sourceMappingURL=pdfmake-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfmake-types.js","sourceRoot":"","sources":["../../src/compat/pdfmake-types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAkF/D,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAC1B,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACnB,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACN,CAAA"}
@@ -0,0 +1,7 @@
1
+ /** Node-level translation: pdfmake nodes → pretext-pdf ContentElement[] */
2
+ import type { ContentElement, ListItem } from '../types.js';
3
+ import { type PdfmakeNode, type PdfmakeObjectNode, type TranslateCtx } from './pdfmake-types.js';
4
+ export declare function translateNode(node: PdfmakeNode, ctx: TranslateCtx): ContentElement[];
5
+ export declare function translateTextNode(node: PdfmakeObjectNode, ctx: TranslateCtx): ContentElement;
6
+ export declare function pdfmakeNodeToListItem(node: PdfmakeNode, ctx: TranslateCtx): ListItem;
7
+ //# sourceMappingURL=translate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/compat/translate.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,KAAK,EACV,cAAc,EAKd,QAAQ,EAKT,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAqB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGnH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,cAAc,EAAE,CAwBpF;AA6DD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,GAAG,cAAc,CA+C5F;AAyCD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,QAAQ,CAWpF"}
@@ -0,0 +1,205 @@
1
+ /** Node-level translation: pdfmake nodes → pretext-pdf ContentElement[] */
2
+ import {} from './pdfmake-types.js';
3
+ import { translateTable, pdfmakeAlignToPretext, normalizeStyleNames, mergeStyles, extractFlatText } from './normalize.js';
4
+ export function translateNode(node, ctx) {
5
+ if (typeof node === 'string') {
6
+ return [{ type: 'paragraph', text: node }];
7
+ }
8
+ if (!node || typeof node !== 'object')
9
+ return [];
10
+ if (node.stack) {
11
+ const out = [];
12
+ for (const child of node.stack) {
13
+ for (const el of translateNode(child, ctx))
14
+ out.push(el);
15
+ }
16
+ return out;
17
+ }
18
+ if (node.pageBreak === 'before') {
19
+ const inner = translateNodeInner(node, ctx);
20
+ return [{ type: 'page-break' }, ...inner];
21
+ }
22
+ if (node.pageBreak === 'after') {
23
+ const inner = translateNodeInner(node, ctx);
24
+ return [...inner, { type: 'page-break' }];
25
+ }
26
+ return translateNodeInner(node, ctx);
27
+ }
28
+ function translateNodeInner(node, ctx) {
29
+ if (node.ul) {
30
+ return [{
31
+ type: 'list',
32
+ style: 'unordered',
33
+ items: node.ul.map(item => pdfmakeNodeToListItem(item, ctx)),
34
+ }];
35
+ }
36
+ if (node.ol) {
37
+ return [{
38
+ type: 'list',
39
+ style: 'ordered',
40
+ items: node.ol.map(item => pdfmakeNodeToListItem(item, ctx)),
41
+ }];
42
+ }
43
+ if (node.table) {
44
+ return [translateTable(node.table, ctx)];
45
+ }
46
+ if (typeof node.image === 'string') {
47
+ const imgSrc = node.image;
48
+ const lc = imgSrc.trim().toLowerCase();
49
+ const BLOCKED_SCHEMES = ['file://', 'data:', 'javascript:', 'vbscript:', 'blob:', 'about:'];
50
+ if (BLOCKED_SCHEMES.some(s => lc.startsWith(s)))
51
+ return [];
52
+ const img = { type: 'image', src: imgSrc };
53
+ if (typeof node.width === 'number')
54
+ img.width = node.width;
55
+ if (typeof node.height === 'number')
56
+ img.height = node.height;
57
+ return [img];
58
+ }
59
+ if (typeof node.qr === 'string') {
60
+ const qr = { type: 'qr-code', data: node.qr };
61
+ if (typeof node.fit === 'number')
62
+ qr.size = node.fit;
63
+ else if (Array.isArray(node.fit) && typeof node.fit[0] === 'number')
64
+ qr.size = node.fit[0];
65
+ return [qr];
66
+ }
67
+ if (node.columns) {
68
+ ctx.onUnsupported('columns (flattened into a stack of children)');
69
+ const out = [];
70
+ for (const child of node.columns) {
71
+ for (const el of translateNode(child, ctx))
72
+ out.push(el);
73
+ }
74
+ return out;
75
+ }
76
+ if (node.canvas) {
77
+ ctx.onUnsupported('canvas (skipped)');
78
+ return [];
79
+ }
80
+ if (node.text !== undefined) {
81
+ return [translateTextNode(node, ctx)];
82
+ }
83
+ return [];
84
+ }
85
+ export function translateTextNode(node, ctx) {
86
+ const styleNames = normalizeStyleNames(node.style);
87
+ const merged = mergeStyles(ctx, styleNames, node);
88
+ let headingLevel;
89
+ for (const name of styleNames) {
90
+ if (ctx.headingMap[name] !== undefined) {
91
+ headingLevel = ctx.headingMap[name];
92
+ break;
93
+ }
94
+ }
95
+ const flatText = typeof node.text === 'string' ? node.text : null;
96
+ const childArray = Array.isArray(node.text) ? node.text : (node.text && typeof node.text === 'object' ? [node.text] : []);
97
+ if (headingLevel !== undefined) {
98
+ const heading = {
99
+ type: 'heading',
100
+ level: headingLevel,
101
+ text: flatText ?? extractFlatText(childArray, ctx),
102
+ };
103
+ if (merged.fontSize !== undefined)
104
+ heading.fontSize = merged.fontSize;
105
+ if (merged.color)
106
+ heading.color = merged.color;
107
+ const headingAlign = pdfmakeAlignToPretext(merged.alignment);
108
+ if (headingAlign)
109
+ heading.align = headingAlign;
110
+ if (merged.font)
111
+ heading.fontFamily = merged.font;
112
+ return heading;
113
+ }
114
+ if (flatText !== null) {
115
+ const para = { type: 'paragraph', text: flatText };
116
+ applyStyleToParagraph(para, merged);
117
+ return para;
118
+ }
119
+ const spans = [];
120
+ for (const child of childArray)
121
+ collectSpans(child, ctx, merged, spans);
122
+ if (spans.length === 1 && !spans[0].fontWeight && !spans[0].fontStyle && !spans[0].color && !spans[0].href && !spans[0].fontSize) {
123
+ const para = { type: 'paragraph', text: spans[0].text };
124
+ applyStyleToParagraph(para, merged);
125
+ return para;
126
+ }
127
+ const rich = { type: 'rich-paragraph', spans };
128
+ if (merged.fontSize !== undefined)
129
+ rich.fontSize = merged.fontSize;
130
+ const richAlign = pdfmakeAlignToPretext(merged.alignment);
131
+ if (richAlign)
132
+ rich.align = richAlign;
133
+ return rich;
134
+ }
135
+ function applyStyleToParagraph(para, s) {
136
+ if (s.fontSize !== undefined)
137
+ para.fontSize = s.fontSize;
138
+ if (s.color)
139
+ para.color = s.color;
140
+ if (s.bold)
141
+ para.fontWeight = 700;
142
+ const paraAlign = pdfmakeAlignToPretext(s.alignment);
143
+ if (paraAlign)
144
+ para.align = paraAlign;
145
+ if (s.font)
146
+ para.fontFamily = s.font;
147
+ }
148
+ function collectSpans(child, ctx, parent, out) {
149
+ if (typeof child === 'string') {
150
+ const span = { text: child };
151
+ if (parent.bold)
152
+ span.fontWeight = 700;
153
+ if (parent.italics)
154
+ span.fontStyle = 'italic';
155
+ if (parent.color)
156
+ span.color = parent.color;
157
+ if (parent.fontSize !== undefined)
158
+ span.fontSize = parent.fontSize;
159
+ if (parent.font)
160
+ span.fontFamily = parent.font;
161
+ out.push(span);
162
+ return;
163
+ }
164
+ if (!child || typeof child !== 'object')
165
+ return;
166
+ const styleNames = normalizeStyleNames(child.style);
167
+ const merged = mergeStyles(ctx, styleNames, child, parent);
168
+ if (Array.isArray(child.text)) {
169
+ for (const grand of child.text)
170
+ collectSpans(grand, ctx, merged, out);
171
+ return;
172
+ }
173
+ if (typeof child.text === 'string') {
174
+ const span = { text: child.text };
175
+ if (merged.bold)
176
+ span.fontWeight = 700;
177
+ if (merged.italics)
178
+ span.fontStyle = 'italic';
179
+ if (merged.color)
180
+ span.color = merged.color;
181
+ if (merged.fontSize !== undefined)
182
+ span.fontSize = merged.fontSize;
183
+ if (merged.font)
184
+ span.fontFamily = merged.font;
185
+ if (typeof child.link === 'string')
186
+ span.href = child.link;
187
+ out.push(span);
188
+ }
189
+ }
190
+ export function pdfmakeNodeToListItem(node, ctx) {
191
+ if (typeof node === 'string')
192
+ return { text: node };
193
+ if (node && typeof node === 'object') {
194
+ if (node.ul || node.ol) {
195
+ const items = (node.ul ?? node.ol ?? []).map(i => pdfmakeNodeToListItem(i, ctx));
196
+ return { text: '', items };
197
+ }
198
+ if (typeof node.text === 'string')
199
+ return { text: node.text };
200
+ if (Array.isArray(node.text))
201
+ return { text: extractFlatText(node.text, ctx) };
202
+ }
203
+ return { text: '' };
204
+ }
205
+ //# sourceMappingURL=translate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/compat/translate.ts"],"names":[],"mappings":"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"}
package/dist/compat.d.ts CHANGED
@@ -9,173 +9,18 @@
9
9
  * const pdfmakeDoc = { content: [...], styles: {...} }
10
10
  * const pdf = await render(fromPdfmake(pdfmakeDoc))
11
11
  *
12
- * What's translated:
13
- * - pageSize ('A4', 'LETTER', { width, height }), pageOrientation, pageMargins
14
- * - defaultStyle + styles map (style names referenced via { text, style: 'h1' })
15
- * - String content paragraph
16
- * - { text } → paragraph or rich-paragraph (depends on inline styling)
17
- * - { ul } / { ol } → list (recursive)
18
- * - { table: {body, widths, headerRows} } → table
19
- * - { image } → image
20
- * - { qr, fit } → qr-code (requires the `qrcode` peer dep at render time)
21
- * - { pageBreak } → page-break
22
- * - { stack } → recurse children inline
23
- * - header / footer (string forms only — pdfmake function-style headers are not supported)
24
- *
25
- * What's NOT translated (skipped, optionally warns):
26
- * - { columns } — flattened into a stack with a console warning
27
- * - { canvas } — drawing primitives are unsupported
28
- * - Function-style headers/footers
29
- * - styles[name].marginX / marginY / decoration
30
- *
31
- * Heading detection:
32
- * By default style names like 'header', 'h1'..'h4', 'title', 'subheader' map
33
- * to pretext-pdf heading levels 1..4. Override with `options.headingMap`.
12
+ * Implementation split across src/compat/:
13
+ * pdfmake-types.ts PdfmakeDocument, PdfmakeNode, PdfmakeStyle, CompatOptions, TranslateCtx
14
+ * translate.ts — translateNode, translateTextNode, pdfmakeNodeToListItem (internal: translateNodeInner, applyStyleToParagraph, collectSpans)
15
+ * normalize.ts — extractFlatText, translateTable, mergeStyles, normalizePageSize/Margins/HeaderFooter
34
16
  */
35
17
  import type { PdfDocument } from './types.js';
36
- /** A pdfmake-style document descriptor, stripped to the fields this shim handles. */
37
- export interface PdfmakeDocument {
38
- content: PdfmakeNode | PdfmakeNode[];
39
- styles?: Record<string, PdfmakeStyle>;
40
- defaultStyle?: PdfmakeStyle;
41
- pageSize?: string | {
42
- width: number;
43
- height: number;
44
- };
45
- pageOrientation?: 'portrait' | 'landscape';
46
- pageMargins?: number | [number, number] | [number, number, number, number];
47
- header?: string | {
48
- text: string;
49
- alignment?: PdfmakeStyle['alignment'];
50
- fontSize?: number;
51
- color?: string;
52
- };
53
- footer?: string | {
54
- text: string;
55
- alignment?: PdfmakeStyle['alignment'];
56
- fontSize?: number;
57
- color?: string;
58
- };
59
- info?: {
60
- title?: string;
61
- author?: string;
62
- subject?: string;
63
- keywords?: string;
64
- };
65
- allowedFileDirs?: string[];
66
- }
67
- export type PdfmakeNode = string | PdfmakeObjectNode;
68
- export interface PdfmakeObjectNode {
69
- text?: string | PdfmakeNode | PdfmakeNode[];
70
- style?: string | string[];
71
- bold?: boolean;
72
- italics?: boolean;
73
- color?: string;
74
- fontSize?: number;
75
- alignment?: 'left' | 'center' | 'right' | 'justify';
76
- font?: string;
77
- ul?: PdfmakeNode[];
78
- ol?: PdfmakeNode[];
79
- table?: {
80
- body: PdfmakeNode[][];
81
- widths?: Array<number | string>;
82
- headerRows?: number;
83
- };
84
- image?: string;
85
- width?: number | string;
86
- height?: number;
87
- qr?: string;
88
- fit?: number | [number, number];
89
- pageBreak?: 'before' | 'after';
90
- stack?: PdfmakeNode[];
91
- columns?: PdfmakeNode[];
92
- link?: string;
93
- canvas?: unknown[];
94
- }
95
- /**
96
- * Subset of pdfmake style properties translated by this shim.
97
- *
98
- * @remarks
99
- * **What pdfmake's style system looks like.** A pdfmake document has two
100
- * style surfaces:
101
- *
102
- * 1. `styles: Record<string, PdfmakeStyle>` — a named-style map. Nodes
103
- * reference styles via `{ text, style: 'h1' }` or
104
- * `{ text, style: ['h1', 'bold'] }` (later names override earlier).
105
- * 2. `defaultStyle: PdfmakeStyle` — applied to **every** node unless
106
- * overridden by a named style or inline property.
107
- *
108
- * Style resolution order in pdfmake: `defaultStyle` → named styles (in array
109
- * order) → inline node properties. This shim implements the same precedence
110
- * inside `mergeStyles()`.
111
- *
112
- * **Properties that map into pretext-pdf:**
113
- * - `font` → element `font` (only on rich-paragraph spans) and, on
114
- * `defaultStyle`, the document-level `defaultFont`.
115
- * - `fontSize` → element `fontSize` and, on `defaultStyle`, document-level
116
- * `defaultFontSize`.
117
- * - `bold` → rich-paragraph span `bold`.
118
- * - `italics` → rich-paragraph span `italic` (note the rename).
119
- * - `color` → element `color`.
120
- * - `alignment` → paragraph/heading `align`.
121
- *
122
- * **Properties pdfmake supports that this shim silently drops:**
123
- * - `lineHeight` / `leading`
124
- * - `marginLeft` / `marginRight` / `marginTop` / `marginBottom` (named-style
125
- * margins; node-level margins are also dropped)
126
- * - `decoration` (underline / lineThrough / overline) and `decorationStyle`
127
- * - `background` (highlight color)
128
- * - `characterSpacing`
129
- * - `preserveLeadingSpaces` / `noWrap`
130
- * - `link`, `linkToPage`, `linkToDestination` outside the dedicated `link`
131
- * shorthand
132
- * - Anything else not listed in the `Properties that map` list above
133
- *
134
- * If you migrate from pdfmake and notice a missing visual property, it is
135
- * almost certainly one of the silently-dropped ones above. File an issue
136
- * with the property name if it is load-bearing for your output.
137
- *
138
- * @public
139
- */
140
- export interface PdfmakeStyle {
141
- fontSize?: number;
142
- bold?: boolean;
143
- italics?: boolean;
144
- color?: string;
145
- alignment?: 'left' | 'center' | 'right' | 'justify';
146
- font?: string;
147
- }
148
- export interface CompatOptions {
149
- /**
150
- * Map of pdfmake style names to pretext-pdf heading levels (1–4).
151
- * Default: { header: 1, h1: 1, title: 1, subheader: 2, h2: 2, h3: 3, h4: 4 }
152
- * Pass `{}` to disable heading detection entirely (everything becomes paragraphs).
153
- */
154
- headingMap?: Record<string, 1 | 2 | 3 | 4>;
155
- /**
156
- * Called when a pdfmake feature is encountered that the shim doesn't translate
157
- * (canvas, function-style headers, etc.). Default: log a one-time warning.
158
- */
159
- onUnsupported?: (feature: string) => void;
160
- }
18
+ import { type PdfmakeDocument, type CompatOptions } from './compat/pdfmake-types.js';
19
+ export type { PdfmakeDocument, PdfmakeNode, PdfmakeObjectNode, PdfmakeStyle, CompatOptions } from './compat/pdfmake-types.js';
161
20
  /**
162
21
  * Translate a pdfmake document descriptor into a pretext-pdf {@link PdfDocument}.
163
22
  * The result can be passed straight to `render()` from the main entry point.
164
23
  *
165
- * @remarks
166
- * **defaultStyle handling.** pdfmake's `defaultStyle` field (note: singular —
167
- * the plural `styles` field is the named-style map) maps onto two
168
- * document-level pretext-pdf properties:
169
- *
170
- * - `defaultStyle.font` → `PdfDocument.defaultFont`
171
- * - `defaultStyle.fontSize` → `PdfDocument.defaultFontSize`
172
- *
173
- * Other `defaultStyle` properties (`bold`, `italics`, `color`, `alignment`)
174
- * still flow into per-node style merging via `mergeStyles()`, so a document
175
- * with `defaultStyle: { color: '#444' }` produces nodes whose effective text
176
- * color is `#444` unless overridden. See {@link PdfmakeStyle} for the full
177
- * list of supported and silently-dropped properties.
178
- *
179
24
  * @public
180
25
  */
181
26
  export declare function fromPdfmake(doc: PdfmakeDocument, options?: CompatOptions): PdfDocument;
@@ -1 +1 @@
1
- {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,WAAW,EAAoC,MAAM,YAAY,CAAA;AAI/E,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAGnB,MAAM,2BAA2B,CAAA;AAIlC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE7H;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,GAAE,aAAkB,GAAG,WAAW,CAkE1F"}