document-model.js 3.3.0 → 4.0.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 (41) hide show
  1. package/README.md +82 -31
  2. package/dist/codec.d.cts +2 -7
  3. package/dist/codec.d.ts +2 -7
  4. package/dist/content-BN0PWqpt.d.cts +2393 -0
  5. package/dist/content-CiZf6Fqn.d.ts +2393 -0
  6. package/dist/content-json-schema-defs.cjs +1005 -0
  7. package/dist/content-json-schema-defs.js +1005 -0
  8. package/dist/content.cjs +1 -7
  9. package/dist/content.d.cts +2 -2354
  10. package/dist/content.d.ts +2 -2354
  11. package/dist/content.js +1 -7
  12. package/dist/definitions.cjs +109 -0
  13. package/dist/definitions.d.cts +115 -0
  14. package/dist/definitions.d.ts +115 -0
  15. package/dist/definitions.js +99 -0
  16. package/dist/index.cjs +42 -18
  17. package/dist/index.d.cts +7 -6
  18. package/dist/index.d.ts +7 -6
  19. package/dist/index.js +6 -5
  20. package/dist/package-node-DDPSNOvy.d.cts +441 -0
  21. package/dist/package-node-QVFHQcm8.d.ts +441 -0
  22. package/dist/package-node.cjs +120 -0
  23. package/dist/package-node.d.cts +2 -0
  24. package/dist/package-node.d.ts +2 -0
  25. package/dist/package-node.js +93 -0
  26. package/dist/package.cjs +37 -7
  27. package/dist/package.d.cts +452 -755
  28. package/dist/package.d.ts +452 -755
  29. package/dist/package.js +39 -8
  30. package/dist/schema-io.cjs +55 -25
  31. package/dist/schema-io.d.cts +13 -11
  32. package/dist/schema-io.d.ts +13 -11
  33. package/dist/schema-io.js +54 -25
  34. package/package.json +2 -2
  35. package/schemas/content-document.schema.json +1476 -68
  36. package/schemas/document-package.schema.json +3056 -30
  37. package/dist/layout.cjs +0 -150
  38. package/dist/layout.d.cts +0 -684
  39. package/dist/layout.d.ts +0 -684
  40. package/dist/layout.js +0 -136
  41. package/schemas/layout-document.schema.json +0 -760
@@ -397,6 +397,1011 @@ 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/ContentBlock" }
1271
+ ] }
1272
+ }
1273
+ },
1274
+ required: ["node", "children"],
1275
+ additionalProperties: false
1276
+ },
1277
+ HeadingGroup: {
1278
+ type: "object",
1279
+ properties: {
1280
+ node: { $ref: "#/$defs/HeadingParagraph" },
1281
+ style: { type: "string" },
1282
+ children: {
1283
+ type: "array",
1284
+ items: { oneOf: [
1285
+ { $ref: "#/$defs/HeadingGroup" },
1286
+ { $ref: "#/$defs/ListGroup" },
1287
+ { $ref: "#/$defs/ContentBlock" }
1288
+ ] }
1289
+ }
1290
+ },
1291
+ required: ["node", "children"],
1292
+ additionalProperties: false
1293
+ },
1294
+ ListGroup: {
1295
+ type: "object",
1296
+ properties: {
1297
+ node: { $ref: "#/$defs/ListParagraph" },
1298
+ style: { type: "string" },
1299
+ children: {
1300
+ type: "array",
1301
+ items: { oneOf: [{ $ref: "#/$defs/ListGroup" }, { $ref: "#/$defs/ContentBlock" }] }
1302
+ }
1303
+ },
1304
+ required: ["node", "children"],
1305
+ additionalProperties: false
1306
+ },
1307
+ SlideGroup: {
1308
+ type: "object",
1309
+ properties: {
1310
+ node: { $ref: "#/$defs/SlideDescriptor" },
1311
+ style: { type: "string" },
1312
+ children: {
1313
+ type: "array",
1314
+ items: { $ref: "#/$defs/ShapeGroup" }
1315
+ }
1316
+ },
1317
+ required: ["node", "children"],
1318
+ additionalProperties: false
1319
+ },
1320
+ ShapeGroup: {
1321
+ type: "object",
1322
+ properties: {
1323
+ node: { $ref: "#/$defs/ShapeDescriptor" },
1324
+ style: { type: "string" },
1325
+ children: {
1326
+ type: "array",
1327
+ items: { oneOf: [{ $ref: "#/$defs/ListGroup" }, { $ref: "#/$defs/ContentBlock" }] }
1328
+ }
1329
+ },
1330
+ required: ["node", "children"],
1331
+ additionalProperties: false
1332
+ },
1333
+ SheetGroup: {
1334
+ type: "object",
1335
+ properties: {
1336
+ node: { $ref: "#/$defs/SheetDescriptor" },
1337
+ style: { type: "string" },
1338
+ children: {
1339
+ type: "array",
1340
+ items: { oneOf: [{ $ref: "#/$defs/ContentSheetImage" }, { $ref: "#/$defs/ContentEmbeddedObject" }] }
1341
+ }
1342
+ },
1343
+ required: ["node", "children"],
1344
+ additionalProperties: false
1345
+ },
1346
+ DrawPageGroup: {
1347
+ type: "object",
1348
+ properties: {
1349
+ node: { $ref: "#/$defs/DrawPageDescriptor" },
1350
+ style: { type: "string" },
1351
+ children: {
1352
+ type: "array",
1353
+ items: { oneOf: [{ $ref: "#/$defs/ShapeGroup" }, { $ref: "#/$defs/ContentVector" }] }
1354
+ }
1355
+ },
1356
+ required: ["node", "children"],
1357
+ additionalProperties: false
1358
+ },
1359
+ StyleParagraphProperties: {
1360
+ type: "object",
1361
+ properties: {
1362
+ alignment: { $ref: "#/$defs/Alignment" },
1363
+ list: { $ref: "#/$defs/ContentListMembership" },
1364
+ spacingBeforePt: { type: "number" },
1365
+ spacingAfterPt: { type: "number" },
1366
+ lineSpacing: {
1367
+ type: "number",
1368
+ exclusiveMinimum: 0
1369
+ },
1370
+ indentLeftPt: { type: "number" },
1371
+ indentFirstLinePt: { type: "number" }
1372
+ },
1373
+ additionalProperties: false
1374
+ },
1375
+ StyleRunProperties: {
1376
+ type: "object",
1377
+ properties: {
1378
+ bold: { type: "boolean" },
1379
+ italic: { type: "boolean" },
1380
+ underline: { type: "boolean" },
1381
+ strike: { type: "boolean" },
1382
+ fontFamily: { type: "string" },
1383
+ sizePt: {
1384
+ type: "number",
1385
+ exclusiveMinimum: 0
1386
+ },
1387
+ color: { $ref: "#/$defs/Color" }
1388
+ },
1389
+ additionalProperties: false
1390
+ },
1391
+ StyleEntry: {
1392
+ type: "object",
1393
+ properties: {
1394
+ paragraph: { $ref: "#/$defs/StyleParagraphProperties" },
1395
+ run: { $ref: "#/$defs/StyleRunProperties" }
1396
+ },
1397
+ additionalProperties: false
1398
+ },
1399
+ DefinitionEntry: {
1400
+ type: "object",
1401
+ properties: { kind: { type: "string" } },
1402
+ required: ["kind"],
1403
+ additionalProperties: {}
1404
+ },
400
1405
  MathMlAttribute: {
401
1406
  type: "object",
402
1407
  properties: {