@lionweb/delta-protocol-client 0.7.0-beta.24 → 0.7.0-beta.26
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 +4 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +21 -4
- package/dist/client.js.map +1 -1
- package/package.json +7 -7
- package/src/client.ts +28 -5
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeltaReceiver, Deserializer, IdMapping, ILanguageBase, INodeBase, NodeBaseFactory } from "@lionweb/class-core";
|
|
1
|
+
import { DeltaReceiver, Deserializer, IdMapping, ILanguageBase, INodeBase, NodeBaseFactory, RootsWithIdMapping } 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,7 +22,7 @@ export declare class LionWebClient {
|
|
|
22
22
|
model: INodeBase[];
|
|
23
23
|
readonly idMapping: IdMapping;
|
|
24
24
|
readonly createNode: NodeBaseFactory;
|
|
25
|
-
readonly deserializer: Deserializer<
|
|
25
|
+
readonly deserializer: Deserializer<RootsWithIdMapping>;
|
|
26
26
|
private readonly effectiveReceiveDelta;
|
|
27
27
|
private readonly lowLevelClient;
|
|
28
28
|
private _participationId?;
|
|
@@ -53,6 +53,8 @@ export declare class LionWebClient {
|
|
|
53
53
|
signOn(queryId: LionWebId, repositoryId: LionWebId): Promise<void>;
|
|
54
54
|
signOff(queryId: LionWebId): Promise<void>;
|
|
55
55
|
reconnect(queryId: LionWebId, participationId: LionWebId, lastReceivedSequenceNumber: number): Promise<void>;
|
|
56
|
+
getAvailableIds(queryId: LionWebId, count: number): Promise<LionWebId[]>;
|
|
57
|
+
listPartitions(queryId: LionWebId): Promise<LionWebJsonChunk>;
|
|
56
58
|
private static checkWhetherPartition;
|
|
57
59
|
private checkSignedOn;
|
|
58
60
|
addPartition(partition: INodeBase): 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,YAAY,EACZ,SAAS,EACT,aAAa,EACb,SAAS,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
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,
|
|
17
|
+
import { allNodesFrom, applyDelta, combinedFactoryFor, IdMapping, 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, DeltaOccurredOnClient, deltaToCommandTranslator, eventToDeltaTranslator, isEvent, isQueryResponse, semanticLoggerFunctionFrom } from "@lionweb/delta-protocol-common";
|
|
@@ -80,8 +80,8 @@ export class LionWebClient {
|
|
|
80
80
|
const { roots: model, idMapping } = serializationChunk === undefined
|
|
81
81
|
? { roots: [], idMapping: new IdMapping({}) }
|
|
82
82
|
: nodeBaseDeserializerWithIdMapping(languageBases, effectiveReceiveDelta)(serializationChunk);
|
|
83
|
-
const
|
|
84
|
-
const eventAsDelta = eventToDeltaTranslator(languageBases,
|
|
83
|
+
const deserializerWithIdMapping = nodeBaseDeserializerWithIdMapping(languageBases, effectiveReceiveDelta);
|
|
84
|
+
const eventAsDelta = eventToDeltaTranslator(languageBases, deserializerWithIdMapping);
|
|
85
85
|
loading = false;
|
|
86
86
|
const processEvent = (event) => {
|
|
87
87
|
lionWebClient.lastReceivedSequenceNumber = event.sequenceNumber;
|
|
@@ -128,7 +128,7 @@ export class LionWebClient {
|
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
130
|
const lowLevelClient = await lowLevelClientInstantiator({ url, clientId, receiveMessageOnClient /* no logging parameter */ });
|
|
131
|
-
const lionWebClient = new LionWebClient(clientId, model, idMapping, combinedFactoryFor(languageBases, effectiveReceiveDelta),
|
|
131
|
+
const lionWebClient = new LionWebClient(clientId, model, idMapping, combinedFactoryFor(languageBases, effectiveReceiveDelta), deserializerWithIdMapping, effectiveReceiveDelta, lowLevelClient); // Note: we need this `lionWebClient` constant non-inlined for write-access to lastReceivedSequenceNumber and queryResolveById.
|
|
132
132
|
return lionWebClient;
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
@@ -204,6 +204,23 @@ export class LionWebClient {
|
|
|
204
204
|
this._participationId = participationId;
|
|
205
205
|
this.lastReceivedSequenceNumber = response.lastReceivedSequenceNumber;
|
|
206
206
|
}
|
|
207
|
+
async getAvailableIds(queryId, count) {
|
|
208
|
+
const response = await this.makeQuery({
|
|
209
|
+
messageKind: "GetAvailableIdsRequest",
|
|
210
|
+
queryId,
|
|
211
|
+
count,
|
|
212
|
+
protocolMessages: []
|
|
213
|
+
});
|
|
214
|
+
return response.ids;
|
|
215
|
+
}
|
|
216
|
+
async listPartitions(queryId) {
|
|
217
|
+
const response = await this.makeQuery({
|
|
218
|
+
messageKind: "ListPartitionsRequest",
|
|
219
|
+
queryId,
|
|
220
|
+
protocolMessages: []
|
|
221
|
+
});
|
|
222
|
+
return response.partitions;
|
|
223
|
+
}
|
|
207
224
|
// commands, in order of the specification (§ 6.5):
|
|
208
225
|
static checkWhetherPartition(node) {
|
|
209
226
|
const { classifier } = node;
|
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,EAGlB,SAAS,EAGT,
|
|
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.26",
|
|
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.26",
|
|
31
|
+
"@lionweb/core": "0.7.0-beta.26",
|
|
32
|
+
"@lionweb/delta-protocol-common": "0.7.0-beta.26",
|
|
33
|
+
"@lionweb/delta-protocol-client": "0.7.0-beta.26",
|
|
34
|
+
"@lionweb/json": "0.7.0-beta.26",
|
|
35
|
+
"@lionweb/ts-utils": "0.7.0-beta.26"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/src/client.ts
CHANGED
|
@@ -24,11 +24,11 @@ import {
|
|
|
24
24
|
IdMapping,
|
|
25
25
|
ILanguageBase,
|
|
26
26
|
INodeBase,
|
|
27
|
-
nodeBaseDeserializer,
|
|
28
27
|
nodeBaseDeserializerWithIdMapping,
|
|
29
28
|
NodeBaseFactory,
|
|
30
29
|
PartitionAddedDelta,
|
|
31
30
|
PartitionDeletedDelta,
|
|
31
|
+
RootsWithIdMapping,
|
|
32
32
|
serializeDelta
|
|
33
33
|
} from "@lionweb/class-core"
|
|
34
34
|
import { Concept } from "@lionweb/core"
|
|
@@ -47,8 +47,12 @@ import {
|
|
|
47
47
|
deltaToCommandTranslator,
|
|
48
48
|
Event,
|
|
49
49
|
eventToDeltaTranslator,
|
|
50
|
+
GetAvailableIdsRequest,
|
|
51
|
+
GetAvailableIdsResponse,
|
|
50
52
|
isEvent,
|
|
51
53
|
isQueryResponse,
|
|
54
|
+
ListPartitionsRequest,
|
|
55
|
+
ListPartitionsResponse,
|
|
52
56
|
QueryMessage,
|
|
53
57
|
ReconnectRequest,
|
|
54
58
|
ReconnectResponse,
|
|
@@ -104,7 +108,7 @@ export class LionWebClient {
|
|
|
104
108
|
public model: INodeBase[],
|
|
105
109
|
public readonly idMapping: IdMapping,
|
|
106
110
|
public readonly createNode: NodeBaseFactory,
|
|
107
|
-
public readonly deserializer: Deserializer<
|
|
111
|
+
public readonly deserializer: Deserializer<RootsWithIdMapping>,
|
|
108
112
|
private readonly effectiveReceiveDelta: DeltaReceiver,
|
|
109
113
|
private readonly lowLevelClient: LowLevelClient<Command | QueryMessage>
|
|
110
114
|
) {}
|
|
@@ -144,8 +148,8 @@ export class LionWebClient {
|
|
|
144
148
|
const { roots: model, idMapping } = serializationChunk === undefined
|
|
145
149
|
? { roots: [], idMapping: new IdMapping({}) }
|
|
146
150
|
: nodeBaseDeserializerWithIdMapping(languageBases, effectiveReceiveDelta)(serializationChunk)
|
|
147
|
-
const
|
|
148
|
-
const eventAsDelta = eventToDeltaTranslator(languageBases,
|
|
151
|
+
const deserializerWithIdMapping = nodeBaseDeserializerWithIdMapping(languageBases, effectiveReceiveDelta)
|
|
152
|
+
const eventAsDelta = eventToDeltaTranslator(languageBases, deserializerWithIdMapping)
|
|
149
153
|
loading = false
|
|
150
154
|
|
|
151
155
|
const processEvent = (event: Event) => {
|
|
@@ -200,7 +204,7 @@ export class LionWebClient {
|
|
|
200
204
|
model,
|
|
201
205
|
idMapping,
|
|
202
206
|
combinedFactoryFor(languageBases, effectiveReceiveDelta),
|
|
203
|
-
|
|
207
|
+
deserializerWithIdMapping,
|
|
204
208
|
effectiveReceiveDelta,
|
|
205
209
|
lowLevelClient
|
|
206
210
|
) // Note: we need this `lionWebClient` constant non-inlined for write-access to lastReceivedSequenceNumber and queryResolveById.
|
|
@@ -303,6 +307,25 @@ export class LionWebClient {
|
|
|
303
307
|
this.lastReceivedSequenceNumber = response.lastReceivedSequenceNumber
|
|
304
308
|
}
|
|
305
309
|
|
|
310
|
+
async getAvailableIds(queryId: LionWebId, count: number): Promise<LionWebId[]> {
|
|
311
|
+
const response = await this.makeQuery({
|
|
312
|
+
messageKind: "GetAvailableIdsRequest",
|
|
313
|
+
queryId,
|
|
314
|
+
count,
|
|
315
|
+
protocolMessages: []
|
|
316
|
+
} as GetAvailableIdsRequest) as GetAvailableIdsResponse
|
|
317
|
+
return response.ids
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
async listPartitions(queryId: LionWebId): Promise<LionWebJsonChunk> {
|
|
321
|
+
const response = await this.makeQuery({
|
|
322
|
+
messageKind: "ListPartitionsRequest",
|
|
323
|
+
queryId,
|
|
324
|
+
protocolMessages: []
|
|
325
|
+
} as ListPartitionsRequest) as ListPartitionsResponse
|
|
326
|
+
return response.partitions
|
|
327
|
+
}
|
|
328
|
+
|
|
306
329
|
|
|
307
330
|
// commands, in order of the specification (§ 6.5):
|
|
308
331
|
|