@driftfence/core 0.1.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/LICENSE +81 -0
- package/README.md +36 -0
- package/dist/draft/scenario.d.ts +3 -0
- package/dist/draft/scenario.d.ts.map +1 -0
- package/dist/draft/scenario.js +207 -0
- package/dist/draft/scenario.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/io/config.d.ts +10 -0
- package/dist/io/config.d.ts.map +1 -0
- package/dist/io/config.js +165 -0
- package/dist/io/config.js.map +1 -0
- package/dist/io/contracts.d.ts +7 -0
- package/dist/io/contracts.d.ts.map +1 -0
- package/dist/io/contracts.js +562 -0
- package/dist/io/contracts.js.map +1 -0
- package/dist/io/files.d.ts +6 -0
- package/dist/io/files.d.ts.map +1 -0
- package/dist/io/files.js +49 -0
- package/dist/io/files.js.map +1 -0
- package/dist/io/suppressions.d.ts +16 -0
- package/dist/io/suppressions.d.ts.map +1 -0
- package/dist/io/suppressions.js +108 -0
- package/dist/io/suppressions.js.map +1 -0
- package/dist/io/traces.d.ts +3 -0
- package/dist/io/traces.d.ts.map +1 -0
- package/dist/io/traces.js +40 -0
- package/dist/io/traces.js.map +1 -0
- package/dist/match/expr.d.ts +3 -0
- package/dist/match/expr.d.ts.map +1 -0
- package/dist/match/expr.js +43 -0
- package/dist/match/expr.js.map +1 -0
- package/dist/match/value.d.ts +5 -0
- package/dist/match/value.d.ts.map +1 -0
- package/dist/match/value.js +127 -0
- package/dist/match/value.js.map +1 -0
- package/dist/normalize/trace.d.ts +12 -0
- package/dist/normalize/trace.d.ts.map +1 -0
- package/dist/normalize/trace.js +215 -0
- package/dist/normalize/trace.js.map +1 -0
- package/dist/query/index.d.ts +4 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +96 -0
- package/dist/query/index.js.map +1 -0
- package/dist/report/check.d.ts +3 -0
- package/dist/report/check.d.ts.map +1 -0
- package/dist/report/check.js +347 -0
- package/dist/report/check.js.map +1 -0
- package/dist/report/render.d.ts +11 -0
- package/dist/report/render.d.ts.map +1 -0
- package/dist/report/render.js +99 -0
- package/dist/report/render.js.map +1 -0
- package/dist/schemas/index.d.ts +578 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +492 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +402 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/errors.d.ts +18 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +34 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/json.d.ts +10 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +98 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/order.d.ts +8 -0
- package/dist/utils/order.d.ts.map +1 -0
- package/dist/utils/order.js +42 -0
- package/dist/utils/order.js.map +1 -0
- package/dist/utils/path.d.ts +8 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +168 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/verify/invariants.d.ts +3 -0
- package/dist/verify/invariants.d.ts.map +1 -0
- package/dist/verify/invariants.js +38 -0
- package/dist/verify/invariants.js.map +1 -0
- package/dist/verify/sequence.d.ts +3 -0
- package/dist/verify/sequence.d.ts.map +1 -0
- package/dist/verify/sequence.js +151 -0
- package/dist/verify/sequence.js.map +1 -0
- package/dist/verify/summary.d.ts +8 -0
- package/dist/verify/summary.d.ts.map +1 -0
- package/dist/verify/summary.js +132 -0
- package/dist/verify/summary.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/verify/sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComponentResult, MatchContext, MatchOptions, ScenarioExpectations, TraceFile } from "../types";
|
|
2
|
+
export declare function deriveActualSummary(trace: TraceFile): {
|
|
3
|
+
effects: string[];
|
|
4
|
+
emits: string[];
|
|
5
|
+
};
|
|
6
|
+
export declare function compareSummary(expect: ScenarioExpectations, trace: TraceFile): ComponentResult[];
|
|
7
|
+
export declare function compareOutput(expect: ScenarioExpectations, trace: TraceFile, context: MatchContext, options: MatchOptions): ComponentResult[];
|
|
8
|
+
//# sourceMappingURL=summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/verify/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACV,MAAM,UAAU,CAAC;AA+DlB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG;IACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAiBA;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,SAAS,GACf,eAAe,EAAE,CAiBnB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,eAAe,EAAE,CAgGnB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deriveActualSummary = deriveActualSummary;
|
|
4
|
+
exports.compareSummary = compareSummary;
|
|
5
|
+
exports.compareOutput = compareOutput;
|
|
6
|
+
const value_1 = require("../match/value");
|
|
7
|
+
function classifySetComponent(component, approved, actual, allowedExtras) {
|
|
8
|
+
const approvedSet = new Set(approved);
|
|
9
|
+
const actualSet = new Set(actual.filter((item) => !allowedExtras.includes(item)));
|
|
10
|
+
const added = [...actualSet]
|
|
11
|
+
.filter((item) => !approvedSet.has(item))
|
|
12
|
+
.sort((left, right) => left.localeCompare(right));
|
|
13
|
+
const removed = [...approvedSet]
|
|
14
|
+
.filter((item) => !actualSet.has(item))
|
|
15
|
+
.sort((left, right) => left.localeCompare(right));
|
|
16
|
+
if (added.length === 0 && removed.length === 0) {
|
|
17
|
+
return {
|
|
18
|
+
component,
|
|
19
|
+
status: "CONFORMING",
|
|
20
|
+
code: "PASS",
|
|
21
|
+
message: `${component} conform to the approved contract.`
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
if (added.length > 0 && removed.length === 0) {
|
|
25
|
+
return {
|
|
26
|
+
component,
|
|
27
|
+
status: "WIDENING_REQUEST",
|
|
28
|
+
code: "SUMMARY_WIDEN",
|
|
29
|
+
message: `Actual ${component.split(".")[1]} contain additional behavior not covered by the contract.`,
|
|
30
|
+
added
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (added.length === 0 && removed.length > 0) {
|
|
34
|
+
return {
|
|
35
|
+
component,
|
|
36
|
+
status: "NARROWING",
|
|
37
|
+
code: "SUMMARY_NARROW",
|
|
38
|
+
message: `Actual ${component.split(".")[1]} are missing approved behavior.`,
|
|
39
|
+
removed
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
component,
|
|
44
|
+
status: "VIOLATING",
|
|
45
|
+
code: "SUMMARY_INCOMPARABLE",
|
|
46
|
+
message: `Actual ${component.split(".")[1]} both add and remove approved behavior.`,
|
|
47
|
+
added,
|
|
48
|
+
removed
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function deriveActualSummary(trace) {
|
|
52
|
+
return {
|
|
53
|
+
effects: Array.from(new Set(trace.calls
|
|
54
|
+
.filter((call) => call.kind === "effect")
|
|
55
|
+
.map((call) => call.name))).sort((left, right) => left.localeCompare(right)),
|
|
56
|
+
emits: Array.from(new Set(trace.calls
|
|
57
|
+
.filter((call) => call.kind === "emit")
|
|
58
|
+
.map((call) => call.event))).sort((left, right) => left.localeCompare(right))
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function compareSummary(expect, trace) {
|
|
62
|
+
const actualSummary = deriveActualSummary(trace);
|
|
63
|
+
return [
|
|
64
|
+
classifySetComponent("summary.effects", expect.summary.effects ?? [], actualSummary.effects, expect.summary.allowExtraEffects ?? []),
|
|
65
|
+
classifySetComponent("summary.emits", expect.summary.emits ?? [], actualSummary.emits, expect.summary.allowExtraEmits ?? [])
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
function compareOutput(expect, trace, context, options) {
|
|
69
|
+
const results = [];
|
|
70
|
+
if (expect.output !== undefined) {
|
|
71
|
+
const outputMatch = (0, value_1.matchValue)(expect.output, trace.output, context, options, "output");
|
|
72
|
+
results.push(outputMatch.ok
|
|
73
|
+
? {
|
|
74
|
+
component: "output",
|
|
75
|
+
status: "CONFORMING",
|
|
76
|
+
code: "PASS",
|
|
77
|
+
message: "Output matches the approved contract."
|
|
78
|
+
}
|
|
79
|
+
: {
|
|
80
|
+
component: "output",
|
|
81
|
+
status: "VIOLATING",
|
|
82
|
+
code: "OUTPUT_MISMATCH",
|
|
83
|
+
message: (0, value_1.describeMatchFailure)(outputMatch.failure ?? {
|
|
84
|
+
path: "output",
|
|
85
|
+
expected: expect.output,
|
|
86
|
+
actual: trace.output
|
|
87
|
+
})
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
if (expect.error !== undefined) {
|
|
91
|
+
const errorMatch = (0, value_1.matchErrorExpectation)(expect.error, trace.error, context, options);
|
|
92
|
+
results.push(errorMatch.ok
|
|
93
|
+
? {
|
|
94
|
+
component: "error",
|
|
95
|
+
status: "CONFORMING",
|
|
96
|
+
code: "PASS",
|
|
97
|
+
message: "Error behavior matches the approved contract."
|
|
98
|
+
}
|
|
99
|
+
: {
|
|
100
|
+
component: "error",
|
|
101
|
+
status: "VIOLATING",
|
|
102
|
+
code: "ERROR_MISMATCH",
|
|
103
|
+
message: (0, value_1.describeMatchFailure)(errorMatch.failure ?? {
|
|
104
|
+
path: "error",
|
|
105
|
+
expected: expect.error,
|
|
106
|
+
actual: trace.error
|
|
107
|
+
})
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (expect.stateAfter !== undefined) {
|
|
111
|
+
const stateAfterMatch = (0, value_1.matchValue)(expect.stateAfter, trace.stateAfter, context, options, "stateAfter");
|
|
112
|
+
results.push(stateAfterMatch.ok
|
|
113
|
+
? {
|
|
114
|
+
component: "stateAfter",
|
|
115
|
+
status: "CONFORMING",
|
|
116
|
+
code: "PASS",
|
|
117
|
+
message: "State-after matches the approved contract."
|
|
118
|
+
}
|
|
119
|
+
: {
|
|
120
|
+
component: "stateAfter",
|
|
121
|
+
status: "VIOLATING",
|
|
122
|
+
code: "STATE_AFTER_MISMATCH",
|
|
123
|
+
message: (0, value_1.describeMatchFailure)(stateAfterMatch.failure ?? {
|
|
124
|
+
path: "stateAfter",
|
|
125
|
+
expected: expect.stateAfter,
|
|
126
|
+
actual: trace.stateAfter
|
|
127
|
+
})
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
return results;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/verify/summary.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@driftfence/core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"license": "BUSL-1.1",
|
|
5
|
+
"description": "Core schemas, normalization, diffing, and reporting for DriftFence.",
|
|
6
|
+
"type": "commonjs",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"homepage": "https://github.com/austindyoung/DriftFenceV2#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/austindyoung/DriftFenceV2/issues"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/austindyoung/DriftFenceV2.git",
|
|
16
|
+
"directory": "packages/core"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=20.19.0"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"driftfence",
|
|
23
|
+
"contracts",
|
|
24
|
+
"tracing",
|
|
25
|
+
"testing",
|
|
26
|
+
"governance"
|
|
27
|
+
],
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"README.md"
|
|
31
|
+
],
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"picomatch": "^4.0.3",
|
|
37
|
+
"yaml": "^2.8.2",
|
|
38
|
+
"zod": "^4.3.6",
|
|
39
|
+
"zod-to-json-schema": "^3.25.1"
|
|
40
|
+
},
|
|
41
|
+
"exports": {
|
|
42
|
+
".": {
|
|
43
|
+
"types": "./dist/index.d.ts",
|
|
44
|
+
"default": "./dist/index.js"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|