@lionweb/delta-protocol-common 0.7.0-beta.23 → 0.7.0-beta.25

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.
Files changed (31) hide show
  1. package/dist/payload/command-types.d.ts +4 -4
  2. package/dist/payload/command-types.d.ts.map +1 -1
  3. package/dist/payload/event-types.d.ts +7 -7
  4. package/dist/payload/event-types.d.ts.map +1 -1
  5. package/dist/payload/query-types.d.ts +11 -0
  6. package/dist/payload/query-types.d.ts.map +1 -1
  7. package/dist/payload/query-types.js.map +1 -1
  8. package/dist/translators/delta-to-command.d.ts +9 -1
  9. package/dist/translators/delta-to-command.d.ts.map +1 -1
  10. package/dist/translators/delta-to-command.js +275 -271
  11. package/dist/translators/delta-to-command.js.map +1 -1
  12. package/dist/translators/delta-to-event.d.ts +16 -1
  13. package/dist/translators/delta-to-event.d.ts.map +1 -1
  14. package/dist/translators/delta-to-event.js +36 -29
  15. package/dist/translators/delta-to-event.js.map +1 -1
  16. package/dist/translators/event-to-delta.d.ts +3 -2
  17. package/dist/translators/event-to-delta.d.ts.map +1 -1
  18. package/dist/translators/event-to-delta.js +6 -6
  19. package/dist/translators/event-to-delta.js.map +1 -1
  20. package/dist/translators/index.d.ts +2 -2
  21. package/dist/translators/index.d.ts.map +1 -1
  22. package/dist/translators/index.js +2 -2
  23. package/dist/translators/index.js.map +1 -1
  24. package/package.json +5 -5
  25. package/src/payload/command-types.ts +4 -4
  26. package/src/payload/event-types.ts +7 -7
  27. package/src/payload/query-types.ts +15 -0
  28. package/src/translators/delta-to-command.ts +289 -276
  29. package/src/translators/delta-to-event.ts +352 -315
  30. package/src/translators/event-to-delta.ts +19 -10
  31. 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 { featureResolversFor, unresolved } from "@lionweb/core"
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/event-types.js"
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 = (languageBases: ILanguageBase[], deserialized: Deserializer<INodeBase[]>): 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, undefined, idMapping) // (deserializer should take care of installing delta receiver)
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<unknown>
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<unknown>
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<unknown>
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
@@ -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 { deltaAsCommand } from "./delta-to-command.js"
19
- export { deltaAsEvent } from "./delta-to-event.js"
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