@lionweb/delta-protocol-common 0.7.0-beta.23 → 0.7.0-beta.24
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/payload/command-types.d.ts +4 -4
- package/dist/payload/command-types.d.ts.map +1 -1
- package/dist/payload/event-types.d.ts +7 -7
- package/dist/payload/event-types.d.ts.map +1 -1
- package/dist/translators/delta-to-command.d.ts +9 -1
- package/dist/translators/delta-to-command.d.ts.map +1 -1
- package/dist/translators/delta-to-command.js +275 -271
- package/dist/translators/delta-to-command.js.map +1 -1
- package/dist/translators/delta-to-event.d.ts +16 -1
- package/dist/translators/delta-to-event.d.ts.map +1 -1
- package/dist/translators/delta-to-event.js +36 -29
- package/dist/translators/delta-to-event.js.map +1 -1
- package/dist/translators/event-to-delta.d.ts +3 -2
- package/dist/translators/event-to-delta.d.ts.map +1 -1
- package/dist/translators/event-to-delta.js +6 -6
- package/dist/translators/event-to-delta.js.map +1 -1
- package/dist/translators/index.d.ts +2 -2
- package/dist/translators/index.d.ts.map +1 -1
- package/dist/translators/index.js +2 -2
- package/dist/translators/index.js.map +1 -1
- package/package.json +5 -5
- package/src/payload/command-types.ts +4 -4
- package/src/payload/event-types.ts +7 -7
- package/src/translators/delta-to-command.ts +289 -276
- package/src/translators/delta-to-event.ts +352 -315
- package/src/translators/event-to-delta.ts +19 -10
- package/src/translators/index.ts +2 -2
|
@@ -54,7 +54,12 @@ import {
|
|
|
54
54
|
ReferenceChangedDelta,
|
|
55
55
|
ReferenceDeletedDelta
|
|
56
56
|
} from "@lionweb/class-core"
|
|
57
|
-
import {
|
|
57
|
+
import {
|
|
58
|
+
builtinPropertyValueDeserializer,
|
|
59
|
+
featureResolversFor,
|
|
60
|
+
PropertyValueDeserializer,
|
|
61
|
+
unresolved
|
|
62
|
+
} from "@lionweb/core"
|
|
58
63
|
import { LionWebId, LionWebJsonChunk } from "@lionweb/json"
|
|
59
64
|
import {
|
|
60
65
|
AnnotationAddedEvent,
|
|
@@ -89,7 +94,7 @@ import {
|
|
|
89
94
|
ReferenceAddedEvent,
|
|
90
95
|
ReferenceChangedEvent,
|
|
91
96
|
ReferenceDeletedEvent
|
|
92
|
-
} from "../payload/
|
|
97
|
+
} from "../payload/index.js"
|
|
93
98
|
|
|
94
99
|
/**
|
|
95
100
|
* Type def. for a function that translates {@link Event events} to their corresponding {@link IDelta deltas},
|
|
@@ -101,12 +106,16 @@ export type EventToDeltaTranslator = (event: Event, idMapping: IdMapping) => IDe
|
|
|
101
106
|
* @return a {@link EventToDeltaTranslator} for the languages given as {@link ILanguageBase language bases},
|
|
102
107
|
* with the given {@link IdMapping `idMapping`} and {@link Deserializer `deserialized` deserializer function}.
|
|
103
108
|
*/
|
|
104
|
-
export const eventToDeltaTranslator = (
|
|
109
|
+
export const eventToDeltaTranslator = (
|
|
110
|
+
languageBases: ILanguageBase[],
|
|
111
|
+
deserialized: Deserializer<INodeBase[]>,
|
|
112
|
+
propertyValueDeserializer: PropertyValueDeserializer = builtinPropertyValueDeserializer
|
|
113
|
+
): EventToDeltaTranslator => {
|
|
105
114
|
|
|
106
115
|
const eventAsDelta = (event: Event, idMapping: IdMapping): IDelta | undefined => {
|
|
107
116
|
|
|
108
117
|
const deserializedNodeFrom = (chunk: LionWebJsonChunk): INodeBase => {
|
|
109
|
-
const nodes = deserialized(chunk,
|
|
118
|
+
const nodes = deserialized(chunk, /* dependentNodes: */ [], idMapping) // (deserializer should take care of installing delta receiver)
|
|
110
119
|
if (nodes.length !== 1) {
|
|
111
120
|
throw new Error(`expected exactly 1 root node in deserialization of chunk in event, but got ${nodes.length}`)
|
|
112
121
|
}
|
|
@@ -132,22 +141,22 @@ export const eventToDeltaTranslator = (languageBases: ILanguageBase[], deseriali
|
|
|
132
141
|
return undefined
|
|
133
142
|
}
|
|
134
143
|
case "PropertyAdded": { // § 6.6.3.1
|
|
135
|
-
const { node, property, newValue } = event as PropertyAddedEvent
|
|
144
|
+
const { node, property, newValue } = event as PropertyAddedEvent
|
|
136
145
|
const resolvedNode = idMapping.fromId(node)
|
|
137
146
|
const resolvedProperty = resolvedPropertyFrom(property, resolvedNode.classifier)
|
|
138
|
-
return new PropertyAddedDelta(resolvedNode, resolvedProperty, newValue)
|
|
147
|
+
return new PropertyAddedDelta(resolvedNode, resolvedProperty, propertyValueDeserializer.deserializeValue(newValue, resolvedProperty))
|
|
139
148
|
}
|
|
140
149
|
case "PropertyDeleted": { // § 6.6.3.2
|
|
141
|
-
const { node, property, oldValue } = event as PropertyDeletedEvent
|
|
150
|
+
const { node, property, oldValue } = event as PropertyDeletedEvent
|
|
142
151
|
const resolvedNode = idMapping.fromId(node)
|
|
143
152
|
const resolvedProperty = resolvedPropertyFrom(property, resolvedNode.classifier)
|
|
144
|
-
return new PropertyDeletedDelta(resolvedNode, resolvedProperty, oldValue)
|
|
153
|
+
return new PropertyDeletedDelta(resolvedNode, resolvedProperty, propertyValueDeserializer.deserializeValue(oldValue, resolvedProperty))
|
|
145
154
|
}
|
|
146
155
|
case "PropertyChanged": { // § 6.6.3.3
|
|
147
|
-
const { node, property, newValue, oldValue } = event as PropertyChangedEvent
|
|
156
|
+
const { node, property, newValue, oldValue } = event as PropertyChangedEvent
|
|
148
157
|
const resolvedNode = idMapping.fromId(node)
|
|
149
158
|
const resolvedProperty = resolvedPropertyFrom(property, resolvedNode.classifier)
|
|
150
|
-
return new PropertyChangedDelta(resolvedNode, resolvedProperty, oldValue, newValue)
|
|
159
|
+
return new PropertyChangedDelta(resolvedNode, resolvedProperty, propertyValueDeserializer.deserializeValue(oldValue, resolvedProperty), propertyValueDeserializer.deserializeValue(newValue, resolvedProperty))
|
|
151
160
|
}
|
|
152
161
|
case "ChildAdded": { // § 6.6.4.1
|
|
153
162
|
const { parent, newChild, containment, index } = event as ChildAddedEvent
|
package/src/translators/index.ts
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
17
|
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
18
|
+
export { deltaToCommandTranslator } from "./delta-to-command.js"
|
|
19
|
+
export { deltaToEventTranslator } from "./delta-to-event.js"
|
|
20
20
|
export { eventToDeltaTranslator } from "./event-to-delta.js"
|
|
21
21
|
export type { EventToDeltaTranslator } from "./event-to-delta.js"
|
|
22
22
|
|