@lionweb/class-core 0.7.0-alpha.10 → 0.7.0-alpha.11
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/base-types.d.ts.map +1 -1
- package/dist/base-types.js.map +1 -1
- package/dist/deltas/appliers.d.ts +3 -2
- package/dist/deltas/appliers.d.ts.map +1 -1
- package/dist/deltas/appliers.js +362 -160
- package/dist/deltas/appliers.js.map +1 -1
- package/dist/deltas/inverters.d.ts.map +1 -1
- package/dist/deltas/inverters.js +65 -26
- package/dist/deltas/inverters.js.map +1 -1
- package/dist/deltas/serialization/deserializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/deserializer.g.js +168 -57
- package/dist/deltas/serialization/deserializer.g.js.map +1 -1
- package/dist/deltas/serialization/serializer.g.d.ts +2 -2
- package/dist/deltas/serialization/serializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/serializer.g.js +186 -47
- package/dist/deltas/serialization/serializer.g.js.map +1 -1
- package/dist/deltas/serialization/types.g.d.ts +156 -43
- package/dist/deltas/serialization/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.d.ts +155 -55
- package/dist/deltas/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.js +170 -57
- package/dist/deltas/types.g.js.map +1 -1
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +4 -4
- package/dist/deserializer.js.map +1 -1
- package/dist/duplicator.d.ts.map +1 -1
- package/dist/duplicator.js.map +1 -1
- package/dist/id-mapping.d.ts +3 -0
- package/dist/id-mapping.d.ts.map +1 -1
- package/dist/id-mapping.js +3 -0
- package/dist/id-mapping.js.map +1 -1
- package/dist/value-managers/annotations.d.ts +5 -0
- package/dist/value-managers/annotations.d.ts.map +1 -1
- package/dist/value-managers/annotations.js +30 -1
- package/dist/value-managers/annotations.js.map +1 -1
- package/dist/value-managers/containments.d.ts +3 -0
- package/dist/value-managers/containments.d.ts.map +1 -1
- package/dist/value-managers/containments.js +78 -8
- package/dist/value-managers/containments.js.map +1 -1
- package/dist/value-managers/references.d.ts +3 -0
- package/dist/value-managers/references.d.ts.map +1 -1
- package/dist/value-managers/references.js +26 -8
- package/dist/value-managers/references.js.map +1 -1
- package/package.json +4 -7
- package/src/base-types.ts +0 -1
- package/src/deltas/appliers.ts +370 -174
- package/src/deltas/inverters.ts +82 -34
- package/src/deltas/serialization/deserializer.g.ts +191 -62
- package/src/deltas/serialization/serializer.g.ts +242 -63
- package/src/deltas/serialization/types.g.ts +190 -51
- package/src/deltas/types.g.ts +190 -51
- package/src/deserializer.ts +7 -5
- package/src/duplicator.ts +1 -1
- package/src/id-mapping.ts +3 -0
- package/src/value-managers/annotations.ts +26 -0
- package/src/value-managers/containments.ts +73 -8
- package/src/value-managers/references.ts +28 -8
|
@@ -23,60 +23,96 @@ import { IDelta } from "../base.js";
|
|
|
23
23
|
import {
|
|
24
24
|
AnnotationAddedDelta,
|
|
25
25
|
AnnotationDeletedDelta,
|
|
26
|
+
AnnotationMovedAndReplacedFromOtherParentDelta,
|
|
27
|
+
AnnotationMovedAndReplacedInSameParentDelta,
|
|
26
28
|
AnnotationMovedFromOtherParentDelta,
|
|
27
29
|
AnnotationMovedInSameParentDelta,
|
|
28
30
|
AnnotationReplacedDelta,
|
|
29
31
|
ChildAddedDelta,
|
|
30
32
|
ChildDeletedDelta,
|
|
31
|
-
|
|
33
|
+
ChildMovedAndReplacedFromOtherContainmentDelta,
|
|
34
|
+
ChildMovedAndReplacedFromOtherContainmentInSameParentDelta,
|
|
35
|
+
ChildMovedAndReplacedInSameContainmentDelta,
|
|
36
|
+
ChildMovedFromOtherContainmentDelta,
|
|
37
|
+
ChildMovedFromOtherContainmentInSameParentDelta,
|
|
32
38
|
ChildMovedInSameContainmentDelta,
|
|
33
39
|
ChildReplacedDelta,
|
|
40
|
+
CompositeDelta,
|
|
41
|
+
EntryMovedAndReplacedFromOtherReferenceDelta,
|
|
42
|
+
EntryMovedAndReplacedFromOtherReferenceInSameParentDelta,
|
|
43
|
+
EntryMovedAndReplacedInSameReferenceDelta,
|
|
44
|
+
EntryMovedFromOtherReferenceDelta,
|
|
45
|
+
EntryMovedFromOtherReferenceInSameParentDelta,
|
|
46
|
+
EntryMovedInSameReferenceDelta,
|
|
34
47
|
NoOpDelta,
|
|
48
|
+
PartitionAddedDelta,
|
|
49
|
+
PartitionDeletedDelta,
|
|
35
50
|
PropertyAddedDelta,
|
|
36
51
|
PropertyChangedDelta,
|
|
37
52
|
PropertyDeletedDelta,
|
|
38
53
|
ReferenceAddedDelta,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
ReferenceMovedInSameReferenceDelta,
|
|
42
|
-
ReferenceReplacedDelta
|
|
54
|
+
ReferenceChangedDelta,
|
|
55
|
+
ReferenceDeletedDelta
|
|
43
56
|
} from "../types.g.js";
|
|
44
57
|
import {
|
|
45
58
|
AnnotationAddedSerializedDelta,
|
|
46
59
|
AnnotationDeletedSerializedDelta,
|
|
60
|
+
AnnotationMovedAndReplacedFromOtherParentSerializedDelta,
|
|
61
|
+
AnnotationMovedAndReplacedInSameParentSerializedDelta,
|
|
47
62
|
AnnotationMovedFromOtherParentSerializedDelta,
|
|
48
63
|
AnnotationMovedInSameParentSerializedDelta,
|
|
49
64
|
AnnotationReplacedSerializedDelta,
|
|
50
65
|
ChildAddedSerializedDelta,
|
|
51
66
|
ChildDeletedSerializedDelta,
|
|
67
|
+
ChildMovedAndReplacedFromOtherContainmentInSameParentSerializedDelta,
|
|
68
|
+
ChildMovedAndReplacedFromOtherContainmentSerializedDelta,
|
|
69
|
+
ChildMovedAndReplacedInSameContainmentSerializedDelta,
|
|
70
|
+
ChildMovedFromOtherContainmentInSameParentSerializedDelta,
|
|
71
|
+
ChildMovedFromOtherContainmentSerializedDelta,
|
|
52
72
|
ChildMovedInSameContainmentSerializedDelta,
|
|
53
|
-
ChildMovedSerializedDelta,
|
|
54
73
|
ChildReplacedSerializedDelta,
|
|
74
|
+
CompositeSerializedDelta,
|
|
75
|
+
EntryMovedAndReplacedFromOtherReferenceInSameParentSerializedDelta,
|
|
76
|
+
EntryMovedAndReplacedFromOtherReferenceSerializedDelta,
|
|
77
|
+
EntryMovedAndReplacedInSameReferenceSerializedDelta,
|
|
78
|
+
EntryMovedFromOtherReferenceInSameParentSerializedDelta,
|
|
79
|
+
EntryMovedFromOtherReferenceSerializedDelta,
|
|
80
|
+
EntryMovedInSameReferenceSerializedDelta,
|
|
55
81
|
NoOpSerializedDelta,
|
|
82
|
+
PartitionAddedSerializedDelta,
|
|
83
|
+
PartitionDeletedSerializedDelta,
|
|
56
84
|
PropertyAddedSerializedDelta,
|
|
57
85
|
PropertyChangedSerializedDelta,
|
|
58
86
|
PropertyDeletedSerializedDelta,
|
|
59
87
|
ReferenceAddedSerializedDelta,
|
|
88
|
+
ReferenceChangedSerializedDelta,
|
|
60
89
|
ReferenceDeletedSerializedDelta,
|
|
61
|
-
|
|
62
|
-
ReferenceMovedSerializedDelta,
|
|
63
|
-
ReferenceReplacedSerializedDelta
|
|
90
|
+
SerializedDelta
|
|
64
91
|
} from "./types.g.js";
|
|
65
92
|
import { idFrom, serializePropertyValue } from "./serializer-helpers.js";
|
|
66
93
|
import { serializeNodeBases } from "../../serializer.js";
|
|
67
94
|
|
|
68
95
|
|
|
69
|
-
export const serializeDelta = (delta: IDelta) => {
|
|
70
|
-
if (delta instanceof
|
|
96
|
+
export const serializeDelta = (delta: IDelta): SerializedDelta => {
|
|
97
|
+
if (delta instanceof PartitionAddedDelta) {
|
|
71
98
|
return {
|
|
72
|
-
kind: "
|
|
73
|
-
|
|
99
|
+
kind: "PartitionAdded",
|
|
100
|
+
newPartition: delta.newPartition.id,
|
|
101
|
+
newNodes: serializeNodeBases([delta.newPartition])
|
|
102
|
+
} as PartitionAddedSerializedDelta;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (delta instanceof PartitionDeletedDelta) {
|
|
106
|
+
return {
|
|
107
|
+
kind: "PartitionDeleted",
|
|
108
|
+
deletedPartition: delta.deletedPartition.id
|
|
109
|
+
} as PartitionDeletedSerializedDelta;
|
|
74
110
|
}
|
|
75
111
|
|
|
76
112
|
if (delta instanceof PropertyAddedDelta) {
|
|
77
113
|
return {
|
|
78
114
|
kind: "PropertyAdded",
|
|
79
|
-
|
|
115
|
+
node: delta.node.id,
|
|
80
116
|
property: metaPointerFor(delta.property),
|
|
81
117
|
value: serializePropertyValue(delta.value, delta.property)
|
|
82
118
|
} as PropertyAddedSerializedDelta;
|
|
@@ -85,7 +121,7 @@ export const serializeDelta = (delta: IDelta) => {
|
|
|
85
121
|
if (delta instanceof PropertyDeletedDelta) {
|
|
86
122
|
return {
|
|
87
123
|
kind: "PropertyDeleted",
|
|
88
|
-
|
|
124
|
+
node: delta.node.id,
|
|
89
125
|
property: metaPointerFor(delta.property),
|
|
90
126
|
oldValue: serializePropertyValue(delta.oldValue, delta.property)
|
|
91
127
|
} as PropertyDeletedSerializedDelta;
|
|
@@ -94,7 +130,7 @@ export const serializeDelta = (delta: IDelta) => {
|
|
|
94
130
|
if (delta instanceof PropertyChangedDelta) {
|
|
95
131
|
return {
|
|
96
132
|
kind: "PropertyChanged",
|
|
97
|
-
|
|
133
|
+
node: delta.node.id,
|
|
98
134
|
property: metaPointerFor(delta.property),
|
|
99
135
|
oldValue: serializePropertyValue(delta.oldValue, delta.property),
|
|
100
136
|
newValue: serializePropertyValue(delta.newValue, delta.property)
|
|
@@ -136,17 +172,29 @@ export const serializeDelta = (delta: IDelta) => {
|
|
|
136
172
|
} as ChildReplacedSerializedDelta;
|
|
137
173
|
}
|
|
138
174
|
|
|
139
|
-
if (delta instanceof
|
|
175
|
+
if (delta instanceof ChildMovedFromOtherContainmentDelta) {
|
|
140
176
|
return {
|
|
141
|
-
kind: "
|
|
177
|
+
kind: "ChildMovedFromOtherContainment",
|
|
142
178
|
oldParent: delta.oldParent.id,
|
|
143
179
|
oldContainment: metaPointerFor(delta.oldContainment),
|
|
144
180
|
oldIndex: delta.oldIndex,
|
|
145
181
|
newParent: delta.newParent.id,
|
|
146
182
|
newContainment: metaPointerFor(delta.newContainment),
|
|
147
183
|
newIndex: delta.newIndex,
|
|
148
|
-
|
|
149
|
-
} as
|
|
184
|
+
movedChild: delta.movedChild.id
|
|
185
|
+
} as ChildMovedFromOtherContainmentSerializedDelta;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (delta instanceof ChildMovedFromOtherContainmentInSameParentDelta) {
|
|
189
|
+
return {
|
|
190
|
+
kind: "ChildMovedFromOtherContainmentInSameParent",
|
|
191
|
+
parent: delta.parent.id,
|
|
192
|
+
oldContainment: metaPointerFor(delta.oldContainment),
|
|
193
|
+
oldIndex: delta.oldIndex,
|
|
194
|
+
movedChild: delta.movedChild.id,
|
|
195
|
+
newContainment: metaPointerFor(delta.newContainment),
|
|
196
|
+
newIndex: delta.newIndex
|
|
197
|
+
} as ChildMovedFromOtherContainmentInSameParentSerializedDelta;
|
|
150
198
|
}
|
|
151
199
|
|
|
152
200
|
if (delta instanceof ChildMovedInSameContainmentDelta) {
|
|
@@ -156,63 +204,50 @@ export const serializeDelta = (delta: IDelta) => {
|
|
|
156
204
|
containment: metaPointerFor(delta.containment),
|
|
157
205
|
oldIndex: delta.oldIndex,
|
|
158
206
|
newIndex: delta.newIndex,
|
|
159
|
-
|
|
207
|
+
movedChild: delta.movedChild.id
|
|
160
208
|
} as ChildMovedInSameContainmentSerializedDelta;
|
|
161
209
|
}
|
|
162
210
|
|
|
163
|
-
if (delta instanceof
|
|
211
|
+
if (delta instanceof ChildMovedAndReplacedFromOtherContainmentDelta) {
|
|
164
212
|
return {
|
|
165
|
-
kind: "
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
container: delta.container.id,
|
|
177
|
-
reference: metaPointerFor(delta.reference),
|
|
178
|
-
index: delta.index,
|
|
179
|
-
deletedTarget: idFrom(delta.deletedTarget)
|
|
180
|
-
} as ReferenceDeletedSerializedDelta;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
if (delta instanceof ReferenceReplacedDelta) {
|
|
184
|
-
return {
|
|
185
|
-
kind: "ReferenceReplaced",
|
|
186
|
-
container: delta.container.id,
|
|
187
|
-
reference: metaPointerFor(delta.reference),
|
|
188
|
-
index: delta.index,
|
|
189
|
-
replacedTarget: idFrom(delta.replacedTarget),
|
|
190
|
-
newTarget: idFrom(delta.newTarget)
|
|
191
|
-
} as ReferenceReplacedSerializedDelta;
|
|
213
|
+
kind: "ChildMovedAndReplacedFromOtherContainment",
|
|
214
|
+
newParent: delta.newParent.id,
|
|
215
|
+
newContainment: metaPointerFor(delta.newContainment),
|
|
216
|
+
newIndex: delta.newIndex,
|
|
217
|
+
movedChild: delta.movedChild.id,
|
|
218
|
+
oldParent: delta.oldParent.id,
|
|
219
|
+
oldContainment: metaPointerFor(delta.oldContainment),
|
|
220
|
+
oldIndex: delta.oldIndex,
|
|
221
|
+
replacedChild: delta.replacedChild.id,
|
|
222
|
+
replacedChildAsNodes: serializeNodeBases([delta.replacedChild])
|
|
223
|
+
} as ChildMovedAndReplacedFromOtherContainmentSerializedDelta;
|
|
192
224
|
}
|
|
193
225
|
|
|
194
|
-
if (delta instanceof
|
|
226
|
+
if (delta instanceof ChildMovedAndReplacedFromOtherContainmentInSameParentDelta) {
|
|
195
227
|
return {
|
|
196
|
-
kind: "
|
|
197
|
-
|
|
198
|
-
|
|
228
|
+
kind: "ChildMovedAndReplacedFromOtherContainmentInSameParent",
|
|
229
|
+
parent: delta.parent.id,
|
|
230
|
+
oldContainment: metaPointerFor(delta.oldContainment),
|
|
199
231
|
oldIndex: delta.oldIndex,
|
|
200
|
-
|
|
201
|
-
newReference: metaPointerFor(delta.newReference),
|
|
232
|
+
newContainment: metaPointerFor(delta.newContainment),
|
|
202
233
|
newIndex: delta.newIndex,
|
|
203
|
-
|
|
204
|
-
|
|
234
|
+
movedChild: delta.movedChild.id,
|
|
235
|
+
replacedChild: delta.replacedChild.id,
|
|
236
|
+
replacedChildAsNodes: serializeNodeBases([delta.replacedChild])
|
|
237
|
+
} as ChildMovedAndReplacedFromOtherContainmentInSameParentSerializedDelta;
|
|
205
238
|
}
|
|
206
239
|
|
|
207
|
-
if (delta instanceof
|
|
240
|
+
if (delta instanceof ChildMovedAndReplacedInSameContainmentDelta) {
|
|
208
241
|
return {
|
|
209
|
-
kind: "
|
|
210
|
-
|
|
211
|
-
|
|
242
|
+
kind: "ChildMovedAndReplacedInSameContainment",
|
|
243
|
+
parent: delta.parent.id,
|
|
244
|
+
containment: metaPointerFor(delta.containment),
|
|
212
245
|
oldIndex: delta.oldIndex,
|
|
213
246
|
newIndex: delta.newIndex,
|
|
214
|
-
|
|
215
|
-
|
|
247
|
+
movedChild: delta.movedChild.id,
|
|
248
|
+
replacedChild: delta.replacedChild.id,
|
|
249
|
+
replacedChildAsNodes: serializeNodeBases([delta.replacedChild])
|
|
250
|
+
} as ChildMovedAndReplacedInSameContainmentSerializedDelta;
|
|
216
251
|
}
|
|
217
252
|
|
|
218
253
|
if (delta instanceof AnnotationAddedDelta) {
|
|
@@ -268,5 +303,149 @@ export const serializeDelta = (delta: IDelta) => {
|
|
|
268
303
|
} as AnnotationMovedInSameParentSerializedDelta;
|
|
269
304
|
}
|
|
270
305
|
|
|
306
|
+
if (delta instanceof AnnotationMovedAndReplacedFromOtherParentDelta) {
|
|
307
|
+
return {
|
|
308
|
+
kind: "AnnotationMovedAndReplacedFromOtherParent",
|
|
309
|
+
oldParent: delta.oldParent.id,
|
|
310
|
+
oldIndex: delta.oldIndex,
|
|
311
|
+
replacedAnnotation: delta.replacedAnnotation.id,
|
|
312
|
+
replacedAnnotationNodes: serializeNodeBases([delta.replacedAnnotation]),
|
|
313
|
+
newParent: delta.newParent.id,
|
|
314
|
+
newIndex: delta.newIndex,
|
|
315
|
+
movedAnnotation: delta.movedAnnotation.id
|
|
316
|
+
} as AnnotationMovedAndReplacedFromOtherParentSerializedDelta;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
if (delta instanceof AnnotationMovedAndReplacedInSameParentDelta) {
|
|
320
|
+
return {
|
|
321
|
+
kind: "AnnotationMovedAndReplacedInSameParent",
|
|
322
|
+
parent: delta.parent.id,
|
|
323
|
+
oldIndex: delta.oldIndex,
|
|
324
|
+
newIndex: delta.newIndex,
|
|
325
|
+
replacedAnnotation: delta.replacedAnnotation.id,
|
|
326
|
+
replacedAnnotationNodes: serializeNodeBases([delta.replacedAnnotation]),
|
|
327
|
+
movedAnnotation: delta.movedAnnotation.id
|
|
328
|
+
} as AnnotationMovedAndReplacedInSameParentSerializedDelta;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
if (delta instanceof ReferenceAddedDelta) {
|
|
332
|
+
return {
|
|
333
|
+
kind: "ReferenceAdded",
|
|
334
|
+
parent: delta.parent.id,
|
|
335
|
+
reference: metaPointerFor(delta.reference),
|
|
336
|
+
index: delta.index,
|
|
337
|
+
newTarget: idFrom(delta.newTarget)
|
|
338
|
+
} as ReferenceAddedSerializedDelta;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
if (delta instanceof ReferenceDeletedDelta) {
|
|
342
|
+
return {
|
|
343
|
+
kind: "ReferenceDeleted",
|
|
344
|
+
parent: delta.parent.id,
|
|
345
|
+
reference: metaPointerFor(delta.reference),
|
|
346
|
+
index: delta.index,
|
|
347
|
+
deletedTarget: idFrom(delta.deletedTarget)
|
|
348
|
+
} as ReferenceDeletedSerializedDelta;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
if (delta instanceof ReferenceChangedDelta) {
|
|
352
|
+
return {
|
|
353
|
+
kind: "ReferenceChanged",
|
|
354
|
+
parent: delta.parent.id,
|
|
355
|
+
reference: metaPointerFor(delta.reference),
|
|
356
|
+
index: delta.index,
|
|
357
|
+
newTarget: idFrom(delta.newTarget),
|
|
358
|
+
oldTarget: idFrom(delta.oldTarget)
|
|
359
|
+
} as ReferenceChangedSerializedDelta;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
if (delta instanceof EntryMovedFromOtherReferenceDelta) {
|
|
363
|
+
return {
|
|
364
|
+
kind: "EntryMovedFromOtherReference",
|
|
365
|
+
oldParent: delta.oldParent.id,
|
|
366
|
+
oldReference: metaPointerFor(delta.oldReference),
|
|
367
|
+
oldIndex: delta.oldIndex,
|
|
368
|
+
newParent: delta.newParent.id,
|
|
369
|
+
newReference: metaPointerFor(delta.newReference),
|
|
370
|
+
newIndex: delta.newIndex,
|
|
371
|
+
movedTarget: idFrom(delta.movedTarget)
|
|
372
|
+
} as EntryMovedFromOtherReferenceSerializedDelta;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
if (delta instanceof EntryMovedFromOtherReferenceInSameParentDelta) {
|
|
376
|
+
return {
|
|
377
|
+
kind: "EntryMovedFromOtherReferenceInSameParent",
|
|
378
|
+
parent: delta.parent.id,
|
|
379
|
+
oldReference: metaPointerFor(delta.oldReference),
|
|
380
|
+
oldIndex: delta.oldIndex,
|
|
381
|
+
newReference: metaPointerFor(delta.newReference),
|
|
382
|
+
newIndex: delta.newIndex,
|
|
383
|
+
movedTarget: idFrom(delta.movedTarget)
|
|
384
|
+
} as EntryMovedFromOtherReferenceInSameParentSerializedDelta;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
if (delta instanceof EntryMovedInSameReferenceDelta) {
|
|
388
|
+
return {
|
|
389
|
+
kind: "EntryMovedInSameReference",
|
|
390
|
+
parent: delta.parent.id,
|
|
391
|
+
reference: metaPointerFor(delta.reference),
|
|
392
|
+
oldIndex: delta.oldIndex,
|
|
393
|
+
newIndex: delta.newIndex,
|
|
394
|
+
movedTarget: idFrom(delta.movedTarget)
|
|
395
|
+
} as EntryMovedInSameReferenceSerializedDelta;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
if (delta instanceof EntryMovedAndReplacedFromOtherReferenceDelta) {
|
|
399
|
+
return {
|
|
400
|
+
kind: "EntryMovedAndReplacedFromOtherReference",
|
|
401
|
+
newParent: delta.newParent.id,
|
|
402
|
+
newReference: metaPointerFor(delta.newReference),
|
|
403
|
+
newIndex: delta.newIndex,
|
|
404
|
+
movedTarget: idFrom(delta.movedTarget),
|
|
405
|
+
oldParent: delta.oldParent.id,
|
|
406
|
+
oldReference: metaPointerFor(delta.oldReference),
|
|
407
|
+
oldIndex: delta.oldIndex,
|
|
408
|
+
replacedTarget: idFrom(delta.replacedTarget)
|
|
409
|
+
} as EntryMovedAndReplacedFromOtherReferenceSerializedDelta;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
if (delta instanceof EntryMovedAndReplacedFromOtherReferenceInSameParentDelta) {
|
|
413
|
+
return {
|
|
414
|
+
kind: "EntryMovedAndReplacedFromOtherReferenceInSameParent",
|
|
415
|
+
parent: delta.parent.id,
|
|
416
|
+
oldReference: metaPointerFor(delta.oldReference),
|
|
417
|
+
oldIndex: delta.oldIndex,
|
|
418
|
+
newReference: metaPointerFor(delta.newReference),
|
|
419
|
+
newIndex: delta.newIndex,
|
|
420
|
+
movedTarget: idFrom(delta.movedTarget),
|
|
421
|
+
replacedTarget: idFrom(delta.replacedTarget)
|
|
422
|
+
} as EntryMovedAndReplacedFromOtherReferenceInSameParentSerializedDelta;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
if (delta instanceof EntryMovedAndReplacedInSameReferenceDelta) {
|
|
426
|
+
return {
|
|
427
|
+
kind: "EntryMovedAndReplacedInSameReference",
|
|
428
|
+
parent: delta.parent.id,
|
|
429
|
+
reference: metaPointerFor(delta.reference),
|
|
430
|
+
oldIndex: delta.oldIndex,
|
|
431
|
+
newIndex: delta.newIndex,
|
|
432
|
+
movedTarget: idFrom(delta.movedTarget),
|
|
433
|
+
replacedTarget: idFrom(delta.replacedTarget)
|
|
434
|
+
} as EntryMovedAndReplacedInSameReferenceSerializedDelta;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
if (delta instanceof CompositeDelta) {
|
|
438
|
+
return {
|
|
439
|
+
kind: "Composite",
|
|
440
|
+
parts: delta.parts.map(serializeDelta)
|
|
441
|
+
} as CompositeSerializedDelta;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
if (delta instanceof NoOpDelta) {
|
|
445
|
+
return {
|
|
446
|
+
kind: "NoOp"
|
|
447
|
+
} as NoOpSerializedDelta;
|
|
448
|
+
}
|
|
449
|
+
|
|
271
450
|
throw new Error(`serialization of delta of class ${delta.constructor.name} not implemented`);
|
|
272
451
|
}
|