@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,7 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "request",
4
+ "name": "first-consume",
5
+ "verdict": "accept",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJvcGVyYXRpb25JZCI6Im9wLWUyZS0xNzg4NjU4MjUzMjUxIiwiZ2VuZXJhdGlvbiI6MSwiY2FzZU9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwiZW52ZWxvcGVTaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sInJlcXVlc3RlZEF0IjoiMjAyNi0wNC0wMVQwMDowMDowMFoiLCJyZW5ld2FsIjpmYWxzZX0="
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "request",
4
+ "name": "renewal",
5
+ "verdict": "accept",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJvcGVyYXRpb25JZCI6Im9wLWUyZS0xNzg4NjU4MjUzMjUxIiwiZ2VuZXJhdGlvbiI6MSwiY2FzZU9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwiZW52ZWxvcGVTaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sInJlcXVlc3RlZEF0IjoiMjAyNi0wNC0wMVQwMDowMDowMFoiLCJyZW5ld2FsIjp0cnVlfQ=="
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "lease",
4
+ "name": "fractional-expires-at",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJsZWFzZUlkIjoiOThkZWM3YjM4YmIwYmFiOTJkZGJkYjNkOTgwZDhlZGYwOWM1NWU5OTkwM2ZjYzQ1YTc0ZmYxZjZlZmU1ZDVmYyIsIm9wZXJhdGlvbklkIjoib3AtcmVwcm8iLCJnZW5lcmF0aW9uIjoxLCJjYXNlT3JuIjoib3JuOmRzZy5ydW4uZml4dHVyZS5hcnRpZmFjdDpjYXNlIiwiZW52ZWxvcGVTaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0sImNvbnN1bWVkQXQiOiIyMDI2LTA5LTA2VDAxOjI0OjMxWiIsImV4cGlyZXNBdCI6IjIwMjYtMDktMDZUMDE6Mjk6MzEuNTAwWiIsIm1heFNrZXdTZWNvbmRzIjozMCwicmVuZXdhbCI6Im5ldy1hdXRob3JpemF0aW9uLXJlcXVpcmVkIiwiZnJlc2giOnRydWV9",
7
+ "rule": "timestamps are exact UTC seconds"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "lease",
4
+ "name": "missing-profile",
5
+ "verdict": "reject",
6
+ "bytes": "eyJsZWFzZUlkIjoiOThkZWM3YjM4YmIwYmFiOTJkZGJkYjNkOTgwZDhlZGYwOWM1NWU5OTkwM2ZjYzQ1YTc0ZmYxZjZlZmU1ZDVmYyIsIm9wZXJhdGlvbklkIjoib3AtcmVwcm8iLCJnZW5lcmF0aW9uIjoxLCJjYXNlT3JuIjoib3JuOmRzZy5ydW4uZml4dHVyZS5hcnRpZmFjdDpjYXNlIiwiZW52ZWxvcGVTaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0sImNvbnN1bWVkQXQiOiIyMDI2LTA5LTA2VDAxOjI0OjMxWiIsImV4cGlyZXNBdCI6IjIwMjYtMDktMDZUMDE6Mjk6MzFaIiwibWF4U2tld1NlY29uZHMiOjMwLCJyZW5ld2FsIjoibmV3LWF1dGhvcml6YXRpb24tcmVxdWlyZWQiLCJmcmVzaCI6dHJ1ZX0=",
7
+ "rule": "profile literal required on every shape (drift fixed in dsg-run 687b3ff)"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "lease",
4
+ "name": "renewal-wrong-literal",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJsZWFzZUlkIjoiOThkZWM3YjM4YmIwYmFiOTJkZGJkYjNkOTgwZDhlZGYwOWM1NWU5OTkwM2ZjYzQ1YTc0ZmYxZjZlZmU1ZDVmYyIsIm9wZXJhdGlvbklkIjoib3AtcmVwcm8iLCJnZW5lcmF0aW9uIjoxLCJjYXNlT3JuIjoib3JuOmRzZy5ydW4uZml4dHVyZS5hcnRpZmFjdDpjYXNlIiwiZW52ZWxvcGVTaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0sImNvbnN1bWVkQXQiOiIyMDI2LTA5LTA2VDAxOjI0OjMxWiIsImV4cGlyZXNBdCI6IjIwMjYtMDktMDZUMDE6Mjk6MzFaIiwibWF4U2tld1NlY29uZHMiOjMwLCJyZW5ld2FsIjoicmVuZXdhYmxlIiwiZnJlc2giOnRydWV9",
7
+ "rule": "lease renewal is the literal new-authorization-required"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "lease",
4
+ "name": "skew-above-bound",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJsZWFzZUlkIjoiOThkZWM3YjM4YmIwYmFiOTJkZGJkYjNkOTgwZDhlZGYwOWM1NWU5OTkwM2ZjYzQ1YTc0ZmYxZjZlZmU1ZDVmYyIsIm9wZXJhdGlvbklkIjoib3AtcmVwcm8iLCJnZW5lcmF0aW9uIjoxLCJjYXNlT3JuIjoib3JuOmRzZy5ydW4uZml4dHVyZS5hcnRpZmFjdDpjYXNlIiwiZW52ZWxvcGVTaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0sImNvbnN1bWVkQXQiOiIyMDI2LTA5LTA2VDAxOjI0OjMxWiIsImV4cGlyZXNBdCI6IjIwMjYtMDktMDZUMDE6Mjk6MzFaIiwibWF4U2tld1NlY29uZHMiOjMwMSwicmVuZXdhbCI6Im5ldy1hdXRob3JpemF0aW9uLXJlcXVpcmVkIiwiZnJlc2giOnRydWV9",
7
+ "rule": "maxSkewSeconds bounded at 300"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "refusal",
4
+ "name": "empty-issues",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJjb2RlIjoicmV2b2tlZCIsImlzc3VlcyI6W119",
7
+ "rule": "a refusal names at least one issue"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "refusal",
4
+ "name": "unknown-code",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJjb2RlIjoidHJ5X2FnYWluX2xhdGVyIiwiaXNzdWVzIjpbImxhdyBjZDQ5NDUxMS4uLiByZXZva2VkIGJ5IHNuYXBzaG90IDciXX0=",
7
+ "rule": "refusal codes are a closed union"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "request",
4
+ "name": "extra-field",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJvcGVyYXRpb25JZCI6Im9wLWUyZS0xNzg4NjU4MjUzMjUxIiwiZ2VuZXJhdGlvbiI6MSwiY2FzZU9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwiZW52ZWxvcGVTaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sInJlcXVlc3RlZEF0IjoiMjAyNi0wNC0wMVQwMDowMDowMFoiLCJyZW5ld2FsIjpmYWxzZSwidmVuZG9yIjoiYWNtZSJ9",
7
+ "rule": "closed object: an extra field is a different protocol"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "request",
4
+ "name": "fractional-requested-at",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJvcGVyYXRpb25JZCI6Im9wLWUyZS0xNzg4NjU4MjUzMjUxIiwiZ2VuZXJhdGlvbiI6MSwiY2FzZU9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwiZW52ZWxvcGVTaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sInJlcXVlc3RlZEF0IjoiMjAyNi0wNC0wMVQwMDowMDowMC4wMDBaIiwicmVuZXdhbCI6ZmFsc2V9",
7
+ "rule": "timestamps are exact UTC seconds (drift fixed in dsg-run d67fcb4)"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "request",
4
+ "name": "malformed-case-orn",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJvcGVyYXRpb25JZCI6Im9wLWUyZS0xNzg4NjU4MjUzMjUxIiwiZ2VuZXJhdGlvbiI6MSwiY2FzZU9ybiI6ImNhc2UtNDIiLCJlbnZlbG9wZVNoYTI1NiI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJsYXdTaGEyNTYiOiJjZDQ5NDUxMTI2ZjA3ODIxMGFlYmUxOTliMjgyOTQyMzc5Mjg0ZTUwNjA3NDE5OTdlZjkwY2M4OWE4ZjFhNzk1IiwicmVzZXJ2YXRpb24iOnsib3JuIjoib3JuOmRzZy5ydW4uZml4dHVyZS5hcnRpZmFjdDpyZXNlcnZhdGlvbiIsInNoYTI1NiI6ImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIifSwicmVxdWVzdGVkQXQiOiIyMDI2LTA0LTAxVDAwOjAwOjAwWiIsInJlbmV3YWwiOmZhbHNlfQ==",
7
+ "rule": "caseOrn is an ORN"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "request",
4
+ "name": "negative-generation",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJvcGVyYXRpb25JZCI6Im9wLWUyZS0xNzg4NjU4MjUzMjUxIiwiZ2VuZXJhdGlvbiI6LTEsImNhc2VPcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmNhc2U6ZGVtbyIsImVudmVsb3BlU2hhMjU2IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsImxhd1NoYTI1NiI6ImNkNDk0NTExMjZmMDc4MjEwYWViZTE5OWIyODI5NDIzNzkyODRlNTA2MDc0MTk5N2VmOTBjYzg5YThmMWE3OTUiLCJyZXNlcnZhdGlvbiI6eyJvcm4iOiJvcm46ZHNnLnJ1bi5maXh0dXJlLmFydGlmYWN0OnJlc2VydmF0aW9uIiwic2hhMjU2IjoiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiJ9LCJyZXF1ZXN0ZWRBdCI6IjIwMjYtMDQtMDFUMDA6MDA6MDBaIiwicmVuZXdhbCI6ZmFsc2V9",
7
+ "rule": "generation is a nonnegative integer"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.dispatch-consume/1",
3
+ "shape": "request",
4
+ "name": "uppercase-envelope-digest",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5kaXNwYXRjaC1jb25zdW1lLzEiLCJvcGVyYXRpb25JZCI6Im9wLWUyZS0xNzg4NjU4MjUzMjUxIiwiZ2VuZXJhdGlvbiI6MSwiY2FzZU9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwiZW52ZWxvcGVTaGEyNTYiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIiwibGF3U2hhMjU2IjoiY2Q0OTQ1MTEyNmYwNzgyMTBhZWJlMTk5YjI4Mjk0MjM3OTI4NGU1MDYwNzQxOTk3ZWY5MGNjODlhOGYxYTc5NSIsInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cucnVuLmZpeHR1cmUuYXJ0aWZhY3Q6cmVzZXJ2YXRpb24iLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sInJlcXVlc3RlZEF0IjoiMjAyNi0wNC0wMVQwMDowMDowMFoiLCJyZW5ld2FsIjpmYWxzZX0=",
7
+ "rule": "digests are lowercase sha256 hex"
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "human-enrollment",
5
+ "verdict": "accept",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMSIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJodW1hbi1hdXRob3JpdHkiLCJkZXNpZ25hdGlvbiI6eyJyb2xlIjoibGF3LWlzc3VlciIsImRlc2lnbmF0aW9uUmVmZXJlbmNlIjoiZGVzaWduYXRpb24tMSJ9LCJzY29wZSI6eyJzY29wZVJlZmVyZW5jZSI6ImRzZy5pbmZyYS5zY29wZS8xIiwiYWN0aW9ucyI6WyJ2YWxpZGF0ZSIsInByZXBhcmUiLCJzdWJtaXQiLCJyZWNvbmNpbGUiLCJjYW5jZWwiLCJkZXN0cm95IiwiY29sbGVjdCJdLCJ3b3JrbG9hZENsYXNzZXMiOlsiY29tcHV0ZSIsInBsYW5lIl0sInJlZ2lvbnMiOlsiVVMiLCJVUy1DRU5UUkFMMSJdfSwidmFsaWRpdHkiOnsibm90QmVmb3JlIjoiMjAyNi0wMS0wMVQwMDowMDowMFoiLCJub3RBZnRlciI6IjIwMzAtMDEtMDFUMDA6MDA6MDBaIn0sImNlaWxpbmdzIjp7ImdwdVNlY29uZHNQZXJQZXJzb25VdGNXZWVrIjozNjAwLCJ1c2RNaWNyb1VuaXRzUGVyUGVyc29uVXRjTW9udGgiOjUwMDAwMDAwLCJ1c2RNaWNyb1VuaXRzUGVyT3JnYW5pemF0aW9uVXRjTW9udGgiOjMwMDAwMDAwMH0sInJldm9rZWQiOmZhbHNlfQ=="
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "synthetic-enrollment",
5
+ "verdict": "accept",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMSIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJzeW50aGV0aWMtdGVzdC1vbmx5IiwiZGVzaWduYXRpb24iOnsicm9sZSI6Imxhdy1pc3N1ZXIiLCJkZXNpZ25hdGlvblJlZmVyZW5jZSI6ImRlc2lnbmF0aW9uLTEifSwic2NvcGUiOnsic2NvcGVSZWZlcmVuY2UiOiJkc2cuaW5mcmEuc2NvcGUvMSIsImFjdGlvbnMiOlsidmFsaWRhdGUiLCJwcmVwYXJlIiwic3VibWl0IiwicmVjb25jaWxlIiwiY2FuY2VsIiwiZGVzdHJveSIsImNvbGxlY3QiXSwid29ya2xvYWRDbGFzc2VzIjpbImNvbXB1dGUiLCJwbGFuZSJdLCJyZWdpb25zIjpbIlVTIiwiVVMtQ0VOVFJBTDEiXX0sInZhbGlkaXR5Ijp7Im5vdEJlZm9yZSI6IjIwMjYtMDEtMDFUMDA6MDA6MDBaIiwibm90QWZ0ZXIiOiIyMDMwLTAxLTAxVDAwOjAwOjAwWiJ9LCJjZWlsaW5ncyI6eyJncHVTZWNvbmRzUGVyUGVyc29uVXRjV2VlayI6MzYwMCwidXNkTWljcm9Vbml0c1BlclBlcnNvblV0Y01vbnRoIjo1MDAwMDAwMCwidXNkTWljcm9Vbml0c1Blck9yZ2FuaXphdGlvblV0Y01vbnRoIjozMDAwMDAwMDB9LCJyZXZva2VkIjpmYWxzZX0="
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "empty-actions",
5
+ "verdict": "reject",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMSIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJzeW50aGV0aWMtdGVzdC1vbmx5IiwiZGVzaWduYXRpb24iOnsicm9sZSI6Imxhdy1pc3N1ZXIiLCJkZXNpZ25hdGlvblJlZmVyZW5jZSI6ImRlc2lnbmF0aW9uLTEifSwic2NvcGUiOnsic2NvcGVSZWZlcmVuY2UiOiJkc2cuaW5mcmEuc2NvcGUvMSIsImFjdGlvbnMiOltdLCJ3b3JrbG9hZENsYXNzZXMiOlsiY29tcHV0ZSIsInBsYW5lIl0sInJlZ2lvbnMiOlsiVVMiLCJVUy1DRU5UUkFMMSJdfSwidmFsaWRpdHkiOnsibm90QmVmb3JlIjoiMjAyNi0wMS0wMVQwMDowMDowMFoiLCJub3RBZnRlciI6IjIwMzAtMDEtMDFUMDA6MDA6MDBaIn0sImNlaWxpbmdzIjp7ImdwdVNlY29uZHNQZXJQZXJzb25VdGNXZWVrIjozNjAwLCJ1c2RNaWNyb1VuaXRzUGVyUGVyc29uVXRjTW9udGgiOjUwMDAwMDAwLCJ1c2RNaWNyb1VuaXRzUGVyT3JnYW5pemF0aW9uVXRjTW9udGgiOjMwMDAwMDAwMH0sInJldm9rZWQiOmZhbHNlfQ==",
7
+ "rule": "every scope set is an explicit allow-list with at least one entry"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "extra-field",
5
+ "verdict": "reject",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMSIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJzeW50aGV0aWMtdGVzdC1vbmx5IiwiZGVzaWduYXRpb24iOnsicm9sZSI6Imxhdy1pc3N1ZXIiLCJkZXNpZ25hdGlvblJlZmVyZW5jZSI6ImRlc2lnbmF0aW9uLTEifSwic2NvcGUiOnsic2NvcGVSZWZlcmVuY2UiOiJkc2cuaW5mcmEuc2NvcGUvMSIsImFjdGlvbnMiOlsidmFsaWRhdGUiLCJwcmVwYXJlIiwic3VibWl0IiwicmVjb25jaWxlIiwiY2FuY2VsIiwiZGVzdHJveSIsImNvbGxlY3QiXSwid29ya2xvYWRDbGFzc2VzIjpbImNvbXB1dGUiLCJwbGFuZSJdLCJyZWdpb25zIjpbIlVTIiwiVVMtQ0VOVFJBTDEiXX0sInZhbGlkaXR5Ijp7Im5vdEJlZm9yZSI6IjIwMjYtMDEtMDFUMDA6MDA6MDBaIiwibm90QWZ0ZXIiOiIyMDMwLTAxLTAxVDAwOjAwOjAwWiJ9LCJjZWlsaW5ncyI6eyJncHVTZWNvbmRzUGVyUGVyc29uVXRjV2VlayI6MzYwMCwidXNkTWljcm9Vbml0c1BlclBlcnNvblV0Y01vbnRoIjo1MDAwMDAwMCwidXNkTWljcm9Vbml0c1Blck9yZ2FuaXphdGlvblV0Y01vbnRoIjozMDAwMDAwMDB9LCJyZXZva2VkIjpmYWxzZSwidmVuZG9yIjoiYWNtZSJ9",
7
+ "rule": "closed object: an extra field is a different protocol"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "fractional-not-before",
5
+ "verdict": "reject",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMSIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJzeW50aGV0aWMtdGVzdC1vbmx5IiwiZGVzaWduYXRpb24iOnsicm9sZSI6Imxhdy1pc3N1ZXIiLCJkZXNpZ25hdGlvblJlZmVyZW5jZSI6ImRlc2lnbmF0aW9uLTEifSwic2NvcGUiOnsic2NvcGVSZWZlcmVuY2UiOiJkc2cuaW5mcmEuc2NvcGUvMSIsImFjdGlvbnMiOlsidmFsaWRhdGUiLCJwcmVwYXJlIiwic3VibWl0IiwicmVjb25jaWxlIiwiY2FuY2VsIiwiZGVzdHJveSIsImNvbGxlY3QiXSwid29ya2xvYWRDbGFzc2VzIjpbImNvbXB1dGUiLCJwbGFuZSJdLCJyZWdpb25zIjpbIlVTIiwiVVMtQ0VOVFJBTDEiXX0sInZhbGlkaXR5Ijp7Im5vdEJlZm9yZSI6IjIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWiIsIm5vdEFmdGVyIjoiMjAzMC0wMS0wMVQwMDowMDowMFoifSwiY2VpbGluZ3MiOnsiZ3B1U2Vjb25kc1BlclBlcnNvblV0Y1dlZWsiOjM2MDAsInVzZE1pY3JvVW5pdHNQZXJQZXJzb25VdGNNb250aCI6NTAwMDAwMDAsInVzZE1pY3JvVW5pdHNQZXJPcmdhbml6YXRpb25VdGNNb250aCI6MzAwMDAwMDAwfSwicmV2b2tlZCI6ZmFsc2V9",
7
+ "rule": "timestamps are exact UTC seconds"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "missing-ceilings",
5
+ "verdict": "reject",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMSIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJzeW50aGV0aWMtdGVzdC1vbmx5IiwiZGVzaWduYXRpb24iOnsicm9sZSI6Imxhdy1pc3N1ZXIiLCJkZXNpZ25hdGlvblJlZmVyZW5jZSI6ImRlc2lnbmF0aW9uLTEifSwic2NvcGUiOnsic2NvcGVSZWZlcmVuY2UiOiJkc2cuaW5mcmEuc2NvcGUvMSIsImFjdGlvbnMiOlsidmFsaWRhdGUiLCJwcmVwYXJlIiwic3VibWl0IiwicmVjb25jaWxlIiwiY2FuY2VsIiwiZGVzdHJveSIsImNvbGxlY3QiXSwid29ya2xvYWRDbGFzc2VzIjpbImNvbXB1dGUiLCJwbGFuZSJdLCJyZWdpb25zIjpbIlVTIiwiVVMtQ0VOVFJBTDEiXX0sInZhbGlkaXR5Ijp7Im5vdEJlZm9yZSI6IjIwMjYtMDEtMDFUMDA6MDA6MDBaIiwibm90QWZ0ZXIiOiIyMDMwLTAxLTAxVDAwOjAwOjAwWiJ9LCJyZXZva2VkIjpmYWxzZX0=",
7
+ "rule": "an enrollment without its three ceilings grants nothing"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "release-automation-key-class",
5
+ "verdict": "reject",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMSIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJyZWxlYXNlLWF1dG9tYXRpb24iLCJkZXNpZ25hdGlvbiI6eyJyb2xlIjoibGF3LWlzc3VlciIsImRlc2lnbmF0aW9uUmVmZXJlbmNlIjoiZGVzaWduYXRpb24tMSJ9LCJzY29wZSI6eyJzY29wZVJlZmVyZW5jZSI6ImRzZy5pbmZyYS5zY29wZS8xIiwiYWN0aW9ucyI6WyJ2YWxpZGF0ZSIsInByZXBhcmUiLCJzdWJtaXQiLCJyZWNvbmNpbGUiLCJjYW5jZWwiLCJkZXN0cm95IiwiY29sbGVjdCJdLCJ3b3JrbG9hZENsYXNzZXMiOlsiY29tcHV0ZSIsInBsYW5lIl0sInJlZ2lvbnMiOlsiVVMiLCJVUy1DRU5UUkFMMSJdfSwidmFsaWRpdHkiOnsibm90QmVmb3JlIjoiMjAyNi0wMS0wMVQwMDowMDowMFoiLCJub3RBZnRlciI6IjIwMzAtMDEtMDFUMDA6MDA6MDBaIn0sImNlaWxpbmdzIjp7ImdwdVNlY29uZHNQZXJQZXJzb25VdGNXZWVrIjozNjAwLCJ1c2RNaWNyb1VuaXRzUGVyUGVyc29uVXRjTW9udGgiOjUwMDAwMDAwLCJ1c2RNaWNyb1VuaXRzUGVyT3JnYW5pemF0aW9uVXRjTW9udGgiOjMwMDAwMDAwMH0sInJldm9rZWQiOmZhbHNlfQ==",
7
+ "rule": "release automation can never hold ordinary human authority (M029)"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.kernel.ordinary-authority/1",
3
+ "shape": "authority",
4
+ "name": "version-v2",
5
+ "verdict": "reject",
6
+ "bytes": "eyJ2ZXJzaW9uIjoiZHNnLmtlcm5lbC5vcmRpbmFyeS1hdXRob3JpdHkvMiIsInJlZmVyZW5jZSI6Im9ybjp0ZXN0LnN5bnRoZXRpYy1odW1hbi1yb290LzEiLCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6c3ludGhldGljLWxhdy1zaWduZXIiLCJwdWJsaWNLZXlIZXgiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwia2V5Q2xhc3MiOiJzeW50aGV0aWMtdGVzdC1vbmx5IiwiZGVzaWduYXRpb24iOnsicm9sZSI6Imxhdy1pc3N1ZXIiLCJkZXNpZ25hdGlvblJlZmVyZW5jZSI6ImRlc2lnbmF0aW9uLTEifSwic2NvcGUiOnsic2NvcGVSZWZlcmVuY2UiOiJkc2cuaW5mcmEuc2NvcGUvMSIsImFjdGlvbnMiOlsidmFsaWRhdGUiLCJwcmVwYXJlIiwic3VibWl0IiwicmVjb25jaWxlIiwiY2FuY2VsIiwiZGVzdHJveSIsImNvbGxlY3QiXSwid29ya2xvYWRDbGFzc2VzIjpbImNvbXB1dGUiLCJwbGFuZSJdLCJyZWdpb25zIjpbIlVTIiwiVVMtQ0VOVFJBTDEiXX0sInZhbGlkaXR5Ijp7Im5vdEJlZm9yZSI6IjIwMjYtMDEtMDFUMDA6MDA6MDBaIiwibm90QWZ0ZXIiOiIyMDMwLTAxLTAxVDAwOjAwOjAwWiJ9LCJjZWlsaW5ncyI6eyJncHVTZWNvbmRzUGVyUGVyc29uVXRjV2VlayI6MzYwMCwidXNkTWljcm9Vbml0c1BlclBlcnNvblV0Y01vbnRoIjo1MDAwMDAwMCwidXNkTWljcm9Vbml0c1Blck9yZ2FuaXphdGlvblV0Y01vbnRoIjozMDAwMDAwMDB9LCJyZXZva2VkIjpmYWxzZX0=",
7
+ "rule": "the literal is the version check; /2 does not exist"
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "pointer",
4
+ "name": "v2",
5
+ "verdict": "accept",
6
+ "bytes": "eyJ2ZXJzaW9uIjoyLCJzaGEyNTYiOiJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIiwidXJsIjoiL3Jldm9jYXRpb25zL3YvMi9zbmFwc2hvdC5qc29uIn0="
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "snapshot",
4
+ "name": "chained-with-entries",
5
+ "verdict": "accept",
6
+ "bytes": "eyJkb21haW4iOiJkc2cucmVnaXN0cnkucmV2b2NhdGlvbnMvMSIsInZlcnNpb24iOjIsImlzc3VlZEF0IjoxNzU3MTE2ODAwLCJleHBpcmVzQXQiOjE3NTcyMDMyMDAsInByZXZpb3VzU2hhMjU2IjoiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIsInRlc3RPbmx5Ijp0cnVlLCJzaWduZXJLZXkiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwicmV2b2tlZCI6W3sia2luZCI6ImtleSIsImlkIjoiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyIsImVmZmVjdGl2ZUF0IjoxNzU3MTIwMDAwLCJyZWFzb24iOiJyb3RhdGlvbiJ9XSwidHJ1c3RIaXN0b3J5IjpbeyJwcmluY2lwYWwiOiJvcm46ZHNnLmNvcmUua2VybmVsLmFjdG9yOnNheWVyIiwicHVibGljS2V5IjoiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIsInJvbGUiOiJodW1hbiIsImFjdGlvbiI6ImVucm9sbCIsImVmZmVjdGl2ZUF0IjoxNzU3MTIwMDAwLCJhdXRob3JpdHlTaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIiwicmVwbGFjZXNLZXkiOm51bGx9XX0="
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "snapshot",
4
+ "name": "genesis",
5
+ "verdict": "accept",
6
+ "bytes": "eyJkb21haW4iOiJkc2cucmVnaXN0cnkucmV2b2NhdGlvbnMvMSIsInZlcnNpb24iOjEsImlzc3VlZEF0IjoxNzU3MTE2ODAwLCJleHBpcmVzQXQiOjE3NTcyMDMyMDAsInByZXZpb3VzU2hhMjU2IjpudWxsLCJ0ZXN0T25seSI6dHJ1ZSwic2lnbmVyS2V5IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsInJldm9rZWQiOltdLCJ0cnVzdEhpc3RvcnkiOltdfQ=="
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "pointer",
4
+ "name": "traversal-url",
5
+ "verdict": "reject",
6
+ "bytes": "eyJ2ZXJzaW9uIjoyLCJzaGEyNTYiOiJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIiwidXJsIjoiL3Jldm9jYXRpb25zL3YvLi4vMi9zbmFwc2hvdC5qc29uIn0=",
7
+ "rule": "pointer urls are exactly /revocations/v/<n>/snapshot.json"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "snapshot",
4
+ "name": "extra-field",
5
+ "verdict": "reject",
6
+ "bytes": "eyJkb21haW4iOiJkc2cucmVnaXN0cnkucmV2b2NhdGlvbnMvMSIsInZlcnNpb24iOjEsImlzc3VlZEF0IjoxNzU3MTE2ODAwLCJleHBpcmVzQXQiOjE3NTcyMDMyMDAsInByZXZpb3VzU2hhMjU2IjpudWxsLCJ0ZXN0T25seSI6dHJ1ZSwic2lnbmVyS2V5IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsInJldm9rZWQiOltdLCJ0cnVzdEhpc3RvcnkiOltdLCJ2ZW5kb3IiOiJhY21lIn0=",
7
+ "rule": "closed object: an extra field is a different protocol"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "snapshot",
4
+ "name": "not-test-only",
5
+ "verdict": "reject",
6
+ "bytes": "eyJkb21haW4iOiJkc2cucmVnaXN0cnkucmV2b2NhdGlvbnMvMSIsInZlcnNpb24iOjEsImlzc3VlZEF0IjoxNzU3MTE2ODAwLCJleHBpcmVzQXQiOjE3NTcyMDMyMDAsInByZXZpb3VzU2hhMjU2IjpudWxsLCJ0ZXN0T25seSI6ZmFsc2UsInNpZ25lcktleSI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJyZXZva2VkIjpbXSwidHJ1c3RIaXN0b3J5IjpbXX0=",
7
+ "rule": "every local snapshot is labeled testOnly; deployed trust requires the managed signer (S03)"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "snapshot",
4
+ "name": "version-zero",
5
+ "verdict": "reject",
6
+ "bytes": "eyJkb21haW4iOiJkc2cucmVnaXN0cnkucmV2b2NhdGlvbnMvMSIsInZlcnNpb24iOjAsImlzc3VlZEF0IjoxNzU3MTE2ODAwLCJleHBpcmVzQXQiOjE3NTcyMDMyMDAsInByZXZpb3VzU2hhMjU2IjpudWxsLCJ0ZXN0T25seSI6dHJ1ZSwic2lnbmVyS2V5IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsInJldm9rZWQiOltdLCJ0cnVzdEhpc3RvcnkiOltdfQ==",
7
+ "rule": "snapshot versions are monotonic from 1"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.registry.revocations/1",
3
+ "shape": "snapshot",
4
+ "name": "wrong-domain-v2",
5
+ "verdict": "reject",
6
+ "bytes": "eyJkb21haW4iOiJkc2cucmVnaXN0cnkucmV2b2NhdGlvbnMvMiIsInZlcnNpb24iOjEsImlzc3VlZEF0IjoxNzU3MTE2ODAwLCJleHBpcmVzQXQiOjE3NTcyMDMyMDAsInByZXZpb3VzU2hhMjU2IjpudWxsLCJ0ZXN0T25seSI6dHJ1ZSwic2lnbmVyS2V5IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsInJldm9rZWQiOltdLCJ0cnVzdEhpc3RvcnkiOltdfQ==",
7
+ "rule": "the literal is the version check; dsg.registry.revocations/2 does not exist"
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "accepted",
4
+ "name": "receipt-fractional-accepted-at",
5
+ "verdict": "accept",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMSIsIm9wZXJhdGlvbklkIjoib3AtaWRsLTAwMDEiLCJhY3Rpb25JZCI6IlJVTi0wMDAwMDEiLCJnZW5lcmF0aW9uIjoxLCJwbGFuRGlnZXN0IjoiZDNiYzBlYTRkMDNmMmZkMWI5ZjEzNGY2MjQxOTljN2E1M2U1NzY5NTZiOGFjMTc2MzA4OTg4MDMyOGM2ODYyZSIsImFjY2VwdGVkQXQiOiIyMDI2LTA0LTAxVDAwOjAwOjAwLjAwMFoifQ=="
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "readback",
4
+ "name": "queued-pending",
5
+ "verdict": "accept",
6
+ "bytes": "eyJvcGVyYXRpb25JZCI6Im9wLWlkbC0wMDAxIiwiZ2VuZXJhdGlvbiI6MSwicGxhbkRpZ2VzdCI6ImQzYmMwZWE0ZDAzZjJmZDFiOWYxMzRmNjI0MTk5YzdhNTNlNTc2OTU2YjhhYzE3NjMwODk4ODAzMjhjNjg2MmUiLCJleGVjdXRpb24iOiJxdWV1ZWQiLCJjbGVhbnVwIjoicGVuZGluZyIsImV2aWRlbmNlIjoicGVuZGluZyIsImV2aWRlbmNlUmVmIjpudWxsLCJjb3N0IjoicmVzZXJ2ZWQifQ=="
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "request",
4
+ "name": "minimal-valid",
5
+ "verdict": "accept",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMSIsIm9wZXJhdGlvbklkIjoib3AtaWRsLTAwMDEiLCJjYXNlIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwic2hhMjU2IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSJ9LCJ3b3Jrc3BhY2UiOiJlMmUiLCJleHBlY3RlZEdlbmVyYXRpb24iOjAsImJlZm9yZSI6eyJvcGVyYXRpb25JZCI6bnVsbCwicGxhbkRpZ2VzdCI6bnVsbH0sInBsYW5EaWdlc3QiOiJkM2JjMGVhNGQwM2YyZmQxYjlmMTM0ZjYyNDE5OWM3YTUzZTU3Njk1NmI4YWMxNzYzMDg5ODgwMzI4YzY4NjJlIiwiZG9jdW1lbnQiOnsic2NoZW1hVmVyc2lvbiI6MSwiY2xhc3NDb250cmFjdCI6eyJvcm4iOiJvcm46ZHNnLmluZnJhLm1vZHVsZS5yZWxlYXNlOmNsYXNzLWNvbnRyYWN0LzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImxhdyI6eyJidW5kbGUiOnsib3JuIjoib3JuOmRzZy5pbmZyYS5zaWduZWQtbGF3LmJ1bmRsZTpzeW50aGV0aWMvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifSwicmVnaXN0cnlSZWxlYXNlIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6bGF3LzEiLCJzaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIn19LCJ3b3JrbG9hZCI6eyJvcm4iOiJvcm46ZHNnLnJ1bi53b3JrbG9hZC5hcnRpZmFjdDpub29wLzEiLCJzaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5ydW4uaW5wdXQuYXJ0aWZhY3Q6c2VlZC8xIiwic2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9XSwicmVzb3VyY2VzIjp7Im1heEdwdVNlY29uZHMiOjAsIm1heFJ1blNlY29uZHMiOjYwMCwibWF4UGFyYWxsZWxpc20iOjF9LCJjb3N0Qm91bmQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpjb3N0LWJvdW5kLzEiLCJzaGEyNTYiOiIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0sInBsYWNlbWVudCI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OnBsYWNlbWVudC8xIiwic2hhMjU2IjoiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSJ9LCJyZXN1bHRzIjp7Im9ybiI6Im9ybjpkc2cucnVuLnJlc3VsdC5zcGFjZTpvcC1pZGwtMDAwMS9yZXN1bHRzIiwic2hhMjU2IjoiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiJ9LCJzZWNyZXRzIjpbXX0sImF1dGhvcml0eSI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmV2ZW50OmF1dGhvcml0eS1kZWNpZGVkLzEiLCJzaGEyNTYiOiIzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIn0sInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuZXZlbnQ6YXV0aG9yaXR5LXJlc2VydmVkLzEiLCJzaGEyNTYiOiI0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0In19"
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "envelope",
4
+ "name": "m010-envelope-digest",
5
+ "verdict": "accept",
6
+ "bytes": "ewogInJlc2VydmF0aW9uIjogewogICJvcm4iOiAib3JuOmRzZy5jb3JlLmtlcm5lbC5ldmVudDphdXRob3JpdHktcmVzZXJ2ZWQvMSIsCiAgInNoYTI1NiI6ICI0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0IgogfSwKICJhdXRob3JpdHkiOiB7CiAgIm9ybiI6ICJvcm46ZHNnLmNvcmUua2VybmVsLmV2ZW50OmF1dGhvcml0eS1kZWNpZGVkLzEiLAogICJzaGEyNTYiOiAiMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIKIH0sCiAiZG9jdW1lbnQiOiB7CiAgInNjaGVtYVZlcnNpb24iOiAxLAogICJjbGFzc0NvbnRyYWN0IjogewogICAib3JuIjogIm9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6Y2xhc3MtY29udHJhY3QvMSIsCiAgICJzaGEyNTYiOiAiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIKICB9LAogICJsYXciOiB7CiAgICJidW5kbGUiOiB7CiAgICAib3JuIjogIm9ybjpkc2cuaW5mcmEuc2lnbmVkLWxhdy5idW5kbGU6c3ludGhldGljLzEiLAogICAgInNoYTI1NiI6ICJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIgogICB9LAogICAicmVnaXN0cnlSZWxlYXNlIjogewogICAgIm9ybiI6ICJvcm46ZHNnLmluZnJhLm1vZHVsZS5yZWxlYXNlOmxhdy8xIiwKICAgICJzaGEyNTYiOiAiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIKICAgfQogIH0sCiAgIndvcmtsb2FkIjogewogICAib3JuIjogIm9ybjpkc2cucnVuLndvcmtsb2FkLmFydGlmYWN0Om5vb3AvMSIsCiAgICJzaGEyNTYiOiAiZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZSIKICB9LAogICJpbnB1dHMiOiBbCiAgIHsKICAgICJvcm4iOiAib3JuOmRzZy5ydW4uaW5wdXQuYXJ0aWZhY3Q6c2VlZC8xIiwKICAgICJzaGEyNTYiOiAiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiIKICAgfQogIF0sCiAgInJlc291cmNlcyI6IHsKICAgIm1heEdwdVNlY29uZHMiOiAwLAogICAibWF4UnVuU2Vjb25kcyI6IDYwMCwKICAgIm1heFBhcmFsbGVsaXNtIjogMQogIH0sCiAgImNvc3RCb3VuZCI6IHsKICAgIm9ybiI6ICJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OmNvc3QtYm91bmQvMSIsCiAgICJzaGEyNTYiOiAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIKICB9LAogICJwbGFjZW1lbnQiOiB7CiAgICJvcm4iOiAib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpwbGFjZW1lbnQvMSIsCiAgICJzaGEyNTYiOiAiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSIKICB9LAogICJyZXN1bHRzIjogewogICAib3JuIjogIm9ybjpkc2cucnVuLnJlc3VsdC5zcGFjZTpvcC1pZGwtMDAwMS9yZXN1bHRzIiwKICAgInNoYTI1NiI6ICIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIgogIH0sCiAgInNlY3JldHMiOiBbXQogfSwKICJwbGFuRGlnZXN0IjogImQzYmMwZWE0ZDAzZjJmZDFiOWYxMzRmNjI0MTk5YzdhNTNlNTc2OTU2YjhhYzE3NjMwODk4ODAzMjhjNjg2MmUiLAogImJlZm9yZSI6IHsKICAib3BlcmF0aW9uSWQiOiBudWxsLAogICJwbGFuRGlnZXN0IjogbnVsbAogfSwKICJleHBlY3RlZEdlbmVyYXRpb24iOiAwLAogIndvcmtzcGFjZSI6ICJlMmUiLAogImNhc2UiOiB7CiAgIm9ybiI6ICJvcm46ZHNnLmNvcmUua2VybmVsLmNhc2U6ZGVtbyIsCiAgInNoYTI1NiI6ICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgogfSwKICJvcGVyYXRpb25JZCI6ICJvcC1pZGwtMDAwMSIsCiAicHJvZmlsZSI6ICJkc2cucnVuLm9wZXJhdGlvbi8xIgp9",
7
+ "sha256": "60afb089907f21750b29d7baf95c747d9727aa7cc0a4c221174a1eea115d12dd"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "accepted",
4
+ "name": "missing-plan-digest",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMSIsIm9wZXJhdGlvbklkIjoib3AtaWRsLTAwMDEiLCJhY3Rpb25JZCI6IlJVTi0wMDAwMDEiLCJnZW5lcmF0aW9uIjoxLCJhY2NlcHRlZEF0IjoiMjAyNi0wNC0wMVQwMDowMDowMC4wMDBaIn0=",
7
+ "rule": "the receipt binds the plan digest; without it acceptance is unverifiable"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "request",
4
+ "name": "document-schema-version-2",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMSIsIm9wZXJhdGlvbklkIjoib3AtaWRsLTAwMDEiLCJjYXNlIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwic2hhMjU2IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSJ9LCJ3b3Jrc3BhY2UiOiJlMmUiLCJleHBlY3RlZEdlbmVyYXRpb24iOjAsImJlZm9yZSI6eyJvcGVyYXRpb25JZCI6bnVsbCwicGxhbkRpZ2VzdCI6bnVsbH0sInBsYW5EaWdlc3QiOiJkM2JjMGVhNGQwM2YyZmQxYjlmMTM0ZjYyNDE5OWM3YTUzZTU3Njk1NmI4YWMxNzYzMDg5ODgwMzI4YzY4NjJlIiwiZG9jdW1lbnQiOnsic2NoZW1hVmVyc2lvbiI6MiwiY2xhc3NDb250cmFjdCI6eyJvcm4iOiJvcm46ZHNnLmluZnJhLm1vZHVsZS5yZWxlYXNlOmNsYXNzLWNvbnRyYWN0LzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImxhdyI6eyJidW5kbGUiOnsib3JuIjoib3JuOmRzZy5pbmZyYS5zaWduZWQtbGF3LmJ1bmRsZTpzeW50aGV0aWMvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifSwicmVnaXN0cnlSZWxlYXNlIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6bGF3LzEiLCJzaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIn19LCJ3b3JrbG9hZCI6eyJvcm4iOiJvcm46ZHNnLnJ1bi53b3JrbG9hZC5hcnRpZmFjdDpub29wLzEiLCJzaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5ydW4uaW5wdXQuYXJ0aWZhY3Q6c2VlZC8xIiwic2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9XSwicmVzb3VyY2VzIjp7Im1heEdwdVNlY29uZHMiOjAsIm1heFJ1blNlY29uZHMiOjYwMCwibWF4UGFyYWxsZWxpc20iOjF9LCJjb3N0Qm91bmQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpjb3N0LWJvdW5kLzEiLCJzaGEyNTYiOiIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0sInBsYWNlbWVudCI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OnBsYWNlbWVudC8xIiwic2hhMjU2IjoiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSJ9LCJyZXN1bHRzIjp7Im9ybiI6Im9ybjpkc2cucnVuLnJlc3VsdC5zcGFjZTpvcC1pZGwtMDAwMS9yZXN1bHRzIiwic2hhMjU2IjoiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiJ9LCJzZWNyZXRzIjpbXX0sImF1dGhvcml0eSI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmV2ZW50OmF1dGhvcml0eS1kZWNpZGVkLzEiLCJzaGEyNTYiOiIzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIn0sInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuZXZlbnQ6YXV0aG9yaXR5LXJlc2VydmVkLzEiLCJzaGEyNTYiOiI0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0In19",
7
+ "rule": "the execution document is schemaVersion 1 under this profile"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "request",
4
+ "name": "extra-field",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMSIsIm9wZXJhdGlvbklkIjoib3AtaWRsLTAwMDEiLCJjYXNlIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwic2hhMjU2IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSJ9LCJ3b3Jrc3BhY2UiOiJlMmUiLCJleHBlY3RlZEdlbmVyYXRpb24iOjAsImJlZm9yZSI6eyJvcGVyYXRpb25JZCI6bnVsbCwicGxhbkRpZ2VzdCI6bnVsbH0sInBsYW5EaWdlc3QiOiJkM2JjMGVhNGQwM2YyZmQxYjlmMTM0ZjYyNDE5OWM3YTUzZTU3Njk1NmI4YWMxNzYzMDg5ODgwMzI4YzY4NjJlIiwiZG9jdW1lbnQiOnsic2NoZW1hVmVyc2lvbiI6MSwiY2xhc3NDb250cmFjdCI6eyJvcm4iOiJvcm46ZHNnLmluZnJhLm1vZHVsZS5yZWxlYXNlOmNsYXNzLWNvbnRyYWN0LzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImxhdyI6eyJidW5kbGUiOnsib3JuIjoib3JuOmRzZy5pbmZyYS5zaWduZWQtbGF3LmJ1bmRsZTpzeW50aGV0aWMvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifSwicmVnaXN0cnlSZWxlYXNlIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6bGF3LzEiLCJzaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIn19LCJ3b3JrbG9hZCI6eyJvcm4iOiJvcm46ZHNnLnJ1bi53b3JrbG9hZC5hcnRpZmFjdDpub29wLzEiLCJzaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5ydW4uaW5wdXQuYXJ0aWZhY3Q6c2VlZC8xIiwic2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9XSwicmVzb3VyY2VzIjp7Im1heEdwdVNlY29uZHMiOjAsIm1heFJ1blNlY29uZHMiOjYwMCwibWF4UGFyYWxsZWxpc20iOjF9LCJjb3N0Qm91bmQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpjb3N0LWJvdW5kLzEiLCJzaGEyNTYiOiIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0sInBsYWNlbWVudCI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OnBsYWNlbWVudC8xIiwic2hhMjU2IjoiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSJ9LCJyZXN1bHRzIjp7Im9ybiI6Im9ybjpkc2cucnVuLnJlc3VsdC5zcGFjZTpvcC1pZGwtMDAwMS9yZXN1bHRzIiwic2hhMjU2IjoiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiJ9LCJzZWNyZXRzIjpbXX0sImF1dGhvcml0eSI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmV2ZW50OmF1dGhvcml0eS1kZWNpZGVkLzEiLCJzaGEyNTYiOiIzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIn0sInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuZXZlbnQ6YXV0aG9yaXR5LXJlc2VydmVkLzEiLCJzaGEyNTYiOiI0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0In0sInZlbmRvciI6ImFjbWUifQ==",
7
+ "rule": "closed object: an extra field is a different protocol"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "request",
4
+ "name": "r01-original-short-orn",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMSIsIm9wZXJhdGlvbklkIjoib3AtMDAwMSIsImNhc2UiOnsib3JuIjoib3JuOmRzZy5jYXNlOmNhc2UtMSIsInNoYTI1NiI6ImFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWIifSwid29ya3NwYWNlIjoiZGVtbyIsImV4cGVjdGVkR2VuZXJhdGlvbiI6MywiYmVmb3JlIjp7Im9wZXJhdGlvbklkIjpudWxsLCJwbGFuRGlnZXN0IjpudWxsfSwicGxhbkRpZ2VzdCI6Ijc2NTFiZGEyODg0YWU3ZGE5MzM0YWNiNTIwOWNhNjU3OWJjMmIxM2FiYzRkNGJjNjhlNjQ0OGFiNmJhZGI4YzQiLCJkb2N1bWVudCI6eyJzY2hlbWFWZXJzaW9uIjoxLCJjbGFzc0NvbnRyYWN0Ijp7Im9ybiI6Im9ybjpkc2cuY2xhc3MuY29udHJhY3Q6am9iLXYxIiwic2hhMjU2IjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiJ9LCJsYXciOnsiYnVuZGxlIjp7Im9ybiI6Im9ybjpkc2cubGF3LmJ1bmRsZTpsYXctdjEiLCJzaGEyNTYiOiJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiIn0sInJlZ2lzdHJ5UmVsZWFzZSI6eyJvcm4iOiJvcm46ZHNnLnJlZ2lzdHJ5LnJlbGVhc2U6cmVsZWFzZS0xIiwic2hhMjU2IjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiJ9fSwid29ya2xvYWQiOnsib3JuIjoib3JuOmRzZy53b3JrbG9hZDpqb2ItdjEiLCJzaGEyNTYiOiJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5pbnB1dDpkYXRhc2V0LXYxIiwic2hhMjU2IjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiJ9XSwicmVzb3VyY2VzIjp7Im1heEdwdVNlY29uZHMiOjEyMCwibWF4UnVuU2Vjb25kcyI6MzAwLCJtYXhQYXJhbGxlbGlzbSI6Mn0sImNvc3RCb3VuZCI6eyJvcm4iOiJvcm46ZHNnLmNvc3QuYm91bmQ6dXNkLTEiLCJzaGEyNTYiOiJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiIn0sInBsYWNlbWVudCI6eyJvcm4iOiJvcm46ZHNnLnBsYWNlbWVudDp1cy1jZW50cmFsMS1hIiwic2hhMjU2IjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiJ9LCJyZXN1bHRzIjp7Im9ybiI6Im9ybjpkc2cucmVzdWx0czpqb2Itb3V0cHV0LXYxIiwic2hhMjU2IjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiJ9LCJzZWNyZXRzIjpbeyJvcm4iOiJvcm46ZHNnLnNlY3JldC1yZWY6am9iLXYxIiwic2hhMjU2IjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiJ9XX0sImF1dGhvcml0eSI6eyJvcm4iOiJvcm46ZHNnLmF1dGhvcml0eTpodW1hbi0xIiwic2hhMjU2IjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiJ9LCJyZXNlcnZhdGlvbiI6eyJvcm4iOiJvcm46ZHNnLnJlc2VydmF0aW9uOnJlc2VydmF0aW9uLTEiLCJzaGEyNTYiOiJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiIn19",
7
+ "rule": "ORN spaces are four labels; the original R01 vectors predate the grammar and are retained as rejects"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "request",
4
+ "name": "uppercase-plan-digest",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMSIsIm9wZXJhdGlvbklkIjoib3AtaWRsLTAwMDEiLCJjYXNlIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwic2hhMjU2IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSJ9LCJ3b3Jrc3BhY2UiOiJlMmUiLCJleHBlY3RlZEdlbmVyYXRpb24iOjAsImJlZm9yZSI6eyJvcGVyYXRpb25JZCI6bnVsbCwicGxhbkRpZ2VzdCI6bnVsbH0sInBsYW5EaWdlc3QiOiJEM0JDMEVBNEQwM0YyRkQxQjlGMTM0RjYyNDE5OUM3QTUzRTU3Njk1NkI4QUMxNzYzMDg5ODgwMzI4QzY4NjJFIiwiZG9jdW1lbnQiOnsic2NoZW1hVmVyc2lvbiI6MSwiY2xhc3NDb250cmFjdCI6eyJvcm4iOiJvcm46ZHNnLmluZnJhLm1vZHVsZS5yZWxlYXNlOmNsYXNzLWNvbnRyYWN0LzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImxhdyI6eyJidW5kbGUiOnsib3JuIjoib3JuOmRzZy5pbmZyYS5zaWduZWQtbGF3LmJ1bmRsZTpzeW50aGV0aWMvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifSwicmVnaXN0cnlSZWxlYXNlIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6bGF3LzEiLCJzaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIn19LCJ3b3JrbG9hZCI6eyJvcm4iOiJvcm46ZHNnLnJ1bi53b3JrbG9hZC5hcnRpZmFjdDpub29wLzEiLCJzaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5ydW4uaW5wdXQuYXJ0aWZhY3Q6c2VlZC8xIiwic2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9XSwicmVzb3VyY2VzIjp7Im1heEdwdVNlY29uZHMiOjAsIm1heFJ1blNlY29uZHMiOjYwMCwibWF4UGFyYWxsZWxpc20iOjF9LCJjb3N0Qm91bmQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpjb3N0LWJvdW5kLzEiLCJzaGEyNTYiOiIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0sInBsYWNlbWVudCI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OnBsYWNlbWVudC8xIiwic2hhMjU2IjoiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSJ9LCJyZXN1bHRzIjp7Im9ybiI6Im9ybjpkc2cucnVuLnJlc3VsdC5zcGFjZTpvcC1pZGwtMDAwMS9yZXN1bHRzIiwic2hhMjU2IjoiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiJ9LCJzZWNyZXRzIjpbXX0sImF1dGhvcml0eSI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmV2ZW50OmF1dGhvcml0eS1kZWNpZGVkLzEiLCJzaGEyNTYiOiIzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIn0sInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuZXZlbnQ6YXV0aG9yaXR5LXJlc2VydmVkLzEiLCJzaGEyNTYiOiI0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0In19",
7
+ "rule": "digests are lowercase sha256 hex"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "request",
4
+ "name": "wrong-profile-other",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vdGhlci8xIiwib3BlcmF0aW9uSWQiOiJvcC1pZGwtMDAwMSIsImNhc2UiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5jYXNlOmRlbW8iLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0sIndvcmtzcGFjZSI6ImUyZSIsImV4cGVjdGVkR2VuZXJhdGlvbiI6MCwiYmVmb3JlIjp7Im9wZXJhdGlvbklkIjpudWxsLCJwbGFuRGlnZXN0IjpudWxsfSwicGxhbkRpZ2VzdCI6ImQzYmMwZWE0ZDAzZjJmZDFiOWYxMzRmNjI0MTk5YzdhNTNlNTc2OTU2YjhhYzE3NjMwODk4ODAzMjhjNjg2MmUiLCJkb2N1bWVudCI6eyJzY2hlbWFWZXJzaW9uIjoxLCJjbGFzc0NvbnRyYWN0Ijp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6Y2xhc3MtY29udHJhY3QvMSIsInNoYTI1NiI6ImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIifSwibGF3Ijp7ImJ1bmRsZSI6eyJvcm4iOiJvcm46ZHNnLmluZnJhLnNpZ25lZC1sYXcuYnVuZGxlOnN5bnRoZXRpYy8xIiwic2hhMjU2IjoiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyJ9LCJyZWdpc3RyeVJlbGVhc2UiOnsib3JuIjoib3JuOmRzZy5pbmZyYS5tb2R1bGUucmVsZWFzZTpsYXcvMSIsInNoYTI1NiI6ImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQifX0sIndvcmtsb2FkIjp7Im9ybiI6Im9ybjpkc2cucnVuLndvcmtsb2FkLmFydGlmYWN0Om5vb3AvMSIsInNoYTI1NiI6ImVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUifSwiaW5wdXRzIjpbeyJvcm4iOiJvcm46ZHNnLnJ1bi5pbnB1dC5hcnRpZmFjdDpzZWVkLzEiLCJzaGEyNTYiOiJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIn1dLCJyZXNvdXJjZXMiOnsibWF4R3B1U2Vjb25kcyI6MCwibWF4UnVuU2Vjb25kcyI6NjAwLCJtYXhQYXJhbGxlbGlzbSI6MX0sImNvc3RCb3VuZCI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OmNvc3QtYm91bmQvMSIsInNoYTI1NiI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAifSwicGxhY2VtZW50Ijp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuZG9jdW1lbnQ6cGxhY2VtZW50LzEiLCJzaGEyNTYiOiIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExIn0sInJlc3VsdHMiOnsib3JuIjoib3JuOmRzZy5ydW4ucmVzdWx0LnNwYWNlOm9wLWlkbC0wMDAxL3Jlc3VsdHMiLCJzaGEyNTYiOiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIn0sInNlY3JldHMiOltdfSwiYXV0aG9yaXR5Ijp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuZXZlbnQ6YXV0aG9yaXR5LWRlY2lkZWQvMSIsInNoYTI1NiI6IjMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMifSwicmVzZXJ2YXRpb24iOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5ldmVudDphdXRob3JpdHktcmVzZXJ2ZWQvMSIsInNoYTI1NiI6IjQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQifX0=",
7
+ "rule": "the literal is the version check; a different profile is a different protocol"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "profile": "dsg.run.operation/1",
3
+ "shape": "request",
4
+ "name": "wrong-profile-v2",
5
+ "verdict": "reject",
6
+ "bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5vcGVyYXRpb24vMiIsIm9wZXJhdGlvbklkIjoib3AtaWRsLTAwMDEiLCJjYXNlIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuY2FzZTpkZW1vIiwic2hhMjU2IjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSJ9LCJ3b3Jrc3BhY2UiOiJlMmUiLCJleHBlY3RlZEdlbmVyYXRpb24iOjAsImJlZm9yZSI6eyJvcGVyYXRpb25JZCI6bnVsbCwicGxhbkRpZ2VzdCI6bnVsbH0sInBsYW5EaWdlc3QiOiJkM2JjMGVhNGQwM2YyZmQxYjlmMTM0ZjYyNDE5OWM3YTUzZTU3Njk1NmI4YWMxNzYzMDg5ODgwMzI4YzY4NjJlIiwiZG9jdW1lbnQiOnsic2NoZW1hVmVyc2lvbiI6MSwiY2xhc3NDb250cmFjdCI6eyJvcm4iOiJvcm46ZHNnLmluZnJhLm1vZHVsZS5yZWxlYXNlOmNsYXNzLWNvbnRyYWN0LzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImxhdyI6eyJidW5kbGUiOnsib3JuIjoib3JuOmRzZy5pbmZyYS5zaWduZWQtbGF3LmJ1bmRsZTpzeW50aGV0aWMvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifSwicmVnaXN0cnlSZWxlYXNlIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6bGF3LzEiLCJzaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIn19LCJ3b3JrbG9hZCI6eyJvcm4iOiJvcm46ZHNnLnJ1bi53b3JrbG9hZC5hcnRpZmFjdDpub29wLzEiLCJzaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5ydW4uaW5wdXQuYXJ0aWZhY3Q6c2VlZC8xIiwic2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9XSwicmVzb3VyY2VzIjp7Im1heEdwdVNlY29uZHMiOjAsIm1heFJ1blNlY29uZHMiOjYwMCwibWF4UGFyYWxsZWxpc20iOjF9LCJjb3N0Qm91bmQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpjb3N0LWJvdW5kLzEiLCJzaGEyNTYiOiIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0sInBsYWNlbWVudCI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OnBsYWNlbWVudC8xIiwic2hhMjU2IjoiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSJ9LCJyZXN1bHRzIjp7Im9ybiI6Im9ybjpkc2cucnVuLnJlc3VsdC5zcGFjZTpvcC1pZGwtMDAwMS9yZXN1bHRzIiwic2hhMjU2IjoiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiJ9LCJzZWNyZXRzIjpbXX0sImF1dGhvcml0eSI6eyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmV2ZW50OmF1dGhvcml0eS1kZWNpZGVkLzEiLCJzaGEyNTYiOiIzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIn0sInJlc2VydmF0aW9uIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuZXZlbnQ6YXV0aG9yaXR5LXJlc2VydmVkLzEiLCJzaGEyNTYiOiI0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0In19",
7
+ "rule": "the literal is the version check; dsg.run.operation/2 does not exist"
8
+ }
package/checklist.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "profiles": {
3
+ "dsg.kernel.dispatch-consume/1": 16,
4
+ "dsg.run.operation/1": 11,
5
+ "dsg.infra.signed-law/1": 12,
6
+ "dsg.registry.revocations/1": 8,
7
+ "dsg.infra.resource-descriptor/1": 11,
8
+ "dsg.kernel.bootstrap/1": 9,
9
+ "dsg.kernel.ordinary-authority/1": 8,
10
+ "dsg.infra.adoption-fact/1": 7
11
+ }
12
+ }
package/dist/cli.cjs ADDED
@@ -0,0 +1,16 @@
1
+ const require_reference_adapter = require("./reference-adapter-DWurDAI9.cjs");
2
+ let node_fs = require("node:fs");
3
+ let node_path = require("node:path");
4
+ let node_url = require("node:url");
5
+ //#region src/cli.ts
6
+ const here = (0, node_path.dirname)((0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href));
7
+ const root = (0, node_path.join)(here, "..");
8
+ const checklist = JSON.parse((0, node_fs.readFileSync)((0, node_path.join)(root, "checklist.json"), "utf8"));
9
+ const report = require_reference_adapter.runVectors(require_reference_adapter.referenceAdapter(), (0, node_path.join)(root, "assets", "vectors"), checklist);
10
+ for (const verdict of report.verdicts) if (verdict.outcome === "fail") console.error(`FAIL ${verdict.id}: ${verdict.detail}`);
11
+ console.log(JSON.stringify({
12
+ passed: report.passed,
13
+ failed: report.failed
14
+ }));
15
+ process.exit(report.failed === 0 ? 0 : 1);
16
+ //#endregion
package/dist/cli.d.cts ADDED
@@ -0,0 +1 @@
1
+ export {}
package/dist/cli.d.mts ADDED
@@ -0,0 +1 @@
1
+ export {}
package/dist/cli.mjs ADDED
@@ -0,0 +1,19 @@
1
+ import { n as runVectors, t as referenceAdapter } from "./reference-adapter-CaAo2iIH.mjs";
2
+ import { readFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ //#region src/cli.ts
6
+ const here = dirname(fileURLToPath(import.meta.url));
7
+ const root = join(here, "..");
8
+ const checklist = JSON.parse(readFileSync(join(root, "checklist.json"), "utf8"));
9
+ const report = runVectors(referenceAdapter(), join(root, "assets", "vectors"), checklist);
10
+ for (const verdict of report.verdicts) if (verdict.outcome === "fail") console.error(`FAIL ${verdict.id}: ${verdict.detail}`);
11
+ console.log(JSON.stringify({
12
+ passed: report.passed,
13
+ failed: report.failed
14
+ }));
15
+ process.exit(report.failed === 0 ? 0 : 1);
16
+ //#endregion
17
+ export {};
18
+
19
+ //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mjs","names":[],"sources":["../src/cli.ts"],"sourcesContent":["// Runs every committed vector through the reference adapter. Exit 0 only\n// when every vector agrees with the schemas. CI for this repo; consumers\n// run the same runner with their own adapter instead.\nimport { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { referenceAdapter } from \"./reference-adapter.js\";\nimport { runVectors } from \"./runner.js\";\n\nconst here = dirname(fileURLToPath(import.meta.url));\nconst root = join(here, \"..\");\nconst checklist = JSON.parse(readFileSync(join(root, \"checklist.json\"), \"utf8\"));\nconst report = runVectors(referenceAdapter(), join(root, \"assets\", \"vectors\"), checklist);\n\nfor (const verdict of report.verdicts) {\n if (verdict.outcome === \"fail\") console.error(`FAIL ${verdict.id}: ${verdict.detail}`);\n}\nconsole.log(JSON.stringify({ passed: report.passed, failed: report.failed }));\nprocess.exit(report.failed === 0 ? 0 : 1);\n"],"mappings":";;;;;AASA,MAAM,OAAO,QAAQ,cAAc,YAAY,GAAG,CAAC;AACnD,MAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,MAAM,YAAY,KAAK,MAAM,aAAa,KAAK,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAC/E,MAAM,SAAS,WAAW,iBAAiB,GAAG,KAAK,MAAM,UAAU,SAAS,GAAG,SAAS;AAExF,KAAK,MAAM,WAAW,OAAO,UAC3B,IAAI,QAAQ,YAAY,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,GAAG,IAAI,QAAQ,QAAQ;AAEvF,QAAQ,IAAI,KAAK,UAAU;CAAE,QAAQ,OAAO;CAAQ,QAAQ,OAAO;AAAO,CAAC,CAAC;AAC5E,QAAQ,KAAK,OAAO,WAAW,IAAI,IAAI,CAAC"}
package/dist/index.cjs ADDED
@@ -0,0 +1,4 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_reference_adapter = require("./reference-adapter-DWurDAI9.cjs");
3
+ exports.referenceAdapter = require_reference_adapter.referenceAdapter;
4
+ exports.runVectors = require_reference_adapter.runVectors;
@@ -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.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","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"}