@rathnasgala2/schemas 3.15.0 → 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 (79) hide show
  1. package/README.md +12 -7
  2. package/diagnostics/diagnostic-map.json +399 -4
  3. package/docs/catalogs/app-routes.json +7 -2
  4. package/docs/catalogs/schema-inventory.json +15 -5
  5. package/examples/valid/analytics-config/canonical.json +6 -0
  6. package/examples/valid/analytics-config/rules.json +334 -0
  7. package/examples/valid/build-input/rules.json +202 -0
  8. package/examples/valid/publication/rules.json +49 -0
  9. package/examples/valid/theme-contract/rules.json +64 -4
  10. package/fixtures/boundary/analytics-config/root.json +6 -0
  11. package/fixtures/boundary/analytics-config/rules.json +470 -0
  12. package/fixtures/boundary/build-input/rules.json +207 -0
  13. package/fixtures/boundary/publication/rules.json +54 -0
  14. package/fixtures/boundary/theme-contract/rules.json +64 -4
  15. package/fixtures/invalid/analytics-config/BCP47_INVALID/cases.json +56 -0
  16. package/fixtures/invalid/analytics-config/CANONICAL_ROUTE_INVALID/cases.json +38 -0
  17. package/fixtures/invalid/analytics-config/DIGEST_INVALID/cases.json +20 -0
  18. package/fixtures/invalid/analytics-config/EXTENSION_KEY_INVALID/cases.json +20 -0
  19. package/fixtures/invalid/analytics-config/GIT_OBJECT_ID_INVALID/cases.json +20 -0
  20. package/fixtures/invalid/analytics-config/HTTPS_URL_INVALID/cases.json +29 -0
  21. package/fixtures/invalid/analytics-config/ISO_COUNTRY_INVALID/cases.json +20 -0
  22. package/fixtures/invalid/analytics-config/PACKAGE_EXACT_INVALID/cases.json +38 -0
  23. package/fixtures/invalid/analytics-config/PACKAGE_RANGE_INVALID/cases.json +38 -0
  24. package/fixtures/invalid/analytics-config/PASSIVE_VISUAL_TOKEN_INVALID/cases.json +11 -0
  25. package/fixtures/invalid/analytics-config/PLAIN_LABEL_INVALID/cases.json +31 -0
  26. package/fixtures/invalid/analytics-config/PLAIN_TEXT_INVALID/cases.json +20 -0
  27. package/fixtures/invalid/analytics-config/REPOSITORY_GLOB_INVALID/cases.json +47 -0
  28. package/fixtures/invalid/analytics-config/REPOSITORY_PATH_INVALID/cases.json +58 -0
  29. package/fixtures/invalid/analytics-config/REQUEST_FIELD_UNKNOWN/cases.json +46 -0
  30. package/fixtures/invalid/analytics-config/RFC3339_INVALID/cases.json +29 -0
  31. package/fixtures/invalid/analytics-config/SCHEMA_ENUM_INVALID/cases.json +24 -0
  32. package/fixtures/invalid/analytics-config/SCHEMA_PATTERN_INVALID/cases.json +13 -0
  33. package/fixtures/invalid/analytics-config/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +92 -0
  34. package/fixtures/invalid/analytics-config/SCHEMA_TYPE_INVALID/cases.json +40 -0
  35. package/fixtures/invalid/analytics-config/SCHEMA_VERSION_UNSUPPORTED/cases.json +20 -0
  36. package/fixtures/invalid/analytics-config/SEMVER_INVALID/cases.json +20 -0
  37. package/fixtures/invalid/analytics-config/SEMVER_RANGE_INVALID/cases.json +38 -0
  38. package/fixtures/invalid/analytics-config/SLUG_INVALID/cases.json +38 -0
  39. package/fixtures/invalid/analytics-config/STABLE_ID_INVALID/cases.json +20 -0
  40. package/fixtures/invalid/analytics-config/URN_INVALID/cases.json +38 -0
  41. package/fixtures/invalid/build-input/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  42. package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +137 -0
  43. package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +22 -0
  44. package/fixtures/invalid/build-input/SCHEMA_PATTERN_INVALID/cases.json +11 -0
  45. package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +194 -0
  46. package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +71 -0
  47. package/fixtures/invalid/build-input/SCHEMA_VERSION_UNSUPPORTED/cases.json +22 -0
  48. package/fixtures/invalid/publication/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  49. package/fixtures/invalid/publication/REQUEST_FIELD_UNKNOWN/cases.json +28 -0
  50. package/fixtures/invalid/publication/SCHEMA_PATTERN_INVALID/cases.json +11 -0
  51. package/fixtures/invalid/publication/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +44 -0
  52. package/fixtures/invalid/publication/SCHEMA_TYPE_INVALID/cases.json +18 -0
  53. package/fixtures/invalid/theme-contract/SCHEMA_CONSTANT_INVALID/cases.json +33 -22
  54. package/fixtures/invalid/theme-contract/SCHEMA_ENUM_INVALID/cases.json +33 -0
  55. package/fixtures/invalid/theme-contract/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +22 -0
  56. package/fixtures/manifest.json +3066 -16
  57. package/fixtures/s2/empty-modules-placements.json +452 -0
  58. package/fixtures/s2/manifest.json +2 -0
  59. package/fixtures/unknown-field/analytics-config/root.json +7 -0
  60. package/fixtures/unknown-field/analytics-config/rules.json +131 -0
  61. package/fixtures/unknown-field/build-input/rules.json +162 -0
  62. package/fixtures/unknown-field/publication/rules.json +38 -0
  63. package/fixtures/unknown-field/theme-contract/rules.json +8 -2
  64. package/generated/browser/validator-core.mjs +4 -3
  65. package/generated/typescript/contracts/analytics-config.d.ts +54 -0
  66. package/generated/typescript/contracts/build-input.d.ts +26 -0
  67. package/generated/typescript/contracts/publication.d.ts +11 -0
  68. package/generated/typescript/index.d.ts +4 -0
  69. package/generated/typescript/index.js +14 -0
  70. package/openapi/http-catalog.json +54 -2
  71. package/openapi/openapi.yaml +4564 -3334
  72. package/package.json +4 -1
  73. package/sbom.cdx.json +23 -23
  74. package/schemas/analytics-config.schema.json +161 -0
  75. package/schemas/build-input.schema.json +66 -0
  76. package/schemas/publication.schema.json +22 -0
  77. package/schemas/theme-contract.schema.json +25 -3
  78. package/site-policy-defaults.json +10 -0
  79. package/src/internal/schema-validator.js +3 -0
package/README.md CHANGED
@@ -5,7 +5,7 @@ the OpenAPI contract, generated validators, and generated consumer types. It
5
5
  does not contain API business behavior, UI code, publication rendering, or
6
6
  infrastructure configuration.
7
7
 
8
- This repository contains all 21 S0-T04 JSON Schema roots: the six author-source
8
+ This repository contains all 22 S0-T04 JSON Schema roots: the six author-source
9
9
  contracts, the eleven composition/build/deployment contracts (SCHEMA-2.10.0 adds
10
10
  `build-provenance`, `urn:gala:metadata:build-provenance:2.0.0`, a pure addition
11
11
  nested identically at `artifact-manifest`'s internal `#/$defs/buildProvenance`
@@ -53,10 +53,10 @@ committed exact-result snapshot rejects mutually shared extra diagnostics. The
53
53
  same gate also executes 1,995 shared DEC-099 scalar vectors, including all 766
54
54
  pinned Unicode 17 grapheme-conformance rows, and raw RFC 8785 number and string
55
55
  spellings that have not first been normalized by Node. S0-T06 generates strict
56
- TypeScript root types and validators for the exact 21 roots (the codegen path
56
+ TypeScript root types and validators for the exact 22 roots (the codegen path
57
57
  also generated a Java 21 records/Networknt registry tree until SCH-C4/SCH-H5
58
58
  removed it as unconsumed -- see "Package layout"). The schema inventory adds the
59
- separately owned OpenAPI contract as the twenty-second identity and carries
59
+ separately owned OpenAPI contract as the twenty-third identity and carries
60
60
  DEC-091's domain-separated `sourceDesignRevision`. S0-T07 materializes the
61
61
  reviewed OpenAPI 3.1 source fragments, deterministic bundle, and digest-bound
62
62
  HTTP catalog for the MVP operations plus `/internal/health`. The operation set
@@ -376,7 +376,7 @@ server-derived members. `destinationIdentity` gains an optional closed
376
376
  it has always answered, `repository-changes:plan` names the two digests its
377
377
  confirm is fenced on, and no `format: date-time` member in the bundle carries a
378
378
  `pattern` any longer -- a generated `OffsetDateTime` cannot carry one, and the
379
- requirement moves into each member's description while all twenty-one JSON
379
+ requirement moves into each member's description while all twenty-two JSON
380
380
  Schema roots keep enforcing it. Two reads join the contract --
381
381
  `GET .../publications/{publicationId}/reviews` (keyset, optional `state` filter,
382
382
  rows of the new `ReviewSummary`, which the single review read is now defined as)
@@ -614,7 +614,7 @@ remediation, and documentation URL fields without including authored values.
614
614
  ## Package layout
615
615
 
616
616
  - `src/` — JavaScript ESM runtime package surface, checked from JSDoc;
617
- `index.js` is the twenty-one-contract `.` export (through
617
+ `index.js` is the twenty-two-contract `.` export (through
618
618
  `internal/browser-schema-validator.js`) and `runtime-origins.js` the narrow
619
619
  single-contract browser export, both bound to precompiled standalone
620
620
  validators (SCH-C2) through `internal/validator-core.js`'s
@@ -624,8 +624,13 @@ remediation, and documentation URL fields without including authored values.
624
624
  `./digest-profiles` re-export of `internal/digest-profiles.js`;
625
625
  `frozen-envelope.js` is the Node-only `./frozen-envelope` re-export of
626
626
  `internal/frozen-envelope.js`.
627
+ - `site-policy-defaults.json` — the default Terms and Privacy text of a site
628
+ (`{ terms, privacy }`, each `{ title, markdown }`), the
629
+ `./site-policy-defaults` export (SCHEMA-3.16.0). The one source for the
630
+ template's fallback, the App's "Reset to default" and the user-template seed
631
+ files; the API never carries the text.
627
632
  - `types/` — declaration output emitted from `src/`.
628
- - `schemas/` — 21 committed Draft 2020-12 contracts.
633
+ - `schemas/` — 22 committed Draft 2020-12 contracts.
629
634
  - `compatibility/baseline-schemas/` — the last-released `schemas/*.schema.json`,
630
635
  refreshed only at release time (`npm run compatibility:baseline:update`);
631
636
  `npm run compatibility:check` diffs the current committed schemas against it
@@ -660,7 +665,7 @@ remediation, and documentation URL fields without including authored values.
660
665
  standalone structural core in parallel (SCH-M5) -- that used a second 2.73 MB
661
666
  Ajv standalone CommonJS core whose result could never disagree with the exact
662
667
  one, so it added no assertion and doubled the work.
663
- - `docs/catalogs/schema-inventory.json` — exact 21 JSON Schema roots plus the
668
+ - `docs/catalogs/schema-inventory.json` — exact 22 JSON Schema roots plus the
664
669
  materialized OpenAPI identity.
665
670
  - `docs/COMPATIBILITY.md` — the compatibility policy `compatibility:check`
666
671
  enforces mechanically.
@@ -3590,6 +3590,258 @@
3590
3590
  "adapter-capability:#:type": {
3591
3591
  "code": "SCHEMA_TYPE_INVALID"
3592
3592
  },
3593
+ "analytics-config:#/$defs/bcp47:format": {
3594
+ "code": "BCP47_INVALID"
3595
+ },
3596
+ "analytics-config:#/$defs/bcp47:maxLength": {
3597
+ "code": "BCP47_INVALID"
3598
+ },
3599
+ "analytics-config:#/$defs/bcp47:minLength": {
3600
+ "code": "BCP47_INVALID"
3601
+ },
3602
+ "analytics-config:#/$defs/bcp47:pattern": {
3603
+ "code": "BCP47_INVALID"
3604
+ },
3605
+ "analytics-config:#/$defs/bcp47:type": {
3606
+ "code": "BCP47_INVALID"
3607
+ },
3608
+ "analytics-config:#/$defs/bcp47:x-gala-utf8ByteLength": {
3609
+ "code": "BCP47_INVALID"
3610
+ },
3611
+ "analytics-config:#/$defs/canonicalRoute:format": {
3612
+ "code": "CANONICAL_ROUTE_INVALID"
3613
+ },
3614
+ "analytics-config:#/$defs/canonicalRoute:minLength": {
3615
+ "code": "CANONICAL_ROUTE_INVALID"
3616
+ },
3617
+ "analytics-config:#/$defs/canonicalRoute:pattern": {
3618
+ "code": "CANONICAL_ROUTE_INVALID"
3619
+ },
3620
+ "analytics-config:#/$defs/canonicalRoute:type": {
3621
+ "code": "CANONICAL_ROUTE_INVALID"
3622
+ },
3623
+ "analytics-config:#/$defs/digest:pattern": {
3624
+ "code": "DIGEST_INVALID"
3625
+ },
3626
+ "analytics-config:#/$defs/digest:type": {
3627
+ "code": "DIGEST_INVALID"
3628
+ },
3629
+ "analytics-config:#/$defs/extensionKey:format": {
3630
+ "code": "EXTENSION_KEY_INVALID"
3631
+ },
3632
+ "analytics-config:#/$defs/extensionKey:type": {
3633
+ "code": "EXTENSION_KEY_INVALID"
3634
+ },
3635
+ "analytics-config:#/$defs/gitObjectId:pattern": {
3636
+ "code": "GIT_OBJECT_ID_INVALID"
3637
+ },
3638
+ "analytics-config:#/$defs/gitObjectId:type": {
3639
+ "code": "GIT_OBJECT_ID_INVALID"
3640
+ },
3641
+ "analytics-config:#/$defs/glob:format": {
3642
+ "code": "REPOSITORY_GLOB_INVALID"
3643
+ },
3644
+ "analytics-config:#/$defs/glob:maxLength": {
3645
+ "code": "REPOSITORY_GLOB_INVALID"
3646
+ },
3647
+ "analytics-config:#/$defs/glob:minLength": {
3648
+ "code": "REPOSITORY_GLOB_INVALID"
3649
+ },
3650
+ "analytics-config:#/$defs/glob:type": {
3651
+ "code": "REPOSITORY_GLOB_INVALID"
3652
+ },
3653
+ "analytics-config:#/$defs/glob:x-gala-utf8ByteLength": {
3654
+ "code": "REPOSITORY_GLOB_INVALID"
3655
+ },
3656
+ "analytics-config:#/$defs/isoCountry:pattern": {
3657
+ "code": "ISO_COUNTRY_INVALID"
3658
+ },
3659
+ "analytics-config:#/$defs/isoCountry:type": {
3660
+ "code": "ISO_COUNTRY_INVALID"
3661
+ },
3662
+ "analytics-config:#/$defs/packageExact:format": {
3663
+ "code": "PACKAGE_EXACT_INVALID"
3664
+ },
3665
+ "analytics-config:#/$defs/packageExact:minLength": {
3666
+ "code": "PACKAGE_EXACT_INVALID"
3667
+ },
3668
+ "analytics-config:#/$defs/packageExact:pattern": {
3669
+ "code": "PACKAGE_EXACT_INVALID"
3670
+ },
3671
+ "analytics-config:#/$defs/packageExact:type": {
3672
+ "code": "PACKAGE_EXACT_INVALID"
3673
+ },
3674
+ "analytics-config:#/$defs/packageRange:format": {
3675
+ "code": "PACKAGE_RANGE_INVALID"
3676
+ },
3677
+ "analytics-config:#/$defs/packageRange:minLength": {
3678
+ "code": "PACKAGE_RANGE_INVALID"
3679
+ },
3680
+ "analytics-config:#/$defs/packageRange:pattern": {
3681
+ "code": "PACKAGE_RANGE_INVALID"
3682
+ },
3683
+ "analytics-config:#/$defs/packageRange:type": {
3684
+ "code": "PACKAGE_RANGE_INVALID"
3685
+ },
3686
+ "analytics-config:#/$defs/passiveVisualToken:false": {
3687
+ "code": "PASSIVE_VISUAL_TOKEN_INVALID"
3688
+ },
3689
+ "analytics-config:#/$defs/plainLabel:format": {
3690
+ "code": "PLAIN_LABEL_INVALID"
3691
+ },
3692
+ "analytics-config:#/$defs/plainLabel:type": {
3693
+ "code": "PLAIN_LABEL_INVALID"
3694
+ },
3695
+ "analytics-config:#/$defs/plainLabel:x-gala-graphemeLength": {
3696
+ "code": "PLAIN_LABEL_INVALID"
3697
+ },
3698
+ "analytics-config:#/$defs/plainText:format": {
3699
+ "code": "PLAIN_TEXT_INVALID"
3700
+ },
3701
+ "analytics-config:#/$defs/plainText:type": {
3702
+ "code": "PLAIN_TEXT_INVALID"
3703
+ },
3704
+ "analytics-config:#/$defs/repoRelativePath:format": {
3705
+ "code": "REPOSITORY_PATH_INVALID"
3706
+ },
3707
+ "analytics-config:#/$defs/repoRelativePath:maxLength": {
3708
+ "code": "REPOSITORY_PATH_INVALID"
3709
+ },
3710
+ "analytics-config:#/$defs/repoRelativePath:minLength": {
3711
+ "code": "REPOSITORY_PATH_INVALID"
3712
+ },
3713
+ "analytics-config:#/$defs/repoRelativePath:pattern": {
3714
+ "code": "REPOSITORY_PATH_INVALID"
3715
+ },
3716
+ "analytics-config:#/$defs/repoRelativePath:type": {
3717
+ "code": "REPOSITORY_PATH_INVALID"
3718
+ },
3719
+ "analytics-config:#/$defs/repoRelativePath:x-gala-utf8ByteLength": {
3720
+ "code": "REPOSITORY_PATH_INVALID"
3721
+ },
3722
+ "analytics-config:#/$defs/rfc3339:format": {
3723
+ "code": "RFC3339_INVALID"
3724
+ },
3725
+ "analytics-config:#/$defs/rfc3339:pattern": {
3726
+ "code": "RFC3339_INVALID"
3727
+ },
3728
+ "analytics-config:#/$defs/rfc3339:type": {
3729
+ "code": "RFC3339_INVALID"
3730
+ },
3731
+ "analytics-config:#/$defs/semver:pattern": {
3732
+ "code": "SEMVER_INVALID"
3733
+ },
3734
+ "analytics-config:#/$defs/semver:type": {
3735
+ "code": "SEMVER_INVALID"
3736
+ },
3737
+ "analytics-config:#/$defs/semverRange:format": {
3738
+ "code": "SEMVER_RANGE_INVALID"
3739
+ },
3740
+ "analytics-config:#/$defs/semverRange:minLength": {
3741
+ "code": "SEMVER_RANGE_INVALID"
3742
+ },
3743
+ "analytics-config:#/$defs/semverRange:pattern": {
3744
+ "code": "SEMVER_RANGE_INVALID"
3745
+ },
3746
+ "analytics-config:#/$defs/semverRange:type": {
3747
+ "code": "SEMVER_RANGE_INVALID"
3748
+ },
3749
+ "analytics-config:#/$defs/slug:maxLength": {
3750
+ "code": "SLUG_INVALID"
3751
+ },
3752
+ "analytics-config:#/$defs/slug:minLength": {
3753
+ "code": "SLUG_INVALID"
3754
+ },
3755
+ "analytics-config:#/$defs/slug:pattern": {
3756
+ "code": "SLUG_INVALID"
3757
+ },
3758
+ "analytics-config:#/$defs/slug:type": {
3759
+ "code": "SLUG_INVALID"
3760
+ },
3761
+ "analytics-config:#/$defs/stableId:pattern": {
3762
+ "code": "STABLE_ID_INVALID"
3763
+ },
3764
+ "analytics-config:#/$defs/stableId:type": {
3765
+ "code": "STABLE_ID_INVALID"
3766
+ },
3767
+ "analytics-config:#/$defs/urlHttps:format": {
3768
+ "code": "HTTPS_URL_INVALID"
3769
+ },
3770
+ "analytics-config:#/$defs/urlHttps:pattern": {
3771
+ "code": "HTTPS_URL_INVALID"
3772
+ },
3773
+ "analytics-config:#/$defs/urlHttps:type": {
3774
+ "code": "HTTPS_URL_INVALID"
3775
+ },
3776
+ "analytics-config:#/$defs/urn:maxLength": {
3777
+ "code": "URN_INVALID"
3778
+ },
3779
+ "analytics-config:#/$defs/urn:minLength": {
3780
+ "code": "URN_INVALID"
3781
+ },
3782
+ "analytics-config:#/$defs/urn:pattern": {
3783
+ "code": "URN_INVALID"
3784
+ },
3785
+ "analytics-config:#/$defs/urn:type": {
3786
+ "code": "URN_INVALID"
3787
+ },
3788
+ "analytics-config:#/properties/consent/properties/policy:enum": {
3789
+ "code": "SCHEMA_ENUM_INVALID"
3790
+ },
3791
+ "analytics-config:#/properties/consent:additionalProperties": {
3792
+ "code": "REQUEST_FIELD_UNKNOWN"
3793
+ },
3794
+ "analytics-config:#/properties/consent:required:policy": {
3795
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
3796
+ },
3797
+ "analytics-config:#/properties/consent:type": {
3798
+ "code": "SCHEMA_TYPE_INVALID"
3799
+ },
3800
+ "analytics-config:#/properties/provider/properties/kind:enum": {
3801
+ "code": "SCHEMA_ENUM_INVALID"
3802
+ },
3803
+ "analytics-config:#/properties/provider/properties/measurementId:pattern": {
3804
+ "code": "SCHEMA_PATTERN_INVALID"
3805
+ },
3806
+ "analytics-config:#/properties/provider/properties/measurementId:type": {
3807
+ "code": "SCHEMA_TYPE_INVALID"
3808
+ },
3809
+ "analytics-config:#/properties/provider:additionalProperties": {
3810
+ "code": "REQUEST_FIELD_UNKNOWN"
3811
+ },
3812
+ "analytics-config:#/properties/provider:required:kind": {
3813
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
3814
+ },
3815
+ "analytics-config:#/properties/provider:required:measurementId": {
3816
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
3817
+ },
3818
+ "analytics-config:#/properties/provider:type": {
3819
+ "code": "SCHEMA_TYPE_INVALID"
3820
+ },
3821
+ "analytics-config:#/properties/schemaId:const": {
3822
+ "code": "SCHEMA_VERSION_UNSUPPORTED"
3823
+ },
3824
+ "analytics-config:#/properties/schemaVersion:const": {
3825
+ "code": "SCHEMA_VERSION_UNSUPPORTED"
3826
+ },
3827
+ "analytics-config:#:additionalProperties": {
3828
+ "code": "REQUEST_FIELD_UNKNOWN"
3829
+ },
3830
+ "analytics-config:#:required:consent": {
3831
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
3832
+ },
3833
+ "analytics-config:#:required:provider": {
3834
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
3835
+ },
3836
+ "analytics-config:#:required:schemaId": {
3837
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
3838
+ },
3839
+ "analytics-config:#:required:schemaVersion": {
3840
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
3841
+ },
3842
+ "analytics-config:#:type": {
3843
+ "code": "SCHEMA_TYPE_INVALID"
3844
+ },
3593
3845
  "appearance:#/$defs/attribution/properties/showMadeWith:type": {
3594
3846
  "code": "SCHEMA_TYPE_INVALID"
3595
3847
  },
@@ -5738,6 +5990,63 @@
5738
5990
  "author:#:type": {
5739
5991
  "code": "SCHEMA_TYPE_INVALID"
5740
5992
  },
5993
+ "build-input:#/$defs/analyticsConfig/properties/consent/properties/policy:enum": {
5994
+ "code": "SCHEMA_ENUM_INVALID"
5995
+ },
5996
+ "build-input:#/$defs/analyticsConfig/properties/consent:additionalProperties": {
5997
+ "code": "REQUEST_FIELD_UNKNOWN"
5998
+ },
5999
+ "build-input:#/$defs/analyticsConfig/properties/consent:required:policy": {
6000
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6001
+ },
6002
+ "build-input:#/$defs/analyticsConfig/properties/consent:type": {
6003
+ "code": "SCHEMA_TYPE_INVALID"
6004
+ },
6005
+ "build-input:#/$defs/analyticsConfig/properties/provider/properties/kind:enum": {
6006
+ "code": "SCHEMA_ENUM_INVALID"
6007
+ },
6008
+ "build-input:#/$defs/analyticsConfig/properties/provider/properties/measurementId:pattern": {
6009
+ "code": "SCHEMA_PATTERN_INVALID"
6010
+ },
6011
+ "build-input:#/$defs/analyticsConfig/properties/provider/properties/measurementId:type": {
6012
+ "code": "SCHEMA_TYPE_INVALID"
6013
+ },
6014
+ "build-input:#/$defs/analyticsConfig/properties/provider:additionalProperties": {
6015
+ "code": "REQUEST_FIELD_UNKNOWN"
6016
+ },
6017
+ "build-input:#/$defs/analyticsConfig/properties/provider:required:kind": {
6018
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6019
+ },
6020
+ "build-input:#/$defs/analyticsConfig/properties/provider:required:measurementId": {
6021
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6022
+ },
6023
+ "build-input:#/$defs/analyticsConfig/properties/provider:type": {
6024
+ "code": "SCHEMA_TYPE_INVALID"
6025
+ },
6026
+ "build-input:#/$defs/analyticsConfig/properties/schemaId:const": {
6027
+ "code": "SCHEMA_VERSION_UNSUPPORTED"
6028
+ },
6029
+ "build-input:#/$defs/analyticsConfig/properties/schemaVersion:const": {
6030
+ "code": "SCHEMA_VERSION_UNSUPPORTED"
6031
+ },
6032
+ "build-input:#/$defs/analyticsConfig:additionalProperties": {
6033
+ "code": "REQUEST_FIELD_UNKNOWN"
6034
+ },
6035
+ "build-input:#/$defs/analyticsConfig:required:consent": {
6036
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6037
+ },
6038
+ "build-input:#/$defs/analyticsConfig:required:provider": {
6039
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6040
+ },
6041
+ "build-input:#/$defs/analyticsConfig:required:schemaId": {
6042
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6043
+ },
6044
+ "build-input:#/$defs/analyticsConfig:required:schemaVersion": {
6045
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6046
+ },
6047
+ "build-input:#/$defs/analyticsConfig:type": {
6048
+ "code": "SCHEMA_TYPE_INVALID"
6049
+ },
5741
6050
  "build-input:#/$defs/appearanceNormalized/properties/fontAssets:maxItems": {
5742
6051
  "code": "SCHEMA_ARRAY_TOO_LONG"
5743
6052
  },
@@ -6527,6 +6836,15 @@
6527
6836
  "build-input:#/$defs/manifestRenderPolicyIdentity:type": {
6528
6837
  "code": "SCHEMA_TYPE_INVALID"
6529
6838
  },
6839
+ "build-input:#/$defs/moduleBuildSelection/properties/analytics:additionalProperties": {
6840
+ "code": "REQUEST_FIELD_UNKNOWN"
6841
+ },
6842
+ "build-input:#/$defs/moduleBuildSelection/properties/analytics:required:config": {
6843
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
6844
+ },
6845
+ "build-input:#/$defs/moduleBuildSelection/properties/analytics:type": {
6846
+ "code": "SCHEMA_TYPE_INVALID"
6847
+ },
6530
6848
  "build-input:#/$defs/moduleBuildSelection/properties/interactions:additionalProperties": {
6531
6849
  "code": "REQUEST_FIELD_UNKNOWN"
6532
6850
  },
@@ -6782,6 +7100,33 @@
6782
7100
  "build-input:#/$defs/plainText:type": {
6783
7101
  "code": "PLAIN_TEXT_INVALID"
6784
7102
  },
7103
+ "build-input:#/$defs/policiesNormalized:additionalProperties": {
7104
+ "code": "REQUEST_FIELD_UNKNOWN"
7105
+ },
7106
+ "build-input:#/$defs/policiesNormalized:required:privacy": {
7107
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
7108
+ },
7109
+ "build-input:#/$defs/policiesNormalized:required:terms": {
7110
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
7111
+ },
7112
+ "build-input:#/$defs/policiesNormalized:type": {
7113
+ "code": "SCHEMA_TYPE_INVALID"
7114
+ },
7115
+ "build-input:#/$defs/policyPageNormalized/properties/title:x-gala-graphemeLength": {
7116
+ "code": "GRAPHEME_LENGTH_INVALID"
7117
+ },
7118
+ "build-input:#/$defs/policyPageNormalized:additionalProperties": {
7119
+ "code": "REQUEST_FIELD_UNKNOWN"
7120
+ },
7121
+ "build-input:#/$defs/policyPageNormalized:required:body": {
7122
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
7123
+ },
7124
+ "build-input:#/$defs/policyPageNormalized:required:title": {
7125
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
7126
+ },
7127
+ "build-input:#/$defs/policyPageNormalized:type": {
7128
+ "code": "SCHEMA_TYPE_INVALID"
7129
+ },
6785
7130
  "build-input:#/$defs/publicationNormalized/properties/authorIds:maxItems": {
6786
7131
  "code": "SCHEMA_ARRAY_TOO_LONG"
6787
7132
  },
@@ -24785,6 +25130,36 @@
24785
25130
  "publication:#/$defs/plainText:type": {
24786
25131
  "code": "PLAIN_TEXT_INVALID"
24787
25132
  },
25133
+ "publication:#/$defs/policyPage/properties/body:pattern": {
25134
+ "code": "SCHEMA_PATTERN_INVALID"
25135
+ },
25136
+ "publication:#/$defs/policyPage/properties/title:x-gala-graphemeLength": {
25137
+ "code": "GRAPHEME_LENGTH_INVALID"
25138
+ },
25139
+ "publication:#/$defs/policyPage:additionalProperties": {
25140
+ "code": "REQUEST_FIELD_UNKNOWN"
25141
+ },
25142
+ "publication:#/$defs/policyPage:required:body": {
25143
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
25144
+ },
25145
+ "publication:#/$defs/policyPage:required:title": {
25146
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
25147
+ },
25148
+ "publication:#/$defs/policyPage:type": {
25149
+ "code": "SCHEMA_TYPE_INVALID"
25150
+ },
25151
+ "publication:#/$defs/publicationPolicies:additionalProperties": {
25152
+ "code": "REQUEST_FIELD_UNKNOWN"
25153
+ },
25154
+ "publication:#/$defs/publicationPolicies:required:privacy": {
25155
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
25156
+ },
25157
+ "publication:#/$defs/publicationPolicies:required:terms": {
25158
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
25159
+ },
25160
+ "publication:#/$defs/publicationPolicies:type": {
25161
+ "code": "SCHEMA_TYPE_INVALID"
25162
+ },
24788
25163
  "publication:#/$defs/publicationProfile:additionalProperties": {
24789
25164
  "code": "REQUEST_FIELD_UNKNOWN"
24790
25165
  },
@@ -26834,8 +27209,8 @@
26834
27209
  "theme-contract:#/allOf/2/else:not": {
26835
27210
  "code": "SCHEMA_NEGATED_RULE_MATCHED"
26836
27211
  },
26837
- "theme-contract:#/allOf/2/if/properties/contractVersion:const": {
26838
- "code": "SCHEMA_CONSTANT_INVALID"
27212
+ "theme-contract:#/allOf/2/if/properties/contractVersion:enum": {
27213
+ "code": "SCHEMA_ENUM_INVALID"
26839
27214
  },
26840
27215
  "theme-contract:#/allOf/2/if:required:contractVersion": {
26841
27216
  "code": "SCHEMA_REQUIRED_FIELD_MISSING"
@@ -26912,6 +27287,24 @@
26912
27287
  "theme-contract:#/allOf/2/then/allOf/5/then/properties/composition:required:profile": {
26913
27288
  "code": "SCHEMA_REQUIRED_FIELD_MISSING"
26914
27289
  },
27290
+ "theme-contract:#/allOf/2/then/allOf/6/if/properties/contractVersion:const": {
27291
+ "code": "SCHEMA_CONSTANT_INVALID"
27292
+ },
27293
+ "theme-contract:#/allOf/2/then/allOf/6/if:required:contractVersion": {
27294
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
27295
+ },
27296
+ "theme-contract:#/allOf/2/then/allOf/6/then/properties/templateRange:enum": {
27297
+ "code": "SCHEMA_ENUM_INVALID"
27298
+ },
27299
+ "theme-contract:#/allOf/2/then/allOf/7/if/properties/contractVersion:const": {
27300
+ "code": "SCHEMA_CONSTANT_INVALID"
27301
+ },
27302
+ "theme-contract:#/allOf/2/then/allOf/7/if:required:contractVersion": {
27303
+ "code": "SCHEMA_REQUIRED_FIELD_MISSING"
27304
+ },
27305
+ "theme-contract:#/allOf/2/then/allOf/7/then/properties/templateRange:const": {
27306
+ "code": "SCHEMA_CONSTANT_INVALID"
27307
+ },
26915
27308
  "theme-contract:#/allOf/2/then/properties/templateRange:enum": {
26916
27309
  "code": "SCHEMA_ENUM_INVALID"
26917
27310
  },
@@ -26924,8 +27317,8 @@
26924
27317
  "theme-contract:#/allOf/3/if:required:themeId": {
26925
27318
  "code": "SCHEMA_REQUIRED_FIELD_MISSING"
26926
27319
  },
26927
- "theme-contract:#/allOf/3/then/properties/contractVersion:const": {
26928
- "code": "SCHEMA_CONSTANT_INVALID"
27320
+ "theme-contract:#/allOf/3/then/properties/contractVersion:enum": {
27321
+ "code": "SCHEMA_ENUM_INVALID"
26929
27322
  },
26930
27323
  "theme-contract:#/properties/assets:maxItems": {
26931
27324
  "code": "SCHEMA_ARRAY_TOO_LONG"
@@ -27880,6 +28273,8 @@
27880
28273
  "adapter-capability:#/$defs/providerRequestTemplate/properties/fixedHeaders:minItems": "ZERO_LOWER_BOUND_REJECTS_NO_INSTANCE",
27881
28274
  "adapter-capability:#/$defs/unsignedDecimal:format": "FORMAT_REDUNDANT_WITH_SIBLING_RULES",
27882
28275
  "adapter-capability:#/$defs/urn:format": "FORMAT_REDUNDANT_WITH_SIBLING_RULES",
28276
+ "analytics-config:#/$defs/isoCountry:format": "FORMAT_REDUNDANT_WITH_SIBLING_RULES",
28277
+ "analytics-config:#/$defs/urn:format": "FORMAT_REDUNDANT_WITH_SIBLING_RULES",
27883
28278
  "appearance:#/$defs/isoCountry:format": "FORMAT_REDUNDANT_WITH_SIBLING_RULES",
27884
28279
  "appearance:#/$defs/urn:format": "FORMAT_REDUNDANT_WITH_SIBLING_RULES",
27885
28280
  "appearance:#/properties/fontAssetRefs:minItems": "ZERO_LOWER_BOUND_REJECTS_NO_INSTANCE",
@@ -2618,6 +2618,7 @@
2618
2618
  "publication.retire",
2619
2619
  "publication.rollback",
2620
2620
  "publication.schedule",
2621
+ "publication.settings.manage",
2621
2622
  "publication.source.write",
2622
2623
  "publication.view"
2623
2624
  ],
@@ -2628,6 +2629,7 @@
2628
2629
  "getOrganizationsByOrganizationIdOperationsByOperationId",
2629
2630
  "getOrganizationsByOrganizationIdPublicationTransfers",
2630
2631
  "getOrganizationsByOrganizationIdPublicationsByPublicationId",
2632
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdAnalyticsSettings",
2631
2633
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdAppearance",
2632
2634
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdContent",
2633
2635
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdContentAssets",
@@ -2636,6 +2638,7 @@
2636
2638
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdHandoverClaims",
2637
2639
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdHistory",
2638
2640
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdInteractionSettings",
2641
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdPolicySettings",
2639
2642
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindingsCurrent",
2640
2643
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeId",
2641
2644
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetup",
@@ -2653,7 +2656,9 @@
2653
2656
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdTransfers",
2654
2657
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdTransfersByTransferIdCancel",
2655
2658
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdTransfersPreview",
2656
- "putOrganizationsByOrganizationIdPublicationsByPublicationIdInteractionSettings"
2659
+ "putOrganizationsByOrganizationIdPublicationsByPublicationIdAnalyticsSettings",
2660
+ "putOrganizationsByOrganizationIdPublicationsByPublicationIdInteractionSettings",
2661
+ "putOrganizationsByOrganizationIdPublicationsByPublicationIdPolicySettings"
2657
2662
  ],
2658
2663
  "componentIds": ["ValidationSummary"],
2659
2664
  "contentKeyIds": [
@@ -2994,5 +2999,5 @@
2994
2999
  ]
2995
3000
  }
2996
3001
  ],
2997
- "digest": "sha256:831b7b044c036d8b33ab50d21a4e4c351728bed7afe3d2f1ac9e351f5090b428"
3002
+ "digest": "sha256:d37fdf46ed2d0b66750b48e4e6ef47bd805fcd0310d0a38956631dfe85bdea3f"
2998
3003
  }
@@ -12,6 +12,16 @@
12
12
  "sourceDigest": "sha256:6d722c1cae0a2d90427a9d21b79b9d49014e6b5f507cd70f983055eae12801df",
13
13
  "typescriptRootType": "AdapterCapabilityDocument"
14
14
  },
15
+ {
16
+ "contract": "analytics-config",
17
+ "artifactKind": "JSON_SCHEMA",
18
+ "id": "urn:gala:schema:analytics-config:2.0.0",
19
+ "version": "2.0.0",
20
+ "path": "schemas/analytics-config.schema.json",
21
+ "materialized": true,
22
+ "sourceDigest": "sha256:0e9058e11f55c1c4738a8ea691379370e4e309d5583643310124fe92912dd915",
23
+ "typescriptRootType": "AnalyticsConfigDocument"
24
+ },
15
25
  {
16
26
  "contract": "appearance",
17
27
  "artifactKind": "JSON_SCHEMA",
@@ -49,7 +59,7 @@
49
59
  "version": "2.0.0",
50
60
  "path": "schemas/build-input.schema.json",
51
61
  "materialized": true,
52
- "sourceDigest": "sha256:4a8fd292061cdd86bcaa03d3b2edf65dc5cf8953c41a0275399b52e21518fc95",
62
+ "sourceDigest": "sha256:c0a1bac1e88ca42a5d40afd4be293b34ed959164783d8da163ce4693c8014ff6",
53
63
  "typescriptRootType": "BuildInputDocument"
54
64
  },
55
65
  {
@@ -179,7 +189,7 @@
179
189
  "version": "2.0.0",
180
190
  "path": "schemas/publication.schema.json",
181
191
  "materialized": true,
182
- "sourceDigest": "sha256:90ce1cc0d061bd87b18539d9822aca2ec762be2e5fadad9aca80d8351f7a872e",
192
+ "sourceDigest": "sha256:de6a002710dd4ae0a8ea75f8c58f0cd3b287647405052d56da81a0149a4fa623",
183
193
  "typescriptRootType": "PublicationDocument"
184
194
  },
185
195
  {
@@ -209,7 +219,7 @@
209
219
  "version": "2.0.0",
210
220
  "path": "schemas/theme-contract.schema.json",
211
221
  "materialized": true,
212
- "sourceDigest": "sha256:127562a9c0df349fa1fff2bef4576b6b99863ae35e0b0e83d37bb8538c37d2e7",
222
+ "sourceDigest": "sha256:5f221e67ba7611835a15b1fedbfa1bfb3c21a1df18790da598a9b08d419b5da3",
213
223
  "typescriptRootType": "ThemeContractDocument"
214
224
  },
215
225
  {
@@ -219,9 +229,9 @@
219
229
  "version": "2.0.0",
220
230
  "path": "openapi/openapi.yaml",
221
231
  "materialized": true,
222
- "sourceDigest": "sha256:52ee6b8f76bd4677837614ccba3b895f38667c23a7d36e0d2201a45fd71ae7e9",
232
+ "sourceDigest": "sha256:9f788998e00babc25ff76f7ef7e7e5f491b4532ead1e95c8aef5c1f81ad81eda",
223
233
  "typescriptRootType": null
224
234
  }
225
235
  ],
226
- "digest": "sha256:e3b7fd723c9c588d284411dd0c5244b641456e664fa1e831b67ebc3b064e0a75"
236
+ "digest": "sha256:b26ffc5fab92bb1d21bde036f257b8854add5fb6dcdb880939f8995c7aa64dcd"
227
237
  }
@@ -0,0 +1,6 @@
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
+ }