@lionweb/delta-protocol-test-cli 0.8.0-beta.1 → 0.8.0-beta.2

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.
@@ -28,9 +28,7 @@ const { clientInfo, genericError } = ansi;
28
28
  const testLanguageBase = TestLanguageBase.INSTANCE;
29
29
  const languageBases = [testLanguageBase];
30
30
  const boldRedIf = (apply, text) => apply ? genericError(text) : text;
31
- const partitionConcepts = Object.fromEntries([testLanguageBase.DataTypeTestConcept, testLanguageBase.LinkTestConcept]
32
- .map((concept) => [concept.name, concept]));
33
- // $ node dist/cli-client.js <port> <clientID> <partitionConcept> [tasks] [--${protocolLogOptionPrefix}=<path>]
31
+ // $ node dist/cli-client.js <port> <clientID> [tasks] [--${protocolLogOptionPrefix}=<path>]
34
32
  const protocolLogOptionPrefix = "--protocol-log=";
35
33
  const protocolLogPathIndex = argv.findIndex((argument) => argument.startsWith(protocolLogOptionPrefix));
36
34
  // arguments without "node" (index=0), "dist/cli-client.js" (index=1), and `${protocolLogOptionPrefix}=<path>` (optional)
@@ -41,8 +39,7 @@ if (trueArguments.length < 3) {
41
39
  Parameters (${genericError("bold red")} are missing):
42
40
  - ${boldRedIf(trueArguments.length < 1, `<port>: the port of the WebSocket where the LionWeb delta protocol repository is running on localhost`)}
43
41
  - ${boldRedIf(trueArguments.length < 2, `<clientID>: the ID that the client identifies itself with at the repository`)}
44
- - ${boldRedIf(trueArguments.length < 3, `<partitionConcept>: the name of a partition concept that gets instantiated as the model's primary partition — one of: ${Object.keys(partitionConcepts).join(", ")}`)}
45
- - ${boldRedIf(trueArguments.length < 4, `[tasks]: a comma-separated list of tasks — one of ${Object.keys(recognizedTasks).sort().join(", ")}`)}
42
+ - ${boldRedIf(trueArguments.length < 3, `[tasks]: a comma-separated list of tasks — one of ${Object.keys(recognizedTasks).sort().join(", ")}`)}
46
43
  - ${boldRedIf(protocolLogPathIndex === -1, `${protocolLogOptionPrefix}=<path>: option to configure that the client logs all messages exchanged with the repository to a file with the given path`)}
47
44
 
48
45
  ASSUMPTION: the initial (states of the models) on client(s) and repository are identical!
@@ -51,12 +48,7 @@ Parameters (${genericError("bold red")} are missing):
51
48
  }
52
49
  const port = tryParseInteger(argv[2]);
53
50
  const clientId = argv[3];
54
- const partitionConcept = argv[4];
55
- if (!(partitionConcept in partitionConcepts)) {
56
- console.error(genericError(`unknown partition concept specified: ${partitionConcept} — must be one of: ${Object.keys(partitionConcepts).join(", ")}`));
57
- exit(2);
58
- }
59
- const tasks = argv[5]?.split(",") ?? [];
51
+ const tasks = argv[4]?.split(",") ?? [];
60
52
  console.log(clientInfo(`tasks provided: ${tasks.length === 0 ? "none" : tasks.join(", ")}`));
61
53
  const infoUnrecognizedTasks = tasks
62
54
  .map((task, index) => task in recognizedTasks ? undefined : [task, index])
@@ -82,7 +74,7 @@ await runAsApp(async () => {
82
74
  })
83
75
  });
84
76
  console.log(clientInfo(`LionWeb delta protocol client (with ID=${clientId}) connecting to repository on ${url} - press Ctrl+C to terminate`));
85
- const executeTask = taskExecutor(lionWebClient, partitionConcepts[partitionConcept], semanticLogItems);
77
+ const executeTask = taskExecutor(lionWebClient, semanticLogItems);
86
78
  let querySequenceNumber = 0;
87
79
  const queryId = () => `query-${++querySequenceNumber}`;
88
80
  for (const task of tasks) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-client.js","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-client.js","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":"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"}
package/dist/tasks.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { Concept } from "@lionweb/core";
2
1
  import { LionWebClient } from "@lionweb/delta-protocol-client";
3
2
  import { ISemanticLogItem } from "@lionweb/delta-protocol-common";
4
3
  /**
@@ -9,5 +8,5 @@ import { ISemanticLogItem } from "@lionweb/delta-protocol-common";
9
8
  * inside the build package to generate the contents of the following object.
10
9
  */
11
10
  export declare const recognizedTasks: Record<string, boolean>;
12
- export declare const taskExecutor: (lionWebClient: LionWebClient, partitionConcept: Concept, semanticLogItems: ISemanticLogItem[]) => (task: keyof typeof recognizedTasks, queryId: string) => Promise<void>;
11
+ export declare const taskExecutor: (lionWebClient: LionWebClient, semanticLogItems: ISemanticLogItem[]) => (task: keyof typeof recognizedTasks, queryId: string) => Promise<void>;
13
12
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAA+B,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAS9F;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAoCnD,CAAA;AAMD,eAAO,MAAM,YAAY,GAAI,eAAe,aAAa,EAAE,kBAAkB,OAAO,EAAE,kBAAkB,gBAAgB,EAAE,MAuBxG,MAAM,MAAM,OAAO,eAAe,EAAE,SAAS,MAAM,kBAkIpE,CAAA"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAA+B,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAe9F;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAoCnD,CAAA;AAMD,eAAO,MAAM,YAAY,GAAI,eAAe,aAAa,EAAE,kBAAkB,gBAAgB,EAAE,MAkC7E,MAAM,MAAM,OAAO,eAAe,EAAE,SAAS,MAAM,kBAsIpE,CAAA"}
package/dist/tasks.js CHANGED
@@ -16,7 +16,7 @@
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
  import { ansi, ClientReceivedMessage } from "@lionweb/delta-protocol-common";
18
18
  import { lastOfArray } from "@lionweb/ts-utils";
19
- import { TestLanguageBase } from "@lionweb/class-core-test-language";
19
+ import { TestLanguageBase, TestPartition } from "@lionweb/class-core-test-language";
20
20
  import { waitUntil } from "./async.js";
21
21
  const { clientInfo, genericWarning } = ansi;
22
22
  /**
@@ -64,7 +64,7 @@ export const recognizedTasks = {
64
64
  "SubscribeToChangingPartitions": true
65
65
  };
66
66
  const testLanguageBase = TestLanguageBase.INSTANCE;
67
- export const taskExecutor = (lionWebClient, partitionConcept, semanticLogItems) => {
67
+ export const taskExecutor = (lionWebClient, semanticLogItems) => {
68
68
  const numberOfReceivedMessages = () => semanticLogItems.filter((item) => item instanceof ClientReceivedMessage).length;
69
69
  const waitForReceivedMessages = async (numberOfMessagesToReceive) => {
70
70
  const expectedNumber = numberOfReceivedMessages() + numberOfMessagesToReceive; // (precompute here)
@@ -74,10 +74,18 @@ export const taskExecutor = (lionWebClient, partitionConcept, semanticLogItems)
74
74
  });
75
75
  };
76
76
  const annotation = (id) => lionWebClient.forest.createNode(testLanguageBase.TestAnnotation, id);
77
- const thePartition = () => lionWebClient.forest.partitions[0];
77
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
78
+ const as = (obj, classConstructor, customErrorMessage) => {
79
+ if (obj instanceof classConstructor) {
80
+ return obj;
81
+ }
82
+ throw new Error(customErrorMessage ?? `object is not of class ${classConstructor.name}`);
83
+ };
84
+ const thePartition = () => as(lionWebClient.forest.partitions[0], TestPartition, `partition at index 0 in forest is not a ${testLanguageBase.TestPartition.name}`);
78
85
  const linkTestConcept = (id) => id === undefined
79
- ? thePartition()
86
+ ? thePartition().links[0]
80
87
  : lionWebClient.forest.createNode(testLanguageBase.LinkTestConcept, id);
88
+ const dataTypeTestConcept = () => thePartition().data;
81
89
  return async (task, queryId) => {
82
90
  console.log(clientInfo(`client "${lionWebClient.clientId}" is executing task "${task}"`));
83
91
  switch (task) {
@@ -95,13 +103,13 @@ export const taskExecutor = (lionWebClient, partitionConcept, semanticLogItems)
95
103
  return waitForReceivedMessages(1);
96
104
  }
97
105
  case "AddStringValue_0_1":
98
- thePartition().stringValue_0_1 = "new property";
106
+ dataTypeTestConcept().stringValue_0_1 = "new property";
99
107
  return waitForReceivedMessages(1);
100
108
  case "SetStringValue_0_1":
101
- thePartition().stringValue_0_1 = "changed property";
109
+ dataTypeTestConcept().stringValue_0_1 = "changed property";
102
110
  return waitForReceivedMessages(1);
103
111
  case "DeleteStringValue_0_1":
104
- thePartition().stringValue_0_1 = undefined;
112
+ dataTypeTestConcept().stringValue_0_1 = undefined;
105
113
  return waitForReceivedMessages(1);
106
114
  case "AddName_Containment_0_1":
107
115
  linkTestConcept().containment_0_1.name = "my name";
@@ -194,9 +202,13 @@ export const taskExecutor = (lionWebClient, partitionConcept, semanticLogItems)
194
202
  case "MoveChildFromOtherContainmentInSameParent_Multiple":
195
203
  linkTestConcept().addContainment_1_nAtIndex(lastOfArray(linkTestConcept().containment_0_n), 1);
196
204
  return waitForReceivedMessages(1);
197
- case "AddPartition":
198
- lionWebClient.addPartition(lionWebClient.forest.createNode(partitionConcept, "partition"));
205
+ case "AddPartition": {
206
+ const partition = lionWebClient.forest.createNode(testLanguageBase.TestPartition, "partition");
207
+ partition.data = lionWebClient.forest.createNode(testLanguageBase.DataTypeTestConcept, "data");
208
+ partition.addLinks(lionWebClient.forest.createNode(testLanguageBase.LinkTestConcept, "link"));
209
+ lionWebClient.addPartition(partition);
199
210
  return waitForReceivedMessages(1);
211
+ }
200
212
  default: {
201
213
  // (shouldn't happen because of upfront validation of tasks)
202
214
  console.log(genericWarning(`task "${task}" is unknown => ignored`));
package/dist/tasks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/delta-protocol-test-cli",
3
- "version": "0.8.0-beta.1",
3
+ "version": "0.8.0-beta.2",
4
4
  "description": "CLI programs for testing the delta protocol",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -30,14 +30,14 @@
30
30
  "release": "npm publish"
31
31
  },
32
32
  "dependencies": {
33
- "@lionweb/class-core": "0.8.0-beta.1",
34
- "@lionweb/class-core-test-language": "0.8.0-beta.1",
35
- "@lionweb/core": "0.8.0-beta.1",
36
- "@lionweb/delta-protocol-client": "0.8.0-beta.1",
37
- "@lionweb/delta-protocol-common": "0.8.0-beta.1",
38
- "@lionweb/delta-protocol-low-level-client-ws": "0.8.0-beta.1",
39
- "@lionweb/delta-protocol-repository-ws": "0.8.0-beta.1",
40
- "@lionweb/json": "0.8.0-beta.1",
41
- "@lionweb/utilities": "0.8.0-beta.1"
33
+ "@lionweb/class-core": "0.8.0-beta.2",
34
+ "@lionweb/class-core-test-language": "0.8.0-beta.2",
35
+ "@lionweb/core": "0.8.0-beta.2",
36
+ "@lionweb/delta-protocol-client": "0.8.0-beta.2",
37
+ "@lionweb/delta-protocol-common": "0.8.0-beta.2",
38
+ "@lionweb/delta-protocol-low-level-client-ws": "0.8.0-beta.2",
39
+ "@lionweb/delta-protocol-repository-ws": "0.8.0-beta.2",
40
+ "@lionweb/json": "0.8.0-beta.2",
41
+ "@lionweb/utilities": "0.8.0-beta.2"
42
42
  }
43
43
  }
package/src/cli-client.ts CHANGED
@@ -18,7 +18,6 @@
18
18
  // SPDX-License-Identifier: Apache-2.0
19
19
 
20
20
  import { TestLanguageBase } from "@lionweb/class-core-test-language"
21
- import { Concept } from "@lionweb/core"
22
21
  import { LionWebClient, LowLevelClientLogItem } from "@lionweb/delta-protocol-client"
23
22
  import { ansi, combine, semanticConsoleLogger, semanticLogItemStorer } from "@lionweb/delta-protocol-common"
24
23
  import { createWSLowLevelClient } from "@lionweb/delta-protocol-low-level-client-ws"
@@ -38,12 +37,7 @@ const languageBases = [testLanguageBase]
38
37
  const boldRedIf = (apply: boolean, text: string) =>
39
38
  apply ? genericError(text) : text
40
39
 
41
- const partitionConcepts: Record<string, Concept> = Object.fromEntries(
42
- [testLanguageBase.DataTypeTestConcept, testLanguageBase.LinkTestConcept]
43
- .map((concept) => [concept.name, concept])
44
- )
45
-
46
- // $ node dist/cli-client.js <port> <clientID> <partitionConcept> [tasks] [--${protocolLogOptionPrefix}=<path>]
40
+ // $ node dist/cli-client.js <port> <clientID> [tasks] [--${protocolLogOptionPrefix}=<path>]
47
41
 
48
42
  const protocolLogOptionPrefix = "--protocol-log="
49
43
  const protocolLogPathIndex = argv.findIndex((argument) => argument.startsWith(protocolLogOptionPrefix))
@@ -57,8 +51,7 @@ if (trueArguments.length < 3) {
57
51
  Parameters (${genericError("bold red")} are missing):
58
52
  - ${boldRedIf(trueArguments.length < 1, `<port>: the port of the WebSocket where the LionWeb delta protocol repository is running on localhost`)}
59
53
  - ${boldRedIf(trueArguments.length < 2, `<clientID>: the ID that the client identifies itself with at the repository`)}
60
- - ${boldRedIf(trueArguments.length < 3, `<partitionConcept>: the name of a partition concept that gets instantiated as the model's primary partition — one of: ${Object.keys(partitionConcepts).join(", ")}`)}
61
- - ${boldRedIf(trueArguments.length < 4, `[tasks]: a comma-separated list of tasks — one of ${Object.keys(recognizedTasks).sort().join(", ")}`)}
54
+ - ${boldRedIf(trueArguments.length < 3, `[tasks]: a comma-separated list of tasks — one of ${Object.keys(recognizedTasks).sort().join(", ")}`)}
62
55
  - ${boldRedIf(protocolLogPathIndex === -1, `${protocolLogOptionPrefix}=<path>: option to configure that the client logs all messages exchanged with the repository to a file with the given path`)}
63
56
 
64
57
  ASSUMPTION: the initial (states of the models) on client(s) and repository are identical!
@@ -68,12 +61,7 @@ Parameters (${genericError("bold red")} are missing):
68
61
 
69
62
  const port = tryParseInteger(argv[2])
70
63
  const clientId = argv[3]
71
- const partitionConcept = argv[4]
72
- if (!(partitionConcept in partitionConcepts)) {
73
- console.error(genericError(`unknown partition concept specified: ${partitionConcept} — must be one of: ${Object.keys(partitionConcepts).join(", ")}`))
74
- exit(2)
75
- }
76
- const tasks = argv[5]?.split(",") ?? []
64
+ const tasks = argv[4]?.split(",") ?? []
77
65
  console.log(clientInfo(`tasks provided: ${tasks.length === 0 ? "none" : tasks.join(", ")}`))
78
66
  const infoUnrecognizedTasks = tasks
79
67
  .map((task, index) => task in recognizedTasks ? undefined : [task, index] as [string, number])
@@ -108,7 +96,7 @@ await runAsApp(async () => {
108
96
 
109
97
  console.log(clientInfo(`LionWeb delta protocol client (with ID=${clientId}) connecting to repository on ${url} - press Ctrl+C to terminate`))
110
98
 
111
- const executeTask = taskExecutor(lionWebClient, partitionConcepts[partitionConcept], semanticLogItems)
99
+ const executeTask = taskExecutor(lionWebClient, semanticLogItems)
112
100
 
113
101
  let querySequenceNumber = 0
114
102
  const queryId = () => `query-${++querySequenceNumber}`
package/src/tasks.ts CHANGED
@@ -15,12 +15,17 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import { Concept } from "@lionweb/core"
19
18
  import { LionWebClient } from "@lionweb/delta-protocol-client"
20
19
  import { ansi, ClientReceivedMessage, ISemanticLogItem } from "@lionweb/delta-protocol-common"
21
20
  import { LionWebId } from "@lionweb/json"
22
21
  import { lastOfArray } from "@lionweb/ts-utils"
23
- import { DataTypeTestConcept, LinkTestConcept, TestAnnotation, TestLanguageBase } from "@lionweb/class-core-test-language"
22
+ import {
23
+ DataTypeTestConcept,
24
+ LinkTestConcept,
25
+ TestAnnotation,
26
+ TestLanguageBase,
27
+ TestPartition
28
+ } from "@lionweb/class-core-test-language"
24
29
 
25
30
  import { waitUntil } from "./async.js"
26
31
  const { clientInfo, genericWarning } = ansi
@@ -75,7 +80,7 @@ export const recognizedTasks: Record<string, boolean> = {
75
80
  const testLanguageBase = TestLanguageBase.INSTANCE
76
81
 
77
82
 
78
- export const taskExecutor = (lionWebClient: LionWebClient, partitionConcept: Concept, semanticLogItems: ISemanticLogItem[]) => {
83
+ export const taskExecutor = (lionWebClient: LionWebClient, semanticLogItems: ISemanticLogItem[]) => {
79
84
 
80
85
  const numberOfReceivedMessages = () =>
81
86
  semanticLogItems.filter((item) => item instanceof ClientReceivedMessage).length
@@ -91,13 +96,24 @@ export const taskExecutor = (lionWebClient: LionWebClient, partitionConcept: Con
91
96
  const annotation = (id: LionWebId) =>
92
97
  lionWebClient.forest.createNode(testLanguageBase.TestAnnotation, id) as TestAnnotation
93
98
 
94
- const thePartition = () => lionWebClient.forest.partitions[0]
99
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
+ const as = <T>(obj: object, classConstructor: new (...args: any[]) => T, customErrorMessage?: string) => {
101
+ if (obj instanceof classConstructor) {
102
+ return obj as T
103
+ }
104
+ throw new Error(customErrorMessage ?? `object is not of class ${classConstructor.name}`)
105
+ }
106
+
107
+ const thePartition = () =>
108
+ as(lionWebClient.forest.partitions[0], TestPartition, `partition at index 0 in forest is not a ${testLanguageBase.TestPartition.name}`)
95
109
 
96
110
  const linkTestConcept = (id?: LionWebId) =>
97
111
  id === undefined
98
- ? thePartition() as LinkTestConcept
112
+ ? thePartition().links[0]
99
113
  : lionWebClient.forest.createNode(testLanguageBase.LinkTestConcept, id) as LinkTestConcept
100
114
 
115
+ const dataTypeTestConcept = () => thePartition().data!
116
+
101
117
  return async (task: keyof typeof recognizedTasks, queryId: string) => {
102
118
  console.log(clientInfo(`client "${lionWebClient.clientId}" is executing task "${task}"`))
103
119
  switch (task) {
@@ -115,13 +131,13 @@ export const taskExecutor = (lionWebClient: LionWebClient, partitionConcept: Con
115
131
  return waitForReceivedMessages(1)
116
132
  }
117
133
  case "AddStringValue_0_1":
118
- (thePartition() as DataTypeTestConcept).stringValue_0_1 = "new property"
134
+ dataTypeTestConcept().stringValue_0_1 = "new property"
119
135
  return waitForReceivedMessages(1)
120
136
  case "SetStringValue_0_1":
121
- (thePartition() as DataTypeTestConcept).stringValue_0_1 = "changed property"
137
+ dataTypeTestConcept().stringValue_0_1 = "changed property"
122
138
  return waitForReceivedMessages(1)
123
139
  case "DeleteStringValue_0_1":
124
- (thePartition() as DataTypeTestConcept).stringValue_0_1 = undefined
140
+ dataTypeTestConcept().stringValue_0_1 = undefined
125
141
  return waitForReceivedMessages(1)
126
142
  case "AddName_Containment_0_1":
127
143
  linkTestConcept().containment_0_1!.name = "my name"
@@ -217,9 +233,13 @@ export const taskExecutor = (lionWebClient: LionWebClient, partitionConcept: Con
217
233
  case "MoveChildFromOtherContainmentInSameParent_Multiple":
218
234
  linkTestConcept().addContainment_1_nAtIndex(lastOfArray(linkTestConcept().containment_0_n), 1)
219
235
  return waitForReceivedMessages(1)
220
- case "AddPartition":
221
- lionWebClient.addPartition(lionWebClient.forest.createNode(partitionConcept, "partition"))
236
+ case "AddPartition": {
237
+ const partition = lionWebClient.forest.createNode(testLanguageBase.TestPartition, "partition") as TestPartition
238
+ partition.data = lionWebClient.forest.createNode(testLanguageBase.DataTypeTestConcept, "data") as DataTypeTestConcept
239
+ partition.addLinks(lionWebClient.forest.createNode(testLanguageBase.LinkTestConcept, "link") as LinkTestConcept)
240
+ lionWebClient.addPartition(partition)
222
241
  return waitForReceivedMessages(1)
242
+ }
223
243
 
224
244
  default: {
225
245
  // (shouldn't happen because of upfront validation of tasks)