@lionweb/delta-protocol-client 0.7.0-beta.21 → 0.7.0-beta.22
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/client.d.ts +5 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +12 -8
- package/dist/client.js.map +1 -1
- package/package.json +7 -7
- package/src/client.ts +12 -6
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeltaReceiver, IdMapping, ILanguageBase, INodeBase, NodeBaseFactory } from "@lionweb/class-core";
|
|
1
|
+
import { DeltaReceiver, Deserializer, IdMapping, ILanguageBase, INodeBase, NodeBaseFactory } from "@lionweb/class-core";
|
|
2
2
|
import { LionWebId, LionWebJsonChunk } from "@lionweb/json";
|
|
3
3
|
import { Command, Event, QueryMessage, SemanticLogger, SubscribeToPartitionChangesParameters } from "@lionweb/delta-protocol-common";
|
|
4
4
|
import { LowLevelClientInstantiator } from "./low-level-client.js";
|
|
@@ -22,6 +22,7 @@ export declare class LionWebClient {
|
|
|
22
22
|
model: INodeBase[];
|
|
23
23
|
readonly idMapping: IdMapping;
|
|
24
24
|
readonly createNode: NodeBaseFactory;
|
|
25
|
+
readonly deserializer: Deserializer<INodeBase[]>;
|
|
25
26
|
private readonly effectiveReceiveDelta;
|
|
26
27
|
private readonly lowLevelClient;
|
|
27
28
|
private _participationId?;
|
|
@@ -34,7 +35,9 @@ export declare class LionWebClient {
|
|
|
34
35
|
static create({ clientId, url, languageBases, instantiateDeltaReceiverForwardingTo, serializationChunk, semanticLogger, lowLevelClientInstantiator }: LionWebClientParameters): Promise<LionWebClient>;
|
|
35
36
|
/**
|
|
36
37
|
* Sets the model held by the client to the given model, discarding the previous one.
|
|
37
|
-
*
|
|
38
|
+
* **Note**:
|
|
39
|
+
* - The model is assumed to be injected with `this.effectiveReceiveDelta` — e.g. using this.createNode(...) or this.deserialize(...)`!
|
|
40
|
+
* - No commands will be sent because of this action.
|
|
38
41
|
*/
|
|
39
42
|
setModel(newModel: INodeBase[]): void;
|
|
40
43
|
disconnect(): Promise<void>;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAiBA,OAAO,EAIH,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAiBA,OAAO,EAIH,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,EACb,SAAS,EAGT,eAAe,EAIlB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAG3D,OAAO,EAOH,OAAO,EAGP,KAAK,EAIL,YAAY,EAGZ,cAAc,EAMd,qCAAqC,EAIxC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAkB,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAMlF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,EAAE,SAAS,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,0BAA0B,EAAE,0BAA0B,CAAC,KAAK,GAAG,YAAY,EAAE,OAAO,GAAG,YAAY,CAAC,CAAA;IACpG,kBAAkB,CAAC,EAAE,gBAAgB,CAAA;IACrC,oCAAoC,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,aAAa,CAAA;IACtF,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC,CAAA;AAGD;;GAEG;AACH,qBAAa,aAAa;aAcF,QAAQ,EAAE,SAAS;IAC5B,KAAK,EAAE,SAAS,EAAE;aACT,SAAS,EAAE,SAAS;aACpB,UAAU,EAAE,eAAe;aAC3B,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAlBnC,OAAO,CAAC,gBAAgB,CAAC,CAAW;IAEpC,IAAI,eAAe,uBAElB;IAED,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,0BAA0B,CAAK;IAGvC,OAAO;IAUP,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2D;IAE5F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CACG;WAE3B,MAAM,CAAC,EAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,oCAAoC,EAAE,kBAAkB,EAAE,cAAc,EAAE,0BAA0B,EAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IA2F1M;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;IAKxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAKpB;IAEA,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC;IASnH,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUjG,gCAAgC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IASzF,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAelH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC,OAAO,CAAC,aAAa;IAMrB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAUxC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAW9C"}
|
package/dist/client.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
//
|
|
15
15
|
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
-
import { allNodesFrom, applyDelta, combinedFactoryFor, IdMapping, nodeBaseDeserializer, PartitionAddedDelta, PartitionDeletedDelta, serializeDelta } from "@lionweb/class-core";
|
|
17
|
+
import { allNodesFrom, applyDelta, combinedFactoryFor, IdMapping, nodeBaseDeserializer, nodeBaseDeserializerWithIdMapping, PartitionAddedDelta, PartitionDeletedDelta, serializeDelta } from "@lionweb/class-core";
|
|
18
18
|
import { Concept } from "@lionweb/core";
|
|
19
19
|
import { byIdMap } from "@lionweb/ts-utils";
|
|
20
20
|
import { ansi, ClientAppliedEvent, ClientDidNotApplyEventFromOwnCommand, ClientHadProblem, ClientReceivedMessage, ClientSentMessage, deltaAsCommand, DeltaOccurredOnClient, eventToDeltaTranslator, isEvent, isQueryResponse, semanticLoggerFunctionFrom } from "@lionweb/delta-protocol-common";
|
|
@@ -28,11 +28,12 @@ export class LionWebClient {
|
|
|
28
28
|
return this._participationId;
|
|
29
29
|
}
|
|
30
30
|
// TODO could also get this from the priority queue (which would need to be adapted for that)
|
|
31
|
-
constructor(clientId, model, idMapping, createNode, effectiveReceiveDelta, lowLevelClient) {
|
|
31
|
+
constructor(clientId, model, idMapping, createNode, deserializer, effectiveReceiveDelta, lowLevelClient) {
|
|
32
32
|
this.clientId = clientId;
|
|
33
33
|
this.model = model;
|
|
34
34
|
this.idMapping = idMapping;
|
|
35
35
|
this.createNode = createNode;
|
|
36
|
+
this.deserializer = deserializer;
|
|
36
37
|
this.effectiveReceiveDelta = effectiveReceiveDelta;
|
|
37
38
|
this.lowLevelClient = lowLevelClient;
|
|
38
39
|
this.signedOff = false;
|
|
@@ -75,10 +76,11 @@ export class LionWebClient {
|
|
|
75
76
|
}
|
|
76
77
|
};
|
|
77
78
|
const effectiveReceiveDelta = instantiateDeltaReceiverForwardingTo === undefined ? commandSender : instantiateDeltaReceiverForwardingTo(commandSender);
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const
|
|
79
|
+
const { roots: model, idMapping } = serializationChunk === undefined
|
|
80
|
+
? { roots: [], idMapping: new IdMapping({}) }
|
|
81
|
+
: nodeBaseDeserializerWithIdMapping(languageBases, effectiveReceiveDelta)(serializationChunk);
|
|
82
|
+
const deserializer = nodeBaseDeserializer(languageBases, effectiveReceiveDelta);
|
|
83
|
+
const eventAsDelta = eventToDeltaTranslator(languageBases, deserializer);
|
|
82
84
|
loading = false;
|
|
83
85
|
const processEvent = (event) => {
|
|
84
86
|
lionWebClient.lastReceivedSequenceNumber = event.sequenceNumber;
|
|
@@ -125,12 +127,14 @@ export class LionWebClient {
|
|
|
125
127
|
}
|
|
126
128
|
};
|
|
127
129
|
const lowLevelClient = await lowLevelClientInstantiator({ url, clientId, receiveMessageOnClient /* no logging parameter */ });
|
|
128
|
-
const lionWebClient = new LionWebClient(clientId, model, idMapping, combinedFactoryFor(languageBases, effectiveReceiveDelta), effectiveReceiveDelta, lowLevelClient); // Note: we need this `lionWebClient` constant non-inlined for write-access to lastReceivedSequenceNumber and queryResolveById.
|
|
130
|
+
const lionWebClient = new LionWebClient(clientId, model, idMapping, combinedFactoryFor(languageBases, effectiveReceiveDelta), deserializer, effectiveReceiveDelta, lowLevelClient); // Note: we need this `lionWebClient` constant non-inlined for write-access to lastReceivedSequenceNumber and queryResolveById.
|
|
129
131
|
return lionWebClient;
|
|
130
132
|
}
|
|
131
133
|
/**
|
|
132
134
|
* Sets the model held by the client to the given model, discarding the previous one.
|
|
133
|
-
*
|
|
135
|
+
* **Note**:
|
|
136
|
+
* - The model is assumed to be injected with `this.effectiveReceiveDelta` — e.g. using this.createNode(...) or this.deserialize(...)`!
|
|
137
|
+
* - No commands will be sent because of this action.
|
|
134
138
|
*/
|
|
135
139
|
setModel(newModel) {
|
|
136
140
|
this.model = newModel;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EACH,YAAY,EACZ,UAAU,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionweb/delta-protocol-client",
|
|
3
|
-
"version": "0.7.0-beta.
|
|
3
|
+
"version": "0.7.0-beta.22",
|
|
4
4
|
"description": "Part of the implementation of a delta protocol client not tied to a specific message transport protocol",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"release": "npm publish"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@lionweb/class-core": "0.7.0-beta.
|
|
31
|
-
"@lionweb/core": "0.7.0-beta.
|
|
32
|
-
"@lionweb/delta-protocol-common": "0.7.0-beta.
|
|
33
|
-
"@lionweb/delta-protocol-client": "0.7.0-beta.
|
|
34
|
-
"@lionweb/json": "0.7.0-beta.
|
|
35
|
-
"@lionweb/ts-utils": "0.7.0-beta.
|
|
30
|
+
"@lionweb/class-core": "0.7.0-beta.22",
|
|
31
|
+
"@lionweb/core": "0.7.0-beta.22",
|
|
32
|
+
"@lionweb/delta-protocol-common": "0.7.0-beta.22",
|
|
33
|
+
"@lionweb/delta-protocol-client": "0.7.0-beta.22",
|
|
34
|
+
"@lionweb/json": "0.7.0-beta.22",
|
|
35
|
+
"@lionweb/ts-utils": "0.7.0-beta.22"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/src/client.ts
CHANGED
|
@@ -20,10 +20,12 @@ import {
|
|
|
20
20
|
applyDelta,
|
|
21
21
|
combinedFactoryFor,
|
|
22
22
|
DeltaReceiver,
|
|
23
|
+
Deserializer,
|
|
23
24
|
IdMapping,
|
|
24
25
|
ILanguageBase,
|
|
25
26
|
INodeBase,
|
|
26
27
|
nodeBaseDeserializer,
|
|
28
|
+
nodeBaseDeserializerWithIdMapping,
|
|
27
29
|
NodeBaseFactory,
|
|
28
30
|
PartitionAddedDelta,
|
|
29
31
|
PartitionDeletedDelta,
|
|
@@ -102,6 +104,7 @@ export class LionWebClient {
|
|
|
102
104
|
public model: INodeBase[],
|
|
103
105
|
public readonly idMapping: IdMapping,
|
|
104
106
|
public readonly createNode: NodeBaseFactory,
|
|
107
|
+
public readonly deserializer: Deserializer<INodeBase[]>,
|
|
105
108
|
private readonly effectiveReceiveDelta: DeltaReceiver,
|
|
106
109
|
private readonly lowLevelClient: LowLevelClient<Command | QueryMessage>
|
|
107
110
|
) {}
|
|
@@ -136,11 +139,11 @@ export class LionWebClient {
|
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
141
|
const effectiveReceiveDelta = instantiateDeltaReceiverForwardingTo === undefined ? commandSender : instantiateDeltaReceiverForwardingTo(commandSender)
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
const
|
|
143
|
-
const eventAsDelta = eventToDeltaTranslator(languageBases,
|
|
142
|
+
const { roots: model, idMapping } = serializationChunk === undefined
|
|
143
|
+
? { roots: [], idMapping: new IdMapping({}) }
|
|
144
|
+
: nodeBaseDeserializerWithIdMapping(languageBases, effectiveReceiveDelta)(serializationChunk)
|
|
145
|
+
const deserializer = nodeBaseDeserializer(languageBases, effectiveReceiveDelta)
|
|
146
|
+
const eventAsDelta = eventToDeltaTranslator(languageBases, deserializer)
|
|
144
147
|
loading = false
|
|
145
148
|
|
|
146
149
|
const processEvent = (event: Event) => {
|
|
@@ -195,6 +198,7 @@ export class LionWebClient {
|
|
|
195
198
|
model,
|
|
196
199
|
idMapping,
|
|
197
200
|
combinedFactoryFor(languageBases, effectiveReceiveDelta),
|
|
201
|
+
deserializer,
|
|
198
202
|
effectiveReceiveDelta,
|
|
199
203
|
lowLevelClient
|
|
200
204
|
) // Note: we need this `lionWebClient` constant non-inlined for write-access to lastReceivedSequenceNumber and queryResolveById.
|
|
@@ -203,7 +207,9 @@ export class LionWebClient {
|
|
|
203
207
|
|
|
204
208
|
/**
|
|
205
209
|
* Sets the model held by the client to the given model, discarding the previous one.
|
|
206
|
-
*
|
|
210
|
+
* **Note**:
|
|
211
|
+
* - The model is assumed to be injected with `this.effectiveReceiveDelta` — e.g. using this.createNode(...) or this.deserialize(...)`!
|
|
212
|
+
* - No commands will be sent because of this action.
|
|
207
213
|
*/
|
|
208
214
|
setModel(newModel: INodeBase[]) {
|
|
209
215
|
this.model = newModel
|