@overkill-dev/engine 0.0.1 → 0.0.3
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 +21 -0
- package/assertion-protocol/assertion-evaluation.d.ts +13 -0
- package/assertion-protocol/assertion-evaluation.d.ts.map +1 -0
- package/assertion-protocol/assertion-evaluation.js +6 -0
- package/assertion-protocol/assertion-evaluation.js.map +1 -0
- package/assertion-protocol/assertion-node-shape.d.ts +71 -0
- package/assertion-protocol/assertion-node-shape.d.ts.map +1 -0
- package/assertion-protocol/assertion-node.d.ts +97 -0
- package/assertion-protocol/assertion-node.d.ts.map +1 -0
- package/assertion-protocol/assertion-node.js +33 -0
- package/assertion-protocol/assertion-node.js.map +1 -0
- package/assertion-protocol/assertion-reference.d.ts +73 -0
- package/assertion-protocol/assertion-reference.d.ts.map +1 -0
- package/assertion-protocol/assertion-reference.js +49 -0
- package/assertion-protocol/assertion-reference.js.map +1 -0
- package/assertion-protocol/assertions/boolean.d.ts +11 -0
- package/assertion-protocol/assertions/boolean.d.ts.map +1 -0
- package/assertion-protocol/assertions/boolean.js +12 -0
- package/assertion-protocol/assertions/boolean.js.map +1 -0
- package/assertion-protocol/assertions/collection.d.ts +22 -0
- package/assertion-protocol/assertions/collection.d.ts.map +1 -0
- package/assertion-protocol/assertions/collection.js +21 -0
- package/assertion-protocol/assertions/collection.js.map +1 -0
- package/assertion-protocol/assertions/dispatch.d.ts +88 -0
- package/assertion-protocol/assertions/dispatch.d.ts.map +1 -0
- package/assertion-protocol/assertions/dispatch.js +47 -0
- package/assertion-protocol/assertions/dispatch.js.map +1 -0
- package/assertion-protocol/assertions/equality.d.ts +17 -0
- package/assertion-protocol/assertions/equality.d.ts.map +1 -0
- package/assertion-protocol/assertions/equality.js +24 -0
- package/assertion-protocol/assertions/equality.js.map +1 -0
- package/assertion-protocol/assertions/fail.d.ts +13 -0
- package/assertion-protocol/assertions/fail.d.ts.map +1 -0
- package/assertion-protocol/assertions/fail.js +8 -0
- package/assertion-protocol/assertions/fail.js.map +1 -0
- package/assertion-protocol/assertions/numeric.d.ts +29 -0
- package/assertion-protocol/assertions/numeric.d.ts.map +1 -0
- package/assertion-protocol/assertions/numeric.js +43 -0
- package/assertion-protocol/assertions/numeric.js.map +1 -0
- package/assertion-protocol/assertions/partial.d.ts +14 -0
- package/assertion-protocol/assertions/partial.d.ts.map +1 -0
- package/assertion-protocol/assertions/partial.js +17 -0
- package/assertion-protocol/assertions/partial.js.map +1 -0
- package/assertion-protocol/assertions/presence.d.ts +17 -0
- package/assertion-protocol/assertions/presence.d.ts.map +1 -0
- package/assertion-protocol/assertions/presence.js +20 -0
- package/assertion-protocol/assertions/presence.js.map +1 -0
- package/assertion-protocol/assertions/string.d.ts +28 -0
- package/assertion-protocol/assertions/string.d.ts.map +1 -0
- package/assertion-protocol/assertions/string.js +33 -0
- package/assertion-protocol/assertions/string.js.map +1 -0
- package/assertion-protocol/assertions/type-shape.d.ts +42 -0
- package/assertion-protocol/assertions/type-shape.d.ts.map +1 -0
- package/assertion-protocol/assertions/type-shape.js +43 -0
- package/assertion-protocol/assertions/type-shape.js.map +1 -0
- package/assertion-protocol/collection-count.d.ts +6 -0
- package/assertion-protocol/collection-count.d.ts.map +1 -0
- package/assertion-protocol/collection-count.js +42 -0
- package/assertion-protocol/collection-count.js.map +1 -0
- package/assertion-protocol/evaluation.d.ts +32 -0
- package/assertion-protocol/evaluation.d.ts.map +1 -0
- package/assertion-protocol/evaluation.js +170 -0
- package/assertion-protocol/evaluation.js.map +1 -0
- package/assertion-protocol/partial-matching.d.ts +4 -0
- package/assertion-protocol/partial-matching.d.ts.map +1 -0
- package/assertion-protocol/partial-matching.js +13 -0
- package/assertion-protocol/partial-matching.js.map +1 -0
- package/assertion-protocol/source-location.d.ts +6 -0
- package/assertion-protocol/source-location.d.ts.map +1 -0
- package/assertion-protocol/source-location.js +76 -0
- package/assertion-protocol/source-location.js.map +1 -0
- package/assertion-protocol/thrown-error-record.d.ts +8 -0
- package/assertion-protocol/thrown-error-record.d.ts.map +1 -0
- package/assertion-protocol/thrown-error-record.js +17 -0
- package/assertion-protocol/thrown-error-record.js.map +1 -0
- package/assertion-protocol/thrown-matcher.d.ts +51 -0
- package/assertion-protocol/thrown-matcher.d.ts.map +1 -0
- package/assertion-protocol/thrown-matcher.js +201 -0
- package/assertion-protocol/thrown-matcher.js.map +1 -0
- package/compare/comparison-result.d.ts +25 -0
- package/compare/comparison-result.d.ts.map +1 -0
- package/compare/comparison-result.js +47 -0
- package/compare/comparison-result.js.map +1 -0
- package/compare/comparison-state.d.ts +7 -0
- package/compare/comparison-state.d.ts.map +1 -0
- package/compare/comparison-state.js +20 -0
- package/compare/comparison-state.js.map +1 -0
- package/compare/comparison.d.ts +12 -0
- package/compare/comparison.d.ts.map +1 -0
- package/compare/comparison.js +78 -0
- package/compare/comparison.js.map +1 -0
- package/compare/diff-path.d.ts +8 -0
- package/compare/diff-path.d.ts.map +1 -0
- package/compare/diff-path.js +37 -0
- package/compare/diff-path.js.map +1 -0
- package/compare/raw-comparison.d.ts +24 -0
- package/compare/raw-comparison.d.ts.map +1 -0
- package/compare/raw-comparison.js +285 -0
- package/compare/raw-comparison.js.map +1 -0
- package/compare/serialized-value-classification.d.ts +12 -0
- package/compare/serialized-value-classification.d.ts.map +1 -0
- package/compare/serialized-value-classification.js +99 -0
- package/compare/serialized-value-classification.js.map +1 -0
- package/compare/serialized-value-shape.d.ts +143 -0
- package/compare/serialized-value-shape.d.ts.map +1 -0
- package/compare/serialized-value-shape.js +12 -0
- package/compare/serialized-value-shape.js.map +1 -0
- package/compare/serialized-value-state.d.ts +12 -0
- package/compare/serialized-value-state.d.ts.map +1 -0
- package/compare/serialized-value-state.js +55 -0
- package/compare/serialized-value-state.js.map +1 -0
- package/compare/serialized-value.d.ts +11 -0
- package/compare/serialized-value.d.ts.map +1 -0
- package/compare/serialized-value.js +389 -0
- package/compare/serialized-value.js.map +1 -0
- package/compare/structured-diff.d.ts +4 -0
- package/compare/structured-diff.d.ts.map +1 -0
- package/compare/structured-diff.js +382 -0
- package/compare/structured-diff.js.map +1 -0
- package/compare/value-classification.d.ts +26 -0
- package/compare/value-classification.d.ts.map +1 -0
- package/compare/value-classification.js +112 -0
- package/compare/value-classification.js.map +1 -0
- package/diff/binary-diff.d.ts +4 -0
- package/diff/binary-diff.d.ts.map +1 -0
- package/diff/binary-diff.js +49 -0
- package/diff/binary-diff.js.map +1 -0
- package/diff/diff-shape.d.ts +117 -0
- package/diff/diff-shape.d.ts.map +1 -0
- package/diff/string-diff.d.ts +3 -0
- package/diff/string-diff.d.ts.map +1 -0
- package/diff/string-diff.js +22 -0
- package/diff/string-diff.js.map +1 -0
- package/engine/assertion-facade.d.ts +50 -0
- package/engine/assertion-facade.d.ts.map +1 -0
- package/engine/assertion-facade.js +361 -0
- package/engine/assertion-facade.js.map +1 -0
- package/engine/case-execution.d.ts +10 -0
- package/engine/case-execution.d.ts.map +1 -0
- package/engine/case-execution.js +408 -0
- package/engine/case-execution.js.map +1 -0
- package/engine/custom-assertion-recording.d.ts +33 -0
- package/engine/custom-assertion-recording.d.ts.map +1 -0
- package/engine/custom-assertion-recording.js +175 -0
- package/engine/custom-assertion-recording.js.map +1 -0
- package/engine/engine.d.ts +24 -0
- package/engine/engine.d.ts.map +1 -0
- package/engine/engine.js +33 -0
- package/engine/engine.js.map +1 -0
- package/engine/execution.d.ts +16 -0
- package/engine/execution.d.ts.map +1 -0
- package/engine/execution.js +223 -0
- package/engine/execution.js.map +1 -0
- package/engine/identity.d.ts +12 -0
- package/engine/identity.d.ts.map +1 -0
- package/engine/identity.js +20 -0
- package/engine/identity.js.map +1 -0
- package/engine/reporter.d.ts +103 -0
- package/engine/reporter.d.ts.map +1 -0
- package/engine/reporter.js +177 -0
- package/engine/reporter.js.map +1 -0
- package/engine/require-assertion-facade.d.ts +21 -0
- package/engine/require-assertion-facade.d.ts.map +1 -0
- package/engine/require-assertion-facade.js +127 -0
- package/engine/require-assertion-facade.js.map +1 -0
- package/engine/run-if-main.d.ts +20 -0
- package/engine/run-if-main.d.ts.map +1 -0
- package/engine/run-if-main.js +30 -0
- package/engine/run-if-main.js.map +1 -0
- package/engine/run-result.d.ts +110 -0
- package/engine/run-result.d.ts.map +1 -0
- package/engine/run-result.js +13 -0
- package/engine/run-result.js.map +1 -0
- package/engine/test-node.d.ts +88 -0
- package/engine/test-node.d.ts.map +1 -0
- package/engine/test-node.js +103 -0
- package/engine/test-node.js.map +1 -0
- package/engine/test-plan.d.ts +20 -0
- package/engine/test-plan.d.ts.map +1 -0
- package/engine/test-plan.js +115 -0
- package/engine/test-plan.js.map +1 -0
- package/package.json +78 -6
- package/packages/engine/assertion-protocol.entry-point.d.ts +9 -0
- package/packages/engine/assertion-protocol.entry-point.d.ts.map +1 -0
- package/packages/engine/assertion-protocol.entry-point.js +4 -0
- package/packages/engine/assertion-protocol.entry-point.js.map +1 -0
- package/packages/engine/engine.entry-point.d.ts +39 -0
- package/packages/engine/engine.entry-point.d.ts.map +1 -0
- package/packages/engine/engine.entry-point.js +47 -0
- package/packages/engine/engine.entry-point.js.map +1 -0
- package/readme.md +121 -5
- package/sbom.cdx.json +67 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { serializeValue } from "./serialized-value.js";
|
|
2
|
+
export const emptyPath = [];
|
|
3
|
+
function indexSegment(index) {
|
|
4
|
+
return { index, kind: 'index' };
|
|
5
|
+
}
|
|
6
|
+
function operationPath(operation) {
|
|
7
|
+
if (operation.operation === 'missing-index') {
|
|
8
|
+
return [indexSegment(operation.index)];
|
|
9
|
+
}
|
|
10
|
+
if (operation.operation === 'missing-entry' || operation.operation === 'missing-member') {
|
|
11
|
+
return emptyPath;
|
|
12
|
+
}
|
|
13
|
+
return operation.path;
|
|
14
|
+
}
|
|
15
|
+
export function firstDiffPath(diff) {
|
|
16
|
+
if (diff === null || diff.kind === 'value' || diff.kind === 'string' || diff.kind === 'binary') {
|
|
17
|
+
return emptyPath;
|
|
18
|
+
}
|
|
19
|
+
const operation = diff.operations[0];
|
|
20
|
+
return operation === undefined ? emptyPath : operationPath(operation);
|
|
21
|
+
}
|
|
22
|
+
export function comparisonResult(input) {
|
|
23
|
+
return {
|
|
24
|
+
actual: serializeValue(input.actual),
|
|
25
|
+
diff: input.diff,
|
|
26
|
+
expected: serializeValue(input.expected),
|
|
27
|
+
passed: input.passed,
|
|
28
|
+
path: input.path
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function passedResult(actual, expected) {
|
|
32
|
+
return comparisonResult({ actual, diff: null, expected, passed: true, path: emptyPath });
|
|
33
|
+
}
|
|
34
|
+
export function failedResult(actual, expected, diff) {
|
|
35
|
+
return comparisonResult({ actual, diff, expected, passed: false, path: firstDiffPath(diff) });
|
|
36
|
+
}
|
|
37
|
+
export function serializedValueDiff(actual, expected) {
|
|
38
|
+
return {
|
|
39
|
+
actual: serializeValue(actual),
|
|
40
|
+
expected: serializeValue(expected),
|
|
41
|
+
kind: 'value'
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function valueMismatch(actual, expected) {
|
|
45
|
+
return failedResult(actual, expected, serializedValueDiff(actual, expected));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=comparison-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-result.js","sourceRoot":"","sources":["../../../../source/compare/comparison-result.ts"],"names":[],"mappings":"AAQA,OAAO,EAAwB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkB7E,MAAM,CAAC,MAAM,SAAS,GAA+B,EAAE,CAAC;AAExD,SAAS,YAAY,CAAC,KAAa;IAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAClB,SAAyF;IAEzF,IAAI,SAAS,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;QAC1C,OAAO,CAAE,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAE,CAAC;IAC7C,CAAC;IAED,IAAI,SAAS,CAAC,SAAS,KAAK,eAAe,IAAI,SAAS,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACtF,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC3C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7F,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAErC,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IACzD,OAAO;QACH,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;KACnB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAe,EAAE,QAAiB;IAC3D,OAAO,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAe,EAAE,QAAiB,EAAE,IAAiB;IAC9E,OAAO,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAe,EAAE,QAAiB;IAClE,OAAO;QACH,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;QAC9B,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;QAClC,IAAI,EAAE,OAAO;KAChB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,QAAiB;IAC5D,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type ComparisonState = {
|
|
2
|
+
readonly actualToExpected: WeakMap<WeakKey, WeakKey>;
|
|
3
|
+
readonly expectedToActual: WeakMap<WeakKey, WeakKey>;
|
|
4
|
+
};
|
|
5
|
+
export declare function createComparisonState(): ComparisonState;
|
|
6
|
+
export declare function objectPairStatus(actual: WeakKey, expected: WeakKey, state: ComparisonState): 'new' | 'seen' | 'topology-mismatch';
|
|
7
|
+
//# sourceMappingURL=comparison-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-state.d.ts","sourceRoot":"","sources":["../../../../source/compare/comparison-state.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACxD,CAAC;AAEF,wBAAgB,qBAAqB,IAAI,eAAe,CAKvD;AAED,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,eAAe,GACvB,KAAK,GAAG,MAAM,GAAG,mBAAmB,CAgBtC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function createComparisonState() {
|
|
2
|
+
return {
|
|
3
|
+
actualToExpected: new WeakMap(),
|
|
4
|
+
expectedToActual: new WeakMap()
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export function objectPairStatus(actual, expected, state) {
|
|
8
|
+
const previousExpected = state.actualToExpected.get(actual);
|
|
9
|
+
const previousActual = state.expectedToActual.get(expected);
|
|
10
|
+
if (previousExpected === expected && previousActual === actual) {
|
|
11
|
+
return 'seen';
|
|
12
|
+
}
|
|
13
|
+
if (previousExpected !== undefined || previousActual !== undefined) {
|
|
14
|
+
return 'topology-mismatch';
|
|
15
|
+
}
|
|
16
|
+
state.actualToExpected.set(actual, expected);
|
|
17
|
+
state.expectedToActual.set(expected, actual);
|
|
18
|
+
return 'new';
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=comparison-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-state.js","sourceRoot":"","sources":["../../../../source/compare/comparison-state.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB;IACjC,OAAO;QACH,gBAAgB,EAAE,IAAI,OAAO,EAAoB;QACjD,gBAAgB,EAAE,IAAI,OAAO,EAAoB;KACpD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,MAAe,EACf,QAAiB,EACjB,KAAsB;IAEtB,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5D,IAAI,gBAAgB,KAAK,QAAQ,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,gBAAgB,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE7C,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Diff } from '../diff/diff-shape.ts';
|
|
2
|
+
import { type ComparisonResult as StructuredComparisonResult } from './comparison-result.ts';
|
|
3
|
+
export type ComparisonResult = StructuredComparisonResult;
|
|
4
|
+
export declare const serializedValueDiff: (actual: unknown, expected: unknown) => Diff;
|
|
5
|
+
export declare function compareEqualValues(actual: unknown, expected: unknown): ComparisonResult;
|
|
6
|
+
export declare function compareStringEquality(actual: string, expected: string): ComparisonResult;
|
|
7
|
+
export declare function compareDeepValues(actual: unknown, expected: unknown): ComparisonResult;
|
|
8
|
+
export declare function comparePartialValue(actual: unknown, expected: unknown): ComparisonResult;
|
|
9
|
+
export declare function compareArrayContainsPartial(actual: unknown, expected: unknown): ComparisonResult;
|
|
10
|
+
export declare function compareMembersPartialDeepEqual(actual: unknown, expected: unknown): ComparisonResult;
|
|
11
|
+
export declare function serializedOutcome(actual: unknown, expected: unknown, passed: boolean): ComparisonResult;
|
|
12
|
+
//# sourceMappingURL=comparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison.d.ts","sourceRoot":"","sources":["../../../../source/compare/comparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAOH,KAAK,gBAAgB,IAAI,0BAA0B,EACtD,MAAM,wBAAwB,CAAC;AAKhC,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAE1D,eAAO,MAAM,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAgC,CAAC;AAE3G,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAEvF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAWxF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAQtF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAQxF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAoBhG;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAsBnG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAEvG"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { createStringHunks } from "../diff/string-diff.js";
|
|
2
|
+
import { comparisonResult, emptyPath, failedResult, passedResult, serializedValueDiff as createSerializedValueDiff, valueMismatch } from "./comparison-result.js";
|
|
3
|
+
import { compareExactly, comparePartially } from "./raw-comparison.js";
|
|
4
|
+
import { exactStructuredDiff, partialStructuredDiff } from "./structured-diff.js";
|
|
5
|
+
import { serializeValue } from "./serialized-value.js";
|
|
6
|
+
|
|
7
|
+
export function compareEqualValues(actual, expected) {
|
|
8
|
+
return Object.is(actual, expected) ? passedResult(actual, expected) : failedResult(actual, expected, null);
|
|
9
|
+
}
|
|
10
|
+
export function compareStringEquality(actual, expected) {
|
|
11
|
+
if (Object.is(actual, expected)) {
|
|
12
|
+
return passedResult(actual, expected);
|
|
13
|
+
}
|
|
14
|
+
return failedResult(actual, expected, {
|
|
15
|
+
actual,
|
|
16
|
+
expected,
|
|
17
|
+
hunks: createStringHunks(expected, actual),
|
|
18
|
+
kind: 'string'
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function compareDeepValues(actual, expected) {
|
|
22
|
+
if (compareExactly(actual, expected)) {
|
|
23
|
+
return passedResult(actual, expected);
|
|
24
|
+
}
|
|
25
|
+
const comparison = exactStructuredDiff(actual, expected);
|
|
26
|
+
return comparison.passed ? valueMismatch(actual, expected) : comparison;
|
|
27
|
+
}
|
|
28
|
+
export function comparePartialValue(actual, expected) {
|
|
29
|
+
if (comparePartially(actual, expected)) {
|
|
30
|
+
return passedResult(actual, expected);
|
|
31
|
+
}
|
|
32
|
+
const comparison = partialStructuredDiff(actual, expected);
|
|
33
|
+
return comparison.passed ? valueMismatch(actual, expected) : comparison;
|
|
34
|
+
}
|
|
35
|
+
export function compareArrayContainsPartial(actual, expected) {
|
|
36
|
+
if (!Array.isArray(actual)) {
|
|
37
|
+
return valueMismatch(actual, expected);
|
|
38
|
+
}
|
|
39
|
+
const passed = actual.some(function itemMatches(item) {
|
|
40
|
+
return comparePartially(item, expected);
|
|
41
|
+
});
|
|
42
|
+
return passed
|
|
43
|
+
? passedResult(actual, expected)
|
|
44
|
+
: failedResult(actual, expected, {
|
|
45
|
+
kind: 'array',
|
|
46
|
+
operations: [
|
|
47
|
+
{
|
|
48
|
+
operation: 'missing-member',
|
|
49
|
+
value: serializeValue(expected)
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function compareMembersPartialDeepEqual(actual, expected) {
|
|
55
|
+
if (!Array.isArray(actual) || !Array.isArray(expected)) {
|
|
56
|
+
return valueMismatch(actual, expected);
|
|
57
|
+
}
|
|
58
|
+
const missingMembers = expected.filter(function missingMember(expectedMember) {
|
|
59
|
+
return actual.every(function itemMatches(actualMember) {
|
|
60
|
+
return !comparePartially(actualMember, expectedMember);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
return missingMembers.length === 0
|
|
64
|
+
? passedResult(actual, expected)
|
|
65
|
+
: failedResult(actual, expected, {
|
|
66
|
+
kind: 'array',
|
|
67
|
+
operations: missingMembers.map(function toMissingMember(member) {
|
|
68
|
+
return {
|
|
69
|
+
operation: 'missing-member',
|
|
70
|
+
value: serializeValue(member)
|
|
71
|
+
};
|
|
72
|
+
})
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export function serializedOutcome(actual, expected, passed) {
|
|
76
|
+
return comparisonResult({ actual, diff: null, expected, passed, path: emptyPath });
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=comparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison.js","sourceRoot":"","sources":["../../../../source/compare/comparison.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB;AAE1D,OAAO,EACH,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,mBAAmB,IAAI,yBAAyB,EAChD,aAAa,EAEhB,MAAM,wBAAwB;AAC/B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB;AACtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB;;AAMtD,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,QAAiB;IACjE,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC/G;AAEA,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,QAAgB;IAClE,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE;QAClC,MAAM;QACN,QAAQ;QACR,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1C,IAAI,EAAE,QAAQ;KACjB,CAAC,CAAC;AACP;AAEA,MAAM,UAAU,iBAAiB,CAAC,MAAe,EAAE,QAAiB;IAChE,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5E;AAEA,MAAM,UAAU,mBAAmB,CAAC,MAAe,EAAE,QAAiB;IAClE,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5E;AAEA,MAAM,UAAU,2BAA2B,CAAC,MAAe,EAAE,QAAiB;IAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,IAAI;QAChD,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM;QACT,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;QAChC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE;YAC7B,IAAI,EAAE,OAAO;YACb,UAAU,EAAE;gBACR;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC;iBAClC;aACJ;SACJ,CAAC,CAAC;AACX;AAEA,MAAM,UAAU,8BAA8B,CAAC,MAAe,EAAE,QAAiB;IAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,aAAa,CAAC,cAAc;QACxE,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,WAAW,CAAC,YAAY;YACjD,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,MAAM,KAAK,CAAC;QAC9B,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;QAChC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE;YAC7B,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,eAAe,CAAC,MAAM;gBAC1D,OAAO;oBACH,SAAS,EAAE,gBAAgB;oBAC3B,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC;iBAChC,CAAC;YACN,CAAC,CAAC;SACL,CAAC,CAAC;AACX;AAEA,MAAM,UAAU,iBAAiB,CAAC,MAAe,EAAE,QAAiB,EAAE,MAAe;IACjF,OAAO,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACvF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DiffPathSegment } from '../diff/diff-shape.ts';
|
|
2
|
+
export declare function propertySegment(key: PropertyKey): DiffPathSegment;
|
|
3
|
+
export declare function indexSegment(index: number): DiffPathSegment;
|
|
4
|
+
export declare function byteSegment(offset: number): DiffPathSegment;
|
|
5
|
+
export declare function mapKeySegment(key: unknown): DiffPathSegment;
|
|
6
|
+
export declare function mapValueSegment(key: unknown): DiffPathSegment;
|
|
7
|
+
export declare function setValueSegment(value: unknown): DiffPathSegment;
|
|
8
|
+
//# sourceMappingURL=diff-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-path.d.ts","sourceRoot":"","sources":["../../../../source/compare/diff-path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAS7D,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe,CAKjE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAE3D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAE3D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAK3D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAK7D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAK/D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { serializeValue } from "./serialized-value.js";
|
|
2
|
+
function serializedKey(key) {
|
|
3
|
+
return typeof key === 'symbol'
|
|
4
|
+
? { kind: 'symbol', value: key.toString() }
|
|
5
|
+
: { kind: 'string', value: String(key) };
|
|
6
|
+
}
|
|
7
|
+
export function propertySegment(key) {
|
|
8
|
+
return {
|
|
9
|
+
key: serializedKey(key),
|
|
10
|
+
kind: 'property'
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function indexSegment(index) {
|
|
14
|
+
return { index, kind: 'index' };
|
|
15
|
+
}
|
|
16
|
+
export function byteSegment(offset) {
|
|
17
|
+
return { kind: 'byte', offset };
|
|
18
|
+
}
|
|
19
|
+
export function mapKeySegment(key) {
|
|
20
|
+
return {
|
|
21
|
+
key: serializeValue(key),
|
|
22
|
+
kind: 'map-key'
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function mapValueSegment(key) {
|
|
26
|
+
return {
|
|
27
|
+
key: serializeValue(key),
|
|
28
|
+
kind: 'map-value'
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function setValueSegment(value) {
|
|
32
|
+
return {
|
|
33
|
+
kind: 'set-value',
|
|
34
|
+
value: serializeValue(value)
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=diff-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-path.js","sourceRoot":"","sources":["../../../../source/compare/diff-path.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEnF,SAAS,aAAa,CAAC,GAAgB;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ;QAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAgB;IAC5C,OAAO;QACH,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC;QACvB,IAAI,EAAE,UAAU;KACnB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc;IACtC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAY;IACtC,OAAO;QACH,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC;QACxB,IAAI,EAAE,SAAS;KAClB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAY;IACxC,OAAO;QACH,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC;QACxB,IAAI,EAAE,WAAW;KACpB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC1C,OAAO;QACH,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;KAC/B,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ByteSource } from './value-classification.ts';
|
|
2
|
+
type BinaryReference = ArrayBuffer | ArrayBufferView;
|
|
3
|
+
type BuiltInReference = Date | Error | Promise<unknown> | RegExp;
|
|
4
|
+
type CollectionReference = ReadonlyMap<unknown, unknown> | ReadonlySet<unknown>;
|
|
5
|
+
type WeakCollectionReference = WeakMap<Record<string, unknown>, unknown> | WeakSet<Record<string, unknown>>;
|
|
6
|
+
type StrongReference = BinaryReference | BuiltInReference | CollectionReference;
|
|
7
|
+
type ReferenceValue = Readonly<Record<string, unknown>> | StrongReference | WeakCollectionReference;
|
|
8
|
+
export type RawProperty = {
|
|
9
|
+
readonly key: PropertyKey;
|
|
10
|
+
readonly value: unknown;
|
|
11
|
+
};
|
|
12
|
+
export type RawMapEntry = {
|
|
13
|
+
readonly key: unknown;
|
|
14
|
+
readonly value: unknown;
|
|
15
|
+
};
|
|
16
|
+
export declare function sortedKeys(value: ReferenceValue): readonly PropertyKey[] | null;
|
|
17
|
+
export declare function rawProperty(value: ReferenceValue, key: PropertyKey): RawProperty;
|
|
18
|
+
export declare function bytesFrom(value: ByteSource): readonly number[];
|
|
19
|
+
export declare function mapEntries(value: ReadonlyMap<unknown, unknown>): readonly RawMapEntry[];
|
|
20
|
+
export declare function setValues(value: ReadonlySet<unknown>): readonly unknown[];
|
|
21
|
+
export declare function compareExactly(actual: unknown, expected: unknown): boolean;
|
|
22
|
+
export declare function comparePartially(actual: unknown, expected: unknown): boolean;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=raw-comparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-comparison.d.ts","sourceRoot":"","sources":["../../../../source/compare/raw-comparison.ts"],"names":[],"mappings":"AACA,OAAO,EAWH,KAAK,UAAU,EAClB,MAAM,2BAA2B,CAAC;AAEnC,KAAK,eAAe,GAAG,WAAW,GAAG,eAAe,CAAC;AACrD,KAAK,gBAAgB,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AACjE,KAAK,mBAAmB,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAChF,KAAK,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5G,KAAK,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAChF,KAAK,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAEpG,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B,CAAC;AAmCF,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,WAAW,EAAE,GAAG,IAAI,CAiB/E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAWhF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,MAAM,EAAE,CAM9D;AAYD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,WAAW,EAAE,CAIvF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,OAAO,EAAE,CAEzE;AAoTD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAE5E"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { createComparisonState, objectPairStatus } from "./comparison-state.js";
|
|
2
|
+
import { byteSourcePair, isDateValue, isErrorValue, isMapCandidate, isOpaqueIdentityValue, isRegExpValue, isSetCandidate, mapPair, prototypeOf, setPair } from "./value-classification.js";
|
|
3
|
+
function keyText(key) {
|
|
4
|
+
return typeof key === 'symbol' ? key.toString() : String(key);
|
|
5
|
+
}
|
|
6
|
+
function safePropertyDescriptor(value, key) {
|
|
7
|
+
try {
|
|
8
|
+
return Object.getOwnPropertyDescriptor(value, key);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function sortedKeys(value) {
|
|
15
|
+
try {
|
|
16
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
17
|
+
return Reflect
|
|
18
|
+
.ownKeys(descriptors)
|
|
19
|
+
.filter(function enumerableDataKey(key) {
|
|
20
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
21
|
+
return descriptor?.enumerable === true;
|
|
22
|
+
})
|
|
23
|
+
.toSorted(function compareKeys(first, second) {
|
|
24
|
+
return keyText(first).localeCompare(keyText(second));
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function rawProperty(value, key) {
|
|
32
|
+
const descriptor = safePropertyDescriptor(value, key);
|
|
33
|
+
if (descriptor === undefined || !Object.hasOwn(descriptor, 'value')) {
|
|
34
|
+
return {
|
|
35
|
+
key,
|
|
36
|
+
value: { accessor: true }
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return { key, value: descriptor.value };
|
|
40
|
+
}
|
|
41
|
+
export function bytesFrom(value) {
|
|
42
|
+
if (value instanceof ArrayBuffer) {
|
|
43
|
+
return Array.from(new Uint8Array(value));
|
|
44
|
+
}
|
|
45
|
+
return Array.from(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));
|
|
46
|
+
}
|
|
47
|
+
function compareBytes(actual, expected) {
|
|
48
|
+
const actualBytes = bytesFrom(actual);
|
|
49
|
+
const expectedBytes = bytesFrom(expected);
|
|
50
|
+
return actualBytes.length === expectedBytes.length &&
|
|
51
|
+
actualBytes.every(function sameByte(actualByte, index) {
|
|
52
|
+
return actualByte === expectedBytes[index];
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function mapEntries(value) {
|
|
56
|
+
return Array.from(value, function toEntry([key, entryValue]) {
|
|
57
|
+
return { key, value: entryValue };
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
export function setValues(value) {
|
|
61
|
+
return Array.from(value);
|
|
62
|
+
}
|
|
63
|
+
function primitiveOrFunction(value) {
|
|
64
|
+
return value === null || typeof value !== 'object';
|
|
65
|
+
}
|
|
66
|
+
function compareSeenObjects(actual, expected, state) {
|
|
67
|
+
const pairStatus = objectPairStatus(actual, expected, state);
|
|
68
|
+
if (pairStatus === 'seen') {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
return pairStatus === 'topology-mismatch' ? false : null;
|
|
72
|
+
}
|
|
73
|
+
function objectKeyCountMatches(actualKeys, expectedKeys, mode) {
|
|
74
|
+
return mode === 'partial' || actualKeys.length === expectedKeys.length;
|
|
75
|
+
}
|
|
76
|
+
function compareArrays(actual, expected, context) {
|
|
77
|
+
const exactLengthMismatch = context.mode === 'exact' && actual.length !== expected.length;
|
|
78
|
+
const partialLengthMismatch = context.mode === 'partial' && actual.length < expected.length;
|
|
79
|
+
if (exactLengthMismatch || partialLengthMismatch) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
return Array.from({ length: expected.length }).every(function itemMatches(_unusedValue, index) {
|
|
83
|
+
const expectedValue = expected[index];
|
|
84
|
+
return Object.hasOwn(actual, index) === Object.hasOwn(expected, index) &&
|
|
85
|
+
(!Object.hasOwn(expected, index) ||
|
|
86
|
+
context.compare(actual[index], expectedValue, context.state, context.mode));
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function compareObjects(actual, expected, context) {
|
|
90
|
+
const actualKeys = sortedKeys(actual);
|
|
91
|
+
const expectedKeys = sortedKeys(expected);
|
|
92
|
+
if (actualKeys === null || expectedKeys === null) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return objectKeyCountMatches(actualKeys, expectedKeys, context.mode) &&
|
|
96
|
+
expectedKeys.every(function propertyMatches(expectedKey) {
|
|
97
|
+
return actualKeys.includes(expectedKey) &&
|
|
98
|
+
context.compare(rawProperty(actual, expectedKey).value, rawProperty(expected, expectedKey).value, context.state, context.mode);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function matchedMapIndex(actualEntries, expectedEntry, matchedActualIndexes, context) {
|
|
102
|
+
return actualEntries.findIndex(function matchesEntry(actualEntry, index) {
|
|
103
|
+
return !matchedActualIndexes.has(index) &&
|
|
104
|
+
context.compare(actualEntry.key, expectedEntry.key, createComparisonState(), 'exact') &&
|
|
105
|
+
context.compare(actualEntry.value, expectedEntry.value, createComparisonState(), context.mode);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function mapSizeMatches(actualEntries, expectedEntries, mode) {
|
|
109
|
+
return mode === 'partial' || actualEntries.length === expectedEntries.length;
|
|
110
|
+
}
|
|
111
|
+
function compareMaps(actual, expected, context) {
|
|
112
|
+
const actualEntries = mapEntries(actual);
|
|
113
|
+
const expectedEntries = mapEntries(expected);
|
|
114
|
+
const matchedActualIndexes = new Set();
|
|
115
|
+
return mapSizeMatches(actualEntries, expectedEntries, context.mode) &&
|
|
116
|
+
expectedEntries.every(function entryMatches(expectedEntry) {
|
|
117
|
+
const matchIndex = matchedMapIndex(actualEntries, expectedEntry, matchedActualIndexes, context);
|
|
118
|
+
const actualEntry = actualEntries[matchIndex];
|
|
119
|
+
const matched = actualEntry !== undefined &&
|
|
120
|
+
context.compare(actualEntry.key, expectedEntry.key, context.state, 'exact') &&
|
|
121
|
+
context.compare(actualEntry.value, expectedEntry.value, context.state, context.mode);
|
|
122
|
+
if (matched) {
|
|
123
|
+
matchedActualIndexes.add(matchIndex);
|
|
124
|
+
}
|
|
125
|
+
return matched;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
function matchedSetIndex(actualValues, expectedValue, matchedActualIndexes, context) {
|
|
129
|
+
return actualValues.findIndex(function matchesValue(actualValue, index) {
|
|
130
|
+
return !matchedActualIndexes.has(index) &&
|
|
131
|
+
context.compare(actualValue, expectedValue, createComparisonState(), context.mode);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
function setSizeMatches(actualValues, expectedValues, mode) {
|
|
135
|
+
return mode === 'partial' || actualValues.length === expectedValues.length;
|
|
136
|
+
}
|
|
137
|
+
function compareSets(actual, expected, context) {
|
|
138
|
+
const actualValues = setValues(actual);
|
|
139
|
+
const expectedValues = setValues(expected);
|
|
140
|
+
const matchedActualIndexes = new Set();
|
|
141
|
+
return setSizeMatches(actualValues, expectedValues, context.mode) &&
|
|
142
|
+
expectedValues.every(function valueMatches(expectedValue) {
|
|
143
|
+
const matchIndex = matchedSetIndex(actualValues, expectedValue, matchedActualIndexes, context);
|
|
144
|
+
const actualValue = actualValues[matchIndex];
|
|
145
|
+
const matched = context.compare(actualValue, expectedValue, context.state, context.mode);
|
|
146
|
+
if (matched) {
|
|
147
|
+
matchedActualIndexes.add(matchIndex);
|
|
148
|
+
}
|
|
149
|
+
return matched;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function compareErrors(actual, expected, context) {
|
|
153
|
+
return actual.name === expected.name &&
|
|
154
|
+
actual.message === expected.message &&
|
|
155
|
+
compareObjects(actual, expected, context);
|
|
156
|
+
}
|
|
157
|
+
function firstReferenceResult(comparisons, actual, expected, context) {
|
|
158
|
+
for (const comparison of comparisons) {
|
|
159
|
+
const comparisonResult = comparison(actual, expected, context);
|
|
160
|
+
if (comparisonResult !== null) {
|
|
161
|
+
return comparisonResult;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
const exactReferenceComparisons = [
|
|
167
|
+
function compareArrayValues(actual, expected, context) {
|
|
168
|
+
if (!Array.isArray(actual) && !Array.isArray(expected)) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
return Array.isArray(actual) && Array.isArray(expected) && compareArrays(actual, expected, context);
|
|
172
|
+
},
|
|
173
|
+
function compareByteValues(actual, expected) {
|
|
174
|
+
const pair = byteSourcePair(actual, expected);
|
|
175
|
+
return pair === null ? null : compareBytes(pair.actual, pair.expected);
|
|
176
|
+
},
|
|
177
|
+
function compareDateValues(actual, expected) {
|
|
178
|
+
return isDateValue(actual) || isDateValue(expected)
|
|
179
|
+
? isDateValue(actual) && isDateValue(expected) && Object.is(actual.getTime(), expected.getTime())
|
|
180
|
+
: null;
|
|
181
|
+
},
|
|
182
|
+
function compareRegExpValues(actual, expected) {
|
|
183
|
+
if (!isRegExpValue(actual) && !isRegExpValue(expected)) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
return isRegExpValue(actual) && isRegExpValue(expected) &&
|
|
187
|
+
actual.source === expected.source &&
|
|
188
|
+
actual.flags === expected.flags;
|
|
189
|
+
},
|
|
190
|
+
function compareErrorValues(actual, expected, context) {
|
|
191
|
+
return isErrorValue(actual) || isErrorValue(expected)
|
|
192
|
+
? isErrorValue(actual) && isErrorValue(expected) && compareErrors(actual, expected, context)
|
|
193
|
+
: null;
|
|
194
|
+
},
|
|
195
|
+
function compareOpaqueValues(actual, expected) {
|
|
196
|
+
return isOpaqueIdentityValue(actual) || isOpaqueIdentityValue(expected) ? false : null;
|
|
197
|
+
},
|
|
198
|
+
function compareMapValues(actual, expected, context) {
|
|
199
|
+
const pair = mapPair(actual, expected);
|
|
200
|
+
return isMapCandidate(actual) || isMapCandidate(expected)
|
|
201
|
+
? pair !== null && compareMaps(pair.actual, pair.expected, context)
|
|
202
|
+
: null;
|
|
203
|
+
},
|
|
204
|
+
function compareSetValues(actual, expected, context) {
|
|
205
|
+
const pair = setPair(actual, expected);
|
|
206
|
+
return isSetCandidate(actual) || isSetCandidate(expected)
|
|
207
|
+
? pair !== null && compareSets(pair.actual, pair.expected, context)
|
|
208
|
+
: null;
|
|
209
|
+
},
|
|
210
|
+
function compareObjectValues(actual, expected, context) {
|
|
211
|
+
return prototypeOf(actual) === prototypeOf(expected) &&
|
|
212
|
+
compareObjects(actual, expected, context);
|
|
213
|
+
}
|
|
214
|
+
];
|
|
215
|
+
const partialReferenceComparisons = [
|
|
216
|
+
function compareArrayValues(actual, expected, context) {
|
|
217
|
+
return Array.isArray(expected)
|
|
218
|
+
? Array.isArray(actual) && compareArrays(actual, expected, context)
|
|
219
|
+
: null;
|
|
220
|
+
},
|
|
221
|
+
function compareByteValues(actual, expected) {
|
|
222
|
+
const pair = byteSourcePair(actual, expected);
|
|
223
|
+
return pair === null ? null : compareBytes(pair.actual, pair.expected);
|
|
224
|
+
},
|
|
225
|
+
function compareDateValues(actual, expected) {
|
|
226
|
+
return isDateValue(expected)
|
|
227
|
+
? isDateValue(actual) && Object.is(actual.getTime(), expected.getTime())
|
|
228
|
+
: null;
|
|
229
|
+
},
|
|
230
|
+
function compareRegExpValues(actual, expected) {
|
|
231
|
+
return isRegExpValue(expected)
|
|
232
|
+
? isRegExpValue(actual) && actual.source === expected.source && actual.flags === expected.flags
|
|
233
|
+
: null;
|
|
234
|
+
},
|
|
235
|
+
function compareErrorValues(actual, expected, context) {
|
|
236
|
+
return isErrorValue(expected)
|
|
237
|
+
? isErrorValue(actual) && compareErrors(actual, expected, context)
|
|
238
|
+
: null;
|
|
239
|
+
},
|
|
240
|
+
function compareOpaqueValues(actual, expected) {
|
|
241
|
+
return isOpaqueIdentityValue(actual) || isOpaqueIdentityValue(expected) ? false : null;
|
|
242
|
+
},
|
|
243
|
+
function compareMapValues(actual, expected, context) {
|
|
244
|
+
const pair = mapPair(actual, expected);
|
|
245
|
+
return isMapCandidate(expected)
|
|
246
|
+
? pair !== null && compareMaps(pair.actual, pair.expected, context)
|
|
247
|
+
: null;
|
|
248
|
+
},
|
|
249
|
+
function compareSetValues(actual, expected, context) {
|
|
250
|
+
const pair = setPair(actual, expected);
|
|
251
|
+
return isSetCandidate(expected)
|
|
252
|
+
? pair !== null && compareSets(pair.actual, pair.expected, context)
|
|
253
|
+
: null;
|
|
254
|
+
},
|
|
255
|
+
compareObjects
|
|
256
|
+
];
|
|
257
|
+
function isReferenceValue(value) {
|
|
258
|
+
return value !== null && typeof value === 'object';
|
|
259
|
+
}
|
|
260
|
+
function compareReferences(actual, expected, context) {
|
|
261
|
+
const seen = compareSeenObjects(actual, expected, context.state);
|
|
262
|
+
if (seen !== null) {
|
|
263
|
+
return seen;
|
|
264
|
+
}
|
|
265
|
+
const comparisons = context.mode === 'exact' ? exactReferenceComparisons : partialReferenceComparisons;
|
|
266
|
+
return firstReferenceResult(comparisons, actual, expected, context);
|
|
267
|
+
}
|
|
268
|
+
function compareRaw(actual, expected, state, mode) {
|
|
269
|
+
if (Object.is(actual, expected)) {
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
if (primitiveOrFunction(actual) || primitiveOrFunction(expected)) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
return isReferenceValue(actual) && isReferenceValue(expected)
|
|
276
|
+
? compareReferences(actual, expected, { compare: compareRaw, mode, state })
|
|
277
|
+
: false;
|
|
278
|
+
}
|
|
279
|
+
export function compareExactly(actual, expected) {
|
|
280
|
+
return compareRaw(actual, expected, createComparisonState(), 'exact');
|
|
281
|
+
}
|
|
282
|
+
export function comparePartially(actual, expected) {
|
|
283
|
+
return compareRaw(actual, expected, createComparisonState(), 'partial');
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=raw-comparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-comparison.js","sourceRoot":"","sources":["../../../../source/compare/raw-comparison.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function constructorName(value: unknown): string;
|
|
2
|
+
export declare function prototypeIs(value: unknown, prototype: unknown): boolean;
|
|
3
|
+
export declare function isBufferValue(value: unknown): value is Uint8Array;
|
|
4
|
+
export declare function isArrayBufferView(value: unknown): value is ArrayBufferView;
|
|
5
|
+
export declare function isArrayBufferValue(value: unknown): value is ArrayBuffer;
|
|
6
|
+
export declare function isDateValue(value: unknown): value is Date;
|
|
7
|
+
export declare function isRegExpValue(value: unknown): value is RegExp;
|
|
8
|
+
export declare function isErrorValue(value: unknown): value is Error;
|
|
9
|
+
export declare function isPromiseValue(value: unknown): value is Promise<unknown>;
|
|
10
|
+
export declare function isWeakMapValue(value: unknown): value is WeakMap<Record<string, unknown>, unknown>;
|
|
11
|
+
export declare function isWeakSetValue(value: unknown): value is WeakSet<Record<string, unknown>>;
|
|
12
|
+
//# sourceMappingURL=serialized-value-classification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialized-value-classification.d.ts","sourceRoot":"","sources":["../../../../source/compare/serialized-value-classification.ts"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQtD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAMvE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAMjE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAM1E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAMvE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAMzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAM7D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAM3D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAMxE;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,OAAO,GACf,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAMpD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMxF"}
|