@diffson/core 1.0.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/.turbo/turbo-build.log +1 -0
- package/.turbo/turbo-test.log +96 -0
- package/.turbo/turbo-typecheck.log +2 -0
- package/dist/contract/constant/DiffConstants.d.ts +9 -0
- package/dist/contract/constant/DiffConstants.d.ts.map +1 -0
- package/dist/contract/constant/DiffConstants.js +9 -0
- package/dist/contract/constant/DiffConstants.js.map +1 -0
- package/dist/contract/constant/PresetName.d.ts +7 -0
- package/dist/contract/constant/PresetName.d.ts.map +1 -0
- package/dist/contract/constant/PresetName.js +8 -0
- package/dist/contract/constant/PresetName.js.map +1 -0
- package/dist/contract/constant/index.d.ts +3 -0
- package/dist/contract/constant/index.d.ts.map +1 -0
- package/dist/contract/constant/index.js +3 -0
- package/dist/contract/constant/index.js.map +1 -0
- package/dist/contract/index.d.ts +3 -0
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +3 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/contract/type/ArrayComparator.d.ts +9 -0
- package/dist/contract/type/ArrayComparator.d.ts.map +1 -0
- package/dist/contract/type/ArrayComparator.js +3 -0
- package/dist/contract/type/ArrayComparator.js.map +1 -0
- package/dist/contract/type/ComparatorOrchestrator.d.ts +10 -0
- package/dist/contract/type/ComparatorOrchestrator.d.ts.map +1 -0
- package/dist/contract/type/ComparatorOrchestrator.js +3 -0
- package/dist/contract/type/ComparatorOrchestrator.js.map +1 -0
- package/dist/contract/type/DiffService.d.ts +28 -0
- package/dist/contract/type/DiffService.d.ts.map +1 -0
- package/dist/contract/type/DiffService.js +3 -0
- package/dist/contract/type/DiffService.js.map +1 -0
- package/dist/contract/type/JsonTypes.d.ts +6 -0
- package/dist/contract/type/JsonTypes.d.ts.map +1 -0
- package/dist/contract/type/JsonTypes.js +2 -0
- package/dist/contract/type/JsonTypes.js.map +1 -0
- package/dist/contract/type/NullComparator.d.ts +7 -0
- package/dist/contract/type/NullComparator.d.ts.map +1 -0
- package/dist/contract/type/NullComparator.js +3 -0
- package/dist/contract/type/NullComparator.js.map +1 -0
- package/dist/contract/type/ObjectComparator.d.ts +9 -0
- package/dist/contract/type/ObjectComparator.d.ts.map +1 -0
- package/dist/contract/type/ObjectComparator.js +3 -0
- package/dist/contract/type/ObjectComparator.js.map +1 -0
- package/dist/contract/type/OtherComparator.d.ts +8 -0
- package/dist/contract/type/OtherComparator.d.ts.map +1 -0
- package/dist/contract/type/OtherComparator.js +3 -0
- package/dist/contract/type/OtherComparator.js.map +1 -0
- package/dist/contract/type/PrimitiveComparator.d.ts +7 -0
- package/dist/contract/type/PrimitiveComparator.d.ts.map +1 -0
- package/dist/contract/type/PrimitiveComparator.js +3 -0
- package/dist/contract/type/PrimitiveComparator.js.map +1 -0
- package/dist/contract/type/Result.d.ts +8 -0
- package/dist/contract/type/Result.d.ts.map +1 -0
- package/dist/contract/type/Result.js +8 -0
- package/dist/contract/type/Result.js.map +1 -0
- package/dist/contract/type/SingleNodeDifference.d.ts +8 -0
- package/dist/contract/type/SingleNodeDifference.d.ts.map +1 -0
- package/dist/contract/type/SingleNodeDifference.js +13 -0
- package/dist/contract/type/SingleNodeDifference.js.map +1 -0
- package/dist/contract/type/index.d.ts +11 -0
- package/dist/contract/type/index.d.ts.map +1 -0
- package/dist/contract/type/index.js +11 -0
- package/dist/contract/type/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/service/comparator/ComparatorOrchestrator.d.ts +14 -0
- package/dist/service/comparator/ComparatorOrchestrator.d.ts.map +1 -0
- package/dist/service/comparator/ComparatorOrchestrator.js +56 -0
- package/dist/service/comparator/ComparatorOrchestrator.js.map +1 -0
- package/dist/service/comparator/array/AbstractArray.d.ts +12 -0
- package/dist/service/comparator/array/AbstractArray.d.ts.map +1 -0
- package/dist/service/comparator/array/AbstractArray.js +41 -0
- package/dist/service/comparator/array/AbstractArray.js.map +1 -0
- package/dist/service/comparator/array/SequentialArrayComparator.d.ts +10 -0
- package/dist/service/comparator/array/SequentialArrayComparator.d.ts.map +1 -0
- package/dist/service/comparator/array/SequentialArrayComparator.js +50 -0
- package/dist/service/comparator/array/SequentialArrayComparator.js.map +1 -0
- package/dist/service/comparator/array/SimilarArrayComparator.d.ts +22 -0
- package/dist/service/comparator/array/SimilarArrayComparator.d.ts.map +1 -0
- package/dist/service/comparator/array/SimilarArrayComparator.js +153 -0
- package/dist/service/comparator/array/SimilarArrayComparator.js.map +1 -0
- package/dist/service/comparator/array/index.d.ts +4 -0
- package/dist/service/comparator/array/index.d.ts.map +1 -0
- package/dist/service/comparator/array/index.js +4 -0
- package/dist/service/comparator/array/index.js.map +1 -0
- package/dist/service/comparator/index.d.ts +7 -0
- package/dist/service/comparator/index.d.ts.map +1 -0
- package/dist/service/comparator/index.js +7 -0
- package/dist/service/comparator/index.js.map +1 -0
- package/dist/service/comparator/nulls/DefaultNullComparator.d.ts +7 -0
- package/dist/service/comparator/nulls/DefaultNullComparator.d.ts.map +1 -0
- package/dist/service/comparator/nulls/DefaultNullComparator.js +7 -0
- package/dist/service/comparator/nulls/DefaultNullComparator.js.map +1 -0
- package/dist/service/comparator/nulls/index.d.ts +2 -0
- package/dist/service/comparator/nulls/index.d.ts.map +1 -0
- package/dist/service/comparator/nulls/index.js +2 -0
- package/dist/service/comparator/nulls/index.js.map +1 -0
- package/dist/service/comparator/object/AbstractObject.d.ts +17 -0
- package/dist/service/comparator/object/AbstractObject.d.ts.map +1 -0
- package/dist/service/comparator/object/AbstractObject.js +91 -0
- package/dist/service/comparator/object/AbstractObject.js.map +1 -0
- package/dist/service/comparator/object/LeftJoinObjectComparator.d.ts +9 -0
- package/dist/service/comparator/object/LeftJoinObjectComparator.d.ts.map +1 -0
- package/dist/service/comparator/object/LeftJoinObjectComparator.js +26 -0
- package/dist/service/comparator/object/LeftJoinObjectComparator.js.map +1 -0
- package/dist/service/comparator/object/UnionKeyObjectComparator.d.ts +9 -0
- package/dist/service/comparator/object/UnionKeyObjectComparator.d.ts.map +1 -0
- package/dist/service/comparator/object/UnionKeyObjectComparator.js +27 -0
- package/dist/service/comparator/object/UnionKeyObjectComparator.js.map +1 -0
- package/dist/service/comparator/object/index.d.ts +4 -0
- package/dist/service/comparator/object/index.d.ts.map +1 -0
- package/dist/service/comparator/object/index.js +4 -0
- package/dist/service/comparator/object/index.js.map +1 -0
- package/dist/service/comparator/other/DefaultOtherComparator.d.ts +7 -0
- package/dist/service/comparator/other/DefaultOtherComparator.d.ts.map +1 -0
- package/dist/service/comparator/other/DefaultOtherComparator.js +14 -0
- package/dist/service/comparator/other/DefaultOtherComparator.js.map +1 -0
- package/dist/service/comparator/other/index.d.ts +2 -0
- package/dist/service/comparator/other/index.d.ts.map +1 -0
- package/dist/service/comparator/other/index.js +2 -0
- package/dist/service/comparator/other/index.js.map +1 -0
- package/dist/service/comparator/primitive/DefaultPrimitiveComparator.d.ts +7 -0
- package/dist/service/comparator/primitive/DefaultPrimitiveComparator.d.ts.map +1 -0
- package/dist/service/comparator/primitive/DefaultPrimitiveComparator.js +17 -0
- package/dist/service/comparator/primitive/DefaultPrimitiveComparator.js.map +1 -0
- package/dist/service/comparator/primitive/index.d.ts +2 -0
- package/dist/service/comparator/primitive/index.d.ts.map +1 -0
- package/dist/service/comparator/primitive/index.js +2 -0
- package/dist/service/comparator/primitive/index.js.map +1 -0
- package/dist/service/diff/DiffContext.d.ts +14 -0
- package/dist/service/diff/DiffContext.d.ts.map +1 -0
- package/dist/service/diff/DiffContext.js +30 -0
- package/dist/service/diff/DiffContext.js.map +1 -0
- package/dist/service/diff/DiffService.d.ts +27 -0
- package/dist/service/diff/DiffService.d.ts.map +1 -0
- package/dist/service/diff/DiffService.js +185 -0
- package/dist/service/diff/DiffService.js.map +1 -0
- package/dist/service/diff/PathTracker.d.ts +22 -0
- package/dist/service/diff/PathTracker.d.ts.map +1 -0
- package/dist/service/diff/PathTracker.js +57 -0
- package/dist/service/diff/PathTracker.js.map +1 -0
- package/dist/service/diff/index.d.ts +2 -0
- package/dist/service/diff/index.d.ts.map +1 -0
- package/dist/service/diff/index.js +2 -0
- package/dist/service/diff/index.js.map +1 -0
- package/dist/service/index.d.ts +3 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +3 -0
- package/dist/service/index.js.map +1 -0
- package/dist/util/TypeGuards.d.ts +7 -0
- package/dist/util/TypeGuards.d.ts.map +1 -0
- package/dist/util/TypeGuards.js +33 -0
- package/dist/util/TypeGuards.js.map +1 -0
- package/dist/util/index.d.ts +2 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +2 -0
- package/dist/util/index.js.map +1 -0
- package/package.json +40 -0
- package/src/contract/constant/DiffConstants.ts +10 -0
- package/src/contract/constant/PresetName.ts +6 -0
- package/src/contract/constant/index.ts +2 -0
- package/src/contract/index.ts +2 -0
- package/src/contract/type/ArrayComparator.ts +15 -0
- package/src/contract/type/ComparatorOrchestrator.ts +16 -0
- package/src/contract/type/DiffService.ts +31 -0
- package/src/contract/type/JsonTypes.ts +3 -0
- package/src/contract/type/NullComparator.ts +9 -0
- package/src/contract/type/ObjectComparator.ts +15 -0
- package/src/contract/type/OtherComparator.ts +14 -0
- package/src/contract/type/PrimitiveComparator.ts +13 -0
- package/src/contract/type/Result.ts +7 -0
- package/src/contract/type/SingleNodeDifference.ts +13 -0
- package/src/contract/type/index.ts +10 -0
- package/src/index.ts +17 -0
- package/src/service/comparator/ComparatorOrchestrator.ts +50 -0
- package/src/service/comparator/array/AbstractArray.ts +34 -0
- package/src/service/comparator/array/SequentialArrayComparator.test.ts +46 -0
- package/src/service/comparator/array/SequentialArrayComparator.ts +48 -0
- package/src/service/comparator/array/SimilarArrayComparator.test.ts +37 -0
- package/src/service/comparator/array/SimilarArrayComparator.ts +211 -0
- package/src/service/comparator/array/index.ts +3 -0
- package/src/service/comparator/index.ts +6 -0
- package/src/service/comparator/nulls/DefaultNullComparator.test.ts +38 -0
- package/src/service/comparator/nulls/DefaultNullComparator.ts +9 -0
- package/src/service/comparator/nulls/index.ts +1 -0
- package/src/service/comparator/object/AbstractObject.ts +102 -0
- package/src/service/comparator/object/LeftJoinObjectComparator.test.ts +71 -0
- package/src/service/comparator/object/LeftJoinObjectComparator.ts +18 -0
- package/src/service/comparator/object/UnionKeyObjectComparator.test.ts +20 -0
- package/src/service/comparator/object/UnionKeyObjectComparator.ts +19 -0
- package/src/service/comparator/object/index.ts +3 -0
- package/src/service/comparator/other/DefaultOtherComparator.test.ts +48 -0
- package/src/service/comparator/other/DefaultOtherComparator.ts +23 -0
- package/src/service/comparator/other/index.ts +1 -0
- package/src/service/comparator/primitive/DefaultPrimitiveComparator.test.ts +50 -0
- package/src/service/comparator/primitive/DefaultPrimitiveComparator.ts +27 -0
- package/src/service/comparator/primitive/index.ts +1 -0
- package/src/service/diff/Diff.test.ts +113 -0
- package/src/service/diff/DiffContext.ts +37 -0
- package/src/service/diff/DiffService.test.ts +292 -0
- package/src/service/diff/DiffService.ts +245 -0
- package/src/service/diff/PathTracker.ts +71 -0
- package/src/service/diff/index.ts +1 -0
- package/src/service/index.ts +2 -0
- package/src/util/TypeGuards.test.ts +90 -0
- package/src/util/TypeGuards.ts +33 -0
- package/src/util/index.ts +1 -0
- package/tsconfig.json +11 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComparatorOrchestrator.js","sourceRoot":"","sources":["../../../src/service/comparator/ComparatorOrchestrator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAGL,iBAAiB,IAAI,sBAAsB,EAE3C,gBAAgB,IAAI,qBAAqB,EAEzC,oBAAoB,IAAI,yBAAyB,EAEjD,eAAe,IAAI,oBAAoB,EAEvC,gBAAgB,IAAI,qBAAqB,GAE1C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7E,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEW;IACD;IACI;IACL;IACC;IAL3C,YAC4C,gBAAmC,EACpC,eAAiC,EAC7B,mBAAyC,EAC9C,cAA+B,EAC9B,eAAiC;QAJhC,qBAAgB,GAAhB,gBAAgB,CAAmB;QACpC,oBAAe,GAAf,eAAe,CAAkB;QAC7B,wBAAmB,GAAnB,mBAAmB,CAAsB;QAC9C,mBAAc,GAAd,cAAc,CAAiB;QAC9B,oBAAe,GAAf,eAAe,CAAkB;IACzE,CAAC;IAEJ,WAAW,CACT,CAAwB,EACxB,CAAwB,EACxB,WAAwB;QAExB,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF,CAAA;AA9BY,sBAAsB;IAE9B,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;IAC9B,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;IACjC,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;GANrB,sBAAsB,CA8BlC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IArrayComparator, IComparatorOrchestrator, JsonArray, JsonValue } from "../../../contract/type";
|
|
2
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
3
|
+
import type { PathTracker } from "../../diff/PathTracker";
|
|
4
|
+
export declare abstract class AbstractArray implements IArrayComparator {
|
|
5
|
+
protected orchestrator: IComparatorOrchestrator;
|
|
6
|
+
constructor(orchestrator: IComparatorOrchestrator);
|
|
7
|
+
abstract diffArray(a: JsonArray, b: JsonArray, pathTracker: PathTracker): DiffContext;
|
|
8
|
+
diffElement(a: JsonValue | undefined, b: JsonValue | undefined, pathTracker: PathTracker): DiffContext;
|
|
9
|
+
protected parentContextAddChildContext(parentResult: DiffContext, childResult: DiffContext): void;
|
|
10
|
+
protected constructArrayPath(i: number): string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=AbstractArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractArray.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/array/AbstractArray.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE9G,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,8BAAsB,aAAc,YAAW,gBAAgB;IAErB,SAAS,CAAC,YAAY,EAAE,uBAAuB;gBAArC,YAAY,EAAE,uBAAuB;IAGvF,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAErF,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAItG,SAAS,CAAC,4BAA4B,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IASjG,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAMhD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject } from "@wendellhu/redi";
|
|
11
|
+
import { IComparatorOrchestrator as IComparatorOrchestratorToken } from "../../../contract/type";
|
|
12
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
13
|
+
import { DIFFERENT } from "../../../contract/constant";
|
|
14
|
+
let AbstractArray = class AbstractArray {
|
|
15
|
+
orchestrator;
|
|
16
|
+
constructor(orchestrator) {
|
|
17
|
+
this.orchestrator = orchestrator;
|
|
18
|
+
}
|
|
19
|
+
diffElement(a, b, pathTracker) {
|
|
20
|
+
return this.orchestrator.diffElement(a, b, pathTracker);
|
|
21
|
+
}
|
|
22
|
+
parentContextAddChildContext(parentResult, childResult) {
|
|
23
|
+
if (childResult.isSame() === DIFFERENT) {
|
|
24
|
+
for (const singleNodeDifference of childResult.getDiffResultModels()) {
|
|
25
|
+
parentResult.getDiffResultModels().push(singleNodeDifference);
|
|
26
|
+
}
|
|
27
|
+
parentResult.setSame(false);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
constructArrayPath(i) {
|
|
31
|
+
if (i === null || i === undefined || i < 0) {
|
|
32
|
+
throw new Error("数组索引号入参为空或者为负。 入参:" + i);
|
|
33
|
+
}
|
|
34
|
+
return "[" + i + "]";
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
AbstractArray = __decorate([
|
|
38
|
+
__param(0, Inject(IComparatorOrchestratorToken))
|
|
39
|
+
], AbstractArray);
|
|
40
|
+
export { AbstractArray };
|
|
41
|
+
//# sourceMappingURL=AbstractArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractArray.js","sourceRoot":"","sources":["../../../../src/service/comparator/array/AbstractArray.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,uBAAuB,IAAI,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEhD,IAAe,aAAa,GAA5B,MAAe,aAAa;IAEiB;IADlD,YACkD,YAAqC;QAArC,iBAAY,GAAZ,YAAY,CAAyB;IACpF,CAAC;IAIJ,WAAW,CAAC,CAAwB,EAAE,CAAwB,EAAE,WAAwB;QACtF,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAES,4BAA4B,CAAC,YAAyB,EAAE,WAAwB;QACxF,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,SAAS,EAAE,CAAC;YACvC,KAAK,MAAM,oBAAoB,IAAI,WAAW,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACrE,YAAY,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAChE,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,kBAAkB,CAAC,CAAS;QACpC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACvB,CAAC;CACF,CAAA;AA1BqB,aAAa;IAE9B,WAAA,MAAM,CAAC,4BAA4B,CAAC,CAAA;GAFnB,aAAa,CA0BlC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractArray } from "./AbstractArray";
|
|
2
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
3
|
+
import type { PathTracker } from "../../diff/PathTracker";
|
|
4
|
+
import type { JsonArray, IComparatorOrchestrator } from "../../../contract/type";
|
|
5
|
+
export declare class SequentialArrayComparator extends AbstractArray {
|
|
6
|
+
constructor(orchestrator: IComparatorOrchestrator);
|
|
7
|
+
diffArray(a: JsonArray, b: JsonArray, pathTracker: PathTracker): DiffContext;
|
|
8
|
+
private generateDiffResult;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=SequentialArrayComparator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SequentialArrayComparator.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/array/SequentialArrayComparator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGjF,qBAAa,yBAA0B,SAAQ,aAAa;gBAElB,YAAY,EAAE,uBAAuB;IAK7E,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAa5E,OAAO,CAAC,kBAAkB;CAoB3B"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject } from "@wendellhu/redi";
|
|
11
|
+
import { AbstractArray } from "./AbstractArray";
|
|
12
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
13
|
+
import { IComparatorOrchestrator as IComparatorOrchestratorToken } from "../../../contract/type";
|
|
14
|
+
let SequentialArrayComparator = class SequentialArrayComparator extends AbstractArray {
|
|
15
|
+
constructor(orchestrator) {
|
|
16
|
+
super(orchestrator);
|
|
17
|
+
}
|
|
18
|
+
diffArray(a, b, pathTracker) {
|
|
19
|
+
const arrayDiffContext = new DiffContext();
|
|
20
|
+
const maxLength = Math.max(a.length, b.length);
|
|
21
|
+
for (let i = 0; i < maxLength; i++) {
|
|
22
|
+
pathTracker.addAllpath(this.constructArrayPath(i));
|
|
23
|
+
const diffContext = this.generateDiffResult(a, b, i, pathTracker);
|
|
24
|
+
this.parentContextAddChildContext(arrayDiffContext, diffContext);
|
|
25
|
+
pathTracker.removeAllLastPath();
|
|
26
|
+
}
|
|
27
|
+
return arrayDiffContext;
|
|
28
|
+
}
|
|
29
|
+
generateDiffResult(a, b, i, pathTracker) {
|
|
30
|
+
if (i >= a.length && i >= b.length) {
|
|
31
|
+
throw new Error("数组索引号入参超过数组长度。 索引号:" + i + " 数组a:" + a + "数组b:" + b);
|
|
32
|
+
}
|
|
33
|
+
let diffContext;
|
|
34
|
+
if (i < a.length && i < b.length) {
|
|
35
|
+
diffContext = this.diffElement(a[i], b[i], pathTracker);
|
|
36
|
+
}
|
|
37
|
+
else if (i >= a.length) {
|
|
38
|
+
diffContext = this.diffElement(undefined, b[i], pathTracker);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
diffContext = this.diffElement(a[i], undefined, pathTracker);
|
|
42
|
+
}
|
|
43
|
+
return diffContext;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
SequentialArrayComparator = __decorate([
|
|
47
|
+
__param(0, Inject(IComparatorOrchestratorToken))
|
|
48
|
+
], SequentialArrayComparator);
|
|
49
|
+
export { SequentialArrayComparator };
|
|
50
|
+
//# sourceMappingURL=SequentialArrayComparator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SequentialArrayComparator.js","sourceRoot":"","sources":["../../../../src/service/comparator/array/SequentialArrayComparator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,uBAAuB,IAAI,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAE1F,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,aAAa;IAC1D,YACwC,YAAqC;QAE3E,KAAK,CAAC,YAAY,CAAC,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,CAAY,EAAE,CAAY,EAAE,WAAwB;QAC5D,MAAM,gBAAgB,GAAG,IAAI,WAAW,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;YAClE,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;YACjE,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,kBAAkB,CACxB,CAAY,EACZ,CAAY,EACZ,CAAS,EACT,WAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,WAAwB,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACjC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACzB,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAA;AAxCY,yBAAyB;IAEjC,WAAA,MAAM,CAAC,4BAA4B,CAAC,CAAA;GAF5B,yBAAyB,CAwCrC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AbstractArray } from "./AbstractArray";
|
|
2
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
3
|
+
import type { PathTracker } from "../../diff/PathTracker";
|
|
4
|
+
import type { JsonArray, IComparatorOrchestrator } from "../../../contract/type";
|
|
5
|
+
export declare class SimilarArrayComparator extends AbstractArray {
|
|
6
|
+
private readonly USEABLE;
|
|
7
|
+
private readonly USED;
|
|
8
|
+
constructor(orchestrator: IComparatorOrchestrator);
|
|
9
|
+
diffArray(a: JsonArray, b: JsonArray, pathTracker: PathTracker): DiffContext;
|
|
10
|
+
private exchangeResult;
|
|
11
|
+
private exchangePathAndResult;
|
|
12
|
+
private exchangeLeftAndRightPath;
|
|
13
|
+
diff(a: JsonArray, b: JsonArray, pathTracker: PathTracker): DiffContext;
|
|
14
|
+
private obtainDiffResult;
|
|
15
|
+
private obtainAddDiffResult;
|
|
16
|
+
private obtainModifyDiffResult;
|
|
17
|
+
private constructAddContext;
|
|
18
|
+
private constructModifyContext;
|
|
19
|
+
private constructSimilarMatrix;
|
|
20
|
+
private existSpecialPath;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=SimilarArrayComparator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimilarArrayComparator.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/array/SimilarArrayComparator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGjF,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;gBAGW,YAAY,EAAE,uBAAuB;IAK7E,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAc5E,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,wBAAwB;IAMhC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAmBvE,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,sBAAsB;IAkC9B,OAAO,CAAC,gBAAgB;CAGzB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject } from "@wendellhu/redi";
|
|
11
|
+
import { AbstractArray } from "./AbstractArray";
|
|
12
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
13
|
+
import { SingleNodeDifference, IComparatorOrchestrator as IComparatorOrchestratorToken } from "../../../contract/type";
|
|
14
|
+
let SimilarArrayComparator = class SimilarArrayComparator extends AbstractArray {
|
|
15
|
+
USEABLE = false;
|
|
16
|
+
USED = true;
|
|
17
|
+
constructor(orchestrator) {
|
|
18
|
+
super(orchestrator);
|
|
19
|
+
}
|
|
20
|
+
diffArray(a, b, pathTracker) {
|
|
21
|
+
let diffContext;
|
|
22
|
+
if (a.length <= b.length) {
|
|
23
|
+
diffContext = this.diff(a, b, pathTracker);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.exchangeLeftAndRightPath(pathTracker);
|
|
27
|
+
diffContext = this.diff(b, a, pathTracker);
|
|
28
|
+
this.exchangeLeftAndRightPath(pathTracker);
|
|
29
|
+
this.exchangeResult(diffContext);
|
|
30
|
+
}
|
|
31
|
+
return diffContext;
|
|
32
|
+
}
|
|
33
|
+
exchangeResult(diffContext) {
|
|
34
|
+
const singleNodeDifferences = diffContext.getDiffResultModels();
|
|
35
|
+
for (const singleNodeDifference of singleNodeDifferences) {
|
|
36
|
+
this.exchangePathAndResult(singleNodeDifference);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exchangePathAndResult(singleNodeDifference) {
|
|
40
|
+
const tempStringA = singleNodeDifference.leftPath;
|
|
41
|
+
const tempLeft = singleNodeDifference.left;
|
|
42
|
+
singleNodeDifference.leftPath = singleNodeDifference.rightPath;
|
|
43
|
+
singleNodeDifference.rightPath = tempStringA;
|
|
44
|
+
singleNodeDifference.left = singleNodeDifference.right;
|
|
45
|
+
singleNodeDifference.right = tempLeft;
|
|
46
|
+
}
|
|
47
|
+
exchangeLeftAndRightPath(pathTracker) {
|
|
48
|
+
const tempA = pathTracker.getLeftPath();
|
|
49
|
+
pathTracker.setLeftPath(pathTracker.getRightPath());
|
|
50
|
+
pathTracker.setRightPath(tempA);
|
|
51
|
+
}
|
|
52
|
+
diff(a, b, pathTracker) {
|
|
53
|
+
const rowlength = a.length;
|
|
54
|
+
const linelength = b.length;
|
|
55
|
+
const similarMatrix = Array.from({ length: rowlength }, () => Array(linelength).fill(0));
|
|
56
|
+
const row = Array(rowlength).fill(false);
|
|
57
|
+
const line = Array(linelength).fill(false);
|
|
58
|
+
for (let i = 0; i < rowlength; i++) {
|
|
59
|
+
pathTracker.addLeftPath(this.constructArrayPath(i));
|
|
60
|
+
this.constructSimilarMatrix(a, b, i, pathTracker, similarMatrix, row, line);
|
|
61
|
+
pathTracker.removeLastLeftPath();
|
|
62
|
+
}
|
|
63
|
+
return this.obtainDiffResult(a, b, pathTracker, row, line, similarMatrix);
|
|
64
|
+
}
|
|
65
|
+
obtainDiffResult(a, b, pathTracker, row, line, similarMatrix) {
|
|
66
|
+
const arrayDiffContext = new DiffContext();
|
|
67
|
+
this.obtainModifyDiffResult(a, b, pathTracker, row, line, similarMatrix, arrayDiffContext);
|
|
68
|
+
this.obtainAddDiffResult(b, pathTracker, line, arrayDiffContext);
|
|
69
|
+
return arrayDiffContext;
|
|
70
|
+
}
|
|
71
|
+
obtainAddDiffResult(b, pathTracker, line, arrayDiffContext) {
|
|
72
|
+
for (let j = 0; j < line.length; j++) {
|
|
73
|
+
if (line[j] === this.USED) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const addOrDeleteDiffContext = this.constructAddContext(b, j, pathTracker);
|
|
77
|
+
this.parentContextAddChildContext(arrayDiffContext, addOrDeleteDiffContext);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
obtainModifyDiffResult(a, b, pathTracker, row, line, similarMatrix, arrayDiffContext) {
|
|
81
|
+
let counts = 0;
|
|
82
|
+
for (const value of row) {
|
|
83
|
+
if (value === this.USEABLE) {
|
|
84
|
+
counts++;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
for (let n = 0; n < counts; n++) {
|
|
88
|
+
let bestLineIndex = 0;
|
|
89
|
+
let bestRowIndex = 0;
|
|
90
|
+
let minDiffPair = Number.MAX_SAFE_INTEGER;
|
|
91
|
+
for (let i = 0; i < row.length; i++) {
|
|
92
|
+
for (let j = 0; j < line.length; j++) {
|
|
93
|
+
if (row[i] === this.USED || line[j] === this.USED) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (similarMatrix[i][j] < minDiffPair) {
|
|
97
|
+
bestRowIndex = i;
|
|
98
|
+
bestLineIndex = j;
|
|
99
|
+
minDiffPair = similarMatrix[i][j];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const modifyDiffContext = this.constructModifyContext(a, b, bestRowIndex, bestLineIndex, pathTracker);
|
|
104
|
+
row[bestRowIndex] = this.USED;
|
|
105
|
+
line[bestLineIndex] = this.USED;
|
|
106
|
+
this.parentContextAddChildContext(arrayDiffContext, modifyDiffContext);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
constructAddContext(b, index, pathTracker) {
|
|
110
|
+
pathTracker.addAllpath(this.constructArrayPath(index));
|
|
111
|
+
const diffContext = this.diffElement(undefined, b[index], pathTracker);
|
|
112
|
+
pathTracker.removeAllLastPath();
|
|
113
|
+
return diffContext;
|
|
114
|
+
}
|
|
115
|
+
constructModifyContext(a, b, i, bestLineIndex, pathTracker) {
|
|
116
|
+
pathTracker.addLeftPath(this.constructArrayPath(i));
|
|
117
|
+
pathTracker.addRightPath(this.constructArrayPath(bestLineIndex));
|
|
118
|
+
const diffContext = this.diffElement(a[i], b[bestLineIndex], pathTracker);
|
|
119
|
+
pathTracker.removeAllLastPath();
|
|
120
|
+
return diffContext;
|
|
121
|
+
}
|
|
122
|
+
constructSimilarMatrix(arrayA, arrayB, rowIndex, pathTracker, similarArray, row, line) {
|
|
123
|
+
if (rowIndex < 0 || rowIndex >= arrayB.length) {
|
|
124
|
+
throw new Error("索引号入参超出数组长度。 索引号:" + rowIndex + " 数组B:" + JSON.stringify(arrayB));
|
|
125
|
+
}
|
|
126
|
+
for (let j = 0; j < arrayB.length; j++) {
|
|
127
|
+
if (line[j] === this.USEABLE) {
|
|
128
|
+
pathTracker.addRightPath(this.constructArrayPath(j));
|
|
129
|
+
const diffContext = this.diffElement(arrayA[rowIndex], arrayB[j], pathTracker);
|
|
130
|
+
pathTracker.removeLastRightPath();
|
|
131
|
+
if (diffContext.isSame()) {
|
|
132
|
+
row[rowIndex] = this.USED;
|
|
133
|
+
line[j] = this.USED;
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
else if (this.existSpecialPath(diffContext.getSpecialPathResult())) {
|
|
137
|
+
similarArray[rowIndex][j] = 0;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
similarArray[rowIndex][j] = diffContext.getDiffResultModels().length;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
existSpecialPath(specialPathResult) {
|
|
146
|
+
return specialPathResult !== null && specialPathResult.length > 0;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
SimilarArrayComparator = __decorate([
|
|
150
|
+
__param(0, Inject(IComparatorOrchestratorToken))
|
|
151
|
+
], SimilarArrayComparator);
|
|
152
|
+
export { SimilarArrayComparator };
|
|
153
|
+
//# sourceMappingURL=SimilarArrayComparator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimilarArrayComparator.js","sourceRoot":"","sources":["../../../../src/service/comparator/array/SimilarArrayComparator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/array/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/service/comparator/array/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/comparator/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/comparator/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { INullComparator } from "../../../contract/type";
|
|
2
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
3
|
+
import type { PathTracker } from "../../diff/PathTracker";
|
|
4
|
+
export declare class DefaultNullComparator implements INullComparator {
|
|
5
|
+
diff(_a: null, _b: null, _pathTracker: PathTracker): DiffContext;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DefaultNullComparator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultNullComparator.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/nulls/DefaultNullComparator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,GAAG,WAAW;CAGjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultNullComparator.js","sourceRoot":"","sources":["../../../../src/service/comparator/nulls/DefaultNullComparator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,OAAO,qBAAqB;IAChC,IAAI,CAAC,EAAQ,EAAE,EAAQ,EAAE,YAAyB;QAChD,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/nulls/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/service/comparator/nulls/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IObjectComparator, IComparatorOrchestrator, JsonObject, JsonValue } from "../../../contract/type";
|
|
2
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
3
|
+
import type { PathTracker } from "../../diff/PathTracker";
|
|
4
|
+
export declare abstract class AbstractObject implements IObjectComparator {
|
|
5
|
+
protected orchestrator: IComparatorOrchestrator;
|
|
6
|
+
constructor(orchestrator: IComparatorOrchestrator);
|
|
7
|
+
abstract diff(a: JsonObject, b: JsonObject, pathTracker: PathTracker): DiffContext;
|
|
8
|
+
diffElement(a: JsonValue | undefined, b: JsonValue | undefined, pathTracker: PathTracker): DiffContext;
|
|
9
|
+
protected parentContextAddChildContext(parentResult: DiffContext, childResult: DiffContext): void;
|
|
10
|
+
protected diffValueByKey(a: JsonObject, b: JsonObject, keySet: Set<string>, pathTracker: PathTracker): DiffContext;
|
|
11
|
+
private specialPathHandle;
|
|
12
|
+
private existPath;
|
|
13
|
+
protected getSpecialPath(pathTracker: PathTracker): string | null;
|
|
14
|
+
protected needDiff(noisePahList: string[] | null, pathList: string[]): boolean;
|
|
15
|
+
protected listJoin(path: string[]): string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=AbstractObject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractObject.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/object/AbstractObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEhH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,8BAAsB,cAAe,YAAW,iBAAiB;IAEvB,SAAS,CAAC,YAAY,EAAE,uBAAuB;gBAArC,YAAY,EAAE,uBAAuB;IAGvF,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAElF,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAItG,SAAS,CAAC,4BAA4B,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IASjG,SAAS,CAAC,cAAc,CACtB,CAAC,EAAE,UAAU,EACb,CAAC,EAAE,UAAU,EACb,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EACnB,WAAW,EAAE,WAAW,GACvB,WAAW;IAsBd,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,SAAS;IAIjB,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAWjE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAW9E,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM;CAO3C"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject } from "@wendellhu/redi";
|
|
11
|
+
import { IComparatorOrchestrator as IComparatorOrchestratorToken } from "../../../contract/type";
|
|
12
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
13
|
+
import { DIFFERENT, MERGE_PATH } from "../../../contract/constant";
|
|
14
|
+
let AbstractObject = class AbstractObject {
|
|
15
|
+
orchestrator;
|
|
16
|
+
constructor(orchestrator) {
|
|
17
|
+
this.orchestrator = orchestrator;
|
|
18
|
+
}
|
|
19
|
+
diffElement(a, b, pathTracker) {
|
|
20
|
+
return this.orchestrator.diffElement(a, b, pathTracker);
|
|
21
|
+
}
|
|
22
|
+
parentContextAddChildContext(parentResult, childResult) {
|
|
23
|
+
if (childResult.isSame() === DIFFERENT) {
|
|
24
|
+
for (const singleNodeDifference of childResult.getDiffResultModels()) {
|
|
25
|
+
parentResult.getDiffResultModels().push(singleNodeDifference);
|
|
26
|
+
}
|
|
27
|
+
parentResult.setSame(false);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
diffValueByKey(a, b, keySet, pathTracker) {
|
|
31
|
+
const objectDiffContext = new DiffContext();
|
|
32
|
+
const specialPathResult = [];
|
|
33
|
+
for (const key of keySet) {
|
|
34
|
+
pathTracker.addAllpath(key);
|
|
35
|
+
if (!this.needDiff(pathTracker.getNoisePahList(), pathTracker.getLeftPath())) {
|
|
36
|
+
pathTracker.removeAllLastPath();
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const diffContext = this.diffElement(a[key], b[key], pathTracker);
|
|
40
|
+
this.parentContextAddChildContext(objectDiffContext, diffContext);
|
|
41
|
+
this.specialPathHandle(diffContext.isSame(), specialPathResult, pathTracker);
|
|
42
|
+
pathTracker.removeAllLastPath();
|
|
43
|
+
}
|
|
44
|
+
objectDiffContext.setSpecialPathResult(specialPathResult);
|
|
45
|
+
return objectDiffContext;
|
|
46
|
+
}
|
|
47
|
+
specialPathHandle(isSame, specialPathResult, pathTracker) {
|
|
48
|
+
if (!isSame) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const specialPath = this.getSpecialPath(pathTracker);
|
|
52
|
+
if (this.existPath(specialPath)) {
|
|
53
|
+
specialPathResult.push(specialPath);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
existPath(specialPath) {
|
|
57
|
+
return specialPath !== null;
|
|
58
|
+
}
|
|
59
|
+
getSpecialPath(pathTracker) {
|
|
60
|
+
if (!pathTracker || !pathTracker.getSpecialPath() || pathTracker.getSpecialPath().length === 0) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const currentPath = this.listJoin(pathTracker.getLeftPath());
|
|
64
|
+
if (pathTracker.getSpecialPath().includes(currentPath)) {
|
|
65
|
+
return currentPath;
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
needDiff(noisePahList, pathList) {
|
|
70
|
+
if (!noisePahList || !pathList || noisePahList.length === 0 || pathList.length === 0) {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
const path = this.listJoin(pathList);
|
|
74
|
+
if (noisePahList.includes(path)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
listJoin(path) {
|
|
80
|
+
if (!path) {
|
|
81
|
+
throw new Error("当前路径不能为空");
|
|
82
|
+
}
|
|
83
|
+
const filtered = path.filter((e) => e.charAt(0) !== "[");
|
|
84
|
+
return filtered.join(MERGE_PATH);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
AbstractObject = __decorate([
|
|
88
|
+
__param(0, Inject(IComparatorOrchestratorToken))
|
|
89
|
+
], AbstractObject);
|
|
90
|
+
export { AbstractObject };
|
|
91
|
+
//# sourceMappingURL=AbstractObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractObject.js","sourceRoot":"","sources":["../../../../src/service/comparator/object/AbstractObject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AbstractObject } from "./AbstractObject";
|
|
2
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
3
|
+
import type { PathTracker } from "../../diff/PathTracker";
|
|
4
|
+
import { type JsonObject, IComparatorOrchestrator } from "#contract";
|
|
5
|
+
export declare class LeftJoinObjectComparator extends AbstractObject {
|
|
6
|
+
constructor(orchestrator: IComparatorOrchestrator);
|
|
7
|
+
diff(a: JsonObject, b: JsonObject, pathTracker: PathTracker): DiffContext;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=LeftJoinObjectComparator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeftJoinObjectComparator.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/object/LeftJoinObjectComparator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,KAAK,UAAU,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGrE,qBAAa,wBAAyB,SAAQ,cAAc;gBAEvB,YAAY,EAAE,uBAAuB;IAKxE,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;CAG1E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject } from "@wendellhu/redi";
|
|
11
|
+
import { AbstractObject } from "./AbstractObject";
|
|
12
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
13
|
+
import { IComparatorOrchestrator } from "#contract";
|
|
14
|
+
let LeftJoinObjectComparator = class LeftJoinObjectComparator extends AbstractObject {
|
|
15
|
+
constructor(orchestrator) {
|
|
16
|
+
super(orchestrator);
|
|
17
|
+
}
|
|
18
|
+
diff(a, b, pathTracker) {
|
|
19
|
+
return this.diffValueByKey(a, b, new Set(Object.keys(a)), pathTracker);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
LeftJoinObjectComparator = __decorate([
|
|
23
|
+
__param(0, Inject(IComparatorOrchestrator))
|
|
24
|
+
], LeftJoinObjectComparator);
|
|
25
|
+
export { LeftJoinObjectComparator };
|
|
26
|
+
//# sourceMappingURL=LeftJoinObjectComparator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeftJoinObjectComparator.js","sourceRoot":"","sources":["../../../../src/service/comparator/object/LeftJoinObjectComparator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAmB,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAG9D,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,cAAc;IAC1D,YACmC,YAAqC;QAEtE,KAAK,CAAC,YAAY,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,CAAa,EAAE,CAAa,EAAE,WAAwB;QACzD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;CACF,CAAA;AAVY,wBAAwB;IAEhC,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;GAFvB,wBAAwB,CAUpC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AbstractObject } from "./AbstractObject";
|
|
2
|
+
import { DiffContext } from "../../diff/DiffContext";
|
|
3
|
+
import type { PathTracker } from "../../diff/PathTracker";
|
|
4
|
+
import type { JsonObject, IComparatorOrchestrator } from "../../../contract/type";
|
|
5
|
+
export declare class UnionKeyObjectComparator extends AbstractObject {
|
|
6
|
+
constructor(orchestrator: IComparatorOrchestrator);
|
|
7
|
+
diff(a: JsonObject, b: JsonObject, pathTracker: PathTracker): DiffContext;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=UnionKeyObjectComparator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnionKeyObjectComparator.d.ts","sourceRoot":"","sources":["../../../../src/service/comparator/object/UnionKeyObjectComparator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,qBAAa,wBAAyB,SAAQ,cAAc;gBAElB,YAAY,EAAE,uBAAuB;IAK7E,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;CAI1E"}
|