@openwop/openwop-conformance 1.71.0 → 1.71.1

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.
package/README.md CHANGED
@@ -202,6 +202,14 @@ import caps from './vendor/capabilities.schema.json';
202
202
  import caps from '@openwop/openwop-conformance/schemas/capabilities.schema.json';
203
203
  ```
204
204
 
205
+ **If you must vendor a copy, the copy now carries its own provenance.** The tarball's `schemas/` contains `CORPUS-STAMP.json`:
206
+
207
+ ```jsonc
208
+ { "suiteVersion": "1.71.1", "corpusCommit": "984ced5f…" }
209
+ ```
210
+
211
+ It lives **inside** `schemas/` on purpose: `package.json`'s version is what a `cp -R schemas/ vendor/` throws away, and the stamp is what survives it. Comparing your vendored stamp against the one in your installed `@openwop/openwop-conformance` is a plain file read — no network, no sibling checkout, no pinning a branch. The stamp exists only in the published tarball, never in the repo tree, and carries no timestamp so the tarball stays reproducible.
212
+
205
213
  **What this does not fix.** A host that keeps hand-copying gets no warning, and the corpus cannot see a host's local files — so this narrows the failure rather than eliminating it. Tracked as RFC 0145 G2.
206
214
 
207
215
  The presence of these files at stable paths in the tarball is enforced by `scripts/check-npm-pack-contents.sh`, so a packaging change cannot quietly withdraw the contract copy a host depends on.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/openwop-conformance",
3
- "version": "1.71.0",
3
+ "version": "1.71.1",
4
4
  "description": "Production-ready black-box conformance suite for OpenWOP v1.0 compliant servers.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,5 @@
1
+ {
2
+ "_comment": "Provenance of this vendored schemas/ copy. See conformance/README.md \u00a7\"Resolving the contract\". Compare against the stamp in your installed @openwop/openwop-conformance to detect a stale hand-copied contract.",
3
+ "suiteVersion": "1.71.1",
4
+ "corpusCommit": "6103a20d4ba6fbab32e7c6e0dac5acaebf93887e"
5
+ }
@@ -515,8 +515,20 @@ function extractLocalMarkdownLinks(markdown: string): string[] {
515
515
 
516
516
  // ── Scenarios ───────────────────────────────────────────────────────────
517
517
 
518
+ /**
519
+ * Provenance stamp written into the VENDORED `schemas/` at prepack (RFC 0145 G2).
520
+ * It never exists in the repo tree, but it DOES exist when this suite runs from the
521
+ * published package — where `SCHEMAS_DIR` points at the vendored copy that carries it.
522
+ * "Written only into the tarball" and "invisible to this gate" are therefore NOT the
523
+ * same claim, and the difference only shows up for a consumer, never locally.
524
+ * It is data about the contract, not a schema, so it is excluded by name rather than
525
+ * by extension — the `.json` suffix is what makes it readable, and what would
526
+ * otherwise feed it to Ajv.
527
+ */
528
+ const CORPUS_STAMP = 'CORPUS-STAMP.json';
529
+
518
530
  describe('spec-corpus: JSON Schemas compile under Ajv2020', () => {
519
- const schemaFiles = listJsonFiles(SCHEMAS_DIR);
531
+ const schemaFiles = listJsonFiles(SCHEMAS_DIR).filter((f) => f !== CORPUS_STAMP);
520
532
  const ajv = new Ajv2020({ allErrors: true, strict: false });
521
533
  addFormats(ajv);
522
534