pretext-pdf 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Strict validation: allowed properties for each element and sub-structure type.
3
+ * Enforced at runtime by strict: true validation.
4
+ * Compile-time drift guards via Exact<T, Keys> ensure types stay synchronized.
5
+ */
6
+ export declare const ALLOWED_PROPS: {
7
+ readonly paragraph: Set<"text" | "type" | "dir" | "fontSize" | "lineHeight" | "fontFamily" | "fontWeight" | "color" | "align" | "bgColor" | "spaceAfter" | "spaceBefore" | "keepTogether" | "underline" | "strikethrough" | "url" | "columns" | "columnGap" | "hyphenate" | "letterSpacing" | "smallCaps" | "tabularNumbers" | "annotation">;
8
+ readonly heading: Set<"text" | "type" | "dir" | "fontSize" | "lineHeight" | "fontFamily" | "fontWeight" | "color" | "align" | "bgColor" | "spaceAfter" | "spaceBefore" | "keepTogether" | "underline" | "strikethrough" | "url" | "hyphenate" | "letterSpacing" | "smallCaps" | "tabularNumbers" | "annotation" | "level" | "bookmark" | "anchor">;
9
+ readonly spacer: Set<"type" | "height">;
10
+ readonly table: Set<"type" | "dir" | "fontSize" | "spaceAfter" | "spaceBefore" | "columns" | "rows" | "headerRows" | "borderColor" | "borderWidth" | "headerBgColor" | "cellPaddingH" | "cellPaddingV">;
11
+ readonly image: Set<"type" | "align" | "spaceAfter" | "spaceBefore" | "height" | "width" | "src" | "format" | "float" | "floatWidth" | "floatGap" | "floatText" | "floatSpans" | "floatFontSize" | "floatFontFamily" | "floatColor">;
12
+ readonly svg: Set<"svg" | "type" | "align" | "spaceAfter" | "spaceBefore" | "height" | "width" | "src">;
13
+ readonly 'qr-code': Set<"type" | "align" | "spaceAfter" | "spaceBefore" | "data" | "size" | "errorCorrectionLevel" | "foreground" | "background" | "margin">;
14
+ readonly barcode: Set<"type" | "align" | "spaceAfter" | "spaceBefore" | "height" | "width" | "data" | "symbology" | "includeText">;
15
+ readonly chart: Set<"type" | "align" | "spaceAfter" | "spaceBefore" | "height" | "width" | "spec" | "caption">;
16
+ readonly list: Set<"type" | "fontSize" | "lineHeight" | "color" | "spaceAfter" | "spaceBefore" | "style" | "items" | "marker" | "indent" | "markerWidth" | "itemSpaceAfter" | "nestedNumberingStyle">;
17
+ readonly hr: Set<"type" | "color" | "spaceAfter" | "spaceBefore" | "thickness" | "spaceAbove" | "spaceBelow">;
18
+ readonly 'page-break': Set<"type">;
19
+ readonly code: Set<"text" | "language" | "type" | "dir" | "fontSize" | "lineHeight" | "fontFamily" | "color" | "bgColor" | "spaceAfter" | "spaceBefore" | "keepTogether" | "padding" | "highlightTheme">;
20
+ readonly 'rich-paragraph': Set<"type" | "dir" | "fontSize" | "lineHeight" | "align" | "bgColor" | "spaceAfter" | "spaceBefore" | "keepTogether" | "columns" | "columnGap" | "letterSpacing" | "smallCaps" | "tabularNumbers" | "spans">;
21
+ readonly blockquote: Set<"text" | "type" | "dir" | "fontSize" | "lineHeight" | "fontFamily" | "fontWeight" | "color" | "align" | "bgColor" | "spaceAfter" | "spaceBefore" | "keepTogether" | "underline" | "strikethrough" | "borderColor" | "borderWidth" | "padding" | "fontStyle" | "paddingH" | "paddingV">;
22
+ readonly toc: Set<"title" | "type" | "fontSize" | "fontFamily" | "spaceAfter" | "spaceBefore" | "showTitle" | "minLevel" | "maxLevel" | "titleFontSize" | "levelIndent" | "leader" | "entrySpacing">;
23
+ readonly 'toc-entry': Set<"text" | "type" | "fontFamily" | "fontWeight" | "level" | "levelIndent" | "leader" | "pageNumber">;
24
+ readonly comment: Set<"author" | "type" | "color" | "spaceAfter" | "contents" | "open">;
25
+ readonly 'form-field': Set<"type" | "fontSize" | "spaceAfter" | "spaceBefore" | "keepTogether" | "height" | "borderColor" | "width" | "backgroundColor" | "fieldType" | "name" | "label" | "placeholder" | "defaultValue" | "multiline" | "maxLength" | "checked" | "options" | "defaultSelected">;
26
+ readonly callout: Set<"content" | "title" | "type" | "dir" | "fontSize" | "lineHeight" | "fontFamily" | "fontWeight" | "color" | "spaceAfter" | "spaceBefore" | "keepTogether" | "borderColor" | "style" | "padding" | "paddingH" | "paddingV" | "backgroundColor" | "titleColor">;
27
+ readonly 'footnote-def': Set<"text" | "type" | "fontSize" | "fontFamily" | "spaceAfter" | "id">;
28
+ readonly 'float-group': Set<"image" | "content" | "type" | "spaceAfter" | "spaceBefore" | "float" | "floatWidth" | "floatGap">;
29
+ };
30
+ export declare const ALLOWED_PROPS_SUB: {
31
+ readonly document: Set<"header" | "footer" | "pageSize" | "margins" | "defaultFont" | "defaultFontSize" | "defaultLineHeight" | "fonts" | "watermark" | "encryption" | "signature" | "bookmarks" | "hyphenation" | "metadata" | "defaultParagraphStyle" | "sections" | "content" | "flattenForms" | "onImageLoadError" | "onFormFieldError" | "renderDate" | "allowedFileDirs">;
32
+ readonly metadata: Set<"title" | "author" | "subject" | "keywords" | "creator" | "language" | "producer">;
33
+ readonly 'column-def': Set<"align" | "width">;
34
+ readonly 'table-row': Set<"cells" | "isHeader">;
35
+ readonly 'table-cell': Set<"text" | "dir" | "fontSize" | "fontFamily" | "fontWeight" | "color" | "align" | "bgColor" | "tabularNumbers" | "colspan" | "rowspan">;
36
+ readonly 'list-item': Set<"text" | "dir" | "fontWeight" | "items">;
37
+ readonly 'inline-span': Set<"text" | "dir" | "fontSize" | "fontFamily" | "fontWeight" | "color" | "underline" | "strikethrough" | "url" | "letterSpacing" | "smallCaps" | "fontStyle" | "href" | "verticalAlign" | "footnoteRef">;
38
+ readonly annotation: Set<"author" | "color" | "contents" | "open">;
39
+ };
40
+ //# sourceMappingURL=allowed-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowed-props.d.ts","sourceRoot":"","sources":["../src/allowed-props.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8LH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CAuBhB,CAAA;AAEV,eAAO,MAAM,iBAAiB;;;;;;;;;CASpB,CAAA"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Strict validation: allowed properties for each element and sub-structure type.
3
+ * Enforced at runtime by strict: true validation.
4
+ * Compile-time drift guards via Exact<T, Keys> ensure types stay synchronized.
5
+ */
6
+ // ─── Key arrays with compile-time assertions ──────────────────────────────────
7
+ const DOC_KEYS = [
8
+ 'pageSize', 'margins', 'defaultFont', 'defaultFontSize', 'defaultLineHeight',
9
+ 'fonts', 'header', 'footer', 'watermark', 'encryption', 'signature', 'bookmarks',
10
+ 'hyphenation', 'metadata', 'defaultParagraphStyle', 'sections', 'content',
11
+ 'flattenForms', 'onImageLoadError', 'onFormFieldError', 'renderDate', 'allowedFileDirs',
12
+ ];
13
+ const METADATA_KEYS = ['title', 'author', 'subject', 'keywords', 'creator', 'language', 'producer'];
14
+ const PARAGRAPH_KEYS = [
15
+ 'type', 'text', 'dir', 'fontSize', 'lineHeight', 'fontFamily', 'fontWeight', 'color',
16
+ 'align', 'bgColor', 'spaceAfter', 'spaceBefore', 'keepTogether', 'underline',
17
+ 'strikethrough', 'url', 'columns', 'columnGap', 'hyphenate', 'letterSpacing',
18
+ 'smallCaps', 'tabularNumbers', 'annotation',
19
+ ];
20
+ const HEADING_KEYS = [
21
+ 'type', 'level', 'text', 'dir', 'fontFamily', 'fontWeight', 'fontSize', 'lineHeight',
22
+ 'align', 'color', 'bgColor', 'spaceBefore', 'spaceAfter', 'keepTogether', 'underline',
23
+ 'strikethrough', 'bookmark', 'hyphenate', 'url', 'anchor', 'letterSpacing', 'smallCaps',
24
+ 'tabularNumbers', 'annotation',
25
+ ];
26
+ const SPACER_KEYS = ['type', 'height'];
27
+ const TABLE_KEYS = [
28
+ 'type', 'columns', 'rows', 'dir', 'headerRows', 'borderColor', 'borderWidth',
29
+ 'headerBgColor', 'fontSize', 'cellPaddingH', 'cellPaddingV', 'spaceAfter', 'spaceBefore',
30
+ ];
31
+ const COLUMN_DEF_KEYS = ['width', 'align'];
32
+ const TABLE_ROW_KEYS = ['cells', 'isHeader'];
33
+ const TABLE_CELL_KEYS = [
34
+ 'text', 'dir', 'align', 'fontWeight', 'fontFamily', 'fontSize', 'color', 'bgColor',
35
+ 'colspan', 'rowspan', 'tabularNumbers',
36
+ ];
37
+ const IMAGE_KEYS = [
38
+ 'type', 'src', 'format', 'width', 'height', 'align', 'spaceAfter', 'spaceBefore',
39
+ 'float', 'floatWidth', 'floatGap', 'floatText', 'floatSpans', 'floatFontSize',
40
+ 'floatFontFamily', 'floatColor',
41
+ ];
42
+ const SVG_KEYS = ['type', 'svg', 'src', 'width', 'height', 'align', 'spaceBefore', 'spaceAfter'];
43
+ const QR_CODE_KEYS = [
44
+ 'type', 'data', 'size', 'errorCorrectionLevel', 'foreground', 'background', 'margin',
45
+ 'align', 'spaceBefore', 'spaceAfter',
46
+ ];
47
+ const BARCODE_KEYS = [
48
+ 'type', 'symbology', 'data', 'width', 'height', 'includeText', 'align', 'spaceBefore', 'spaceAfter',
49
+ ];
50
+ const CHART_KEYS = ['type', 'spec', 'width', 'height', 'caption', 'align', 'spaceBefore', 'spaceAfter'];
51
+ const LIST_KEYS = [
52
+ 'type', 'style', 'items', 'marker', 'indent', 'markerWidth', 'fontSize', 'lineHeight',
53
+ 'itemSpaceAfter', 'spaceAfter', 'spaceBefore', 'color', 'nestedNumberingStyle',
54
+ ];
55
+ const LIST_ITEM_KEYS = ['text', 'dir', 'fontWeight', 'items'];
56
+ const HR_KEYS = ['type', 'thickness', 'color', 'spaceAbove', 'spaceBelow', 'spaceBefore', 'spaceAfter'];
57
+ const PAGE_BREAK_KEYS = ['type'];
58
+ const CODE_KEYS = [
59
+ 'type', 'text', 'dir', 'fontFamily', 'fontSize', 'lineHeight', 'bgColor', 'color',
60
+ 'padding', 'spaceAfter', 'spaceBefore', 'keepTogether', 'language', 'highlightTheme',
61
+ ];
62
+ const RICH_PARAGRAPH_KEYS = [
63
+ 'type', 'spans', 'dir', 'fontSize', 'lineHeight', 'align', 'bgColor', 'spaceBefore',
64
+ 'spaceAfter', 'keepTogether', 'columns', 'columnGap', 'letterSpacing', 'smallCaps',
65
+ 'tabularNumbers',
66
+ ];
67
+ const INLINE_SPAN_KEYS = [
68
+ 'text', 'dir', 'fontFamily', 'fontWeight', 'fontStyle', 'color', 'fontSize', 'underline',
69
+ 'strikethrough', 'url', 'href', 'verticalAlign', 'smallCaps', 'letterSpacing', 'footnoteRef',
70
+ ];
71
+ const BLOCKQUOTE_KEYS = [
72
+ 'type', 'text', 'dir', 'borderColor', 'borderWidth', 'bgColor', 'color', 'fontFamily',
73
+ 'fontWeight', 'fontStyle', 'fontSize', 'lineHeight', 'padding', 'paddingH', 'paddingV',
74
+ 'align', 'spaceBefore', 'spaceAfter', 'keepTogether', 'underline', 'strikethrough',
75
+ ];
76
+ const CALLOUT_KEYS = [
77
+ 'type', 'content', 'style', 'title', 'backgroundColor', 'borderColor', 'color', 'titleColor',
78
+ 'fontFamily', 'fontWeight', 'fontSize', 'lineHeight', 'padding', 'paddingH', 'paddingV',
79
+ 'spaceAfter', 'spaceBefore', 'keepTogether', 'dir',
80
+ ];
81
+ const COMMENT_KEYS = ['type', 'contents', 'author', 'color', 'open', 'spaceAfter'];
82
+ const FORM_FIELD_KEYS = [
83
+ 'type', 'fieldType', 'name', 'label', 'placeholder', 'defaultValue', 'multiline',
84
+ 'maxLength', 'checked', 'options', 'defaultSelected', 'width', 'height', 'fontSize',
85
+ 'borderColor', 'backgroundColor', 'spaceAfter', 'spaceBefore', 'keepTogether',
86
+ ];
87
+ const FOOTNOTE_DEF_KEYS = ['type', 'id', 'text', 'fontSize', 'fontFamily', 'spaceAfter'];
88
+ const TOC_KEYS = [
89
+ 'type', 'title', 'showTitle', 'minLevel', 'maxLevel', 'fontSize', 'titleFontSize',
90
+ 'levelIndent', 'leader', 'entrySpacing', 'fontFamily', 'spaceBefore', 'spaceAfter',
91
+ ];
92
+ const TOC_ENTRY_KEYS = ['type', 'text', 'pageNumber', 'level', 'levelIndent', 'leader', 'fontFamily', 'fontWeight'];
93
+ const FLOAT_GROUP_KEYS = ['type', 'image', 'float', 'floatWidth', 'floatGap', 'content', 'spaceBefore', 'spaceAfter'];
94
+ const ANNOTATION_KEYS = ['contents', 'author', 'color', 'open'];
95
+ // ─── Runtime Sets created from key arrays ─────────────────────────────────────
96
+ export const ALLOWED_PROPS = {
97
+ 'paragraph': new Set(PARAGRAPH_KEYS),
98
+ 'heading': new Set(HEADING_KEYS),
99
+ 'spacer': new Set(SPACER_KEYS),
100
+ 'table': new Set(TABLE_KEYS),
101
+ 'image': new Set(IMAGE_KEYS),
102
+ 'svg': new Set(SVG_KEYS),
103
+ 'qr-code': new Set(QR_CODE_KEYS),
104
+ 'barcode': new Set(BARCODE_KEYS),
105
+ 'chart': new Set(CHART_KEYS),
106
+ 'list': new Set(LIST_KEYS),
107
+ 'hr': new Set(HR_KEYS),
108
+ 'page-break': new Set(PAGE_BREAK_KEYS),
109
+ 'code': new Set(CODE_KEYS),
110
+ 'rich-paragraph': new Set(RICH_PARAGRAPH_KEYS),
111
+ 'blockquote': new Set(BLOCKQUOTE_KEYS),
112
+ 'toc': new Set(TOC_KEYS),
113
+ 'toc-entry': new Set(TOC_ENTRY_KEYS),
114
+ 'comment': new Set(COMMENT_KEYS),
115
+ 'form-field': new Set(FORM_FIELD_KEYS),
116
+ 'callout': new Set(CALLOUT_KEYS),
117
+ 'footnote-def': new Set(FOOTNOTE_DEF_KEYS),
118
+ 'float-group': new Set(FLOAT_GROUP_KEYS),
119
+ };
120
+ export const ALLOWED_PROPS_SUB = {
121
+ 'document': new Set(DOC_KEYS),
122
+ 'metadata': new Set(METADATA_KEYS),
123
+ 'column-def': new Set(COLUMN_DEF_KEYS),
124
+ 'table-row': new Set(TABLE_ROW_KEYS),
125
+ 'table-cell': new Set(TABLE_CELL_KEYS),
126
+ 'list-item': new Set(LIST_ITEM_KEYS),
127
+ 'inline-span': new Set(INLINE_SPAN_KEYS),
128
+ 'annotation': new Set(ANNOTATION_KEYS),
129
+ };
130
+ //# sourceMappingURL=allowed-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowed-props.js","sourceRoot":"","sources":["../src/allowed-props.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -25,25 +25,25 @@ import path from 'node:path';
25
25
  import { createRequire } from 'node:module';
26
26
  const require = createRequire(import.meta.url);
27
27
  const pkg = require('../package.json');
28
- const HELP = `pretext-pdf v${pkg.version} — JSON → PDF
29
-
30
- Usage:
31
- pretext-pdf [<input.json>] [<output.pdf>]
32
- pretext-pdf -i <input> -o <output>
33
- cat doc.json | pretext-pdf > out.pdf
34
-
35
- Options:
36
- -i, --input <path> Read JSON (or Markdown with --markdown) from path
37
- -o, --output <path> Write PDF to path (default: stdout)
38
- --markdown Treat input as Markdown — converts via pretext-pdf/markdown
39
- --code-font <name> With --markdown, font family for fenced code blocks
40
- -v, --version Print pretext-pdf version
41
- -h, --help Print this help
42
-
43
- Examples:
44
- pretext-pdf doc.json invoice.pdf
45
- echo '{"content":[{"type":"heading","level":1,"text":"Hi"}]}' | pretext-pdf > out.pdf
46
- pretext-pdf --markdown --code-font 'Courier New' README.md docs.pdf
28
+ const HELP = `pretext-pdf v${pkg.version} — JSON → PDF
29
+
30
+ Usage:
31
+ pretext-pdf [<input.json>] [<output.pdf>]
32
+ pretext-pdf -i <input> -o <output>
33
+ cat doc.json | pretext-pdf > out.pdf
34
+
35
+ Options:
36
+ -i, --input <path> Read JSON (or Markdown with --markdown) from path
37
+ -o, --output <path> Write PDF to path (default: stdout)
38
+ --markdown Treat input as Markdown — converts via pretext-pdf/markdown
39
+ --code-font <name> With --markdown, font family for fenced code blocks
40
+ -v, --version Print pretext-pdf version
41
+ -h, --help Print this help
42
+
43
+ Examples:
44
+ pretext-pdf doc.json invoice.pdf
45
+ echo '{"content":[{"type":"heading","level":1,"text":"Hi"}]}' | pretext-pdf > out.pdf
46
+ pretext-pdf --markdown --code-font 'Courier New' README.md docs.pdf
47
47
  `;
48
48
  function parseArgs(argv) {
49
49
  const args = { markdown: false };
package/dist/index.d.ts CHANGED
@@ -5,6 +5,11 @@ export type { ErrorCode } from './errors.js';
5
5
  export type { NamedPageSize } from './page-sizes.js';
6
6
  export { createPdf } from './builder.js';
7
7
  export type { PdfBuilderOptions } from './builder.js';
8
+ export { validate } from './validate.js';
9
+ export type RenderOptions = {
10
+ /** Enable strict validation: reject unknown properties on elements and sub-structures */
11
+ strict?: boolean;
12
+ };
8
13
  /**
9
14
  * Create a set of paired footnote definitions and their IDs for use in rich-paragraph spans.
10
15
  *
@@ -52,7 +57,7 @@ export declare function createFootnoteSet(items: Array<{
52
57
  * fs.writeFileSync('output.pdf', pdf)
53
58
  * ```
54
59
  */
55
- export declare function render(doc: PdfDocument): Promise<Uint8Array>;
60
+ export declare function render(doc: PdfDocument, options?: RenderOptions): Promise<Uint8Array>;
56
61
  /**
57
62
  * Merge multiple pre-rendered PDFs into a single PDF.
58
63
  * @param pdfs Array of Uint8Array PDF bytes to combine
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAmD,kBAAkB,EAAiC,MAAM,YAAY,CAAA;AAajJ,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIrD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1F,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAMhD;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAwOlE;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBnE;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB9F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAmD,kBAAkB,EAAiC,MAAM,YAAY,CAAA;AAajJ,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,MAAM,aAAa,GAAG;IAC1B,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1F,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAMhD;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAwO3F;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBnE;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB9F"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ import { paginate } from './paginate.js';
11
11
  import { renderDocument } from './render.js';
12
12
  export { PretextPdfError } from './errors.js';
13
13
  export { createPdf } from './builder.js';
14
+ export { validate } from './validate.js';
14
15
  let _fnSetCounter = 0;
15
16
  /**
16
17
  * Create a set of paired footnote definitions and their IDs for use in rich-paragraph spans.
@@ -74,7 +75,7 @@ function resolveHeaderFooter(doc, pageNumber) {
74
75
  * fs.writeFileSync('output.pdf', pdf)
75
76
  * ```
76
77
  */
77
- export async function render(doc) {
78
+ export async function render(doc, options) {
78
79
  // ── Install Node.js canvas polyfill FIRST, before any Pretext import ─────────
79
80
  // This MUST happen before measure.ts lazily imports @chenglou/pretext.
80
81
  if (typeof OffscreenCanvas === 'undefined' && typeof window === 'undefined') {
@@ -82,7 +83,7 @@ export async function render(doc) {
82
83
  await installNodePolyfill();
83
84
  }
84
85
  // ── Stage 1: Validate ─────────────────────────────────────────────────────────
85
- validate(doc);
86
+ validate(doc, options);
86
87
  // ── Resolve page geometry ──────────────────────────────────────────────────────
87
88
  const [pageWidth, pageHeight] = resolvePageDimensions(doc.pageSize);
88
89
  const margins = {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  import type { PdfDocument } from './types.js';
2
- export declare function validate(doc: PdfDocument): void;
2
+ export declare function validate(doc: PdfDocument, options?: {
3
+ strict?: boolean;
4
+ }): void;
3
5
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA4C,MAAM,YAAY,CAAA;AA4EvF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA6V/C"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA4C,MAAM,YAAY,CAAA;AA0IvF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA2W/E"}
package/dist/validate.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { PretextPdfError } from './errors.js';
2
2
  import { resolvePageDimensions } from './page-sizes.js';
3
+ import { ALLOWED_PROPS, ALLOWED_PROPS_SUB } from './allowed-props.js';
3
4
  /**
4
5
  * RTL strong bidi characters — Bidi_Class=R or AL per UAX #9.
5
6
  * Block-level coverage following Unicode DerivedBidiClass defaults.
@@ -39,6 +40,64 @@ const HEX_COLOR_REGEX = /^#[0-9A-Fa-f]{6}$/;
39
40
  const SAFE_URL_SCHEME = /^(https?|mailto|ftp|#)/i;
40
41
  /** BCP47 language tag pattern for hyphenation.language — prevents dynamic-import path injection */
41
42
  const LANGUAGE_TAG_REGEX = /^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{2,8})*$/;
43
+ /** Levenshtein distance with early exit at distance > 2 */
44
+ function levenshteinDist(a, b) {
45
+ if (a === b)
46
+ return 0;
47
+ if (Math.abs(a.length - b.length) > 2)
48
+ return 999;
49
+ const m = a.length;
50
+ const n = b.length;
51
+ const prev = Array(n + 1)
52
+ .fill(0)
53
+ .map((_, j) => j);
54
+ const curr = Array(n + 1).fill(0);
55
+ for (let i = 1; i <= m; i++) {
56
+ curr[0] = i;
57
+ for (let j = 1; j <= n; j++) {
58
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
59
+ curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost);
60
+ if (curr[j] > 2)
61
+ return 999;
62
+ }
63
+ for (let j = 0; j <= n; j++)
64
+ prev[j] = curr[j];
65
+ }
66
+ return prev[n];
67
+ }
68
+ /** Find closest match with edit distance <= 2 */
69
+ function closestMatch(prop, allowed) {
70
+ let best = null;
71
+ let bestDist = 999;
72
+ for (const candidate of allowed) {
73
+ const d = levenshteinDist(prop, candidate);
74
+ if (d > 0 && d <= 2 && d < bestDist) {
75
+ best = candidate;
76
+ bestDist = d;
77
+ }
78
+ }
79
+ return best;
80
+ }
81
+ /** Accumulate unknown property errors for an object */
82
+ function assertUnknownProps(obj, allowed, path, errors) {
83
+ if (!obj || typeof obj !== 'object' || Array.isArray(obj))
84
+ return;
85
+ for (const key of Object.keys(obj)) {
86
+ if (!allowed.has(key)) {
87
+ const suggestion = closestMatch(key, allowed);
88
+ const hint = suggestion ? ` Did you mean '${suggestion}'?` : '';
89
+ errors.push(`${path}.${key}: unknown property.${hint}`);
90
+ }
91
+ }
92
+ }
93
+ /** Format accumulated errors into a single message (cap at 20 errors) */
94
+ function formatErrors(errors) {
95
+ if (errors.length === 0)
96
+ return '';
97
+ const msgs = errors.slice(0, 20);
98
+ const suffix = errors.length > 20 ? `\n... and ${errors.length - 20} more error(s)` : '';
99
+ return msgs.join('\n') + suffix;
100
+ }
42
101
  /** Validate a hyperlink URL — throws VALIDATION_ERROR for unsafe schemes */
43
102
  function validateUrl(url, prefix) {
44
103
  if (!SAFE_URL_SCHEME.test(url)) {
@@ -60,7 +119,13 @@ const STAR_WIDTH_REGEX = /^(\d*\.?\d+)?\*$/;
60
119
  const BUNDLED_FAMILIES = new Set(['Inter']);
61
120
  /** Font variants (family-weight-style) always available without explicit doc.fonts entry */
62
121
  const BUNDLED_VARIANTS = new Set(['Inter-400-normal', 'Inter-700-normal']);
63
- export function validate(doc) {
122
+ export function validate(doc, options) {
123
+ const strict = options?.strict ?? false;
124
+ const errors = [];
125
+ // Strict: check doc-level properties
126
+ if (strict) {
127
+ assertUnknownProps(doc, ALLOWED_PROPS_SUB['document'], 'document', errors);
128
+ }
64
129
  // content must be a non-empty array
65
130
  if (!Array.isArray(doc.content) || doc.content.length === 0) {
66
131
  throw new PretextPdfError('VALIDATION_ERROR', 'document.content must be a non-empty array');
@@ -342,7 +407,7 @@ export function validate(doc) {
342
407
  }
343
408
  }
344
409
  for (let i = 0; i < doc.content.length; i++) {
345
- validateElement(doc.content[i], i, loadedFamilies);
410
+ validateElement(doc.content[i], i, loadedFamilies, strict, errors);
346
411
  }
347
412
  // ── Footnote ref/def cross-validation ─────────────────────────────────────
348
413
  const footnoteDefIds = new Map(); // id → content index
@@ -381,6 +446,11 @@ export function validate(doc) {
381
446
  }
382
447
  // validate all font references are loadable
383
448
  validateFontReferences(doc, loadedFamilies);
449
+ // Throw collected strict validation errors
450
+ if (errors.length > 0) {
451
+ const msg = formatErrors(errors);
452
+ throw new PretextPdfError('VALIDATION_ERROR', msg);
453
+ }
384
454
  }
385
455
  /**
386
456
  * Validate that every font family referenced anywhere in the document
@@ -502,11 +572,18 @@ function validateFontReferences(doc, loadedFamilies) {
502
572
  // code.fontFamily already validated against loadedFamilies in validateElement
503
573
  }
504
574
  }
505
- function validateElement(el, index, loadedFamilies) {
575
+ function validateElement(el, index, loadedFamilies, strict, errors) {
506
576
  const prefix = `content[${index}]`;
507
577
  if (!el || typeof el !== 'object' || !('type' in el)) {
508
578
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix}: each element must have a 'type' field`);
509
579
  }
580
+ // Strict: check element properties match allowed set for type
581
+ if (strict) {
582
+ const allowed = ALLOWED_PROPS[el.type];
583
+ if (allowed) {
584
+ assertUnknownProps(el, allowed, prefix, errors);
585
+ }
586
+ }
510
587
  switch (el.type) {
511
588
  case 'paragraph': {
512
589
  if (typeof el.text !== 'string') {
@@ -559,6 +636,10 @@ function validateElement(el, index, loadedFamilies) {
559
636
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (paragraph): 'letterSpacing' must be a non-negative finite number and <= 200`);
560
637
  }
561
638
  if (el.annotation) {
639
+ // Strict: validate annotation properties
640
+ if (strict) {
641
+ assertUnknownProps(el.annotation, ALLOWED_PROPS_SUB['annotation'], `${prefix} (paragraph).annotation`, errors);
642
+ }
562
643
  if (!el.annotation.contents || el.annotation.contents.trim() === '') {
563
644
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (paragraph): annotation.contents is required and must be non-empty`);
564
645
  }
@@ -657,6 +738,10 @@ function validateElement(el, index, loadedFamilies) {
657
738
  const colCount = el.columns.length;
658
739
  for (let ci = 0; ci < el.columns.length; ci++) {
659
740
  const col = el.columns[ci];
741
+ // Strict: validate column def properties
742
+ if (strict) {
743
+ assertUnknownProps(col, ALLOWED_PROPS_SUB['column-def'], `${prefix} (table).columns[${ci}]`, errors);
744
+ }
660
745
  if (typeof col.width === 'number') {
661
746
  if (col.width <= 0 || !isFinite(col.width)) {
662
747
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (table): columns[${ci}].width must be a positive number. Got: ${col.width}`);
@@ -733,8 +818,16 @@ function validateElement(el, index, loadedFamilies) {
733
818
  if (colspanSum !== colCount - occupiedCols) {
734
819
  throw new PretextPdfError('COLSPAN_OVERFLOW', `${prefix} (table): rows[${ri}] colspan sum is ${colspanSum} but expected ${colCount - occupiedCols} (${colCount} columns minus ${occupiedCols} occupied by rowspan). Sum of explicit cell colspans must cover only unoccupied columns.`);
735
820
  }
821
+ // Strict: validate row and column defs
822
+ if (strict) {
823
+ assertUnknownProps(row, ALLOWED_PROPS_SUB['table-row'], `${prefix} (table).rows[${ri}]`, errors);
824
+ }
736
825
  for (let cellI = 0; cellI < row.cells.length; cellI++) {
737
826
  const cell = row.cells[cellI];
827
+ // Strict: validate cell properties
828
+ if (strict) {
829
+ assertUnknownProps(cell, ALLOWED_PROPS_SUB['table-cell'], `${prefix} (table).rows[${ri}].cells[${cellI}]`, errors);
830
+ }
738
831
  if (typeof cell.text !== 'string') {
739
832
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (table): rows[${ri}].cells[${cellI}].text must be a string`);
740
833
  }
@@ -969,6 +1062,10 @@ function validateElement(el, index, loadedFamilies) {
969
1062
  }
970
1063
  for (let ii = 0; ii < el.items.length; ii++) {
971
1064
  const item = el.items[ii];
1065
+ // Strict: validate list item properties
1066
+ if (strict) {
1067
+ assertUnknownProps(item, ALLOWED_PROPS_SUB['list-item'], `${prefix} (list).items[${ii}]`, errors);
1068
+ }
972
1069
  if (typeof item.text !== 'string' || item.text.trim() === '') {
973
1070
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (list): items[${ii}].text must be a non-empty string`);
974
1071
  }
@@ -986,6 +1083,10 @@ function validateElement(el, index, loadedFamilies) {
986
1083
  }
987
1084
  for (let ni = 0; ni < item.items.length; ni++) {
988
1085
  const nested = item.items[ni];
1086
+ // Strict: validate nested list item properties
1087
+ if (strict) {
1088
+ assertUnknownProps(nested, ALLOWED_PROPS_SUB['list-item'], `${prefix} (list).items[${ii}].items[${ni}]`, errors);
1089
+ }
989
1090
  if (typeof nested.text !== 'string' || nested.text.trim() === '') {
990
1091
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (list): items[${ii}].items[${ni}].text must be a non-empty string`);
991
1092
  }
@@ -1037,6 +1138,10 @@ function validateElement(el, index, loadedFamilies) {
1037
1138
  }
1038
1139
  for (let si = 0; si < el.spans.length; si++) {
1039
1140
  const span = el.spans[si];
1141
+ // Strict: validate span properties
1142
+ if (strict) {
1143
+ assertUnknownProps(span, ALLOWED_PROPS_SUB['inline-span'], `${prefix} (rich-paragraph).spans[${si}]`, errors);
1144
+ }
1040
1145
  if (typeof span.text !== 'string') {
1041
1146
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (rich-paragraph): spans[${si}].text must be a string`);
1042
1147
  }
@@ -1348,6 +1453,13 @@ function validateElement(el, index, loadedFamilies) {
1348
1453
  if (!['paragraph', 'heading', 'rich-paragraph'].includes(item.type)) {
1349
1454
  throw new PretextPdfError('VALIDATION_ERROR', `${prefix} (float-group).content[${i}]: only 'paragraph', 'heading', and 'rich-paragraph' elements are allowed in float groups`);
1350
1455
  }
1456
+ // Strict: validate nested content element properties
1457
+ if (strict) {
1458
+ const allowed = ALLOWED_PROPS[item.type];
1459
+ if (allowed) {
1460
+ assertUnknownProps(item, allowed, `${prefix} (float-group).content[${i}]`, errors);
1461
+ }
1462
+ }
1351
1463
  }
1352
1464
  // Validate spacing
1353
1465
  if (fg.spaceBefore !== undefined && (typeof fg.spaceBefore !== 'number' || fg.spaceBefore < 0)) {