pretext-pdf 1.0.1 → 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,1337 @@
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
+ export declare const pdfDocumentSchema: {
12
+ readonly $schema: "https://json-schema.org/draft/2020-12";
13
+ readonly title: "PdfDocument";
14
+ readonly description: "Top-level descriptor for a pretext-pdf document.";
15
+ readonly type: "object";
16
+ readonly required: readonly ["content"];
17
+ readonly properties: {
18
+ readonly content: {
19
+ readonly type: "array";
20
+ readonly description: "Document content elements rendered top-to-bottom.";
21
+ readonly items: {
22
+ readonly anyOf: readonly [{
23
+ readonly type: "object";
24
+ readonly required: readonly ["type", "text"];
25
+ readonly properties: {
26
+ readonly type: {
27
+ readonly type: "string";
28
+ readonly const: "paragraph";
29
+ };
30
+ readonly text: {
31
+ readonly type: "string";
32
+ };
33
+ readonly dir: {
34
+ readonly type: "string";
35
+ readonly enum: readonly ["ltr", "rtl", "auto"];
36
+ };
37
+ readonly fontSize: {
38
+ readonly type: "number";
39
+ };
40
+ readonly lineHeight: {
41
+ readonly type: "number";
42
+ };
43
+ readonly fontFamily: {
44
+ readonly type: "string";
45
+ };
46
+ readonly fontWeight: {
47
+ readonly type: "number";
48
+ readonly enum: readonly [400, 700];
49
+ };
50
+ readonly color: {
51
+ readonly type: "string";
52
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
53
+ readonly description: "6-digit hex color e.g. #FF0000";
54
+ };
55
+ readonly align: {
56
+ readonly type: "string";
57
+ readonly enum: readonly ["left", "center", "right", "justify"];
58
+ };
59
+ readonly bgColor: {
60
+ readonly type: "string";
61
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
62
+ readonly description: "6-digit hex color e.g. #FF0000";
63
+ };
64
+ readonly spaceAfter: {
65
+ readonly type: "number";
66
+ readonly description: "Space in points (pt)";
67
+ };
68
+ readonly spaceBefore: {
69
+ readonly type: "number";
70
+ readonly description: "Space in points (pt)";
71
+ };
72
+ readonly keepTogether: {
73
+ readonly type: "boolean";
74
+ };
75
+ readonly underline: {
76
+ readonly type: "boolean";
77
+ };
78
+ readonly strikethrough: {
79
+ readonly type: "boolean";
80
+ };
81
+ readonly url: {
82
+ readonly type: "string";
83
+ readonly format: "uri";
84
+ };
85
+ readonly letterSpacing: {
86
+ readonly type: "number";
87
+ };
88
+ readonly smallCaps: {
89
+ readonly type: "boolean";
90
+ };
91
+ readonly annotation: {
92
+ readonly type: "object";
93
+ readonly required: readonly ["contents"];
94
+ readonly properties: {
95
+ readonly contents: {
96
+ readonly type: "string";
97
+ };
98
+ readonly author: {
99
+ readonly type: "string";
100
+ };
101
+ readonly color: {
102
+ readonly type: "string";
103
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
104
+ readonly description: "6-digit hex color e.g. #FF0000";
105
+ };
106
+ readonly open: {
107
+ readonly type: "boolean";
108
+ };
109
+ };
110
+ };
111
+ };
112
+ }, {
113
+ readonly type: "object";
114
+ readonly required: readonly ["type", "level", "text"];
115
+ readonly properties: {
116
+ readonly type: {
117
+ readonly type: "string";
118
+ readonly const: "heading";
119
+ };
120
+ readonly level: {
121
+ readonly type: "number";
122
+ readonly enum: readonly [1, 2, 3, 4];
123
+ };
124
+ readonly text: {
125
+ readonly type: "string";
126
+ };
127
+ readonly dir: {
128
+ readonly type: "string";
129
+ readonly enum: readonly ["ltr", "rtl", "auto"];
130
+ };
131
+ readonly fontFamily: {
132
+ readonly type: "string";
133
+ };
134
+ readonly fontWeight: {
135
+ readonly type: "number";
136
+ readonly enum: readonly [400, 700];
137
+ };
138
+ readonly fontSize: {
139
+ readonly type: "number";
140
+ };
141
+ readonly lineHeight: {
142
+ readonly type: "number";
143
+ };
144
+ readonly align: {
145
+ readonly type: "string";
146
+ readonly enum: readonly ["left", "center", "right", "justify"];
147
+ };
148
+ readonly color: {
149
+ readonly type: "string";
150
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
151
+ readonly description: "6-digit hex color e.g. #FF0000";
152
+ };
153
+ readonly bgColor: {
154
+ readonly type: "string";
155
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
156
+ readonly description: "6-digit hex color e.g. #FF0000";
157
+ };
158
+ readonly spaceBefore: {
159
+ readonly type: "number";
160
+ readonly description: "Space in points (pt)";
161
+ };
162
+ readonly spaceAfter: {
163
+ readonly type: "number";
164
+ readonly description: "Space in points (pt)";
165
+ };
166
+ readonly keepTogether: {
167
+ readonly type: "boolean";
168
+ };
169
+ readonly underline: {
170
+ readonly type: "boolean";
171
+ };
172
+ readonly strikethrough: {
173
+ readonly type: "boolean";
174
+ };
175
+ readonly bookmark: {
176
+ readonly type: "boolean";
177
+ readonly const: false;
178
+ };
179
+ readonly anchor: {
180
+ readonly type: "string";
181
+ };
182
+ readonly url: {
183
+ readonly type: "string";
184
+ readonly format: "uri";
185
+ };
186
+ readonly letterSpacing: {
187
+ readonly type: "number";
188
+ };
189
+ readonly smallCaps: {
190
+ readonly type: "boolean";
191
+ };
192
+ };
193
+ }, {
194
+ readonly type: "object";
195
+ readonly required: readonly ["type", "height"];
196
+ readonly properties: {
197
+ readonly type: {
198
+ readonly type: "string";
199
+ readonly const: "spacer";
200
+ };
201
+ readonly height: {
202
+ readonly type: "number";
203
+ readonly description: "Height in pt";
204
+ };
205
+ };
206
+ }, {
207
+ readonly type: "object";
208
+ readonly required: readonly ["type"];
209
+ readonly properties: {
210
+ readonly type: {
211
+ readonly type: "string";
212
+ readonly const: "hr";
213
+ };
214
+ readonly thickness: {
215
+ readonly type: "number";
216
+ };
217
+ readonly color: {
218
+ readonly type: "string";
219
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
220
+ readonly description: "6-digit hex color e.g. #FF0000";
221
+ };
222
+ readonly spaceBefore: {
223
+ readonly type: "number";
224
+ readonly description: "Space in points (pt)";
225
+ };
226
+ readonly spaceAfter: {
227
+ readonly type: "number";
228
+ readonly description: "Space in points (pt)";
229
+ };
230
+ };
231
+ }, {
232
+ readonly type: "object";
233
+ readonly required: readonly ["type"];
234
+ readonly properties: {
235
+ readonly type: {
236
+ readonly type: "string";
237
+ readonly const: "page-break";
238
+ };
239
+ };
240
+ }, {
241
+ readonly type: "object";
242
+ readonly required: readonly ["type", "src"];
243
+ readonly properties: {
244
+ readonly type: {
245
+ readonly type: "string";
246
+ readonly const: "image";
247
+ };
248
+ readonly src: {
249
+ readonly type: "string";
250
+ readonly description: "Absolute file path or URL";
251
+ };
252
+ readonly format: {
253
+ readonly type: "string";
254
+ readonly enum: readonly ["png", "jpg", "auto"];
255
+ };
256
+ readonly width: {
257
+ readonly type: "number";
258
+ };
259
+ readonly height: {
260
+ readonly type: "number";
261
+ };
262
+ readonly align: {
263
+ readonly type: "string";
264
+ readonly enum: readonly ["left", "center", "right"];
265
+ };
266
+ readonly spaceAfter: {
267
+ readonly type: "number";
268
+ readonly description: "Space in points (pt)";
269
+ };
270
+ readonly spaceBefore: {
271
+ readonly type: "number";
272
+ readonly description: "Space in points (pt)";
273
+ };
274
+ readonly float: {
275
+ readonly type: "string";
276
+ readonly enum: readonly ["left", "right"];
277
+ };
278
+ readonly floatText: {
279
+ readonly type: "string";
280
+ };
281
+ };
282
+ }, {
283
+ readonly type: "object";
284
+ readonly required: readonly ["type"];
285
+ readonly properties: {
286
+ readonly type: {
287
+ readonly type: "string";
288
+ readonly const: "svg";
289
+ };
290
+ readonly svg: {
291
+ readonly type: "string";
292
+ readonly description: "Inline SVG markup string";
293
+ };
294
+ readonly src: {
295
+ readonly type: "string";
296
+ readonly description: "Absolute path or https:// URL to an SVG file";
297
+ };
298
+ readonly width: {
299
+ readonly type: "number";
300
+ };
301
+ readonly height: {
302
+ readonly type: "number";
303
+ };
304
+ readonly align: {
305
+ readonly type: "string";
306
+ readonly enum: readonly ["left", "center", "right"];
307
+ };
308
+ readonly spaceBefore: {
309
+ readonly type: "number";
310
+ readonly description: "Space in points (pt)";
311
+ };
312
+ readonly spaceAfter: {
313
+ readonly type: "number";
314
+ readonly description: "Space in points (pt)";
315
+ };
316
+ };
317
+ }, {
318
+ readonly type: "object";
319
+ readonly required: readonly ["type", "columns", "rows"];
320
+ readonly properties: {
321
+ readonly type: {
322
+ readonly type: "string";
323
+ readonly const: "table";
324
+ };
325
+ readonly columns: {
326
+ readonly type: "array";
327
+ readonly items: {
328
+ readonly type: "object";
329
+ readonly required: readonly ["width"];
330
+ readonly properties: {
331
+ readonly width: {
332
+ readonly oneOf: readonly [{
333
+ readonly type: "number";
334
+ }, {
335
+ readonly type: "string";
336
+ readonly description: "Fraction e.g. '2*', '*', or 'auto'";
337
+ }];
338
+ };
339
+ readonly align: {
340
+ readonly type: "string";
341
+ readonly enum: readonly ["left", "center", "right"];
342
+ };
343
+ };
344
+ };
345
+ };
346
+ readonly rows: {
347
+ readonly type: "array";
348
+ readonly items: {
349
+ readonly type: "object";
350
+ readonly required: readonly ["cells"];
351
+ readonly properties: {
352
+ readonly cells: {
353
+ readonly type: "array";
354
+ readonly items: {
355
+ readonly type: "object";
356
+ readonly required: readonly ["text"];
357
+ readonly properties: {
358
+ readonly text: {
359
+ readonly type: "string";
360
+ };
361
+ readonly align: {
362
+ readonly type: "string";
363
+ readonly enum: readonly ["left", "center", "right"];
364
+ };
365
+ readonly fontWeight: {
366
+ readonly type: "number";
367
+ readonly enum: readonly [400, 700];
368
+ };
369
+ readonly color: {
370
+ readonly type: "string";
371
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
372
+ readonly description: "6-digit hex color e.g. #FF0000";
373
+ };
374
+ readonly bgColor: {
375
+ readonly type: "string";
376
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
377
+ readonly description: "6-digit hex color e.g. #FF0000";
378
+ };
379
+ readonly colspan: {
380
+ readonly type: "number";
381
+ };
382
+ readonly rowspan: {
383
+ readonly type: "number";
384
+ };
385
+ };
386
+ };
387
+ };
388
+ readonly isHeader: {
389
+ readonly type: "boolean";
390
+ };
391
+ };
392
+ };
393
+ };
394
+ readonly borderColor: {
395
+ readonly type: "string";
396
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
397
+ readonly description: "6-digit hex color e.g. #FF0000";
398
+ };
399
+ readonly borderWidth: {
400
+ readonly type: "number";
401
+ };
402
+ readonly headerBgColor: {
403
+ readonly type: "string";
404
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
405
+ readonly description: "6-digit hex color e.g. #FF0000";
406
+ };
407
+ readonly fontSize: {
408
+ readonly type: "number";
409
+ };
410
+ readonly spaceAfter: {
411
+ readonly type: "number";
412
+ readonly description: "Space in points (pt)";
413
+ };
414
+ readonly spaceBefore: {
415
+ readonly type: "number";
416
+ readonly description: "Space in points (pt)";
417
+ };
418
+ };
419
+ }, {
420
+ readonly type: "object";
421
+ readonly required: readonly ["type", "style", "items"];
422
+ readonly properties: {
423
+ readonly type: {
424
+ readonly type: "string";
425
+ readonly const: "list";
426
+ };
427
+ readonly style: {
428
+ readonly type: "string";
429
+ readonly enum: readonly ["ordered", "unordered"];
430
+ };
431
+ readonly items: {
432
+ readonly type: "array";
433
+ readonly items: {
434
+ readonly type: "object";
435
+ readonly required: readonly ["text"];
436
+ readonly properties: {
437
+ readonly text: {
438
+ readonly type: "string";
439
+ };
440
+ readonly fontWeight: {
441
+ readonly type: "number";
442
+ readonly enum: readonly [400, 700];
443
+ };
444
+ readonly items: {
445
+ readonly type: "array";
446
+ readonly description: "Nested list items (up to 2 levels)";
447
+ };
448
+ };
449
+ };
450
+ };
451
+ readonly marker: {
452
+ readonly type: "string";
453
+ };
454
+ readonly indent: {
455
+ readonly type: "number";
456
+ };
457
+ readonly fontSize: {
458
+ readonly type: "number";
459
+ };
460
+ readonly color: {
461
+ readonly type: "string";
462
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
463
+ readonly description: "6-digit hex color e.g. #FF0000";
464
+ };
465
+ readonly spaceAfter: {
466
+ readonly type: "number";
467
+ readonly description: "Space in points (pt)";
468
+ };
469
+ readonly spaceBefore: {
470
+ readonly type: "number";
471
+ readonly description: "Space in points (pt)";
472
+ };
473
+ };
474
+ }, {
475
+ readonly type: "object";
476
+ readonly required: readonly ["type", "text"];
477
+ readonly properties: {
478
+ readonly type: {
479
+ readonly type: "string";
480
+ readonly const: "blockquote";
481
+ };
482
+ readonly text: {
483
+ readonly type: "string";
484
+ };
485
+ readonly dir: {
486
+ readonly type: "string";
487
+ readonly enum: readonly ["ltr", "rtl", "auto"];
488
+ };
489
+ readonly borderColor: {
490
+ readonly type: "string";
491
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
492
+ readonly description: "6-digit hex color e.g. #FF0000";
493
+ };
494
+ readonly borderWidth: {
495
+ readonly type: "number";
496
+ };
497
+ readonly bgColor: {
498
+ readonly type: "string";
499
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
500
+ readonly description: "6-digit hex color e.g. #FF0000";
501
+ };
502
+ readonly color: {
503
+ readonly type: "string";
504
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
505
+ readonly description: "6-digit hex color e.g. #FF0000";
506
+ };
507
+ readonly fontFamily: {
508
+ readonly type: "string";
509
+ };
510
+ readonly fontWeight: {
511
+ readonly type: "number";
512
+ readonly enum: readonly [400, 700];
513
+ };
514
+ readonly fontStyle: {
515
+ readonly type: "string";
516
+ readonly enum: readonly ["normal", "italic"];
517
+ };
518
+ readonly fontSize: {
519
+ readonly type: "number";
520
+ };
521
+ readonly align: {
522
+ readonly type: "string";
523
+ readonly enum: readonly ["left", "center", "right", "justify"];
524
+ };
525
+ readonly spaceBefore: {
526
+ readonly type: "number";
527
+ readonly description: "Space in points (pt)";
528
+ };
529
+ readonly spaceAfter: {
530
+ readonly type: "number";
531
+ readonly description: "Space in points (pt)";
532
+ };
533
+ readonly keepTogether: {
534
+ readonly type: "boolean";
535
+ };
536
+ };
537
+ }, {
538
+ readonly type: "object";
539
+ readonly required: readonly ["type", "text", "fontFamily"];
540
+ readonly properties: {
541
+ readonly type: {
542
+ readonly type: "string";
543
+ readonly const: "code";
544
+ };
545
+ readonly text: {
546
+ readonly type: "string";
547
+ };
548
+ readonly fontFamily: {
549
+ readonly type: "string";
550
+ readonly description: "Monospace font family (must be loaded in doc.fonts)";
551
+ };
552
+ readonly fontSize: {
553
+ readonly type: "number";
554
+ };
555
+ readonly lineHeight: {
556
+ readonly type: "number";
557
+ };
558
+ readonly bgColor: {
559
+ readonly type: "string";
560
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
561
+ readonly description: "6-digit hex color e.g. #FF0000";
562
+ };
563
+ readonly color: {
564
+ readonly type: "string";
565
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
566
+ readonly description: "6-digit hex color e.g. #FF0000";
567
+ };
568
+ readonly padding: {
569
+ readonly type: "number";
570
+ };
571
+ readonly spaceAfter: {
572
+ readonly type: "number";
573
+ readonly description: "Space in points (pt)";
574
+ };
575
+ readonly spaceBefore: {
576
+ readonly type: "number";
577
+ readonly description: "Space in points (pt)";
578
+ };
579
+ readonly keepTogether: {
580
+ readonly type: "boolean";
581
+ };
582
+ readonly language: {
583
+ readonly type: "string";
584
+ readonly description: "e.g. 'javascript', 'typescript', 'python'";
585
+ };
586
+ };
587
+ }, {
588
+ readonly type: "object";
589
+ readonly required: readonly ["type", "content"];
590
+ readonly properties: {
591
+ readonly type: {
592
+ readonly type: "string";
593
+ readonly const: "callout";
594
+ };
595
+ readonly content: {
596
+ readonly type: "string";
597
+ };
598
+ readonly style: {
599
+ readonly type: "string";
600
+ readonly enum: readonly ["info", "warning", "tip", "note"];
601
+ };
602
+ readonly title: {
603
+ readonly type: "string";
604
+ };
605
+ readonly backgroundColor: {
606
+ readonly type: "string";
607
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
608
+ readonly description: "6-digit hex color e.g. #FF0000";
609
+ };
610
+ readonly borderColor: {
611
+ readonly type: "string";
612
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
613
+ readonly description: "6-digit hex color e.g. #FF0000";
614
+ };
615
+ readonly color: {
616
+ readonly type: "string";
617
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
618
+ readonly description: "6-digit hex color e.g. #FF0000";
619
+ };
620
+ readonly fontFamily: {
621
+ readonly type: "string";
622
+ };
623
+ readonly fontSize: {
624
+ readonly type: "number";
625
+ };
626
+ readonly spaceBefore: {
627
+ readonly type: "number";
628
+ readonly description: "Space in points (pt)";
629
+ };
630
+ readonly spaceAfter: {
631
+ readonly type: "number";
632
+ readonly description: "Space in points (pt)";
633
+ };
634
+ readonly keepTogether: {
635
+ readonly type: "boolean";
636
+ };
637
+ readonly dir: {
638
+ readonly type: "string";
639
+ readonly enum: readonly ["ltr", "rtl", "auto"];
640
+ };
641
+ };
642
+ }, {
643
+ readonly type: "object";
644
+ readonly required: readonly ["type", "spans"];
645
+ readonly properties: {
646
+ readonly type: {
647
+ readonly type: "string";
648
+ readonly const: "rich-paragraph";
649
+ };
650
+ readonly spans: {
651
+ readonly type: "array";
652
+ readonly items: {
653
+ readonly type: "object";
654
+ readonly required: readonly ["text"];
655
+ readonly properties: {
656
+ readonly text: {
657
+ readonly type: "string";
658
+ };
659
+ readonly fontFamily: {
660
+ readonly type: "string";
661
+ };
662
+ readonly fontWeight: {
663
+ readonly type: "number";
664
+ readonly enum: readonly [400, 700];
665
+ };
666
+ readonly fontStyle: {
667
+ readonly type: "string";
668
+ readonly enum: readonly ["normal", "italic"];
669
+ };
670
+ readonly color: {
671
+ readonly type: "string";
672
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
673
+ readonly description: "6-digit hex color e.g. #FF0000";
674
+ };
675
+ readonly fontSize: {
676
+ readonly type: "number";
677
+ };
678
+ readonly underline: {
679
+ readonly type: "boolean";
680
+ };
681
+ readonly strikethrough: {
682
+ readonly type: "boolean";
683
+ };
684
+ readonly url: {
685
+ readonly type: "string";
686
+ };
687
+ readonly href: {
688
+ readonly type: "string";
689
+ };
690
+ readonly verticalAlign: {
691
+ readonly type: "string";
692
+ readonly enum: readonly ["superscript", "subscript"];
693
+ };
694
+ readonly smallCaps: {
695
+ readonly type: "boolean";
696
+ };
697
+ readonly letterSpacing: {
698
+ readonly type: "number";
699
+ };
700
+ readonly footnoteRef: {
701
+ readonly type: "string";
702
+ };
703
+ };
704
+ };
705
+ };
706
+ readonly dir: {
707
+ readonly type: "string";
708
+ readonly enum: readonly ["ltr", "rtl", "auto"];
709
+ };
710
+ readonly fontSize: {
711
+ readonly type: "number";
712
+ };
713
+ readonly lineHeight: {
714
+ readonly type: "number";
715
+ };
716
+ readonly align: {
717
+ readonly type: "string";
718
+ readonly enum: readonly ["left", "center", "right", "justify"];
719
+ };
720
+ readonly bgColor: {
721
+ readonly type: "string";
722
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
723
+ readonly description: "6-digit hex color e.g. #FF0000";
724
+ };
725
+ readonly spaceBefore: {
726
+ readonly type: "number";
727
+ readonly description: "Space in points (pt)";
728
+ };
729
+ readonly spaceAfter: {
730
+ readonly type: "number";
731
+ readonly description: "Space in points (pt)";
732
+ };
733
+ readonly keepTogether: {
734
+ readonly type: "boolean";
735
+ };
736
+ readonly letterSpacing: {
737
+ readonly type: "number";
738
+ };
739
+ readonly smallCaps: {
740
+ readonly type: "boolean";
741
+ };
742
+ };
743
+ }, {
744
+ readonly type: "object";
745
+ readonly required: readonly ["type"];
746
+ readonly properties: {
747
+ readonly type: {
748
+ readonly type: "string";
749
+ readonly const: "toc";
750
+ };
751
+ readonly title: {
752
+ readonly type: "string";
753
+ };
754
+ readonly showTitle: {
755
+ readonly type: "boolean";
756
+ };
757
+ readonly minLevel: {
758
+ readonly type: "number";
759
+ readonly enum: readonly [1, 2, 3, 4];
760
+ };
761
+ readonly maxLevel: {
762
+ readonly type: "number";
763
+ readonly enum: readonly [1, 2, 3, 4];
764
+ };
765
+ readonly fontSize: {
766
+ readonly type: "number";
767
+ };
768
+ readonly fontFamily: {
769
+ readonly type: "string";
770
+ };
771
+ readonly spaceBefore: {
772
+ readonly type: "number";
773
+ readonly description: "Space in points (pt)";
774
+ };
775
+ readonly spaceAfter: {
776
+ readonly type: "number";
777
+ readonly description: "Space in points (pt)";
778
+ };
779
+ };
780
+ }, {
781
+ readonly type: "object";
782
+ readonly required: readonly ["type", "id", "text"];
783
+ readonly properties: {
784
+ readonly type: {
785
+ readonly type: "string";
786
+ readonly const: "footnote-def";
787
+ };
788
+ readonly id: {
789
+ readonly type: "string";
790
+ };
791
+ readonly text: {
792
+ readonly type: "string";
793
+ };
794
+ readonly fontSize: {
795
+ readonly type: "number";
796
+ };
797
+ readonly fontFamily: {
798
+ readonly type: "string";
799
+ };
800
+ readonly spaceAfter: {
801
+ readonly type: "number";
802
+ readonly description: "Space in points (pt)";
803
+ };
804
+ };
805
+ }, {
806
+ readonly type: "object";
807
+ readonly required: readonly ["type", "data"];
808
+ readonly properties: {
809
+ readonly type: {
810
+ readonly type: "string";
811
+ readonly const: "qr-code";
812
+ };
813
+ readonly data: {
814
+ readonly type: "string";
815
+ };
816
+ readonly size: {
817
+ readonly type: "number";
818
+ };
819
+ readonly errorCorrectionLevel: {
820
+ readonly type: "string";
821
+ readonly enum: readonly ["L", "M", "Q", "H"];
822
+ };
823
+ readonly foreground: {
824
+ readonly type: "string";
825
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
826
+ readonly description: "6-digit hex color e.g. #FF0000";
827
+ };
828
+ readonly background: {
829
+ readonly type: "string";
830
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
831
+ readonly description: "6-digit hex color e.g. #FF0000";
832
+ };
833
+ readonly align: {
834
+ readonly type: "string";
835
+ readonly enum: readonly ["left", "center", "right"];
836
+ };
837
+ readonly spaceBefore: {
838
+ readonly type: "number";
839
+ readonly description: "Space in points (pt)";
840
+ };
841
+ readonly spaceAfter: {
842
+ readonly type: "number";
843
+ readonly description: "Space in points (pt)";
844
+ };
845
+ };
846
+ }, {
847
+ readonly type: "object";
848
+ readonly required: readonly ["type", "symbology", "data"];
849
+ readonly properties: {
850
+ readonly type: {
851
+ readonly type: "string";
852
+ readonly const: "barcode";
853
+ };
854
+ readonly symbology: {
855
+ readonly type: "string";
856
+ readonly description: "e.g. 'code128', 'ean13', 'qrcode'";
857
+ };
858
+ readonly data: {
859
+ readonly type: "string";
860
+ };
861
+ readonly width: {
862
+ readonly type: "number";
863
+ };
864
+ readonly height: {
865
+ readonly type: "number";
866
+ };
867
+ readonly includeText: {
868
+ readonly type: "boolean";
869
+ };
870
+ readonly align: {
871
+ readonly type: "string";
872
+ readonly enum: readonly ["left", "center", "right"];
873
+ };
874
+ readonly spaceBefore: {
875
+ readonly type: "number";
876
+ readonly description: "Space in points (pt)";
877
+ };
878
+ readonly spaceAfter: {
879
+ readonly type: "number";
880
+ readonly description: "Space in points (pt)";
881
+ };
882
+ };
883
+ }, {
884
+ readonly type: "object";
885
+ readonly required: readonly ["type", "contents"];
886
+ readonly properties: {
887
+ readonly type: {
888
+ readonly type: "string";
889
+ readonly const: "comment";
890
+ };
891
+ readonly contents: {
892
+ readonly type: "string";
893
+ };
894
+ readonly author: {
895
+ readonly type: "string";
896
+ };
897
+ readonly color: {
898
+ readonly type: "string";
899
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
900
+ readonly description: "6-digit hex color e.g. #FF0000";
901
+ };
902
+ readonly open: {
903
+ readonly type: "boolean";
904
+ };
905
+ readonly spaceAfter: {
906
+ readonly type: "number";
907
+ readonly description: "Space in points (pt)";
908
+ };
909
+ };
910
+ }, {
911
+ readonly type: "object";
912
+ readonly required: readonly ["type", "fieldType", "name"];
913
+ readonly properties: {
914
+ readonly type: {
915
+ readonly type: "string";
916
+ readonly const: "form-field";
917
+ };
918
+ readonly fieldType: {
919
+ readonly type: "string";
920
+ readonly enum: readonly ["text", "checkbox", "radio", "dropdown", "button"];
921
+ };
922
+ readonly name: {
923
+ readonly type: "string";
924
+ };
925
+ readonly label: {
926
+ readonly type: "string";
927
+ };
928
+ readonly placeholder: {
929
+ readonly type: "string";
930
+ };
931
+ readonly defaultValue: {
932
+ readonly type: "string";
933
+ };
934
+ readonly multiline: {
935
+ readonly type: "boolean";
936
+ };
937
+ readonly maxLength: {
938
+ readonly type: "number";
939
+ };
940
+ readonly checked: {
941
+ readonly type: "boolean";
942
+ };
943
+ readonly options: {
944
+ readonly type: "array";
945
+ readonly items: {
946
+ readonly type: "object";
947
+ readonly required: readonly ["value", "label"];
948
+ readonly properties: {
949
+ readonly value: {
950
+ readonly type: "string";
951
+ };
952
+ readonly label: {
953
+ readonly type: "string";
954
+ };
955
+ };
956
+ };
957
+ };
958
+ readonly width: {
959
+ readonly type: "number";
960
+ };
961
+ readonly height: {
962
+ readonly type: "number";
963
+ };
964
+ readonly fontSize: {
965
+ readonly type: "number";
966
+ };
967
+ readonly spaceAfter: {
968
+ readonly type: "number";
969
+ readonly description: "Space in points (pt)";
970
+ };
971
+ readonly spaceBefore: {
972
+ readonly type: "number";
973
+ readonly description: "Space in points (pt)";
974
+ };
975
+ };
976
+ }];
977
+ };
978
+ };
979
+ readonly pageSize: {
980
+ readonly description: "Page size. Default: A4 (595×842 pt). Custom: [width, height] in pt.";
981
+ readonly oneOf: readonly [{
982
+ readonly type: "string";
983
+ readonly enum: readonly ["A4", "Letter", "Legal", "A3", "A5", "Tabloid"];
984
+ }, {
985
+ readonly type: "array";
986
+ readonly items: {
987
+ readonly type: "number";
988
+ };
989
+ readonly minItems: 2;
990
+ readonly maxItems: 2;
991
+ readonly description: "[width, height] in points";
992
+ }];
993
+ };
994
+ readonly margins: {
995
+ readonly type: "object";
996
+ readonly description: "Page margins in pt. Default: all 72pt (1 inch).";
997
+ readonly properties: {
998
+ readonly top: {
999
+ readonly type: "number";
1000
+ };
1001
+ readonly bottom: {
1002
+ readonly type: "number";
1003
+ };
1004
+ readonly left: {
1005
+ readonly type: "number";
1006
+ };
1007
+ readonly right: {
1008
+ readonly type: "number";
1009
+ };
1010
+ };
1011
+ };
1012
+ readonly defaultFont: {
1013
+ readonly type: "string";
1014
+ readonly description: "Default font family for body text. Default: Inter";
1015
+ };
1016
+ readonly defaultFontSize: {
1017
+ readonly type: "number";
1018
+ readonly description: "Default font size in pt. Default: 12";
1019
+ };
1020
+ readonly defaultLineHeight: {
1021
+ readonly type: "number";
1022
+ readonly description: "Default line height in pt. Default: fontSize * 1.5";
1023
+ };
1024
+ readonly fonts: {
1025
+ readonly type: "array";
1026
+ readonly description: "Custom fonts to load and embed.";
1027
+ readonly items: {
1028
+ readonly type: "object";
1029
+ readonly required: readonly ["family", "src"];
1030
+ readonly properties: {
1031
+ readonly family: {
1032
+ readonly type: "string";
1033
+ };
1034
+ readonly weight: {
1035
+ readonly type: "number";
1036
+ readonly enum: readonly [400, 700];
1037
+ };
1038
+ readonly style: {
1039
+ readonly type: "string";
1040
+ readonly enum: readonly ["normal", "italic"];
1041
+ };
1042
+ readonly src: {
1043
+ readonly type: "string";
1044
+ readonly description: "Absolute file path to a TTF/OTF font file";
1045
+ };
1046
+ };
1047
+ };
1048
+ };
1049
+ readonly header: {
1050
+ readonly type: "object";
1051
+ readonly description: "Header rendered at top of every page. Supports {{pageNumber}} and {{totalPages}}.";
1052
+ readonly required: readonly ["text"];
1053
+ readonly properties: {
1054
+ readonly text: {
1055
+ readonly type: "string";
1056
+ readonly description: "Use {{pageNumber}} and {{totalPages}} as tokens";
1057
+ };
1058
+ readonly fontSize: {
1059
+ readonly type: "number";
1060
+ };
1061
+ readonly align: {
1062
+ readonly type: "string";
1063
+ readonly enum: readonly ["left", "center", "right"];
1064
+ };
1065
+ readonly fontFamily: {
1066
+ readonly type: "string";
1067
+ };
1068
+ readonly fontWeight: {
1069
+ readonly type: "number";
1070
+ readonly enum: readonly [400, 700];
1071
+ };
1072
+ readonly color: {
1073
+ readonly type: "string";
1074
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
1075
+ readonly description: "6-digit hex color e.g. #FF0000";
1076
+ };
1077
+ };
1078
+ };
1079
+ readonly footer: {
1080
+ readonly type: "object";
1081
+ readonly description: "Footer rendered at bottom of every page. Supports {{pageNumber}} and {{totalPages}}.";
1082
+ readonly required: readonly ["text"];
1083
+ readonly properties: {
1084
+ readonly text: {
1085
+ readonly type: "string";
1086
+ readonly description: "Use {{pageNumber}} and {{totalPages}} as tokens";
1087
+ };
1088
+ readonly fontSize: {
1089
+ readonly type: "number";
1090
+ };
1091
+ readonly align: {
1092
+ readonly type: "string";
1093
+ readonly enum: readonly ["left", "center", "right"];
1094
+ };
1095
+ readonly fontFamily: {
1096
+ readonly type: "string";
1097
+ };
1098
+ readonly fontWeight: {
1099
+ readonly type: "number";
1100
+ readonly enum: readonly [400, 700];
1101
+ };
1102
+ readonly color: {
1103
+ readonly type: "string";
1104
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
1105
+ readonly description: "6-digit hex color e.g. #FF0000";
1106
+ };
1107
+ };
1108
+ };
1109
+ readonly watermark: {
1110
+ readonly type: "object";
1111
+ readonly description: "Watermark overlay rendered on every page behind content.";
1112
+ readonly properties: {
1113
+ readonly text: {
1114
+ readonly type: "string";
1115
+ };
1116
+ readonly fontFamily: {
1117
+ readonly type: "string";
1118
+ };
1119
+ readonly fontWeight: {
1120
+ readonly type: "number";
1121
+ readonly enum: readonly [400, 700];
1122
+ };
1123
+ readonly fontSize: {
1124
+ readonly type: "number";
1125
+ };
1126
+ readonly color: {
1127
+ readonly type: "string";
1128
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
1129
+ readonly description: "6-digit hex color e.g. #FF0000";
1130
+ };
1131
+ readonly opacity: {
1132
+ readonly type: "number";
1133
+ readonly minimum: 0;
1134
+ readonly maximum: 1;
1135
+ };
1136
+ readonly rotation: {
1137
+ readonly type: "number";
1138
+ readonly description: "Rotation in degrees (counter-clockwise). Default: -45";
1139
+ };
1140
+ };
1141
+ };
1142
+ readonly encryption: {
1143
+ readonly type: "object";
1144
+ readonly description: "Password protection and permission control for the output PDF.";
1145
+ readonly properties: {
1146
+ readonly userPassword: {
1147
+ readonly type: "string";
1148
+ readonly description: "Password required to open the document.";
1149
+ };
1150
+ readonly ownerPassword: {
1151
+ readonly type: "string";
1152
+ readonly description: "Password for full unrestricted access.";
1153
+ };
1154
+ readonly permissions: {
1155
+ readonly type: "object";
1156
+ readonly properties: {
1157
+ readonly printing: {
1158
+ readonly type: "boolean";
1159
+ };
1160
+ readonly copying: {
1161
+ readonly type: "boolean";
1162
+ };
1163
+ readonly modifying: {
1164
+ readonly type: "boolean";
1165
+ };
1166
+ readonly annotating: {
1167
+ readonly type: "boolean";
1168
+ };
1169
+ };
1170
+ };
1171
+ };
1172
+ };
1173
+ readonly metadata: {
1174
+ readonly type: "object";
1175
+ readonly description: "PDF document metadata written into file properties.";
1176
+ readonly properties: {
1177
+ readonly title: {
1178
+ readonly type: "string";
1179
+ };
1180
+ readonly author: {
1181
+ readonly type: "string";
1182
+ };
1183
+ readonly subject: {
1184
+ readonly type: "string";
1185
+ };
1186
+ readonly keywords: {
1187
+ readonly type: "array";
1188
+ readonly items: {
1189
+ readonly type: "string";
1190
+ };
1191
+ };
1192
+ readonly creator: {
1193
+ readonly type: "string";
1194
+ };
1195
+ readonly language: {
1196
+ readonly type: "string";
1197
+ readonly description: "BCP47 language tag e.g. 'en-US', 'hi', 'ar'";
1198
+ };
1199
+ readonly producer: {
1200
+ readonly type: "string";
1201
+ };
1202
+ };
1203
+ };
1204
+ readonly defaultParagraphStyle: {
1205
+ readonly type: "object";
1206
+ readonly description: "Default style applied to every paragraph and heading that does not set the field explicitly.";
1207
+ readonly properties: {
1208
+ readonly fontSize: {
1209
+ readonly type: "number";
1210
+ };
1211
+ readonly lineHeight: {
1212
+ readonly type: "number";
1213
+ };
1214
+ readonly fontFamily: {
1215
+ readonly type: "string";
1216
+ };
1217
+ readonly fontWeight: {
1218
+ readonly type: "number";
1219
+ readonly enum: readonly [400, 700];
1220
+ };
1221
+ readonly color: {
1222
+ readonly type: "string";
1223
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
1224
+ readonly description: "6-digit hex color e.g. #FF0000";
1225
+ };
1226
+ readonly align: {
1227
+ readonly type: "string";
1228
+ readonly enum: readonly ["left", "center", "right", "justify"];
1229
+ };
1230
+ readonly letterSpacing: {
1231
+ readonly type: "number";
1232
+ };
1233
+ readonly spaceBefore: {
1234
+ readonly type: "number";
1235
+ readonly description: "Space in points (pt)";
1236
+ };
1237
+ readonly spaceAfter: {
1238
+ readonly type: "number";
1239
+ readonly description: "Space in points (pt)";
1240
+ };
1241
+ };
1242
+ };
1243
+ readonly bookmarks: {
1244
+ readonly description: "PDF bookmark outline. Set to false to disable, or provide config object.";
1245
+ readonly oneOf: readonly [{
1246
+ readonly type: "boolean";
1247
+ readonly const: false;
1248
+ }, {
1249
+ readonly type: "object";
1250
+ readonly properties: {
1251
+ readonly minLevel: {
1252
+ readonly type: "number";
1253
+ readonly enum: readonly [1, 2, 3, 4];
1254
+ };
1255
+ readonly maxLevel: {
1256
+ readonly type: "number";
1257
+ readonly enum: readonly [1, 2, 3, 4];
1258
+ };
1259
+ };
1260
+ }];
1261
+ };
1262
+ readonly hyphenation: {
1263
+ readonly type: "object";
1264
+ readonly description: "Automatic word hyphenation. Requires installing the matching hyphenation.XX npm package.";
1265
+ readonly required: readonly ["language"];
1266
+ readonly properties: {
1267
+ readonly language: {
1268
+ readonly type: "string";
1269
+ readonly description: "Language code e.g. 'en-us', 'de', 'fr'";
1270
+ };
1271
+ readonly minWordLength: {
1272
+ readonly type: "number";
1273
+ };
1274
+ readonly leftMin: {
1275
+ readonly type: "number";
1276
+ };
1277
+ readonly rightMin: {
1278
+ readonly type: "number";
1279
+ };
1280
+ };
1281
+ };
1282
+ readonly signature: {
1283
+ readonly type: "object";
1284
+ readonly description: "Visual signature placeholder drawn on a specified page.";
1285
+ readonly properties: {
1286
+ readonly signerName: {
1287
+ readonly type: "string";
1288
+ };
1289
+ readonly reason: {
1290
+ readonly type: "string";
1291
+ };
1292
+ readonly location: {
1293
+ readonly type: "string";
1294
+ };
1295
+ readonly x: {
1296
+ readonly type: "number";
1297
+ };
1298
+ readonly y: {
1299
+ readonly type: "number";
1300
+ };
1301
+ readonly width: {
1302
+ readonly type: "number";
1303
+ };
1304
+ readonly height: {
1305
+ readonly type: "number";
1306
+ };
1307
+ readonly page: {
1308
+ readonly type: "number";
1309
+ readonly description: "Page index (0-based). Default: last page.";
1310
+ };
1311
+ readonly borderColor: {
1312
+ readonly type: "string";
1313
+ readonly pattern: "^#[0-9A-Fa-f]{6}$";
1314
+ readonly description: "6-digit hex color e.g. #FF0000";
1315
+ };
1316
+ readonly fontSize: {
1317
+ readonly type: "number";
1318
+ };
1319
+ readonly invisible: {
1320
+ readonly type: "boolean";
1321
+ };
1322
+ };
1323
+ };
1324
+ readonly flattenForms: {
1325
+ readonly type: "boolean";
1326
+ readonly description: "If true, flatten all form fields into static content. Default: false";
1327
+ };
1328
+ readonly allowedFileDirs: {
1329
+ readonly type: "array";
1330
+ readonly items: {
1331
+ readonly type: "string";
1332
+ };
1333
+ readonly description: "Restrict filesystem access to these absolute directory paths.";
1334
+ };
1335
+ };
1336
+ };
1337
+ //# sourceMappingURL=schema.d.ts.map