@dynamicalsystems/idl-conformance 0.6.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.
Files changed (104) hide show
  1. package/LICENSE +191 -0
  2. package/assets/vectors/dsg.infra.adoption-fact_1/accept/fact-cutover-transfer.json +7 -0
  3. package/assets/vectors/dsg.infra.adoption-fact_1/accept/fact-synthetic-initialize.json +7 -0
  4. package/assets/vectors/dsg.infra.adoption-fact_1/reject/fact-extra-field.json +8 -0
  5. package/assets/vectors/dsg.infra.adoption-fact_1/reject/fact-generation-zero.json +8 -0
  6. package/assets/vectors/dsg.infra.adoption-fact_1/reject/fact-restore-claims-ownership.json +8 -0
  7. package/assets/vectors/dsg.infra.adoption-fact_1/reject/fact-short-snapshot-digest.json +8 -0
  8. package/assets/vectors/dsg.infra.adoption-fact_1/reject/fact-wrong-profile-v2.json +8 -0
  9. package/assets/vectors/dsg.infra.resource-descriptor_1/accept/descriptor-cpu-only-null-accelerator.json +7 -0
  10. package/assets/vectors/dsg.infra.resource-descriptor_1/accept/descriptor-s02-batch-fixture.json +7 -0
  11. package/assets/vectors/dsg.infra.resource-descriptor_1/accept/descriptor-s02-fake-provider-fixture.json +7 -0
  12. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-external-ip-true.json +8 -0
  13. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-extra-field.json +8 -0
  14. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-missing-reservation.json +8 -0
  15. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-open-machine-shape.json +8 -0
  16. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-public-network.json +8 -0
  17. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-schema-version-2.json +8 -0
  18. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-unprefixed-image-digest.json +8 -0
  19. package/assets/vectors/dsg.infra.resource-descriptor_1/reject/descriptor-wrong-kind.json +8 -0
  20. package/assets/vectors/dsg.infra.signed-law_1/accept/bundle-k02-automation-control.json +7 -0
  21. package/assets/vectors/dsg.infra.signed-law_1/accept/bundle-k02-synthetic-law.json +7 -0
  22. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-bootstrap-two-uses.json +8 -0
  23. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-capabilities-descriptor-version-mismatch.json +8 -0
  24. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-capability-public-network.json +8 -0
  25. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-ceiling-negative-value.json +8 -0
  26. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-extra-field.json +8 -0
  27. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-policy-manifest-traversal-key.json +8 -0
  28. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-scope-descriptor-version-v2.json +8 -0
  29. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-short-signature.json +8 -0
  30. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-unknown-key-class.json +8 -0
  31. package/assets/vectors/dsg.infra.signed-law_1/reject/bundle-wrong-kind.json +8 -0
  32. package/assets/vectors/dsg.kernel.bootstrap_1/accept/intent-enroll-human-root.json +7 -0
  33. package/assets/vectors/dsg.kernel.bootstrap_1/accept/intent-initialize.json +7 -0
  34. package/assets/vectors/dsg.kernel.bootstrap_1/accept/signed-enroll-signed.json +7 -0
  35. package/assets/vectors/dsg.kernel.bootstrap_1/reject/intent-empty-resources.json +8 -0
  36. package/assets/vectors/dsg.kernel.bootstrap_1/reject/intent-extra-field.json +8 -0
  37. package/assets/vectors/dsg.kernel.bootstrap_1/reject/intent-two-uses.json +8 -0
  38. package/assets/vectors/dsg.kernel.bootstrap_1/reject/intent-unknown-action.json +8 -0
  39. package/assets/vectors/dsg.kernel.bootstrap_1/reject/intent-version-v2.json +8 -0
  40. package/assets/vectors/dsg.kernel.bootstrap_1/reject/signed-short-signature.json +8 -0
  41. package/assets/vectors/dsg.kernel.dispatch-consume_1/accept/lease-kernel-201-live-capture.json +7 -0
  42. package/assets/vectors/dsg.kernel.dispatch-consume_1/accept/lease-replayed-stale.json +7 -0
  43. package/assets/vectors/dsg.kernel.dispatch-consume_1/accept/refusal-revoked.json +7 -0
  44. package/assets/vectors/dsg.kernel.dispatch-consume_1/accept/request-first-consume.json +7 -0
  45. package/assets/vectors/dsg.kernel.dispatch-consume_1/accept/request-renewal.json +7 -0
  46. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/lease-fractional-expires-at.json +8 -0
  47. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/lease-missing-profile.json +8 -0
  48. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/lease-renewal-wrong-literal.json +8 -0
  49. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/lease-skew-above-bound.json +8 -0
  50. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/refusal-empty-issues.json +8 -0
  51. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/refusal-unknown-code.json +8 -0
  52. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/request-extra-field.json +8 -0
  53. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/request-fractional-requested-at.json +8 -0
  54. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/request-malformed-case-orn.json +8 -0
  55. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/request-negative-generation.json +8 -0
  56. package/assets/vectors/dsg.kernel.dispatch-consume_1/reject/request-uppercase-envelope-digest.json +8 -0
  57. package/assets/vectors/dsg.kernel.ordinary-authority_1/accept/authority-human-enrollment.json +7 -0
  58. package/assets/vectors/dsg.kernel.ordinary-authority_1/accept/authority-synthetic-enrollment.json +7 -0
  59. package/assets/vectors/dsg.kernel.ordinary-authority_1/reject/authority-empty-actions.json +8 -0
  60. package/assets/vectors/dsg.kernel.ordinary-authority_1/reject/authority-extra-field.json +8 -0
  61. package/assets/vectors/dsg.kernel.ordinary-authority_1/reject/authority-fractional-not-before.json +8 -0
  62. package/assets/vectors/dsg.kernel.ordinary-authority_1/reject/authority-missing-ceilings.json +8 -0
  63. package/assets/vectors/dsg.kernel.ordinary-authority_1/reject/authority-release-automation-key-class.json +8 -0
  64. package/assets/vectors/dsg.kernel.ordinary-authority_1/reject/authority-version-v2.json +8 -0
  65. package/assets/vectors/dsg.registry.revocations_1/accept/pointer-v2.json +7 -0
  66. package/assets/vectors/dsg.registry.revocations_1/accept/snapshot-chained-with-entries.json +7 -0
  67. package/assets/vectors/dsg.registry.revocations_1/accept/snapshot-genesis.json +7 -0
  68. package/assets/vectors/dsg.registry.revocations_1/reject/pointer-traversal-url.json +8 -0
  69. package/assets/vectors/dsg.registry.revocations_1/reject/snapshot-extra-field.json +8 -0
  70. package/assets/vectors/dsg.registry.revocations_1/reject/snapshot-not-test-only.json +8 -0
  71. package/assets/vectors/dsg.registry.revocations_1/reject/snapshot-version-zero.json +8 -0
  72. package/assets/vectors/dsg.registry.revocations_1/reject/snapshot-wrong-domain-v2.json +8 -0
  73. package/assets/vectors/dsg.run.operation_1/accept/accepted-receipt-fractional-accepted-at.json +7 -0
  74. package/assets/vectors/dsg.run.operation_1/accept/readback-queued-pending.json +7 -0
  75. package/assets/vectors/dsg.run.operation_1/accept/request-minimal-valid.json +7 -0
  76. package/assets/vectors/dsg.run.operation_1/digest/envelope-m010-envelope-digest.json +8 -0
  77. package/assets/vectors/dsg.run.operation_1/reject/accepted-missing-plan-digest.json +8 -0
  78. package/assets/vectors/dsg.run.operation_1/reject/request-document-schema-version-2.json +8 -0
  79. package/assets/vectors/dsg.run.operation_1/reject/request-extra-field.json +8 -0
  80. package/assets/vectors/dsg.run.operation_1/reject/request-r01-original-short-orn.json +8 -0
  81. package/assets/vectors/dsg.run.operation_1/reject/request-uppercase-plan-digest.json +8 -0
  82. package/assets/vectors/dsg.run.operation_1/reject/request-wrong-profile-other.json +8 -0
  83. package/assets/vectors/dsg.run.operation_1/reject/request-wrong-profile-v2.json +8 -0
  84. package/checklist.json +12 -0
  85. package/dist/cli.cjs +16 -0
  86. package/dist/cli.d.cts +1 -0
  87. package/dist/cli.d.mts +1 -0
  88. package/dist/cli.mjs +19 -0
  89. package/dist/cli.mjs.map +1 -0
  90. package/dist/index.cjs +4 -0
  91. package/dist/index.d.cts +57 -0
  92. package/dist/index.d.cts.map +1 -0
  93. package/dist/index.d.mts +57 -0
  94. package/dist/index.d.mts.map +1 -0
  95. package/dist/index.mjs +2 -0
  96. package/dist/reference-adapter-CaAo2iIH.mjs +1441 -0
  97. package/dist/reference-adapter-CaAo2iIH.mjs.map +1 -0
  98. package/dist/reference-adapter-DWurDAI9.cjs +1450 -0
  99. package/package.json +64 -0
  100. package/src/adapter.ts +32 -0
  101. package/src/cli.ts +19 -0
  102. package/src/index.ts +4 -0
  103. package/src/reference-adapter.ts +42 -0
  104. package/src/runner.ts +89 -0
@@ -0,0 +1,57 @@
1
+ //#region src/adapter.d.ts
2
+ type ParseResult = {
3
+ readonly ok: true;
4
+ readonly digest?: string;
5
+ } | {
6
+ readonly ok: false;
7
+ readonly reason: string;
8
+ };
9
+ type Adapter = Readonly<Record<string, (bytes: Uint8Array) => ParseResult>>;
10
+ /** One vector file on disk. `bytes` is base64 of the exact wire bytes:
11
+ * re-serialization would normalize away the malformations reject vectors
12
+ * exist to carry. A reject names the one rule it breaks. */
13
+ type Vector = {
14
+ readonly profile: string;
15
+ readonly shape: string;
16
+ readonly name: string;
17
+ readonly verdict: "accept" | "reject";
18
+ readonly rule?: string;
19
+ readonly bytes: string;
20
+ /** Digest vectors only: the expected sha256 of the canonical form of the
21
+ * document in `bytes`. The vector bytes are deliberately NON-canonical
22
+ * (different key order, whitespace), so agreement proves the consumer's
23
+ * own canonicalize-and-digest path, not a byte copy. */
24
+ readonly sha256?: string;
25
+ /** What agreeing on this vector obliges. "shape" (default): the boundary
26
+ * parser's structural verdict. "semantic": a validator beyond shape
27
+ * (law_contract.py, Rego decisions) must agree; shape-only adapters skip
28
+ * these. Passing a finite corpus establishes agreement on those cases,
29
+ * never equivalence. */
30
+ readonly obligation?: "shape" | "semantic";
31
+ };
32
+ //#endregion
33
+ //#region src/runner.d.ts
34
+ type VectorVerdict = {
35
+ readonly id: string;
36
+ readonly expected: "accept" | "reject";
37
+ readonly outcome: "pass" | "fail";
38
+ readonly detail: string;
39
+ };
40
+ type RunReport = {
41
+ readonly passed: number;
42
+ readonly failed: number;
43
+ readonly verdicts: readonly VectorVerdict[];
44
+ };
45
+ type Checklist = {
46
+ readonly profiles: Readonly<Record<string, number>>;
47
+ };
48
+ /** Runs every vector under `assetsDir` through the adapter. The checklist
49
+ * is the coverage floor: a profile listed there with fewer vectors on disk
50
+ * than promised fails the run, so a silently deleted directory cannot pass. */
51
+ declare function runVectors(adapter: Adapter, assetsDir: string, checklist: Checklist): RunReport;
52
+ //#endregion
53
+ //#region src/reference-adapter.d.ts
54
+ declare function referenceAdapter(): Adapter;
55
+ //#endregion
56
+ export { type Adapter, type ParseResult, type RunReport, type Vector, type VectorVerdict, referenceAdapter, runVectors };
57
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/adapter.ts","../src/runner.ts","../src/reference-adapter.ts"],"mappings":";KAIY;WACG;WAAmB;;WACnB;WAAoB;;KAEvB,UAAU,SAAS,gBAAgB,OAAO,eAAe;;;;KAKzD;WACD;WACA;WACA;WACA;WACA;WACA;;;;;WAKA;;;;;;WAMA;;;;KC1BC;WACD;WACA;WACA;WACA;;KAGC;WACD;WACA;WACA,mBAAmB;;KAGzB;WAAuB,UAAU,SAAS;;;;;iBAK/B,WAAW,SAAS,SAAS,mBAAmB,WAAW,YAAY;;;iBCZvE,oBAAoB"}
package/dist/index.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import { n as runVectors, t as referenceAdapter } from "./reference-adapter-CaAo2iIH.mjs";
2
+ export { referenceAdapter, runVectors };