@dynamicalsystems/idl-conformance 0.7.0 → 0.8.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.
- package/assets/vectors/dsg.core.identity-binding_1/accept/binding-workspace-account.json +7 -0
- package/assets/vectors/dsg.core.identity-binding_1/reject/binding-extra-field.json +8 -0
- package/assets/vectors/dsg.core.refusal_1/accept/refusal-identity-unbound.json +7 -0
- package/assets/vectors/dsg.core.refusal_1/reject/refusal-extra-field.json +8 -0
- package/assets/vectors/dsg.core.refusal_1/reject/refusal-unknown-code.json +8 -0
- package/assets/vectors/dsg.kernel.standing-order-activation_1/accept/accept-activation.json +9 -0
- package/assets/vectors/dsg.kernel.standing-order-activation_1/reject/reject-activation.json +9 -0
- package/assets/vectors/dsg.run.decision_1/accept/decision-approved.json +7 -0
- package/assets/vectors/dsg.run.decision_1/reject/decision-extra-field.json +8 -0
- package/assets/vectors/dsg.run.decision_1/reject/decision-unknown-outcome.json +8 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-arrival-order.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-canonical-stream.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-float-utf8-stream.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-gapped-stream.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-payload-key-order.json +9 -0
- package/assets/vectors/dsg.run.request_1/accept/request-minimal-valid.json +7 -0
- package/assets/vectors/dsg.run.request_1/reject/request-extra-field.json +8 -0
- package/assets/vectors/dsg.run.request_1/reject/request-wrong-profile.json +8 -0
- package/assets/vectors/dsg.run.run-summary_1/accept/summary-waiting-on-decider.json +7 -0
- package/assets/vectors/dsg.run.run-summary_1/reject/summary-extra-field.json +8 -0
- package/checklist.json +7 -1
- package/dist/cli.cjs +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{reference-adapter-CaAo2iIH.mjs → reference-adapter-BdIIA9rz.mjs} +37 -2
- package/dist/reference-adapter-BdIIA9rz.mjs.map +1 -0
- package/dist/{reference-adapter-DWurDAI9.cjs → reference-adapter-DabyUOZw.cjs} +35 -0
- package/package.json +17 -18
- package/src/adapter.ts +2 -2
- package/src/reference-adapter.ts +3 -1
- package/src/stream-digest.ts +31 -0
- package/dist/reference-adapter-CaAo2iIH.mjs.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.core.identity-binding/1",
|
|
3
|
+
"shape": "binding",
|
|
4
|
+
"name": "workspace-account",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLmNvcmUuaWRlbnRpdHktYmluZGluZy8xIiwicHJpbmNpcGFsIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hY3Rvcjp6YXJnaGFtIiwiaXNzdWVyIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tIiwic3ViamVjdCI6InphcmdoYW1AZHluYW1pY2Fsc3lzdGVtc2dyb3VwLmNvbSIsImRlY2lkZXIiOiJvcm46ZHNnLmNvcmUua2VybmVsLmFjdG9yOnNheWVyIiwiYm91bmRBdCI6IjIwMjYtMDktMDdUMTg6MDA6MDBaIiwic2lnbmF0dXJlIjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEifQ=="
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.core.identity-binding/1",
|
|
3
|
+
"shape": "binding",
|
|
4
|
+
"name": "extra-field",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLmNvcmUuaWRlbnRpdHktYmluZGluZy8xIiwicHJpbmNpcGFsIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hY3Rvcjp6YXJnaGFtIiwiaXNzdWVyIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tIiwic3ViamVjdCI6InphcmdoYW1AZHluYW1pY2Fsc3lzdGVtc2dyb3VwLmNvbSIsImRlY2lkZXIiOiJvcm46ZHNnLmNvcmUua2VybmVsLmFjdG9yOnNheWVyIiwiYm91bmRBdCI6IjIwMjYtMDktMDdUMTg6MDA6MDBaIiwic2lnbmF0dXJlIjoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJiZXNpZGUiOnRydWV9",
|
|
7
|
+
"rule": "an extra field is a different protocol"
|
|
8
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.core.refusal/1",
|
|
3
|
+
"shape": "refusal",
|
|
4
|
+
"name": "identity-unbound",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLmNvcmUucmVmdXNhbC8xIiwiY29kZSI6ImlkZW50aXR5X3VuYm91bmQiLCJzZW50ZW5jZSI6IlNheWVyIGhhcyBub3QgYm91bmQgdGhpcyBhY2NvdW50IHRvIGEgcGVyc29uIHlldC4gQXNrIGhpbSB0byBydW4ga2VybmVsIHByaW5jaXBhbCBiaW5kLiJ9"
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.core.refusal/1",
|
|
3
|
+
"shape": "refusal",
|
|
4
|
+
"name": "extra-field",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLmNvcmUucmVmdXNhbC8xIiwiY29kZSI6ImlkZW50aXR5X3VuYm91bmQiLCJzZW50ZW5jZSI6IlNheWVyIGhhcyBub3QgYm91bmQgdGhpcyBhY2NvdW50IHRvIGEgcGVyc29uIHlldC4gQXNrIGhpbSB0byBydW4ga2VybmVsIHByaW5jaXBhbCBiaW5kLiIsImJlc2lkZSI6dHJ1ZX0=",
|
|
7
|
+
"rule": "an extra field is a different protocol"
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.core.refusal/1",
|
|
3
|
+
"shape": "refusal",
|
|
4
|
+
"name": "unknown-code",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLmNvcmUucmVmdXNhbC8xIiwiY29kZSI6InRyeV9hZ2FpbiIsInNlbnRlbmNlIjoiU2F5ZXIgaGFzIG5vdCBib3VuZCB0aGlzIGFjY291bnQgdG8gYSBwZXJzb24geWV0LiBBc2sgaGltIHRvIHJ1biBrZXJuZWwgcHJpbmNpcGFsIGJpbmQuIn0=",
|
|
7
|
+
"rule": "refusal codes are a closed union"
|
|
8
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.kernel.standing-order-activation/1",
|
|
3
|
+
"shape": "activation",
|
|
4
|
+
"name": "activation-accept",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"obligation": "semantic",
|
|
7
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5zdGFuZGluZy1vcmRlci1hY3RpdmF0aW9uLzEiLCJhY3RpdmF0aW9uSWQiOiJvcm46ZHNnLmNvcmUua2VybmVsLnN0YW5kaW5nLW9yZGVyOmFjdGl2YXRpb24tMSIsImV4cGVjdGVkUHJldmlvdXNBY3RpdmF0aW9uIjpudWxsLCJsYXciOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDpsYXciLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImVucm9sbG1lbnQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDplbnJvbGxtZW50Iiwic2hhMjU2IjoiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyJ9LCJpbnRlbnQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDppbnRlbnQiLCJzaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIn0sInJvb3RzIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYXJ0aWZhY3Q6cm9vdHMiLCJzaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIn0sInJldm9jYXRpb24iOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDpyZXZvY2F0aW9uIiwic2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9LCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6a2VybmVsLWFwaSIsIm1vZGUiOiJodW1hbi1hdXRob3JpdHkiLCJhY3RpdmF0ZWRBdCI6IjIwMjYtMDktMDhUMjA6MDA6MDBaIn0=",
|
|
8
|
+
"rule": "signed descriptor binds a prior activation head and exact artifact references"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.kernel.standing-order-activation/1",
|
|
3
|
+
"shape": "activation",
|
|
4
|
+
"name": "activation-reject",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"obligation": "semantic",
|
|
7
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLmtlcm5lbC5zdGFuZGluZy1vcmRlci1hY3RpdmF0aW9uLzEiLCJhY3RpdmF0aW9uSWQiOiJvcm46ZHNnLmNvcmUua2VybmVsLnN0YW5kaW5nLW9yZGVyOmFjdGl2YXRpb24tMSIsImV4cGVjdGVkUHJldmlvdXNBY3RpdmF0aW9uIjpudWxsLCJsYXciOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDpsYXciLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImVucm9sbG1lbnQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDplbnJvbGxtZW50Iiwic2hhMjU2IjoiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyJ9LCJpbnRlbnQiOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDppbnRlbnQiLCJzaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIn0sInJvb3RzIjp7Im9ybiI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYXJ0aWZhY3Q6cm9vdHMiLCJzaGEyNTYiOiJlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlIn0sInJldm9jYXRpb24iOnsib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5hcnRpZmFjdDpyZXZvY2F0aW9uIiwic2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9LCJhY3RvciI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6a2VybmVsLWFwaSIsIm1vZGUiOiJvcGVyYXRvciIsImFjdGl2YXRlZEF0IjoiMjAyNi0wOS0wOFQyMDowMDowMFoifQ==",
|
|
8
|
+
"rule": "closed mode union refuses an unsupported authority mode"
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.decision/1",
|
|
3
|
+
"shape": "decision",
|
|
4
|
+
"name": "approved",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5kZWNpc2lvbi8xIiwicnVuSWQiOiJydW4tMSIsInJlcXVlc3REaWdlc3QiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwiZGVjaXNpb24iOiJhcHByb3ZlZCIsImNhdXNlIjpudWxsLCJkZWNpZGVkQXQiOiIyMDI2LTA5LTA3VDE4OjAwOjAwWiIsImRlY2lkZXIiOiJvcm46ZHNnLmNvcmUua2VybmVsLmFjdG9yOnNheWVyIiwic2lnbmF0dXJlIjoic2lnIn0="
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.decision/1",
|
|
3
|
+
"shape": "decision",
|
|
4
|
+
"name": "extra-field",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5kZWNpc2lvbi8xIiwicnVuSWQiOiJydW4tMSIsInJlcXVlc3REaWdlc3QiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwiZGVjaXNpb24iOiJhcHByb3ZlZCIsImNhdXNlIjpudWxsLCJkZWNpZGVkQXQiOiIyMDI2LTA5LTA3VDE4OjAwOjAwWiIsImRlY2lkZXIiOiJvcm46ZHNnLmNvcmUua2VybmVsLmFjdG9yOnNheWVyIiwic2lnbmF0dXJlIjoic2lnIiwiYmVzaWRlIjp0cnVlfQ==",
|
|
7
|
+
"rule": "an extra field is a different protocol"
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.decision/1",
|
|
3
|
+
"shape": "decision",
|
|
4
|
+
"name": "unknown-outcome",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5kZWNpc2lvbi8xIiwicnVuSWQiOiJydW4tMSIsInJlcXVlc3REaWdlc3QiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwiZGVjaXNpb24iOiJtYXliZSIsImNhdXNlIjpudWxsLCJkZWNpZGVkQXQiOiIyMDI2LTA5LTA3VDE4OjAwOjAwWiIsImRlY2lkZXIiOiJvcm46ZHNnLmNvcmUua2VybmVsLmFjdG9yOnNheWVyIiwic2lnbmF0dXJlIjoic2lnIn0=",
|
|
7
|
+
"rule": "decision is approved or refused"
|
|
8
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.event/1",
|
|
3
|
+
"shape": "streamSeal",
|
|
4
|
+
"name": "arrival-order",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"rule": "Arrival order is not stream order. The same events delivered newest first seal to the same digest; an implementation that hashes in arrival order fails here.",
|
|
7
|
+
"bytes": "RFNHRVYgeyJhdCI6IjIwMjYtMDktMDdUMTU6MDA6MDBaIiwiY2F0YWxvZ1NoYTI1NiI6ImYzNjE0MTM4YjU3ZDQ3OWEzZWJmY2I0ZmI0M2NjOTY1MTFhNTExODJkMzVhZWZjMWJhZjIwY2RjMWVmODY4ODciLCJraW5kIjoiZmluaXNoZWQiLCJvcGVyYXRpb24iOiJsb2NhbCIsInBheWxvYWQiOnsic3RhdHVzIjoic3VjY2VlZGVkIiwic3VtbWFyeSI6Im9uZSBibG9jayJ9LCJwcm9maWxlIjoiZHNnLnJ1bi5ldmVudC8xIiwic2VxdWVuY2UiOjN9CkRTR0VWIHsiYXQiOiIyMDI2LTA5LTA3VDE1OjAwOjAwWiIsImNhdGFsb2dTaGEyNTYiOiJmMzYxNDEzOGI1N2Q0NzlhM2ViZmNiNGZiNDNjYzk2NTExYTUxMTgyZDM1YWVmYzFiYWYyMGNkYzFlZjg2ODg3Iiwia2luZCI6ImJsb2NrLmNvbXBsZXRlZCIsIm9wZXJhdGlvbiI6ImxvY2FsIiwicGF5bG9hZCI6eyJibG9jayI6MSwiaGVhZCI6ImFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWIiLCJsYWJlbCI6ImNhZsOpIiwidGVtcGVyYXR1cmUiOjFlLTA3fSwicHJvZmlsZSI6ImRzZy5ydW4uZXZlbnQvMSIsInNlcXVlbmNlIjoyfQpEU0dFViB7ImF0IjoiMjAyNi0wOS0wN1QxNTowMDowMFoiLCJjYXRhbG9nU2hhMjU2IjoiZjM2MTQxMzhiNTdkNDc5YTNlYmZjYjRmYjQzY2M5NjUxMWE1MTE4MmQzNWFlZmMxYmFmMjBjZGMxZWY4Njg4NyIsImtpbmQiOiJzdGFydGVkIiwib3BlcmF0aW9uIjoibG9jYWwiLCJwYXlsb2FkIjp7ImFyZ3VtZW50c19zaGEyNTYiOm51bGwsInNlZWQiOjcsInZlcnNpb24iOiIxLjAuMCJ9LCJwcm9maWxlIjoiZHNnLnJ1bi5ldmVudC8xIiwic2VxdWVuY2UiOjF9",
|
|
8
|
+
"sha256": "8b875eb3e335a8fdb0d3f0ff9a5ed33eb6d7ef247f93c9ec44394df1410a93b2"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.event/1",
|
|
3
|
+
"shape": "streamSeal",
|
|
4
|
+
"name": "canonical-stream",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"rule": "The seal is sha256 over RFC 8785 event bytes in sequence order joined by LF. Bytes and digest come from the published Python producer and the plane's own canonicalizer; an adapter must reproduce the digest, never assert it.",
|
|
7
|
+
"bytes": "RFNHRVYgeyJhdCI6IjIwMjYtMDktMDdUMTU6MDA6MDBaIiwiY2F0YWxvZ1NoYTI1NiI6ImYzNjE0MTM4YjU3ZDQ3OWEzZWJmY2I0ZmI0M2NjOTY1MTFhNTExODJkMzVhZWZjMWJhZjIwY2RjMWVmODY4ODciLCJraW5kIjoic3RhcnRlZCIsIm9wZXJhdGlvbiI6ImxvY2FsIiwicGF5bG9hZCI6eyJhcmd1bWVudHNfc2hhMjU2IjpudWxsLCJzZWVkIjo3LCJ2ZXJzaW9uIjoiMS4wLjAifSwicHJvZmlsZSI6ImRzZy5ydW4uZXZlbnQvMSIsInNlcXVlbmNlIjoxfQpEU0dFViB7ImF0IjoiMjAyNi0wOS0wN1QxNTowMDowMFoiLCJjYXRhbG9nU2hhMjU2IjoiZjM2MTQxMzhiNTdkNDc5YTNlYmZjYjRmYjQzY2M5NjUxMWE1MTE4MmQzNWFlZmMxYmFmMjBjZGMxZWY4Njg4NyIsImtpbmQiOiJibG9jay5jb21wbGV0ZWQiLCJvcGVyYXRpb24iOiJsb2NhbCIsInBheWxvYWQiOnsiYmxvY2siOjEsImhlYWQiOiJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiIiwibGFiZWwiOiJjYWbDqSIsInRlbXBlcmF0dXJlIjoxZS0wN30sInByb2ZpbGUiOiJkc2cucnVuLmV2ZW50LzEiLCJzZXF1ZW5jZSI6Mn0KRFNHRVYgeyJhdCI6IjIwMjYtMDktMDdUMTU6MDA6MDBaIiwiY2F0YWxvZ1NoYTI1NiI6ImYzNjE0MTM4YjU3ZDQ3OWEzZWJmY2I0ZmI0M2NjOTY1MTFhNTExODJkMzVhZWZjMWJhZjIwY2RjMWVmODY4ODciLCJraW5kIjoiZmluaXNoZWQiLCJvcGVyYXRpb24iOiJsb2NhbCIsInBheWxvYWQiOnsic3RhdHVzIjoic3VjY2VlZGVkIiwic3VtbWFyeSI6Im9uZSBibG9jayJ9LCJwcm9maWxlIjoiZHNnLnJ1bi5ldmVudC8xIiwic2VxdWVuY2UiOjN9",
|
|
8
|
+
"sha256": "8b875eb3e335a8fdb0d3f0ff9a5ed33eb6d7ef247f93c9ec44394df1410a93b2"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.event/1",
|
|
3
|
+
"shape": "streamSeal",
|
|
4
|
+
"name": "float-utf8-stream",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"rule": "Hash RFC 8785 event bytes in sequence order, separated by LF, without prefix or final LF. Expected digest produced by dsg-run-events 0.1.1, not the reference adapter.",
|
|
7
|
+
"bytes": "RFNHRVYgeyJzZXF1ZW5jZSI6MSwicHJvZmlsZSI6ImRzZy5ydW4uZXZlbnQvMSIsInBheWxvYWQiOnsidmVyc2lvbiI6IjEuMC4wIiwic2VlZCI6NywiYXJndW1lbnRzX3NoYTI1NiI6bnVsbH0sIm9wZXJhdGlvbiI6ImxvY2FsIiwia2luZCI6InN0YXJ0ZWQiLCJjYXRhbG9nU2hhMjU2IjoiZjM2MTQxMzhiNTdkNDc5YTNlYmZjYjRmYjQzY2M5NjUxMWE1MTE4MmQzNWFlZmMxYmFmMjBjZGMxZWY4Njg4NyIsImF0IjoiMjAyNi0wOS0wN1QxNTowMDowMFoifQpEU0dFViB7InNlcXVlbmNlIjoyLCJwcm9maWxlIjoiZHNnLnJ1bi5ldmVudC8xIiwicGF5bG9hZCI6eyJ0ZW1wZXJhdHVyZSI6MWUtMDcsImxhYmVsIjoiY2Fmw6kiLCJoZWFkIjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiIsImJsb2NrIjoxfSwib3BlcmF0aW9uIjoibG9jYWwiLCJraW5kIjoiYmxvY2suY29tcGxldGVkIiwiY2F0YWxvZ1NoYTI1NiI6ImYzNjE0MTM4YjU3ZDQ3OWEzZWJmY2I0ZmI0M2NjOTY1MTFhNTExODJkMzVhZWZjMWJhZjIwY2RjMWVmODY4ODciLCJhdCI6IjIwMjYtMDktMDdUMTU6MDA6MDBaIn0KRFNHRVYgeyJzZXF1ZW5jZSI6MywicHJvZmlsZSI6ImRzZy5ydW4uZXZlbnQvMSIsInBheWxvYWQiOnsic3VtbWFyeSI6Im9uZSBibG9jayIsInN0YXR1cyI6InN1Y2NlZWRlZCJ9LCJvcGVyYXRpb24iOiJsb2NhbCIsImtpbmQiOiJmaW5pc2hlZCIsImNhdGFsb2dTaGEyNTYiOiJmMzYxNDEzOGI1N2Q0NzlhM2ViZmNiNGZiNDNjYzk2NTExYTUxMTgyZDM1YWVmYzFiYWYyMGNkYzFlZjg2ODg3IiwiYXQiOiIyMDI2LTA5LTA3VDE1OjAwOjAwWiJ9Cg==",
|
|
8
|
+
"sha256": "8b875eb3e335a8fdb0d3f0ff9a5ed33eb6d7ef247f93c9ec44394df1410a93b2"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.event/1",
|
|
3
|
+
"shape": "streamSeal",
|
|
4
|
+
"name": "gapped-stream",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"rule": "Hash RFC 8785 event bytes in sequence order, separated by LF, without prefix or final LF. Expected digest produced by dsg-run-events 0.1.1, not the reference adapter.",
|
|
7
|
+
"bytes": "RFNHRVYgeyJzZXF1ZW5jZSI6MSwicHJvZmlsZSI6ImRzZy5ydW4uZXZlbnQvMSIsInBheWxvYWQiOnsidmVyc2lvbiI6IjEuMC4wIiwic2VlZCI6NywiYXJndW1lbnRzX3NoYTI1NiI6bnVsbH0sIm9wZXJhdGlvbiI6ImxvY2FsIiwia2luZCI6InN0YXJ0ZWQiLCJjYXRhbG9nU2hhMjU2IjoiZjM2MTQxMzhiNTdkNDc5YTNlYmZjYjRmYjQzY2M5NjUxMWE1MTE4MmQzNWFlZmMxYmFmMjBjZGMxZWY4Njg4NyIsImF0IjoiMjAyNi0wOS0wN1QxNTowMDowMFoifQpEU0dFViB7InNlcXVlbmNlIjo1LCJwcm9maWxlIjoiZHNnLnJ1bi5ldmVudC8xIiwicGF5bG9hZCI6eyJzdW1tYXJ5IjoiY2Fmw6kgMWUtNyIsInN0YXR1cyI6InRydW5jYXRlZCJ9LCJvcGVyYXRpb24iOiJsb2NhbCIsImtpbmQiOiJmaW5pc2hlZCIsImNhdGFsb2dTaGEyNTYiOiJmMzYxNDEzOGI1N2Q0NzlhM2ViZmNiNGZiNDNjYzk2NTExYTUxMTgyZDM1YWVmYzFiYWYyMGNkYzFlZjg2ODg3IiwiYXQiOiIyMDI2LTA5LTA3VDE1OjAwOjAwWiJ9Cg==",
|
|
8
|
+
"sha256": "ae0e54146f288e88479105d33823d420234337271937ff3601a7c524d3fbca94"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.event/1",
|
|
3
|
+
"shape": "streamSeal",
|
|
4
|
+
"name": "payload-key-order",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"rule": "Key order is a transport's accident. The same events with every envelope and payload key reversed seal to the same digest; an implementation that hashes received bytes instead of canonical bytes fails here.",
|
|
7
|
+
"bytes": "RFNHRVYgeyJzZXF1ZW5jZSI6MSwicHJvZmlsZSI6ImRzZy5ydW4uZXZlbnQvMSIsInBheWxvYWQiOnsidmVyc2lvbiI6IjEuMC4wIiwic2VlZCI6NywiYXJndW1lbnRzX3NoYTI1NiI6bnVsbH0sIm9wZXJhdGlvbiI6ImxvY2FsIiwia2luZCI6InN0YXJ0ZWQiLCJjYXRhbG9nU2hhMjU2IjoiZjM2MTQxMzhiNTdkNDc5YTNlYmZjYjRmYjQzY2M5NjUxMWE1MTE4MmQzNWFlZmMxYmFmMjBjZGMxZWY4Njg4NyIsImF0IjoiMjAyNi0wOS0wN1QxNTowMDowMFoifQpEU0dFViB7InNlcXVlbmNlIjoyLCJwcm9maWxlIjoiZHNnLnJ1bi5ldmVudC8xIiwicGF5bG9hZCI6eyJ0ZW1wZXJhdHVyZSI6MWUtMDcsImxhYmVsIjoiY2Fmw6kiLCJoZWFkIjoiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYmFiYWJhYiIsImJsb2NrIjoxfSwib3BlcmF0aW9uIjoibG9jYWwiLCJraW5kIjoiYmxvY2suY29tcGxldGVkIiwiY2F0YWxvZ1NoYTI1NiI6ImYzNjE0MTM4YjU3ZDQ3OWEzZWJmY2I0ZmI0M2NjOTY1MTFhNTExODJkMzVhZWZjMWJhZjIwY2RjMWVmODY4ODciLCJhdCI6IjIwMjYtMDktMDdUMTU6MDA6MDBaIn0KRFNHRVYgeyJzZXF1ZW5jZSI6MywicHJvZmlsZSI6ImRzZy5ydW4uZXZlbnQvMSIsInBheWxvYWQiOnsic3VtbWFyeSI6Im9uZSBibG9jayIsInN0YXR1cyI6InN1Y2NlZWRlZCJ9LCJvcGVyYXRpb24iOiJsb2NhbCIsImtpbmQiOiJmaW5pc2hlZCIsImNhdGFsb2dTaGEyNTYiOiJmMzYxNDEzOGI1N2Q0NzlhM2ViZmNiNGZiNDNjYzk2NTExYTUxMTgyZDM1YWVmYzFiYWYyMGNkYzFlZjg2ODg3IiwiYXQiOiIyMDI2LTA5LTA3VDE1OjAwOjAwWiJ9",
|
|
8
|
+
"sha256": "8b875eb3e335a8fdb0d3f0ff9a5ed33eb6d7ef247f93c9ec44394df1410a93b2"
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.request/1",
|
|
3
|
+
"shape": "request",
|
|
4
|
+
"name": "minimal-valid",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5yZXF1ZXN0LzEiLCJleHBlcmltZW50Ijp7ImRpZ2VzdCI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJ0aXRsZSI6ImJvdW5kZWQgcHJvb2YiLCJ3b3JrbG9hZENsYXNzIjoidGNwbS1zaW11bGF0aW9uIn0sIndvcmtsb2FkIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6dGNwbS1zaW11bGF0aW9uLzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpleHBlcmltZW50LzEiLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0seyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OmNhdGFsb2cvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifV0sImNlaWxpbmdzIjp7Im1heFJ1blNlY29uZHMiOjYwMCwibWF4R3B1U2Vjb25kcyI6NjAwLCJtYXhQYXJhbGxlbGlzbSI6MSwiY29zdEJvdW5kTWljcm9Vc2QiOjF9LCJwdXJwb3NlIjoiYm91bmRlZCBwcm9vZiBvZiBvbmUgYWdlbnQtZHJpdmVuIGNlbGwiLCJ3aW5kb3ciOiJhbnl0aW1lIn0="
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.request/1",
|
|
3
|
+
"shape": "request",
|
|
4
|
+
"name": "extra-field",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5yZXF1ZXN0LzEiLCJleHBlcmltZW50Ijp7ImRpZ2VzdCI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJ0aXRsZSI6ImJvdW5kZWQgcHJvb2YiLCJ3b3JrbG9hZENsYXNzIjoidGNwbS1zaW11bGF0aW9uIn0sIndvcmtsb2FkIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6dGNwbS1zaW11bGF0aW9uLzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpleHBlcmltZW50LzEiLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0seyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OmNhdGFsb2cvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifV0sImNlaWxpbmdzIjp7Im1heFJ1blNlY29uZHMiOjYwMCwibWF4R3B1U2Vjb25kcyI6NjAwLCJtYXhQYXJhbGxlbGlzbSI6MSwiY29zdEJvdW5kTWljcm9Vc2QiOjF9LCJwdXJwb3NlIjoiYm91bmRlZCBwcm9vZiBvZiBvbmUgYWdlbnQtZHJpdmVuIGNlbGwiLCJ3aW5kb3ciOiJhbnl0aW1lIiwiYmVzaWRlIjp0cnVlfQ==",
|
|
7
|
+
"rule": "an extra field is a different protocol"
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.request/1",
|
|
3
|
+
"shape": "request",
|
|
4
|
+
"name": "wrong-profile",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5yZXF1ZXN0LzIiLCJleHBlcmltZW50Ijp7ImRpZ2VzdCI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJ0aXRsZSI6ImJvdW5kZWQgcHJvb2YiLCJ3b3JrbG9hZENsYXNzIjoidGNwbS1zaW11bGF0aW9uIn0sIndvcmtsb2FkIjp7Im9ybiI6Im9ybjpkc2cuaW5mcmEubW9kdWxlLnJlbGVhc2U6dGNwbS1zaW11bGF0aW9uLzEiLCJzaGEyNTYiOiJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIn0sImlucHV0cyI6W3sib3JuIjoib3JuOmRzZy5jb3JlLmtlcm5lbC5kb2N1bWVudDpleHBlcmltZW50LzEiLCJzaGEyNTYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIn0seyJvcm4iOiJvcm46ZHNnLmNvcmUua2VybmVsLmRvY3VtZW50OmNhdGFsb2cvMSIsInNoYTI1NiI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MifV0sImNlaWxpbmdzIjp7Im1heFJ1blNlY29uZHMiOjYwMCwibWF4R3B1U2Vjb25kcyI6NjAwLCJtYXhQYXJhbGxlbGlzbSI6MSwiY29zdEJvdW5kTWljcm9Vc2QiOjF9LCJwdXJwb3NlIjoiYm91bmRlZCBwcm9vZiBvZiBvbmUgYWdlbnQtZHJpdmVuIGNlbGwiLCJ3aW5kb3ciOiJhbnl0aW1lIn0=",
|
|
7
|
+
"rule": "profile literal is frozen at /1"
|
|
8
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.run-summary/1",
|
|
3
|
+
"shape": "summary",
|
|
4
|
+
"name": "waiting-on-decider",
|
|
5
|
+
"verdict": "accept",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5ydW4tc3VtbWFyeS8xIiwicnVuSWQiOiJydW4tMSIsImV4cGVyaW1lbnREaWdlc3QiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwicmVxdWVzdGVyIjp7InByaW5jaXBhbCI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6emFyZ2hhbSIsImRpc3BsYXlOYW1lIjoiWmFyZ2hhbSIsInNvdXJjZSI6Imdvb2dsZS13b3Jrc3BhY2UifSwiZGVjaXNpb24iOm51bGwsIndhaXRpbmdPbiI6ImRlY2lkZXIifQ=="
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "dsg.run.run-summary/1",
|
|
3
|
+
"shape": "summary",
|
|
4
|
+
"name": "extra-field",
|
|
5
|
+
"verdict": "reject",
|
|
6
|
+
"bytes": "eyJwcm9maWxlIjoiZHNnLnJ1bi5ydW4tc3VtbWFyeS8xIiwicnVuSWQiOiJydW4tMSIsImV4cGVyaW1lbnREaWdlc3QiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwicmVxdWVzdGVyIjp7InByaW5jaXBhbCI6Im9ybjpkc2cuY29yZS5rZXJuZWwuYWN0b3I6emFyZ2hhbSIsImRpc3BsYXlOYW1lIjoiWmFyZ2hhbSIsInNvdXJjZSI6Imdvb2dsZS13b3Jrc3BhY2UifSwiZGVjaXNpb24iOm51bGwsIndhaXRpbmdPbiI6ImRlY2lkZXIiLCJiZXNpZGUiOnRydWV9",
|
|
7
|
+
"rule": "an extra field is a different protocol"
|
|
8
|
+
}
|
package/checklist.json
CHANGED
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
"dsg.kernel.bootstrap/1": 9,
|
|
9
9
|
"dsg.kernel.ordinary-authority/1": 8,
|
|
10
10
|
"dsg.infra.adoption-fact/1": 7,
|
|
11
|
-
"dsg.run.event/1":
|
|
11
|
+
"dsg.run.event/1": 17,
|
|
12
|
+
"dsg.run.request/1": 3,
|
|
13
|
+
"dsg.run.decision/1": 3,
|
|
14
|
+
"dsg.run.run-summary/1": 2,
|
|
15
|
+
"dsg.core.refusal/1": 3,
|
|
16
|
+
"dsg.core.identity-binding/1": 2,
|
|
17
|
+
"dsg.kernel.standing-order-activation/1": 2
|
|
12
18
|
}
|
|
13
19
|
}
|
package/dist/cli.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_reference_adapter = require("./reference-adapter-
|
|
1
|
+
const require_reference_adapter = require("./reference-adapter-DabyUOZw.cjs");
|
|
2
2
|
let node_fs = require("node:fs");
|
|
3
3
|
let node_path = require("node:path");
|
|
4
4
|
let node_url = require("node:url");
|
package/dist/cli.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as runVectors, t as referenceAdapter } from "./reference-adapter-
|
|
1
|
+
import { n as runVectors, t as referenceAdapter } from "./reference-adapter-BdIIA9rz.mjs";
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_reference_adapter = require("./reference-adapter-
|
|
2
|
+
const require_reference_adapter = require("./reference-adapter-DabyUOZw.cjs");
|
|
3
3
|
exports.referenceAdapter = require_reference_adapter.referenceAdapter;
|
|
4
4
|
exports.runVectors = require_reference_adapter.runVectors;
|
package/dist/index.d.cts
CHANGED
|
@@ -18,9 +18,9 @@ type Vector = {
|
|
|
18
18
|
readonly rule?: string;
|
|
19
19
|
readonly bytes: string;
|
|
20
20
|
/** Digest vectors only: the expected sha256 of the canonical form of the
|
|
21
|
-
* document in `bytes
|
|
21
|
+
* document in `bytes`, or the ordered event stream for digest.streamSeal. Source is NON-canonical
|
|
22
22
|
* (different key order, whitespace), so agreement proves the consumer's
|
|
23
|
-
* own canonicalize-and-digest path, not a byte copy. */
|
|
23
|
+
* own canonicalize-and-digest path, not a byte copy. Stream bytes include DSGEV prefixes. */
|
|
24
24
|
readonly sha256?: string;
|
|
25
25
|
/** What agreeing on this vector obliges. "shape" (default): the boundary
|
|
26
26
|
* parser's structural verdict. "semantic": a validator beyond shape
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +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;;;
|
|
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;;;iBCXvE,oBAAoB"}
|
package/dist/index.d.mts
CHANGED
|
@@ -18,9 +18,9 @@ type Vector = {
|
|
|
18
18
|
readonly rule?: string;
|
|
19
19
|
readonly bytes: string;
|
|
20
20
|
/** Digest vectors only: the expected sha256 of the canonical form of the
|
|
21
|
-
* document in `bytes
|
|
21
|
+
* document in `bytes`, or the ordered event stream for digest.streamSeal. Source is NON-canonical
|
|
22
22
|
* (different key order, whitespace), so agreement proves the consumer's
|
|
23
|
-
* own canonicalize-and-digest path, not a byte copy. */
|
|
23
|
+
* own canonicalize-and-digest path, not a byte copy. Stream bytes include DSGEV prefixes. */
|
|
24
24
|
readonly sha256?: string;
|
|
25
25
|
/** What agreeing on this vector obliges. "shape" (default): the boundary
|
|
26
26
|
* parser's structural verdict. "semantic": a validator beyond shape
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +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;;;
|
|
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;;;iBCXvE,oBAAoB"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as runVectors, t as referenceAdapter } from "./reference-adapter-
|
|
1
|
+
import { n as runVectors, t as referenceAdapter } from "./reference-adapter-BdIIA9rz.mjs";
|
|
2
2
|
export { referenceAdapter, runVectors };
|
|
@@ -2,7 +2,7 @@ import { readFileSync, readdirSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { jcsStringify } from "@dynamicalsystems/orn-schemas";
|
|
5
|
-
import { PROFILES } from "@dynamicalsystems/idl";
|
|
5
|
+
import { EVENT_LINE_PREFIX, EVENT_PROFILE, EventSchema, PROFILES } from "@dynamicalsystems/idl";
|
|
6
6
|
//#region src/runner.ts
|
|
7
7
|
/** Runs every vector under `assetsDir` through the adapter. The checklist
|
|
8
8
|
* is the coverage floor: a profile listed there with fewer vectors on disk
|
|
@@ -1396,6 +1396,40 @@ function Errors(...args) {
|
|
|
1396
1396
|
return new ValueErrorIterator(args.length === 3 ? Visit(args[0], args[1], "", args[2]) : Visit(args[0], [], "", args[1]));
|
|
1397
1397
|
}
|
|
1398
1398
|
//#endregion
|
|
1399
|
+
//#region src/stream-digest.ts
|
|
1400
|
+
/** Reference digest over source event lines, not over a precomputed seal document. */
|
|
1401
|
+
function streamDigest(bytes) {
|
|
1402
|
+
try {
|
|
1403
|
+
const events = /* @__PURE__ */ new Map();
|
|
1404
|
+
const text = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
1405
|
+
for (const line of text.split("\n")) {
|
|
1406
|
+
if (!line.startsWith(EVENT_LINE_PREFIX)) continue;
|
|
1407
|
+
const event = JSON.parse(line.slice(EVENT_LINE_PREFIX.length));
|
|
1408
|
+
if (!Check(EventSchema, event)) return {
|
|
1409
|
+
ok: false,
|
|
1410
|
+
reason: "invalid event"
|
|
1411
|
+
};
|
|
1412
|
+
const canonical = jcsStringify(event);
|
|
1413
|
+
const previous = events.get(event.sequence);
|
|
1414
|
+
if (previous !== void 0 && previous !== canonical) return {
|
|
1415
|
+
ok: false,
|
|
1416
|
+
reason: "conflicting event sequence"
|
|
1417
|
+
};
|
|
1418
|
+
events.set(event.sequence, canonical);
|
|
1419
|
+
}
|
|
1420
|
+
const stream = [...events].sort(([a], [b]) => a - b).map(([, line]) => line).join("\n");
|
|
1421
|
+
return {
|
|
1422
|
+
ok: true,
|
|
1423
|
+
digest: createHash("sha256").update(stream).digest("hex")
|
|
1424
|
+
};
|
|
1425
|
+
} catch (error) {
|
|
1426
|
+
return {
|
|
1427
|
+
ok: false,
|
|
1428
|
+
reason: String(error)
|
|
1429
|
+
};
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
//#endregion
|
|
1399
1433
|
//#region src/reference-adapter.ts
|
|
1400
1434
|
function referenceAdapter() {
|
|
1401
1435
|
const adapter = {};
|
|
@@ -1433,9 +1467,10 @@ function referenceAdapter() {
|
|
|
1433
1467
|
};
|
|
1434
1468
|
};
|
|
1435
1469
|
}
|
|
1470
|
+
adapter[`${EVENT_PROFILE}#digest.streamSeal`] = streamDigest;
|
|
1436
1471
|
return adapter;
|
|
1437
1472
|
}
|
|
1438
1473
|
//#endregion
|
|
1439
1474
|
export { runVectors as n, referenceAdapter as t };
|
|
1440
1475
|
|
|
1441
|
-
//# sourceMappingURL=reference-adapter-
|
|
1476
|
+
//# sourceMappingURL=reference-adapter-BdIIA9rz.mjs.map
|