@rathnasgala2/schemas 3.0.0 → 3.2.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 (90) hide show
  1. package/README.md +39 -42
  2. package/THIRD_PARTY_LICENSES.json +1 -1
  3. package/diagnostics/diagnostic-map.json +557 -7
  4. package/docs/catalogs/app-components.json +435 -1
  5. package/docs/catalogs/app-routes.json +153 -2
  6. package/docs/catalogs/schema-inventory.json +15 -5
  7. package/examples/valid/artifact-manifest/rules.json +2 -2
  8. package/examples/valid/build-input/rules.json +341 -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/fixtures/boundary/artifact-manifest/rules.json +2 -2
  13. package/fixtures/boundary/build-input/rules.json +408 -9
  14. package/fixtures/boundary/build-provenance/rules.json +2 -2
  15. package/fixtures/boundary/interactions-config/root.json +18 -0
  16. package/fixtures/boundary/interactions-config/rules.json +725 -0
  17. package/fixtures/invalid/artifact-manifest/SCHEMA_CONSTANT_INVALID/cases.json +0 -11
  18. package/fixtures/invalid/artifact-manifest/SCHEMA_TYPE_INVALID/cases.json +11 -0
  19. package/fixtures/invalid/build-input/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  20. package/fixtures/invalid/build-input/HTTPS_URL_INVALID/cases.json +29 -0
  21. package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +141 -0
  22. package/fixtures/invalid/build-input/SCHEMA_ARRAY_TOO_LONG/cases.json +15 -0
  23. package/fixtures/invalid/build-input/SCHEMA_CONSTANT_INVALID/cases.json +20 -0
  24. package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +11 -0
  25. package/fixtures/invalid/build-input/SCHEMA_NEGATED_RULE_MATCHED/cases.json +9 -0
  26. package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_LARGE/cases.json +22 -0
  27. package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_SMALL/cases.json +22 -0
  28. package/fixtures/invalid/build-input/SCHEMA_OBJECT_TOO_LARGE/cases.json +0 -15
  29. package/fixtures/invalid/build-input/SCHEMA_PATTERN_INVALID/cases.json +9 -0
  30. package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +379 -0
  31. package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +190 -0
  32. package/fixtures/invalid/build-input/SCHEMA_VERSION_UNSUPPORTED/cases.json +22 -0
  33. package/fixtures/invalid/build-provenance/SCHEMA_CONSTANT_INVALID/cases.json +0 -11
  34. package/fixtures/invalid/build-provenance/SCHEMA_TYPE_INVALID/cases.json +11 -0
  35. package/fixtures/invalid/interactions-config/BCP47_INVALID/cases.json +58 -0
  36. package/fixtures/invalid/interactions-config/CANONICAL_ROUTE_INVALID/cases.json +38 -0
  37. package/fixtures/invalid/interactions-config/DIGEST_INVALID/cases.json +20 -0
  38. package/fixtures/invalid/interactions-config/EXTENSION_KEY_INVALID/cases.json +20 -0
  39. package/fixtures/invalid/interactions-config/GIT_OBJECT_ID_INVALID/cases.json +20 -0
  40. package/fixtures/invalid/interactions-config/GRAPHEME_LENGTH_INVALID/cases.json +13 -0
  41. package/fixtures/invalid/interactions-config/HTTPS_URL_INVALID/cases.json +29 -0
  42. package/fixtures/invalid/interactions-config/ISO_COUNTRY_INVALID/cases.json +20 -0
  43. package/fixtures/invalid/interactions-config/PACKAGE_EXACT_INVALID/cases.json +38 -0
  44. package/fixtures/invalid/interactions-config/PACKAGE_RANGE_INVALID/cases.json +38 -0
  45. package/fixtures/invalid/interactions-config/PASSIVE_VISUAL_TOKEN_INVALID/cases.json +11 -0
  46. package/fixtures/invalid/interactions-config/PLAIN_LABEL_INVALID/cases.json +31 -0
  47. package/fixtures/invalid/interactions-config/PLAIN_TEXT_INVALID/cases.json +20 -0
  48. package/fixtures/invalid/interactions-config/REPOSITORY_GLOB_INVALID/cases.json +49 -0
  49. package/fixtures/invalid/interactions-config/REPOSITORY_PATH_INVALID/cases.json +62 -0
  50. package/fixtures/invalid/interactions-config/REQUEST_FIELD_UNKNOWN/cases.json +108 -0
  51. package/fixtures/invalid/interactions-config/RFC3339_INVALID/cases.json +29 -0
  52. package/fixtures/invalid/interactions-config/SCHEMA_ARRAY_TOO_LONG/cases.json +17 -0
  53. package/fixtures/invalid/interactions-config/SCHEMA_CONSTANT_INVALID/cases.json +22 -0
  54. package/fixtures/invalid/interactions-config/SCHEMA_ENUM_INVALID/cases.json +13 -0
  55. package/fixtures/invalid/interactions-config/SCHEMA_NEGATED_RULE_MATCHED/cases.json +11 -0
  56. package/fixtures/invalid/interactions-config/SCHEMA_NUMBER_TOO_LARGE/cases.json +24 -0
  57. package/fixtures/invalid/interactions-config/SCHEMA_NUMBER_TOO_SMALL/cases.json +24 -0
  58. package/fixtures/invalid/interactions-config/SCHEMA_PATTERN_INVALID/cases.json +11 -0
  59. package/fixtures/invalid/interactions-config/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +305 -0
  60. package/fixtures/invalid/interactions-config/SCHEMA_TYPE_INVALID/cases.json +175 -0
  61. package/fixtures/invalid/interactions-config/SCHEMA_VERSION_UNSUPPORTED/cases.json +20 -0
  62. package/fixtures/invalid/interactions-config/SEMVER_INVALID/cases.json +20 -0
  63. package/fixtures/invalid/interactions-config/SEMVER_RANGE_INVALID/cases.json +38 -0
  64. package/fixtures/invalid/interactions-config/SLUG_INVALID/cases.json +38 -0
  65. package/fixtures/invalid/interactions-config/STABLE_ID_INVALID/cases.json +20 -0
  66. package/fixtures/invalid/interactions-config/URN_INVALID/cases.json +38 -0
  67. package/fixtures/manifest.json +4287 -26
  68. package/fixtures/s2/empty-modules-placements.json +233 -3
  69. package/fixtures/s2/manifest.json +1 -0
  70. package/fixtures/unknown-field/artifact-manifest/rules.json +1 -1
  71. package/fixtures/unknown-field/build-input/rules.json +198 -1
  72. package/fixtures/unknown-field/build-provenance/rules.json +1 -1
  73. package/fixtures/unknown-field/interactions-config/root.json +19 -0
  74. package/fixtures/unknown-field/interactions-config/rules.json +227 -0
  75. package/generated/browser/validator-core.mjs +4 -3
  76. package/generated/typescript/contracts/artifact-manifest.d.ts +1 -1
  77. package/generated/typescript/contracts/build-input.d.ts +58 -1
  78. package/generated/typescript/contracts/build-provenance.d.ts +1 -1
  79. package/generated/typescript/contracts/interactions-config.d.ts +91 -0
  80. package/generated/typescript/index.d.ts +4 -0
  81. package/generated/typescript/index.js +14 -0
  82. package/openapi/http-catalog.json +242 -2
  83. package/openapi/openapi.yaml +6511 -1752
  84. package/package.json +2 -1
  85. package/sbom.cdx.json +23 -23
  86. package/schemas/artifact-manifest.schema.json +1 -1
  87. package/schemas/build-input.schema.json +117 -2
  88. package/schemas/build-provenance.schema.json +1 -1
  89. package/schemas/interactions-config.schema.json +222 -0
  90. 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 20 S0-T04 JSON Schema roots: the six author-source
8
+ This repository contains all 21 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,45 +53,42 @@ 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 20 roots (the codegen path
56
+ TypeScript root types and validators for the exact 21 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-first identity and carries
59
+ separately owned OpenAPI contract as the twenty-second 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
- HTTP catalog for exactly 90 MVP operations plus `/internal/health` (91 catalog
63
- rows; 71 at S0-T07, plus the two SCHEMA-2.8.0 reads, the two SCHEMA-2.10.0
64
- publication-destination reads/writes, the SCHEMA-2.13.0 repository create, and
65
- the nine SCHEMA-2.14.0 write/preview/publish operations, and the SCHEMA-2.20.3
66
- review event stream, the SCHEMA-2.21.0 appearance read, and the SCHEMA-2.22.0
67
- site, history and batch-publish contracts). The bundle includes the accepted
68
- DEC-097 receipt-exchange and deployment-receipt amendments and serializes the
69
- fixed OpenAPI Generator 7.25.0 option sets. Every operation also declares its
70
- tenant scope, lifecycle and activation guards, maps every reachable problem, and
71
- carries schema-validated nominal and problem examples. S0-T08 projects the exact
72
- 19 admitted transition families into 77 independently identified event actions
73
- (SCHEMA-2.11.0 adds the `github_installation` family so the worker-only
74
- compare-and-set writer can retire into the sole aggregate gateway). Each action
75
- binds its aggregate and organization or publication scope, exact
76
- predecessor/target states, the closed DEC-101 payload, the transactional outbox
77
- producer, and a non-empty registered consumer set. S5-T00 materializes document
78
- 07's closed 15-component App semantic catalog and document 14's 20-entry MVP App
79
- route registry (S5 brief section 4) as `docs/catalogs/app-components.json` and
80
- `docs/catalogs/app-routes.json`, with every `apiOperationIds` entry validated
81
- against `openapi/openapi.yaml`, every `componentIds`/`contentKeyIds` entry
82
- validated against the component catalog, and `capabilityKeys` projected from
83
- `openapi/http-catalog.json`. S4-T01 adds the separately generated `fixtures/s4/`
84
- deployment/certification consumer-fixture family (deployment-intent,
85
- deployment-observation, deployment-receipt, public-generation-marker, and
86
- adapter-capability rows for `local-directory`, `github-pages`, and `do-spaces`)
87
- alongside the existing `fixtures/s2/` family, each with its own manifest.
88
- LOCAL-21 admits a 21st App route, `/invitations/accept` (`routeId`
89
- `invitations.accept`), an ordinary `SESSION_REQUIRED` `APP` route (not
90
- `TRANSACTIONAL_LINK`: it is served by the App origin after sign-in, unlike the
91
- deferred `/t/**` template family) that calls
92
- `postMembershipInvitationsByTokenAccept`; its non-enumerating failure states
93
- collapse onto that operation's single declared `INVALID_SOURCE_STATE` problem,
94
- which covers an expired, already-used or unknown token alike.
62
+ HTTP catalog for the MVP operations plus `/internal/health`. The operation set
63
+ is defined only by the source fragments; no document or test quotes a count of
64
+ it (the earlier per-release tallies were removed because they drifted). The
65
+ bundle includes the accepted DEC-097 receipt-exchange and deployment-receipt
66
+ amendments and serializes the fixed OpenAPI Generator 7.25.0 option sets. Every
67
+ operation also declares its tenant scope, lifecycle and activation guards, maps
68
+ every reachable problem, and carries schema-validated nominal and problem
69
+ examples. S0-T08 projects the exact 19 admitted transition families into 77
70
+ independently identified event actions (SCHEMA-2.11.0 adds the
71
+ `github_installation` family so the worker-only compare-and-set writer can
72
+ retire into the sole aggregate gateway). Each action binds its aggregate and
73
+ organization or publication scope, exact predecessor/target states, the closed
74
+ DEC-101 payload, the transactional outbox producer, and a non-empty registered
75
+ consumer set. S5-T00 materializes document 07's closed 15-component App semantic
76
+ catalog and document 14's 20-entry MVP App route registry (S5 brief section 4)
77
+ as `docs/catalogs/app-components.json` and `docs/catalogs/app-routes.json`, with
78
+ every `apiOperationIds` entry validated against `openapi/openapi.yaml`, every
79
+ `componentIds`/`contentKeyIds` entry validated against the component catalog,
80
+ and `capabilityKeys` projected from `openapi/http-catalog.json`. S4-T01 adds the
81
+ separately generated `fixtures/s4/` deployment/certification consumer-fixture
82
+ family (deployment-intent, deployment-observation, deployment-receipt,
83
+ public-generation-marker, and adapter-capability rows for `local-directory`,
84
+ `github-pages`, and `do-spaces`) alongside the existing `fixtures/s2/` family,
85
+ each with its own manifest. LOCAL-21 admits a 21st App route,
86
+ `/invitations/accept` (`routeId` `invitations.accept`), an ordinary
87
+ `SESSION_REQUIRED` `APP` route (not `TRANSACTIONAL_LINK`: it is served by the
88
+ App origin after sign-in, unlike the deferred `/t/**` template family) that
89
+ calls `postMembershipInvitationsByTokenAccept`; its non-enumerating failure
90
+ states collapse onto that operation's single declared `INVALID_SOURCE_STATE`
91
+ problem, which covers an expired, already-used or unknown token alike.
95
92
 
96
93
  SCHEMA-2.17.0 (design `scrap/20260928_write-preview-publish.md` section 9) is
97
94
  media in articles: a cover image, and images, sound and video referenced from an
@@ -377,8 +374,8 @@ server-derived members. `destinationIdentity` gains an optional closed
377
374
  it has always answered, `repository-changes:plan` names the two digests its
378
375
  confirm is fenced on, and no `format: date-time` member in the bundle carries a
379
376
  `pattern` any longer -- a generated `OffsetDateTime` cannot carry one, and the
380
- requirement moves into each member's description while all twenty JSON Schema
381
- roots keep enforcing it. Two reads join the contract --
377
+ requirement moves into each member's description while all twenty-one JSON
378
+ Schema roots keep enforcing it. Two reads join the contract --
382
379
  `GET .../publications/{publicationId}/reviews` (keyset, optional `state` filter,
383
380
  rows of the new `ReviewSummary`, which the single review read is now defined as)
384
381
  and `GET .../deployments/{generationId}` -- taking the MVP operation count from
@@ -615,7 +612,7 @@ remediation, and documentation URL fields without including authored values.
615
612
  ## Package layout
616
613
 
617
614
  - `src/` — JavaScript ESM runtime package surface, checked from JSDoc;
618
- `index.js` is the twenty-contract `.` export (through
615
+ `index.js` is the twenty-one-contract `.` export (through
619
616
  `internal/browser-schema-validator.js`) and `runtime-origins.js` the narrow
620
617
  single-contract browser export, both bound to precompiled standalone
621
618
  validators (SCH-C2) through `internal/validator-core.js`'s
@@ -626,7 +623,7 @@ remediation, and documentation URL fields without including authored values.
626
623
  `frozen-envelope.js` is the Node-only `./frozen-envelope` re-export of
627
624
  `internal/frozen-envelope.js`.
628
625
  - `types/` — declaration output emitted from `src/`.
629
- - `schemas/` — 20 committed Draft 2020-12 contracts.
626
+ - `schemas/` — 21 committed Draft 2020-12 contracts.
630
627
  - `compatibility/baseline-schemas/` — the last-released `schemas/*.schema.json`,
631
628
  refreshed only at release time (`npm run compatibility:baseline:update`);
632
629
  `npm run compatibility:check` diffs the current committed schemas against it
@@ -661,7 +658,7 @@ remediation, and documentation URL fields without including authored values.
661
658
  standalone structural core in parallel (SCH-M5) -- that used a second 2.73 MB
662
659
  Ajv standalone CommonJS core whose result could never disagree with the exact
663
660
  one, so it added no assertion and doubled the work.
664
- - `docs/catalogs/schema-inventory.json` — exact 20 JSON Schema roots plus the
661
+ - `docs/catalogs/schema-inventory.json` — exact 21 JSON Schema roots plus the
665
662
  materialized OpenAPI identity.
666
663
  - `docs/COMPATIBILITY.md` — the compatibility policy `compatibility:check`
667
664
  enforces mechanically.
@@ -685,7 +682,7 @@ remediation, and documentation URL fields without including authored values.
685
682
  fragments grouped by the first literal resource token. A build input, not part
686
683
  of the npm payload (SCH-H7: `!openapi/source/` in `package.json`'s `files`) --
687
684
  a consumer reads the materialized `openapi/openapi.yaml` instead.
688
- - `openapi/openapi.yaml` — deterministic OpenAPI 3.1 bundle for the exact 90 MVP
685
+ - `openapi/openapi.yaml` — deterministic OpenAPI 3.1 bundle for the MVP
689
686
  operations plus health.
690
687
  - `openapi/http-catalog.json` — generated digest-bound method/path/purpose and
691
688
  capability inventory, including `conditionalCapabilityKeys` (SCHEMA-2.7.1) and
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "package": "@rathnasgala2/schemas@3.0.0",
3
+ "package": "@rathnasgala2/schemas@3.2.0",
4
4
  "source": "package-lock.json",
5
5
  "dependencies": [
6
6
  {