@rathnasgala2/schemas 2.22.0 → 3.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 (118) hide show
  1. package/README.md +39 -42
  2. package/THIRD_PARTY_LICENSES.json +3 -3
  3. package/diagnostics/diagnostic-map.json +2701 -1449
  4. package/docs/catalogs/app-components.json +435 -1
  5. package/docs/catalogs/app-routes.json +152 -2
  6. package/docs/catalogs/schema-inventory.json +17 -7
  7. package/examples/valid/artifact-manifest/rules.json +2 -2
  8. package/examples/valid/build-input/rules.json +391 -1
  9. package/examples/valid/build-provenance/rules.json +2 -2
  10. package/examples/valid/interactions-config/canonical.json +18 -0
  11. package/examples/valid/interactions-config/rules.json +529 -0
  12. package/examples/valid/publication/rules.json +48 -0
  13. package/examples/valid/theme-contract/canonical.json +355 -19
  14. package/examples/valid/theme-contract/default-3.0.json +660 -0
  15. package/examples/valid/theme-contract/rules.json +3456 -552
  16. package/fixtures/boundary/artifact-manifest/rules.json +2 -2
  17. package/fixtures/boundary/build-input/rules.json +463 -9
  18. package/fixtures/boundary/build-provenance/rules.json +2 -2
  19. package/fixtures/boundary/interactions-config/root.json +18 -0
  20. package/fixtures/boundary/interactions-config/rules.json +725 -0
  21. package/fixtures/boundary/publication/rules.json +53 -0
  22. package/fixtures/boundary/theme-contract/root.json +355 -19
  23. package/fixtures/boundary/theme-contract/rules.json +4158 -1226
  24. package/fixtures/invalid/artifact-manifest/SCHEMA_CONSTANT_INVALID/cases.json +0 -11
  25. package/fixtures/invalid/artifact-manifest/SCHEMA_TYPE_INVALID/cases.json +11 -0
  26. package/fixtures/invalid/build-input/GRAPHEME_LENGTH_INVALID/cases.json +22 -0
  27. package/fixtures/invalid/build-input/HTTPS_URL_INVALID/cases.json +29 -0
  28. package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +168 -0
  29. package/fixtures/invalid/build-input/SCHEMA_ARRAY_TOO_LONG/cases.json +15 -0
  30. package/fixtures/invalid/build-input/SCHEMA_CONSTANT_INVALID/cases.json +20 -0
  31. package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +22 -0
  32. package/fixtures/invalid/build-input/SCHEMA_NEGATED_RULE_MATCHED/cases.json +9 -0
  33. package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_LARGE/cases.json +22 -0
  34. package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_SMALL/cases.json +22 -0
  35. package/fixtures/invalid/build-input/SCHEMA_OBJECT_TOO_LARGE/cases.json +0 -15
  36. package/fixtures/invalid/build-input/SCHEMA_PATTERN_INVALID/cases.json +9 -0
  37. package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +429 -0
  38. package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +212 -0
  39. package/fixtures/invalid/build-input/SCHEMA_VERSION_UNSUPPORTED/cases.json +22 -0
  40. package/fixtures/invalid/build-provenance/SCHEMA_CONSTANT_INVALID/cases.json +0 -11
  41. package/fixtures/invalid/build-provenance/SCHEMA_TYPE_INVALID/cases.json +11 -0
  42. package/fixtures/invalid/interactions-config/BCP47_INVALID/cases.json +58 -0
  43. package/fixtures/invalid/interactions-config/CANONICAL_ROUTE_INVALID/cases.json +38 -0
  44. package/fixtures/invalid/interactions-config/DIGEST_INVALID/cases.json +20 -0
  45. package/fixtures/invalid/interactions-config/EXTENSION_KEY_INVALID/cases.json +20 -0
  46. package/fixtures/invalid/interactions-config/GIT_OBJECT_ID_INVALID/cases.json +20 -0
  47. package/fixtures/invalid/interactions-config/GRAPHEME_LENGTH_INVALID/cases.json +13 -0
  48. package/fixtures/invalid/interactions-config/HTTPS_URL_INVALID/cases.json +29 -0
  49. package/fixtures/invalid/interactions-config/ISO_COUNTRY_INVALID/cases.json +20 -0
  50. package/fixtures/invalid/interactions-config/PACKAGE_EXACT_INVALID/cases.json +38 -0
  51. package/fixtures/invalid/interactions-config/PACKAGE_RANGE_INVALID/cases.json +38 -0
  52. package/fixtures/invalid/interactions-config/PASSIVE_VISUAL_TOKEN_INVALID/cases.json +11 -0
  53. package/fixtures/invalid/interactions-config/PLAIN_LABEL_INVALID/cases.json +31 -0
  54. package/fixtures/invalid/interactions-config/PLAIN_TEXT_INVALID/cases.json +20 -0
  55. package/fixtures/invalid/interactions-config/REPOSITORY_GLOB_INVALID/cases.json +49 -0
  56. package/fixtures/invalid/interactions-config/REPOSITORY_PATH_INVALID/cases.json +62 -0
  57. package/fixtures/invalid/interactions-config/REQUEST_FIELD_UNKNOWN/cases.json +108 -0
  58. package/fixtures/invalid/interactions-config/RFC3339_INVALID/cases.json +29 -0
  59. package/fixtures/invalid/interactions-config/SCHEMA_ARRAY_TOO_LONG/cases.json +17 -0
  60. package/fixtures/invalid/interactions-config/SCHEMA_CONSTANT_INVALID/cases.json +22 -0
  61. package/fixtures/invalid/interactions-config/SCHEMA_ENUM_INVALID/cases.json +13 -0
  62. package/fixtures/invalid/interactions-config/SCHEMA_NEGATED_RULE_MATCHED/cases.json +11 -0
  63. package/fixtures/invalid/interactions-config/SCHEMA_NUMBER_TOO_LARGE/cases.json +24 -0
  64. package/fixtures/invalid/interactions-config/SCHEMA_NUMBER_TOO_SMALL/cases.json +24 -0
  65. package/fixtures/invalid/interactions-config/SCHEMA_PATTERN_INVALID/cases.json +11 -0
  66. package/fixtures/invalid/interactions-config/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +305 -0
  67. package/fixtures/invalid/interactions-config/SCHEMA_TYPE_INVALID/cases.json +175 -0
  68. package/fixtures/invalid/interactions-config/SCHEMA_VERSION_UNSUPPORTED/cases.json +20 -0
  69. package/fixtures/invalid/interactions-config/SEMVER_INVALID/cases.json +20 -0
  70. package/fixtures/invalid/interactions-config/SEMVER_RANGE_INVALID/cases.json +38 -0
  71. package/fixtures/invalid/interactions-config/SLUG_INVALID/cases.json +38 -0
  72. package/fixtures/invalid/interactions-config/STABLE_ID_INVALID/cases.json +20 -0
  73. package/fixtures/invalid/interactions-config/URN_INVALID/cases.json +38 -0
  74. package/fixtures/invalid/publication/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  75. package/fixtures/invalid/publication/REQUEST_FIELD_UNKNOWN/cases.json +23 -0
  76. package/fixtures/invalid/publication/SCHEMA_ENUM_INVALID/cases.json +9 -0
  77. package/fixtures/invalid/publication/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +42 -0
  78. package/fixtures/invalid/publication/SCHEMA_TYPE_INVALID/cases.json +18 -0
  79. package/fixtures/invalid/theme-contract/REQUEST_FIELD_UNKNOWN/cases.json +421 -20
  80. package/fixtures/invalid/theme-contract/SCHEMA_ARRAY_TOO_LONG/cases.json +2 -2
  81. package/fixtures/invalid/theme-contract/SCHEMA_ARRAY_TOO_SHORT/cases.json +1 -1
  82. package/fixtures/invalid/theme-contract/SCHEMA_CONSTANT_INVALID/cases.json +2155 -296
  83. package/fixtures/invalid/theme-contract/SCHEMA_ENUM_INVALID/cases.json +229 -9
  84. package/fixtures/invalid/theme-contract/SCHEMA_PATTERN_INVALID/cases.json +176 -0
  85. package/fixtures/invalid/theme-contract/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +8812 -1517
  86. package/fixtures/invalid/theme-contract/SCHEMA_STRING_TOO_LONG/cases.json +22 -0
  87. package/fixtures/manifest.json +21925 -12282
  88. package/fixtures/s2/empty-modules-placements.json +233 -3
  89. package/fixtures/s2/manifest.json +2 -1
  90. package/fixtures/s2/theme-contracts-digest-cycle.json +888 -36
  91. package/fixtures/unknown-field/artifact-manifest/rules.json +1 -1
  92. package/fixtures/unknown-field/build-input/rules.json +233 -1
  93. package/fixtures/unknown-field/build-provenance/rules.json +1 -1
  94. package/fixtures/unknown-field/interactions-config/root.json +19 -0
  95. package/fixtures/unknown-field/interactions-config/rules.json +227 -0
  96. package/fixtures/unknown-field/publication/rules.json +35 -0
  97. package/fixtures/unknown-field/theme-contract/root.json +355 -19
  98. package/fixtures/unknown-field/theme-contract/rules.json +637 -22
  99. package/generated/browser/validator-core.mjs +4 -3
  100. package/generated/typescript/contracts/artifact-manifest.d.ts +1 -1
  101. package/generated/typescript/contracts/build-input.d.ts +66 -1
  102. package/generated/typescript/contracts/build-provenance.d.ts +1 -1
  103. package/generated/typescript/contracts/interactions-config.d.ts +91 -0
  104. package/generated/typescript/contracts/publication.d.ts +12 -0
  105. package/generated/typescript/contracts/theme-contract.d.ts +529 -9
  106. package/generated/typescript/index.d.ts +4 -0
  107. package/generated/typescript/index.js +14 -0
  108. package/openapi/http-catalog.json +230 -2
  109. package/openapi/openapi.yaml +5941 -1509
  110. package/package.json +2 -1
  111. package/sbom.cdx.json +23 -23
  112. package/schemas/artifact-manifest.schema.json +1 -1
  113. package/schemas/build-input.schema.json +136 -2
  114. package/schemas/build-provenance.schema.json +1 -1
  115. package/schemas/interactions-config.schema.json +222 -0
  116. package/schemas/publication.schema.json +21 -0
  117. package/schemas/theme-contract.schema.json +1178 -83
  118. package/src/internal/schema-validator.js +3 -0
@@ -391,7 +391,7 @@
391
391
  "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
392
392
  }
393
393
  },
394
- "modules": { "unexpected": {} },
394
+ "modules": { "newsletter": {} },
395
395
  "buildEpoch": "2026-09-13T12:00:00.000Z",
396
396
  "baseUrl": "https://fixture-1.example.com/",
397
397
  "basePath": "/fixture-1",
@@ -408,13 +408,243 @@
408
408
  "inputDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
409
409
  },
410
410
  "expectedDiagnostics": [
411
- { "code": "SCHEMA_OBJECT_TOO_LARGE", "instancePointer": "/modules" },
412
411
  {
413
412
  "code": "REQUEST_FIELD_UNKNOWN",
414
- "instancePointer": "/modules/unexpected"
413
+ "instancePointer": "/modules/newsletter"
415
414
  }
416
415
  ]
417
416
  },
417
+ {
418
+ "caseId": "build-input-valid-interactions-module",
419
+ "schemaId": "urn:gala:schema:build-input:2.0.0",
420
+ "instance": {
421
+ "schemaId": "urn:gala:schema:build-input:2.0.0",
422
+ "schemaVersion": "2.0.0",
423
+ "contractVersion": "2.0.0",
424
+ "repository": {
425
+ "repositoryId": "1",
426
+ "repositoryOwnerId": "1",
427
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
428
+ "rootDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
429
+ },
430
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
431
+ "packages": {
432
+ "schemas": {
433
+ "package": "@rathnasgala2/schemas",
434
+ "version": "2.0.0",
435
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
436
+ "registry": "https://fixture-1.example.com/"
437
+ },
438
+ "template": {
439
+ "package": "@rathnasgala2/template",
440
+ "version": "2.0.0",
441
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
442
+ "registry": "https://fixture-1.example.com/"
443
+ },
444
+ "theme": {
445
+ "package": "@rathnasgala2/theme-default",
446
+ "version": "2.0.0",
447
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
448
+ "registry": "https://fixture-1.example.com/"
449
+ },
450
+ "publisher": [
451
+ {
452
+ "package": "@rathnasgala2/publish-action",
453
+ "version": "2.0.0",
454
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
455
+ "registry": "https://fixture-1.example.com/"
456
+ },
457
+ {
458
+ "package": "@rathnasgala2/publish-kernel",
459
+ "version": "2.0.0",
460
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000002",
461
+ "registry": "https://fixture-2.example.com/"
462
+ },
463
+ {
464
+ "package": "@rathnasgala2/adapter-protocol",
465
+ "version": "2.0.0",
466
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000003",
467
+ "registry": "https://fixture-3.example.com/"
468
+ },
469
+ {
470
+ "package": "@rathnasgala2/adapter-local-directory",
471
+ "version": "2.0.0",
472
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000004",
473
+ "registry": "https://fixture-4.example.com/"
474
+ }
475
+ ],
476
+ "dependencies": [
477
+ {
478
+ "package": "fixture-1",
479
+ "version": "2.0.0",
480
+ "integrity": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
481
+ "registry": "https://fixture-1.example.com/"
482
+ }
483
+ ]
484
+ },
485
+ "publication": {
486
+ "id": "019c0000-0000-7000-8000-000000000001",
487
+ "slug": "fixture-1",
488
+ "title": "fixture-1",
489
+ "description": "fixture-1",
490
+ "canonicalBase": "https://fixture-1.example.com/",
491
+ "defaultLanguage": "en-US",
492
+ "authorIds": ["019c0000-0000-7000-8000-000000000001"],
493
+ "socialLinks": [
494
+ { "type": "website", "uri": "https://fixture-1.example.com/" }
495
+ ],
496
+ "sourcePath": "content/fixture-1.md",
497
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
498
+ },
499
+ "authors": [
500
+ {
501
+ "id": "019c0000-0000-7000-8000-000000000001",
502
+ "displayName": "fixture-1",
503
+ "biography": "fixture-1",
504
+ "links": [
505
+ { "type": "website", "uri": "https://fixture-1.example.com/" }
506
+ ],
507
+ "localized": [
508
+ {
509
+ "language": "en-US",
510
+ "displayName": "fixture-1",
511
+ "biography": "fixture-1"
512
+ }
513
+ ],
514
+ "sourcePath": "content/fixture-1.md",
515
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
516
+ }
517
+ ],
518
+ "content": [
519
+ {
520
+ "frontmatter": {
521
+ "id": "019c0000-0000-7000-8000-000000000001",
522
+ "kind": "article",
523
+ "title": "fixture-1",
524
+ "language": "en-US",
525
+ "authorIds": ["019c0000-0000-7000-8000-000000000001"],
526
+ "tags": ["fixture-1"],
527
+ "status": "published",
528
+ "createdAt": "2026-09-13T12:00:00.000Z",
529
+ "publishedAt": "2026-09-13T12:00:00.000Z",
530
+ "slug": "fixture-1",
531
+ "redirects": ["/fixture-1"]
532
+ },
533
+ "body": "fixture-1",
534
+ "bodyMediaType": "text/html",
535
+ "bodyDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
536
+ "renderPolicy": {
537
+ "name": "gala-render-policy",
538
+ "version": "2.0.0",
539
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
540
+ },
541
+ "sourcePath": "content/fixture-1.md",
542
+ "sourceRevision": "sha1:0000000000000000000000000000000000000001",
543
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001",
544
+ "resolvedAuthorIds": ["019c0000-0000-7000-8000-000000000001"]
545
+ }
546
+ ],
547
+ "navigation": {
548
+ "items": [
549
+ {
550
+ "type": "internal",
551
+ "label": "fixture-1",
552
+ "children": [
553
+ {
554
+ "type": "internal",
555
+ "label": "fixture-1",
556
+ "children": [],
557
+ "route": "/fixture-1"
558
+ }
559
+ ],
560
+ "route": "/fixture-1"
561
+ }
562
+ ],
563
+ "footerItems": [
564
+ {
565
+ "type": "internal",
566
+ "label": "fixture-1",
567
+ "children": [
568
+ {
569
+ "type": "internal",
570
+ "label": "fixture-1",
571
+ "children": [],
572
+ "route": "/fixture-1"
573
+ }
574
+ ],
575
+ "route": "/fixture-1"
576
+ }
577
+ ],
578
+ "source": {
579
+ "kind": "authored",
580
+ "sourcePath": "content/fixture-1.md",
581
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
582
+ }
583
+ },
584
+ "appearance": {
585
+ "theme": "@rathnasgala2/theme-default@2.0.0",
586
+ "colorMode": { "allowed": ["light"], "default": "light" },
587
+ "headerComposition": "mark-and-name",
588
+ "footerComposition": "profile",
589
+ "typeScale": "compact",
590
+ "fontAssets": [
591
+ {
592
+ "path": "content/fixture-1.md",
593
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
594
+ }
595
+ ],
596
+ "tokens": {},
597
+ "source": {
598
+ "kind": "authored",
599
+ "sourcePath": "content/fixture-1.md",
600
+ "sourceDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
601
+ }
602
+ },
603
+ "modules": {
604
+ "interactions": {
605
+ "config": {
606
+ "schemaId": "urn:gala:schema:interactions-config:2.0.0",
607
+ "schemaVersion": "2.0.0",
608
+ "reactions": {
609
+ "enabled": true,
610
+ "definitions": [
611
+ {
612
+ "key": "insightful",
613
+ "label": "Insightful",
614
+ "visual": { "kind": "emoji", "token": "💡" },
615
+ "order": 1,
616
+ "enabled": true
617
+ }
618
+ ]
619
+ },
620
+ "comments": {
621
+ "enabled": true,
622
+ "allowReplies": true,
623
+ "maxDepth": 3
624
+ },
625
+ "publicCounts": { "reactions": true, "comments": true }
626
+ },
627
+ "apiOrigin": "https://api.galascribe.com",
628
+ "appOrigin": "http://localhost:5173"
629
+ }
630
+ },
631
+ "buildEpoch": "2026-09-13T12:00:00.000Z",
632
+ "baseUrl": "https://fixture-1.example.com/",
633
+ "basePath": "/fixture-1",
634
+ "destinationCapabilities": {
635
+ "adapter": {
636
+ "adapterId": "local-directory",
637
+ "adapterVersion": "2.0.0",
638
+ "adapterDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
639
+ },
640
+ "baseUrl": "https://fixture-1.example.com/",
641
+ "capabilityDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
642
+ },
643
+ "placements": [],
644
+ "inputDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000001"
645
+ },
646
+ "expectedDiagnostics": []
647
+ },
418
648
  {
419
649
  "caseId": "build-input-rejects-nonempty-placements",
420
650
  "schemaId": "urn:gala:schema:build-input:2.0.0",
@@ -25,6 +25,7 @@
25
25
  "caseIds": [
26
26
  "build-input-valid-empty-modules-placements",
27
27
  "build-input-rejects-nonempty-modules",
28
+ "build-input-valid-interactions-module",
28
29
  "build-input-rejects-nonempty-placements"
29
30
  ],
30
31
  "publicCoverage": "registered-schema-structural-vectors",
@@ -103,7 +104,7 @@
103
104
  "internalSemanticCoverage": [
104
105
  {
105
106
  "file": "test/t03-theme-composition-semantics.test.js",
106
- "testName": "the five identities and exact 35-token order, types, grammars, and palettes are closed"
107
+ "testName": "the five identities and exact contract-3 token order, types, grammars, and palettes are closed"
107
108
  },
108
109
  {
109
110
  "file": "test/t03-theme-composition-semantics.test.js",