document-schema 3.3.0 → 4.1.0

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 (47) hide show
  1. package/README.md +141 -30
  2. package/dist/codec.d.cts +2 -7
  3. package/dist/codec.d.ts +2 -7
  4. package/dist/construct-CdQuI9f5.d.cts +204 -0
  5. package/dist/construct-CdQuI9f5.d.ts +204 -0
  6. package/dist/construct.cjs +106 -0
  7. package/dist/construct.d.cts +2 -0
  8. package/dist/construct.d.ts +2 -0
  9. package/dist/construct.js +93 -0
  10. package/dist/content-BN0PWqpt.d.cts +2393 -0
  11. package/dist/content-CiZf6Fqn.d.ts +2393 -0
  12. package/dist/content-json-schema-defs.cjs +1227 -0
  13. package/dist/content-json-schema-defs.js +1227 -0
  14. package/dist/content.cjs +1 -7
  15. package/dist/content.d.cts +2 -2354
  16. package/dist/content.d.ts +2 -2354
  17. package/dist/content.js +1 -7
  18. package/dist/definitions.cjs +109 -0
  19. package/dist/definitions.d.cts +115 -0
  20. package/dist/definitions.d.ts +115 -0
  21. package/dist/definitions.js +99 -0
  22. package/dist/index.cjs +60 -18
  23. package/dist/index.d.cts +8 -6
  24. package/dist/index.d.ts +8 -6
  25. package/dist/index.js +7 -5
  26. package/dist/package-node-BiUEzIzl.d.cts +456 -0
  27. package/dist/package-node-DLUobcDQ.d.ts +456 -0
  28. package/dist/package-node.cjs +133 -0
  29. package/dist/package-node.d.cts +2 -0
  30. package/dist/package-node.d.ts +2 -0
  31. package/dist/package-node.js +102 -0
  32. package/dist/package.cjs +40 -7
  33. package/dist/package.d.cts +497 -755
  34. package/dist/package.d.ts +497 -755
  35. package/dist/package.js +42 -8
  36. package/dist/schema-io.cjs +55 -25
  37. package/dist/schema-io.d.cts +13 -11
  38. package/dist/schema-io.d.ts +13 -11
  39. package/dist/schema-io.js +54 -25
  40. package/package.json +2 -2
  41. package/schemas/content-document.schema.json +1813 -68
  42. package/schemas/document-package.schema.json +3528 -30
  43. package/dist/layout.cjs +0 -150
  44. package/dist/layout.d.cts +0 -684
  45. package/dist/layout.d.ts +0 -684
  46. package/dist/layout.js +0 -136
  47. package/schemas/layout-document.schema.json +0 -760
@@ -397,6 +397,1233 @@ const CONTENT_DEFS = {
397
397
  { $ref: "#/$defs/ContentPageBreak" },
398
398
  { $ref: "#/$defs/ContentEmbeddedObjectBlock" }
399
399
  ] },
400
+ PageSize: {
401
+ type: "object",
402
+ properties: {
403
+ widthPt: {
404
+ type: "number",
405
+ exclusiveMinimum: 0
406
+ },
407
+ heightPt: {
408
+ type: "number",
409
+ exclusiveMinimum: 0
410
+ }
411
+ },
412
+ required: ["widthPt", "heightPt"],
413
+ additionalProperties: false
414
+ },
415
+ Margins: {
416
+ type: "object",
417
+ properties: {
418
+ topPt: {
419
+ type: "number",
420
+ minimum: 0
421
+ },
422
+ rightPt: {
423
+ type: "number",
424
+ minimum: 0
425
+ },
426
+ bottomPt: {
427
+ type: "number",
428
+ minimum: 0
429
+ },
430
+ leftPt: {
431
+ type: "number",
432
+ minimum: 0
433
+ }
434
+ },
435
+ required: [
436
+ "topPt",
437
+ "rightPt",
438
+ "bottomPt",
439
+ "leftPt"
440
+ ],
441
+ additionalProperties: false
442
+ },
443
+ SectionDescriptor: {
444
+ type: "object",
445
+ properties: {
446
+ pageSize: { $ref: "#/$defs/PageSize" },
447
+ margins: { $ref: "#/$defs/Margins" },
448
+ kind: {
449
+ type: "string",
450
+ const: "section"
451
+ }
452
+ },
453
+ required: [
454
+ "pageSize",
455
+ "margins",
456
+ "kind"
457
+ ],
458
+ additionalProperties: false
459
+ },
460
+ SlideDescriptor: {
461
+ type: "object",
462
+ properties: {
463
+ size: { $ref: "#/$defs/PageSize" },
464
+ notes: { type: "string" },
465
+ kind: {
466
+ type: "string",
467
+ const: "slide"
468
+ }
469
+ },
470
+ required: [
471
+ "size",
472
+ "notes",
473
+ "kind"
474
+ ],
475
+ additionalProperties: false
476
+ },
477
+ SheetDescriptor: {
478
+ type: "object",
479
+ properties: {
480
+ name: { type: "string" },
481
+ cells: {
482
+ type: "array",
483
+ items: { $ref: "#/$defs/ContentSheetCell" }
484
+ },
485
+ columns: {
486
+ type: "array",
487
+ items: { $ref: "#/$defs/ContentSheetColumn" }
488
+ },
489
+ rows: {
490
+ type: "array",
491
+ items: { $ref: "#/$defs/ContentSheetRow" }
492
+ },
493
+ printSettings: { $ref: "#/$defs/ContentSheetPrintSettings" },
494
+ kind: {
495
+ type: "string",
496
+ const: "sheet"
497
+ }
498
+ },
499
+ required: [
500
+ "name",
501
+ "cells",
502
+ "columns",
503
+ "rows",
504
+ "printSettings",
505
+ "kind"
506
+ ],
507
+ additionalProperties: false
508
+ },
509
+ DrawPageDescriptor: {
510
+ type: "object",
511
+ properties: {
512
+ size: { $ref: "#/$defs/PageSize" },
513
+ kind: {
514
+ type: "string",
515
+ const: "drawPage"
516
+ }
517
+ },
518
+ required: ["size", "kind"],
519
+ additionalProperties: false
520
+ },
521
+ ShapeDescriptor: {
522
+ type: "object",
523
+ properties: {
524
+ name: { type: "string" },
525
+ frame: { $ref: "#/$defs/Box" },
526
+ rotationDeg: { type: "number" },
527
+ insetLeftPt: {
528
+ type: "number",
529
+ minimum: 0
530
+ },
531
+ insetTopPt: {
532
+ type: "number",
533
+ minimum: 0
534
+ },
535
+ insetRightPt: {
536
+ type: "number",
537
+ minimum: 0
538
+ },
539
+ insetBottomPt: {
540
+ type: "number",
541
+ minimum: 0
542
+ },
543
+ fontScale: {
544
+ type: "number",
545
+ exclusiveMinimum: 0
546
+ },
547
+ lineSpacingReduction: {
548
+ type: "number",
549
+ minimum: 0
550
+ },
551
+ paintOrder: { type: "number" },
552
+ sourcePath: { type: "string" },
553
+ frames: {
554
+ type: "array",
555
+ items: { $ref: "#/$defs/LayoutFrame" }
556
+ }
557
+ },
558
+ required: [
559
+ "frame",
560
+ "insetLeftPt",
561
+ "insetTopPt",
562
+ "insetRightPt",
563
+ "insetBottomPt"
564
+ ],
565
+ additionalProperties: false
566
+ },
567
+ HeadingParagraph: {
568
+ type: "object",
569
+ properties: {
570
+ kind: {
571
+ type: "string",
572
+ const: "paragraph"
573
+ },
574
+ runs: {
575
+ type: "array",
576
+ items: { $ref: "#/$defs/ContentRun" }
577
+ },
578
+ styleId: { type: "string" },
579
+ headingLevel: {
580
+ type: "integer",
581
+ exclusiveMinimum: 0,
582
+ maximum: MAX_SAFE_INTEGER
583
+ },
584
+ alignment: { $ref: "#/$defs/Alignment" },
585
+ list: { $ref: "#/$defs/ContentListMembership" },
586
+ spacingBeforePt: { type: "number" },
587
+ spacingAfterPt: { type: "number" },
588
+ lineSpacing: {
589
+ type: "number",
590
+ exclusiveMinimum: 0
591
+ },
592
+ indentLeftPt: { type: "number" },
593
+ indentFirstLinePt: { type: "number" },
594
+ sourcePath: { type: "string" },
595
+ frames: {
596
+ type: "array",
597
+ items: { $ref: "#/$defs/LayoutFrame" }
598
+ }
599
+ },
600
+ required: [
601
+ "kind",
602
+ "runs",
603
+ "headingLevel"
604
+ ],
605
+ additionalProperties: false
606
+ },
607
+ ListParagraph: {
608
+ type: "object",
609
+ properties: {
610
+ kind: {
611
+ type: "string",
612
+ const: "paragraph"
613
+ },
614
+ runs: {
615
+ type: "array",
616
+ items: { $ref: "#/$defs/ContentRun" }
617
+ },
618
+ styleId: { type: "string" },
619
+ headingLevel: {
620
+ type: "integer",
621
+ exclusiveMinimum: 0,
622
+ maximum: MAX_SAFE_INTEGER
623
+ },
624
+ alignment: { $ref: "#/$defs/Alignment" },
625
+ list: { $ref: "#/$defs/ContentListMembership" },
626
+ spacingBeforePt: { type: "number" },
627
+ spacingAfterPt: { type: "number" },
628
+ lineSpacing: {
629
+ type: "number",
630
+ exclusiveMinimum: 0
631
+ },
632
+ indentLeftPt: { type: "number" },
633
+ indentFirstLinePt: { type: "number" },
634
+ sourcePath: { type: "string" },
635
+ frames: {
636
+ type: "array",
637
+ items: { $ref: "#/$defs/LayoutFrame" }
638
+ }
639
+ },
640
+ required: [
641
+ "kind",
642
+ "runs",
643
+ "list"
644
+ ],
645
+ additionalProperties: false
646
+ },
647
+ ContentSheetCell: {
648
+ type: "object",
649
+ properties: {
650
+ row: {
651
+ type: "integer",
652
+ minimum: 0,
653
+ maximum: MAX_SAFE_INTEGER
654
+ },
655
+ column: {
656
+ type: "integer",
657
+ minimum: 0,
658
+ maximum: MAX_SAFE_INTEGER
659
+ },
660
+ value: { $ref: "#/$defs/ContentCellValue" },
661
+ formula: { type: "string" },
662
+ displayText: { type: "string" },
663
+ runs: {
664
+ type: "array",
665
+ items: { $ref: "#/$defs/ContentRun" }
666
+ },
667
+ colSpan: {
668
+ type: "integer",
669
+ exclusiveMinimum: 0,
670
+ maximum: MAX_SAFE_INTEGER
671
+ },
672
+ rowSpan: {
673
+ type: "integer",
674
+ exclusiveMinimum: 0,
675
+ maximum: MAX_SAFE_INTEGER
676
+ },
677
+ background: { $ref: "#/$defs/Color" },
678
+ borders: { $ref: "#/$defs/ContentCellBorders" },
679
+ alignment: { $ref: "#/$defs/Alignment" },
680
+ verticalAlignment: {
681
+ type: "string",
682
+ enum: [
683
+ "top",
684
+ "middle",
685
+ "bottom"
686
+ ]
687
+ },
688
+ comment: { $ref: "#/$defs/ContentSheetCellComment" },
689
+ sourcePath: { type: "string" },
690
+ frames: {
691
+ type: "array",
692
+ items: { $ref: "#/$defs/LayoutFrame" }
693
+ }
694
+ },
695
+ required: [
696
+ "row",
697
+ "column",
698
+ "value",
699
+ "displayText"
700
+ ],
701
+ additionalProperties: false
702
+ },
703
+ ContentCellValue: { oneOf: [
704
+ {
705
+ type: "object",
706
+ properties: {
707
+ kind: {
708
+ type: "string",
709
+ const: "number"
710
+ },
711
+ value: { type: "number" },
712
+ exactValue: {
713
+ type: "string",
714
+ pattern: "^-?(0|[1-9]\\d*)(\\.\\d+)?$"
715
+ }
716
+ },
717
+ required: ["kind", "value"],
718
+ additionalProperties: false
719
+ },
720
+ {
721
+ type: "object",
722
+ properties: {
723
+ kind: {
724
+ type: "string",
725
+ const: "percentage"
726
+ },
727
+ value: { type: "number" },
728
+ exactValue: {
729
+ type: "string",
730
+ pattern: "^-?(0|[1-9]\\d*)(\\.\\d+)?$"
731
+ }
732
+ },
733
+ required: ["kind", "value"],
734
+ additionalProperties: false
735
+ },
736
+ {
737
+ type: "object",
738
+ properties: {
739
+ kind: {
740
+ type: "string",
741
+ const: "currency"
742
+ },
743
+ value: { type: "number" },
744
+ currency: { type: "string" },
745
+ exactValue: {
746
+ type: "string",
747
+ pattern: "^-?(0|[1-9]\\d*)(\\.\\d+)?$"
748
+ }
749
+ },
750
+ required: ["kind", "value"],
751
+ additionalProperties: false
752
+ },
753
+ {
754
+ type: "object",
755
+ properties: {
756
+ kind: {
757
+ type: "string",
758
+ const: "boolean"
759
+ },
760
+ value: { type: "boolean" }
761
+ },
762
+ required: ["kind", "value"],
763
+ additionalProperties: false
764
+ },
765
+ {
766
+ type: "object",
767
+ properties: {
768
+ kind: {
769
+ type: "string",
770
+ const: "date"
771
+ },
772
+ value: { type: "string" }
773
+ },
774
+ required: ["kind", "value"],
775
+ additionalProperties: false
776
+ },
777
+ {
778
+ type: "object",
779
+ properties: {
780
+ kind: {
781
+ type: "string",
782
+ const: "time"
783
+ },
784
+ value: { type: "string" }
785
+ },
786
+ required: ["kind", "value"],
787
+ additionalProperties: false
788
+ },
789
+ {
790
+ type: "object",
791
+ properties: {
792
+ kind: {
793
+ type: "string",
794
+ const: "dateTime"
795
+ },
796
+ value: { type: "string" }
797
+ },
798
+ required: ["kind", "value"],
799
+ additionalProperties: false
800
+ },
801
+ {
802
+ type: "object",
803
+ properties: {
804
+ kind: {
805
+ type: "string",
806
+ const: "string"
807
+ },
808
+ value: { type: "string" }
809
+ },
810
+ required: ["kind", "value"],
811
+ additionalProperties: false
812
+ },
813
+ {
814
+ type: "object",
815
+ properties: {
816
+ kind: {
817
+ type: "string",
818
+ const: "error"
819
+ },
820
+ value: { type: "string" }
821
+ },
822
+ required: ["kind", "value"],
823
+ additionalProperties: false
824
+ },
825
+ {
826
+ type: "object",
827
+ properties: { kind: {
828
+ type: "string",
829
+ const: "empty"
830
+ } },
831
+ required: ["kind"],
832
+ additionalProperties: false
833
+ }
834
+ ] },
835
+ ContentSheetCellComment: {
836
+ type: "object",
837
+ properties: {
838
+ text: { type: "string" },
839
+ author: { type: "string" },
840
+ createdAt: { type: "string" },
841
+ replies: {
842
+ type: "array",
843
+ items: {
844
+ type: "object",
845
+ properties: {
846
+ text: { type: "string" },
847
+ author: { type: "string" }
848
+ },
849
+ required: ["text"],
850
+ additionalProperties: false
851
+ }
852
+ }
853
+ },
854
+ required: ["text"],
855
+ additionalProperties: false
856
+ },
857
+ ContentSheetColumn: {
858
+ type: "object",
859
+ properties: {
860
+ index: {
861
+ type: "integer",
862
+ minimum: 0,
863
+ maximum: MAX_SAFE_INTEGER
864
+ },
865
+ widthPt: {
866
+ type: "number",
867
+ exclusiveMinimum: 0
868
+ },
869
+ hidden: { type: "boolean" }
870
+ },
871
+ required: ["index"],
872
+ additionalProperties: false
873
+ },
874
+ ContentSheetRow: {
875
+ type: "object",
876
+ properties: {
877
+ index: {
878
+ type: "integer",
879
+ minimum: 0,
880
+ maximum: MAX_SAFE_INTEGER
881
+ },
882
+ heightPt: {
883
+ type: "number",
884
+ exclusiveMinimum: 0
885
+ },
886
+ hidden: { type: "boolean" }
887
+ },
888
+ required: ["index"],
889
+ additionalProperties: false
890
+ },
891
+ ContentSheetPrintSettings: {
892
+ type: "object",
893
+ properties: {
894
+ pageSize: { $ref: "#/$defs/PageSize" },
895
+ margins: { $ref: "#/$defs/Margins" },
896
+ printRange: { $ref: "#/$defs/ContentSheetPrintRange" },
897
+ scalePercent: {
898
+ type: "number",
899
+ exclusiveMinimum: 0
900
+ },
901
+ fitToPages: {
902
+ type: "object",
903
+ properties: {
904
+ width: {
905
+ type: "integer",
906
+ exclusiveMinimum: 0,
907
+ maximum: MAX_SAFE_INTEGER
908
+ },
909
+ height: {
910
+ type: "integer",
911
+ exclusiveMinimum: 0,
912
+ maximum: MAX_SAFE_INTEGER
913
+ }
914
+ },
915
+ required: ["width", "height"],
916
+ additionalProperties: false
917
+ },
918
+ repeatRows: { $ref: "#/$defs/ContentSheetRepeatRange" },
919
+ repeatColumns: { $ref: "#/$defs/ContentSheetRepeatRange" },
920
+ gridlines: { type: "boolean" },
921
+ headers: { type: "boolean" },
922
+ pageOrder: {
923
+ type: "string",
924
+ enum: ["downThenOver", "overThenDown"]
925
+ },
926
+ manualBreaks: {
927
+ type: "object",
928
+ properties: {
929
+ rows: {
930
+ type: "array",
931
+ items: {
932
+ type: "integer",
933
+ minimum: 0,
934
+ maximum: MAX_SAFE_INTEGER
935
+ }
936
+ },
937
+ columns: {
938
+ type: "array",
939
+ items: {
940
+ type: "integer",
941
+ minimum: 0,
942
+ maximum: MAX_SAFE_INTEGER
943
+ }
944
+ }
945
+ },
946
+ required: ["rows", "columns"],
947
+ additionalProperties: false
948
+ }
949
+ },
950
+ required: [
951
+ "pageSize",
952
+ "margins",
953
+ "gridlines",
954
+ "headers",
955
+ "pageOrder"
956
+ ],
957
+ additionalProperties: false
958
+ },
959
+ ContentSheetPrintRange: {
960
+ type: "object",
961
+ properties: {
962
+ startRow: {
963
+ type: "integer",
964
+ minimum: 0,
965
+ maximum: MAX_SAFE_INTEGER
966
+ },
967
+ startColumn: {
968
+ type: "integer",
969
+ minimum: 0,
970
+ maximum: MAX_SAFE_INTEGER
971
+ },
972
+ endRow: {
973
+ type: "integer",
974
+ minimum: 0,
975
+ maximum: MAX_SAFE_INTEGER
976
+ },
977
+ endColumn: {
978
+ type: "integer",
979
+ minimum: 0,
980
+ maximum: MAX_SAFE_INTEGER
981
+ }
982
+ },
983
+ required: [
984
+ "startRow",
985
+ "startColumn",
986
+ "endRow",
987
+ "endColumn"
988
+ ],
989
+ additionalProperties: false
990
+ },
991
+ ContentSheetRepeatRange: {
992
+ type: "object",
993
+ properties: {
994
+ start: {
995
+ type: "integer",
996
+ minimum: 0,
997
+ maximum: MAX_SAFE_INTEGER
998
+ },
999
+ end: {
1000
+ type: "integer",
1001
+ minimum: 0,
1002
+ maximum: MAX_SAFE_INTEGER
1003
+ }
1004
+ },
1005
+ required: ["start", "end"],
1006
+ additionalProperties: false
1007
+ },
1008
+ ContentSheetImage: {
1009
+ type: "object",
1010
+ properties: {
1011
+ kind: {
1012
+ type: "string",
1013
+ const: "image"
1014
+ },
1015
+ format: {
1016
+ type: "string",
1017
+ enum: ["png", "jpeg"]
1018
+ },
1019
+ base64: { type: "string" },
1020
+ widthPt: {
1021
+ type: "number",
1022
+ exclusiveMinimum: 0
1023
+ },
1024
+ heightPt: {
1025
+ type: "number",
1026
+ exclusiveMinimum: 0
1027
+ },
1028
+ altText: { type: "string" },
1029
+ sourcePath: { type: "string" },
1030
+ frames: {
1031
+ type: "array",
1032
+ items: { $ref: "#/$defs/LayoutFrame" }
1033
+ },
1034
+ anchorRow: {
1035
+ type: "integer",
1036
+ minimum: 0,
1037
+ maximum: MAX_SAFE_INTEGER
1038
+ },
1039
+ anchorColumn: {
1040
+ type: "integer",
1041
+ minimum: 0,
1042
+ maximum: MAX_SAFE_INTEGER
1043
+ },
1044
+ offsetXPt: { type: "number" },
1045
+ offsetYPt: { type: "number" }
1046
+ },
1047
+ required: [
1048
+ "kind",
1049
+ "format",
1050
+ "base64",
1051
+ "widthPt",
1052
+ "heightPt",
1053
+ "anchorRow",
1054
+ "anchorColumn",
1055
+ "offsetXPt",
1056
+ "offsetYPt"
1057
+ ],
1058
+ additionalProperties: false
1059
+ },
1060
+ ContentStroke: {
1061
+ type: "object",
1062
+ properties: {
1063
+ color: { $ref: "#/$defs/Color" },
1064
+ widthPt: {
1065
+ type: "number",
1066
+ exclusiveMinimum: 0
1067
+ },
1068
+ style: { $ref: "#/$defs/ContentStrokeStyle" }
1069
+ },
1070
+ required: ["color", "widthPt"],
1071
+ additionalProperties: false
1072
+ },
1073
+ ContentPathPoint: {
1074
+ type: "object",
1075
+ properties: {
1076
+ xPt: { type: "number" },
1077
+ yPt: { type: "number" }
1078
+ },
1079
+ required: ["xPt", "yPt"],
1080
+ additionalProperties: false
1081
+ },
1082
+ ContentPathSegment: { oneOf: [{
1083
+ type: "object",
1084
+ properties: {
1085
+ kind: {
1086
+ type: "string",
1087
+ const: "line"
1088
+ },
1089
+ to: { $ref: "#/$defs/ContentPathPoint" }
1090
+ },
1091
+ required: ["kind", "to"],
1092
+ additionalProperties: false
1093
+ }, {
1094
+ type: "object",
1095
+ properties: {
1096
+ kind: {
1097
+ type: "string",
1098
+ const: "cubic"
1099
+ },
1100
+ control1: { $ref: "#/$defs/ContentPathPoint" },
1101
+ control2: { $ref: "#/$defs/ContentPathPoint" },
1102
+ to: { $ref: "#/$defs/ContentPathPoint" }
1103
+ },
1104
+ required: [
1105
+ "kind",
1106
+ "control1",
1107
+ "control2",
1108
+ "to"
1109
+ ],
1110
+ additionalProperties: false
1111
+ }] },
1112
+ ContentSubpath: {
1113
+ type: "object",
1114
+ properties: {
1115
+ start: { $ref: "#/$defs/ContentPathPoint" },
1116
+ segments: {
1117
+ type: "array",
1118
+ items: { $ref: "#/$defs/ContentPathSegment" }
1119
+ },
1120
+ closed: { type: "boolean" }
1121
+ },
1122
+ required: [
1123
+ "start",
1124
+ "segments",
1125
+ "closed"
1126
+ ],
1127
+ additionalProperties: false
1128
+ },
1129
+ ContentVector: { oneOf: [
1130
+ {
1131
+ type: "object",
1132
+ properties: {
1133
+ kind: {
1134
+ type: "string",
1135
+ const: "rect"
1136
+ },
1137
+ frame: { $ref: "#/$defs/Box" },
1138
+ rotationDeg: { type: "number" },
1139
+ fill: { $ref: "#/$defs/Color" },
1140
+ stroke: { $ref: "#/$defs/ContentStroke" },
1141
+ paintOrder: { type: "number" },
1142
+ sourcePath: { type: "string" },
1143
+ frames: {
1144
+ type: "array",
1145
+ items: { $ref: "#/$defs/LayoutFrame" }
1146
+ }
1147
+ },
1148
+ required: ["kind", "frame"],
1149
+ additionalProperties: false
1150
+ },
1151
+ {
1152
+ type: "object",
1153
+ properties: {
1154
+ kind: {
1155
+ type: "string",
1156
+ const: "ellipse"
1157
+ },
1158
+ frame: { $ref: "#/$defs/Box" },
1159
+ rotationDeg: { type: "number" },
1160
+ fill: { $ref: "#/$defs/Color" },
1161
+ stroke: { $ref: "#/$defs/ContentStroke" },
1162
+ paintOrder: { type: "number" },
1163
+ sourcePath: { type: "string" },
1164
+ frames: {
1165
+ type: "array",
1166
+ items: { $ref: "#/$defs/LayoutFrame" }
1167
+ }
1168
+ },
1169
+ required: ["kind", "frame"],
1170
+ additionalProperties: false
1171
+ },
1172
+ {
1173
+ type: "object",
1174
+ properties: {
1175
+ kind: {
1176
+ type: "string",
1177
+ const: "line"
1178
+ },
1179
+ from: { $ref: "#/$defs/ContentPathPoint" },
1180
+ to: { $ref: "#/$defs/ContentPathPoint" },
1181
+ stroke: { $ref: "#/$defs/ContentStroke" },
1182
+ paintOrder: { type: "number" },
1183
+ sourcePath: { type: "string" },
1184
+ frames: {
1185
+ type: "array",
1186
+ items: { $ref: "#/$defs/LayoutFrame" }
1187
+ }
1188
+ },
1189
+ required: [
1190
+ "kind",
1191
+ "from",
1192
+ "to",
1193
+ "stroke"
1194
+ ],
1195
+ additionalProperties: false
1196
+ },
1197
+ {
1198
+ type: "object",
1199
+ properties: {
1200
+ kind: {
1201
+ type: "string",
1202
+ const: "path"
1203
+ },
1204
+ frame: { $ref: "#/$defs/Box" },
1205
+ rotationDeg: { type: "number" },
1206
+ subpaths: {
1207
+ type: "array",
1208
+ items: { $ref: "#/$defs/ContentSubpath" }
1209
+ },
1210
+ fill: { $ref: "#/$defs/Color" },
1211
+ fillRule: {
1212
+ type: "string",
1213
+ enum: ["nonzero", "evenodd"]
1214
+ },
1215
+ stroke: { $ref: "#/$defs/ContentStroke" },
1216
+ paintOrder: { type: "number" },
1217
+ sourcePath: { type: "string" },
1218
+ frames: {
1219
+ type: "array",
1220
+ items: { $ref: "#/$defs/LayoutFrame" }
1221
+ }
1222
+ },
1223
+ required: [
1224
+ "kind",
1225
+ "frame",
1226
+ "subpaths"
1227
+ ],
1228
+ additionalProperties: false
1229
+ }
1230
+ ] },
1231
+ ContentEmbeddedObject: {
1232
+ type: "object",
1233
+ properties: {
1234
+ objectKind: {
1235
+ type: "string",
1236
+ enum: EMBEDDED_OBJECT_KINDS
1237
+ },
1238
+ document: { $ref: CONTENT_DOCUMENT_URI },
1239
+ frame: { $ref: "#/$defs/Box" },
1240
+ anchorRow: {
1241
+ type: "integer",
1242
+ minimum: 0,
1243
+ maximum: MAX_SAFE_INTEGER
1244
+ },
1245
+ anchorColumn: {
1246
+ type: "integer",
1247
+ minimum: 0,
1248
+ maximum: MAX_SAFE_INTEGER
1249
+ },
1250
+ offsetXPt: { type: "number" },
1251
+ offsetYPt: { type: "number" }
1252
+ },
1253
+ required: [
1254
+ "objectKind",
1255
+ "document",
1256
+ "frame"
1257
+ ],
1258
+ additionalProperties: false
1259
+ },
1260
+ SectionGroup: {
1261
+ type: "object",
1262
+ properties: {
1263
+ node: { $ref: "#/$defs/SectionDescriptor" },
1264
+ style: { type: "string" },
1265
+ children: {
1266
+ type: "array",
1267
+ items: { oneOf: [
1268
+ { $ref: "#/$defs/HeadingGroup" },
1269
+ { $ref: "#/$defs/ListGroup" },
1270
+ { $ref: "#/$defs/SectionConstructGroup" },
1271
+ { $ref: "#/$defs/ContentBlock" }
1272
+ ] }
1273
+ }
1274
+ },
1275
+ required: ["node", "children"],
1276
+ additionalProperties: false
1277
+ },
1278
+ HeadingGroup: {
1279
+ type: "object",
1280
+ properties: {
1281
+ node: { $ref: "#/$defs/HeadingParagraph" },
1282
+ style: { type: "string" },
1283
+ children: {
1284
+ type: "array",
1285
+ items: { oneOf: [
1286
+ { $ref: "#/$defs/HeadingGroup" },
1287
+ { $ref: "#/$defs/ListGroup" },
1288
+ { $ref: "#/$defs/SectionConstructGroup" },
1289
+ { $ref: "#/$defs/ContentBlock" }
1290
+ ] }
1291
+ }
1292
+ },
1293
+ required: ["node", "children"],
1294
+ additionalProperties: false
1295
+ },
1296
+ ListGroup: {
1297
+ type: "object",
1298
+ properties: {
1299
+ node: { $ref: "#/$defs/ListParagraph" },
1300
+ style: { type: "string" },
1301
+ children: {
1302
+ type: "array",
1303
+ items: { oneOf: [
1304
+ { $ref: "#/$defs/ListGroup" },
1305
+ { $ref: "#/$defs/ShapeConstructGroup" },
1306
+ { $ref: "#/$defs/ContentBlock" }
1307
+ ] }
1308
+ }
1309
+ },
1310
+ required: ["node", "children"],
1311
+ additionalProperties: false
1312
+ },
1313
+ SlideGroup: {
1314
+ type: "object",
1315
+ properties: {
1316
+ node: { $ref: "#/$defs/SlideDescriptor" },
1317
+ style: { type: "string" },
1318
+ children: {
1319
+ type: "array",
1320
+ items: { $ref: "#/$defs/ShapeGroup" }
1321
+ }
1322
+ },
1323
+ required: ["node", "children"],
1324
+ additionalProperties: false
1325
+ },
1326
+ ShapeGroup: {
1327
+ type: "object",
1328
+ properties: {
1329
+ node: { $ref: "#/$defs/ShapeDescriptor" },
1330
+ style: { type: "string" },
1331
+ children: {
1332
+ type: "array",
1333
+ items: { oneOf: [
1334
+ { $ref: "#/$defs/ListGroup" },
1335
+ { $ref: "#/$defs/ShapeConstructGroup" },
1336
+ { $ref: "#/$defs/ContentBlock" }
1337
+ ] }
1338
+ }
1339
+ },
1340
+ required: ["node", "children"],
1341
+ additionalProperties: false
1342
+ },
1343
+ SheetGroup: {
1344
+ type: "object",
1345
+ properties: {
1346
+ node: { $ref: "#/$defs/SheetDescriptor" },
1347
+ style: { type: "string" },
1348
+ children: {
1349
+ type: "array",
1350
+ items: { oneOf: [{ $ref: "#/$defs/ContentSheetImage" }, { $ref: "#/$defs/ContentEmbeddedObject" }] }
1351
+ }
1352
+ },
1353
+ required: ["node", "children"],
1354
+ additionalProperties: false
1355
+ },
1356
+ DrawPageGroup: {
1357
+ type: "object",
1358
+ properties: {
1359
+ node: { $ref: "#/$defs/DrawPageDescriptor" },
1360
+ style: { type: "string" },
1361
+ children: {
1362
+ type: "array",
1363
+ items: { oneOf: [{ $ref: "#/$defs/ShapeGroup" }, { $ref: "#/$defs/ContentVector" }] }
1364
+ }
1365
+ },
1366
+ required: ["node", "children"],
1367
+ additionalProperties: false
1368
+ },
1369
+ SectionConstructGroup: {
1370
+ type: "object",
1371
+ properties: {
1372
+ node: { $ref: "#/$defs/ConstructDescriptor" },
1373
+ style: { type: "string" },
1374
+ children: {
1375
+ type: "array",
1376
+ items: { oneOf: [
1377
+ { $ref: "#/$defs/HeadingGroup" },
1378
+ { $ref: "#/$defs/ListGroup" },
1379
+ { $ref: "#/$defs/SectionConstructGroup" },
1380
+ { $ref: "#/$defs/ContentBlock" }
1381
+ ] }
1382
+ }
1383
+ },
1384
+ required: ["node", "children"],
1385
+ additionalProperties: false
1386
+ },
1387
+ ShapeConstructGroup: {
1388
+ type: "object",
1389
+ properties: {
1390
+ node: { $ref: "#/$defs/ConstructDescriptor" },
1391
+ style: { type: "string" },
1392
+ children: {
1393
+ type: "array",
1394
+ items: { oneOf: [
1395
+ { $ref: "#/$defs/ListGroup" },
1396
+ { $ref: "#/$defs/ShapeConstructGroup" },
1397
+ { $ref: "#/$defs/ContentBlock" }
1398
+ ] }
1399
+ }
1400
+ },
1401
+ required: ["node", "children"],
1402
+ additionalProperties: false
1403
+ },
1404
+ ContentControlDescriptor: {
1405
+ type: "object",
1406
+ properties: {
1407
+ kind: {
1408
+ type: "string",
1409
+ const: "contentControl"
1410
+ },
1411
+ controlType: {
1412
+ type: "string",
1413
+ enum: [
1414
+ "richText",
1415
+ "plainText",
1416
+ "checkbox",
1417
+ "dropDown",
1418
+ "comboBox",
1419
+ "date",
1420
+ "picture",
1421
+ "repeatingSection",
1422
+ "button",
1423
+ "index",
1424
+ "group"
1425
+ ]
1426
+ },
1427
+ tag: { type: "string" },
1428
+ alias: { type: "string" },
1429
+ lock: {
1430
+ type: "string",
1431
+ enum: [
1432
+ "content",
1433
+ "container",
1434
+ "both"
1435
+ ]
1436
+ },
1437
+ value: { type: "string" },
1438
+ checked: { type: "boolean" },
1439
+ options: {
1440
+ type: "array",
1441
+ items: { type: "string" }
1442
+ }
1443
+ },
1444
+ required: ["kind", "controlType"],
1445
+ additionalProperties: false
1446
+ },
1447
+ FieldDescriptor: {
1448
+ type: "object",
1449
+ properties: {
1450
+ kind: {
1451
+ type: "string",
1452
+ const: "field"
1453
+ },
1454
+ instruction: { type: "string" },
1455
+ cachedResult: { type: "string" }
1456
+ },
1457
+ required: ["kind", "instruction"],
1458
+ additionalProperties: false
1459
+ },
1460
+ AnchorDescriptor: {
1461
+ type: "object",
1462
+ properties: {
1463
+ kind: {
1464
+ type: "string",
1465
+ const: "anchor"
1466
+ },
1467
+ anchorType: {
1468
+ type: "string",
1469
+ enum: [
1470
+ "bookmark",
1471
+ "footnote",
1472
+ "endnote",
1473
+ "comment"
1474
+ ]
1475
+ },
1476
+ name: { type: "string" },
1477
+ definition: { type: "string" }
1478
+ },
1479
+ required: [
1480
+ "kind",
1481
+ "anchorType",
1482
+ "name"
1483
+ ],
1484
+ additionalProperties: false
1485
+ },
1486
+ LinkTarget: { oneOf: [{
1487
+ type: "object",
1488
+ properties: {
1489
+ kind: {
1490
+ type: "string",
1491
+ const: "external"
1492
+ },
1493
+ uri: { type: "string" }
1494
+ },
1495
+ required: ["kind", "uri"],
1496
+ additionalProperties: false
1497
+ }, {
1498
+ type: "object",
1499
+ properties: {
1500
+ kind: {
1501
+ type: "string",
1502
+ const: "internal"
1503
+ },
1504
+ anchor: { type: "string" }
1505
+ },
1506
+ required: ["kind", "anchor"],
1507
+ additionalProperties: false
1508
+ }] },
1509
+ LinkDescriptor: {
1510
+ type: "object",
1511
+ properties: {
1512
+ kind: {
1513
+ type: "string",
1514
+ const: "link"
1515
+ },
1516
+ target: { $ref: "#/$defs/LinkTarget" },
1517
+ title: { type: "string" }
1518
+ },
1519
+ required: ["kind", "target"],
1520
+ additionalProperties: false
1521
+ },
1522
+ ProvenanceDescriptor: {
1523
+ type: "object",
1524
+ properties: {
1525
+ kind: {
1526
+ type: "string",
1527
+ const: "provenance"
1528
+ },
1529
+ change: {
1530
+ type: "string",
1531
+ enum: [
1532
+ "insertion",
1533
+ "deletion",
1534
+ "moveFrom",
1535
+ "moveTo",
1536
+ "formatChange"
1537
+ ]
1538
+ },
1539
+ author: { type: "string" },
1540
+ dateIso: { type: "string" }
1541
+ },
1542
+ required: ["kind", "change"],
1543
+ additionalProperties: false
1544
+ },
1545
+ DivisionSource: {
1546
+ type: "object",
1547
+ properties: {
1548
+ href: { type: "string" },
1549
+ sectionName: { type: "string" }
1550
+ },
1551
+ required: ["href"],
1552
+ additionalProperties: false
1553
+ },
1554
+ DivisionDescriptor: {
1555
+ type: "object",
1556
+ properties: {
1557
+ kind: {
1558
+ type: "string",
1559
+ const: "division"
1560
+ },
1561
+ name: { type: "string" },
1562
+ columnCount: {
1563
+ type: "integer",
1564
+ exclusiveMinimum: 0,
1565
+ maximum: MAX_SAFE_INTEGER
1566
+ },
1567
+ protected: { type: "boolean" },
1568
+ source: { $ref: "#/$defs/DivisionSource" }
1569
+ },
1570
+ required: ["kind"],
1571
+ additionalProperties: false
1572
+ },
1573
+ ConstructDescriptor: { oneOf: [
1574
+ { $ref: "#/$defs/ContentControlDescriptor" },
1575
+ { $ref: "#/$defs/FieldDescriptor" },
1576
+ { $ref: "#/$defs/AnchorDescriptor" },
1577
+ { $ref: "#/$defs/LinkDescriptor" },
1578
+ { $ref: "#/$defs/ProvenanceDescriptor" },
1579
+ { $ref: "#/$defs/DivisionDescriptor" }
1580
+ ] },
1581
+ StyleParagraphProperties: {
1582
+ type: "object",
1583
+ properties: {
1584
+ alignment: { $ref: "#/$defs/Alignment" },
1585
+ list: { $ref: "#/$defs/ContentListMembership" },
1586
+ spacingBeforePt: { type: "number" },
1587
+ spacingAfterPt: { type: "number" },
1588
+ lineSpacing: {
1589
+ type: "number",
1590
+ exclusiveMinimum: 0
1591
+ },
1592
+ indentLeftPt: { type: "number" },
1593
+ indentFirstLinePt: { type: "number" }
1594
+ },
1595
+ additionalProperties: false
1596
+ },
1597
+ StyleRunProperties: {
1598
+ type: "object",
1599
+ properties: {
1600
+ bold: { type: "boolean" },
1601
+ italic: { type: "boolean" },
1602
+ underline: { type: "boolean" },
1603
+ strike: { type: "boolean" },
1604
+ fontFamily: { type: "string" },
1605
+ sizePt: {
1606
+ type: "number",
1607
+ exclusiveMinimum: 0
1608
+ },
1609
+ color: { $ref: "#/$defs/Color" }
1610
+ },
1611
+ additionalProperties: false
1612
+ },
1613
+ StyleEntry: {
1614
+ type: "object",
1615
+ properties: {
1616
+ paragraph: { $ref: "#/$defs/StyleParagraphProperties" },
1617
+ run: { $ref: "#/$defs/StyleRunProperties" }
1618
+ },
1619
+ additionalProperties: false
1620
+ },
1621
+ DefinitionEntry: {
1622
+ type: "object",
1623
+ properties: { kind: { type: "string" } },
1624
+ required: ["kind"],
1625
+ additionalProperties: {}
1626
+ },
400
1627
  MathMlAttribute: {
401
1628
  type: "object",
402
1629
  properties: {