@lionweb/class-core 0.7.0-beta.8 → 0.7.0
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 +18 -1
- package/README.md +6 -6
- package/dist/LionCore_builtins.g.d.ts +2 -2
- package/dist/LionCore_builtins.g.d.ts.map +1 -1
- package/dist/LionCore_builtins.g.js +1 -1
- package/dist/LionCore_builtins.g.js.map +1 -1
- package/dist/base-types.d.ts +7 -11
- package/dist/base-types.d.ts.map +1 -1
- package/dist/base-types.js +3 -28
- package/dist/base-types.js.map +1 -1
- package/dist/convenience.d.ts +10 -9
- package/dist/convenience.d.ts.map +1 -1
- package/dist/convenience.js +12 -11
- package/dist/convenience.js.map +1 -1
- package/dist/deltas/appliers.d.ts +5 -4
- package/dist/deltas/appliers.d.ts.map +1 -1
- package/dist/deltas/appliers.js +369 -163
- package/dist/deltas/appliers.js.map +1 -1
- package/dist/deltas/compositor.d.ts +51 -0
- package/dist/deltas/compositor.d.ts.map +1 -0
- package/dist/deltas/compositor.js +95 -0
- package/dist/deltas/compositor.js.map +1 -0
- package/dist/deltas/index.d.ts +2 -1
- package/dist/deltas/index.d.ts.map +1 -1
- package/dist/deltas/index.js +2 -1
- package/dist/deltas/index.js.map +1 -1
- package/dist/deltas/inverters.d.ts.map +1 -1
- package/dist/deltas/inverters.js +91 -28
- package/dist/deltas/inverters.js.map +1 -1
- package/dist/deltas/receivers.d.ts +39 -0
- package/dist/deltas/receivers.d.ts.map +1 -0
- package/dist/deltas/receivers.js +60 -0
- package/dist/deltas/receivers.js.map +1 -0
- package/dist/deltas/serialization/deserializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/deserializer.g.js +167 -59
- package/dist/deltas/serialization/deserializer.g.js.map +1 -1
- package/dist/deltas/serialization/serializer-helpers.d.ts +1 -1
- package/dist/deltas/serialization/serializer-helpers.d.ts.map +1 -1
- package/dist/deltas/serialization/serializer-helpers.js +3 -4
- package/dist/deltas/serialization/serializer-helpers.js.map +1 -1
- package/dist/deltas/serialization/serializer.g.d.ts +2 -2
- package/dist/deltas/serialization/serializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/serializer.g.js +186 -47
- package/dist/deltas/serialization/serializer.g.js.map +1 -1
- package/dist/deltas/serialization/types.g.d.ts +156 -43
- package/dist/deltas/serialization/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.d.ts +155 -55
- package/dist/deltas/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.js +170 -57
- package/dist/deltas/types.g.js.map +1 -1
- package/dist/deserializer.d.ts +6 -6
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +16 -27
- package/dist/deserializer.js.map +1 -1
- package/dist/duplicator.d.ts.map +1 -1
- package/dist/duplicator.js.map +1 -1
- package/dist/factory.d.ts +10 -2
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +25 -16
- package/dist/factory.js.map +1 -1
- package/dist/id-mapping.d.ts +31 -3
- package/dist/id-mapping.d.ts.map +1 -1
- package/dist/id-mapping.js +46 -14
- package/dist/id-mapping.js.map +1 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/textualizer.d.ts +1 -1
- package/dist/textualizer.d.ts.map +1 -1
- package/dist/textualizer.js +1 -1
- package/dist/textualizer.js.map +1 -1
- package/dist/value-managers/annotations.d.ts +5 -0
- package/dist/value-managers/annotations.d.ts.map +1 -1
- package/dist/value-managers/annotations.js +31 -3
- package/dist/value-managers/annotations.js.map +1 -1
- package/dist/value-managers/base.d.ts +2 -2
- package/dist/value-managers/base.d.ts.map +1 -1
- package/dist/value-managers/base.js +4 -4
- package/dist/value-managers/base.js.map +1 -1
- package/dist/value-managers/containments.d.ts +4 -1
- package/dist/value-managers/containments.d.ts.map +1 -1
- package/dist/value-managers/containments.js +151 -20
- package/dist/value-managers/containments.js.map +1 -1
- package/dist/value-managers/properties.d.ts.map +1 -1
- package/dist/value-managers/properties.js +1 -0
- package/dist/value-managers/properties.js.map +1 -1
- package/dist/value-managers/references.d.ts +3 -0
- package/dist/value-managers/references.d.ts.map +1 -1
- package/dist/value-managers/references.js +26 -8
- package/dist/value-managers/references.js.map +1 -1
- package/package.json +34 -37
- package/src/LionCore_builtins.g.ts +2 -2
- package/src/base-types.ts +6 -32
- package/src/convenience.ts +15 -14
- package/src/deltas/appliers.ts +377 -177
- package/src/deltas/compositor.ts +107 -0
- package/src/deltas/index.ts +3 -1
- package/src/deltas/inverters.ts +108 -36
- package/src/deltas/receivers.ts +92 -0
- package/src/deltas/serialization/deserializer.g.ts +185 -64
- package/src/deltas/serialization/serializer-helpers.ts +3 -10
- package/src/deltas/serialization/serializer.g.ts +242 -63
- package/src/deltas/serialization/types.g.ts +190 -51
- package/src/deltas/types.g.ts +190 -51
- package/src/deserializer.ts +32 -43
- package/src/duplicator.ts +1 -1
- package/src/factory.ts +31 -17
- package/src/id-mapping.ts +43 -5
- package/src/textualizer.ts +1 -1
- package/src/value-managers/annotations.ts +28 -2
- package/src/value-managers/base.ts +4 -4
- package/src/value-managers/containments.ts +144 -20
- package/src/value-managers/properties.ts +1 -0
- package/src/value-managers/references.ts +28 -8
- package/dist/deltas/handlers.d.ts +0 -17
- package/dist/deltas/handlers.d.ts.map +0 -1
- package/dist/deltas/handlers.js +0 -43
- package/dist/deltas/handlers.js.map +0 -1
- package/src/deltas/handlers.ts +0 -64
package/CHANGELOG.md
CHANGED
|
@@ -3,8 +3,25 @@
|
|
|
3
3
|
## 0.7.0
|
|
4
4
|
|
|
5
5
|
* Replace util functions with ones from `ts-utils`.
|
|
6
|
-
*
|
|
6
|
+
* For the `IdMapping` class:
|
|
7
|
+
* Add a method `tryFromId` that returns `undefined` on an unknown ID, rather than throwing an error.
|
|
8
|
+
* Add `reinitializeWith` and `mergeIn` methods.
|
|
9
|
+
* (Plus: add documentation to existing methods.)
|
|
7
10
|
* Add a method `combinedFactoryFor` to combine(/“compose”) (at runtime) the factories from multiple languages (represented by their `ILanguageBase` implementations) into one factory.
|
|
11
|
+
* Add multiple deltas – in all their aspects: types, (de-)serializers, appliers, inverters – that correspond to events from the delta protocol specification.
|
|
12
|
+
* Expand value managers with methods:
|
|
13
|
+
* annotations: `moveAndReplaceAtIndex[Directly]`
|
|
14
|
+
* containments: `replace{With|AtIndex}`
|
|
15
|
+
* references: `removeAtIndexDirectly`, `moveAndReplaceDirectly`
|
|
16
|
+
* Add a `deltaReceiverForwardingTo` function that returns a delta receiver function that forwards received deltas to the given delta receivers.
|
|
17
|
+
* Add a `Compositor` class that can be used to gather deltas into composite deltas.
|
|
18
|
+
* Rename `DeltaHandler`, `handleDelta`, etc. to `DeltaReceiver`, `receiveDelta`, etc. to be more in line with C# implementation — keeping the previous names as legacy aliases.
|
|
19
|
+
(And: `latching` → `latchingDeltaReceiverFrom`.)
|
|
20
|
+
* Improve performance of deserializer a little bit (— potentially).
|
|
21
|
+
* Implement inverters for all deltas.
|
|
22
|
+
* Fix single-containment and -reference value managers.
|
|
23
|
+
* (Fix a small cosmetic thing in `asTreeTextWith`: unset properties’ values now get shown as “`<not set>`” instead of as “`$<not set>`” — note the removed `$`.)
|
|
24
|
+
* Dependent nodes can now be passed to a deserializer as an `IdMapping` instance as well.
|
|
8
25
|
|
|
9
26
|
|
|
10
27
|
## 0.6.13
|
package/README.md
CHANGED
|
@@ -24,9 +24,9 @@ The following top-level members of this package are suitable and intended to be
|
|
|
24
24
|
|
|
25
25
|
* `allNodesFrom` — Computes all descendant nodes from the given node, including that node itself.
|
|
26
26
|
|
|
27
|
-
* `deepClonerFor` — Given `ILanguageBase`s and an optional `
|
|
27
|
+
* `deepClonerFor` — Given `ILanguageBase`s and an optional `DeltaReceiver`, it returns a function that clones the given nodes, *without* altering the IDs.
|
|
28
28
|
|
|
29
|
-
* `deepCopierFor` — Given `ILanguageBase`s and an optional `
|
|
29
|
+
* `deepCopierFor` — Given `ILanguageBase`s and an optional `DeltaReceiver`, it returns a function that clones the given nodes, generating new IDs for all the duplicated nodes.
|
|
30
30
|
|
|
31
31
|
* `incomingReferences` — Finds all references coming into the given target node or any of the given target nodes, within the given search scope.
|
|
32
32
|
|
|
@@ -51,9 +51,9 @@ The list above does not contain the top-level members of this package specifical
|
|
|
51
51
|
|
|
52
52
|
* All deltas implement the `IDelta` interface.
|
|
53
53
|
|
|
54
|
-
* The `
|
|
55
|
-
Such a function has to be passed to invocations `<concrete classifier>.create(<id>, <
|
|
56
|
-
Such a place is recognizable from the presence of an argument `
|
|
54
|
+
* The `DeltaReceiver` type represents functions that handles a delta.
|
|
55
|
+
Such a function has to be passed to invocations `<concrete classifier>.create(<id>, <receiveDelta>)` and various other places, in order to “hook up” to the delta protocol.
|
|
56
|
+
Such a place is recognizable from the presence of an argument `receiveDelta?: DeltaReceiver`.
|
|
57
57
|
|
|
58
58
|
* Deltas can be applied to a model state using the `applyDelta[s]` and `applyDelta[s]applyDeltaWithLookup` functions.
|
|
59
59
|
The functions with plural `Deltas` in their names apply the given array of `IDelta`s in that order.
|
|
@@ -82,7 +82,7 @@ A node object represented as an `INodeBase` has (at least) the following charact
|
|
|
82
82
|
An implementation of the `ILanguageBase` interface captures three base aspects of a language:
|
|
83
83
|
|
|
84
84
|
1. Its language definition of type `Language` as a static member `INSTANCE`.
|
|
85
|
-
2. A `factory` method that – given an optional `
|
|
85
|
+
2. A `factory` method that – given an optional `DeltaReceiver` produces a `NodeBaseFactory`, which (in turn) is a function that, given a `Classifier` instance, produces the appropriate `INodeBase` instance with the provided `id`, `classifier`, and `receiveDelta` arguments.
|
|
86
86
|
3. A `enumLiteralFrom` method that produces a runtime representation of a given `EnumerationLiteral`.
|
|
87
87
|
|
|
88
88
|
### Value managers
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Concept, EnumerationLiteral, Interface, Language, PrimitiveType, Property } from "@lionweb/core";
|
|
2
|
-
import {
|
|
2
|
+
import { DeltaReceiver, ILanguageBase, INodeBase, NodeBase, NodeBaseFactory } from "./index.js";
|
|
3
3
|
export declare class LionCore_builtinsBase implements ILanguageBase {
|
|
4
4
|
private readonly _language;
|
|
5
5
|
get language(): Language;
|
|
@@ -19,7 +19,7 @@ export declare class LionCore_builtinsBase implements ILanguageBase {
|
|
|
19
19
|
get INamed_name(): Property;
|
|
20
20
|
private _wiredUp;
|
|
21
21
|
private ensureWiredUp;
|
|
22
|
-
factory(
|
|
22
|
+
factory(_receiveDelta?: DeltaReceiver): NodeBaseFactory;
|
|
23
23
|
enumLiteralFrom<EnumType>(enumerationLiteral: EnumerationLiteral): EnumType;
|
|
24
24
|
static readonly INSTANCE: LionCore_builtinsBase;
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LionCore_builtins.g.d.ts","sourceRoot":"","sources":["../src/LionCore_builtins.g.ts"],"names":[],"mappings":"AA6BA,OAAO,EAEH,OAAO,EACP,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,QAAQ,EACX,MAAM,eAAe,CAAC;AAMvB,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"LionCore_builtins.g.d.ts","sourceRoot":"","sources":["../src/LionCore_builtins.g.ts"],"names":[],"mappings":"AA6BA,OAAO,EAEH,OAAO,EACP,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,QAAQ,EACX,MAAM,eAAe,CAAC;AAMvB,OAAO,EACH,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAQ,EACR,eAAe,EAClB,MAAM,YAAY,CAAC;AAGpB,qBAAa,qBAAsB,YAAW,aAAa;IAEvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmG;IAC7H,IAAI,QAAQ,IAAI,QAAQ,CAGvB;IAED,SAAgB,OAAO,gBAAuG;IAC9H,IAAI,MAAM,IAAI,aAAa,CAG1B;IAED,SAAgB,QAAQ,gBAA0G;IAClI,IAAI,OAAO,IAAI,aAAa,CAG3B;IAED,SAAgB,QAAQ,gBAA0G;IAClI,IAAI,OAAO,IAAI,aAAa,CAG3B;IAED,SAAgB,KAAK,gBAAiG;IACtH,IAAI,IAAI,IAAI,aAAa,CAGxB;IAED,SAAgB,KAAK,UAAiG;IACtH,IAAI,IAAI,IAAI,OAAO,CAGlB;IAED,SAAgB,OAAO,YAAmG;IAC1H,IAAI,MAAM,IAAI,SAAS,CAGtB;IACD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwG;IACrI,IAAI,WAAW,IAAI,QAAQ,CAG1B;IAED,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,eAAe;IAOvD,eAAe,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,GAAG,QAAQ;IAM3E,gBAAuB,QAAQ,wBAA+B;CACjE;AAGD,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC;AAE9B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC;AAE3B,8BAAsB,IAAK,SAAQ,QAAQ;CAC1C;AAED,MAAM,WAAW,MAAO,SAAQ,SAAS;IACrC,IAAI,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -78,7 +78,7 @@ export class LionCore_builtinsBase {
|
|
|
78
78
|
this._INamed_name.ofType(this._String);
|
|
79
79
|
this._wiredUp = true;
|
|
80
80
|
}
|
|
81
|
-
factory(
|
|
81
|
+
factory(_receiveDelta) {
|
|
82
82
|
return (classifier, _id) => {
|
|
83
83
|
const { language } = classifier;
|
|
84
84
|
throw new Error(`can't instantiate ${classifier.name} (key=${classifier.key}): classifier is not known in language ${language.name} (key=${language.key}, version=${language.version})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LionCore_builtins.g.js","sourceRoot":"","sources":["../src/LionCore_builtins.g.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LionCore_builtins.g.js","sourceRoot":"","sources":["../src/LionCore_builtins.g.ts"],"names":[],"mappings":"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"}
|
package/dist/base-types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Classifier, Containment, EnumerationLiteral, Feature, Language, Node, Property, Reference } from "@lionweb/core";
|
|
2
2
|
import { LionWebId } from "@lionweb/json";
|
|
3
|
-
import { AnnotationsValueManager, ContainmentValueManager,
|
|
3
|
+
import { AnnotationsValueManager, ContainmentValueManager, DeltaReceiver, FeatureValueManager, PropertyValueManager, ReferenceValueManager } from "./index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Encodes how a {@link INodeBase} is contained by a parent.
|
|
6
6
|
* If the {@code containingFeature} is {@code null}, the {@link INodeBase} is an annotation
|
|
@@ -109,9 +109,9 @@ export interface INodeBase extends Node {
|
|
|
109
109
|
*/
|
|
110
110
|
get referenceTargets(): INodeBase[];
|
|
111
111
|
/**
|
|
112
|
-
* An optionally-installed {@link
|
|
112
|
+
* An optionally-installed {@link DeltaReceiver}.
|
|
113
113
|
*/
|
|
114
|
-
|
|
114
|
+
receiveDelta?: DeltaReceiver;
|
|
115
115
|
/**
|
|
116
116
|
* A message to indicate this node's meta-type (including originating language) and its ID.
|
|
117
117
|
*/
|
|
@@ -120,7 +120,7 @@ export interface INodeBase extends Node {
|
|
|
120
120
|
/**
|
|
121
121
|
* The base type for any node that's managed by a, potentially delta-emitting, API.
|
|
122
122
|
*
|
|
123
|
-
* It receives a {@link
|
|
123
|
+
* It receives a {@link DeltaReceiver} to pass {@link IDelta deltas} to
|
|
124
124
|
* that occur due to changes to values of its features,
|
|
125
125
|
* as well as moving among parents and deletion.
|
|
126
126
|
*
|
|
@@ -130,13 +130,13 @@ export interface INodeBase extends Node {
|
|
|
130
130
|
export declare abstract class NodeBase implements INodeBase {
|
|
131
131
|
readonly classifier: Classifier;
|
|
132
132
|
readonly id: LionWebId;
|
|
133
|
-
readonly
|
|
133
|
+
readonly receiveDelta?: DeltaReceiver | undefined;
|
|
134
134
|
private _parentage?;
|
|
135
135
|
get parent(): INodeBase | undefined;
|
|
136
136
|
get containment(): Containment | null | undefined;
|
|
137
137
|
attachTo(parent: INodeBase, containingFeature: Containment | null): void;
|
|
138
138
|
detach(): void;
|
|
139
|
-
protected constructor(classifier: Classifier, id: LionWebId,
|
|
139
|
+
protected constructor(classifier: Classifier, id: LionWebId, receiveDelta?: DeltaReceiver | undefined, parentage?: Parentage);
|
|
140
140
|
get locationMessage(): string;
|
|
141
141
|
getPropertyValueManager(property: Property): PropertyValueManager<unknown>;
|
|
142
142
|
getContainmentValueManager(containment: Containment): ContainmentValueManager<INodeBase>;
|
|
@@ -166,11 +166,7 @@ export type NodeBaseFactory = (classifier: Classifier, id: LionWebId) => INodeBa
|
|
|
166
166
|
*/
|
|
167
167
|
export interface ILanguageBase {
|
|
168
168
|
language: Language;
|
|
169
|
-
factory(
|
|
169
|
+
factory(receiveDelta?: DeltaReceiver): NodeBaseFactory;
|
|
170
170
|
enumLiteralFrom<T>(enumerationLiteral: EnumerationLiteral): T;
|
|
171
171
|
}
|
|
172
|
-
/**
|
|
173
|
-
* Removes the given child node from its parent, and returns its containment index.
|
|
174
|
-
*/
|
|
175
|
-
export declare const removeFromParent: (parent: INodeBase | undefined, child: INodeBase) => number;
|
|
176
172
|
//# sourceMappingURL=base-types.d.ts.map
|
package/dist/base-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-types.d.ts","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEH,UAAU,EAGV,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,SAAS,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"base-types.d.ts","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"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"}
|
package/dist/base-types.js
CHANGED
|
@@ -21,7 +21,7 @@ import { AnnotationsValueManager, MultiContainmentValueManager, MultiReferenceVa
|
|
|
21
21
|
/**
|
|
22
22
|
* The base type for any node that's managed by a, potentially delta-emitting, API.
|
|
23
23
|
*
|
|
24
|
-
* It receives a {@link
|
|
24
|
+
* It receives a {@link DeltaReceiver} to pass {@link IDelta deltas} to
|
|
25
25
|
* that occur due to changes to values of its features,
|
|
26
26
|
* as well as moving among parents and deletion.
|
|
27
27
|
*
|
|
@@ -44,10 +44,10 @@ export class NodeBase {
|
|
|
44
44
|
detach() {
|
|
45
45
|
this._parentage = undefined;
|
|
46
46
|
}
|
|
47
|
-
constructor(classifier, id,
|
|
47
|
+
constructor(classifier, id, receiveDelta, parentage) {
|
|
48
48
|
this.classifier = classifier;
|
|
49
49
|
this.id = id;
|
|
50
|
-
this.
|
|
50
|
+
this.receiveDelta = receiveDelta;
|
|
51
51
|
this.annotationsValueManager = new AnnotationsValueManager(this);
|
|
52
52
|
this.classifier = classifier;
|
|
53
53
|
this.id = id;
|
|
@@ -134,29 +134,4 @@ export class NodeBase {
|
|
|
134
134
|
this.annotationsValueManager.remove(annotation);
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
/**
|
|
138
|
-
* Removes the given child node from its parent, and returns its containment index.
|
|
139
|
-
*/
|
|
140
|
-
export const removeFromParent = (parent, child) => {
|
|
141
|
-
if (parent === undefined) {
|
|
142
|
-
throw new Error(`can't remove an orphan from its parent`);
|
|
143
|
-
}
|
|
144
|
-
if (child.containment instanceof Containment) {
|
|
145
|
-
const valueManager = parent.getContainmentValueManager(child.containment);
|
|
146
|
-
if (valueManager instanceof SingleContainmentValueManager) {
|
|
147
|
-
valueManager.setDirectly(undefined);
|
|
148
|
-
return 0;
|
|
149
|
-
}
|
|
150
|
-
else if (valueManager instanceof MultiContainmentValueManager) {
|
|
151
|
-
return valueManager.removeDirectly(child);
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
throw new Error(`don't know how to remove a child that's contained through a value manager of type ${valueManager.constructor.name}`);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
if (child.containment === null) {
|
|
158
|
-
return parent.annotationsValueManager.removeDirectly(child);
|
|
159
|
-
}
|
|
160
|
-
throw new Error(`not going to remove a child from its parent without knowing how it's contained`);
|
|
161
|
-
};
|
|
162
137
|
//# sourceMappingURL=base-types.js.map
|
package/dist/base-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-types.js","sourceRoot":"","sources":["../src/base-types.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,aAAa,EAIb,WAAW,EAKX,QAAQ,EACR,SAAS,EACZ,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAErC,OAAO,EACH,uBAAuB,EAIvB,4BAA4B,EAC5B,0BAA0B,EAG1B,6BAA6B,EAC7B,2BAA2B,EAC9B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"base-types.js","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"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"}
|
package/dist/convenience.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ReferenceValue } from "@lionweb/core";
|
|
2
2
|
import { LionWebId } from "@lionweb/json";
|
|
3
3
|
import { NodeDuplicator } from "./duplicator.js";
|
|
4
|
-
import {
|
|
4
|
+
import { DeltaReceiver, IdMapping, ILanguageBase, INodeBase } from "./index.js";
|
|
5
5
|
/**
|
|
6
|
-
* @return all descendant nodes from the given node, including that node itself.
|
|
6
|
+
* @return all descendant nodes from the given top node, including that node itself.
|
|
7
|
+
* (The top node is always the first of the array returned.)
|
|
7
8
|
*/
|
|
8
|
-
export declare const allNodesFrom: (
|
|
9
|
+
export declare const allNodesFrom: (topNode: INodeBase) => INodeBase[];
|
|
9
10
|
/**
|
|
10
11
|
* Finds all references coming into the given target node or any of the given target nodes,
|
|
11
12
|
* within the search scope (given as _root_ nodes),
|
|
@@ -23,9 +24,9 @@ export declare const incomingReferences: (targetNodeOrNodes: INodeBase | INodeBa
|
|
|
23
24
|
* *without* generating new IDs.
|
|
24
25
|
* @param languageBases the {@link ILanguageBase language bases} of the languages that the nodes might come from
|
|
25
26
|
* — these are necessary for their factories
|
|
26
|
-
* @param
|
|
27
|
+
* @param receiveDelta an optional {@link DeltaReceiver} that gets installed on the deep-cloned nodes
|
|
27
28
|
*/
|
|
28
|
-
export declare const deepClonerFor: (languageBases: ILanguageBase[],
|
|
29
|
+
export declare const deepClonerFor: (languageBases: ILanguageBase[], receiveDelta?: DeltaReceiver) => import("./duplicator.js").Duplicator;
|
|
29
30
|
/**
|
|
30
31
|
* Type definition for functions that compute a – not necessarily new – ID from a given original {@link INodeBase node}.
|
|
31
32
|
*/
|
|
@@ -34,17 +35,17 @@ export type NewIdFunction = (originalNode: INodeBase) => LionWebId;
|
|
|
34
35
|
* @return a {@link NodeDuplicator} function that does the “obvious” thing, given the parameters:
|
|
35
36
|
* @param languageBases an array of languages in the form of {@link ILanguageBase}s
|
|
36
37
|
* @param newIdFunc a function that computes a – not necessarily new – ID from a given original {@link INodeBase node}
|
|
37
|
-
* @param
|
|
38
|
+
* @param receiveDelta an optional {@link DeltaReceiver}
|
|
38
39
|
* @param idMapping an optional {@link IdMapping}
|
|
39
40
|
*/
|
|
40
|
-
export declare const defaultNodeDuplicatorFor: (languageBases: ILanguageBase[], newIdFunc: NewIdFunction,
|
|
41
|
+
export declare const defaultNodeDuplicatorFor: (languageBases: ILanguageBase[], newIdFunc: NewIdFunction, receiveDelta?: DeltaReceiver, idMapping?: IdMapping) => NodeDuplicator;
|
|
41
42
|
/**
|
|
42
43
|
* @return a function that deep-duplicates the given nodes (of type {@link INodeBase}),
|
|
43
44
|
* computing IDs using the `newIdFunc` function passed as the 2nd argument.
|
|
44
45
|
* @param languageBases the {@link ILanguageBase language bases} of the languages that the nodes might come from
|
|
45
46
|
* — these are necessary for their factories
|
|
46
47
|
* @param newIdFunc a function that computes a – not necessarily new – ID from a given original {@link INodeBase node}
|
|
47
|
-
* @param
|
|
48
|
+
* @param receiveDelta an optional {@link DeltaReceiver} that gets installed on the deep-cloned nodes
|
|
48
49
|
*/
|
|
49
|
-
export declare const deepDuplicatorFor: (languageBases: ILanguageBase[], newIdFunc: NewIdFunction,
|
|
50
|
+
export declare const deepDuplicatorFor: (languageBases: ILanguageBase[], newIdFunc: NewIdFunction, receiveDelta?: DeltaReceiver, idMapping?: IdMapping) => import("./duplicator.js").Duplicator;
|
|
50
51
|
//# sourceMappingURL=convenience.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convenience.d.ts","sourceRoot":"","sources":["../src/convenience.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA8C,cAAc,EAAE,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAqB,
|
|
1
|
+
{"version":3,"file":"convenience.d.ts","sourceRoot":"","sources":["../src/convenience.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA8C,cAAc,EAAE,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAqB,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAIlG;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,SAAS,KAAG,SAAS,EAS1D,CAAA;AAGD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,mBAAmB,SAAS,GAAG,SAAS,EAAE,EAAE,kBAAkB,SAAS,EAAE,KAAG,cAAc,CAAC,SAAS,CAAC,EACrC,CAAC;AAGpG;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,eAAe,aAAa,EAAE,EAAE,eAAe,aAAa,yCACL,CAAC;AAGtF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,SAAS,KAAK,SAAS,CAAC;AAGnE;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GAAI,eAAe,aAAa,EAAE,EAAE,WAAW,aAAa,EAAE,eAAe,aAAa,EAAE,YAAY,SAAS,KAAG,cAMpJ,CAAC;AAGN;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,eAAe,aAAa,EAAE,EAAE,WAAW,aAAa,EAAE,eAAe,aAAa,EAAE,YAAY,SAAS,yCAC7C,CAAC"}
|
package/dist/convenience.js
CHANGED
|
@@ -18,16 +18,17 @@ import { incomingReferences as lwIncomingReferences } from "@lionweb/core";
|
|
|
18
18
|
import { deepDuplicateWith } from "./index.js";
|
|
19
19
|
import { nodeBaseReader } from "./serializer.js";
|
|
20
20
|
/**
|
|
21
|
-
* @return all descendant nodes from the given node, including that node itself.
|
|
21
|
+
* @return all descendant nodes from the given top node, including that node itself.
|
|
22
|
+
* (The top node is always the first of the array returned.)
|
|
22
23
|
*/
|
|
23
|
-
export const allNodesFrom = (
|
|
24
|
-
const nodes = [
|
|
24
|
+
export const allNodesFrom = (topNode) => {
|
|
25
|
+
const nodes = [topNode];
|
|
25
26
|
const visit = (node) => {
|
|
26
27
|
const children = node.children;
|
|
27
28
|
nodes.push(...children);
|
|
28
29
|
children.forEach(visit);
|
|
29
30
|
};
|
|
30
|
-
visit(
|
|
31
|
+
visit(topNode);
|
|
31
32
|
return nodes;
|
|
32
33
|
};
|
|
33
34
|
/**
|
|
@@ -47,19 +48,19 @@ export const incomingReferences = (targetNodeOrNodes, rootNodesInScope) => lwInc
|
|
|
47
48
|
* *without* generating new IDs.
|
|
48
49
|
* @param languageBases the {@link ILanguageBase language bases} of the languages that the nodes might come from
|
|
49
50
|
* — these are necessary for their factories
|
|
50
|
-
* @param
|
|
51
|
+
* @param receiveDelta an optional {@link DeltaReceiver} that gets installed on the deep-cloned nodes
|
|
51
52
|
*/
|
|
52
|
-
export const deepClonerFor = (languageBases,
|
|
53
|
+
export const deepClonerFor = (languageBases, receiveDelta) => deepDuplicatorFor(languageBases, (originalNode) => originalNode.id, receiveDelta);
|
|
53
54
|
/**
|
|
54
55
|
* @return a {@link NodeDuplicator} function that does the “obvious” thing, given the parameters:
|
|
55
56
|
* @param languageBases an array of languages in the form of {@link ILanguageBase}s
|
|
56
57
|
* @param newIdFunc a function that computes a – not necessarily new – ID from a given original {@link INodeBase node}
|
|
57
|
-
* @param
|
|
58
|
+
* @param receiveDelta an optional {@link DeltaReceiver}
|
|
58
59
|
* @param idMapping an optional {@link IdMapping}
|
|
59
60
|
*/
|
|
60
|
-
export const defaultNodeDuplicatorFor = (languageBases, newIdFunc,
|
|
61
|
+
export const defaultNodeDuplicatorFor = (languageBases, newIdFunc, receiveDelta, idMapping) => (originalNode) => {
|
|
61
62
|
const languageBase = languageBases.find((languageBase) => languageBase.language === originalNode.classifier.language);
|
|
62
|
-
const duplicatedNode = languageBase.factory(
|
|
63
|
+
const duplicatedNode = languageBase.factory(receiveDelta)(originalNode.classifier, newIdFunc(originalNode));
|
|
63
64
|
idMapping?.updateWith(duplicatedNode);
|
|
64
65
|
return [duplicatedNode, originalNode.setFeatures];
|
|
65
66
|
};
|
|
@@ -69,7 +70,7 @@ export const defaultNodeDuplicatorFor = (languageBases, newIdFunc, handleDelta,
|
|
|
69
70
|
* @param languageBases the {@link ILanguageBase language bases} of the languages that the nodes might come from
|
|
70
71
|
* — these are necessary for their factories
|
|
71
72
|
* @param newIdFunc a function that computes a – not necessarily new – ID from a given original {@link INodeBase node}
|
|
72
|
-
* @param
|
|
73
|
+
* @param receiveDelta an optional {@link DeltaReceiver} that gets installed on the deep-cloned nodes
|
|
73
74
|
*/
|
|
74
|
-
export const deepDuplicatorFor = (languageBases, newIdFunc,
|
|
75
|
+
export const deepDuplicatorFor = (languageBases, newIdFunc, receiveDelta, idMapping) => deepDuplicateWith(defaultNodeDuplicatorFor(languageBases, newIdFunc, receiveDelta, idMapping));
|
|
75
76
|
//# sourceMappingURL=convenience.js.map
|
package/dist/convenience.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convenience.js","sourceRoot":"","sources":["../src/convenience.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,kBAAkB,IAAI,oBAAoB,EAAkB,MAAM,eAAe,CAAA;AAG1F,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"convenience.js","sourceRoot":"","sources":["../src/convenience.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,kBAAkB,IAAI,oBAAoB,EAAkB,MAAM,eAAe,CAAA;AAG1F,OAAO,EAAE,iBAAiB,EAAsD,MAAM,YAAY,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAkB,EAAe,EAAE;IAC5D,MAAM,KAAK,GAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACxB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAA;IACD,KAAK,CAAC,OAAO,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACjB,CAAC,CAAA;AAGD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,iBAA0C,EAAE,gBAA6B,EAA+B,EAAE,CACzI,oBAAoB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;AAGpG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,aAA8B,EAAE,YAA4B,EAAE,EAAE,CAC1F,iBAAiB,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAStF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAA8B,EAAE,SAAwB,EAAE,YAA4B,EAAE,SAAqB,EAAkB,EAAE,CACtK,CAAC,YAAuB,EAAE,EAAE;IACxB,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,KAAK,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC;IACvH,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5G,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC,CAAC;AAGN;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAA8B,EAAE,SAAwB,EAAE,YAA4B,EAAE,SAAqB,EAAE,EAAE,CAC/I,iBAAiB,CAAC,wBAAwB,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { INodeBase } from "../base-types.js";
|
|
1
2
|
import { IdMapping } from "../id-mapping.js";
|
|
2
3
|
import { IDelta } from "./base.js";
|
|
3
4
|
/**
|
|
@@ -16,11 +17,11 @@ export declare const applyDelta: (delta: IDelta) => void;
|
|
|
16
17
|
* @usage should look as follows.
|
|
17
18
|
*
|
|
18
19
|
* ```typescript
|
|
19
|
-
* const {roots, idMapping} = deserializeAsLDMModelWithMapping(serializationChunk,
|
|
20
|
+
* const {roots, idMapping} = deserializeAsLDMModelWithMapping(serializationChunk, receiveDelta);
|
|
20
21
|
* applyDeltasWithLookup(idMapping, deltas);
|
|
21
22
|
* ```
|
|
22
23
|
*/
|
|
23
|
-
export declare const applyDeltasWithLookup: (idMapping: IdMapping, deltas: IDelta[]) => void;
|
|
24
|
+
export declare const applyDeltasWithLookup: (idMapping: IdMapping, deltas: IDelta[], updatablePartitions?: () => INodeBase[]) => void;
|
|
24
25
|
/**
|
|
25
26
|
* Applies the given {@link Delta delta} to {@link nodes INodeBase} given as the values of a {@link IdMapping ID mapping id → node}.
|
|
26
27
|
* Note that the delta is *not* applied to the original nodes (object-)referenced by the deltas, but to the nodes present in the ID mapping.
|
|
@@ -28,11 +29,11 @@ export declare const applyDeltasWithLookup: (idMapping: IdMapping, deltas: IDelt
|
|
|
28
29
|
* @usage should look as follows.
|
|
29
30
|
*
|
|
30
31
|
* ```typescript
|
|
31
|
-
* const {roots, idMapping} = deserializeAsLDMModelWithMapping(serializationChunk,
|
|
32
|
+
* const {roots, idMapping} = deserializeAsLDMModelWithMapping(serializationChunk, receiveDelta);
|
|
32
33
|
* applyDeltaWithLookup(idMapping, delta);
|
|
33
34
|
* ```
|
|
34
35
|
*/
|
|
35
|
-
export declare const applyDeltaWithLookup: (idMapping: IdMapping, delta: IDelta) => void;
|
|
36
|
+
export declare const applyDeltaWithLookup: (idMapping: IdMapping, delta: IDelta, updatablePartitions?: () => INodeBase[]) => void;
|
|
36
37
|
/**
|
|
37
38
|
* Updates the given {@link IdMapping ID mapping} with the given {@link IDelta delta}.
|
|
38
39
|
* This is important if the delta adds a newly-created node to the model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appliers.d.ts","sourceRoot":"","sources":["../../src/deltas/appliers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appliers.d.ts","sourceRoot":"","sources":["../../src/deltas/appliers.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAsYlC;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,KAAG,IAE9C,CAAC;AAGF;;GAEG;AACH,eAAO,MAAM,UAAU,UArYX,MAAM,KAAG,IAqYmB,CAAA;AAGxC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,GAAI,WAAW,SAAS,EAAE,QAAQ,MAAM,EAAE,EAAE,sBAAsB,MAAM,SAAS,EAAE,KAAG,IAEvH,CAAC;AAGF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,SAAS,EAAE,OAAO,MAAM,EAAE,sBAAsB,MAAM,SAAS,EAAE,KAAG,IAC7D,CAAA;AAGvD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,WAAW,SAAS,EAAE,OAAO,MAAM,SAc3E,CAAC"}
|