@rathnasgala2/schemas 3.14.1 → 3.16.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 (81) hide show
  1. package/README.md +41 -34
  2. package/THIRD_PARTY_LICENSES.json +1 -1
  3. package/diagnostics/diagnostic-map.json +399 -4
  4. package/docs/catalogs/app-components.json +3421 -4320
  5. package/docs/catalogs/app-routes.json +1921 -2435
  6. package/docs/catalogs/schema-inventory.json +15 -5
  7. package/examples/valid/analytics-config/canonical.json +6 -0
  8. package/examples/valid/analytics-config/rules.json +334 -0
  9. package/examples/valid/build-input/rules.json +202 -0
  10. package/examples/valid/publication/rules.json +49 -0
  11. package/examples/valid/theme-contract/rules.json +64 -4
  12. package/fixtures/boundary/analytics-config/root.json +6 -0
  13. package/fixtures/boundary/analytics-config/rules.json +470 -0
  14. package/fixtures/boundary/build-input/rules.json +207 -0
  15. package/fixtures/boundary/publication/rules.json +54 -0
  16. package/fixtures/boundary/theme-contract/rules.json +64 -4
  17. package/fixtures/invalid/analytics-config/BCP47_INVALID/cases.json +56 -0
  18. package/fixtures/invalid/analytics-config/CANONICAL_ROUTE_INVALID/cases.json +38 -0
  19. package/fixtures/invalid/analytics-config/DIGEST_INVALID/cases.json +20 -0
  20. package/fixtures/invalid/analytics-config/EXTENSION_KEY_INVALID/cases.json +20 -0
  21. package/fixtures/invalid/analytics-config/GIT_OBJECT_ID_INVALID/cases.json +20 -0
  22. package/fixtures/invalid/analytics-config/HTTPS_URL_INVALID/cases.json +29 -0
  23. package/fixtures/invalid/analytics-config/ISO_COUNTRY_INVALID/cases.json +20 -0
  24. package/fixtures/invalid/analytics-config/PACKAGE_EXACT_INVALID/cases.json +38 -0
  25. package/fixtures/invalid/analytics-config/PACKAGE_RANGE_INVALID/cases.json +38 -0
  26. package/fixtures/invalid/analytics-config/PASSIVE_VISUAL_TOKEN_INVALID/cases.json +11 -0
  27. package/fixtures/invalid/analytics-config/PLAIN_LABEL_INVALID/cases.json +31 -0
  28. package/fixtures/invalid/analytics-config/PLAIN_TEXT_INVALID/cases.json +20 -0
  29. package/fixtures/invalid/analytics-config/REPOSITORY_GLOB_INVALID/cases.json +47 -0
  30. package/fixtures/invalid/analytics-config/REPOSITORY_PATH_INVALID/cases.json +58 -0
  31. package/fixtures/invalid/analytics-config/REQUEST_FIELD_UNKNOWN/cases.json +46 -0
  32. package/fixtures/invalid/analytics-config/RFC3339_INVALID/cases.json +29 -0
  33. package/fixtures/invalid/analytics-config/SCHEMA_ENUM_INVALID/cases.json +24 -0
  34. package/fixtures/invalid/analytics-config/SCHEMA_PATTERN_INVALID/cases.json +13 -0
  35. package/fixtures/invalid/analytics-config/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +92 -0
  36. package/fixtures/invalid/analytics-config/SCHEMA_TYPE_INVALID/cases.json +40 -0
  37. package/fixtures/invalid/analytics-config/SCHEMA_VERSION_UNSUPPORTED/cases.json +20 -0
  38. package/fixtures/invalid/analytics-config/SEMVER_INVALID/cases.json +20 -0
  39. package/fixtures/invalid/analytics-config/SEMVER_RANGE_INVALID/cases.json +38 -0
  40. package/fixtures/invalid/analytics-config/SLUG_INVALID/cases.json +38 -0
  41. package/fixtures/invalid/analytics-config/STABLE_ID_INVALID/cases.json +20 -0
  42. package/fixtures/invalid/analytics-config/URN_INVALID/cases.json +38 -0
  43. package/fixtures/invalid/build-input/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  44. package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +137 -0
  45. package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +22 -0
  46. package/fixtures/invalid/build-input/SCHEMA_PATTERN_INVALID/cases.json +11 -0
  47. package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +194 -0
  48. package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +71 -0
  49. package/fixtures/invalid/build-input/SCHEMA_VERSION_UNSUPPORTED/cases.json +22 -0
  50. package/fixtures/invalid/publication/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  51. package/fixtures/invalid/publication/REQUEST_FIELD_UNKNOWN/cases.json +28 -0
  52. package/fixtures/invalid/publication/SCHEMA_PATTERN_INVALID/cases.json +11 -0
  53. package/fixtures/invalid/publication/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +44 -0
  54. package/fixtures/invalid/publication/SCHEMA_TYPE_INVALID/cases.json +18 -0
  55. package/fixtures/invalid/theme-contract/SCHEMA_CONSTANT_INVALID/cases.json +33 -22
  56. package/fixtures/invalid/theme-contract/SCHEMA_ENUM_INVALID/cases.json +33 -0
  57. package/fixtures/invalid/theme-contract/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +22 -0
  58. package/fixtures/manifest.json +3066 -16
  59. package/fixtures/s2/empty-modules-placements.json +452 -0
  60. package/fixtures/s2/manifest.json +2 -0
  61. package/fixtures/unknown-field/analytics-config/root.json +7 -0
  62. package/fixtures/unknown-field/analytics-config/rules.json +131 -0
  63. package/fixtures/unknown-field/build-input/rules.json +162 -0
  64. package/fixtures/unknown-field/publication/rules.json +38 -0
  65. package/fixtures/unknown-field/theme-contract/rules.json +8 -2
  66. package/generated/browser/validator-core.mjs +4 -3
  67. package/generated/typescript/contracts/analytics-config.d.ts +54 -0
  68. package/generated/typescript/contracts/build-input.d.ts +26 -0
  69. package/generated/typescript/contracts/publication.d.ts +11 -0
  70. package/generated/typescript/index.d.ts +4 -0
  71. package/generated/typescript/index.js +14 -0
  72. package/openapi/http-catalog.json +54 -2
  73. package/openapi/openapi.yaml +4564 -3334
  74. package/package.json +4 -1
  75. package/sbom.cdx.json +23 -23
  76. package/schemas/analytics-config.schema.json +161 -0
  77. package/schemas/build-input.schema.json +66 -0
  78. package/schemas/publication.schema.json +22 -0
  79. package/schemas/theme-contract.schema.json +25 -3
  80. package/site-policy-defaults.json +10 -0
  81. package/src/internal/schema-validator.js +3 -0
@@ -645,6 +645,458 @@
645
645
  },
646
646
  "expectedDiagnostics": []
647
647
  },
648
+ {
649
+ "caseId": "build-input-valid-analytics-module",
650
+ "schemaId": "urn:gala:schema:build-input:2.0.0",
651
+ "instance": {
652
+ "schemaId": "urn:gala:schema:build-input:2.0.0",
653
+ "schemaVersion": "2.0.0",
654
+ "contractVersion": "2.0.0",
655
+ "repository": {
656
+ "repositoryId": "1",
657
+ "repositoryOwnerId": "1",
658
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
659
+ "rootDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
660
+ },
661
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
662
+ "packages": {
663
+ "schemas": {
664
+ "package": "@rathnasgala2/schemas",
665
+ "version": "2.0.0",
666
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
667
+ "registry": "https://fixture-1.example.com/"
668
+ },
669
+ "template": {
670
+ "package": "@rathnasgala2/template",
671
+ "version": "2.0.0",
672
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
673
+ "registry": "https://fixture-1.example.com/"
674
+ },
675
+ "theme": {
676
+ "package": "@rathnasgala2/theme-default",
677
+ "version": "2.0.0",
678
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
679
+ "registry": "https://fixture-1.example.com/"
680
+ },
681
+ "publisher": [
682
+ {
683
+ "package": "@rathnasgala2/publish-action",
684
+ "version": "2.0.0",
685
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
686
+ "registry": "https://fixture-1.example.com/"
687
+ },
688
+ {
689
+ "package": "@rathnasgala2/publish-kernel",
690
+ "version": "2.0.0",
691
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000002",
692
+ "registry": "https://fixture-2.example.com/"
693
+ },
694
+ {
695
+ "package": "@rathnasgala2/adapter-protocol",
696
+ "version": "2.0.0",
697
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000003",
698
+ "registry": "https://fixture-3.example.com/"
699
+ },
700
+ {
701
+ "package": "@rathnasgala2/adapter-local-directory",
702
+ "version": "2.0.0",
703
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000004",
704
+ "registry": "https://fixture-4.example.com/"
705
+ }
706
+ ],
707
+ "dependencies": [
708
+ {
709
+ "package": "fixture-1",
710
+ "version": "2.0.0",
711
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
712
+ "registry": "https://fixture-1.example.com/"
713
+ }
714
+ ]
715
+ },
716
+ "publication": {
717
+ "id": "019c0000-0000-7000-8000-000000000001",
718
+ "slug": "fixture-1",
719
+ "title": "fixture-1",
720
+ "description": "fixture-1",
721
+ "canonicalBase": "https://fixture-1.example.com/",
722
+ "defaultLanguage": "en-US",
723
+ "authorIds": ["019c0000-0000-7000-8000-000000000001"],
724
+ "socialLinks": [
725
+ { "type": "website", "uri": "https://fixture-1.example.com/" }
726
+ ],
727
+ "sourcePath": "content/fixture-1.md",
728
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
729
+ },
730
+ "authors": [
731
+ {
732
+ "id": "019c0000-0000-7000-8000-000000000001",
733
+ "displayName": "fixture-1",
734
+ "biography": "fixture-1",
735
+ "links": [
736
+ { "type": "website", "uri": "https://fixture-1.example.com/" }
737
+ ],
738
+ "localized": [
739
+ {
740
+ "language": "en-US",
741
+ "displayName": "fixture-1",
742
+ "biography": "fixture-1"
743
+ }
744
+ ],
745
+ "sourcePath": "content/fixture-1.md",
746
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
747
+ }
748
+ ],
749
+ "content": [
750
+ {
751
+ "frontmatter": {
752
+ "id": "019c0000-0000-7000-8000-000000000001",
753
+ "kind": "article",
754
+ "title": "fixture-1",
755
+ "language": "en-US",
756
+ "authorIds": ["019c0000-0000-7000-8000-000000000001"],
757
+ "tags": ["fixture-1"],
758
+ "status": "published",
759
+ "createdAt": "2026-09-13T12:00:00.000Z",
760
+ "publishedAt": "2026-09-13T12:00:00.000Z",
761
+ "slug": "fixture-1",
762
+ "redirects": ["/fixture-1"]
763
+ },
764
+ "body": "fixture-1",
765
+ "bodyMediaType": "text/html",
766
+ "bodyDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
767
+ "renderPolicy": {
768
+ "name": "gala-render-policy",
769
+ "version": "2.0.0",
770
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
771
+ },
772
+ "sourcePath": "content/fixture-1.md",
773
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
774
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
775
+ "resolvedAuthorIds": ["019c0000-0000-7000-8000-000000000001"]
776
+ }
777
+ ],
778
+ "navigation": {
779
+ "items": [
780
+ {
781
+ "type": "internal",
782
+ "label": "fixture-1",
783
+ "children": [
784
+ {
785
+ "type": "internal",
786
+ "label": "fixture-1",
787
+ "children": [],
788
+ "route": "/fixture-1"
789
+ }
790
+ ],
791
+ "route": "/fixture-1"
792
+ }
793
+ ],
794
+ "footerItems": [
795
+ {
796
+ "type": "internal",
797
+ "label": "fixture-1",
798
+ "children": [
799
+ {
800
+ "type": "internal",
801
+ "label": "fixture-1",
802
+ "children": [],
803
+ "route": "/fixture-1"
804
+ }
805
+ ],
806
+ "route": "/fixture-1"
807
+ }
808
+ ],
809
+ "source": {
810
+ "kind": "authored",
811
+ "sourcePath": "content/fixture-1.md",
812
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
813
+ }
814
+ },
815
+ "appearance": {
816
+ "theme": "@rathnasgala2/theme-default@2.0.0",
817
+ "colorMode": { "allowed": ["light"], "default": "light" },
818
+ "headerComposition": "mark-and-name",
819
+ "footerComposition": "profile",
820
+ "typeScale": "compact",
821
+ "fontAssets": [
822
+ {
823
+ "path": "content/fixture-1.md",
824
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
825
+ }
826
+ ],
827
+ "tokens": {},
828
+ "source": {
829
+ "kind": "authored",
830
+ "sourcePath": "content/fixture-1.md",
831
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
832
+ }
833
+ },
834
+ "modules": {
835
+ "analytics": {
836
+ "config": {
837
+ "schemaId": "urn:gala:schema:analytics-config:2.0.0",
838
+ "schemaVersion": "2.0.0",
839
+ "provider": {
840
+ "kind": "google-analytics-4",
841
+ "measurementId": "G-ABC123XYZ"
842
+ },
843
+ "consent": { "policy": "opt-in" }
844
+ }
845
+ }
846
+ },
847
+ "buildEpoch": "2026-09-13T12:00:00.000Z",
848
+ "baseUrl": "https://fixture-1.example.com/",
849
+ "basePath": "/fixture-1",
850
+ "destinationCapabilities": {
851
+ "adapter": {
852
+ "adapterId": "local-directory",
853
+ "adapterVersion": "2.0.0",
854
+ "adapterDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
855
+ },
856
+ "baseUrl": "https://fixture-1.example.com/",
857
+ "capabilityDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
858
+ },
859
+ "placements": [],
860
+ "inputDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
861
+ },
862
+ "expectedDiagnostics": []
863
+ },
864
+ {
865
+ "caseId": "build-input-valid-policies",
866
+ "schemaId": "urn:gala:schema:build-input:2.0.0",
867
+ "instance": {
868
+ "schemaId": "urn:gala:schema:build-input:2.0.0",
869
+ "schemaVersion": "2.0.0",
870
+ "contractVersion": "2.0.0",
871
+ "repository": {
872
+ "repositoryId": "1",
873
+ "repositoryOwnerId": "1",
874
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
875
+ "rootDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
876
+ },
877
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
878
+ "packages": {
879
+ "schemas": {
880
+ "package": "@rathnasgala2/schemas",
881
+ "version": "2.0.0",
882
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
883
+ "registry": "https://fixture-1.example.com/"
884
+ },
885
+ "template": {
886
+ "package": "@rathnasgala2/template",
887
+ "version": "2.0.0",
888
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
889
+ "registry": "https://fixture-1.example.com/"
890
+ },
891
+ "theme": {
892
+ "package": "@rathnasgala2/theme-default",
893
+ "version": "2.0.0",
894
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
895
+ "registry": "https://fixture-1.example.com/"
896
+ },
897
+ "publisher": [
898
+ {
899
+ "package": "@rathnasgala2/publish-action",
900
+ "version": "2.0.0",
901
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
902
+ "registry": "https://fixture-1.example.com/"
903
+ },
904
+ {
905
+ "package": "@rathnasgala2/publish-kernel",
906
+ "version": "2.0.0",
907
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000002",
908
+ "registry": "https://fixture-2.example.com/"
909
+ },
910
+ {
911
+ "package": "@rathnasgala2/adapter-protocol",
912
+ "version": "2.0.0",
913
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000003",
914
+ "registry": "https://fixture-3.example.com/"
915
+ },
916
+ {
917
+ "package": "@rathnasgala2/adapter-local-directory",
918
+ "version": "2.0.0",
919
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000004",
920
+ "registry": "https://fixture-4.example.com/"
921
+ }
922
+ ],
923
+ "dependencies": [
924
+ {
925
+ "package": "fixture-1",
926
+ "version": "2.0.0",
927
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
928
+ "registry": "https://fixture-1.example.com/"
929
+ }
930
+ ]
931
+ },
932
+ "publication": {
933
+ "id": "019c0000-0000-7000-8000-000000000001",
934
+ "slug": "fixture-1",
935
+ "title": "fixture-1",
936
+ "description": "fixture-1",
937
+ "canonicalBase": "https://fixture-1.example.com/",
938
+ "defaultLanguage": "en-US",
939
+ "authorIds": ["019c0000-0000-7000-8000-000000000001"],
940
+ "socialLinks": [
941
+ { "type": "website", "uri": "https://fixture-1.example.com/" }
942
+ ],
943
+ "sourcePath": "content/fixture-1.md",
944
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
945
+ },
946
+ "authors": [
947
+ {
948
+ "id": "019c0000-0000-7000-8000-000000000001",
949
+ "displayName": "fixture-1",
950
+ "biography": "fixture-1",
951
+ "links": [
952
+ { "type": "website", "uri": "https://fixture-1.example.com/" }
953
+ ],
954
+ "localized": [
955
+ {
956
+ "language": "en-US",
957
+ "displayName": "fixture-1",
958
+ "biography": "fixture-1"
959
+ }
960
+ ],
961
+ "sourcePath": "content/fixture-1.md",
962
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
963
+ }
964
+ ],
965
+ "content": [
966
+ {
967
+ "frontmatter": {
968
+ "id": "019c0000-0000-7000-8000-000000000001",
969
+ "kind": "article",
970
+ "title": "fixture-1",
971
+ "language": "en-US",
972
+ "authorIds": ["019c0000-0000-7000-8000-000000000001"],
973
+ "tags": ["fixture-1"],
974
+ "status": "published",
975
+ "createdAt": "2026-09-13T12:00:00.000Z",
976
+ "publishedAt": "2026-09-13T12:00:00.000Z",
977
+ "slug": "fixture-1",
978
+ "redirects": ["/fixture-1"]
979
+ },
980
+ "body": "fixture-1",
981
+ "bodyMediaType": "text/html",
982
+ "bodyDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
983
+ "renderPolicy": {
984
+ "name": "gala-render-policy",
985
+ "version": "2.0.0",
986
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
987
+ },
988
+ "sourcePath": "content/fixture-1.md",
989
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
990
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
991
+ "resolvedAuthorIds": ["019c0000-0000-7000-8000-000000000001"]
992
+ }
993
+ ],
994
+ "navigation": {
995
+ "items": [
996
+ {
997
+ "type": "internal",
998
+ "label": "fixture-1",
999
+ "children": [
1000
+ {
1001
+ "type": "internal",
1002
+ "label": "fixture-1",
1003
+ "children": [],
1004
+ "route": "/fixture-1"
1005
+ }
1006
+ ],
1007
+ "route": "/fixture-1"
1008
+ }
1009
+ ],
1010
+ "footerItems": [
1011
+ {
1012
+ "type": "internal",
1013
+ "label": "fixture-1",
1014
+ "children": [
1015
+ {
1016
+ "type": "internal",
1017
+ "label": "fixture-1",
1018
+ "children": [],
1019
+ "route": "/fixture-1"
1020
+ }
1021
+ ],
1022
+ "route": "/fixture-1"
1023
+ }
1024
+ ],
1025
+ "source": {
1026
+ "kind": "authored",
1027
+ "sourcePath": "content/fixture-1.md",
1028
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
1029
+ }
1030
+ },
1031
+ "appearance": {
1032
+ "theme": "@rathnasgala2/theme-default@2.0.0",
1033
+ "colorMode": { "allowed": ["light"], "default": "light" },
1034
+ "headerComposition": "mark-and-name",
1035
+ "footerComposition": "profile",
1036
+ "typeScale": "compact",
1037
+ "fontAssets": [
1038
+ {
1039
+ "path": "content/fixture-1.md",
1040
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
1041
+ }
1042
+ ],
1043
+ "tokens": {},
1044
+ "source": {
1045
+ "kind": "authored",
1046
+ "sourcePath": "content/fixture-1.md",
1047
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
1048
+ }
1049
+ },
1050
+ "modules": {},
1051
+ "buildEpoch": "2026-09-13T12:00:00.000Z",
1052
+ "baseUrl": "https://fixture-1.example.com/",
1053
+ "basePath": "/fixture-1",
1054
+ "destinationCapabilities": {
1055
+ "adapter": {
1056
+ "adapterId": "local-directory",
1057
+ "adapterVersion": "2.0.0",
1058
+ "adapterDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
1059
+ },
1060
+ "baseUrl": "https://fixture-1.example.com/",
1061
+ "capabilityDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
1062
+ },
1063
+ "placements": [],
1064
+ "inputDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
1065
+ "policies": {
1066
+ "terms": {
1067
+ "title": "Terms",
1068
+ "body": {
1069
+ "sourcePath": "gala/policies/terms.md",
1070
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
1071
+ "bodyMediaType": "text/html",
1072
+ "body": "fixture-1",
1073
+ "bodyDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
1074
+ "renderPolicy": {
1075
+ "name": "gala-render-policy",
1076
+ "version": "2.0.0",
1077
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
1078
+ }
1079
+ }
1080
+ },
1081
+ "privacy": {
1082
+ "title": "Privacy",
1083
+ "body": {
1084
+ "sourcePath": "gala/policies/privacy.md",
1085
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
1086
+ "bodyMediaType": "text/html",
1087
+ "body": "fixture-1",
1088
+ "bodyDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
1089
+ "renderPolicy": {
1090
+ "name": "gala-render-policy",
1091
+ "version": "2.0.0",
1092
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
1093
+ }
1094
+ }
1095
+ }
1096
+ }
1097
+ },
1098
+ "expectedDiagnostics": []
1099
+ },
648
1100
  {
649
1101
  "caseId": "build-input-rejects-nonempty-placements",
650
1102
  "schemaId": "urn:gala:schema:build-input:2.0.0",
@@ -26,6 +26,8 @@
26
26
  "build-input-valid-empty-modules-placements",
27
27
  "build-input-rejects-nonempty-modules",
28
28
  "build-input-valid-interactions-module",
29
+ "build-input-valid-analytics-module",
30
+ "build-input-valid-policies",
29
31
  "build-input-rejects-nonempty-placements"
30
32
  ],
31
33
  "publicCoverage": "registered-schema-structural-vectors",
@@ -0,0 +1,7 @@
1
+ {
2
+ "schemaId": "urn:gala:schema:analytics-config:2.0.0",
3
+ "schemaVersion": "2.0.0",
4
+ "provider": { "kind": "google-analytics-4", "measurementId": "G-ABC123XYZ" },
5
+ "consent": { "policy": "opt-in" },
6
+ "unexpected": true
7
+ }
@@ -0,0 +1,131 @@
1
+ [
2
+ {
3
+ "caseId": "analytics-config-unknown-334359b90efed75d",
4
+ "coveredRuleIds": [
5
+ "analytics-config:#/$defs/bcp47:format",
6
+ "analytics-config:#/$defs/bcp47:maxLength",
7
+ "analytics-config:#/$defs/bcp47:minLength",
8
+ "analytics-config:#/$defs/bcp47:pattern",
9
+ "analytics-config:#/$defs/bcp47:type",
10
+ "analytics-config:#/$defs/bcp47:x-gala-utf8ByteLength",
11
+ "analytics-config:#/$defs/canonicalRoute:format",
12
+ "analytics-config:#/$defs/canonicalRoute:minLength",
13
+ "analytics-config:#/$defs/canonicalRoute:pattern",
14
+ "analytics-config:#/$defs/canonicalRoute:type",
15
+ "analytics-config:#/$defs/digest:pattern",
16
+ "analytics-config:#/$defs/digest:type",
17
+ "analytics-config:#/$defs/extensionKey:format",
18
+ "analytics-config:#/$defs/extensionKey:type",
19
+ "analytics-config:#/$defs/gitObjectId:pattern",
20
+ "analytics-config:#/$defs/gitObjectId:type",
21
+ "analytics-config:#/$defs/glob:format",
22
+ "analytics-config:#/$defs/glob:maxLength",
23
+ "analytics-config:#/$defs/glob:minLength",
24
+ "analytics-config:#/$defs/glob:type",
25
+ "analytics-config:#/$defs/glob:x-gala-utf8ByteLength",
26
+ "analytics-config:#/$defs/isoCountry:format",
27
+ "analytics-config:#/$defs/isoCountry:pattern",
28
+ "analytics-config:#/$defs/isoCountry:type",
29
+ "analytics-config:#/$defs/packageExact:format",
30
+ "analytics-config:#/$defs/packageExact:minLength",
31
+ "analytics-config:#/$defs/packageExact:pattern",
32
+ "analytics-config:#/$defs/packageExact:type",
33
+ "analytics-config:#/$defs/packageRange:format",
34
+ "analytics-config:#/$defs/packageRange:minLength",
35
+ "analytics-config:#/$defs/packageRange:pattern",
36
+ "analytics-config:#/$defs/packageRange:type",
37
+ "analytics-config:#/$defs/passiveVisualToken:false",
38
+ "analytics-config:#/$defs/plainLabel:format",
39
+ "analytics-config:#/$defs/plainLabel:type",
40
+ "analytics-config:#/$defs/plainLabel:x-gala-graphemeLength",
41
+ "analytics-config:#/$defs/plainText:format",
42
+ "analytics-config:#/$defs/plainText:type",
43
+ "analytics-config:#/$defs/repoRelativePath:format",
44
+ "analytics-config:#/$defs/repoRelativePath:maxLength",
45
+ "analytics-config:#/$defs/repoRelativePath:minLength",
46
+ "analytics-config:#/$defs/repoRelativePath:pattern",
47
+ "analytics-config:#/$defs/repoRelativePath:type",
48
+ "analytics-config:#/$defs/repoRelativePath:x-gala-utf8ByteLength",
49
+ "analytics-config:#/$defs/rfc3339:format",
50
+ "analytics-config:#/$defs/rfc3339:pattern",
51
+ "analytics-config:#/$defs/rfc3339:type",
52
+ "analytics-config:#/$defs/semver:pattern",
53
+ "analytics-config:#/$defs/semver:type",
54
+ "analytics-config:#/$defs/semverRange:format",
55
+ "analytics-config:#/$defs/semverRange:minLength",
56
+ "analytics-config:#/$defs/semverRange:pattern",
57
+ "analytics-config:#/$defs/semverRange:type",
58
+ "analytics-config:#/$defs/slug:maxLength",
59
+ "analytics-config:#/$defs/slug:minLength",
60
+ "analytics-config:#/$defs/slug:pattern",
61
+ "analytics-config:#/$defs/slug:type",
62
+ "analytics-config:#/$defs/stableId:pattern",
63
+ "analytics-config:#/$defs/stableId:type",
64
+ "analytics-config:#/$defs/urlHttps:format",
65
+ "analytics-config:#/$defs/urlHttps:pattern",
66
+ "analytics-config:#/$defs/urlHttps:type",
67
+ "analytics-config:#/$defs/urn:format",
68
+ "analytics-config:#/$defs/urn:maxLength",
69
+ "analytics-config:#/$defs/urn:minLength",
70
+ "analytics-config:#/$defs/urn:pattern",
71
+ "analytics-config:#/$defs/urn:type",
72
+ "analytics-config:#/properties/schemaId:const",
73
+ "analytics-config:#/properties/schemaVersion:const",
74
+ "analytics-config:#:additionalProperties",
75
+ "analytics-config:#:required:consent",
76
+ "analytics-config:#:required:provider",
77
+ "analytics-config:#:required:schemaId",
78
+ "analytics-config:#:required:schemaVersion",
79
+ "analytics-config:#:type"
80
+ ],
81
+ "schemaId": "urn:gala:schema:analytics-config:2.0.0",
82
+ "schemaPointer": "#",
83
+ "keyword": "additionalProperties",
84
+ "instance": {
85
+ "schemaId": "urn:gala:schema:analytics-config:2.0.0",
86
+ "schemaVersion": "2.0.0",
87
+ "provider": {
88
+ "kind": "google-analytics-4",
89
+ "measurementId": "G-ABC123XYZ"
90
+ },
91
+ "consent": { "policy": "opt-in" },
92
+ "unexpected": true
93
+ },
94
+ "expectedCodes": ["REQUEST_FIELD_UNKNOWN"]
95
+ },
96
+ {
97
+ "caseId": "analytics-config-unknown-672f29c7ee657657",
98
+ "coveredRuleIds": [
99
+ "analytics-config:#/properties/consent/properties/policy:enum",
100
+ "analytics-config:#/properties/consent:additionalProperties",
101
+ "analytics-config:#/properties/consent:required:policy",
102
+ "analytics-config:#/properties/consent:type"
103
+ ],
104
+ "schemaId": "urn:gala:schema:analytics-config:2.0.0",
105
+ "schemaPointer": "#/properties/consent",
106
+ "keyword": "additionalProperties",
107
+ "instance": { "policy": "opt-in", "unexpected": true },
108
+ "expectedCodes": ["REQUEST_FIELD_UNKNOWN"]
109
+ },
110
+ {
111
+ "caseId": "analytics-config-unknown-765f709a2ae6275b",
112
+ "coveredRuleIds": [
113
+ "analytics-config:#/properties/provider/properties/kind:enum",
114
+ "analytics-config:#/properties/provider/properties/measurementId:pattern",
115
+ "analytics-config:#/properties/provider/properties/measurementId:type",
116
+ "analytics-config:#/properties/provider:additionalProperties",
117
+ "analytics-config:#/properties/provider:required:kind",
118
+ "analytics-config:#/properties/provider:required:measurementId",
119
+ "analytics-config:#/properties/provider:type"
120
+ ],
121
+ "schemaId": "urn:gala:schema:analytics-config:2.0.0",
122
+ "schemaPointer": "#/properties/provider",
123
+ "keyword": "additionalProperties",
124
+ "instance": {
125
+ "kind": "google-analytics-4",
126
+ "measurementId": "G-ABC123XYZ",
127
+ "unexpected": true
128
+ },
129
+ "expectedCodes": ["REQUEST_FIELD_UNKNOWN"]
130
+ }
131
+ ]