pretext-pdf 1.0.2 → 1.0.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 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAwaH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Oc,CAAA"}
package/dist/schema.js ADDED
@@ -0,0 +1,631 @@
1
+ /**
2
+ * pretext-pdf — Machine-readable JSON Schema for PdfDocument
3
+ *
4
+ * Exported via the `pretext-pdf/schema` entry point. Intended for editor
5
+ * tooling, MCP clients, and Smithery UI form generation. Not exhaustive —
6
+ * covers the most-used fields and all element types.
7
+ *
8
+ * Usage:
9
+ * import { pdfDocumentSchema } from 'pretext-pdf/schema'
10
+ */
11
+ // ─── Shared sub-schemas ────────────────────────────────────────────────────────
12
+ const alignSchema = { type: 'string', enum: ['left', 'center', 'right', 'justify'] };
13
+ const alignNoJustify = { type: 'string', enum: ['left', 'center', 'right'] };
14
+ const fontWeightSchema = { type: 'number', enum: [400, 700] };
15
+ const colorSchema = { type: 'string', pattern: '^#[0-9A-Fa-f]{6}$', description: '6-digit hex color e.g. #FF0000' };
16
+ const dirSchema = { type: 'string', enum: ['ltr', 'rtl', 'auto'] };
17
+ const spaceSchema = { type: 'number', description: 'Space in points (pt)' };
18
+ // ─── Element schemas ──────────────────────────────────────────────────────────
19
+ const paragraphSchema = {
20
+ type: 'object',
21
+ required: ['type', 'text'],
22
+ properties: {
23
+ type: { type: 'string', const: 'paragraph' },
24
+ text: { type: 'string' },
25
+ dir: dirSchema,
26
+ fontSize: { type: 'number' },
27
+ lineHeight: { type: 'number' },
28
+ fontFamily: { type: 'string' },
29
+ fontWeight: fontWeightSchema,
30
+ color: colorSchema,
31
+ align: alignSchema,
32
+ bgColor: colorSchema,
33
+ spaceAfter: spaceSchema,
34
+ spaceBefore: spaceSchema,
35
+ keepTogether: { type: 'boolean' },
36
+ underline: { type: 'boolean' },
37
+ strikethrough: { type: 'boolean' },
38
+ url: { type: 'string', format: 'uri' },
39
+ letterSpacing: { type: 'number' },
40
+ smallCaps: { type: 'boolean' },
41
+ annotation: {
42
+ type: 'object',
43
+ required: ['contents'],
44
+ properties: {
45
+ contents: { type: 'string' },
46
+ author: { type: 'string' },
47
+ color: colorSchema,
48
+ open: { type: 'boolean' },
49
+ },
50
+ },
51
+ },
52
+ };
53
+ const headingSchema = {
54
+ type: 'object',
55
+ required: ['type', 'level', 'text'],
56
+ properties: {
57
+ type: { type: 'string', const: 'heading' },
58
+ level: { type: 'number', enum: [1, 2, 3, 4] },
59
+ text: { type: 'string' },
60
+ dir: dirSchema,
61
+ fontFamily: { type: 'string' },
62
+ fontWeight: fontWeightSchema,
63
+ fontSize: { type: 'number' },
64
+ lineHeight: { type: 'number' },
65
+ align: alignSchema,
66
+ color: colorSchema,
67
+ bgColor: colorSchema,
68
+ spaceBefore: spaceSchema,
69
+ spaceAfter: spaceSchema,
70
+ keepTogether: { type: 'boolean' },
71
+ underline: { type: 'boolean' },
72
+ strikethrough: { type: 'boolean' },
73
+ bookmark: { type: 'boolean', const: false },
74
+ anchor: { type: 'string' },
75
+ url: { type: 'string', format: 'uri' },
76
+ letterSpacing: { type: 'number' },
77
+ smallCaps: { type: 'boolean' },
78
+ },
79
+ };
80
+ const spacerSchema = {
81
+ type: 'object',
82
+ required: ['type', 'height'],
83
+ properties: {
84
+ type: { type: 'string', const: 'spacer' },
85
+ height: { type: 'number', description: 'Height in pt' },
86
+ },
87
+ };
88
+ const hrSchema = {
89
+ type: 'object',
90
+ required: ['type'],
91
+ properties: {
92
+ type: { type: 'string', const: 'hr' },
93
+ thickness: { type: 'number' },
94
+ color: colorSchema,
95
+ spaceBefore: spaceSchema,
96
+ spaceAfter: spaceSchema,
97
+ },
98
+ };
99
+ const pageBreakSchema = {
100
+ type: 'object',
101
+ required: ['type'],
102
+ properties: {
103
+ type: { type: 'string', const: 'page-break' },
104
+ },
105
+ };
106
+ const imageSchema = {
107
+ type: 'object',
108
+ required: ['type', 'src'],
109
+ properties: {
110
+ type: { type: 'string', const: 'image' },
111
+ src: { type: 'string', description: 'Absolute file path or URL' },
112
+ format: { type: 'string', enum: ['png', 'jpg', 'auto'] },
113
+ width: { type: 'number' },
114
+ height: { type: 'number' },
115
+ align: alignNoJustify,
116
+ spaceAfter: spaceSchema,
117
+ spaceBefore: spaceSchema,
118
+ float: { type: 'string', enum: ['left', 'right'] },
119
+ floatText: { type: 'string' },
120
+ },
121
+ };
122
+ const svgSchema = {
123
+ type: 'object',
124
+ required: ['type'],
125
+ properties: {
126
+ type: { type: 'string', const: 'svg' },
127
+ svg: { type: 'string', description: 'Inline SVG markup string' },
128
+ src: { type: 'string', description: 'Absolute path or https:// URL to an SVG file' },
129
+ width: { type: 'number' },
130
+ height: { type: 'number' },
131
+ align: alignNoJustify,
132
+ spaceBefore: spaceSchema,
133
+ spaceAfter: spaceSchema,
134
+ },
135
+ };
136
+ const tableSchema = {
137
+ type: 'object',
138
+ required: ['type', 'columns', 'rows'],
139
+ properties: {
140
+ type: { type: 'string', const: 'table' },
141
+ columns: {
142
+ type: 'array',
143
+ items: {
144
+ type: 'object',
145
+ required: ['width'],
146
+ properties: {
147
+ width: { oneOf: [{ type: 'number' }, { type: 'string', description: "Fraction e.g. '2*', '*', or 'auto'" }] },
148
+ align: alignNoJustify,
149
+ },
150
+ },
151
+ },
152
+ rows: {
153
+ type: 'array',
154
+ items: {
155
+ type: 'object',
156
+ required: ['cells'],
157
+ properties: {
158
+ cells: {
159
+ type: 'array',
160
+ items: {
161
+ type: 'object',
162
+ required: ['text'],
163
+ properties: {
164
+ text: { type: 'string' },
165
+ align: alignNoJustify,
166
+ fontWeight: fontWeightSchema,
167
+ color: colorSchema,
168
+ bgColor: colorSchema,
169
+ colspan: { type: 'number' },
170
+ rowspan: { type: 'number' },
171
+ },
172
+ },
173
+ },
174
+ isHeader: { type: 'boolean' },
175
+ },
176
+ },
177
+ },
178
+ borderColor: colorSchema,
179
+ borderWidth: { type: 'number' },
180
+ headerBgColor: colorSchema,
181
+ fontSize: { type: 'number' },
182
+ spaceAfter: spaceSchema,
183
+ spaceBefore: spaceSchema,
184
+ },
185
+ };
186
+ const listSchema = {
187
+ type: 'object',
188
+ required: ['type', 'style', 'items'],
189
+ properties: {
190
+ type: { type: 'string', const: 'list' },
191
+ style: { type: 'string', enum: ['ordered', 'unordered'] },
192
+ items: {
193
+ type: 'array',
194
+ items: {
195
+ type: 'object',
196
+ required: ['text'],
197
+ properties: {
198
+ text: { type: 'string' },
199
+ fontWeight: fontWeightSchema,
200
+ items: { type: 'array', description: 'Nested list items (up to 2 levels)' },
201
+ },
202
+ },
203
+ },
204
+ marker: { type: 'string' },
205
+ indent: { type: 'number' },
206
+ fontSize: { type: 'number' },
207
+ color: colorSchema,
208
+ spaceAfter: spaceSchema,
209
+ spaceBefore: spaceSchema,
210
+ },
211
+ };
212
+ const blockquoteSchema = {
213
+ type: 'object',
214
+ required: ['type', 'text'],
215
+ properties: {
216
+ type: { type: 'string', const: 'blockquote' },
217
+ text: { type: 'string' },
218
+ dir: dirSchema,
219
+ borderColor: colorSchema,
220
+ borderWidth: { type: 'number' },
221
+ bgColor: colorSchema,
222
+ color: colorSchema,
223
+ fontFamily: { type: 'string' },
224
+ fontWeight: fontWeightSchema,
225
+ fontStyle: { type: 'string', enum: ['normal', 'italic'] },
226
+ fontSize: { type: 'number' },
227
+ align: alignSchema,
228
+ spaceBefore: spaceSchema,
229
+ spaceAfter: spaceSchema,
230
+ keepTogether: { type: 'boolean' },
231
+ },
232
+ };
233
+ const codeSchema = {
234
+ type: 'object',
235
+ required: ['type', 'text', 'fontFamily'],
236
+ properties: {
237
+ type: { type: 'string', const: 'code' },
238
+ text: { type: 'string' },
239
+ fontFamily: { type: 'string', description: 'Monospace font family (must be loaded in doc.fonts)' },
240
+ fontSize: { type: 'number' },
241
+ lineHeight: { type: 'number' },
242
+ bgColor: colorSchema,
243
+ color: colorSchema,
244
+ padding: { type: 'number' },
245
+ spaceAfter: spaceSchema,
246
+ spaceBefore: spaceSchema,
247
+ keepTogether: { type: 'boolean' },
248
+ language: { type: 'string', description: "e.g. 'javascript', 'typescript', 'python'" },
249
+ },
250
+ };
251
+ const calloutSchema = {
252
+ type: 'object',
253
+ required: ['type', 'content'],
254
+ properties: {
255
+ type: { type: 'string', const: 'callout' },
256
+ content: { type: 'string' },
257
+ style: { type: 'string', enum: ['info', 'warning', 'tip', 'note'] },
258
+ title: { type: 'string' },
259
+ backgroundColor: colorSchema,
260
+ borderColor: colorSchema,
261
+ color: colorSchema,
262
+ fontFamily: { type: 'string' },
263
+ fontSize: { type: 'number' },
264
+ spaceBefore: spaceSchema,
265
+ spaceAfter: spaceSchema,
266
+ keepTogether: { type: 'boolean' },
267
+ dir: dirSchema,
268
+ },
269
+ };
270
+ const inlineSpanSchema = {
271
+ type: 'object',
272
+ required: ['text'],
273
+ properties: {
274
+ text: { type: 'string' },
275
+ fontFamily: { type: 'string' },
276
+ fontWeight: fontWeightSchema,
277
+ fontStyle: { type: 'string', enum: ['normal', 'italic'] },
278
+ color: colorSchema,
279
+ fontSize: { type: 'number' },
280
+ underline: { type: 'boolean' },
281
+ strikethrough: { type: 'boolean' },
282
+ url: { type: 'string' },
283
+ href: { type: 'string' },
284
+ verticalAlign: { type: 'string', enum: ['superscript', 'subscript'] },
285
+ smallCaps: { type: 'boolean' },
286
+ letterSpacing: { type: 'number' },
287
+ footnoteRef: { type: 'string' },
288
+ },
289
+ };
290
+ const richParagraphSchema = {
291
+ type: 'object',
292
+ required: ['type', 'spans'],
293
+ properties: {
294
+ type: { type: 'string', const: 'rich-paragraph' },
295
+ spans: { type: 'array', items: inlineSpanSchema },
296
+ dir: dirSchema,
297
+ fontSize: { type: 'number' },
298
+ lineHeight: { type: 'number' },
299
+ align: alignSchema,
300
+ bgColor: colorSchema,
301
+ spaceBefore: spaceSchema,
302
+ spaceAfter: spaceSchema,
303
+ keepTogether: { type: 'boolean' },
304
+ letterSpacing: { type: 'number' },
305
+ smallCaps: { type: 'boolean' },
306
+ },
307
+ };
308
+ const tocSchema = {
309
+ type: 'object',
310
+ required: ['type'],
311
+ properties: {
312
+ type: { type: 'string', const: 'toc' },
313
+ title: { type: 'string' },
314
+ showTitle: { type: 'boolean' },
315
+ minLevel: { type: 'number', enum: [1, 2, 3, 4] },
316
+ maxLevel: { type: 'number', enum: [1, 2, 3, 4] },
317
+ fontSize: { type: 'number' },
318
+ fontFamily: { type: 'string' },
319
+ spaceBefore: spaceSchema,
320
+ spaceAfter: spaceSchema,
321
+ },
322
+ };
323
+ const footnoteDefSchema = {
324
+ type: 'object',
325
+ required: ['type', 'id', 'text'],
326
+ properties: {
327
+ type: { type: 'string', const: 'footnote-def' },
328
+ id: { type: 'string' },
329
+ text: { type: 'string' },
330
+ fontSize: { type: 'number' },
331
+ fontFamily: { type: 'string' },
332
+ spaceAfter: spaceSchema,
333
+ },
334
+ };
335
+ const qrCodeSchema = {
336
+ type: 'object',
337
+ required: ['type', 'data'],
338
+ properties: {
339
+ type: { type: 'string', const: 'qr-code' },
340
+ data: { type: 'string' },
341
+ size: { type: 'number' },
342
+ errorCorrectionLevel: { type: 'string', enum: ['L', 'M', 'Q', 'H'] },
343
+ foreground: colorSchema,
344
+ background: colorSchema,
345
+ align: alignNoJustify,
346
+ spaceBefore: spaceSchema,
347
+ spaceAfter: spaceSchema,
348
+ },
349
+ };
350
+ const barcodeSchema = {
351
+ type: 'object',
352
+ required: ['type', 'symbology', 'data'],
353
+ properties: {
354
+ type: { type: 'string', const: 'barcode' },
355
+ symbology: { type: 'string', description: "e.g. 'code128', 'ean13', 'qrcode'" },
356
+ data: { type: 'string' },
357
+ width: { type: 'number' },
358
+ height: { type: 'number' },
359
+ includeText: { type: 'boolean' },
360
+ align: alignNoJustify,
361
+ spaceBefore: spaceSchema,
362
+ spaceAfter: spaceSchema,
363
+ },
364
+ };
365
+ const commentSchema = {
366
+ type: 'object',
367
+ required: ['type', 'contents'],
368
+ properties: {
369
+ type: { type: 'string', const: 'comment' },
370
+ contents: { type: 'string' },
371
+ author: { type: 'string' },
372
+ color: colorSchema,
373
+ open: { type: 'boolean' },
374
+ spaceAfter: spaceSchema,
375
+ },
376
+ };
377
+ const formFieldSchema = {
378
+ type: 'object',
379
+ required: ['type', 'fieldType', 'name'],
380
+ properties: {
381
+ type: { type: 'string', const: 'form-field' },
382
+ fieldType: { type: 'string', enum: ['text', 'checkbox', 'radio', 'dropdown', 'button'] },
383
+ name: { type: 'string' },
384
+ label: { type: 'string' },
385
+ placeholder: { type: 'string' },
386
+ defaultValue: { type: 'string' },
387
+ multiline: { type: 'boolean' },
388
+ maxLength: { type: 'number' },
389
+ checked: { type: 'boolean' },
390
+ options: {
391
+ type: 'array',
392
+ items: {
393
+ type: 'object',
394
+ required: ['value', 'label'],
395
+ properties: {
396
+ value: { type: 'string' },
397
+ label: { type: 'string' },
398
+ },
399
+ },
400
+ },
401
+ width: { type: 'number' },
402
+ height: { type: 'number' },
403
+ fontSize: { type: 'number' },
404
+ spaceAfter: spaceSchema,
405
+ spaceBefore: spaceSchema,
406
+ },
407
+ };
408
+ // ─── Top-level document schema ────────────────────────────────────────────────
409
+ export const pdfDocumentSchema = {
410
+ $schema: 'https://json-schema.org/draft/2020-12',
411
+ title: 'PdfDocument',
412
+ description: 'Top-level descriptor for a pretext-pdf document.',
413
+ type: 'object',
414
+ required: ['content'],
415
+ properties: {
416
+ content: {
417
+ type: 'array',
418
+ description: 'Document content elements rendered top-to-bottom.',
419
+ items: {
420
+ anyOf: [
421
+ paragraphSchema,
422
+ headingSchema,
423
+ spacerSchema,
424
+ hrSchema,
425
+ pageBreakSchema,
426
+ imageSchema,
427
+ svgSchema,
428
+ tableSchema,
429
+ listSchema,
430
+ blockquoteSchema,
431
+ codeSchema,
432
+ calloutSchema,
433
+ richParagraphSchema,
434
+ tocSchema,
435
+ footnoteDefSchema,
436
+ qrCodeSchema,
437
+ barcodeSchema,
438
+ commentSchema,
439
+ formFieldSchema,
440
+ ],
441
+ },
442
+ },
443
+ pageSize: {
444
+ description: 'Page size. Default: A4 (595×842 pt). Custom: [width, height] in pt.',
445
+ oneOf: [
446
+ {
447
+ type: 'string',
448
+ enum: ['A4', 'Letter', 'Legal', 'A3', 'A5', 'Tabloid'],
449
+ },
450
+ {
451
+ type: 'array',
452
+ items: { type: 'number' },
453
+ minItems: 2,
454
+ maxItems: 2,
455
+ description: '[width, height] in points',
456
+ },
457
+ ],
458
+ },
459
+ margins: {
460
+ type: 'object',
461
+ description: 'Page margins in pt. Default: all 72pt (1 inch).',
462
+ properties: {
463
+ top: { type: 'number' },
464
+ bottom: { type: 'number' },
465
+ left: { type: 'number' },
466
+ right: { type: 'number' },
467
+ },
468
+ },
469
+ defaultFont: {
470
+ type: 'string',
471
+ description: 'Default font family for body text. Default: Inter',
472
+ },
473
+ defaultFontSize: {
474
+ type: 'number',
475
+ description: 'Default font size in pt. Default: 12',
476
+ },
477
+ defaultLineHeight: {
478
+ type: 'number',
479
+ description: 'Default line height in pt. Default: fontSize * 1.5',
480
+ },
481
+ fonts: {
482
+ type: 'array',
483
+ description: 'Custom fonts to load and embed.',
484
+ items: {
485
+ type: 'object',
486
+ required: ['family', 'src'],
487
+ properties: {
488
+ family: { type: 'string' },
489
+ weight: fontWeightSchema,
490
+ style: { type: 'string', enum: ['normal', 'italic'] },
491
+ src: { type: 'string', description: 'Absolute file path to a TTF/OTF font file' },
492
+ },
493
+ },
494
+ },
495
+ header: {
496
+ type: 'object',
497
+ description: 'Header rendered at top of every page. Supports {{pageNumber}} and {{totalPages}}.',
498
+ required: ['text'],
499
+ properties: {
500
+ text: { type: 'string', description: 'Use {{pageNumber}} and {{totalPages}} as tokens' },
501
+ fontSize: { type: 'number' },
502
+ align: alignNoJustify,
503
+ fontFamily: { type: 'string' },
504
+ fontWeight: fontWeightSchema,
505
+ color: colorSchema,
506
+ },
507
+ },
508
+ footer: {
509
+ type: 'object',
510
+ description: 'Footer rendered at bottom of every page. Supports {{pageNumber}} and {{totalPages}}.',
511
+ required: ['text'],
512
+ properties: {
513
+ text: { type: 'string', description: 'Use {{pageNumber}} and {{totalPages}} as tokens' },
514
+ fontSize: { type: 'number' },
515
+ align: alignNoJustify,
516
+ fontFamily: { type: 'string' },
517
+ fontWeight: fontWeightSchema,
518
+ color: colorSchema,
519
+ },
520
+ },
521
+ watermark: {
522
+ type: 'object',
523
+ description: 'Watermark overlay rendered on every page behind content.',
524
+ properties: {
525
+ text: { type: 'string' },
526
+ fontFamily: { type: 'string' },
527
+ fontWeight: fontWeightSchema,
528
+ fontSize: { type: 'number' },
529
+ color: colorSchema,
530
+ opacity: { type: 'number', minimum: 0, maximum: 1 },
531
+ rotation: { type: 'number', description: 'Rotation in degrees (counter-clockwise). Default: -45' },
532
+ },
533
+ },
534
+ encryption: {
535
+ type: 'object',
536
+ description: 'Password protection and permission control for the output PDF.',
537
+ properties: {
538
+ userPassword: { type: 'string', description: 'Password required to open the document.' },
539
+ ownerPassword: { type: 'string', description: 'Password for full unrestricted access.' },
540
+ permissions: {
541
+ type: 'object',
542
+ properties: {
543
+ printing: { type: 'boolean' },
544
+ copying: { type: 'boolean' },
545
+ modifying: { type: 'boolean' },
546
+ annotating: { type: 'boolean' },
547
+ },
548
+ },
549
+ },
550
+ },
551
+ metadata: {
552
+ type: 'object',
553
+ description: 'PDF document metadata written into file properties.',
554
+ properties: {
555
+ title: { type: 'string' },
556
+ author: { type: 'string' },
557
+ subject: { type: 'string' },
558
+ keywords: { type: 'array', items: { type: 'string' } },
559
+ creator: { type: 'string' },
560
+ language: { type: 'string', description: "BCP47 language tag e.g. 'en-US', 'hi', 'ar'" },
561
+ producer: { type: 'string' },
562
+ },
563
+ },
564
+ defaultParagraphStyle: {
565
+ type: 'object',
566
+ description: 'Default style applied to every paragraph and heading that does not set the field explicitly.',
567
+ properties: {
568
+ fontSize: { type: 'number' },
569
+ lineHeight: { type: 'number' },
570
+ fontFamily: { type: 'string' },
571
+ fontWeight: fontWeightSchema,
572
+ color: colorSchema,
573
+ align: alignSchema,
574
+ letterSpacing: { type: 'number' },
575
+ spaceBefore: spaceSchema,
576
+ spaceAfter: spaceSchema,
577
+ },
578
+ },
579
+ bookmarks: {
580
+ description: 'PDF bookmark outline. Set to false to disable, or provide config object.',
581
+ oneOf: [
582
+ { type: 'boolean', const: false },
583
+ {
584
+ type: 'object',
585
+ properties: {
586
+ minLevel: { type: 'number', enum: [1, 2, 3, 4] },
587
+ maxLevel: { type: 'number', enum: [1, 2, 3, 4] },
588
+ },
589
+ },
590
+ ],
591
+ },
592
+ hyphenation: {
593
+ type: 'object',
594
+ description: 'Automatic word hyphenation. Requires installing the matching hyphenation.XX npm package.',
595
+ required: ['language'],
596
+ properties: {
597
+ language: { type: 'string', description: "Language code e.g. 'en-us', 'de', 'fr'" },
598
+ minWordLength: { type: 'number' },
599
+ leftMin: { type: 'number' },
600
+ rightMin: { type: 'number' },
601
+ },
602
+ },
603
+ signature: {
604
+ type: 'object',
605
+ description: 'Visual signature placeholder drawn on a specified page.',
606
+ properties: {
607
+ signerName: { type: 'string' },
608
+ reason: { type: 'string' },
609
+ location: { type: 'string' },
610
+ x: { type: 'number' },
611
+ y: { type: 'number' },
612
+ width: { type: 'number' },
613
+ height: { type: 'number' },
614
+ page: { type: 'number', description: 'Page index (0-based). Default: last page.' },
615
+ borderColor: colorSchema,
616
+ fontSize: { type: 'number' },
617
+ invisible: { type: 'boolean' },
618
+ },
619
+ },
620
+ flattenForms: {
621
+ type: 'boolean',
622
+ description: 'If true, flatten all form fields into static content. Default: false',
623
+ },
624
+ allowedFileDirs: {
625
+ type: 'array',
626
+ items: { type: 'string' },
627
+ description: 'Restrict filesystem access to these absolute directory paths.',
628
+ },
629
+ },
630
+ };
631
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}