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
@@ -396,6 +396,1233 @@ 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/SectionConstructGroup" },
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/SectionConstructGroup" },
1288
+ { $ref: "#/$defs/ContentBlock" }
1289
+ ] }
1290
+ }
1291
+ },
1292
+ required: ["node", "children"],
1293
+ additionalProperties: false
1294
+ },
1295
+ ListGroup: {
1296
+ type: "object",
1297
+ properties: {
1298
+ node: { $ref: "#/$defs/ListParagraph" },
1299
+ style: { type: "string" },
1300
+ children: {
1301
+ type: "array",
1302
+ items: { oneOf: [
1303
+ { $ref: "#/$defs/ListGroup" },
1304
+ { $ref: "#/$defs/ShapeConstructGroup" },
1305
+ { $ref: "#/$defs/ContentBlock" }
1306
+ ] }
1307
+ }
1308
+ },
1309
+ required: ["node", "children"],
1310
+ additionalProperties: false
1311
+ },
1312
+ SlideGroup: {
1313
+ type: "object",
1314
+ properties: {
1315
+ node: { $ref: "#/$defs/SlideDescriptor" },
1316
+ style: { type: "string" },
1317
+ children: {
1318
+ type: "array",
1319
+ items: { $ref: "#/$defs/ShapeGroup" }
1320
+ }
1321
+ },
1322
+ required: ["node", "children"],
1323
+ additionalProperties: false
1324
+ },
1325
+ ShapeGroup: {
1326
+ type: "object",
1327
+ properties: {
1328
+ node: { $ref: "#/$defs/ShapeDescriptor" },
1329
+ style: { type: "string" },
1330
+ children: {
1331
+ type: "array",
1332
+ items: { oneOf: [
1333
+ { $ref: "#/$defs/ListGroup" },
1334
+ { $ref: "#/$defs/ShapeConstructGroup" },
1335
+ { $ref: "#/$defs/ContentBlock" }
1336
+ ] }
1337
+ }
1338
+ },
1339
+ required: ["node", "children"],
1340
+ additionalProperties: false
1341
+ },
1342
+ SheetGroup: {
1343
+ type: "object",
1344
+ properties: {
1345
+ node: { $ref: "#/$defs/SheetDescriptor" },
1346
+ style: { type: "string" },
1347
+ children: {
1348
+ type: "array",
1349
+ items: { oneOf: [{ $ref: "#/$defs/ContentSheetImage" }, { $ref: "#/$defs/ContentEmbeddedObject" }] }
1350
+ }
1351
+ },
1352
+ required: ["node", "children"],
1353
+ additionalProperties: false
1354
+ },
1355
+ DrawPageGroup: {
1356
+ type: "object",
1357
+ properties: {
1358
+ node: { $ref: "#/$defs/DrawPageDescriptor" },
1359
+ style: { type: "string" },
1360
+ children: {
1361
+ type: "array",
1362
+ items: { oneOf: [{ $ref: "#/$defs/ShapeGroup" }, { $ref: "#/$defs/ContentVector" }] }
1363
+ }
1364
+ },
1365
+ required: ["node", "children"],
1366
+ additionalProperties: false
1367
+ },
1368
+ SectionConstructGroup: {
1369
+ type: "object",
1370
+ properties: {
1371
+ node: { $ref: "#/$defs/ConstructDescriptor" },
1372
+ style: { type: "string" },
1373
+ children: {
1374
+ type: "array",
1375
+ items: { oneOf: [
1376
+ { $ref: "#/$defs/HeadingGroup" },
1377
+ { $ref: "#/$defs/ListGroup" },
1378
+ { $ref: "#/$defs/SectionConstructGroup" },
1379
+ { $ref: "#/$defs/ContentBlock" }
1380
+ ] }
1381
+ }
1382
+ },
1383
+ required: ["node", "children"],
1384
+ additionalProperties: false
1385
+ },
1386
+ ShapeConstructGroup: {
1387
+ type: "object",
1388
+ properties: {
1389
+ node: { $ref: "#/$defs/ConstructDescriptor" },
1390
+ style: { type: "string" },
1391
+ children: {
1392
+ type: "array",
1393
+ items: { oneOf: [
1394
+ { $ref: "#/$defs/ListGroup" },
1395
+ { $ref: "#/$defs/ShapeConstructGroup" },
1396
+ { $ref: "#/$defs/ContentBlock" }
1397
+ ] }
1398
+ }
1399
+ },
1400
+ required: ["node", "children"],
1401
+ additionalProperties: false
1402
+ },
1403
+ ContentControlDescriptor: {
1404
+ type: "object",
1405
+ properties: {
1406
+ kind: {
1407
+ type: "string",
1408
+ const: "contentControl"
1409
+ },
1410
+ controlType: {
1411
+ type: "string",
1412
+ enum: [
1413
+ "richText",
1414
+ "plainText",
1415
+ "checkbox",
1416
+ "dropDown",
1417
+ "comboBox",
1418
+ "date",
1419
+ "picture",
1420
+ "repeatingSection",
1421
+ "button",
1422
+ "index",
1423
+ "group"
1424
+ ]
1425
+ },
1426
+ tag: { type: "string" },
1427
+ alias: { type: "string" },
1428
+ lock: {
1429
+ type: "string",
1430
+ enum: [
1431
+ "content",
1432
+ "container",
1433
+ "both"
1434
+ ]
1435
+ },
1436
+ value: { type: "string" },
1437
+ checked: { type: "boolean" },
1438
+ options: {
1439
+ type: "array",
1440
+ items: { type: "string" }
1441
+ }
1442
+ },
1443
+ required: ["kind", "controlType"],
1444
+ additionalProperties: false
1445
+ },
1446
+ FieldDescriptor: {
1447
+ type: "object",
1448
+ properties: {
1449
+ kind: {
1450
+ type: "string",
1451
+ const: "field"
1452
+ },
1453
+ instruction: { type: "string" },
1454
+ cachedResult: { type: "string" }
1455
+ },
1456
+ required: ["kind", "instruction"],
1457
+ additionalProperties: false
1458
+ },
1459
+ AnchorDescriptor: {
1460
+ type: "object",
1461
+ properties: {
1462
+ kind: {
1463
+ type: "string",
1464
+ const: "anchor"
1465
+ },
1466
+ anchorType: {
1467
+ type: "string",
1468
+ enum: [
1469
+ "bookmark",
1470
+ "footnote",
1471
+ "endnote",
1472
+ "comment"
1473
+ ]
1474
+ },
1475
+ name: { type: "string" },
1476
+ definition: { type: "string" }
1477
+ },
1478
+ required: [
1479
+ "kind",
1480
+ "anchorType",
1481
+ "name"
1482
+ ],
1483
+ additionalProperties: false
1484
+ },
1485
+ LinkTarget: { oneOf: [{
1486
+ type: "object",
1487
+ properties: {
1488
+ kind: {
1489
+ type: "string",
1490
+ const: "external"
1491
+ },
1492
+ uri: { type: "string" }
1493
+ },
1494
+ required: ["kind", "uri"],
1495
+ additionalProperties: false
1496
+ }, {
1497
+ type: "object",
1498
+ properties: {
1499
+ kind: {
1500
+ type: "string",
1501
+ const: "internal"
1502
+ },
1503
+ anchor: { type: "string" }
1504
+ },
1505
+ required: ["kind", "anchor"],
1506
+ additionalProperties: false
1507
+ }] },
1508
+ LinkDescriptor: {
1509
+ type: "object",
1510
+ properties: {
1511
+ kind: {
1512
+ type: "string",
1513
+ const: "link"
1514
+ },
1515
+ target: { $ref: "#/$defs/LinkTarget" },
1516
+ title: { type: "string" }
1517
+ },
1518
+ required: ["kind", "target"],
1519
+ additionalProperties: false
1520
+ },
1521
+ ProvenanceDescriptor: {
1522
+ type: "object",
1523
+ properties: {
1524
+ kind: {
1525
+ type: "string",
1526
+ const: "provenance"
1527
+ },
1528
+ change: {
1529
+ type: "string",
1530
+ enum: [
1531
+ "insertion",
1532
+ "deletion",
1533
+ "moveFrom",
1534
+ "moveTo",
1535
+ "formatChange"
1536
+ ]
1537
+ },
1538
+ author: { type: "string" },
1539
+ dateIso: { type: "string" }
1540
+ },
1541
+ required: ["kind", "change"],
1542
+ additionalProperties: false
1543
+ },
1544
+ DivisionSource: {
1545
+ type: "object",
1546
+ properties: {
1547
+ href: { type: "string" },
1548
+ sectionName: { type: "string" }
1549
+ },
1550
+ required: ["href"],
1551
+ additionalProperties: false
1552
+ },
1553
+ DivisionDescriptor: {
1554
+ type: "object",
1555
+ properties: {
1556
+ kind: {
1557
+ type: "string",
1558
+ const: "division"
1559
+ },
1560
+ name: { type: "string" },
1561
+ columnCount: {
1562
+ type: "integer",
1563
+ exclusiveMinimum: 0,
1564
+ maximum: MAX_SAFE_INTEGER
1565
+ },
1566
+ protected: { type: "boolean" },
1567
+ source: { $ref: "#/$defs/DivisionSource" }
1568
+ },
1569
+ required: ["kind"],
1570
+ additionalProperties: false
1571
+ },
1572
+ ConstructDescriptor: { oneOf: [
1573
+ { $ref: "#/$defs/ContentControlDescriptor" },
1574
+ { $ref: "#/$defs/FieldDescriptor" },
1575
+ { $ref: "#/$defs/AnchorDescriptor" },
1576
+ { $ref: "#/$defs/LinkDescriptor" },
1577
+ { $ref: "#/$defs/ProvenanceDescriptor" },
1578
+ { $ref: "#/$defs/DivisionDescriptor" }
1579
+ ] },
1580
+ StyleParagraphProperties: {
1581
+ type: "object",
1582
+ properties: {
1583
+ alignment: { $ref: "#/$defs/Alignment" },
1584
+ list: { $ref: "#/$defs/ContentListMembership" },
1585
+ spacingBeforePt: { type: "number" },
1586
+ spacingAfterPt: { type: "number" },
1587
+ lineSpacing: {
1588
+ type: "number",
1589
+ exclusiveMinimum: 0
1590
+ },
1591
+ indentLeftPt: { type: "number" },
1592
+ indentFirstLinePt: { type: "number" }
1593
+ },
1594
+ additionalProperties: false
1595
+ },
1596
+ StyleRunProperties: {
1597
+ type: "object",
1598
+ properties: {
1599
+ bold: { type: "boolean" },
1600
+ italic: { type: "boolean" },
1601
+ underline: { type: "boolean" },
1602
+ strike: { type: "boolean" },
1603
+ fontFamily: { type: "string" },
1604
+ sizePt: {
1605
+ type: "number",
1606
+ exclusiveMinimum: 0
1607
+ },
1608
+ color: { $ref: "#/$defs/Color" }
1609
+ },
1610
+ additionalProperties: false
1611
+ },
1612
+ StyleEntry: {
1613
+ type: "object",
1614
+ properties: {
1615
+ paragraph: { $ref: "#/$defs/StyleParagraphProperties" },
1616
+ run: { $ref: "#/$defs/StyleRunProperties" }
1617
+ },
1618
+ additionalProperties: false
1619
+ },
1620
+ DefinitionEntry: {
1621
+ type: "object",
1622
+ properties: { kind: { type: "string" } },
1623
+ required: ["kind"],
1624
+ additionalProperties: {}
1625
+ },
399
1626
  MathMlAttribute: {
400
1627
  type: "object",
401
1628
  properties: {