@lionweb/json-diff 0.7.0-beta.9 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LionWebJsonDiff.d.ts.map +1 -1
- package/dist/LionWebJsonDiff.js +7 -6
- package/dist/LionWebJsonDiff.js.map +1 -1
- package/dist/changes/PropertyChange.d.ts.map +1 -1
- package/dist/changes/PropertyChange.js +2 -1
- package/dist/changes/PropertyChange.js.map +1 -1
- package/package.json +32 -31
- package/src/DiffResult.ts +21 -0
- package/src/LionWebJsonDiff.ts +309 -0
- package/src/changes/Change.ts +76 -0
- package/src/changes/ChunkChange.ts +68 -0
- package/src/changes/ContainmentChange.ts +31 -0
- package/src/changes/NodeChange.ts +62 -0
- package/src/changes/PropertyChange.ts +36 -0
- package/src/changes/ReferenceChange.ts +33 -0
- package/src/changes/index.ts +6 -0
- package/src/index.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LionWebJsonDiff.d.ts","sourceRoot":"","sources":["../src/LionWebJsonDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EAEf,oBAAoB,EAGvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAc,WAAW,EAAa,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"LionWebJsonDiff.d.ts","sourceRoot":"","sources":["../src/LionWebJsonDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EAEf,oBAAoB,EAGvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAc,WAAW,EAAa,MAAM,qBAAqB,CAAA;AAExE,OAAO,EAAE,MAAM,EAA0B,MAAM,qBAAqB,CAAA;AAMpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;GAEG;AACH,qBAAa,eAAe;IACxB,UAAU,aAAmB;;IAI7B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM;IAKlC;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAkH3F,WAAW,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IA4C9E,eAAe,CACX,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,eAAe,EACrB,iBAAiB,EAAE,sBAAsB,EACzC,gBAAgB,EAAE,sBAAsB,GACzC,IAAI;IAmCP,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IA4C/H,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;CAiBzB"}
|
package/dist/LionWebJsonDiff.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isEqualMetaPointer, isEqualReferenceTarget } from "@lionweb/json";
|
|
2
2
|
import { ChunkUtils, JsonContext, NodeUtils } from "@lionweb/json-utils";
|
|
3
|
+
import { asMinimalJsonString } from "@lionweb/ts-utils";
|
|
3
4
|
import { GenericChange, Missing } from "./changes/Change.js";
|
|
4
5
|
import { LanguageAdded, LanguageRemoved, NodeAdded, NodeRemoved, SerializationFormatChange } from "./changes/ChunkChange.js";
|
|
5
6
|
import { ChildAdded, ChildOrderChanged, ChildRemoved } from "./changes/ContainmentChange.js";
|
|
@@ -166,7 +167,7 @@ export class LionWebJsonDiff {
|
|
|
166
167
|
diffContainment(ctx, node, beforeContainment, afterContainment) {
|
|
167
168
|
if (!isEqualMetaPointer(beforeContainment.containment, afterContainment.containment)) {
|
|
168
169
|
console.error("diffContainment: MetaPointers of containments should be identical");
|
|
169
|
-
this.diff(ctx, `Containment Object has concept ${
|
|
170
|
+
this.diff(ctx, `Containment Object has concept ${asMinimalJsonString(beforeContainment.containment)} vs ${JSON.stringify(afterContainment.containment)}`);
|
|
170
171
|
}
|
|
171
172
|
// Check whether children exist in both objects (two for loops)
|
|
172
173
|
// TODO Also check for the order that can be changed!!!
|
|
@@ -195,7 +196,7 @@ export class LionWebJsonDiff {
|
|
|
195
196
|
diffLwReference(ctx, node, beforeRef, afterRef) {
|
|
196
197
|
if (!isEqualMetaPointer(beforeRef.reference, afterRef.reference)) {
|
|
197
198
|
console.error("diffContainment: MetaPointers of references should be identical");
|
|
198
|
-
this.diff(ctx, `Reference has concept ${
|
|
199
|
+
this.diff(ctx, `Reference has concept ${asMinimalJsonString(beforeRef.reference)} vs ${asMinimalJsonString(afterRef.reference)}`);
|
|
199
200
|
}
|
|
200
201
|
let diffFound = false;
|
|
201
202
|
beforeRef.targets.forEach((beforeTarget, index) => {
|
|
@@ -206,7 +207,7 @@ export class LionWebJsonDiff {
|
|
|
206
207
|
}
|
|
207
208
|
else {
|
|
208
209
|
if (!isEqualReferenceTarget(beforeTarget, afterTarget)) {
|
|
209
|
-
this.diff(ctx.concat("targets", index), `ERROR: reference target ${
|
|
210
|
+
this.diff(ctx.concat("targets", index), `ERROR: reference target ${asMinimalJsonString(beforeTarget)} vs ${asMinimalJsonString(afterTarget)}`);
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
213
|
});
|
|
@@ -218,7 +219,7 @@ export class LionWebJsonDiff {
|
|
|
218
219
|
}
|
|
219
220
|
else {
|
|
220
221
|
if (!isEqualReferenceTarget(beforeTarget, afterTarget)) {
|
|
221
|
-
this.diff(ctx.concat("targets", index), `ERROR: reference target ${
|
|
222
|
+
this.diff(ctx.concat("targets", index), `ERROR: reference target ${asMinimalJsonString(beforeTarget)} vs ${asMinimalJsonString(afterTarget)}`);
|
|
222
223
|
}
|
|
223
224
|
}
|
|
224
225
|
});
|
|
@@ -233,13 +234,13 @@ export class LionWebJsonDiff {
|
|
|
233
234
|
}
|
|
234
235
|
diffLwUsedLanguage(ctx, obj1, obj2) {
|
|
235
236
|
if (obj1.key !== obj2.key || obj1.version !== obj2.version) {
|
|
236
|
-
this.diff(ctx, `Different used languages ${
|
|
237
|
+
this.diff(ctx, `Different used languages ${asMinimalJsonString(obj1)} vs ${asMinimalJsonString(obj2)}`);
|
|
237
238
|
}
|
|
238
239
|
}
|
|
239
240
|
diffLwProperty(ctx, node, beforeProperty, afterProperty) {
|
|
240
241
|
if (!isEqualMetaPointer(beforeProperty.property, afterProperty.property)) {
|
|
241
242
|
console.error("diffContainment: MetaPointers of properties should be identical");
|
|
242
|
-
this.diff(ctx, `Property Object has concept ${
|
|
243
|
+
this.diff(ctx, `Property Object has concept ${asMinimalJsonString(beforeProperty.property)} vs ${asMinimalJsonString(afterProperty.property)}`);
|
|
243
244
|
}
|
|
244
245
|
if (beforeProperty.value !== afterProperty.value) {
|
|
245
246
|
this.change(new PropertyValueChanged(ctx, node.id, beforeProperty.property, beforeProperty.value, afterProperty.value));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LionWebJsonDiff.js","sourceRoot":"","sources":["../src/LionWebJsonDiff.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LionWebJsonDiff.js","sourceRoot":"","sources":["../src/LionWebJsonDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,sBAAsB,EAQzB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAU,aAAa,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAC5H,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC5F,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC/I,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;GAEG;AACH,MAAM,OAAO,eAAe;IAGxB;QAFA,eAAU,GAAG,IAAI,UAAU,EAAE,CAAA;IAEd,CAAC;IAEhB,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,CAAC,GAAgB,EAAE,GAAW;QAC9B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAgB,EAAE,UAA2B,EAAE,SAA0B;QAChF,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;QAC7H,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QACxF,CAAC;QACD,iDAAiD;QACjD,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,cAAmC,EAAE,KAAa,EAAE,EAAE;YACjF,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;YAChF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CACP,IAAI,oBAAoB,CACpB,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAC/B,UAAU,CAAC,EAAE,EACb,cAAc,CAAC,QAAQ,EACvB,cAAc,CAAC,KAAK,EACpB,IAAI,EACJ,OAAO,CAAC,YAAY,CACvB,CACJ,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;YACnG,CAAC;QACL,CAAC,CAAC,CAAA;QACF,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAkC,EAAE,KAAa,EAAE,EAAE;YAC/E,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;YACjF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CACP,IAAI,oBAAoB,CACpB,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAC/B,UAAU,CAAC,EAAE,EACb,aAAa,CAAC,QAAQ,EACtB,IAAI,EACJ,aAAa,CAAC,KAAK,EACnB,OAAO,CAAC,aAAa,CACxB,CACJ,CAAA;YACL,CAAC;YACD,0GAA0G;QAC9G,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,iBAAyC,EAAE,KAAa,EAAE,EAAE;YACzF,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAA;YACnD,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAClE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACjC,oFAAoF;gBACpF,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1C,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;wBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;oBAChK,CAAC,CAAC,CAAA;gBACN,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;YAC5G,CAAC;QACL,CAAC,CAAC,CAAA;QACF,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,gBAAwC,EAAE,KAAa,EAAE,EAAE;YACvF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAA;YACjD,MAAM,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YACnE,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;wBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;oBAC7J,CAAC,CAAC,CAAA;gBACN,CAAC;YACL,CAAC;YACD,iCAAiC;QACrC,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,eAAqC,EAAE,KAAa,EAAE,EAAE;YACnF,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;YACpF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;oBAC7I,CAAC,CAAC,CAAA;gBACN,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;YACtG,CAAC;QACL,CAAC,CAAC,CAAA;QACF,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,cAAoC,EAAE,KAAa,EAAE,EAAE;YACjF,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;YACpF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;oBAC5I,CAAC,CAAC,CAAA;gBACN,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAA;QACF,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9E,IAAI,mBAAmB,GAAG,KAAK,CAAA;YAC/B,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;gBAChE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7C,mBAAmB,GAAG,IAAI,CAAA;oBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;gBACpF,CAAC;YACL,CAAC,CAAC,CAAA;YACF,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;gBAC9D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,mBAAmB,GAAG,IAAI,CAAA;oBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;gBACjF,CAAC;YACL,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5D,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzD,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;wBAChG,MAAK;oBACT,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,WAAW,CAAC,WAA6B,EAAE,UAA4B;QACnE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QACxC,IAAI,WAAW,CAAC,0BAA0B,KAAK,UAAU,CAAC,0BAA0B,EAAE,CAAC;YACnF,IAAI,CAAC,MAAM,CACP,IAAI,yBAAyB,CACzB,GAAG,CAAC,MAAM,CAAC,4BAA4B,CAAC,EACxC,WAAW,CAAC,0BAA0B,EACtC,UAAU,CAAC,0BAA0B,CACxC,CACJ,CAAA;QACL,CAAC;QACD,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,cAAuC,EAAE,KAAa,EAAE,EAAE;YACrF,MAAM,aAAa,GAAG,UAAU,CAAC,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;YACnF,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;YAC1F,CAAC;QACL,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAsC,EAAE,KAAa,EAAE,EAAE;YACnF,MAAM,cAAc,GAAG,UAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;YACpF,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;YACjF,CAAC;QACL,CAAC,CAAC,CAAA;QACF,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAA2B,EAAE,KAAa,EAAE,EAAE;YACrE,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAA;YAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACzC,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YAClD,CAAC;QACL,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAA0B,EAAE,KAAa,EAAE,EAAE;YACnE,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,CAAA;YAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC5D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;YACrE,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,eAAe,CACX,GAAgB,EAChB,IAAqB,EACrB,iBAAyC,EACzC,gBAAwC;QAExC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;YACnF,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;YAClF,IAAI,CAAC,IAAI,CACL,GAAG,EACH,kCAAkC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,SAAS,CACrG,gBAAgB,CAAC,WAAW,CAC/B,EAAE,CACN,CAAA;QACL,CAAC;QACD,+DAA+D;QAC/D,uDAAuD;QACvD,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/C,WAAW,GAAG,IAAI,CAAA;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;YACtG,CAAC;QACL,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,WAAW,GAAG,IAAI,CAAA;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;YACpG,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjE,IAAI,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;oBACpH,MAAK;gBACT,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAgB,EAAE,IAAqB,EAAE,SAA+B,EAAE,QAA8B;QACpH,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAA;YAChF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAyB,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACrI,CAAC;QACD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAwC,EAAE,KAAa,EAAE,EAAE;YAClF,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YACjF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;gBACrG,SAAS,GAAG,IAAI,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,IAAI,CACL,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAC5B,2BAA2B,mBAAmB,CAAC,YAAY,CAAC,OAAO,mBAAmB,CAAC,WAAW,CAAC,EAAE,CACxG,CAAA;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAA;QACF,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAuC,EAAE,KAAa,EAAE,EAAE;YAChF,MAAM,YAAY,GAAG,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YAClF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;gBAClG,SAAS,GAAG,IAAI,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,IAAI,CACL,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAC5B,2BAA2B,mBAAmB,CAAC,YAAY,CAAC,OAAO,mBAAmB,CAAC,WAAW,CAAC,EAAE,CACxG,CAAA;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrE,IAAI,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3G,MAAK;gBACT,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,GAAgB,EAAE,IAA6B,EAAE,IAA6B;QACrG,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,mBAAmB,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3G,CAAC;IACL,CAAC;IAEO,cAAc,CAClB,GAAgB,EAChB,IAAqB,EACrB,cAAmC,EACnC,aAAkC;QAElC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAA;YAChF,IAAI,CAAC,IAAI,CACL,GAAG,EACH,+BAA+B,mBAAmB,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAClI,CAAA;QACL,CAAC;QACD,IAAI,cAAc,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3H,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyChange.d.ts","sourceRoot":"","sources":["../../src/changes/PropertyChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"PropertyChange.d.ts","sourceRoot":"","sources":["../../src/changes/PropertyChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE7C,8BAAsB,cAAe,SAAQ,MAAM;IAEpC,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,sBAAsB;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvB,OAAO,EAAE,OAAO;gBALhB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,GAAE,OAA4B;CAInD;AAED,qBAAa,oBAAqB,SAAQ,cAAc;IACpD,QAAQ,CAAC,UAAU,0BAAyB;IAC5C,SAAS,CAAC,GAAG,eAC4G;CAC5H;AAED,qBAAa,aAAc,SAAQ,MAAM;IAI1B,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,sBAAsB;IAJ3C,QAAQ,CAAC,UAAU,mBAAkB;gBAEjC,GAAG,EAAE,WAAW,EACT,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,sBAAsB;IAK3C,SAAS,CAAC,GAAG,eAA4F;CAC5G"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { asMinimalJsonString } from "@lionweb/ts-utils";
|
|
1
2
|
import { Change, Missing } from "./Change.js";
|
|
2
3
|
export class PropertyChange extends Change {
|
|
3
4
|
constructor(context, nodeId, property, oldValue, newValue, missing = Missing.NotMissing) {
|
|
@@ -23,7 +24,7 @@ export class PropertyAdded extends Change {
|
|
|
23
24
|
this.node = node;
|
|
24
25
|
this.property = property;
|
|
25
26
|
this.changeType = "PropertyAdded";
|
|
26
|
-
this.msg = () => `Node "${this.node.id}" containment added: "${
|
|
27
|
+
this.msg = () => `Node "${this.node.id}" containment added: "${asMinimalJsonString(this.property)}"`;
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
//# sourceMappingURL=PropertyChange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyChange.js","sourceRoot":"","sources":["../../src/changes/PropertyChange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,OAAgB,cAAe,SAAQ,MAAM;IAC/C,YACW,OAAoB,EACpB,MAAiB,EACjB,QAAgC,EAChC,QAAuB,EACvB,QAAuB,EACvB,UAAmB,OAAO,CAAC,UAAU;QAE5C,KAAK,CAAC,OAAO,CAAC,CAAA;QAPP,YAAO,GAAP,OAAO,CAAa;QACpB,WAAM,GAAN,MAAM,CAAW;QACjB,aAAQ,GAAR,QAAQ,CAAwB;QAChC,aAAQ,GAAR,QAAQ,CAAe;QACvB,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAA8B;IAGhD,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IAAxD;;QACa,eAAU,GAAG,sBAAsB,CAAA;QAClC,QAAG,GAAG,GAAG,EAAE,CACjB,SAAS,IAAI,CAAC,MAAM,+BAA+B,IAAI,CAAC,QAAQ,CAAC,GAAG,WAAW,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,QAAQ,GAAG,CAAA;IAC7H,CAAC;CAAA;AAED,MAAM,OAAO,aAAc,SAAQ,MAAM;IAErC,YACI,GAAgB,EACT,IAAqB,EACrB,QAAgC;QAEvC,KAAK,CAAC,GAAG,CAAC,CAAA;QAHH,SAAI,GAAJ,IAAI,CAAiB;QACrB,aAAQ,GAAR,QAAQ,CAAwB;QAJlC,eAAU,GAAG,eAAe,CAAA;QAS3B,QAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"PropertyChange.js","sourceRoot":"","sources":["../../src/changes/PropertyChange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,OAAgB,cAAe,SAAQ,MAAM;IAC/C,YACW,OAAoB,EACpB,MAAiB,EACjB,QAAgC,EAChC,QAAuB,EACvB,QAAuB,EACvB,UAAmB,OAAO,CAAC,UAAU;QAE5C,KAAK,CAAC,OAAO,CAAC,CAAA;QAPP,YAAO,GAAP,OAAO,CAAa;QACpB,WAAM,GAAN,MAAM,CAAW;QACjB,aAAQ,GAAR,QAAQ,CAAwB;QAChC,aAAQ,GAAR,QAAQ,CAAe;QACvB,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAA8B;IAGhD,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IAAxD;;QACa,eAAU,GAAG,sBAAsB,CAAA;QAClC,QAAG,GAAG,GAAG,EAAE,CACjB,SAAS,IAAI,CAAC,MAAM,+BAA+B,IAAI,CAAC,QAAQ,CAAC,GAAG,WAAW,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,QAAQ,GAAG,CAAA;IAC7H,CAAC;CAAA;AAED,MAAM,OAAO,aAAc,SAAQ,MAAM;IAErC,YACI,GAAgB,EACT,IAAqB,EACrB,QAAgC;QAEvC,KAAK,CAAC,GAAG,CAAC,CAAA;QAHH,SAAI,GAAJ,IAAI,CAAiB;QACrB,aAAQ,GAAR,QAAQ,CAAwB;QAJlC,eAAU,GAAG,eAAe,CAAA;QAS3B,QAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,EAAE,yBAAyB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;IAFzG,CAAC;CAGJ"}
|
package/package.json
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
2
|
+
"name": "@lionweb/json-diff",
|
|
3
|
+
"version": "0.7.1",
|
|
4
|
+
"description": "Find diff between LionWeb JSON chunks",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"typings": "dist/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"license": "Apache-2.0",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/LionWeb-io/lionweb-typescript.git"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/LionWeb-io/lionweb-typescript/issues"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"clean": "npx rimraf dist node_modules -g lionweb-json-diff-*.tgz",
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"lint": "eslint src",
|
|
21
|
+
"prep:pre-release": "npm run clean && npm install && npm run build",
|
|
22
|
+
"prerelease-alpha": "npm run prep:pre-release",
|
|
23
|
+
"release-alpha": "npm publish --tag alpha",
|
|
24
|
+
"prerelease-beta": "npm run prep:pre-release",
|
|
25
|
+
"release-beta": "npm publish --tag beta",
|
|
26
|
+
"prerelease": "npm run prep:pre-release",
|
|
27
|
+
"release": "npm publish"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@lionweb/json": "0.7.1",
|
|
31
|
+
"@lionweb/json-utils": "0.7.1",
|
|
32
|
+
"@lionweb/ts-utils": "0.7.1"
|
|
33
|
+
}
|
|
33
34
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Change } from "./changes/Change.js"
|
|
2
|
+
|
|
3
|
+
export class DiffResult {
|
|
4
|
+
changes: Change[] = []
|
|
5
|
+
|
|
6
|
+
change(issue: Change) {
|
|
7
|
+
this.changes.push(issue)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
reset() {
|
|
11
|
+
this.changes = []
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
hasChanges(): boolean {
|
|
15
|
+
return this.changes.length !== 0
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
asStringArray(): string[] {
|
|
19
|
+
return this.changes.map(ch => ch.changeMsg())
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isEqualMetaPointer,
|
|
3
|
+
isEqualReferenceTarget,
|
|
4
|
+
LionWebJsonChunk,
|
|
5
|
+
LionWebJsonContainment,
|
|
6
|
+
LionWebJsonNode,
|
|
7
|
+
LionWebJsonProperty,
|
|
8
|
+
LionWebJsonReference,
|
|
9
|
+
LionWebJsonReferenceTarget,
|
|
10
|
+
LionWebJsonUsedLanguage
|
|
11
|
+
} from "@lionweb/json"
|
|
12
|
+
import { ChunkUtils, JsonContext, NodeUtils } from "@lionweb/json-utils"
|
|
13
|
+
import { asMinimalJsonString } from "@lionweb/ts-utils"
|
|
14
|
+
import { Change, GenericChange, Missing } from "./changes/Change.js"
|
|
15
|
+
import { LanguageAdded, LanguageRemoved, NodeAdded, NodeRemoved, SerializationFormatChange } from "./changes/ChunkChange.js"
|
|
16
|
+
import { ChildAdded, ChildOrderChanged, ChildRemoved } from "./changes/ContainmentChange.js"
|
|
17
|
+
import { AnnotationAdded, AnnotationOrderChanged, AnnotationRemoved, TargetAdded, TargetOrderChanged, TargetRemoved } from "./changes/index.js"
|
|
18
|
+
import { NodeClassifierChanged, ParentChanged } from "./changes/NodeChange.js"
|
|
19
|
+
import { PropertyValueChanged } from "./changes/PropertyChange.js"
|
|
20
|
+
import { DiffResult } from "./DiffResult.js"
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Comparing LionWeb JSON chunks and find all differences
|
|
24
|
+
*/
|
|
25
|
+
export class LionWebJsonDiff {
|
|
26
|
+
diffResult = new DiffResult()
|
|
27
|
+
|
|
28
|
+
constructor() {}
|
|
29
|
+
|
|
30
|
+
change(change: Change): void {
|
|
31
|
+
this.diffResult.change(change)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
diff(ctx: JsonContext, msg: string) {
|
|
35
|
+
const change = new GenericChange(ctx, msg)
|
|
36
|
+
this.diffResult.change(change)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Compare two LwNode objects and return their difference
|
|
41
|
+
* @param beforeNode
|
|
42
|
+
* @param afterNode
|
|
43
|
+
*/
|
|
44
|
+
diffLwNode(ctx: JsonContext, beforeNode: LionWebJsonNode, afterNode: LionWebJsonNode): void {
|
|
45
|
+
if (!isEqualMetaPointer(beforeNode.classifier, afterNode.classifier)) {
|
|
46
|
+
this.change(new NodeClassifierChanged(ctx.concat("classifier"), beforeNode, beforeNode.classifier, afterNode.classifier))
|
|
47
|
+
}
|
|
48
|
+
if (beforeNode.parent !== afterNode.parent) {
|
|
49
|
+
this.change(new ParentChanged(ctx, beforeNode, beforeNode.parent, afterNode.parent))
|
|
50
|
+
}
|
|
51
|
+
// Find diff between previous and next properties
|
|
52
|
+
beforeNode.properties.forEach((beforeProperty: LionWebJsonProperty, index: number) => {
|
|
53
|
+
const afterProperty = NodeUtils.findProperty(afterNode, beforeProperty.property)
|
|
54
|
+
if (afterProperty === undefined) {
|
|
55
|
+
this.change(
|
|
56
|
+
new PropertyValueChanged(
|
|
57
|
+
ctx.concat("properties", index),
|
|
58
|
+
beforeNode.id,
|
|
59
|
+
beforeProperty.property,
|
|
60
|
+
beforeProperty.value,
|
|
61
|
+
null,
|
|
62
|
+
Missing.MissingAfter
|
|
63
|
+
),
|
|
64
|
+
)
|
|
65
|
+
} else {
|
|
66
|
+
this.diffLwProperty(ctx.concat("properties", index), beforeNode, beforeProperty, afterProperty)
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
afterNode.properties.forEach((afterProperty: LionWebJsonProperty, index: number) => {
|
|
70
|
+
const beforeProperty = NodeUtils.findProperty(beforeNode, afterProperty.property)
|
|
71
|
+
if (beforeProperty === undefined) {
|
|
72
|
+
this.change(
|
|
73
|
+
new PropertyValueChanged(
|
|
74
|
+
ctx.concat("properties", index),
|
|
75
|
+
beforeNode.id,
|
|
76
|
+
afterProperty.property,
|
|
77
|
+
null,
|
|
78
|
+
afterProperty.value,
|
|
79
|
+
Missing.MissingBefore
|
|
80
|
+
),
|
|
81
|
+
)
|
|
82
|
+
}
|
|
83
|
+
// no else, if the property exists in both nodes, the diff has been claculated in the loop before this one
|
|
84
|
+
})
|
|
85
|
+
beforeNode.containments.forEach((beforeContainment: LionWebJsonContainment, index: number) => {
|
|
86
|
+
const beforeKey = beforeContainment.containment.key
|
|
87
|
+
const afterContainment = NodeUtils.findChild(afterNode, beforeKey)
|
|
88
|
+
if (afterContainment === undefined) {
|
|
89
|
+
// NB No containment is considered equivalent to a containment with empty _children_
|
|
90
|
+
if (beforeContainment.children.length !== 0) {
|
|
91
|
+
beforeContainment.children.forEach(childId => {
|
|
92
|
+
this.change(new ChildRemoved(ctx.concat("containments", index), beforeNode, beforeContainment.containment, afterContainment, childId, Missing.MissingAfter))
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
this.diffContainment(ctx.concat("containments", index), beforeNode, beforeContainment, afterContainment)
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
afterNode.containments.forEach((afterContainment: LionWebJsonContainment, index: number) => {
|
|
100
|
+
const afterKey = afterContainment.containment.key
|
|
101
|
+
const beforeContainment = NodeUtils.findChild(beforeNode, afterKey)
|
|
102
|
+
if (beforeContainment === undefined) {
|
|
103
|
+
if (afterContainment.children.length !== 0) {
|
|
104
|
+
afterContainment.children.forEach(childId => {
|
|
105
|
+
this.change(new ChildAdded(ctx.concat("containments", index), afterNode, afterContainment.containment, afterContainment, childId, Missing.MissingBefore))
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// No else, has already been done
|
|
110
|
+
})
|
|
111
|
+
beforeNode.references.forEach((beforeReference: LionWebJsonReference, index: number) => {
|
|
112
|
+
const afterReference = NodeUtils.findReference(afterNode, beforeReference.reference)
|
|
113
|
+
if (afterReference === undefined) {
|
|
114
|
+
if (beforeReference.targets.length !== 0) {
|
|
115
|
+
beforeReference.targets.forEach(target => {
|
|
116
|
+
this.change(new TargetRemoved(ctx.concat("references", index), afterNode, beforeReference, afterReference, target, Missing.MissingAfter))
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
} else {
|
|
120
|
+
this.diffLwReference(ctx.concat("references", index), beforeNode, beforeReference, afterReference)
|
|
121
|
+
}
|
|
122
|
+
})
|
|
123
|
+
afterNode.references.forEach((afterReference: LionWebJsonReference, index: number) => {
|
|
124
|
+
const beforeReference = NodeUtils.findReference(afterNode, afterReference.reference)
|
|
125
|
+
if (beforeReference === undefined) {
|
|
126
|
+
if (afterReference.targets.length !== 0) {
|
|
127
|
+
afterReference.targets.forEach(target => {
|
|
128
|
+
this.change(new TargetAdded(ctx.concat("references", index), afterNode, beforeReference, afterReference, target, Missing.MissingBefore))
|
|
129
|
+
})
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
})
|
|
133
|
+
if (beforeNode.annotations !== undefined && afterNode.annotations !== undefined) {
|
|
134
|
+
let annotationDiffFound = false
|
|
135
|
+
beforeNode.annotations.forEach((beforeAnn: string, index: number) => {
|
|
136
|
+
if (!afterNode.annotations.includes(beforeAnn)) {
|
|
137
|
+
annotationDiffFound = true
|
|
138
|
+
this.change(new AnnotationRemoved(ctx, beforeNode, afterNode, beforeAnn, index))
|
|
139
|
+
}
|
|
140
|
+
})
|
|
141
|
+
afterNode.annotations.forEach((afterAnn: string, index: number) => {
|
|
142
|
+
if (!beforeNode.annotations.includes(afterAnn)) {
|
|
143
|
+
annotationDiffFound = true
|
|
144
|
+
this.change(new AnnotationAdded(ctx, beforeNode, afterNode, afterAnn, index))
|
|
145
|
+
}
|
|
146
|
+
})
|
|
147
|
+
if (!annotationDiffFound) {
|
|
148
|
+
for (let i: number = 0; i < afterNode.annotations.length; i++) {
|
|
149
|
+
if (afterNode.annotations[i] !== beforeNode.annotations[i]) {
|
|
150
|
+
this.change(new AnnotationOrderChanged(ctx.concat("annotations"), beforeNode, afterNode, "", i))
|
|
151
|
+
break
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
diffLwChunk(beforeChunk: LionWebJsonChunk, afterChunk: LionWebJsonChunk): void {
|
|
159
|
+
const ctx = new JsonContext(null, ["$"])
|
|
160
|
+
if (beforeChunk.serializationFormatVersion !== afterChunk.serializationFormatVersion) {
|
|
161
|
+
this.change(
|
|
162
|
+
new SerializationFormatChange(
|
|
163
|
+
ctx.concat("serializationFormatVersion"),
|
|
164
|
+
beforeChunk.serializationFormatVersion,
|
|
165
|
+
afterChunk.serializationFormatVersion,
|
|
166
|
+
),
|
|
167
|
+
)
|
|
168
|
+
}
|
|
169
|
+
beforeChunk.languages.forEach((beforeLanguage: LionWebJsonUsedLanguage, index: number) => {
|
|
170
|
+
const afterLanguage = ChunkUtils.findLwUsedLanguage(afterChunk, beforeLanguage.key)
|
|
171
|
+
if (afterLanguage === null) {
|
|
172
|
+
this.change(new LanguageRemoved(ctx.concat("languages", index), beforeLanguage))
|
|
173
|
+
} else {
|
|
174
|
+
this.diffLwUsedLanguage(ctx.concat("languages", index), beforeLanguage, afterLanguage)
|
|
175
|
+
}
|
|
176
|
+
})
|
|
177
|
+
afterChunk.languages.forEach((afterLanguage: LionWebJsonUsedLanguage, index: number) => {
|
|
178
|
+
const beforeLanguage = ChunkUtils.findLwUsedLanguage(beforeChunk, afterLanguage.key)
|
|
179
|
+
if (beforeLanguage === null) {
|
|
180
|
+
this.change(new LanguageAdded(ctx.concat("languages", index), afterLanguage))
|
|
181
|
+
}
|
|
182
|
+
})
|
|
183
|
+
beforeChunk.nodes.forEach((beforeNode: LionWebJsonNode, index: number) => {
|
|
184
|
+
const beforeId = beforeNode.id
|
|
185
|
+
const afterNode = ChunkUtils.findNode(afterChunk, beforeId)
|
|
186
|
+
const newCtx = ctx.concat("nodes", index)
|
|
187
|
+
if (afterNode === null || afterNode === undefined) {
|
|
188
|
+
this.change(new NodeRemoved(ctx, beforeNode))
|
|
189
|
+
} else {
|
|
190
|
+
this.diffLwNode(newCtx, beforeNode, afterNode)
|
|
191
|
+
}
|
|
192
|
+
})
|
|
193
|
+
afterChunk.nodes.forEach((afterNode: LionWebJsonNode, index: number) => {
|
|
194
|
+
const afterId = afterNode.id
|
|
195
|
+
const beforeNode = ChunkUtils.findNode(beforeChunk, afterId)
|
|
196
|
+
if (beforeNode === null) {
|
|
197
|
+
this.change(new NodeAdded(ctx.concat("nodes", index), afterNode))
|
|
198
|
+
}
|
|
199
|
+
})
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
diffContainment(
|
|
203
|
+
ctx: JsonContext,
|
|
204
|
+
node: LionWebJsonNode,
|
|
205
|
+
beforeContainment: LionWebJsonContainment,
|
|
206
|
+
afterContainment: LionWebJsonContainment,
|
|
207
|
+
): void {
|
|
208
|
+
if (!isEqualMetaPointer(beforeContainment.containment, afterContainment.containment)) {
|
|
209
|
+
console.error("diffContainment: MetaPointers of containments should be identical")
|
|
210
|
+
this.diff(
|
|
211
|
+
ctx,
|
|
212
|
+
`Containment Object has concept ${asMinimalJsonString(beforeContainment.containment)} vs ${JSON.stringify(
|
|
213
|
+
afterContainment.containment,
|
|
214
|
+
)}`,
|
|
215
|
+
)
|
|
216
|
+
}
|
|
217
|
+
// Check whether children exist in both objects (two for loops)
|
|
218
|
+
// TODO Also check for the order that can be changed!!!
|
|
219
|
+
let changeFound = false
|
|
220
|
+
for (const childId of beforeContainment.children) {
|
|
221
|
+
if (!afterContainment.children.includes(childId)) {
|
|
222
|
+
changeFound = true
|
|
223
|
+
this.change(new ChildRemoved(ctx, node, beforeContainment.containment, afterContainment, childId))
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
for (const childId of afterContainment.children) {
|
|
227
|
+
if (!beforeContainment.children.includes(childId)) {
|
|
228
|
+
changeFound = true
|
|
229
|
+
this.change(new ChildAdded(ctx, node, beforeContainment.containment, afterContainment, childId))
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (!changeFound) {
|
|
233
|
+
for (let i: number = 0; i < afterContainment.children.length; i++) {
|
|
234
|
+
if (afterContainment.children[i] !== beforeContainment.children[i]) {
|
|
235
|
+
this.change(new ChildOrderChanged(ctx.concat("children"), node, afterContainment.containment, afterContainment, ""))
|
|
236
|
+
break
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
diffLwReference(ctx: JsonContext, node: LionWebJsonNode, beforeRef: LionWebJsonReference, afterRef: LionWebJsonReference): void {
|
|
243
|
+
if (!isEqualMetaPointer(beforeRef.reference, afterRef.reference)) {
|
|
244
|
+
console.error("diffContainment: MetaPointers of references should be identical")
|
|
245
|
+
this.diff(ctx, `Reference has concept ${asMinimalJsonString(beforeRef.reference)} vs ${asMinimalJsonString(afterRef.reference)}`)
|
|
246
|
+
}
|
|
247
|
+
let diffFound = false;
|
|
248
|
+
beforeRef.targets.forEach((beforeTarget: LionWebJsonReferenceTarget, index: number) => {
|
|
249
|
+
const afterTarget = NodeUtils.findReferenceTarget(afterRef.targets, beforeTarget)
|
|
250
|
+
if (afterTarget === undefined) {
|
|
251
|
+
this.change(new TargetRemoved(ctx.concat("targets", index), node, beforeRef, afterRef, beforeTarget))
|
|
252
|
+
diffFound = true
|
|
253
|
+
} else {
|
|
254
|
+
if (!isEqualReferenceTarget(beforeTarget, afterTarget)) {
|
|
255
|
+
this.diff(
|
|
256
|
+
ctx.concat("targets", index),
|
|
257
|
+
`ERROR: reference target ${asMinimalJsonString(beforeTarget)} vs ${asMinimalJsonString(afterTarget)}`,
|
|
258
|
+
)
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
})
|
|
262
|
+
afterRef.targets.forEach((afterTarget: LionWebJsonReferenceTarget, index: number) => {
|
|
263
|
+
const beforeTarget = NodeUtils.findReferenceTarget(beforeRef.targets, afterTarget)
|
|
264
|
+
if (beforeTarget === undefined) {
|
|
265
|
+
this.change(new TargetAdded(ctx.concat("targets", index), node, beforeRef, afterRef, afterTarget))
|
|
266
|
+
diffFound = true
|
|
267
|
+
} else {
|
|
268
|
+
if (!isEqualReferenceTarget(beforeTarget, afterTarget)) {
|
|
269
|
+
this.diff(
|
|
270
|
+
ctx.concat("targets", index),
|
|
271
|
+
`ERROR: reference target ${asMinimalJsonString(beforeTarget)} vs ${asMinimalJsonString(afterTarget)}`,
|
|
272
|
+
)
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
})
|
|
276
|
+
if (!diffFound) {
|
|
277
|
+
for (let i: number = 0; i < beforeRef.targets.length; i++) {
|
|
278
|
+
if (!isEqualReferenceTarget(beforeRef.targets[i], afterRef.targets[i])) {
|
|
279
|
+
this.change(new TargetOrderChanged(ctx.concat("targets"), node, beforeRef, afterRef, beforeRef.targets[i]))
|
|
280
|
+
break
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
private diffLwUsedLanguage(ctx: JsonContext, obj1: LionWebJsonUsedLanguage, obj2: LionWebJsonUsedLanguage) {
|
|
287
|
+
if (obj1.key !== obj2.key || obj1.version !== obj2.version) {
|
|
288
|
+
this.diff(ctx, `Different used languages ${asMinimalJsonString(obj1)} vs ${asMinimalJsonString(obj2)}`)
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
private diffLwProperty(
|
|
293
|
+
ctx: JsonContext,
|
|
294
|
+
node: LionWebJsonNode,
|
|
295
|
+
beforeProperty: LionWebJsonProperty,
|
|
296
|
+
afterProperty: LionWebJsonProperty,
|
|
297
|
+
) {
|
|
298
|
+
if (!isEqualMetaPointer(beforeProperty.property, afterProperty.property)) {
|
|
299
|
+
console.error("diffContainment: MetaPointers of properties should be identical")
|
|
300
|
+
this.diff(
|
|
301
|
+
ctx,
|
|
302
|
+
`Property Object has concept ${asMinimalJsonString(beforeProperty.property)} vs ${asMinimalJsonString(afterProperty.property)}`,
|
|
303
|
+
)
|
|
304
|
+
}
|
|
305
|
+
if (beforeProperty.value !== afterProperty.value) {
|
|
306
|
+
this.change(new PropertyValueChanged(ctx, node.id, beforeProperty.property, beforeProperty.value, afterProperty.value))
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { JsonContext } from "@lionweb/json-utils"
|
|
2
|
+
|
|
3
|
+
export type ChangeType =
|
|
4
|
+
| "GenericChange"
|
|
5
|
+
| "NodeRemoved"
|
|
6
|
+
| "NodeAdded"
|
|
7
|
+
| "ChildRemoved"
|
|
8
|
+
| "ChildAdded"
|
|
9
|
+
| "ParentChanged"
|
|
10
|
+
| "PropertyValueChanged"
|
|
11
|
+
| "SerializationFormatChange"
|
|
12
|
+
| "PropertyRemoved"
|
|
13
|
+
| "PropertyAdded"
|
|
14
|
+
| "NodeClassifierChanged"
|
|
15
|
+
| "ContainmentAdded"
|
|
16
|
+
| "ContainmentRemoved"
|
|
17
|
+
| "LanguageRemoved"
|
|
18
|
+
| "LanguageAdded"
|
|
19
|
+
| "TargetAdded"
|
|
20
|
+
| "TargetRemoved"
|
|
21
|
+
| "ReferenceRemoved"
|
|
22
|
+
| "ReferenceAdded"
|
|
23
|
+
| "AnnotationRemoved"
|
|
24
|
+
| "AnnotationAdded"
|
|
25
|
+
| "ChildOrderChanged"
|
|
26
|
+
| "AnnotationOrderChanged"
|
|
27
|
+
| "TargetOrderChanged"
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Additionbal property in property, contauinment and reference changes to state
|
|
31
|
+
* that the whole property/ containment / reference definition is missing.
|
|
32
|
+
*/
|
|
33
|
+
export enum Missing {
|
|
34
|
+
/**
|
|
35
|
+
* Both before and after have a definition for the property / containment / reference
|
|
36
|
+
*/
|
|
37
|
+
NotMissing,
|
|
38
|
+
/**
|
|
39
|
+
* The definition is missing _before_ for the property / containment / reference
|
|
40
|
+
*/
|
|
41
|
+
MissingBefore,
|
|
42
|
+
/**
|
|
43
|
+
* The definition is missing _after_ for the property / containment / reference
|
|
44
|
+
*/
|
|
45
|
+
MissingAfter
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export abstract class Change {
|
|
49
|
+
abstract readonly changeType: ChangeType
|
|
50
|
+
context: JsonContext
|
|
51
|
+
|
|
52
|
+
constructor(context: JsonContext) {
|
|
53
|
+
this.context = context
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
protected abstract msg(): string
|
|
57
|
+
|
|
58
|
+
public changeMsg(): string {
|
|
59
|
+
return `${this.changeType}: ${this.msg()} at ${this.context.toString()} `
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export class GenericChange extends Change {
|
|
64
|
+
readonly changeType = "GenericChange"
|
|
65
|
+
|
|
66
|
+
constructor(
|
|
67
|
+
context: JsonContext,
|
|
68
|
+
protected message: string
|
|
69
|
+
) {
|
|
70
|
+
super(context)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
protected msg(): string {
|
|
74
|
+
return this.message
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { LionWebJsonNode, LionWebJsonUsedLanguage } from "@lionweb/json"
|
|
2
|
+
import { JsonContext } from "@lionweb/json-utils"
|
|
3
|
+
import { Change } from "./Change.js"
|
|
4
|
+
|
|
5
|
+
export abstract class ChunkChange extends Change {
|
|
6
|
+
constructor(public context: JsonContext) {
|
|
7
|
+
super(context)
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class SerializationFormatChange extends ChunkChange {
|
|
12
|
+
readonly changeType = "SerializationFormatChange"
|
|
13
|
+
|
|
14
|
+
constructor(
|
|
15
|
+
public context: JsonContext,
|
|
16
|
+
protected original: string,
|
|
17
|
+
protected newValue: string
|
|
18
|
+
) {
|
|
19
|
+
super(context)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
protected msg = () => `Serialization versions do not match: ${this.original} vs ${this.newValue}`
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class NodeRemoved extends ChunkChange {
|
|
26
|
+
readonly changeType = "NodeRemoved"
|
|
27
|
+
|
|
28
|
+
constructor(
|
|
29
|
+
public context: JsonContext,
|
|
30
|
+
public node: LionWebJsonNode
|
|
31
|
+
) {
|
|
32
|
+
super(context)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
protected msg = () => `Node ${this.node.id} is removed`
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class NodeAdded extends ChunkChange {
|
|
39
|
+
readonly changeType = "NodeAdded"
|
|
40
|
+
|
|
41
|
+
constructor(
|
|
42
|
+
public context: JsonContext,
|
|
43
|
+
public node: LionWebJsonNode
|
|
44
|
+
) {
|
|
45
|
+
super(context)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
protected msg = () => `Node ${this.node.id} is added`
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export abstract class LanguageChange extends ChunkChange {
|
|
52
|
+
constructor(
|
|
53
|
+
public context: JsonContext,
|
|
54
|
+
public language: LionWebJsonUsedLanguage
|
|
55
|
+
) {
|
|
56
|
+
super(context)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export class LanguageRemoved extends LanguageChange {
|
|
61
|
+
readonly changeType = "LanguageRemoved"
|
|
62
|
+
protected msg = () => `Language with key ${this.language.key} and version ${this.language.version} is removed`
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export class LanguageAdded extends LanguageChange {
|
|
66
|
+
readonly changeType = "LanguageAdded"
|
|
67
|
+
protected msg = () => `Language with key ${this.language.key} and version ${this.language.version} is added`
|
|
68
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LionWebId, LionWebJsonContainment, LionWebJsonMetaPointer, LionWebJsonNode } from "@lionweb/json"
|
|
2
|
+
import { JsonContext } from "@lionweb/json-utils"
|
|
3
|
+
import { Change, Missing } from "./Change.js"
|
|
4
|
+
|
|
5
|
+
export abstract class ContainmentChange extends Change {
|
|
6
|
+
constructor(
|
|
7
|
+
public context: JsonContext,
|
|
8
|
+
public parentNode: LionWebJsonNode,
|
|
9
|
+
public containment: LionWebJsonMetaPointer,
|
|
10
|
+
public afterContainment: LionWebJsonContainment | undefined,
|
|
11
|
+
public childId: LionWebId,
|
|
12
|
+
public missing = Missing.NotMissing
|
|
13
|
+
) {
|
|
14
|
+
super(context)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export class ChildAdded extends ContainmentChange {
|
|
19
|
+
readonly changeType = "ChildAdded"
|
|
20
|
+
protected msg = () => `Node "${this.parentNode.id}" added child "${this.childId}" to containment ${this.containment.key}`
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export class ChildRemoved extends ContainmentChange {
|
|
24
|
+
readonly changeType = "ChildRemoved"
|
|
25
|
+
protected msg = () => `Node "${this.parentNode.id}" removed child "${this.childId}" from containment "${this.containment.key}"`
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export class ChildOrderChanged extends ContainmentChange {
|
|
29
|
+
readonly changeType = "ChildOrderChanged"
|
|
30
|
+
protected msg = () => `Node "${this.parentNode.id}" changed order of children in containment "${this.containment.key}"`
|
|
31
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { LionWebId, LionWebJsonMetaPointer, LionWebJsonNode } from "@lionweb/json"
|
|
2
|
+
import { JsonContext } from "@lionweb/json-utils"
|
|
3
|
+
import { Change, ChangeType } from "./Change.js"
|
|
4
|
+
|
|
5
|
+
export class NodeClassifierChanged extends Change {
|
|
6
|
+
readonly changeType: ChangeType = "NodeClassifierChanged"
|
|
7
|
+
|
|
8
|
+
constructor(
|
|
9
|
+
public context: JsonContext,
|
|
10
|
+
public node: LionWebJsonNode,
|
|
11
|
+
public oldClassifier: LionWebJsonMetaPointer,
|
|
12
|
+
public newClassifier: LionWebJsonMetaPointer
|
|
13
|
+
) {
|
|
14
|
+
super(context)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
protected msg = () => `Object ${this.node.id} has classifier changed from ${this.oldClassifier.key} to ${this.newClassifier.key}`
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export class ParentChanged extends Change {
|
|
21
|
+
readonly changeType = "ParentChanged"
|
|
22
|
+
|
|
23
|
+
constructor(
|
|
24
|
+
public context: JsonContext,
|
|
25
|
+
public node: LionWebJsonNode,
|
|
26
|
+
public beforeParentId: LionWebId | null,
|
|
27
|
+
public afterParentId: LionWebId | null
|
|
28
|
+
) {
|
|
29
|
+
super(context)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
protected msg = () => `Node "${this.node.id}" changed parent from "${this.beforeParentId}" to "${this.afterParentId}`
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export abstract class AnnotationChange extends Change {
|
|
36
|
+
constructor(
|
|
37
|
+
ctx: JsonContext,
|
|
38
|
+
public nodeBefore: LionWebJsonNode,
|
|
39
|
+
public nodeAfter: LionWebJsonNode,
|
|
40
|
+
public annotationId: LionWebId,
|
|
41
|
+
public index: number
|
|
42
|
+
) {
|
|
43
|
+
super(ctx)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export class AnnotationRemoved extends AnnotationChange {
|
|
48
|
+
readonly changeType = "AnnotationRemoved"
|
|
49
|
+
|
|
50
|
+
protected msg = () => `Node "${this.nodeBefore.id}" removed annotation "${this.annotationId}"`
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export class AnnotationAdded extends AnnotationChange {
|
|
54
|
+
readonly changeType = "AnnotationAdded"
|
|
55
|
+
|
|
56
|
+
protected msg = () => `Node "${this.nodeAfter.id}" added annotation "${this.annotationId}"`
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export class AnnotationOrderChanged extends AnnotationChange {
|
|
60
|
+
readonly changeType = "AnnotationOrderChanged"
|
|
61
|
+
protected msg = () => `Node "${this.nodeAfter.id}" changed order of annotations`
|
|
62
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { LionWebId, LionWebJsonMetaPointer, LionWebJsonNode } from "@lionweb/json"
|
|
2
|
+
import { JsonContext } from "@lionweb/json-utils"
|
|
3
|
+
import { asMinimalJsonString } from "@lionweb/ts-utils"
|
|
4
|
+
import { Change, Missing } from "./Change.js"
|
|
5
|
+
|
|
6
|
+
export abstract class PropertyChange extends Change {
|
|
7
|
+
constructor(
|
|
8
|
+
public context: JsonContext,
|
|
9
|
+
public nodeId: LionWebId,
|
|
10
|
+
public property: LionWebJsonMetaPointer,
|
|
11
|
+
public oldValue: string | null,
|
|
12
|
+
public newValue: string | null,
|
|
13
|
+
public missing: Missing = Missing.NotMissing
|
|
14
|
+
) {
|
|
15
|
+
super(context)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export class PropertyValueChanged extends PropertyChange {
|
|
20
|
+
readonly changeType = "PropertyValueChanged"
|
|
21
|
+
protected msg = () =>
|
|
22
|
+
`Node "${this.nodeId} changed value of property "${this.property.key}" from "${this.oldValue}" to "${this.newValue}"`
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class PropertyAdded extends Change {
|
|
26
|
+
readonly changeType = "PropertyAdded"
|
|
27
|
+
constructor(
|
|
28
|
+
ctx: JsonContext,
|
|
29
|
+
public node: LionWebJsonNode,
|
|
30
|
+
public property: LionWebJsonMetaPointer
|
|
31
|
+
) {
|
|
32
|
+
super(ctx)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
protected msg = () => `Node "${this.node.id}" containment added: "${asMinimalJsonString(this.property)}"`
|
|
36
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LionWebJsonNode, LionWebJsonReference, LionWebJsonReferenceTarget } from "@lionweb/json"
|
|
2
|
+
import { JsonContext } from "@lionweb/json-utils"
|
|
3
|
+
import { Change, Missing } from "./Change.js"
|
|
4
|
+
|
|
5
|
+
export abstract class ReferenceChange extends Change {
|
|
6
|
+
constructor(
|
|
7
|
+
public context: JsonContext,
|
|
8
|
+
public node: LionWebJsonNode,
|
|
9
|
+
public beforeReference: LionWebJsonReference | undefined,
|
|
10
|
+
public afterReference: LionWebJsonReference | undefined,
|
|
11
|
+
public target: LionWebJsonReferenceTarget,
|
|
12
|
+
public missing = Missing.NotMissing
|
|
13
|
+
) {
|
|
14
|
+
super(context)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export class TargetAdded extends ReferenceChange {
|
|
19
|
+
readonly changeType = "TargetAdded"
|
|
20
|
+
protected msg = () =>
|
|
21
|
+
`Node "${this.node.id}" added target "${this.target.reference}" to reference "${this?.afterReference?.reference?.key}"`
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export class TargetRemoved extends ReferenceChange {
|
|
25
|
+
readonly changeType = "TargetRemoved"
|
|
26
|
+
protected msg = () =>
|
|
27
|
+
`Node "${this.node.id}" removed target "${this.target.reference}" from reference "${this?.beforeReference?.reference?.key}"`
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class TargetOrderChanged extends ReferenceChange {
|
|
31
|
+
readonly changeType = "TargetOrderChanged"
|
|
32
|
+
protected msg = () => `Node "${this.node.id}" changed order of targets in reference "${this.afterReference?.reference?.key}"`
|
|
33
|
+
}
|
package/src/index.ts
ADDED