document-model.js 3.2.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 (43) 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 +1006 -1
  7. package/dist/content-json-schema-defs.js +1006 -1
  8. package/dist/content.cjs +2 -8
  9. package/dist/content.d.cts +2 -2354
  10. package/dist/content.d.ts +2 -2354
  11. package/dist/content.js +2 -8
  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/dist/style.d.cts +2 -2
  35. package/dist/style.d.ts +2 -2
  36. package/package.json +2 -2
  37. package/schemas/content-document.schema.json +1476 -69
  38. package/schemas/document-package.schema.json +3056 -30
  39. package/dist/layout.cjs +0 -150
  40. package/dist/layout.d.cts +0 -684
  41. package/dist/layout.d.ts +0 -684
  42. package/dist/layout.js +0 -136
  43. package/schemas/layout-document.schema.json +0 -760
@@ -161,7 +161,7 @@ const CONTENT_DEFS = {
161
161
  maximum: MAX_SAFE_INTEGER
162
162
  }
163
163
  },
164
- required: ["numId", "level"],
164
+ required: ["level"],
165
165
  additionalProperties: false
166
166
  },
167
167
  ContentRun: {
@@ -396,6 +396,1011 @@ const CONTENT_DEFS = {
396
396
  { $ref: "#/$defs/ContentPageBreak" },
397
397
  { $ref: "#/$defs/ContentEmbeddedObjectBlock" }
398
398
  ] },
399
+ PageSize: {
400
+ type: "object",
401
+ properties: {
402
+ widthPt: {
403
+ type: "number",
404
+ exclusiveMinimum: 0
405
+ },
406
+ heightPt: {
407
+ type: "number",
408
+ exclusiveMinimum: 0
409
+ }
410
+ },
411
+ required: ["widthPt", "heightPt"],
412
+ additionalProperties: false
413
+ },
414
+ Margins: {
415
+ type: "object",
416
+ properties: {
417
+ topPt: {
418
+ type: "number",
419
+ minimum: 0
420
+ },
421
+ rightPt: {
422
+ type: "number",
423
+ minimum: 0
424
+ },
425
+ bottomPt: {
426
+ type: "number",
427
+ minimum: 0
428
+ },
429
+ leftPt: {
430
+ type: "number",
431
+ minimum: 0
432
+ }
433
+ },
434
+ required: [
435
+ "topPt",
436
+ "rightPt",
437
+ "bottomPt",
438
+ "leftPt"
439
+ ],
440
+ additionalProperties: false
441
+ },
442
+ SectionDescriptor: {
443
+ type: "object",
444
+ properties: {
445
+ pageSize: { $ref: "#/$defs/PageSize" },
446
+ margins: { $ref: "#/$defs/Margins" },
447
+ kind: {
448
+ type: "string",
449
+ const: "section"
450
+ }
451
+ },
452
+ required: [
453
+ "pageSize",
454
+ "margins",
455
+ "kind"
456
+ ],
457
+ additionalProperties: false
458
+ },
459
+ SlideDescriptor: {
460
+ type: "object",
461
+ properties: {
462
+ size: { $ref: "#/$defs/PageSize" },
463
+ notes: { type: "string" },
464
+ kind: {
465
+ type: "string",
466
+ const: "slide"
467
+ }
468
+ },
469
+ required: [
470
+ "size",
471
+ "notes",
472
+ "kind"
473
+ ],
474
+ additionalProperties: false
475
+ },
476
+ SheetDescriptor: {
477
+ type: "object",
478
+ properties: {
479
+ name: { type: "string" },
480
+ cells: {
481
+ type: "array",
482
+ items: { $ref: "#/$defs/ContentSheetCell" }
483
+ },
484
+ columns: {
485
+ type: "array",
486
+ items: { $ref: "#/$defs/ContentSheetColumn" }
487
+ },
488
+ rows: {
489
+ type: "array",
490
+ items: { $ref: "#/$defs/ContentSheetRow" }
491
+ },
492
+ printSettings: { $ref: "#/$defs/ContentSheetPrintSettings" },
493
+ kind: {
494
+ type: "string",
495
+ const: "sheet"
496
+ }
497
+ },
498
+ required: [
499
+ "name",
500
+ "cells",
501
+ "columns",
502
+ "rows",
503
+ "printSettings",
504
+ "kind"
505
+ ],
506
+ additionalProperties: false
507
+ },
508
+ DrawPageDescriptor: {
509
+ type: "object",
510
+ properties: {
511
+ size: { $ref: "#/$defs/PageSize" },
512
+ kind: {
513
+ type: "string",
514
+ const: "drawPage"
515
+ }
516
+ },
517
+ required: ["size", "kind"],
518
+ additionalProperties: false
519
+ },
520
+ ShapeDescriptor: {
521
+ type: "object",
522
+ properties: {
523
+ name: { type: "string" },
524
+ frame: { $ref: "#/$defs/Box" },
525
+ rotationDeg: { type: "number" },
526
+ insetLeftPt: {
527
+ type: "number",
528
+ minimum: 0
529
+ },
530
+ insetTopPt: {
531
+ type: "number",
532
+ minimum: 0
533
+ },
534
+ insetRightPt: {
535
+ type: "number",
536
+ minimum: 0
537
+ },
538
+ insetBottomPt: {
539
+ type: "number",
540
+ minimum: 0
541
+ },
542
+ fontScale: {
543
+ type: "number",
544
+ exclusiveMinimum: 0
545
+ },
546
+ lineSpacingReduction: {
547
+ type: "number",
548
+ minimum: 0
549
+ },
550
+ paintOrder: { type: "number" },
551
+ sourcePath: { type: "string" },
552
+ frames: {
553
+ type: "array",
554
+ items: { $ref: "#/$defs/LayoutFrame" }
555
+ }
556
+ },
557
+ required: [
558
+ "frame",
559
+ "insetLeftPt",
560
+ "insetTopPt",
561
+ "insetRightPt",
562
+ "insetBottomPt"
563
+ ],
564
+ additionalProperties: false
565
+ },
566
+ HeadingParagraph: {
567
+ type: "object",
568
+ properties: {
569
+ kind: {
570
+ type: "string",
571
+ const: "paragraph"
572
+ },
573
+ runs: {
574
+ type: "array",
575
+ items: { $ref: "#/$defs/ContentRun" }
576
+ },
577
+ styleId: { type: "string" },
578
+ headingLevel: {
579
+ type: "integer",
580
+ exclusiveMinimum: 0,
581
+ maximum: MAX_SAFE_INTEGER
582
+ },
583
+ alignment: { $ref: "#/$defs/Alignment" },
584
+ list: { $ref: "#/$defs/ContentListMembership" },
585
+ spacingBeforePt: { type: "number" },
586
+ spacingAfterPt: { type: "number" },
587
+ lineSpacing: {
588
+ type: "number",
589
+ exclusiveMinimum: 0
590
+ },
591
+ indentLeftPt: { type: "number" },
592
+ indentFirstLinePt: { type: "number" },
593
+ sourcePath: { type: "string" },
594
+ frames: {
595
+ type: "array",
596
+ items: { $ref: "#/$defs/LayoutFrame" }
597
+ }
598
+ },
599
+ required: [
600
+ "kind",
601
+ "runs",
602
+ "headingLevel"
603
+ ],
604
+ additionalProperties: false
605
+ },
606
+ ListParagraph: {
607
+ type: "object",
608
+ properties: {
609
+ kind: {
610
+ type: "string",
611
+ const: "paragraph"
612
+ },
613
+ runs: {
614
+ type: "array",
615
+ items: { $ref: "#/$defs/ContentRun" }
616
+ },
617
+ styleId: { type: "string" },
618
+ headingLevel: {
619
+ type: "integer",
620
+ exclusiveMinimum: 0,
621
+ maximum: MAX_SAFE_INTEGER
622
+ },
623
+ alignment: { $ref: "#/$defs/Alignment" },
624
+ list: { $ref: "#/$defs/ContentListMembership" },
625
+ spacingBeforePt: { type: "number" },
626
+ spacingAfterPt: { type: "number" },
627
+ lineSpacing: {
628
+ type: "number",
629
+ exclusiveMinimum: 0
630
+ },
631
+ indentLeftPt: { type: "number" },
632
+ indentFirstLinePt: { type: "number" },
633
+ sourcePath: { type: "string" },
634
+ frames: {
635
+ type: "array",
636
+ items: { $ref: "#/$defs/LayoutFrame" }
637
+ }
638
+ },
639
+ required: [
640
+ "kind",
641
+ "runs",
642
+ "list"
643
+ ],
644
+ additionalProperties: false
645
+ },
646
+ ContentSheetCell: {
647
+ type: "object",
648
+ properties: {
649
+ row: {
650
+ type: "integer",
651
+ minimum: 0,
652
+ maximum: MAX_SAFE_INTEGER
653
+ },
654
+ column: {
655
+ type: "integer",
656
+ minimum: 0,
657
+ maximum: MAX_SAFE_INTEGER
658
+ },
659
+ value: { $ref: "#/$defs/ContentCellValue" },
660
+ formula: { type: "string" },
661
+ displayText: { type: "string" },
662
+ runs: {
663
+ type: "array",
664
+ items: { $ref: "#/$defs/ContentRun" }
665
+ },
666
+ colSpan: {
667
+ type: "integer",
668
+ exclusiveMinimum: 0,
669
+ maximum: MAX_SAFE_INTEGER
670
+ },
671
+ rowSpan: {
672
+ type: "integer",
673
+ exclusiveMinimum: 0,
674
+ maximum: MAX_SAFE_INTEGER
675
+ },
676
+ background: { $ref: "#/$defs/Color" },
677
+ borders: { $ref: "#/$defs/ContentCellBorders" },
678
+ alignment: { $ref: "#/$defs/Alignment" },
679
+ verticalAlignment: {
680
+ type: "string",
681
+ enum: [
682
+ "top",
683
+ "middle",
684
+ "bottom"
685
+ ]
686
+ },
687
+ comment: { $ref: "#/$defs/ContentSheetCellComment" },
688
+ sourcePath: { type: "string" },
689
+ frames: {
690
+ type: "array",
691
+ items: { $ref: "#/$defs/LayoutFrame" }
692
+ }
693
+ },
694
+ required: [
695
+ "row",
696
+ "column",
697
+ "value",
698
+ "displayText"
699
+ ],
700
+ additionalProperties: false
701
+ },
702
+ ContentCellValue: { oneOf: [
703
+ {
704
+ type: "object",
705
+ properties: {
706
+ kind: {
707
+ type: "string",
708
+ const: "number"
709
+ },
710
+ value: { type: "number" },
711
+ exactValue: {
712
+ type: "string",
713
+ pattern: "^-?(0|[1-9]\\d*)(\\.\\d+)?$"
714
+ }
715
+ },
716
+ required: ["kind", "value"],
717
+ additionalProperties: false
718
+ },
719
+ {
720
+ type: "object",
721
+ properties: {
722
+ kind: {
723
+ type: "string",
724
+ const: "percentage"
725
+ },
726
+ value: { type: "number" },
727
+ exactValue: {
728
+ type: "string",
729
+ pattern: "^-?(0|[1-9]\\d*)(\\.\\d+)?$"
730
+ }
731
+ },
732
+ required: ["kind", "value"],
733
+ additionalProperties: false
734
+ },
735
+ {
736
+ type: "object",
737
+ properties: {
738
+ kind: {
739
+ type: "string",
740
+ const: "currency"
741
+ },
742
+ value: { type: "number" },
743
+ currency: { type: "string" },
744
+ exactValue: {
745
+ type: "string",
746
+ pattern: "^-?(0|[1-9]\\d*)(\\.\\d+)?$"
747
+ }
748
+ },
749
+ required: ["kind", "value"],
750
+ additionalProperties: false
751
+ },
752
+ {
753
+ type: "object",
754
+ properties: {
755
+ kind: {
756
+ type: "string",
757
+ const: "boolean"
758
+ },
759
+ value: { type: "boolean" }
760
+ },
761
+ required: ["kind", "value"],
762
+ additionalProperties: false
763
+ },
764
+ {
765
+ type: "object",
766
+ properties: {
767
+ kind: {
768
+ type: "string",
769
+ const: "date"
770
+ },
771
+ value: { type: "string" }
772
+ },
773
+ required: ["kind", "value"],
774
+ additionalProperties: false
775
+ },
776
+ {
777
+ type: "object",
778
+ properties: {
779
+ kind: {
780
+ type: "string",
781
+ const: "time"
782
+ },
783
+ value: { type: "string" }
784
+ },
785
+ required: ["kind", "value"],
786
+ additionalProperties: false
787
+ },
788
+ {
789
+ type: "object",
790
+ properties: {
791
+ kind: {
792
+ type: "string",
793
+ const: "dateTime"
794
+ },
795
+ value: { type: "string" }
796
+ },
797
+ required: ["kind", "value"],
798
+ additionalProperties: false
799
+ },
800
+ {
801
+ type: "object",
802
+ properties: {
803
+ kind: {
804
+ type: "string",
805
+ const: "string"
806
+ },
807
+ value: { type: "string" }
808
+ },
809
+ required: ["kind", "value"],
810
+ additionalProperties: false
811
+ },
812
+ {
813
+ type: "object",
814
+ properties: {
815
+ kind: {
816
+ type: "string",
817
+ const: "error"
818
+ },
819
+ value: { type: "string" }
820
+ },
821
+ required: ["kind", "value"],
822
+ additionalProperties: false
823
+ },
824
+ {
825
+ type: "object",
826
+ properties: { kind: {
827
+ type: "string",
828
+ const: "empty"
829
+ } },
830
+ required: ["kind"],
831
+ additionalProperties: false
832
+ }
833
+ ] },
834
+ ContentSheetCellComment: {
835
+ type: "object",
836
+ properties: {
837
+ text: { type: "string" },
838
+ author: { type: "string" },
839
+ createdAt: { type: "string" },
840
+ replies: {
841
+ type: "array",
842
+ items: {
843
+ type: "object",
844
+ properties: {
845
+ text: { type: "string" },
846
+ author: { type: "string" }
847
+ },
848
+ required: ["text"],
849
+ additionalProperties: false
850
+ }
851
+ }
852
+ },
853
+ required: ["text"],
854
+ additionalProperties: false
855
+ },
856
+ ContentSheetColumn: {
857
+ type: "object",
858
+ properties: {
859
+ index: {
860
+ type: "integer",
861
+ minimum: 0,
862
+ maximum: MAX_SAFE_INTEGER
863
+ },
864
+ widthPt: {
865
+ type: "number",
866
+ exclusiveMinimum: 0
867
+ },
868
+ hidden: { type: "boolean" }
869
+ },
870
+ required: ["index"],
871
+ additionalProperties: false
872
+ },
873
+ ContentSheetRow: {
874
+ type: "object",
875
+ properties: {
876
+ index: {
877
+ type: "integer",
878
+ minimum: 0,
879
+ maximum: MAX_SAFE_INTEGER
880
+ },
881
+ heightPt: {
882
+ type: "number",
883
+ exclusiveMinimum: 0
884
+ },
885
+ hidden: { type: "boolean" }
886
+ },
887
+ required: ["index"],
888
+ additionalProperties: false
889
+ },
890
+ ContentSheetPrintSettings: {
891
+ type: "object",
892
+ properties: {
893
+ pageSize: { $ref: "#/$defs/PageSize" },
894
+ margins: { $ref: "#/$defs/Margins" },
895
+ printRange: { $ref: "#/$defs/ContentSheetPrintRange" },
896
+ scalePercent: {
897
+ type: "number",
898
+ exclusiveMinimum: 0
899
+ },
900
+ fitToPages: {
901
+ type: "object",
902
+ properties: {
903
+ width: {
904
+ type: "integer",
905
+ exclusiveMinimum: 0,
906
+ maximum: MAX_SAFE_INTEGER
907
+ },
908
+ height: {
909
+ type: "integer",
910
+ exclusiveMinimum: 0,
911
+ maximum: MAX_SAFE_INTEGER
912
+ }
913
+ },
914
+ required: ["width", "height"],
915
+ additionalProperties: false
916
+ },
917
+ repeatRows: { $ref: "#/$defs/ContentSheetRepeatRange" },
918
+ repeatColumns: { $ref: "#/$defs/ContentSheetRepeatRange" },
919
+ gridlines: { type: "boolean" },
920
+ headers: { type: "boolean" },
921
+ pageOrder: {
922
+ type: "string",
923
+ enum: ["downThenOver", "overThenDown"]
924
+ },
925
+ manualBreaks: {
926
+ type: "object",
927
+ properties: {
928
+ rows: {
929
+ type: "array",
930
+ items: {
931
+ type: "integer",
932
+ minimum: 0,
933
+ maximum: MAX_SAFE_INTEGER
934
+ }
935
+ },
936
+ columns: {
937
+ type: "array",
938
+ items: {
939
+ type: "integer",
940
+ minimum: 0,
941
+ maximum: MAX_SAFE_INTEGER
942
+ }
943
+ }
944
+ },
945
+ required: ["rows", "columns"],
946
+ additionalProperties: false
947
+ }
948
+ },
949
+ required: [
950
+ "pageSize",
951
+ "margins",
952
+ "gridlines",
953
+ "headers",
954
+ "pageOrder"
955
+ ],
956
+ additionalProperties: false
957
+ },
958
+ ContentSheetPrintRange: {
959
+ type: "object",
960
+ properties: {
961
+ startRow: {
962
+ type: "integer",
963
+ minimum: 0,
964
+ maximum: MAX_SAFE_INTEGER
965
+ },
966
+ startColumn: {
967
+ type: "integer",
968
+ minimum: 0,
969
+ maximum: MAX_SAFE_INTEGER
970
+ },
971
+ endRow: {
972
+ type: "integer",
973
+ minimum: 0,
974
+ maximum: MAX_SAFE_INTEGER
975
+ },
976
+ endColumn: {
977
+ type: "integer",
978
+ minimum: 0,
979
+ maximum: MAX_SAFE_INTEGER
980
+ }
981
+ },
982
+ required: [
983
+ "startRow",
984
+ "startColumn",
985
+ "endRow",
986
+ "endColumn"
987
+ ],
988
+ additionalProperties: false
989
+ },
990
+ ContentSheetRepeatRange: {
991
+ type: "object",
992
+ properties: {
993
+ start: {
994
+ type: "integer",
995
+ minimum: 0,
996
+ maximum: MAX_SAFE_INTEGER
997
+ },
998
+ end: {
999
+ type: "integer",
1000
+ minimum: 0,
1001
+ maximum: MAX_SAFE_INTEGER
1002
+ }
1003
+ },
1004
+ required: ["start", "end"],
1005
+ additionalProperties: false
1006
+ },
1007
+ ContentSheetImage: {
1008
+ type: "object",
1009
+ properties: {
1010
+ kind: {
1011
+ type: "string",
1012
+ const: "image"
1013
+ },
1014
+ format: {
1015
+ type: "string",
1016
+ enum: ["png", "jpeg"]
1017
+ },
1018
+ base64: { type: "string" },
1019
+ widthPt: {
1020
+ type: "number",
1021
+ exclusiveMinimum: 0
1022
+ },
1023
+ heightPt: {
1024
+ type: "number",
1025
+ exclusiveMinimum: 0
1026
+ },
1027
+ altText: { type: "string" },
1028
+ sourcePath: { type: "string" },
1029
+ frames: {
1030
+ type: "array",
1031
+ items: { $ref: "#/$defs/LayoutFrame" }
1032
+ },
1033
+ anchorRow: {
1034
+ type: "integer",
1035
+ minimum: 0,
1036
+ maximum: MAX_SAFE_INTEGER
1037
+ },
1038
+ anchorColumn: {
1039
+ type: "integer",
1040
+ minimum: 0,
1041
+ maximum: MAX_SAFE_INTEGER
1042
+ },
1043
+ offsetXPt: { type: "number" },
1044
+ offsetYPt: { type: "number" }
1045
+ },
1046
+ required: [
1047
+ "kind",
1048
+ "format",
1049
+ "base64",
1050
+ "widthPt",
1051
+ "heightPt",
1052
+ "anchorRow",
1053
+ "anchorColumn",
1054
+ "offsetXPt",
1055
+ "offsetYPt"
1056
+ ],
1057
+ additionalProperties: false
1058
+ },
1059
+ ContentStroke: {
1060
+ type: "object",
1061
+ properties: {
1062
+ color: { $ref: "#/$defs/Color" },
1063
+ widthPt: {
1064
+ type: "number",
1065
+ exclusiveMinimum: 0
1066
+ },
1067
+ style: { $ref: "#/$defs/ContentStrokeStyle" }
1068
+ },
1069
+ required: ["color", "widthPt"],
1070
+ additionalProperties: false
1071
+ },
1072
+ ContentPathPoint: {
1073
+ type: "object",
1074
+ properties: {
1075
+ xPt: { type: "number" },
1076
+ yPt: { type: "number" }
1077
+ },
1078
+ required: ["xPt", "yPt"],
1079
+ additionalProperties: false
1080
+ },
1081
+ ContentPathSegment: { oneOf: [{
1082
+ type: "object",
1083
+ properties: {
1084
+ kind: {
1085
+ type: "string",
1086
+ const: "line"
1087
+ },
1088
+ to: { $ref: "#/$defs/ContentPathPoint" }
1089
+ },
1090
+ required: ["kind", "to"],
1091
+ additionalProperties: false
1092
+ }, {
1093
+ type: "object",
1094
+ properties: {
1095
+ kind: {
1096
+ type: "string",
1097
+ const: "cubic"
1098
+ },
1099
+ control1: { $ref: "#/$defs/ContentPathPoint" },
1100
+ control2: { $ref: "#/$defs/ContentPathPoint" },
1101
+ to: { $ref: "#/$defs/ContentPathPoint" }
1102
+ },
1103
+ required: [
1104
+ "kind",
1105
+ "control1",
1106
+ "control2",
1107
+ "to"
1108
+ ],
1109
+ additionalProperties: false
1110
+ }] },
1111
+ ContentSubpath: {
1112
+ type: "object",
1113
+ properties: {
1114
+ start: { $ref: "#/$defs/ContentPathPoint" },
1115
+ segments: {
1116
+ type: "array",
1117
+ items: { $ref: "#/$defs/ContentPathSegment" }
1118
+ },
1119
+ closed: { type: "boolean" }
1120
+ },
1121
+ required: [
1122
+ "start",
1123
+ "segments",
1124
+ "closed"
1125
+ ],
1126
+ additionalProperties: false
1127
+ },
1128
+ ContentVector: { oneOf: [
1129
+ {
1130
+ type: "object",
1131
+ properties: {
1132
+ kind: {
1133
+ type: "string",
1134
+ const: "rect"
1135
+ },
1136
+ frame: { $ref: "#/$defs/Box" },
1137
+ rotationDeg: { type: "number" },
1138
+ fill: { $ref: "#/$defs/Color" },
1139
+ stroke: { $ref: "#/$defs/ContentStroke" },
1140
+ paintOrder: { type: "number" },
1141
+ sourcePath: { type: "string" },
1142
+ frames: {
1143
+ type: "array",
1144
+ items: { $ref: "#/$defs/LayoutFrame" }
1145
+ }
1146
+ },
1147
+ required: ["kind", "frame"],
1148
+ additionalProperties: false
1149
+ },
1150
+ {
1151
+ type: "object",
1152
+ properties: {
1153
+ kind: {
1154
+ type: "string",
1155
+ const: "ellipse"
1156
+ },
1157
+ frame: { $ref: "#/$defs/Box" },
1158
+ rotationDeg: { type: "number" },
1159
+ fill: { $ref: "#/$defs/Color" },
1160
+ stroke: { $ref: "#/$defs/ContentStroke" },
1161
+ paintOrder: { type: "number" },
1162
+ sourcePath: { type: "string" },
1163
+ frames: {
1164
+ type: "array",
1165
+ items: { $ref: "#/$defs/LayoutFrame" }
1166
+ }
1167
+ },
1168
+ required: ["kind", "frame"],
1169
+ additionalProperties: false
1170
+ },
1171
+ {
1172
+ type: "object",
1173
+ properties: {
1174
+ kind: {
1175
+ type: "string",
1176
+ const: "line"
1177
+ },
1178
+ from: { $ref: "#/$defs/ContentPathPoint" },
1179
+ to: { $ref: "#/$defs/ContentPathPoint" },
1180
+ stroke: { $ref: "#/$defs/ContentStroke" },
1181
+ paintOrder: { type: "number" },
1182
+ sourcePath: { type: "string" },
1183
+ frames: {
1184
+ type: "array",
1185
+ items: { $ref: "#/$defs/LayoutFrame" }
1186
+ }
1187
+ },
1188
+ required: [
1189
+ "kind",
1190
+ "from",
1191
+ "to",
1192
+ "stroke"
1193
+ ],
1194
+ additionalProperties: false
1195
+ },
1196
+ {
1197
+ type: "object",
1198
+ properties: {
1199
+ kind: {
1200
+ type: "string",
1201
+ const: "path"
1202
+ },
1203
+ frame: { $ref: "#/$defs/Box" },
1204
+ rotationDeg: { type: "number" },
1205
+ subpaths: {
1206
+ type: "array",
1207
+ items: { $ref: "#/$defs/ContentSubpath" }
1208
+ },
1209
+ fill: { $ref: "#/$defs/Color" },
1210
+ fillRule: {
1211
+ type: "string",
1212
+ enum: ["nonzero", "evenodd"]
1213
+ },
1214
+ stroke: { $ref: "#/$defs/ContentStroke" },
1215
+ paintOrder: { type: "number" },
1216
+ sourcePath: { type: "string" },
1217
+ frames: {
1218
+ type: "array",
1219
+ items: { $ref: "#/$defs/LayoutFrame" }
1220
+ }
1221
+ },
1222
+ required: [
1223
+ "kind",
1224
+ "frame",
1225
+ "subpaths"
1226
+ ],
1227
+ additionalProperties: false
1228
+ }
1229
+ ] },
1230
+ ContentEmbeddedObject: {
1231
+ type: "object",
1232
+ properties: {
1233
+ objectKind: {
1234
+ type: "string",
1235
+ enum: EMBEDDED_OBJECT_KINDS
1236
+ },
1237
+ document: { $ref: CONTENT_DOCUMENT_URI },
1238
+ frame: { $ref: "#/$defs/Box" },
1239
+ anchorRow: {
1240
+ type: "integer",
1241
+ minimum: 0,
1242
+ maximum: MAX_SAFE_INTEGER
1243
+ },
1244
+ anchorColumn: {
1245
+ type: "integer",
1246
+ minimum: 0,
1247
+ maximum: MAX_SAFE_INTEGER
1248
+ },
1249
+ offsetXPt: { type: "number" },
1250
+ offsetYPt: { type: "number" }
1251
+ },
1252
+ required: [
1253
+ "objectKind",
1254
+ "document",
1255
+ "frame"
1256
+ ],
1257
+ additionalProperties: false
1258
+ },
1259
+ SectionGroup: {
1260
+ type: "object",
1261
+ properties: {
1262
+ node: { $ref: "#/$defs/SectionDescriptor" },
1263
+ style: { type: "string" },
1264
+ children: {
1265
+ type: "array",
1266
+ items: { oneOf: [
1267
+ { $ref: "#/$defs/HeadingGroup" },
1268
+ { $ref: "#/$defs/ListGroup" },
1269
+ { $ref: "#/$defs/ContentBlock" }
1270
+ ] }
1271
+ }
1272
+ },
1273
+ required: ["node", "children"],
1274
+ additionalProperties: false
1275
+ },
1276
+ HeadingGroup: {
1277
+ type: "object",
1278
+ properties: {
1279
+ node: { $ref: "#/$defs/HeadingParagraph" },
1280
+ style: { type: "string" },
1281
+ children: {
1282
+ type: "array",
1283
+ items: { oneOf: [
1284
+ { $ref: "#/$defs/HeadingGroup" },
1285
+ { $ref: "#/$defs/ListGroup" },
1286
+ { $ref: "#/$defs/ContentBlock" }
1287
+ ] }
1288
+ }
1289
+ },
1290
+ required: ["node", "children"],
1291
+ additionalProperties: false
1292
+ },
1293
+ ListGroup: {
1294
+ type: "object",
1295
+ properties: {
1296
+ node: { $ref: "#/$defs/ListParagraph" },
1297
+ style: { type: "string" },
1298
+ children: {
1299
+ type: "array",
1300
+ items: { oneOf: [{ $ref: "#/$defs/ListGroup" }, { $ref: "#/$defs/ContentBlock" }] }
1301
+ }
1302
+ },
1303
+ required: ["node", "children"],
1304
+ additionalProperties: false
1305
+ },
1306
+ SlideGroup: {
1307
+ type: "object",
1308
+ properties: {
1309
+ node: { $ref: "#/$defs/SlideDescriptor" },
1310
+ style: { type: "string" },
1311
+ children: {
1312
+ type: "array",
1313
+ items: { $ref: "#/$defs/ShapeGroup" }
1314
+ }
1315
+ },
1316
+ required: ["node", "children"],
1317
+ additionalProperties: false
1318
+ },
1319
+ ShapeGroup: {
1320
+ type: "object",
1321
+ properties: {
1322
+ node: { $ref: "#/$defs/ShapeDescriptor" },
1323
+ style: { type: "string" },
1324
+ children: {
1325
+ type: "array",
1326
+ items: { oneOf: [{ $ref: "#/$defs/ListGroup" }, { $ref: "#/$defs/ContentBlock" }] }
1327
+ }
1328
+ },
1329
+ required: ["node", "children"],
1330
+ additionalProperties: false
1331
+ },
1332
+ SheetGroup: {
1333
+ type: "object",
1334
+ properties: {
1335
+ node: { $ref: "#/$defs/SheetDescriptor" },
1336
+ style: { type: "string" },
1337
+ children: {
1338
+ type: "array",
1339
+ items: { oneOf: [{ $ref: "#/$defs/ContentSheetImage" }, { $ref: "#/$defs/ContentEmbeddedObject" }] }
1340
+ }
1341
+ },
1342
+ required: ["node", "children"],
1343
+ additionalProperties: false
1344
+ },
1345
+ DrawPageGroup: {
1346
+ type: "object",
1347
+ properties: {
1348
+ node: { $ref: "#/$defs/DrawPageDescriptor" },
1349
+ style: { type: "string" },
1350
+ children: {
1351
+ type: "array",
1352
+ items: { oneOf: [{ $ref: "#/$defs/ShapeGroup" }, { $ref: "#/$defs/ContentVector" }] }
1353
+ }
1354
+ },
1355
+ required: ["node", "children"],
1356
+ additionalProperties: false
1357
+ },
1358
+ StyleParagraphProperties: {
1359
+ type: "object",
1360
+ properties: {
1361
+ alignment: { $ref: "#/$defs/Alignment" },
1362
+ list: { $ref: "#/$defs/ContentListMembership" },
1363
+ spacingBeforePt: { type: "number" },
1364
+ spacingAfterPt: { type: "number" },
1365
+ lineSpacing: {
1366
+ type: "number",
1367
+ exclusiveMinimum: 0
1368
+ },
1369
+ indentLeftPt: { type: "number" },
1370
+ indentFirstLinePt: { type: "number" }
1371
+ },
1372
+ additionalProperties: false
1373
+ },
1374
+ StyleRunProperties: {
1375
+ type: "object",
1376
+ properties: {
1377
+ bold: { type: "boolean" },
1378
+ italic: { type: "boolean" },
1379
+ underline: { type: "boolean" },
1380
+ strike: { type: "boolean" },
1381
+ fontFamily: { type: "string" },
1382
+ sizePt: {
1383
+ type: "number",
1384
+ exclusiveMinimum: 0
1385
+ },
1386
+ color: { $ref: "#/$defs/Color" }
1387
+ },
1388
+ additionalProperties: false
1389
+ },
1390
+ StyleEntry: {
1391
+ type: "object",
1392
+ properties: {
1393
+ paragraph: { $ref: "#/$defs/StyleParagraphProperties" },
1394
+ run: { $ref: "#/$defs/StyleRunProperties" }
1395
+ },
1396
+ additionalProperties: false
1397
+ },
1398
+ DefinitionEntry: {
1399
+ type: "object",
1400
+ properties: { kind: { type: "string" } },
1401
+ required: ["kind"],
1402
+ additionalProperties: {}
1403
+ },
399
1404
  MathMlAttribute: {
400
1405
  type: "object",
401
1406
  properties: {