pretext-pdf 1.9.0 → 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 (159) hide show
  1. package/CHANGELOG.md +414 -0
  2. package/dist/allowed-props.d.ts +23 -8
  3. package/dist/allowed-props.d.ts.map +1 -1
  4. package/dist/allowed-props.js +38 -6
  5. package/dist/allowed-props.js.map +1 -1
  6. package/dist/assets/index.d.ts +1 -1
  7. package/dist/assets/index.d.ts.map +1 -1
  8. package/dist/assets/index.js +1 -1
  9. package/dist/assets/index.js.map +1 -1
  10. package/dist/assets/loaders/images.d.ts.map +1 -1
  11. package/dist/assets/loaders/images.js +4 -1
  12. package/dist/assets/loaders/images.js.map +1 -1
  13. package/dist/assets/security/path-allowlist.d.ts.map +1 -1
  14. package/dist/assets/security/path-allowlist.js +10 -1
  15. package/dist/assets/security/path-allowlist.js.map +1 -1
  16. package/dist/assets/svg/resolve-content.d.ts.map +1 -1
  17. package/dist/assets/svg/resolve-content.js +4 -1
  18. package/dist/assets/svg/resolve-content.js.map +1 -1
  19. package/dist/assets/svg/sanitize.d.ts +2 -0
  20. package/dist/assets/svg/sanitize.d.ts.map +1 -1
  21. package/dist/assets/svg/sanitize.js +41 -10
  22. package/dist/assets/svg/sanitize.js.map +1 -1
  23. package/dist/builder.js +2 -2
  24. package/dist/builder.js.map +1 -1
  25. package/dist/compat/normalize.d.ts +13 -0
  26. package/dist/compat/normalize.d.ts.map +1 -0
  27. package/dist/compat/normalize.js +146 -0
  28. package/dist/compat/normalize.js.map +1 -0
  29. package/dist/compat/pdfmake-types.d.ts +91 -0
  30. package/dist/compat/pdfmake-types.d.ts.map +1 -0
  31. package/dist/compat/pdfmake-types.js +8 -0
  32. package/dist/compat/pdfmake-types.js.map +1 -0
  33. package/dist/compat/translate.d.ts +7 -0
  34. package/dist/compat/translate.d.ts.map +1 -0
  35. package/dist/compat/translate.js +205 -0
  36. package/dist/compat/translate.js.map +1 -0
  37. package/dist/compat.d.ts +6 -161
  38. package/dist/compat.d.ts.map +1 -1
  39. package/dist/compat.js +13 -404
  40. package/dist/compat.js.map +1 -1
  41. package/dist/fonts/bundled-paths.d.ts +13 -0
  42. package/dist/fonts/bundled-paths.d.ts.map +1 -0
  43. package/dist/fonts/bundled-paths.js +43 -0
  44. package/dist/fonts/bundled-paths.js.map +1 -0
  45. package/dist/fonts/collect-needed.d.ts +10 -0
  46. package/dist/fonts/collect-needed.d.ts.map +1 -0
  47. package/dist/fonts/collect-needed.js +85 -0
  48. package/dist/fonts/collect-needed.js.map +1 -0
  49. package/dist/fonts/collect-text.d.ts +9 -0
  50. package/dist/fonts/collect-text.d.ts.map +1 -0
  51. package/dist/fonts/collect-text.js +162 -0
  52. package/dist/fonts/collect-text.js.map +1 -0
  53. package/dist/fonts/load-bytes.d.ts +10 -0
  54. package/dist/fonts/load-bytes.d.ts.map +1 -0
  55. package/dist/fonts/load-bytes.js +56 -0
  56. package/dist/fonts/load-bytes.js.map +1 -0
  57. package/dist/fonts.d.ts +11 -10
  58. package/dist/fonts.d.ts.map +1 -1
  59. package/dist/fonts.js +17 -419
  60. package/dist/fonts.js.map +1 -1
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/measure-blocks/simple-blocks.js +3 -3
  66. package/dist/measure-blocks/simple-blocks.js.map +1 -1
  67. package/dist/measure-text.d.ts.map +1 -1
  68. package/dist/measure-text.js +7 -0
  69. package/dist/measure-text.js.map +1 -1
  70. package/dist/pipeline-footnotes.d.ts +2 -2
  71. package/dist/pipeline-footnotes.d.ts.map +1 -1
  72. package/dist/pipeline-footnotes.js +5 -2
  73. package/dist/pipeline-footnotes.js.map +1 -1
  74. package/dist/pipeline.d.ts.map +1 -1
  75. package/dist/pipeline.js +45 -12
  76. package/dist/pipeline.js.map +1 -1
  77. package/dist/plugin-types.d.ts +3 -3
  78. package/dist/plugin-types.d.ts.map +1 -1
  79. package/dist/render-blocks/hr.d.ts.map +1 -1
  80. package/dist/render-blocks/hr.js +2 -3
  81. package/dist/render-blocks/hr.js.map +1 -1
  82. package/dist/render-extras.d.ts +0 -2
  83. package/dist/render-extras.d.ts.map +1 -1
  84. package/dist/render-extras.js +15 -78
  85. package/dist/render-extras.js.map +1 -1
  86. package/dist/render-utils.d.ts +1 -7
  87. package/dist/render-utils.d.ts.map +1 -1
  88. package/dist/render-utils.js +18 -35
  89. package/dist/render-utils.js.map +1 -1
  90. package/dist/render.js +2 -1
  91. package/dist/render.js.map +1 -1
  92. package/dist/schema/document.d.ts +2115 -0
  93. package/dist/schema/document.d.ts.map +1 -0
  94. package/dist/schema/document.js +275 -0
  95. package/dist/schema/document.js.map +1 -0
  96. package/dist/schema/elements-block.d.ts +481 -0
  97. package/dist/schema/elements-block.d.ts.map +1 -0
  98. package/dist/schema/elements-block.js +155 -0
  99. package/dist/schema/elements-block.js.map +1 -0
  100. package/dist/schema/elements-media.d.ts +282 -0
  101. package/dist/schema/elements-media.d.ts.map +1 -0
  102. package/dist/schema/elements-media.js +83 -0
  103. package/dist/schema/elements-media.js.map +1 -0
  104. package/dist/schema/elements-table.d.ts +134 -0
  105. package/dist/schema/elements-table.d.ts.map +1 -0
  106. package/dist/schema/elements-table.js +60 -0
  107. package/dist/schema/elements-table.js.map +1 -0
  108. package/dist/schema/elements-text.d.ts +782 -0
  109. package/dist/schema/elements-text.d.ts.map +1 -0
  110. package/dist/schema/elements-text.js +260 -0
  111. package/dist/schema/elements-text.js.map +1 -0
  112. package/dist/schema/shared.d.ts +84 -0
  113. package/dist/schema/shared.d.ts.map +1 -0
  114. package/dist/schema/shared.js +29 -0
  115. package/dist/schema/shared.js.map +1 -0
  116. package/dist/schema.d.ts +10 -1869
  117. package/dist/schema.d.ts.map +1 -1
  118. package/dist/schema.js +10 -793
  119. package/dist/schema.js.map +1 -1
  120. package/dist/signing/index.d.ts +3 -0
  121. package/dist/signing/index.d.ts.map +1 -0
  122. package/dist/signing/index.js +3 -0
  123. package/dist/signing/index.js.map +1 -0
  124. package/dist/signing/placeholder.d.ts +5 -0
  125. package/dist/signing/placeholder.d.ts.map +1 -0
  126. package/dist/signing/placeholder.js +75 -0
  127. package/dist/signing/placeholder.js.map +1 -0
  128. package/dist/signing/post-process.d.ts +16 -0
  129. package/dist/signing/post-process.d.ts.map +1 -0
  130. package/dist/signing/post-process.js +125 -0
  131. package/dist/signing/post-process.js.map +1 -0
  132. package/dist/types-public/document.d.ts +106 -110
  133. package/dist/types-public/document.d.ts.map +1 -1
  134. package/dist/types-public/elements-block.d.ts +54 -35
  135. package/dist/types-public/elements-block.d.ts.map +1 -1
  136. package/dist/types-public/validation.d.ts +9 -15
  137. package/dist/types-public/validation.d.ts.map +1 -1
  138. package/dist/types.d.ts +1 -1
  139. package/dist/types.d.ts.map +1 -1
  140. package/dist/validate/document.d.ts.map +1 -1
  141. package/dist/validate/document.js +5 -1
  142. package/dist/validate/document.js.map +1 -1
  143. package/dist/validate/elements/forms-floats.d.ts +1 -1
  144. package/dist/validate/elements/forms-floats.d.ts.map +1 -1
  145. package/dist/validate/elements/forms-floats.js +44 -6
  146. package/dist/validate/elements/forms-floats.js.map +1 -1
  147. package/dist/validate/elements/media.d.ts.map +1 -1
  148. package/dist/validate/elements/media.js +14 -0
  149. package/dist/validate/elements/media.js.map +1 -1
  150. package/dist/validate/elements/structural-simple.js +4 -4
  151. package/dist/validate/elements/structural-simple.js.map +1 -1
  152. package/dist/validate/helpers.d.ts +6 -6
  153. package/dist/validate/helpers.d.ts.map +1 -1
  154. package/dist/validate/helpers.js +7 -7
  155. package/dist/validate/helpers.js.map +1 -1
  156. package/dist/validate/index.d.ts.map +1 -1
  157. package/dist/validate/index.js +4 -6
  158. package/dist/validate/index.js.map +1 -1
  159. package/package.json +7 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/schema/document.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Rc,CAAA"}
@@ -0,0 +1,275 @@
1
+ import { alignSchema, alignNoJustify, fontWeightSchema, colorSchema, spaceSchema } from './shared.js';
2
+ import { paragraphSchema, headingSchema, blockquoteSchema, codeSchema, calloutSchema, richParagraphSchema, listSchema, tocSchema, footnoteDefSchema } from './elements-text.js';
3
+ import { imageSchema, svgSchema, qrCodeSchema, barcodeSchema, chartSchema } from './elements-media.js';
4
+ import { spacerSchema, hrSchema, pageBreakSchema, commentSchema, formFieldSchema, floatGroupSchema } from './elements-block.js';
5
+ import { tableSchema } from './elements-table.js';
6
+ export const pdfDocumentSchema = {
7
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
8
+ title: 'PdfDocument',
9
+ description: 'Top-level descriptor for a pretext-pdf document.',
10
+ type: 'object',
11
+ required: ['content'],
12
+ properties: {
13
+ content: {
14
+ type: 'array',
15
+ description: 'Document content elements rendered top-to-bottom.',
16
+ items: {
17
+ oneOf: [
18
+ paragraphSchema,
19
+ headingSchema,
20
+ spacerSchema,
21
+ hrSchema,
22
+ pageBreakSchema,
23
+ imageSchema,
24
+ svgSchema,
25
+ tableSchema,
26
+ listSchema,
27
+ blockquoteSchema,
28
+ codeSchema,
29
+ calloutSchema,
30
+ richParagraphSchema,
31
+ tocSchema,
32
+ footnoteDefSchema,
33
+ qrCodeSchema,
34
+ barcodeSchema,
35
+ commentSchema,
36
+ formFieldSchema,
37
+ floatGroupSchema,
38
+ chartSchema,
39
+ ],
40
+ },
41
+ },
42
+ pageSize: {
43
+ description: 'Page size. Default: A4 (595×842 pt). Custom: [width, height] in pt.',
44
+ oneOf: [
45
+ {
46
+ type: 'string',
47
+ enum: ['A4', 'Letter', 'Legal', 'A3', 'A5', 'Tabloid'],
48
+ },
49
+ {
50
+ type: 'array',
51
+ items: { type: 'number' },
52
+ minItems: 2,
53
+ maxItems: 2,
54
+ description: '[width, height] in points',
55
+ },
56
+ ],
57
+ },
58
+ margins: {
59
+ type: 'object',
60
+ description: 'Page margins in pt. Default: all 72pt (1 inch).',
61
+ properties: {
62
+ top: { type: 'number' },
63
+ bottom: { type: 'number' },
64
+ left: { type: 'number' },
65
+ right: { type: 'number' },
66
+ },
67
+ },
68
+ defaultFont: {
69
+ type: 'string',
70
+ description: 'Default font family for body text. Default: Inter',
71
+ },
72
+ defaultFontSize: {
73
+ type: 'number',
74
+ description: 'Default font size in pt. Default: 12',
75
+ },
76
+ defaultLineHeight: {
77
+ type: 'number',
78
+ description: 'Default line height in pt. Default: fontSize * 1.5',
79
+ },
80
+ fonts: {
81
+ type: 'array',
82
+ description: 'Custom fonts to load and embed.',
83
+ items: {
84
+ type: 'object',
85
+ required: ['family', 'src'],
86
+ properties: {
87
+ family: { type: 'string' },
88
+ weight: fontWeightSchema,
89
+ style: { type: 'string', enum: ['normal', 'italic'] },
90
+ src: { type: 'string', description: 'Absolute file path to a TTF/OTF font file' },
91
+ },
92
+ },
93
+ },
94
+ header: {
95
+ type: 'object',
96
+ description: 'Header rendered at top of every page. Supports {{pageNumber}} and {{totalPages}}.',
97
+ required: ['text'],
98
+ properties: {
99
+ text: { type: 'string', description: 'Use {{pageNumber}} and {{totalPages}} as tokens' },
100
+ fontSize: { type: 'number' },
101
+ align: alignNoJustify,
102
+ fontFamily: { type: 'string' },
103
+ fontWeight: fontWeightSchema,
104
+ color: colorSchema,
105
+ },
106
+ },
107
+ footer: {
108
+ type: 'object',
109
+ description: 'Footer rendered at bottom of every page. Supports {{pageNumber}} and {{totalPages}}.',
110
+ required: ['text'],
111
+ properties: {
112
+ text: { type: 'string', description: 'Use {{pageNumber}} and {{totalPages}} as tokens' },
113
+ fontSize: { type: 'number' },
114
+ align: alignNoJustify,
115
+ fontFamily: { type: 'string' },
116
+ fontWeight: fontWeightSchema,
117
+ color: colorSchema,
118
+ },
119
+ },
120
+ sections: {
121
+ type: 'array',
122
+ description: 'Page-range overrides for header/footer. First matching section wins. Falls back to doc.header/footer.',
123
+ items: {
124
+ type: 'object',
125
+ properties: {
126
+ fromPage: { type: 'number', description: 'First page (1-based, inclusive). Default: 1' },
127
+ toPage: { type: 'number', description: 'Last page (1-based, inclusive). Default: Infinity' },
128
+ header: {
129
+ type: 'object',
130
+ properties: {
131
+ text: { type: 'string' },
132
+ fontSize: { type: 'number' },
133
+ align: alignNoJustify,
134
+ fontFamily: { type: 'string' },
135
+ fontWeight: fontWeightSchema,
136
+ color: colorSchema,
137
+ },
138
+ },
139
+ footer: {
140
+ type: 'object',
141
+ properties: {
142
+ text: { type: 'string' },
143
+ fontSize: { type: 'number' },
144
+ align: alignNoJustify,
145
+ fontFamily: { type: 'string' },
146
+ fontWeight: fontWeightSchema,
147
+ color: colorSchema,
148
+ },
149
+ },
150
+ },
151
+ },
152
+ },
153
+ watermark: {
154
+ type: 'object',
155
+ description: 'Watermark overlay rendered on every page behind content.',
156
+ properties: {
157
+ text: { type: 'string' },
158
+ fontFamily: { type: 'string' },
159
+ fontWeight: fontWeightSchema,
160
+ fontSize: { type: 'number' },
161
+ color: colorSchema,
162
+ opacity: { type: 'number', minimum: 0, maximum: 1 },
163
+ rotation: { type: 'number', description: 'Rotation in degrees (counter-clockwise). Default: -45' },
164
+ },
165
+ },
166
+ encryption: {
167
+ type: 'object',
168
+ description: 'Password protection and permission control for the output PDF.',
169
+ properties: {
170
+ userPassword: { type: 'string', description: 'Password required to open the document.' },
171
+ ownerPassword: { type: 'string', description: 'Password for full unrestricted access.' },
172
+ permissions: {
173
+ type: 'object',
174
+ properties: {
175
+ printing: { type: 'boolean' },
176
+ copying: { type: 'boolean' },
177
+ modifying: { type: 'boolean' },
178
+ annotating: { type: 'boolean' },
179
+ },
180
+ },
181
+ },
182
+ },
183
+ metadata: {
184
+ type: 'object',
185
+ description: 'PDF document metadata written into file properties.',
186
+ properties: {
187
+ title: { type: 'string' },
188
+ author: { type: 'string' },
189
+ subject: { type: 'string' },
190
+ keywords: { type: 'array', items: { type: 'string' } },
191
+ creator: { type: 'string' },
192
+ language: { type: 'string', description: "BCP47 language tag e.g. 'en-US', 'hi', 'ar'" },
193
+ producer: { type: 'string' },
194
+ accessibility: { type: 'object', description: 'Reserved for PDF/UA and WCAG accessibility metadata (v1.8+). No render-time effect in v1.x.' },
195
+ semantic: { type: 'object', description: 'Reserved for semantic document structure metadata (v1.8+). No render-time effect in v1.x.' },
196
+ },
197
+ },
198
+ defaultParagraphStyle: {
199
+ type: 'object',
200
+ description: 'Default style applied to every paragraph and heading that does not set the field explicitly.',
201
+ properties: {
202
+ fontSize: { type: 'number' },
203
+ lineHeight: { type: 'number' },
204
+ fontFamily: { type: 'string' },
205
+ fontWeight: fontWeightSchema,
206
+ color: colorSchema,
207
+ align: alignSchema,
208
+ letterSpacing: { type: 'number' },
209
+ spaceBefore: spaceSchema,
210
+ spaceAfter: spaceSchema,
211
+ },
212
+ },
213
+ bookmarks: {
214
+ description: 'PDF bookmark outline. Set to false to disable, or provide config object.',
215
+ oneOf: [
216
+ { type: 'boolean', const: false },
217
+ {
218
+ type: 'object',
219
+ properties: {
220
+ minLevel: { type: 'number', enum: [1, 2, 3, 4] },
221
+ maxLevel: { type: 'number', enum: [1, 2, 3, 4] },
222
+ },
223
+ },
224
+ ],
225
+ },
226
+ hyphenation: {
227
+ type: 'object',
228
+ description: 'Automatic word hyphenation. Requires installing the matching hyphenation.XX npm package.',
229
+ required: ['language'],
230
+ properties: {
231
+ language: { type: 'string', description: "Language code e.g. 'en-us', 'de', 'fr'" },
232
+ minWordLength: { type: 'number' },
233
+ leftMin: { type: 'number' },
234
+ rightMin: { type: 'number' },
235
+ },
236
+ },
237
+ signature: {
238
+ type: 'object',
239
+ description: 'Signature applied to the rendered PDF. Providing p12 enables PKCS#7 cryptographic signing (requires @signpdf/* peer deps); without p12 a visual-only placeholder box is drawn.',
240
+ properties: {
241
+ p12: { type: 'string', description: 'Absolute path to a .p12/.pfx certificate file, or base64-encoded cert bytes. Triggers PKCS#7/CMS digital signing. Requires @signpdf/signpdf, @signpdf/placeholder-pdf-lib, @signpdf/signer-p12, and pdf-lib peer deps.' },
242
+ passphrase: { type: 'string', description: 'Passphrase to decrypt the P12 certificate. Omit if the certificate has no passphrase.' },
243
+ contactInfo: { type: 'string', description: 'Contact info (e.g. email address) embedded in the PDF signature dictionary. Default: empty string.' },
244
+ signerName: { type: 'string' },
245
+ reason: { type: 'string' },
246
+ location: { type: 'string' },
247
+ x: { type: 'number' },
248
+ y: { type: 'number' },
249
+ width: { type: 'number' },
250
+ height: { type: 'number' },
251
+ page: { type: 'number', description: 'Page index (0-based). Default: last page.' },
252
+ borderColor: colorSchema,
253
+ fontSize: { type: 'number' },
254
+ invisible: { type: 'boolean', description: 'If true, skip the visual signature box — crypto-only invisible signing. Default: false.' },
255
+ },
256
+ },
257
+ flattenForms: {
258
+ type: 'boolean',
259
+ description: 'If true, flatten all form fields into static content. Default: false',
260
+ },
261
+ allowedFileDirs: {
262
+ type: 'array',
263
+ items: { type: 'string' },
264
+ description: 'Restrict filesystem access to these absolute directory paths.',
265
+ },
266
+ },
267
+ // additionalProperties: false on the root object catches unknown top-level keys
268
+ // in AI-agent and MCP code-generation contexts, where an LLM might hallucinate
269
+ // a property that doesn't exist. Element schemas (content items) are intentionally
270
+ // not locked down here — they use runtime validation in validate/index.ts which
271
+ // produces precise per-property VALIDATION_ERROR messages for better DX than
272
+ // JSON Schema's generic "additional property" error.
273
+ additionalProperties: false,
274
+ };
275
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/schema/document.ts"],"names":[],"mappings":"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"}