@lionweb/delta-protocol-common 0.7.0-beta.21
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/CHANGELOG.md +6 -0
- package/README.md +33 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/ansi.d.ts +44 -0
- package/dist/logging/ansi.d.ts.map +1 -0
- package/dist/logging/ansi.js +53 -0
- package/dist/logging/ansi.js.map +1 -0
- package/dist/logging/index.d.ts +4 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +20 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/semantic-logging.d.ts +55 -0
- package/dist/logging/semantic-logging.d.ts.map +1 -0
- package/dist/logging/semantic-logging.js +88 -0
- package/dist/logging/semantic-logging.js.map +1 -0
- package/dist/logging/textual-logging.d.ts +22 -0
- package/dist/logging/textual-logging.d.ts.map +1 -0
- package/dist/logging/textual-logging.js +54 -0
- package/dist/logging/textual-logging.js.map +1 -0
- package/dist/payload/command-types.d.ts +319 -0
- package/dist/payload/command-types.d.ts.map +1 -0
- package/dist/payload/command-types.js +18 -0
- package/dist/payload/command-types.js.map +1 -0
- package/dist/payload/common.d.ts +13 -0
- package/dist/payload/common.d.ts.map +1 -0
- package/dist/payload/common.js +18 -0
- package/dist/payload/common.js.map +1 -0
- package/dist/payload/event-types.d.ts +378 -0
- package/dist/payload/event-types.d.ts.map +1 -0
- package/dist/payload/event-types.js +68 -0
- package/dist/payload/event-types.js.map +1 -0
- package/dist/payload/index.d.ts +5 -0
- package/dist/payload/index.d.ts.map +1 -0
- package/dist/payload/index.js +20 -0
- package/dist/payload/index.js.map +1 -0
- package/dist/payload/query-types.d.ts +73 -0
- package/dist/payload/query-types.d.ts.map +1 -0
- package/dist/payload/query-types.js +30 -0
- package/dist/payload/query-types.js.map +1 -0
- package/dist/translators/delta-to-command.d.ts +7 -0
- package/dist/translators/delta-to-command.d.ts.map +1 -0
- package/dist/translators/delta-to-command.js +297 -0
- package/dist/translators/delta-to-command.js.map +1 -0
- package/dist/translators/delta-to-event.d.ts +2 -0
- package/dist/translators/delta-to-event.d.ts.map +1 -0
- package/dist/translators/delta-to-event.js +19 -0
- package/dist/translators/delta-to-event.js.map +1 -0
- package/dist/translators/event-to-delta.d.ts +13 -0
- package/dist/translators/event-to-delta.d.ts.map +1 -0
- package/dist/translators/event-to-delta.js +293 -0
- package/dist/translators/event-to-delta.js.map +1 -0
- package/dist/translators/index.d.ts +4 -0
- package/dist/translators/index.d.ts.map +1 -0
- package/dist/translators/index.js +19 -0
- package/dist/translators/index.js.map +1 -0
- package/dist/utils/async.d.ts +13 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +38 -0
- package/dist/utils/async.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +20 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json.d.ts +7 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +30 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/procedure.d.ts +14 -0
- package/dist/utils/procedure.d.ts.map +1 -0
- package/dist/utils/procedure.js +32 -0
- package/dist/utils/procedure.js.map +1 -0
- package/package.json +35 -0
- package/src/index.ts +22 -0
- package/src/logging/ansi.ts +63 -0
- package/src/logging/index.ts +21 -0
- package/src/logging/semantic-logging.ts +96 -0
- package/src/logging/textual-logging.ts +65 -0
- package/src/payload/command-types.ts +378 -0
- package/src/payload/common.ts +33 -0
- package/src/payload/event-types.ts +499 -0
- package/src/payload/index.ts +22 -0
- package/src/payload/query-types.ts +134 -0
- package/src/translators/delta-to-command.ts +378 -0
- package/src/translators/delta-to-event.ts +19 -0
- package/src/translators/event-to-delta.ts +384 -0
- package/src/translators/index.ts +21 -0
- package/src/utils/async.ts +50 -0
- package/src/utils/index.ts +22 -0
- package/src/utils/json.ts +32 -0
- package/src/utils/procedure.ts +43 -0
package/CHANGELOG.md
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# The `delta-protocol-common` package
|
|
2
|
+
|
|
3
|
+
[
|
|
4
|
+
](./LICENSE)
|
|
5
|
+
|
|
6
|
+
An NPM package that can be added to a Node.js/NPM codebase as follows:
|
|
7
|
+
|
|
8
|
+
```shell
|
|
9
|
+
$ npm add @lionweb/delta-protocol-common
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
It contains the (production part of the) implementation of the delta protocol in TypeScript that’s not tied to any specific message transport protocol.
|
|
13
|
+
We’d typically use WebSockets for this, but browser and Node.js have slightly different implementations, so we chose to split the parts of the implementation that are message transport protocol-specific into separate packages.
|
|
14
|
+
This package therefore contains “common” stuff used by the downstream `delta-protocol-*` packages.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Repository
|
|
20
|
+
|
|
21
|
+
The TypeScript implementation of a repository that complies with the LionWeb delta protocol – in the form of the `LionWebRepository` class – in this package is ***entirely incomplete***.
|
|
22
|
+
It mainly serves as a way to be able to run and test the TypeScript implementation of the LionWeb client, at least to the extent that a client can send queries and commands and get responses that are somewhat plausible.
|
|
23
|
+
The C# implementation *is* complete and should be used for actual use.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Development
|
|
27
|
+
|
|
28
|
+
Build this package from source as follows:
|
|
29
|
+
|
|
30
|
+
```shell
|
|
31
|
+
npm run build
|
|
32
|
+
```
|
|
33
|
+
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright 2025 TRUMPF Laser SE and other contributors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License")
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
export * from "./logging/index.js";
|
|
18
|
+
export * from "./payload/index.js";
|
|
19
|
+
export * from "./translators/index.js";
|
|
20
|
+
export * from "./utils/index.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
declare const colors: {
|
|
2
|
+
readonly black: 30;
|
|
3
|
+
readonly red: 31;
|
|
4
|
+
readonly green: 32;
|
|
5
|
+
readonly yellow: 33;
|
|
6
|
+
readonly blue: 34;
|
|
7
|
+
readonly magenta: 35;
|
|
8
|
+
readonly cyan: 36;
|
|
9
|
+
readonly white: 37;
|
|
10
|
+
readonly default: 39;
|
|
11
|
+
};
|
|
12
|
+
declare const styles: {
|
|
13
|
+
readonly default: 0;
|
|
14
|
+
readonly bold: 1;
|
|
15
|
+
readonly italic: 3;
|
|
16
|
+
};
|
|
17
|
+
export declare const ansi: {
|
|
18
|
+
colors: {
|
|
19
|
+
readonly black: 30;
|
|
20
|
+
readonly red: 31;
|
|
21
|
+
readonly green: 32;
|
|
22
|
+
readonly yellow: 33;
|
|
23
|
+
readonly blue: 34;
|
|
24
|
+
readonly magenta: 35;
|
|
25
|
+
readonly cyan: 36;
|
|
26
|
+
readonly white: 37;
|
|
27
|
+
readonly default: 39;
|
|
28
|
+
};
|
|
29
|
+
styles: {
|
|
30
|
+
readonly default: 0;
|
|
31
|
+
readonly bold: 1;
|
|
32
|
+
readonly italic: 3;
|
|
33
|
+
};
|
|
34
|
+
withColorAndStyleApplied: (color: keyof typeof colors, style: keyof typeof styles) => (text: string) => string;
|
|
35
|
+
clientInfo: (text: string) => string;
|
|
36
|
+
clientWarning: (text: string) => string;
|
|
37
|
+
repositoryInfo: (text: string) => string;
|
|
38
|
+
repositoryWarning: (text: string) => string;
|
|
39
|
+
genericError: (text: string) => string;
|
|
40
|
+
genericWarning: (text: string) => string;
|
|
41
|
+
colorSchemeExplanationString: string;
|
|
42
|
+
};
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=ansi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/logging/ansi.ts"],"names":[],"mappings":"AAiBA,QAAA,MAAM,MAAM;;;;;;;;;;CAUF,CAAA;AAEV,QAAA,MAAM,MAAM;;;;CAIF,CAAA;AAiBV,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;sCAdwB,MAAM,OAAO,MAAM,SAAS,MAAM,OAAO,MAAM,MACnF,MAAM,MAAM;uBAAN,MAAM;0BAAN,MAAM;2BAAN,MAAM;8BAAN,MAAM;yBAAN,MAAM;2BAAN,MAAM;;CAwBhB,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Copyright 2025 TRUMPF Laser SE and other contributors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License")
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
const colors = {
|
|
18
|
+
black: 30,
|
|
19
|
+
red: 31,
|
|
20
|
+
green: 32,
|
|
21
|
+
yellow: 33,
|
|
22
|
+
blue: 34,
|
|
23
|
+
magenta: 35,
|
|
24
|
+
cyan: 36,
|
|
25
|
+
white: 37,
|
|
26
|
+
default: 39
|
|
27
|
+
};
|
|
28
|
+
const styles = {
|
|
29
|
+
default: 0,
|
|
30
|
+
bold: 1,
|
|
31
|
+
italic: 3
|
|
32
|
+
};
|
|
33
|
+
const withColorAndStyleApplied = (color, style) => (text) => `\x1b[${style === "default" ? "" : `${styles[style]}`}${color === "default" ? "" : `;${colors[color]}m`}${text}\x1b[0m`;
|
|
34
|
+
const clientInfo = withColorAndStyleApplied("magenta", "bold");
|
|
35
|
+
const clientWarning = withColorAndStyleApplied("magenta", "italic");
|
|
36
|
+
const repositoryInfo = withColorAndStyleApplied("cyan", "bold");
|
|
37
|
+
const repositoryWarning = withColorAndStyleApplied("cyan", "italic");
|
|
38
|
+
const genericError = withColorAndStyleApplied("red", "bold");
|
|
39
|
+
const genericWarning = withColorAndStyleApplied("red", "italic");
|
|
40
|
+
const colorSchemeExplanationString = `${withColorAndStyleApplied("magenta", "default")("magenta=client")}, ${withColorAndStyleApplied("cyan", "default")("cyan=repository")}`;
|
|
41
|
+
export const ansi = {
|
|
42
|
+
colors,
|
|
43
|
+
styles,
|
|
44
|
+
withColorAndStyleApplied,
|
|
45
|
+
clientInfo,
|
|
46
|
+
clientWarning,
|
|
47
|
+
repositoryInfo,
|
|
48
|
+
repositoryWarning,
|
|
49
|
+
genericError,
|
|
50
|
+
genericWarning,
|
|
51
|
+
colorSchemeExplanationString
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=ansi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/logging/ansi.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,MAAM,MAAM,GAAG;IACX,KAAK,EAAE,EAAE;IACT,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;CACL,CAAA;AAEV,MAAM,MAAM,GAAG;IACX,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;CACH,CAAA;AAGV,MAAM,wBAAwB,GAAG,CAAC,KAA0B,EAAE,KAA0B,EAAE,EAAE,CACxF,CAAC,IAAY,EAAE,EAAE,CACb,QAAQ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,SAAS,CAAA;AAG/H,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC9D,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AACnE,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/D,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACpE,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAC5D,MAAM,cAAc,GAAG,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAEhE,MAAM,4BAA4B,GAAG,GAAG,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,gBAAgB,CAAC,KAAK,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAA;AAE7K,MAAM,CAAC,MAAM,IAAI,GAAG;IAChB,MAAM;IACN,MAAM;IACN,wBAAwB;IACxB,UAAU;IACV,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,YAAY;IACZ,cAAc;IACd,4BAA4B;CAC/B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright 2025 TRUMPF Laser SE and other contributors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License")
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
export { ansi } from "./ansi.js";
|
|
18
|
+
export * from "./semantic-logging.js";
|
|
19
|
+
export * from "./textual-logging.js";
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.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,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { SerializedDelta } from "@lionweb/class-core";
|
|
2
|
+
import { LionWebId } from "@lionweb/json";
|
|
3
|
+
import { Event } from "../payload/event-types.js";
|
|
4
|
+
export interface ISemanticLogItem {
|
|
5
|
+
asText(): string;
|
|
6
|
+
}
|
|
7
|
+
export type SemanticLogger = (semanticLogItem: ISemanticLogItem) => void;
|
|
8
|
+
export declare const semanticNoOpLogger: SemanticLogger;
|
|
9
|
+
export declare const semanticLoggerFunctionFrom: (optionalSemanticLogger?: SemanticLogger) => SemanticLogger;
|
|
10
|
+
export declare const semanticConsoleLogger: (semanticLogItem: ISemanticLogItem) => void;
|
|
11
|
+
export declare class DeltaOccurredOnClient implements ISemanticLogItem {
|
|
12
|
+
readonly clientId: LionWebId;
|
|
13
|
+
readonly serializedDelta: SerializedDelta;
|
|
14
|
+
constructor(clientId: LionWebId, serializedDelta: SerializedDelta);
|
|
15
|
+
asText: () => string;
|
|
16
|
+
}
|
|
17
|
+
export declare class ClientSentMessage<TMessageForRepository> implements ISemanticLogItem {
|
|
18
|
+
readonly clientId: LionWebId;
|
|
19
|
+
readonly message: TMessageForRepository;
|
|
20
|
+
constructor(clientId: LionWebId, message: TMessageForRepository);
|
|
21
|
+
asText: () => string;
|
|
22
|
+
}
|
|
23
|
+
export declare class ClientReceivedMessage<TMessageForClient> implements ISemanticLogItem {
|
|
24
|
+
readonly clientId: LionWebId;
|
|
25
|
+
readonly message: TMessageForClient;
|
|
26
|
+
constructor(clientId: LionWebId, message: TMessageForClient);
|
|
27
|
+
asText: () => string;
|
|
28
|
+
}
|
|
29
|
+
export declare class ClientAppliedEvent implements ISemanticLogItem {
|
|
30
|
+
readonly clientId: LionWebId;
|
|
31
|
+
readonly event: Event;
|
|
32
|
+
constructor(clientId: LionWebId, event: Event);
|
|
33
|
+
asText: () => string;
|
|
34
|
+
}
|
|
35
|
+
export declare class ClientDidNotApplyEventFromOwnCommand implements ISemanticLogItem {
|
|
36
|
+
readonly clientId: LionWebId;
|
|
37
|
+
readonly originatingCommandId: LionWebId;
|
|
38
|
+
constructor(clientId: LionWebId, originatingCommandId: LionWebId);
|
|
39
|
+
asText: () => string;
|
|
40
|
+
}
|
|
41
|
+
export declare class ClientHadProblem implements ISemanticLogItem {
|
|
42
|
+
readonly clientId: LionWebId;
|
|
43
|
+
readonly message: string;
|
|
44
|
+
constructor(clientId: LionWebId, message: string);
|
|
45
|
+
asText: () => string;
|
|
46
|
+
}
|
|
47
|
+
export declare class RepositoryReceivedMessage<TClientMetadata, TIncomingMessage> implements ISemanticLogItem {
|
|
48
|
+
readonly knownMetadata: Partial<TClientMetadata>;
|
|
49
|
+
readonly message: TIncomingMessage;
|
|
50
|
+
constructor(knownMetadata: Partial<TClientMetadata>, message: TIncomingMessage);
|
|
51
|
+
asText: () => string;
|
|
52
|
+
}
|
|
53
|
+
export declare const semanticLogItemsToConsole: (semanticLogItems: ISemanticLogItem[]) => void;
|
|
54
|
+
export declare const semanticLogItemStorer: () => [semanticLogger: SemanticLogger, semanticLogItems: ISemanticLogItem[]];
|
|
55
|
+
//# sourceMappingURL=semantic-logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-logging.d.ts","sourceRoot":"","sources":["../../src/logging/semantic-logging.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAMzC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAGjD,MAAM,WAAW,gBAAgB;IAC7B,MAAM,IAAI,MAAM,CAAA;CACnB;AAGD,MAAM,MAAM,cAAc,GAAG,CAAC,eAAe,EAAE,gBAAgB,KAAK,IAAI,CAAA;AAExE,eAAO,MAAM,kBAAkB,EAAE,cAA0B,CAAA;AAE3D,eAAO,MAAM,0BAA0B,GAAI,yBAAyB,cAAc,mBAClC,CAAA;AAEhD,eAAO,MAAM,qBAAqB,GAAI,iBAAiB,gBAAgB,SAEtE,CAAA;AAGD,qBAAa,qBAAsB,YAAW,gBAAgB;aAC9B,QAAQ,EAAE,SAAS;aAAkB,eAAe,EAAE,eAAe;gBAArE,QAAQ,EAAE,SAAS,EAAkB,eAAe,EAAE,eAAe;IACjG,MAAM,eAAqH;CAC9H;AAED,qBAAa,iBAAiB,CAAC,qBAAqB,CAAE,YAAW,gBAAgB;aACjD,QAAQ,EAAE,SAAS;aAAkB,OAAO,EAAE,qBAAqB;gBAAnE,QAAQ,EAAE,SAAS,EAAkB,OAAO,EAAE,qBAAqB;IAC/F,MAAM,eAAwG;CACjH;AAED,qBAAa,qBAAqB,CAAC,iBAAiB,CAAE,YAAW,gBAAgB;aACjD,QAAQ,EAAE,SAAS;aAAkB,OAAO,EAAE,iBAAiB;gBAA/D,QAAQ,EAAE,SAAS,EAAkB,OAAO,EAAE,iBAAiB;IAC3F,MAAM,eAA4G;CACrH;AAED,qBAAa,kBAAmB,YAAW,gBAAgB;aAC3B,QAAQ,EAAE,SAAS;aAAkB,KAAK,EAAE,KAAK;gBAAjD,QAAQ,EAAE,SAAS,EAAkB,KAAK,EAAE,KAAK;IAC7E,MAAM,eAAsI;CAC/I;AAED,qBAAa,oCAAqC,YAAW,gBAAgB;aAC7C,QAAQ,EAAE,SAAS;aAAkB,oBAAoB,EAAE,SAAS;gBAApE,QAAQ,EAAE,SAAS,EAAkB,oBAAoB,EAAE,SAAS;IAChG,MAAM,eAAuL;CAChM;AAED,qBAAa,gBAAiB,YAAW,gBAAgB;aACzB,QAAQ,EAAE,SAAS;aAAkB,OAAO,EAAE,MAAM;gBAApD,QAAQ,EAAE,SAAS,EAAkB,OAAO,EAAE,MAAM;IAChF,MAAM,eAAkF;CAC3F;AAED,qBAAa,yBAAyB,CAAC,eAAe,EAAE,gBAAgB,CAAE,YAAW,gBAAgB;aACrE,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC;aAAkB,OAAO,EAAE,gBAAgB;gBAAlF,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,EAAkB,OAAO,EAAE,gBAAgB;IAC9G,MAAM,eAA4N;CACrO;AAGD,eAAO,MAAM,yBAAyB,GAAI,kBAAkB,gBAAgB,EAAE,SAI7E,CAAA;AAED,eAAO,MAAM,qBAAqB,QAAO,CAAC,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAQ7G,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Copyright 2025 TRUMPF Laser SE and other contributors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License")
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
import { asMinimalJsonString } from "@lionweb/ts-utils";
|
|
18
|
+
import { ansi } from "./ansi.js";
|
|
19
|
+
const { clientInfo, clientWarning, repositoryInfo, withColorAndStyleApplied } = ansi;
|
|
20
|
+
export const semanticNoOpLogger = (_) => { };
|
|
21
|
+
export const semanticLoggerFunctionFrom = (optionalSemanticLogger) => optionalSemanticLogger ?? semanticNoOpLogger;
|
|
22
|
+
export const semanticConsoleLogger = (semanticLogItem) => {
|
|
23
|
+
console.log(semanticLogItem.asText());
|
|
24
|
+
};
|
|
25
|
+
export class DeltaOccurredOnClient {
|
|
26
|
+
constructor(clientId, serializedDelta) {
|
|
27
|
+
this.clientId = clientId;
|
|
28
|
+
this.serializedDelta = serializedDelta;
|
|
29
|
+
this.asText = () => `${clientInfo(`delta occurred on client "${this.clientId}"`)}: ${asMinimalJsonString(this.serializedDelta)}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export class ClientSentMessage {
|
|
33
|
+
constructor(clientId, message) {
|
|
34
|
+
this.clientId = clientId;
|
|
35
|
+
this.message = message;
|
|
36
|
+
this.asText = () => `${clientInfo(`client "${this.clientId}" sent message`)}: ${asMinimalJsonString(this.message)}`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class ClientReceivedMessage {
|
|
40
|
+
constructor(clientId, message) {
|
|
41
|
+
this.clientId = clientId;
|
|
42
|
+
this.message = message;
|
|
43
|
+
this.asText = () => `${clientInfo(`client "${this.clientId}" received message`)}: ${asMinimalJsonString(this.message)}`;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export class ClientAppliedEvent {
|
|
47
|
+
constructor(clientId, event) {
|
|
48
|
+
this.clientId = clientId;
|
|
49
|
+
this.event = event;
|
|
50
|
+
this.asText = () => `${clientInfo(`client "${this.clientId}" applied (the delta from) the following event`)}: ${asMinimalJsonString(this.event)}`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export class ClientDidNotApplyEventFromOwnCommand {
|
|
54
|
+
constructor(clientId, originatingCommandId) {
|
|
55
|
+
this.clientId = clientId;
|
|
56
|
+
this.originatingCommandId = originatingCommandId;
|
|
57
|
+
this.asText = () => clientWarning(`client "${this.clientId}" didn't apply (the delta from) an event because it's the result of a command (with ID="${this.originatingCommandId}") it sent itself`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export class ClientHadProblem {
|
|
61
|
+
constructor(clientId, message) {
|
|
62
|
+
this.clientId = clientId;
|
|
63
|
+
this.message = message;
|
|
64
|
+
this.asText = () => clientWarning(`client "${this.clientId}" had a problem: ${this.message}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export class RepositoryReceivedMessage {
|
|
68
|
+
constructor(knownMetadata, message) {
|
|
69
|
+
this.knownMetadata = knownMetadata;
|
|
70
|
+
this.message = message;
|
|
71
|
+
this.asText = () => `${repositoryInfo(`repository received message`)} ${withColorAndStyleApplied("magenta", "default")(`(client's known metadata: ${asMinimalJsonString(this.knownMetadata)})`)}: ${asMinimalJsonString(this.message)}`;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export const semanticLogItemsToConsole = (semanticLogItems) => {
|
|
75
|
+
semanticLogItems.forEach((logItem) => {
|
|
76
|
+
console.log(logItem.asText());
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export const semanticLogItemStorer = () => {
|
|
80
|
+
const items = [];
|
|
81
|
+
return [
|
|
82
|
+
(semanticLogItem) => {
|
|
83
|
+
items.push(semanticLogItem);
|
|
84
|
+
},
|
|
85
|
+
items
|
|
86
|
+
];
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=semantic-logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-logging.js","sourceRoot":"","sources":["../../src/logging/semantic-logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type TextualLogger = (message: string, error?: boolean) => void;
|
|
2
|
+
/**
|
|
3
|
+
* A {@link TextualLogger textual logger} that simply logs to the console.
|
|
4
|
+
*/
|
|
5
|
+
export declare const simpleConsoleLogger: TextualLogger;
|
|
6
|
+
/**
|
|
7
|
+
* A {@link TextualLogger textual logger} that does nothing.
|
|
8
|
+
*/
|
|
9
|
+
export declare const noOpTextualLogger: TextualLogger;
|
|
10
|
+
/**
|
|
11
|
+
* @return a {@link TextualLogger textual logger} which is either the given one, or the noOpTextualLogger.
|
|
12
|
+
*/
|
|
13
|
+
export declare const textualLoggerFunctionFrom: (optionalLogger?: TextualLogger) => TextualLogger;
|
|
14
|
+
/**
|
|
15
|
+
* Prefixes all messages passed to the given {@link TextualLogger textual logger} with the given prefix.
|
|
16
|
+
*/
|
|
17
|
+
export declare const prefixedWith: (logger: TextualLogger, prefix: string) => TextualLogger;
|
|
18
|
+
/**
|
|
19
|
+
* A {@link TextualLogger textual logger} that logs to the console, also showing the time elapsed since the creation of it.
|
|
20
|
+
*/
|
|
21
|
+
export declare const timedConsoleLogger: (unit: "ns" | "\u00B5s" | "ms" | "s") => TextualLogger;
|
|
22
|
+
//# sourceMappingURL=textual-logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textual-logging.d.ts","sourceRoot":"","sources":["../../src/logging/textual-logging.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAEjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAA6B,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,iBAAiB,aAAa,KAAG,aACpC,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,aAAa,EAAE,QAAQ,MAAM,KAAG,aACT,CAAA;AAU5D;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,IAAI,GAAG,SAAI,GAAG,IAAI,GAAG,GAAG,KAAG,aASnE,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Copyright 2025 TRUMPF Laser SE and other contributors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License")
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
/**
|
|
18
|
+
* A {@link TextualLogger textual logger} that simply logs to the console.
|
|
19
|
+
*/
|
|
20
|
+
export const simpleConsoleLogger = (message, isError) => {
|
|
21
|
+
(isError ? console.error : console.log)(message);
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* A {@link TextualLogger textual logger} that does nothing.
|
|
25
|
+
*/
|
|
26
|
+
export const noOpTextualLogger = (_, __) => { };
|
|
27
|
+
/**
|
|
28
|
+
* @return a {@link TextualLogger textual logger} which is either the given one, or the noOpTextualLogger.
|
|
29
|
+
*/
|
|
30
|
+
export const textualLoggerFunctionFrom = (optionalLogger) => optionalLogger ?? noOpTextualLogger;
|
|
31
|
+
/**
|
|
32
|
+
* Prefixes all messages passed to the given {@link TextualLogger textual logger} with the given prefix.
|
|
33
|
+
*/
|
|
34
|
+
export const prefixedWith = (logger, prefix) => (message, error) => logger(`${prefix}${message}`, error);
|
|
35
|
+
const unit2divider = {
|
|
36
|
+
"ns": 1n,
|
|
37
|
+
"µs": 1000n,
|
|
38
|
+
"ms": 1000000n,
|
|
39
|
+
"s": 1000000000n
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* A {@link TextualLogger textual logger} that logs to the console, also showing the time elapsed since the creation of it.
|
|
43
|
+
*/
|
|
44
|
+
export const timedConsoleLogger = (unit) => {
|
|
45
|
+
if (!(unit in unit2divider)) {
|
|
46
|
+
throw new Error(`unknown time unit: "${unit}"`);
|
|
47
|
+
}
|
|
48
|
+
const divider = unit2divider[unit];
|
|
49
|
+
const start = process.hrtime.bigint();
|
|
50
|
+
return (message, isError) => {
|
|
51
|
+
(isError ? console.error : console.log)(`{${((process.hrtime.bigint() - start) / divider).toLocaleString()}${unit}} ${message}`);
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=textual-logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textual-logging.js","sourceRoot":"","sources":["../../src/logging/textual-logging.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;AAItC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACnE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;AACpD,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,cAA8B,EAAiB,EAAE,CACvF,cAAc,IAAI,iBAAiB,CAAA;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAqB,EAAE,MAAc,EAAiB,EAAE,CACjF,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;AAG5D,MAAM,YAAY,GAA6B;IAC3C,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAS;IACf,GAAG,EAAE,WAAa;CACZ,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAA8B,EAAiB,EAAE;IAChF,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IACrC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACxB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAC,OAAO,CAAC,CAAC,cAAc,EAAE,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAA;IAClI,CAAC,CAAA;AACL,CAAC,CAAA"}
|