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